王洋 鄭佳春


摘 要:為了在視頻流中準確檢測到人臉,文中基于OpenCV設計了一個人臉檢測系統。使用Haar和LBP兩種算子提取特征,通過AdaBoost算法構造級聯分類器,檢測出人臉區域。通過計算機仿真驗證,發現采用LBP算子提取特征的正面檢測率更高,達90%以上,且檢測時間更短,平均檢測時間降低1個數量級,取得了較好的效果。該模塊可移植性強,可擴展,為后續研究打下了良好的基礎。
關鍵詞:視頻流;特征提取;局部二值模式;人臉檢測
中圖分類號:TP39;U644.8 文獻標識碼:A 文章編號:2095-1302(2018)03-00-03
0 引 言
隨著計算機技術和數字成像技術的進步,機器視覺技術蓬勃發展。人臉識別一直是計算機視覺和人工智能中的重要問題。人臉識別技術因無需與用戶進行肢體接觸,使用簡單、安全,經過幾十年的研究和發展,已成為一項熱門的研究課題,受到越來越多研究者的重視。該技術可廣泛應用于公共場所人口統計及視頻監控,安全駕駛提醒,門禁管理系統等相關領域。因此找到一個高效明了的算子提取特征描述人臉和分類器至關重要。研究者為此提出了主成分分析法 (PCA)[1]、線性判別式分析(LDA)[2]等全局描述方法和Haar[3]特征與LBP[4]特征等局部描述的特征等。局部特征在不同的光照及姿態和復雜環境下,具有較強的魯棒性,得到了廣泛應用。本文利用Visual Studio 2013和開源計算機視覺平臺OpenCV搭建了一個人臉識別模塊,利用Haar和LBP兩種算子提取特征,進行視頻流的人臉識別。該模塊搭建方便,可移植性強,在Windows,Android和iOS系統上均可實現。
1 人臉識別模塊
1.1 Haar特征
Haar特征是以圖像灰度分布為基礎并反映圖像灰度值變化的一種特征,主要是由黑白矩陣像素組合而成的不同模板,包含邊緣特征、線性特征、中心環繞特征。人的面部有很多特征,比如眼睛顏色比周圍皮膚顏色深,嘴唇顏色比周圍皮膚顏色深等。對于一個24×24的圖片來說,面部特征多達9萬余個,也正是因為這一特點導致訓練時間過長。面部特征可由Haar特征表示,定義左上角為白色區域,以此交錯。該模板的特征值是白色填充區域的像素值之和與黑色填充區域的像素值之和的差值[5]。基于人臉特征的Haar特征如圖1所示。
1.2 積分圖
使用積分圖可以實現上述黑色和白色特征數值的計算,大大提高了圖像特征值的計算效率。積分圖[6]是一種能夠描述全局信息的矩陣表示方法,示意圖如圖2所示。用公式表示為:
1.3 LBP特征
LBP[7,8]是一種描述圖像紋理特征的算子,具有灰度不變性、旋轉不變性和統一模式等優點。Ojala最早提出了LBP算子,將其用于局部紋理特征描述。
假設局部鄰域的紋理圖像T是圖像像素灰度值P(P>1)的聯合分布,T=t(gc,g0,…,gp-1),gc表示中心點像素的灰度值,gp (p=0,…,p1)是半徑為R的圓上對稱點的灰度值。gc是坐標原點, gp坐標分布在(-Rsin(2πp/P), Rcos(2πp/P))的圓上,通過雙線性插值得到坐標不是整數點的坐標。
LBP特征值表示為,2p代表對應位置上的權重。如圖4所示,在3×3窗口中通過二值化閾值分割,得到該點的二進制模式為00111010,對應的十進制為58,中心對比度為4。對于中心對比度,如果數值小于某一個值c,可認為該區域是平坦區,沒有需要的特征,不提取該點的特征;反之,如果該點的對比度很高,則說明該點可能是邊緣或者角點特征。得益于其二進制模式,計算機接受較快。
聯合分布T=t(gc,g0-gc,g1-gc,…,gp-1-gc)。假設gp-gc和gc是相互獨立的,T≈t(gc)t(g0-gc,g1-gc,…,gp-1-gc)。所有像素點加上或者減去同一個常量,紋理特性不會發生改變。紋理特征在灰度(光照)范圍內具有平移不變性。對于一個平坦區域,區域內所有方向上的差異為0。對于變化較小的邊緣,算子計算出各方向上的最大差異和邊緣上的零值。對于一個點,各方向上的差異都很大。簡而言之,LBP算子反映出了點、線、邊緣上的特征。通過二值化處理得到T≈t(s(g0-gc),s(g1-gc),…,s(gp-1-gc)),其中。
以3×3窗口8個采樣點為例,采用LBP等價模式(即0和1轉換的次數)后,u=0或u=2,一共有7×8+2+1=59種,極大地減少了計算量,且不受圖像旋轉的影響,對圖像的點、線、邊緣及角點特征也能較好地表達出來,并起到了降維的作用。3×3鄰域LBP統一模式示意圖如圖5所示,LBP特征示意如圖6所示。
1.4 級聯分類器
AdaBoost算法是一種自適應算法,是機器視覺和數據挖掘領域的十大算法之一[9,10]。采用AdaBoost算法訓練的目的在于挑選出最優分類器。
不同的面部特征代表不同的分類器,即弱分類器,分類效果稍好(大于0.5)。將M個正樣本(人臉)和N個負樣本(非人臉)區分標記,初始化正樣本的權重w1和負樣本的權重w2。訓練時,歸一化所有樣本權重wi,通過迭代,根據每個特征的表現,選出計算錯誤率εi最小的分類器。訓練過程中分類結果錯誤的分類器被賦予更高的權值。在多次迭代中,多個弱分類器組合為強分類器。通過多次迭代,錯誤率呈指數下降的趨勢。多個強分類器級聯成為新的分類器,即級聯分類器。級聯分類器逐級復雜。前幾層的分類器能夠區分出大部分的人臉和非人臉,越往后強分類器越復雜,包含更多的弱分類器,檢測精度也更高,訓練時間更長。全部通過每一個分類器檢測的區域就是我們尋找的人臉區域。
利用OpenCV提供的工具opencv_createsamples.exe和opencv_traincascade.exe生成XML文件,就是我們需要的級聯分類器。遍歷圖像將人臉和背景區分開來。
2 實驗結果及分析
實驗采用的正樣本:FERET數據庫800張圖片、AR_database數據庫700張人臉圖片、ORL數據庫400張圖片、CelebA的部分數據庫855張人臉圖片,對樣本剪裁,保留人臉部分。同時選取非人臉的圖片作為負樣本,長度和寬度保持1∶1。選擇Haar和LBP兩種特征分別訓練,為了減少訓練時間,提高精確度,將圖片歸一化為24×24。
具體過程:首先加載XML,如果分類器不能讀取,則顯示錯誤。如果讀取到分類器,則打開攝像頭,讀取一幀圖像,并將讀取的圖像變為灰度圖像,之后通過對灰度圖像進行歸一化計算,將光照對圖像的影響減少到最小,然后做均衡化處理,增強圖像的對比度,如果檢測到面部區域,則將其標注顯示出來。
為保證程序的可移植性,采用C++。本實驗在Intel(R) Core(TM)i7-4790 CPU @3.60GHz,RAM 8G的PC上進行,普通攝像頭每秒30幀,每幀分辨率為640×480。選取6個實驗人員,每人檢測5次,得到表1所列實驗結果。
同時采用CelebA人臉數據庫進行檢測。CelebA數據集是一個大型面部屬性數據集,擁有超過20萬張的名人圖像,每張圖片具有40個屬性注釋。它具有豐富的面部表情和背景。從中選擇100張正面圖片,分別用兩種特征進行檢測,檢測效果見表2所列。
實驗結果分析:Haar特征算子的浮點運算導致計算復雜,而LBP特征算子的二值化容易實現,運算簡單。對于同一個目標,LBP算子檢測速度比Haar特征快很多。因為背景和光線等因素干擾,利用攝像頭識別會對檢測效果造成較大干擾。Haar特征訓練出來的分類器要區分被檢測物體和背景,在檢測塊狀目標時效果更好,用于邊緣檢測則稍遜一籌。同時該系統還可以進行視頻監控,對mp4和AVI格式視頻中的人臉進行檢測。對于超過30°的側臉,會有誤檢和漏檢的情況出現。實驗結果如圖7所示。
3 結 語
本文基于開源的計算機視覺庫OpenCV,利用LBP和Haar兩種算子提取特征,對測試人員、照片及視頻流人臉進行檢測。統計結果表明,相較于傳統的Haar特征,LBP特征算子正面識別率達90%以上,檢測時間更短,平均檢測時間不到1 s。該系統搭建簡單,成本低,可移植性強,在PC機和移動終端都可運行,也可擴展到很多領域,為后續研究打下了堅實的基礎。
參考文獻
[1]李康順,李凱,張文生.一種基于改進 BP 神經網絡的 PCA人臉識別算法[J].計算機應用與軟件,2014, 31(1):158-159.
[2]鐘偉,黃元亮,郝真真,等.基于粒子群算法的LDA實現方法研究[J].計算機工程與應用,2017,53(1):39-43.
[3]陳葉飛,蘇劍波.非學習模式下的類Haar特征快速人眼定位[J].控制理論與應用,2016,33(4):479-485.
[4]任艷.基于關鍵點LBP特征提取的面部AU組合識別[J].信息化研究,2012,38(2):44-46.
[5]陳志恒,姜明新.基于OpenCV 的人臉檢測系統的設計[J].電子設計工程,2012,20(10):182-185.
[6]黃文杰,陳斌.一種快速圖像處理的積分方法[J].計算機應用,2005,25(S1):266-268.
[7]周書仁,殷建平.基于Haar特性的LBP紋理特征[J].軟件學報,2013(8):1909-1926.
[8]寧星.基于LBP的人臉識別研究[D].撫州:東華理工大學,2012.
[9] TANG Yi, LIU Weiming, WEI Wujian. An improved pedestrian detection algorithm based on adaBoost cascading stucture [C]. IEEE proceeding of the 8th world congress on intelligent control and automation. China Jinan 2010:6322-6323.
[10] ZHOU Z H, YANG Y, KUMAR V,et al. The top ten algorithms in data mining [M].New York,USA:CRC Press, 2009:127-149.