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

一種基于AdaBoost人臉檢測算法在Android平臺的實現

2014-03-28 01:53:32安恒煊張學習李超陳文輝鄒兵
電子設計工程 2014年8期
關鍵詞:特征檢測系統

安恒煊,張學習,李超,陳文輝,鄒兵

(1.廣東工業大學自動化學院,廣東廣州510006;2.北京航天航空大學北京100191)

人臉檢測技術是對輸入的圖像進行檢測并判斷是否包含人臉,并且能夠準確返回人臉出現的位置的一種計算機自動檢測技術[1],目前的人臉檢測技術主要分為兩大類,一類是基于幾何特征的人臉檢測方法,另外一類是基于統計理論的檢測方法。基于幾何特征的人臉檢測方法又可分為3種:基于先驗知識方法、基于特征不變方法、基于模板的方法。傳統的android人臉檢測技術,是通過基于特征不變的方法來實現的,根據已知的形態學相關知識找出人臉的特征如眼睛、鼻子、嘴等相關區域,然后再進行人臉判斷[2]。根據已知的形態學來來檢測人臉,比如通過定位雙眼位置來檢測人臉。指定雙眼來檢測人臉存在主觀問題,如人戴眼鏡多數情況下會影響人臉檢測的效果。而王延江等利用膚色特征方法將圖像分割成多個候選區域[5],然后對分割出來的候選區域使用小波分解以提取出相關人臉特征并進行分析,然后根據分析結果來判斷該區域是否包含人臉信息,此方法在復雜的環境下易出現很大的漏檢率。Viola P等[3-4]于2001年提出的基于Boosting方法是一個實時人臉檢測系統。他們首先用“積分圖”提高了圖像特征計算的速度,增加了系統運行效率。然后采用了AdaBoost方法對提取的特征值進行選擇,形成了多個弱分類器并按照各個分類器的權重組合成一個最終得強分類器,這樣能適應多種復雜的環境,檢測效果好,OpenCV現提供C、C++、Python通用編程接口,其開放性和實用性得到了大量從事計算機視覺研究和軟件開發人員的青睞[5-6]。本文將基于OpenCV開發的基于統計理論AdaBoost算法成功的移植到了Android系統中,經過測試,取得了較好的效果。

1 AdaBoost人臉檢測算法

在計算機視覺的目標檢測中,主要都是基于如下圖所示的過程[7]:

圖1 視覺目標檢測過程Fig.1 Visual target detection process

在上面的過程中,特征提取和分類器分類是整個檢測過程的核心部分。圖像的采集一般都是通過傳感器等設備獲得原始圖片,然后經過預處理,預處理的目的是為了更好地進行特征提取,而特征提取中,首先要考慮提取什么樣的特征,接著需要考慮使用何種分類算法將特征分開并進行分類,特征選取和特征計算在AdaBoost人臉檢測算法占有重要地位,這也決定了AdaBoost算法的運行速度[8-9]。

1.1 特征與特征值計算

基于像素的人臉檢測的算法計算成本較高,Haar特征是基于"塊"的特征,能夠降低計算成本,本文主要采用Haar特征,用來進行特征提取,并且采用積分圖的方式來計算特征值,由于采用了積分圖,能夠在常規時間算出每一個特征值,運算效率大大增加。

1.1.1 矩形特征

矩形特征值的定義為兩個不同矩形區域像素和之差,有以下常見的3種特征類型:2-矩形特征、3-矩形特征、4-矩形特征[10],分別對應如下各圖,如圖。

圖2 矩形特征模板Fig.2 Rectangular feature templates

根據上述定義,上圖2中的A,B,D的特征值計算公式:

C圖較于A,B,D不同,計算如下:

在上式(1)(2)中,將黑色區域像素和乘以2,主要是為了使兩種矩形區域中像素數目一致。在進行特征提取時,可以通過改變特征模板的大小與所處的位置,就可以獲取很多的特征值。單個矩形特征的計算是非常簡單與快速的[11]。由于需要各類原型特征模板及多種尺度在圖像區域的各個位置進行計算,從而導致了特征數量的總量相當大,這勢必會帶來非常大的計算量。假設W,H分別為圖像窗口的寬度和高度,X=[W/w],Y=[H/h],那么對于矩形特征的原型,其特征數量的計算如下:

根據公式,在人臉檢測過程中,一個2424的圖像窗口,特征總數可以超過110 000多個。這將導致后續的檢測速度很慢,所以Viola等人提出來積分圖的概念。

1.1.2 積分圖

