• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于AdaBoost算法的人臉人眼分類器的設計與實現(xiàn)

      2015-09-27 08:23:00汪仕才馮桑咼騰
      現(xiàn)代計算機 2015年29期
      關鍵詞:人眼特征值人臉

      汪仕才,馮桑,咼騰

      (廣東工業(yè)大學機電工程學院,廣州 510006)

      基于AdaBoost算法的人臉人眼分類器的設計與實現(xiàn)

      汪仕才,馮桑,咼騰

      (廣東工業(yè)大學機電工程學院,廣州510006)

      0 引言

      AdaBoost算法最早由Freund和Schapire在1995年提出,隨后在2001年Paul Viola[1]等在其基礎上,通過引入“Haar”特征和“積分圖”的思想,設計了級聯(lián)式(cascaded)人臉檢測器,使人臉檢測的檢測率和檢測速度有很大提升。AdaBoost算法通過權重更新,能夠“聚焦于”那些比較困難的樣本,且算法簡單、實時性好,檢測速度快[2],在人臉檢測中有著廣泛的應用。例如,我國學者應用AdaBoost算法對ORL人臉庫進行實驗[3],還有采用膚色和AdaBoost方法相結合來進行人臉檢測,并在此基礎上結合人臉結構的邊緣特征及AdaBoost方法對眼睛進行精確定位[4]。AdaBoost算法的準確性依賴于訓練樣本的數(shù)量,且大量增加樣本數(shù)量還會增加訓練時間[5],因此,本文盡量全面的選取駕駛環(huán)境下的人臉人眼樣本,包括正臉、側(cè)臉、戴眼睛和部分遮擋等情況,況且本文人臉檢測系統(tǒng)的樣本訓練是在系統(tǒng)檢測之外,這為進一步實現(xiàn)人臉的實時檢測提供了可能。

      1 Haar特征及其特征值的計算

      1.1Haar特征及i其特征

      在模式識別的研究中,Haar特征能描述特定走向的結構,特別是對邊緣、線段等簡單的圖形結構比較敏感,能很好地表述人臉膚色和五官的信息,在優(yōu)化特征的計算和分類器的架構后,可以使分類器的訓練和檢測速度得到極大的提高。Haar特征由白色或黑色的兩種小矩形組成,分別排列成垂直、水平和對角線,即2-矩形特征、3-矩形特征和4-矩形特征三類[6],為了彌補Haar特征對于旋轉(zhuǎn)后多角度等其他情況下的人臉檢測的不足。在分類器的訓練中,針對具體的檢測要求,在三類基本Haar特征的基礎上擴充了Haar特征集[7],如圖1所示。

      圖1 擴充后的Haar特征集

      AdaBoost算法中分類器的訓練和利用分類器進行檢測這兩個過程,都需要通過計算Haar特征的特征值來實現(xiàn)。Haar特征的特征值反映的是圖像中局部區(qū)域的灰度變化,Viola對其定義為:白色矩形和黑色矩形在圖像子窗口中所對應區(qū)域的灰度級總和之差,其數(shù)學表達式可以定義為:

      其中,N為構成特征的矩形個數(shù),wi為第i個矩形的權重,Recsum(ri)為矩形所有像素點的像素值之和。

      1.2積分圖及Haar特征值的計算

      如圖2,對于圖像內(nèi)一點A,設其像素值為A(x,y)。若圖像為彩色,則首先要按照人臉色彩空間將其轉(zhuǎn)化為灰度取值。根據(jù)定義,該點的積分圖為其左上角所有像素之和,即圖中陰影部分,其定義式為:

      其中,ii(x,y)表示積分圖,表示原始圖像,其值是該點的灰度值,值域為[0,255]。

      下面就可以根據(jù)定義來計算矩形特征的特征值。以邊緣特征為例,如圖3所示,其中P(A)、P(B)分別表示區(qū)域A、B的灰度值和,ii(1)-ii(6)分別表示端點的積分圖,該特征的特征值可以表示為:P(A)-P(B)=ii (1)-ii(6)-2ii(3)+2ii(4)+ii(5)-ii(6)。

      2 人臉人眼分類器的設計

      2.1分類器的訓練流程分析

      自AdaBoost算法被提出以來,已經(jīng)有很多文獻全面描述了如何使用該算法訓練分類器(如文獻[5]),本文主要關注AdaBoost算法訓練分類器時程序的運行機制,為此本文設計的訓練流程如圖4所示。

      圖2 某點A的積分圖

      (1)創(chuàng)建Haar特征

      Haar特征由函數(shù)icvCreateIntHaarFeatures()創(chuàng)建,函數(shù)有三個參數(shù)winsize、mode和Sysmetric。其中,Mode是使用的特征類型,決定使用基本的5種特征還是其他。當Symmetric的值為0時,表示創(chuàng)建所有特征;當Symmetric的值為1時,表示只創(chuàng)建Haar特征中心在目標左半部分的所有特征。

      圖3 用積分圖計算邊緣特征的特值

      圖4  HaarTraining訓練分類器的流程圖

      (2)載入正樣本

      正樣本的載入函數(shù)為icvGetHaarTrainingData FromVec(),包含四個指針參(CvHaarTrainingData*Data,CvIntHaarClassifier*cascade,constchar*Filename,int*consumed)和兩個整型參數(shù)(int first,int count)。其中,程序第一次運行到此時可以取出count個正樣本,在程序后續(xù)運行到此時,只有被正確分類的樣本才能讀取到。consumed參數(shù)表示查詢過的正樣本總數(shù)。此外,積分圖像的計算通過函數(shù)調(diào)用icvGetAuxImages來實現(xiàn)。

      (3)載入負樣本

      負樣本的載入函數(shù)為icvGetHaarTrainingData FromBG(),其中,程序第一次運行到此時可以取出count個負樣本,在程序后續(xù)運行到此時,只有被分類錯誤的樣本才能讀取到。acceptance_ratio=((double)count)/consumed_count,即虛警率,記錄的是實際取出的負樣本數(shù)與查詢過的負樣本數(shù)之比。如果虛警率達到預設值,則訓練停止。另外,積分圖像的計算也通過函數(shù)調(diào)用icvGetAuxImages來實現(xiàn)。

      (4)計算Haar特征值

      Haar-like特征值由函數(shù)icvPrecalculate計算,包含data、HaarFeatures和numprecalculated三個參數(shù)。numprecalculated的計算公式為:

      numprecalculated=(int)(((size_t)mem)*((size_t)1048576)/(((size_t)(npos+nneg))*(sizeof(float)+sizeof (short)))

      其中,mem是內(nèi)存大小,1048576(即1024×1024)表示1M字節(jié)。sizeof(short)為保存一個特征值需占用的字節(jié)數(shù),sizeof(short)表示對特征值排序后保存一個排序序號需占用的字節(jié)數(shù)。

      (5)訓練一個強分類器

      訓練強分類器的函數(shù)為:icvCreateCARTStageClassifier(),每一級強分類器的收斂條件為在開始訓練時設定的參數(shù)minhitrate和maxfalsealarm。單個強分類器的訓練流程如圖5所示。

      (6)將級聯(lián)強分類器信息寫入XML文本

      強分類器信息需要保存到臨時文件AdaBoost-CARTHaarClassifier.txt中,該功能由函數(shù)icvSaveStage-HaarClassifier負責,然后,函數(shù)cvSave(xml_path,cascade)讀取臨時文件中的級聯(lián)強分類器信息,并將其保存到xml文件中。至此,整個訓練部分完畢。

      (7)測試分類器的性能

      調(diào)用icvGetHaarTrainingDataFromVec()、icvGetH-aarTrainingDataFromBG()函數(shù),分別測試檢出率和虛警率。

      圖5 單級強分類器訓練流程圖

      2.2利用OPenCV訓練分類器

      OpenCV中提供了許多機器學習算法,包括K均值、決策樹、AdaBoost算法等,而且還提供了訓練分類器的方法。我們可以利用用OpenCV提供的程序來訓練得到一個分類器,訓練主要分為以下三個步驟:

      (1)準備樣本庫

      考慮到在真實的駕駛環(huán)境中,駕駛員的頭部不可避免的經(jīng)常會左右晃動、上下調(diào)整、扭頭看后視鏡等,本文從實驗室模擬駕駛環(huán)境、戶外真實駕駛環(huán)境以及MIT-CBCLFaceDatabases人臉數(shù)據(jù)庫中,挑選修改包含人臉樣本的2706張圖片,制作得到駕駛員人臉標準樣本庫。其中,在創(chuàng)建人臉、人眼正樣本的過程中,首先要將得到的圖片進行篩選,剔除去那些不適合于做樣本集的圖片:

      ①人臉不清晰;

      ②人臉正面旋轉(zhuǎn)角度過大(>20°),人臉左右偏轉(zhuǎn)角度過大(>45°)[8];

      ③人臉五官不全或者五官被遮擋;

      ④駕駛員佩戴的眼鏡反光太強烈;

      ⑤在實際駕駛環(huán)境中出現(xiàn)的概率并不高的圖片等等。

      而人眼樣本除了按要求截取和剔除一些不符合訓練要求的人眼樣本外,還要分別截取得到部分左眼睜開/閉合樣本、部分右眼睜開/閉合樣本和部分佩戴眼鏡的人眼睜開/閉合樣本。

      負樣本集是指不包含目標樣本的其他任意圖片。本文研究的人臉檢測是應用在駕駛環(huán)境中,所以負樣本的選取主要截取來自駕駛室內(nèi)的背景,特別是一些容易與人臉區(qū)域相混淆的圖片,當然也適當選取一些自然、生活、交通場景的圖片。為了增大負樣本的差異性,負樣本在選取時盡量不重復。

      (2)創(chuàng)建樣本描述文件;

      建立好正負樣本集后,接下來分別將正負樣本集進行編碼描述,以便訓練程序執(zhí)行時有序地調(diào)用。正樣本集的描述文件,用于描述正樣本的文件名,包括:絕對路徑或相對路徑、正樣本的數(shù)量、正樣本在圖片中的位置、正樣本的大小,其描述文件的格式為:[filename][#of objects][[xy width height][…2nd object]...]。負樣本集的描述文件需要生成一個包含了所有負樣本文件名和絕對/相對路徑名的文件就行。具體創(chuàng)建步驟如圖6所示。

      圖6 創(chuàng)建樣本描述文件的步驟

      在DOS命令窗口下,設置參數(shù)調(diào)用CreateSamples程序,Createsamples的命令行參數(shù)設置及其含義如下表1所示。

      表1 CreateSamples程序的命令行參數(shù)及其設置

      (3)訓練分類器

      編寫一個批處理程序來啟動HaarTraining訓練程序,并提供必要的參數(shù)信息。其中,分類器、正樣本vec文件和負樣本描述文件的路經(jīng)設置與啟動Create Samples程序時的設置類似,除此之外,還要設置訓練分類器的級數(shù)、決定用于階段分類器的弱分類器的個數(shù)和計算時的可用內(nèi)存大小等,這些參數(shù)設置對分類器的識別率和檢測速度有重要影響,具體設置如表2所示。

      表2 HaarTraining程序的命令行參數(shù)及其設置

      3 分類器的測試與分析

      3.1實驗設備的選擇

      由于本課題旨在將疲勞檢測技術向?qū)嵱没茝V,因此必須模擬車載環(huán)境。本文的車載實驗和視頻采集主要是利用家用普通車型完成??紤]到車型的不同,駕駛空間和環(huán)境的改變會對駕駛員的舒適感等帶來變化,本文分別采用兩款大小和配置不同的實驗車型,兩款實驗用車的相關參數(shù)如表3所示。除此之外,我們還選擇帶紅外補光夜視功能的宏普達行車記錄儀采集視頻,同時選擇型號為T420的移動PC,作為該實驗的處理器。

      表3 實驗用車的相關參數(shù)比較

      3.2實驗結果分析

      本文基于VS2010和OpenCV2.4.3平臺,編寫程序?qū)θ四槞z測算法和人眼定位算法進行聯(lián)合測試,以驗證訓練得到的分類器的魯棒性。測試程序運行后反饋的結果窗口如圖7所示。

      圖7 人臉檢測和人眼定位算法聯(lián)合測試程序的界面

      本部分的測試實驗選擇了10位不同的測試者,其中男性8名,女性2名,分別在白天和黑夜兩種光照環(huán)

      境下進行實驗。測試結果如表4所示。

      表4檢測率實驗結果

      綜合測試結果表明,本文駕駛員人臉檢測算法的檢測率和實時性都達到了較高的水平,算法的平均耗時約為80ms,白天的檢測率達到93.7%,夜晚的檢測率達到90.3%,同時,也說明本文樣本集的選擇和分類器的訓練是成功的,達到了設計的預期效果。另外,在測試中發(fā)現(xiàn),人臉在一定偏轉(zhuǎn)角度內(nèi)(左右偏轉(zhuǎn)≤45°、正面旋轉(zhuǎn)≤20°)、鏡片反光效應以及部分特征丟失時,算法還是可以檢測到人臉的,但是鏡片反光效應卻對人眼的定位造成了一定的影響,因此不利于疲勞檢測。

      [1]Paul V,Michael J..Robust Real-time ObjectDetection.TR CRL 200I/01,Cambridge UK:Cambridge Research Laboratory,2001.

      [2]謝歡.基于AdaBoost算法訓練分類器的研究及其在人臉檢測中的應用[D].天津:天津工業(yè)大學,2010,17-18.

      [3]曹珍.在人臉檢測中對AdaBoost算法的應用研究[J].內(nèi)蒙古:赤峰學院學報(自然科學版),2014,30(3):17-19.

      [4]李維維等.基于AdaBoost算法的人臉疲勞檢測[J].哈爾濱:自動化技術與應用,2014,33(2):46-48.

      [5]陸偉春等.基于AdaBoost算法的快速人臉檢測研究[J].云南:云南民族大學學報,2014,23(3):218-22.

      [6]Viola P,Jones M.Rapid Object Detection Using a Boosted Cascade of Simple Features[C].Proc.IEEE Conf.on Computer Vision and Pattern Recognition,Kauai,HI.2001,1:511-518.

      [7]Lienhart R,Maydt J.An Extended Set of Haar-like Features for Rapid Object Detection[J].IEEE ICIP,2002,1:900-903.

      [8]徐鎮(zhèn)輝等.基于眼睛定位及AdaBoost算法的平面旋轉(zhuǎn)人臉檢測[J].黑龍江:佳木斯大學學報,2013,31(5):718-721.

      Face Categorizer;AdaBoost Algorithm;Face Detection;Eyes Orientation

      Design and Implementation of Face and Eye Categorizer Based on AdaBoost Algorithm

      WANG Shi-cai,F(xiàn)ENG Sang,GUO Teng
      (School of Electro-machanical Engineering,Guangdong University of Technology,Guangzhou 510006)

      1007-1423(2015)29-0055-06

      10.3969/j.issn.1007-1423.2015.29.014

      汪仕才(1986-),男,湖北黃岡人,碩士,研究方向為駕駛疲勞預警系統(tǒng)的研究

      馮桑(1973-),男,海南瓊海,博士后,副教授,研究方向為汽車智能控制與輔助駕駛技術、汽車安全及人機工程學

      咼騰(1987-),男,湖南岳陽,碩士研究生,研究方向為疲勞駕駛檢測、汽車智能控制、模式識別

      2015-09-22

      2015-10-10

      人臉檢測和人眼定位是檢測駕駛疲勞的首要工作,而人眼準確定位和檢測速度直接影響后續(xù)疲勞檢測的實時性和魯棒性?;贏daBoost算法檢測速度快,泛化能力強等特點,通過建立針對駕駛環(huán)境下的人臉、人眼樣本集,深入研究駕駛員的人臉人眼識別問題。實驗證明,AdaBoost級聯(lián)分類器不僅能夠準確檢測人的正臉,而且對于側(cè)臉、戴眼睛和部分遮擋也有很高的識別率。

      人臉分類器;AdaBoost算法;人臉檢測;人眼定位

      Face detection and eyes orientation are the primary task of detecting driver fatigue,and the real-time and robustness of the following fatigue detection is directly influenced by the accurate orientation of human eyes and the speed of detection.Studies the recognition problem of driver's face and eyes further through establishing the sample database of face and eye under the driving environment,which is based on the features of fast detection speed and strong generalization ability of AdaBoost algorithm.Experimental results show that the AdaBoost cascade classifier can not only accurately detect frontal faces,but also have very high recognition rate for a face in profile or with glasses and the partially occluded face.

      猜你喜歡
      人眼特征值人臉
      一類帶強制位勢的p-Laplace特征值問題
      有特點的人臉
      單圈圖關聯(lián)矩陣的特征值
      人眼X光
      快樂語文(2019年9期)2019-06-22 10:00:38
      人眼為什么能看到虛像
      三國漫——人臉解鎖
      動漫星空(2018年9期)2018-10-26 01:17:14
      閃瞎人眼的,還有唇
      優(yōu)雅(2016年12期)2017-02-28 21:32:58
      看人,星光璀璨繚人眼
      電影故事(2016年5期)2016-06-15 20:27:30
      基于商奇異值分解的一類二次特征值反問題
      馬面部與人臉相似度驚人
      轮台县| 志丹县| 外汇| 江陵县| 江川县| 拉萨市| 凤凰县| 凤翔县| 集贤县| 丽水市| 察隅县| 五台县| 改则县| 彭州市| 温宿县| 兴业县| 大姚县| 佛学| 台东县| 兴隆县| 巴塘县| 吉隆县| 贡觉县| 德清县| 吴江市| 福海县| 永济市| 平湖市| 通化县| 玉龙| 县级市| 万州区| 灵璧县| 新乡县| 兰西县| 航空| 曲周县| 海原县| 莫力| 彰武县| 霍州市|