999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于openCV的人臉檢測(cè)系統(tǒng)的設(shè)計(jì)

2012-02-15 03:29:52陳志恒姜明新
電子設(shè)計(jì)工程 2012年10期
關(guān)鍵詞:特征檢測(cè)

陳志恒,姜明新

(大連民族學(xué)院 遼寧 大連 116600)

隨著計(jì)算機(jī)與數(shù)字信號(hào)處理技術(shù)的高速發(fā)展,人臉檢測(cè)技術(shù)在眾多領(lǐng)域得到廣泛應(yīng)用。人臉檢測(cè)技術(shù)是指在視頻或圖像中檢測(cè)出現(xiàn)人臉位置、大小的過程。作為人臉信息處理中的一項(xiàng)關(guān)鍵技術(shù),人臉檢測(cè)技術(shù)已經(jīng)超出了其它人臉識(shí)別模式的應(yīng)用范疇,在視頻處理,圖像處理,身份驗(yàn)證,安全監(jiān)測(cè)等方面有著重要的應(yīng)用價(jià)值。隨著計(jì)算機(jī)語言算法的發(fā)展,近年來出現(xiàn)了大量的人臉檢測(cè)的算法,其中,能夠較好的解決人臉的檢測(cè)速度與檢測(cè)效果的算法,是在2001年由Paul Viola和Michael Jones首先提出的Adaboost算法。openCV[1]是由Intel提供的一系列包括C與C++的提供計(jì)算機(jī)視覺和圖像處理的開源軟件包,它為視頻或圖像處理搭建了很好的軟件平臺(tái)。本系統(tǒng)就是基于openCV,利用Adaboost算法設(shè)計(jì)的一個(gè)簡(jiǎn)單的人臉檢測(cè)系統(tǒng),該系統(tǒng)能夠快速、準(zhǔn)確的檢測(cè)到圖像或視頻中的人臉。

1 AdaBoost人臉檢測(cè)算法

對(duì)人臉檢測(cè)的研究最初可以追溯到20世紀(jì) 70年代,早期的研究方向與現(xiàn)在的研究方向與方法不同。目前在實(shí)際中應(yīng)用的人臉檢測(cè)方法較為普遍的是基于 Adaboost算法的方法。

Viola的人臉檢測(cè)方法是一種基于積分圖、級(jí)聯(lián)分類檢測(cè)器和Adaboost算法的方法,方法框架可以分為以下3大步驟:

1)使用Haar-like特征表示人臉,使用“積分圖”實(shí)現(xiàn)特征數(shù)值的快速計(jì)算;

2)使用Adaboost算法挑選出一些最能代表人臉的矩形特征(弱分類器),按照加權(quán)投票的方式將弱分類器構(gòu)造為一個(gè)強(qiáng)分類器;

3)將得到的若干強(qiáng)分類器串聯(lián)組成一個(gè)級(jí)聯(lián)結(jié)構(gòu)的層疊分類器,訓(xùn)練得到的強(qiáng)級(jí)聯(lián)結(jié)構(gòu)能有效地提高分類器的檢測(cè)速度。

1.1 Haar-like特征

haar特征是基于灰度圖,首先通過大量的具有比較明顯的haar特征(矩形)的物體圖像用模式識(shí)別的方法訓(xùn)練出分類器,分類器是個(gè)級(jí)聯(lián)的,每級(jí)都以大概相同的識(shí)別率保留進(jìn)入下一級(jí)的具有物體特征的候選物體,而每一級(jí)的子分類器則由許多haar特征構(gòu)成(由積分圖像計(jì)算得到,并保存下位置),有水平的、豎直的、傾斜的,并且每個(gè)特征帶一個(gè)閾值和兩個(gè)分支值,每級(jí)子分類器帶一個(gè)總的閾值。識(shí)別物體的時(shí)候,同樣計(jì)算積分圖像為后面計(jì)算haar特征做準(zhǔn)備,然后采用與訓(xùn)練的時(shí)候有物體的窗口同樣大小的窗口遍歷整幅圖像,以后逐漸放大窗口,同樣做遍歷搜索物體;每當(dāng)窗口移動(dòng)到一個(gè)位置,即計(jì)算該窗口內(nèi)的haar特征,加權(quán)后與分類器中haar特征的閾值比較從而選擇左或者右分支值,累加一個(gè)級(jí)的分支值與相應(yīng)級(jí)的閾值比較,大于該閾值才可以通過進(jìn)入下一輪篩選。當(dāng)通過分類器所有分類級(jí)的時(shí)候說明這個(gè)物體以大概率被識(shí)別。常用的Haar-like特征有線性特征,邊緣特征,中心特征。