Viola等人在2004年提出了積分圖的概念[12],加快了矩形特征值的計算速度。積分圖像的定義為:某個像素點的積分圖為圖像原點到該點的矩形區域內的所有像素值之和。另外,在計算積分圖的時候,所使用的像素值為圖像的灰度值,如果圖像為彩色圖像,則需要對彩色圖像進行灰度變換。

矩形的積分圖像公式定義如下:

圖3 垂直矩形積分圖像Fig.3 Vertical rectangular integral image

其中I(x′,y′)為圖像在點(x′,y′)處的灰度值,圖像I的積分圖可以使用遞推公式計算:

其中s(x,y)表示為列積分,其意義表示的是圖形點(x,y)及其在y方向上所有圖像點的灰度值之和。可以肯定為:

在使用積分圖的表示方法下,特征值的計算只和圖像的端點有關。所以不管特征矩陣的位置如何,只要遍歷圖像一次,就可以求得所有圖像子窗口的特征值。

2 AdaBoost分類器

目前在實際中應用的人臉檢測方法多為基于AdaBoost學習算法的方法。該方法在檢測人臉時實時性比較強,檢測率也比較高。本文主要采用AdaBoost算法在Android系統上實現人臉檢測。

AdaBoost算法是由Freund和Schapire在1995年提出來的[13],其核心思想是通過訓練獲得多個弱分類器,然后把弱分類器按照一定的權重加權構成強分類器。下面是AdaBoost算法過程:

給定樣本圖像集合(x1,y1),(x2,y2),…,(xn,yn),其中x表示所取樣本的空間,而y表示每個樣本所對應值,n表示樣本的個數。在該系統中y的值代表正負樣本,其中yi=1表示正樣本,yi=0表示負樣本。

1)初始化m個正樣本以及l個負樣本的權重。每個正樣本的權值在初始都一樣每個負樣本的權重為

2)設置循環迭代次數T。

3)對每一輪迭代t=1,…,T都做以下步驟:

①首先歸一化權重,使得所有權重能夠符合相應的概率分布,

②然后針對特征值j訓練其分類器hj。并把計算其評價誤差,即該分類器對樣本進行正確分類與錯誤分類加權和,其公式如下:

③然后從其中選擇出具有最小加權分類誤差的分類器ht,其對應的加權分類誤差為εt。

④然后對每個樣本都進行更新權重的操作,其公式如下:

參數的含義為:當樣本xi被分類器ht正確分類時,參數ei=0,而若其被錯誤分類時

4)最終將輸出強分類器,其公式為:

3 系統實現

本實驗是在Android模擬器上面開發,并且進行真機的人臉檢測,所以首先需要介紹Android應用的開發工具等,在訓練好分類器后,就需要使用該分類器來進行系統的實現。人臉檢測的模塊主要是設置分類器,然后獲取圖像數據,并向底層傳遞,底層圖像進行圖像數據的判斷,并返回人臉檢測信息。

圖4 人臉檢測流程圖Fig.4 The flow chart of face detection

3.1 系統開發環境搭建

由于Android的上層開發工具是Java語言,在Windows xp系統下,需要配置三個Java開發工具:Eclipse IDE,Java JDK和Android SDK。Opencv是面向C接口的,這里就牽涉到了Java與C/C++的混合編程了,這里借助Android NDK編寫本地代碼,Android NDK需要在Linux環境下運行,故本文采用Ubuntu9.1系統開發環境。本系統所使用的軟件資源如下:

系統環境:Ubuntu9.1,OpenCV

SDK:Android SDK2.3.1

NDK:Android NDK

開發環境:Eclipes3.5+JDK2.0+Android ADT

開發環境搭建步驟:

1)下載安裝java SDK,版本為SDK1.6。

2)下載Android NDK,并配置NDK開發環境。

3)配置Eclipse開發環境,下載并解壓Eclipse3.5,設置好開發環境后,下載Android ADT插件。

3.2 OpenCV編譯移植

在Opencv的3個cv,cvaux,cxcore的功能模塊中,與圖像界面相關的模塊是highgui模塊,如果需要將Opencv編譯到Android中,需要用到Android中的NDK,Android NDK是一個交叉編譯工具,開發者自己需要根據實際情況手動編譯Android.mk文件。這里采用GCC對Android ndk實行交叉編譯,GCC需要在Linux環境下運行,故本文采用Ubuntu 9.1,NDK版本為android-ndk-r4-linux。編譯時需要手動配置androi.mk,其文件格式如下:

LOCAL_PATH:=$(call my-dir)

include$(CLEAR_VARS)

LOCAL_MODULE:=OpenCV

LOCAL_SRC_FILES:=

