国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于OpenCV的人臉特征圖像檢索系統(tǒng)設(shè)計(jì)

2018-12-18 11:09東北大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院國家級計(jì)算機(jī)實(shí)驗(yàn)教學(xué)示范中心孫夢雪
電子世界 2018年23期
關(guān)鍵詞:控件直方圖人臉

東北大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院 國家級計(jì)算機(jī)實(shí)驗(yàn)教學(xué)示范中心 周 綱 孫夢雪 高 巖

利用VS2010集成開發(fā)環(huán)境做平臺搭建了一個人臉圖像特征檢索系統(tǒng)。系統(tǒng)設(shè)計(jì)中首先基于AdaBoost算法的思想,以O(shè)penCV視覺庫的Haartraining函數(shù)結(jié)構(gòu)為基礎(chǔ),利用OpenCV自帶的分類器與libfacedetection庫進(jìn)行人臉檢測程序的編寫,程序具有讀入待檢測圖片,待檢測圖片進(jìn)行預(yù)處理,加載分類器,利用分類器檢測人臉,輸出檢測結(jié)果,并進(jìn)一步實(shí)現(xiàn)對檢測后的圖片按照人臉數(shù)量進(jìn)行檢索的功能。經(jīng)過大量圖片測試,系統(tǒng)能夠達(dá)到設(shè)計(jì)要求,具有一定的實(shí)用性和擴(kuò)展性。

隨著多媒體技術(shù)和計(jì)算機(jī)與數(shù)字信號處理技術(shù)的高速發(fā)展,人臉圖像在各個領(lǐng)域中起到了越來越重要的作用,而由此衍生的人臉檢測技術(shù)也在眾多領(lǐng)域得到廣泛應(yīng)用。人臉檢測主要是基于計(jì)算機(jī)識別的一項(xiàng)數(shù)字化技術(shù),用以準(zhǔn)確獲取人的臉部大小和位置信息,在進(jìn)行人臉檢測時,突出主要的臉部特征,淡化次要的環(huán)境、衣著等因素。作為人臉信息處理中的一項(xiàng)關(guān)鍵技術(shù),人臉檢測技術(shù)已經(jīng)超出了其它人臉識別模式的應(yīng)用范疇,在視頻處理、圖像處理、身份驗(yàn)證、安全監(jiān)測等方面有著重要的應(yīng)用價值,也逐漸成為了人工智能與模式識別兩個跨學(xué)科領(lǐng)域研究的熱門話題。

直到 90 年代,隨著實(shí)際的人臉識別和視頻編碼系統(tǒng)開始成為現(xiàn)實(shí),這種情況才有所改變。在過去的十多年里,對人臉檢測的極大興趣開始從幾個方面展開。研究者提出了多種分割方法,特別是那些利用運(yùn)動、膚色和一般信息的方法。統(tǒng)計(jì)和神經(jīng)網(wǎng)絡(luò)方法的使用也使在復(fù)雜背景和多分辨率的人臉檢測成為可能。另外,在能夠精確定位的跟蹤面部特征的特征提取方法的設(shè)計(jì)(例如彈性模板和活動輪廓)方面也取得了很大的進(jìn)展。近期人臉檢測的研究主要集中在基于數(shù)據(jù)驅(qū)動的學(xué)習(xí)方法,如統(tǒng)計(jì)模型方法,神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)方法,統(tǒng)計(jì)知識理論和 SVM 方法,基于馬爾科夫隨機(jī)域的方法,以及基于顏色的人臉檢測等。

本文在PC上利用VS2010集成開發(fā)環(huán)境做平臺搭建了一個人臉圖像特征檢索系統(tǒng),實(shí)現(xiàn)以下功能:對于給定的圖像檢測出包含人臉的矩形區(qū)域以及根據(jù)圖片中的人臉數(shù)目對圖片進(jìn)行分類并按照要求(顯示所有含1、2、3張人臉的圖片)顯示。研究的主要內(nèi)容包括人臉檢測、圖像分類檢索與MFC界面設(shè)計(jì)。

1 系統(tǒng)需求分析