圖1 Harr-like特征Fig.1 Harr-like features

特征值是指圖像上兩個(gè)或者多個(gè)形狀大小相同的矩形內(nèi)部所有像素灰度值之和的差值,例如在邊緣特征中,特征值的計(jì)算公式為:

1.2 積分圖

由于訓(xùn)練樣本通常有近萬個(gè),并且矩形特征的數(shù)量非常龐大,如果每次計(jì)算特征值都要統(tǒng)計(jì)矩形內(nèi)所以像素之和,將會(huì)大大降低訓(xùn)練和檢測(cè)的速度。因此引入了一種新的圖像表示方法——積分圖像特征的特征值計(jì)算法,該方法只與此特征矩形的端點(diǎn)的積分圖有關(guān),所以不管此特征矩形的尺度變換如何,特征值的計(jì)算所消耗的時(shí)間都是常量。這樣只要遍歷圖像一次,就可以求得所有子窗口的特征值。積分圖[2]定義為:

其中 I(x′,y′)為圖像在點(diǎn)(x′,y′)處的像素值。 為了節(jié)約時(shí)間,減少重復(fù)計(jì)算,則圖像I的積分圖可按如下遞推公式計(jì)算:

這樣就可以進(jìn)行任意矩形區(qū)域內(nèi)像素積分運(yùn)算。由圖像的積分圖可快速地計(jì)算圖像中任意矩形內(nèi)所有像素灰度積分。如圖2所示,點(diǎn)1的積分圖像的值為(其中Sum為求和):

圖2 特征和計(jì)算Fig.2 The sum of features

同理,點(diǎn)2、點(diǎn)3、點(diǎn)4的積分圖像分別為:

矩形區(qū)域D內(nèi)的所有像素灰度積分可由矩形端點(diǎn)的積分圖像值得到:

1.3 Adaboost算法基本原理

Adaboost是一種迭代算法,其核心思想是針對(duì)同一個(gè)訓(xùn)練集訓(xùn)練不同的分類器(弱分類器),然后把這些弱分類器集合起來,構(gòu)成一個(gè)更強(qiáng)的最終分類器(強(qiáng)分類器)。其算法本身是通過改變數(shù)據(jù)分布來實(shí)現(xiàn)的,它根據(jù)每次訓(xùn)練集之中每個(gè)樣本的分類是否正確,以及上次的總體分類的準(zhǔn)確率,來確定每個(gè)樣本的權(quán)值。將修改過權(quán)值的新數(shù)據(jù)集送給下層分類器進(jìn)行訓(xùn)練,最后將每次訓(xùn)練得到的分類器最后融合起來,作為最后的決策分類器。使用Adaboost分類器可以排除一些不必要的訓(xùn)練數(shù)據(jù)特征,并將關(guān)鍵放在關(guān)鍵的訓(xùn)練數(shù)據(jù)上面。

Adaboost算法中不同的訓(xùn)練集是通過調(diào)整每個(gè)樣本對(duì)應(yīng)的權(quán)重來實(shí)現(xiàn)的。開始時(shí),每個(gè)樣本對(duì)應(yīng)的權(quán)重是相同的,即其中 n為樣本個(gè)數(shù),在此樣本分布下訓(xùn)練出一弱分類器。對(duì)于分類錯(cuò)誤的樣本,加大其對(duì)應(yīng)的權(quán)重;而對(duì)于分類正確的樣本,降低其權(quán)重,這樣分類錯(cuò)的樣本就被突出出來,從而得到一個(gè)新的樣本分布。在新的樣本分布下,再次對(duì)弱分類器進(jìn)行訓(xùn)練,得到弱分類器。依次類推,經(jīng)過 T次循環(huán),得到 T個(gè)弱分類器,把這T個(gè)弱分類器按一定的權(quán)重疊加(boost)起來,得到最終想要的強(qiáng)分類器。