cxalloc.cpp

cxarithm.cpp

cxarray.cpp

cxcmp.cpp

cxconvert.cpp

cxcopy.cpp

cxdatastructs.cpp

cxdrawing.cpp

cxdxt.cpp

cxerror.cpp

cximage.cpp

cxjacobieigens.cpp

cxlogic.cpp

cxlut.cpp

include$(BUILD_SHARED_LIBRARY)

其中,里面的LOCAL_MODULE關鍵字是指開發者最后生成的一個LOCAL_SRC_FILES,在Linux系統下,鍵入./ndk命令后,在工程目錄下會自動產生一個/libs/armeabi的文件夾,編譯時的.so文件就放入這個文件夾中。

3.3 人臉樣本創建

在人臉檢測中,樣本的選擇對于創建分類器有非常大的影響,如果選取的樣本足夠豐富,對于訓練的結果就比較好。如果選取不當,就會嚴重影響后面的檢測效果。訓練樣本分為正例樣本和反例樣本,其中正例樣本是指待檢測的目標樣本(如人臉或者手勢)反例樣本可以指其他任意的圖片,在本系統中,使用的是MIT人臉庫,其中樣本總數為7 087個,人臉樣本數有2706個,而非人臉樣本數有4 381個。在MIT樣本庫中的人臉樣圖像尺寸為20×20像素,在正樣本集合中都是正面的人臉,而且還有同一個人在不同光照條件下的樣本。非人臉樣本尺寸和人臉樣本相同,是從圖像中隨機自動截取的。如圖5,負樣本來自任意圖片,這些圖片都沒有包含目標特征,如圖6人臉正樣本包括基本的目標特征。

圖5 人臉負樣本Fig.5 Face the negative samples

圖6 人臉正樣本Fig.6 Face the positive samples

4 實驗結果及分析

本實驗通過與android自帶的人臉庫進行比較,系統的自帶的人臉檢測類FaceDetector,該類主要是采用模板匹配的方法,通過雙眼來檢測人臉的位置,但是無法檢測到人的嘴和側臉信息,并且戴上眼鏡會影響檢測效果,通過對系統FaceDetector進行單人臉檢測,發現檢測率也不是很高,而且當戴上眼鏡時,根本無法檢測到人臉。

圖7 Android系統人臉檢測Fig.7 The Android system face detection

本系統主要是通過輸入靜態圖片進行人臉檢測,并查看系統檢測檢測效果。本系統的簡單背景下單人臉圖片檢測如圖8。對比系統檢測如圖8,人臉檢測只檢測到了人臉的一部分,本系統人臉檢測完全檢測到人臉。

圖8 本系統人臉檢測Fig.8 The face detection system

對有眼鏡的圖片,檢測率也比較高。當人戴眼鏡時,系統檢測檢測不出人臉,而本系統對戴眼鏡的人臉也能夠檢測得到。

圖9 戴眼鏡的人臉檢測Fig.9 Face detection with a pair of glasses

本系統與系統自帶的人臉檢測用MIT人臉庫進行對比檢測,檢測結果如下表,通過MIT人臉庫的測試以及自制圖片的測試,通過158張626個人臉進行檢測,本系統達到91.69%的人臉檢測率。對比與Android系統自帶的人臉檢測功能,本系統有非常大的改進,能夠適用于多種應用環境。

表1 兩系統檢測比較Tab.1 The two system s test comparison

5 結論

目前的人臉檢測大多數是基于PC機處理,而本文中將AdaBoost算法成功移植到Android平臺上,達到了較高的檢測水平。使得AdaBoost算法實現了跨平臺應用。經過實驗證明,AdaBoost算法在Android平臺上,比Android系統自帶的人臉檢測,檢測效率高,能適用多種復雜環境。

[1] 梁路宏,艾海舟,徐光祜,等.人臉檢測研究綜述[J].計算機學報,2002,25(5):449-458.LIANG Lu-hong,AI Hai-zhou,XU Guang-you,et al.A survey of human face detection[J].Chinese Journal of Computers,2002,25(5):449-458.

[2] P Graf,et al.Locating Faces and Facial Parts[J].Proc.1st Int’l Workshop Automatic Face and Gesture Recognition,1995:41-46.

[3] Viola P,Jones MJ.Rapid Object Detection using a Boosted Cascade of Simple Features[J].Computer Vision and Pattern Recognition,2001(1):8-14.

[4] Viola P,Jones MJ.Robust Real-Time Face Detection.InternationalJournalofComputerVision.2004,57(2):137-154.