人臉檢測是一個非常先進(jìn)的問題,它是人臉研究的一個主要方向,其任務(wù)是對于一幅給定的圖像,采用一定的策略對其進(jìn)行搜索,以確定其中是否含有人臉、含有多少個人臉,以及所含人臉的位置、大小和姿態(tài)。人臉檢測的算法很多,Adaboost算法是其中的一種,Adaboost算法雖然十分復(fù)雜,但應(yīng)用OpenCV提供的函數(shù)和分類器進(jìn)行人臉檢測將是十分容易。人臉檢測程序主要完成3部分功能,即加載分類器、加載待檢測圖象以及檢測并標(biāo)示。

程序設(shè)計(jì)的總體思想是通過VS2010編寫一個基于OpenCV視覺庫的Windows應(yīng)用程序,采用MFC設(shè)計(jì)界面。OpenCV中提供的用于檢測圖像中目標(biāo)的函數(shù)是cvHaarDetectObjects,該函數(shù)使用指針對某目標(biāo)物體(如人臉)訓(xùn)練的級聯(lián)分類器在圖象中找到包含目標(biāo)物體的矩形區(qū)域,并將這些區(qū)域作為一序列的矩形框返回。分類器在使用后需要被顯式釋放,所用的函數(shù)為cvReleaseHaarClassifierCascade。

系統(tǒng)功能需求分析。人臉檢測是一個復(fù)雜的具有挑戰(zhàn)性的模式檢測問題,其主要的難點(diǎn)有兩方面,一方面是由于人臉內(nèi)在的變化所引起:(1)人臉具有相當(dāng)復(fù)雜的細(xì)節(jié)變化,不同的外貌如臉形、膚色等,不同的表情如眼、嘴的開與閉等;(2)人臉的遮擋,如眼鏡、頭發(fā)和頭部飾物以及其他外部物體等;另外一方面由于外在條件變化所引起:(1)由于成像角度的不同造成人臉的多姿態(tài),如平面內(nèi)旋轉(zhuǎn)、深度旋轉(zhuǎn)以及上下旋轉(zhuǎn),其中深度旋轉(zhuǎn)影響較大;(2)光照的影響,如圖像中的亮度、對比度的變化和陰影等;(3)圖像的成像條件,如攝像設(shè)備的焦距、成像距離,圖像獲得的途徑等等。

這些困難都為解決人臉問題造成了難度。如果能找到一些相關(guān)的算法并能在應(yīng)用過程中達(dá)到實(shí)時,將為成功構(gòu)造出具有實(shí)際應(yīng)用價值的人臉檢測與跟蹤系統(tǒng)提供保證。

2 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

程序設(shè)計(jì)的總體思想是通過VS2010編寫一個基于OpenCV視覺庫的Windows應(yīng)用程序,采用MFC設(shè)計(jì)界面。首先基于 AdaBoost算法的思想,以 OpenCV 視覺庫的 Haartraining 函數(shù)結(jié)構(gòu)為基礎(chǔ),利用OpenCV自帶的分類器與libfacedetection庫進(jìn)行人臉檢測程序的編寫,具有讀入待檢測圖片,待檢測圖片預(yù)處理,加載分類器,利用分類器檢測人臉,輸出檢測結(jié)果,對檢測后的圖片按人臉數(shù)量進(jìn)行分類檢索的功能。

2.1 圖像預(yù)處理

由于待檢測的圖像一般在尺寸,色彩,分辨率等方面不同于訓(xùn)練集中所用到的圖像,質(zhì)量可能不夠高達(dá)不到系統(tǒng)檢測的要求,如在不好的光照條件下采集的圖像需要進(jìn)行光照補(bǔ)償,因此需要先對圖像進(jìn)行數(shù)字圖像處理。