Adaboost[3]的具體算法如下:

設(shè)輸入 的 n 個(gè) 訓(xùn)練 樣本為:{(x1,y1),(x2,y2)......(xn,yn)},其中xi是輸入的訓(xùn)練樣本,yi∈{0,1}分別表示正樣本和負(fù)樣本,其中正樣本數(shù)為l,負(fù)樣本數(shù)為m。n=l+m,具體步驟如下:

1)初始化每個(gè)樣本的權(quán)重;

2)對(duì)每個(gè) t=1,...,T(T 為弱分類器的個(gè)數(shù))

①把權(quán)重歸一化為一個(gè)概率分布:

如此使得ωt為一個(gè)概率分布。

② 對(duì)每個(gè)特征f,訓(xùn)練一個(gè)弱分類器hj,計(jì)算對(duì)應(yīng)所有特征的弱分類器的加權(quán)錯(cuò)誤率

③ 選取最佳的弱分類器ht(擁有最小錯(cuò)誤率):θt

④按照這個(gè)最佳弱分類器,調(diào)整權(quán)重:

其中θi=0表示被正確的分類,ei=1表示被錯(cuò)誤的分類,當(dāng)錯(cuò)誤分類時(shí):

3)最后的強(qiáng)分類器為:

1.4 級(jí)聯(lián)分類器

級(jí)聯(lián)分類器是由多個(gè)強(qiáng)分類器級(jí)聯(lián)而成的,其中,每一層均有Abadoost算法訓(xùn)練得到的強(qiáng)分類器構(gòu)成,第一層分類器得到疑似人臉的正確結(jié)果后,觸發(fā)第二層進(jìn)行分類,當(dāng)?shù)诙臃诸惼鞯玫揭伤迫四樀恼_結(jié)果后,觸發(fā)第三層進(jìn)行分類,依次類推,最后確定疑似人臉的圖像就確認(rèn)為人臉。反之,當(dāng)觸發(fā)到某一層時(shí),分類器得到的結(jié)果是非人臉時(shí),就立即停止對(duì)圖像的檢測(cè)。級(jí)聯(lián)分類器的結(jié)構(gòu)類似于金字塔,如圖3所示,通過級(jí)聯(lián)分類器,可以很對(duì)人臉做出檢測(cè)。由于本系統(tǒng)較為簡(jiǎn)單,所以只用到了4級(jí)強(qiáng)分類器構(gòu)成級(jí)聯(lián)分類器。

圖3 金字塔結(jié)構(gòu)Fig.3 The structure of Pyramid

2 人臉檢測(cè)系統(tǒng)

2.1 系統(tǒng)界面

基于VC++6.0搭建的人機(jī)界面,如圖4所示,該系統(tǒng)主要由3個(gè)部分組成,視頻成像區(qū),檢測(cè)區(qū),和菜單區(qū)。視頻成像區(qū)主要是基于攝像頭獲取的圖像進(jìn)行顯示,檢測(cè)區(qū)主要是基于視頻頭中的人臉和靜態(tài)圖像中的人臉的檢測(cè),并在左上方顯示出檢測(cè)到的人臉的圖像,菜單區(qū)是主要實(shí)現(xiàn)基于攝像頭視頻和靜態(tài)圖像中人臉檢測(cè)的操作。在視頻成像區(qū)下方,有 detect(檢測(cè))選項(xiàng)和 run(開始)選項(xiàng)。

圖4 人臉檢測(cè)系統(tǒng)界面Fig.4 The interface of face detection system

2.2 人臉檢測(cè)的軟件實(shí)現(xiàn)方法簡(jiǎn)介

2.2.1 系統(tǒng)流程

