亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2012-02-15 03:29:52陳志恒姜明新
        電子設(shè)計工程 2012年10期
        關(guān)鍵詞:級聯(lián)人臉分類器

        陳志恒,姜明新

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

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

        1 AdaBoost人臉檢測算法

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

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

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

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

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

        1.1 Haar-like特征

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

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

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

        1.2 積分圖

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

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

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

        圖2 特征和計算Fig.2 The sum of features

        同理,點2、點3、點4的積分圖像分別為:

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

        1.3 Adaboost算法基本原理

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

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

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

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

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

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

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

        如此使得ωt為一個概率分布。

        ② 對每個特征f,訓練一個弱分類器hj,計算對應(yīng)所有特征的弱分類器的加權(quán)錯誤率

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

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

        其中θi=0表示被正確的分類,ei=1表示被錯誤的分類,當錯誤分類時:

        3)最后的強分類器為:

        1.4 級聯(lián)分類器

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

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

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

        2.1 系統(tǒng)界面

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

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

        2.2 人臉檢測的軟件實現(xiàn)方法簡介

        2.2.1 系統(tǒng)流程

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        3 測試結(jié)果

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

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

        4 結(jié)束語

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

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

        [1]Ary Bradski,Adrian Kaebler.學習OpenCV[M].北京:清華大學出版社,2009.

        [2]黃文杰,陳斌.一種快速圖像處理的積分方法[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算法的人臉檢測人系統(tǒng)的研究與實現(xiàn)[D].長春:吉林大學計算機科學與技術(shù)學院,2008.

        [4]郭磊,王秋光.Adaboost人臉檢測算法研究及OpenCV實現(xiàn)[J].哈爾濱理工大學學報,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的計算機視覺技術(shù)實現(xiàn)[M].北京:科學出版社,2008.

        [6]唐徙文,曾義.人臉檢測級聯(lián)分類器快速訓練算法[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.

        猜你喜歡
        級聯(lián)人臉分類器
        有特點的人臉
        三國漫——人臉解鎖
        動漫星空(2018年9期)2018-10-26 01:17:14
        BP-GA光照分類器在車道線識別中的應(yīng)用
        電子測試(2018年1期)2018-04-18 11:52:35
        級聯(lián)LDPC碼的STBC-OFDM系統(tǒng)
        電子制作(2016年15期)2017-01-15 13:39:09
        加權(quán)空-譜與最近鄰分類器相結(jié)合的高光譜圖像分類
        結(jié)合模糊(C+P)均值聚類和SP-V-支持向量機的TSK分類器
        基于級聯(lián)MUSIC的面陣中的二維DOA估計算法
        馬面部與人臉相似度驚人
        長得象人臉的十種動物
        奇聞怪事(2014年5期)2014-05-13 21:43:01
        基于LLE降維和BP_Adaboost分類器的GIS局部放電模式識別
        国产av国片精品| 免费亚洲一区二区三区av| 亚洲 欧美 国产 制服 动漫| 免费a级毛片出奶水| 国产精品白浆无码流出| 精品人妻一区二区视频| 无码人妻丰满熟妇区免费| 人妻被公上司喝醉在线中文字幕| 三级日韩视频在线观看| 一区二区三区视频| 国产精品乱码在线观看| 国产精品爽爽VA吃奶在线观看| 国产久色在线拍揄自揄拍| 天堂国产一区二区三区| 国产精品无码日韩欧| 国产成人AV乱码免费观看| 国产黄久色一区2区三区| 亚洲av无码乱码在线观看裸奔| 国产精品厕所| 亚洲成人激情在线影院| 日本二一三区免费在线| 国产如狼似虎富婆找强壮黑人| 人妻无码aⅴ中文系列久久免费| 手机在线观看成年人视频| 97丨九色丨国产人妻熟女| 国产精品午夜无码av天美传媒| 高h视频在线免费观看| 国产精品一区久久综合| 成人免费xxxxx在线观看| 亚洲人成综合网站在线| 精品国产一区二区三广区| 香蕉成人伊视频在线观看| 最近最好的中文字幕2019免费| 99久久久精品免费| 在线观看在线观看一区二区三区| 亚洲成在人线av品善网好看 | 国产日韩网站| 亚洲综合精品一区二区三区| 99re6在线视频精品免费下载| 性色av无码一区二区三区人妻| 日本中文字幕一区二区高清在线 |