[5] Gray Bradski,Adrian Kaebler.Learning OpenCV:Computer Visionwith theOpenCVLibrary[M].USA:OReillymedia,2008.

[6] Willow Garage.OpenCV wiki[EB/OL].[2012-05](2012-07-01).http://opencv.willowgarage.com/wiki/Welcome.

[7] Vadakkepat De Silva L C,et a1.Multimodal Approach to Human-Face Detection and Tracking[J].IEEE Transactions on Industrial Electronics,2008,55(3):385-393.

[8] 黃超,謝康林,杜平.基于AdaBoost的快速人臉跟蹤算法[J]計算機工程,2000,0(z1):373-374.HUANG Chao,XIE Kang-lin,DU Ping.A fast face tracking algorithm based on powerfhl adaboost[J].Computer Engineering,2000,30(z1):373-374.

[9] 千海川,張立明.一種新的AdaBoost快速訓練算法[J].復旦學報,2004,43(1):27-33.QIAN Hai-chuan,ZHANG Li-ming.A novel fast training algorithm for adaboost[J].Journal of Fudan University,2004,43(1):27-33.

[10] E Osuna,Freund,and F.Girosi Training Support Vector Machines:An Application toFaceDetection[C]//Proc.IEEEConf.Computer Vision and Pattern Recognition,1997:130-136.

[11] B.Heiselet,T Serre,MPontil,et al.Component-based Face Detection[C]//Proc IEEE Computer Society Conference on Computer Vision and Pattern Recognition,2001:657-662.

[12] Viola P.,Jones M.J.Robust Real-Time Face Detection International[J].Journal of Computer Vision,2004,57(2):137-154.

[13] Meynet J,Popovici V,Thiran J P.Face detection with boosted Gaussian features.Pattern.Recognition,2007(40):2283-2291.

猜你喜歡
特征檢測系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
如何表達“特征”
不忠誠的四個特征
當代陜西(2019年10期)2019-06-03 10:12:04
抓住特征巧觀察
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
主站蜘蛛池模板: 欧美亚洲另类在线观看| 激情五月婷婷综合网| 精品一区二区三区视频免费观看| 97超碰精品成人国产| 熟妇丰满人妻av无码区| 国产簧片免费在线播放| 欧亚日韩Av| 高清无码手机在线观看| 永久免费无码日韩视频| 国产白浆视频| 亚洲精品第五页| 91国内在线观看| 国产尤物jk自慰制服喷水| 欧洲高清无码在线| 久久亚洲国产最新网站| 亚洲午夜片| 伊人久久青草青青综合| 国产精品成人免费综合| 国产一区成人| 亚洲一本大道在线| 国产精品19p| 夜色爽爽影院18禁妓女影院| 精品亚洲麻豆1区2区3区| a亚洲视频| 色天天综合久久久久综合片| 国产丝袜91| 97国内精品久久久久不卡| 亚洲国产成人无码AV在线影院L| 97国产成人无码精品久久久| 亚洲高清日韩heyzo| 欧美午夜理伦三级在线观看| 久久国产乱子| 四虎AV麻豆| 58av国产精品| 日本黄色不卡视频| 欧美一道本| 91网站国产| 国产中文一区二区苍井空| 欧美一级在线播放| 97国产在线播放| 久久婷婷国产综合尤物精品| 亚洲中文字幕23页在线| 在线中文字幕网| 找国产毛片看| 91娇喘视频| 四虎国产精品永久在线网址| 中文字幕久久亚洲一区| 欧美在线三级| 亚洲综合天堂网| 国产超薄肉色丝袜网站| 欧美日韩在线成人| 亚洲婷婷在线视频| 国产导航在线| 97在线公开视频| 亚洲精品国产日韩无码AV永久免费网 | 亚洲娇小与黑人巨大交| 亚洲国产黄色| 她的性爱视频| 制服丝袜在线视频香蕉| 女人18一级毛片免费观看| 精品人妻无码中字系列| 亚洲第一中文字幕| 亚洲制服丝袜第一页| 国产高清在线观看| 国产精品无码翘臀在线看纯欲| 99视频在线免费| 国产一区二区三区视频| 19国产精品麻豆免费观看| 亚洲最大福利视频网| 亚洲三级影院| 日本精品一在线观看视频| 日韩精品成人在线| 狠狠色噜噜狠狠狠狠色综合久| 亚洲国产日韩欧美在线| 无码中文字幕乱码免费2| 中国国产高清免费AV片| 午夜高清国产拍精品| 国产精品视频导航| 丁香五月婷婷激情基地| 夜夜操天天摸| jizz在线免费播放| 亚洲国语自产一区第二页|