該系統(tǒng)可分為兩個(gè)模塊,靜態(tài)圖像人臉檢測(cè)和視頻圖像中的人臉檢測(cè)。

基于靜態(tài)圖像的人臉檢測(cè)流程大致可分為4個(gè)過程(如圖5所示):1)加載已經(jīng)訓(xùn)練好的分類器;2)將其轉(zhuǎn)化為計(jì)算機(jī)可以識(shí)別的內(nèi)部格式;3)加載該圖片以進(jìn)行檢測(cè);4)顯示檢測(cè)結(jié)果到檢測(cè)區(qū)。

圖5 基于靜態(tài)圖像的人臉檢測(cè)流程Fig.5 Flow chart of face detection based on static image

基于視頻圖像的人臉檢測(cè)主要流程為:1)攝像頭提取圖像;2)加載已訓(xùn)練好的級(jí)聯(lián)分類器并將圖像其轉(zhuǎn)化為內(nèi)部各式;3)判斷檢測(cè)標(biāo)志位,若為真,首先捕獲當(dāng)前一幀并創(chuàng)建該幀圖像,然后載入當(dāng)前一幀圖像,并對(duì)圖像的人臉區(qū)域進(jìn)行檢測(cè),反之,結(jié)束檢測(cè);4)將檢測(cè)到的結(jié)果顯示到檢測(cè)區(qū)。

2.2.2 openCV人臉檢測(cè)主要函數(shù)

openCV軟件包中提供了豐富的基于圖像和視頻處理的視覺類庫[4],該系統(tǒng)主要用到的函數(shù)[5]有:

1)cascade=(CvHaarClassifierCascade*)cvLoad (cascade_name,0,0,0); 該函數(shù)試下去呢載入級(jí)聯(lián)分類器的功能,其中,cascade_name為級(jí)聯(lián)分類器的路徑。

2)CvMemStorage*storage=cvCreateMemStorage(0);該函數(shù)創(chuàng)建一個(gè)默認(rèn)大小為64 kB的內(nèi)存塊并返回指向塊首的指針。

3)CvSeq*faces=cvHaarDetectObjects(small_img,cascade,storage,1.1,1,0,cvSize(40,40));該函數(shù)的功能是使用訓(xùn)練好的級(jí)聯(lián)分類器在圖像中找到包含人臉目標(biāo)的矩形區(qū)域,并將這個(gè)區(qū)域作為一個(gè)矩形框返回。

4)cvRectangle(img,LeftPoint,RightPoint,color,2,7,0);該函數(shù)實(shí)現(xiàn)對(duì)檢測(cè)到的人臉區(qū)域用方框標(biāo)記出來。

5)獲得被檢測(cè)到的人臉后,要對(duì)圖像進(jìn)行包括圖像色彩轉(zhuǎn)換、圖像大小變換和直方圖均衡化等相關(guān)處理,方可把檢測(cè)到的人臉顯示在檢測(cè)區(qū)中。相關(guān)的函數(shù)包括:cvCvtColor(img,gray,CV_BGR2GRAY); 該函數(shù)是對(duì)圖像進(jìn)行色彩轉(zhuǎn)換。 cvResize(gray,small_img,CV_INTER_LINEAR);該函數(shù)是對(duì)圖像的大小進(jìn)行變換。cvEqualizeHist(small_img,small_img);該函數(shù)的作用是對(duì)灰度圖像直方圖的均衡化。

6)對(duì)于視頻圖像的人臉檢測(cè)來說,還需要從電腦上的攝像頭讀取視頻,openCV提供很好的實(shí)時(shí)視頻采集,cvCapture*cvCaptureFromCAM (int 1);該函數(shù)的功能是對(duì)攝像頭(個(gè)數(shù)為1)打開進(jìn)行定義。

2.3 制作級(jí)聯(lián)分類器

