翟社平,李 威,李 煬
(西安郵電大學 計算機學院,陜西 西安 710121)
人體特征檢測算法的設計與實現
翟社平,李 威,李 煬
(西安郵電大學 計算機學院,陜西 西安 710121)
人體特征檢測是特征識別技術的基礎,特征檢測技術運用到諸多領域,從刑偵領域的人臉檢測到手機應用領域的指紋解鎖都有涉及。為了實現人體特征檢測算法的分析與研究,在現場可編程邏輯門陣列平臺中,提出一種基于SAdaboost的人體特征檢測算法。該算法結合了支持向量機和Adaboost分類器算法的優點,實現人體特征圖像的降維處理,并對圖像進行分類處理,實現人體特征元素的檢測。整個設計基于ZedBoard硬件平臺,該平臺具有較強的可重構性和并行處理的能力,完成了人體特征圖像檢測算法的設計與實現,實現了對人體特征圖像中的人臉、人眼、人體框架3種人體元素的檢測。通過對比分析實驗結果,驗證了該算法的有效性。
現場可編程邏輯門陣列;支持向量機;Adaboost;分類器
特征檢測可依據設備采集的原始數據來訓練機器學習模型,從而對測試集進行分類檢測[1-3]。特征檢測廣泛應用于人機交互、計算機視覺等領域,它是智能家居、物聯網的重要組成部分。
文獻[4]使用了改進的Adaboost算法對人臉進行檢測;文獻[5]利用紅外技術對人臉進行識別;整個特征檢測識別的過程分為數據采集、預處理、特征提取選擇和分類檢測4個模塊[6]。其中,文獻[4]只能實現人臉的檢測,不能完成人體框架的檢測;文獻[5]研究識別圖像是否為人臉,沒能實現對人體特征的進一步識別,對于人體特征檢測領域的研究,還存在一些難題,如圖像處理速度慢、效果差等[7]。
近幾年,基于圖像處理的檢測識別系統迅速發展[8-9],在此背景下,文中提出一種基于ZedBoard硬件平臺的人體特征檢測算法。該算法采用支持向量機分類器對人體框架信息進行檢測分析[10],并對人體框架進行標注,實現人體特征檢測。
1.1 分類器
支持向量機(SVM)對于線性不可分的情況,通常使用非線性映射的算法[11],在解決非線性、小樣本及高維模式識別中表現出其特有的優勢[12]。SVM算法流程大致可以分為兩部分:訓練分類器和決策部分。SVM算法的訓練過程中需提取大量的樣本特征,根據樣本特征值訓練分類器,該分類器是判別輸入圖像的依據。
1.2 Adaboost算法
Adaboost的人體特征檢測算法的訓練過程,實質上是將具有最強分類能力的特征作為最優的弱分類器,接著將弱分類器轉化為強分類器的過程。弱分類器的訓練過程如下[13]:
1)系統初始化設置:定義M個訓練樣本,N個矩形特征;數組feature[i][j]存儲樣本的特征值(1≤i≤N,1≤j≤M),令數組V[i]=feature[i][],其表示第i個矩形特征下所有樣本的特征值,MAX_V表示均方誤差。
2)循環:FOR(i=0;i (1)對每一個矩形特征下所有的樣本特征值按從小到大的方式進行排序。 (2)FOR(j=0;j 計算前j個樣本的離散度: 計算后m-j個樣本的離散度: Discretem-j= IF(Discretej+Discretem-j MAX_V=Discretej+Discretem-j 更新均方誤差,記錄弱分類器的閾值θ=V[j],分類置信度α1=Discretej,α2=Discretem-j。 (3)記錄均方誤差最小的矩形特征坐標。 3)輸出最優矩形特征的參數,得到一個弱分類器。 Haar與Adaboost算法流程如圖1所示。 首先計算出待檢測人體特征圖像Haar[14]特征值,根據不同的特征值設計不同的分類器。然后利用樣本的Haar特征進行分類器訓練,將大量弱分類器疊加起來,得到一個級聯的強分類器。 2.1 優化算法 Haar特征只能描述水平、垂直、對角等簡單的灰度結構,無法對一些復雜環境下的人體特征圖像進行檢測。改進的Adaboost算法用一種新型的稀松特征來代替Haar,相比于Haar特征和它的擴展特性,稀松特征更具優勢[15]。由于稀松特征的指數復雜度大,導致無法列舉所有的可能組合,因此文中用一種啟發式的搜索算法。該算法可以為每一次循環中的Adaboost算法訓練得到弱分類器。其中,啟發式搜索是人工智能領域中一個經典最優化問題[16]。 圖1 算法流程 得到最優的特征后,可根據上述經典Adaboost算法的訓練思路得到弱分類器,然后再得到強分類器。 優化的Adaboost算法提取圖像的稀松特征,檢測復雜環境下的人體特征圖像,能夠成功辨別圖像中的多人特征,并對其進行標注。 2.2 SAdaboost算法 SAdaboost算法結合Adaboost和SVM來實現人體特征檢測系統的設計。 SAdaboost算法是整個圖像檢測流程中的核心部分,其中圖像檢測流程如圖2所示。 首先根據算法設計要求訓練SVM分類器和Adaboost分類器;然后依據分類器文件(.XML文件)對圖像進行檢測處理,SVM分類器對輸入的圖像進行檢測,檢測圖像中是否含有人體部分。若有,則對其進行標注。Adaboost分類器對臉、眼等人體特征元素進行檢測并標注。SAdaboost算法的圖像檢測系統的部分偽代碼如圖3所示。 偽代碼實現的功能是對輸入的一張圖像進行檢測,并標注圖像中的人體特征部分。圖4是SAdaboost算法的人體特征圖像檢測結果。 結果顯示標注了人體框架以及人臉部分。分類器文件可簡單地認為是一個閾值,該值可作為檢測人體特征元素的依據。 圖2 圖像檢測流程 圖3 SAdaboost算法的部分偽代碼 2.3 算法的實現 SAdaboost算法在ZedBoard硬件平臺上實現,需經過圖5所示的配置過程。 基于ZedBoard平臺的人體特征檢測步驟如下: 首先,在Linux平臺中安裝并配置OPENCV; 其次,安裝交叉編譯環境,用于編譯SAdaboost算法,生成可執行文件; 最后,ZedBoard中運行.O文件以及鏡像文件,實現人體特征檢測。 圖4 基于SAdaboost算法的特征檢測結果 圖5 配置過程 實驗結果表明,PC機處理一張圖片平均耗時21.067 ms,ZedBoard平均耗時177.058 ms。相比PC機而言,ZedBoard平臺更耗時,但ZedBoard平臺的資源利用率高,并且能實現人體特征檢測算法的設計。 整個設計完成了算法優化與改進,并最終在ZedBoard上實現了人體特征的檢測。能夠實現對輸入圖像中的人臉、人眼、人體框架等人體特征部分進行檢測,并對這些特征部分進行標注。 [1] Incel O D,Kose M,Ersoy C.A review and taxonomy of activity recognition on mobile phone[J].BioNanoScience,2013,3(2):145-171. [2] 朱虎明,焦李成.基于免疫記憶克隆的特征選擇[J].西安交通大學學報,2008,42(6):679-682. [3] 王 帆,趙春暉,張 志.基于克隆選擇算法的人臉特征選擇[J].應用科技,2009,36(3):11-14. [4] 劉 瓊,彭光正.一種改進的AdaBoost人臉檢測算法[J].計算機應用與軟件,2011,28(6):265-268. [5] 伍世虔.紅外人臉識別[J].西安郵電大學學報,2013,18(1):11-21. [6] 王忠民,曹 棟.基于蟻群算法的行為識別特征優選方法[J].西安郵電大學學報,2014,19(1):73-77. [7] 侯夢華.基于機器視覺的實時目標檢測系統研究[D].廣州:廣東工業大學,2008. [8] 陸振杰,宋 進.單幅數字圖像多尺度空間下的場景深度估計[J].計算機技術與發展,2013,23(1):51-53. [9] 于新輝,張 建,李偉濤.基于生命周期分析信息安全管理體系[J].計算機技術與發展,2012,22(3):237-239. [10] 周 川,林學訚.基于核函數因素分解模型的表情的合成與識別[J].清華大學學報:自然科學版,2006,46(10):1751-1754. [11] 衡 霞,王忠民.基于手機加速度傳感器的人體行為識別[J].西安郵電大學學報,2014,19(6):76-79. [12] 吳 青,趙 雄.一類新樣條光滑支持向量機[J].西安郵電大學學報,2013,18(6):68-74. [13] 何世民.基于Adaboost算法的人臉檢測及其在DSP平臺上的移植[D].哈爾濱:哈爾濱理工大學,2010. [14]PapageorgiouC,PoggioT.Atrainablesystemforobjectdetection[J].InternationalJournalofComputerVision,2000,38(1):15-33. [15]HuangC,AiH,LiY,etal.Highperformancerotationinvariantmulti-viewfacedetection[J].IEEETransactionsonPatternAnalysisandMachineIntelligence,2007,29(4):671-686. [16] 李瑞淇.基于膚色和改進的Adaboost人臉檢測算法研究[D].西安:西安電子科技大學,2014. Design and Implementation of Human Characteristics Detection Algorithm ZHAI She-ping,LI Wei,LI Yang (School of Computer,Xi’an University of Posts and Telecommunications,Xi’an 710121,China) Human feature detection is the basis of feature recognition technology which has been applied to many areas,from the face of criminal investigation to fingerprint unlock in the field of mobile application is involved.In order to achieve the analysis and study of human characteristics detection algorithm,in platform on field-programmable gate array,a body feature detection algorithm based on SAdaboost is presented.The algorithm combines the advantages of SVM and Adaboost classifier algorithm to reduce the dimension of human characteristics and to achieve the detection of human characteristic elements by image classification processing.Entire design is based on ZedBoard,which has a strong ability to reconfigurable and parallel processing,completing the design and implementation of human features image detection algorithm,realization of detection for human body elements,including face,eye,and human framework.Through comparative analysis of the experimental results,the validity of the algorithm is verified. FPGA;support vector machines;Adaboost;classifier 2015-06-04 2015-09-10 時間:2016-02-18 陜西省自然基金面上項目(2012JM8044);陜西省教育科研計劃項目(12JK0733);西安郵電大學創新基金項目(114-602080034) 翟社平(1971-),男,博士,副教授,研究方向為語義Web、智能Agent、Web服務及云計算等;李 威(1990-),男,碩士研究生,研究方向為嵌入式應用。 http://www.cnki.net/kcms/detail/61.1450.TP.20160218.1630.024.html TP391 A 1673-629X(2016)03-0044-03 10.3969/j.issn.1673-629X.2016.03.0112 算法的設計與實現





3 結果分析
4 結束語