對圖片做過灰度化處理以后,還需要考慮所有待檢測圖像間的差異,為確保檢測結(jié)果的準(zhǔn)確,特別是面對一些明顯偏暗或偏亮的圖片時,如果不對待檢測圖片做出調(diào)整圖像的局部特征會直接影響檢測的結(jié)果,因此需要對待檢測的圖像在預(yù)處理階段做出對比度調(diào)整或直方圖調(diào)整。由于待檢測的圖像一般在尺寸,色彩,分辨率等方面不同于訓(xùn)練集中所用到的圖像,這些圖像的來源不同,背景不同,光照情況導(dǎo)致的亮度也有明顯的差異,因此即使對這些待檢測圖像做對比度調(diào)整也不能夠得到像調(diào)整訓(xùn)練集圖像那樣統(tǒng)一化的結(jié)果,因此待檢測圖像的預(yù)處理不適合做對比度調(diào)整,但對這些圖像做灰度直方圖均衡卻能得到理想的效果,灰度直方圖均衡化能夠讓過亮或過暗的圖像灰度分布更加均勻,能夠更好的突出圖像中的人臉。

因此本文選擇在將圖片灰度化之后對人臉圖像進(jìn)行直方圖均衡,通過直方圖均衡的人臉圖像可以顯示更多的細(xì)節(jié)。經(jīng)過直方圖均衡的灰度圖如圖1所示。

2.2 人臉檢測

在人臉檢測模塊中,主要完成的功能是對人臉的檢測和查找,對已經(jīng)過預(yù)處理的圖像進(jìn)行檢測,經(jīng)過處理之后可以獲取得到人臉的靜態(tài)的圖像數(shù)據(jù)信息。由于在OpenCV下訓(xùn)練自己的分類器XML文件是個相當(dāng)復(fù)雜和耗時的過程,并且自己沒有得到充足的人臉數(shù)據(jù)庫樣本和非人臉樣本進(jìn)行分類器的訓(xùn)練,這樣訓(xùn)練出分類器的檢測率就非常低而且誤檢率非常高。所以本文就充分利用了OpenCV自帶的良好人臉檢測分類器haarcascade_frontalface_alt2.xml,采用OpenCV與于仕琪老師所編寫的libfacedetection人臉檢測庫進(jìn)行檢測,按比例逐層縮小待檢測圖像,形成“圖像金字塔”,在“金字塔”中窮舉待檢測子窗口,子窗口大小固定,圖像不斷被縮小,把各個待檢測子窗口作為分類器的輸入。得到檢測結(jié)果,并對二者的檢測進(jìn)行簡單的對比。人臉檢測的流程如圖2所示。

圖1 原始圖和經(jīng)過直方圖均衡的灰度圖

圖2 人臉檢測流程圖

2.3 圖像分類檢索

在上一節(jié)人臉檢測的基礎(chǔ)上,在for循環(huán)內(nèi)部對每張圖片進(jìn)行人臉檢測之后將檢測得到的人臉數(shù)量結(jié)果存儲到數(shù)據(jù)庫內(nèi)以供進(jìn)行檢索使用。由于數(shù)據(jù)量較少因此Access數(shù)據(jù)庫即可滿足需要。

人臉計(jì)數(shù)選擇即為對Access數(shù)據(jù)庫中存儲的數(shù)據(jù)按照要求進(jìn)行篩選,本文設(shè)計(jì)了可選的三個要求,即顯示檢測結(jié)果中分別含有0、1、3張人臉的圖像。仍舊采用最簡單的for循環(huán)實(shí)現(xiàn)對所有結(jié)果的檢索,其中if語句則判斷數(shù)據(jù)庫中存儲的每張圖片人臉數(shù)目是否符合要求,若符合即彈出顯示。

圖3 人臉檢測結(jié)果

2.4 用戶界面

用戶界面部分采用VS2010自帶的MFC(微軟基礎(chǔ)類庫)模塊進(jìn)行設(shè)計(jì)。

配置好開發(fā)環(huán)境之后即可以進(jìn)行如BUTTON等各控件的添加。為容易觀察與美觀起見,將界面分為兩個,由圖3即可看出,可進(jìn)行文件夾的選擇進(jìn)而對文件夾內(nèi)的圖片進(jìn)行檢測與分類檢索,并對原始圖片、檢測后的圖片與檢索結(jié)果進(jìn)行顯示。在主界面上點(diǎn)擊人臉檢索按鈕即進(jìn)入檢索界面。