制作分類器[6]需要制作正樣本文件和負(fù)樣本文件。負(fù)樣本可以來自于任意的圖片,但這些圖片不能包含目標(biāo)特征。負(fù)樣本由背景描述文件來描述。背景描述文件是一個(gè)文本文件,每一行包含了一個(gè)負(fù)樣本圖片的文件名(基于描述文件的相對(duì)路徑),該文件創(chuàng)建方法如下:采用Dos命令生成樣本描述文件。具體方法是在Dos下的進(jìn)入你的圖片目錄,比如我的圖片放在D:facedetect egdata中,則:按Ctrl+R打開Windows運(yùn)行程序,輸入 cmd,打開DOS命令窗口,輸入 d:回車,再輸入cd D:facedetect egdata進(jìn)入圖片路徑,再次輸入dir/b>negdata.dat,則在圖片路徑下生成一個(gè)negdata.dat文件,打開該文件將最后一行的negdata.dat刪除,這樣就生成了負(fù)樣本描述文件。對(duì)于正樣本文件,通常的做法是先把所有正樣本裁切好,并對(duì)尺寸做規(guī)整。由于HaarTraining訓(xùn)練時(shí)輸入的正樣本是vec文件,所以需要使用openCV自帶的CreateSamples程序,將準(zhǔn)備好的正樣本轉(zhuǎn)換為vec文件。正、負(fù)樣本創(chuàng)建之后,接下來要訓(xùn)練分類器,這個(gè)過程是由haartraining程序來實(shí)現(xiàn)的。該程序源碼由openCV自帶,且可執(zhí)行的程序在openCV安裝目錄的bin目錄下。訓(xùn)練結(jié)束后,會(huì)在目錄data下生成一些子目錄,即為訓(xùn)練好的分類器。用performance.exe進(jìn)行樣本的測(cè)試訓(xùn)練,最終生成xml文件。

3 測(cè)試結(jié)果

在個(gè)人用的筆記本電腦上進(jìn)行視頻圖像中的人臉檢測(cè)和圖片中的人臉檢測(cè)的測(cè)試,得到程序測(cè)試圖如圖6和圖7所示。結(jié)果表明,基于openCV的簡(jiǎn)單的人臉檢測(cè)系統(tǒng),可以快速的從視頻或靜態(tài)圖像中檢測(cè)到人臉,在檢測(cè)區(qū)將人臉用方框標(biāo)記,并在檢測(cè)區(qū)左上方顯示出檢測(cè)到的人臉。

圖6 基于攝像頭視頻的人臉檢測(cè)結(jié)果Fig.6 Result of face detection based on camera video

4 結(jié)束語

文中簡(jiǎn)要闡述了在Adaboost人臉檢測(cè)算法的基礎(chǔ)上,采用級(jí)聯(lián)分類器的方法檢測(cè)動(dòng)態(tài)視頻和靜態(tài)圖像中人臉,在檢測(cè)區(qū)對(duì)人臉進(jìn)行標(biāo)記,并對(duì)結(jié)果進(jìn)行了分析。分析結(jié)果顯示,采用計(jì)算機(jī)視覺類庫openCV實(shí)現(xiàn)基于Adaboost算法的人臉檢測(cè),具有檢測(cè)速度快,檢測(cè)結(jié)果準(zhǔn)確,實(shí)時(shí)性強(qiáng)等優(yōu)點(diǎn),且實(shí)現(xiàn)的方法簡(jiǎn)單實(shí)用。文中所闡述的基于openCV的簡(jiǎn)單人臉檢測(cè)系統(tǒng)可用于其他人臉識(shí)別與實(shí)時(shí)監(jiān)控的軟件系統(tǒng)開發(fā)。

圖7 基于靜態(tài)圖片的人臉檢測(cè)結(jié)果Fig.7 Result of face detection based on static image

[1]Ary Bradski,Adrian Kaebler.學(xué)習(xí)OpenCV[M].北京:清華大學(xué)出版社,2009.

[2]黃文杰,陳斌.一種快速圖像處理的積分方法[J].計(jì)算機(jī)應(yīng)用,2005,25(1):266-268.HUANG Wen-jie,CHEN Bin.A fast image process of integration method[J].Computer Applications,2005,25 (1):266-268.

[3]崔曉青.基于AdaBoost算法的人臉檢測(cè)人系統(tǒng)的研究與實(shí)現(xiàn)[D].長(zhǎng)春:吉林大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,2008.

[4]郭磊,王秋光.Adaboost人臉檢測(cè)算法研究及OpenCV實(shí)現(xiàn)[J].哈爾濱理工大學(xué)學(xué)報(bào),2009,14(5):123-126.GUO Lei,WANG Qiu-guang.Research of face detection based on Adaboost algorithm and openCV implementation[J].Journal of Harbin University of Science and Technology,2009,14(5):123-126.

[5]陳勝勇,劉勝.基于OpenCV的計(jì)算機(jī)視覺技術(shù)實(shí)現(xiàn)[M].北京:科學(xué)出版社,2008.

[6]唐徙文,曾義.人臉檢測(cè)級(jí)聯(lián)分類器快速訓(xùn)練算法[J].計(jì)算機(jī)仿真,2007,24(12):324-327 TANG Xi-wen,ZENGYi.An improved algorithm for constructing cascade classifier based on adaboost[J].Computer Simulation,2007,24(12):324-327.

猜你喜歡
特征檢測(cè)
抓住特征巧觀察
“不等式”檢測(cè)題
“一元一次不等式”檢測(cè)題
“一元一次不等式組”檢測(cè)題
“幾何圖形”檢測(cè)題
“角”檢測(cè)題
新型冠狀病毒及其流行病學(xué)特征認(rèn)識(shí)
如何表達(dá)“特征”
不忠誠(chéng)的四個(gè)特征
抓住特征巧觀察
主站蜘蛛池模板: 激情综合五月网| 国产小视频在线高清播放| 国产精品欧美日本韩免费一区二区三区不卡 | 又粗又大又爽又紧免费视频| 自拍中文字幕| 午夜在线不卡| 91无码国产视频| 亚洲天堂伊人| 黄色网在线| 国产欧美高清| 国产成人免费| 国产在线自在拍91精品黑人| 黄色网页在线播放| 国产久操视频| 激情视频综合网| 久久综合干| 国产女人在线视频| 国产成人精品一区二区三在线观看| 欧美午夜精品| 国产精品一区在线麻豆| 激情综合图区| 亚洲人成网址| 欧美区一区二区三| 日本色综合网| 国产欧美日韩视频怡春院| 粉嫩国产白浆在线观看| 欧洲亚洲一区| 久久这里只有精品2| 国产h视频免费观看| 国产精品护士| 99精品伊人久久久大香线蕉| 久久国产精品波多野结衣| 毛片卡一卡二| 久久99精品久久久久纯品| 亚洲精品你懂的| 日韩二区三区| 一本综合久久| 国产日韩欧美精品区性色| 国产在线观看一区精品| 国产资源免费观看| 亚洲欧美日韩动漫| 国产精品丝袜在线| 超碰aⅴ人人做人人爽欧美 | 精品一区二区三区水蜜桃| 国产午夜无码片在线观看网站 | 九九九精品成人免费视频7| 少妇露出福利视频| 中文字幕精品一区二区三区视频 | 久久精品人人做人人爽电影蜜月 | 国产午夜在线观看视频| 在线观看欧美国产| 久草热视频在线| 亚洲欧美在线综合图区| 久久久久久国产精品mv| 亚洲综合日韩精品| 国产剧情无码视频在线观看| 中文字幕丝袜一区二区| 亚洲AV无码久久精品色欲| 青青青国产视频| 亚洲人成网址| 国产无码精品在线| 综合色在线| 国产二级毛片| 亚洲午夜福利在线| 97国产成人无码精品久久久| 欧美视频二区| 免费人成视网站在线不卡| 亚洲三级电影在线播放| 国产成人精品视频一区二区电影| 天天操精品| 国产成人一区在线播放| 久久亚洲精少妇毛片午夜无码| 国产亚洲高清视频| 最新精品国偷自产在线| 呦视频在线一区二区三区| 久久人妻xunleige无码| 国模视频一区二区| 色综合久久综合网| 欧美国产视频| 青青草久久伊人| 亚洲成在线观看 | 欧美亚洲中文精品三区|