界面部分涉及到了以下六種控件,分別為:Button、List Box、Picture Control、Edit Control、ComBo BOX與Static Text。

對于每個控件都有一個ID,相當(dāng)于名字一樣。ID名是個宏定義,每個ID都對應(yīng)一個數(shù)字。除了靜態(tài)控件(IDC_STATIC)以外,每個控件的ID都是唯一的。程序中要對某個控件進(jìn)行操作時,需要指明是對哪個控件進(jìn)行操作,這時就需要ID了。

3 系統(tǒng)調(diào)試

程序開發(fā)選用VS2010配置OpenCV2.4.9版本,其具體配置分為以下兩個時期:程序初期開發(fā)與后期界面設(shè)計(jì)時期。

程序初期開發(fā):(1)環(huán)境變量配置。打開流程如下:控制面板→系統(tǒng)→高級系統(tǒng)設(shè)置→高級→環(huán)境變量,找到path進(jìn)行編輯;(2)新建一個Win32控制臺應(yīng)用程序;(3)配置屬性管理器;(4)源文件處選擇添加新項(xiàng)目即可添加新的.cpp文件。

界面設(shè)計(jì)時期:(1)新建一個MFC應(yīng)用程序,命名為FaceDetect-Sys,然后依次點(diǎn)擊下一步,直到完成出現(xiàn)資源窗口,即可在對話框處進(jìn)行控件的添加,控件的添加方法為打開視圖中的工具箱,選擇所需的控件,進(jìn)而添加事件處理程序;(2)OpenCV環(huán)境配置與程序初期開發(fā)時類似,不予贅述;(3)OpenCV中的頭文件highgui.h中定義的CvvImage類,可以很好的實(shí)現(xiàn)OpenCV和windowsMFC顯示接口,但其2.2版本之后取消了這個類,本文使用的是2.4.9版本,因此需要重新添加進(jìn)去,即將網(wǎng)上下載到的CvvImage.cpp和CvvImage.h分別加入到工程中;(4)由于進(jìn)行人臉檢測之后得到的如人臉數(shù)量等數(shù)據(jù)需要進(jìn)行存儲,因此采用最簡單的由微軟發(fā)布的關(guān)聯(lián)式數(shù)據(jù)庫管理系統(tǒng)Microsoft Office Access2010進(jìn)行數(shù)據(jù)的存儲。程序運(yùn)行結(jié)果如圖4所示。

圖4 圖像檢索(圖像中含有3張人臉的圖)

4 結(jié)束語

人臉檢測是一項(xiàng)極具挑戰(zhàn)性的課題,人臉作為圖像與視頻中最重要的視覺圖像(visual object)之一,在計(jì)算機(jī)視覺、模式識別、多媒體技術(shù)研究中占有重要的地位。本文在PC上利用VS2010集成開發(fā)環(huán)境做平臺配置OpenCV搭建了一個人臉圖像特征檢索系統(tǒng),實(shí)現(xiàn)以下功能:對于給定的圖像檢測出包含人臉的矩形區(qū)域,以及根據(jù)圖片中的人臉數(shù)目對圖片進(jìn)行分類并按照要求顯示。研究的主要內(nèi)容包括人臉檢測、圖像分類檢索與MFC界面設(shè)計(jì)。人臉檢測技術(shù)雖然已成為一個當(dāng)代圖像處理的一個熱門研究話題,取得了巨大的成就,但是整體效果仍不夠理想,在實(shí)際應(yīng)用中仍面臨困難。如何提高檢測的準(zhǔn)確率以及檢測的速度,仍是一個擺在眾多研究者面前的一大難題。

猜你喜歡
控件直方圖人臉
符合差分隱私的流數(shù)據(jù)統(tǒng)計(jì)直方圖發(fā)布
有特點(diǎn)的人臉
一起學(xué)畫人臉
用直方圖控制畫面影調(diào)
三國漫——人臉解鎖
關(guān)于.net控件數(shù)組的探討
中考頻數(shù)分布直方圖題型展示
基于空間變換和直方圖均衡的彩色圖像增強(qiáng)方法
ASP.NET服務(wù)器端驗(yàn)證控件的使用
長得象人臉的十種動物