《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 卷積神經(jīng)網(wǎng)絡(luò)人臉檢測(cè)算法
卷積神經(jīng)網(wǎng)絡(luò)人臉檢測(cè)算法
2020年電子技術(shù)應(yīng)用第1期
王靜波,孟令軍
中北大學(xué) 電子測(cè)試技術(shù)國(guó)防科技重點(diǎn)實(shí)驗(yàn)室,山西 太原030051
摘要: 傳統(tǒng)人臉檢測(cè)算法往往不能自動(dòng)地從原始圖像中提取有用的檢測(cè)特征,而卷積神經(jīng)網(wǎng)絡(luò)可以輕易地提取高維度的特征信息,廣泛用于圖像處理領(lǐng)域。針對(duì)上述缺點(diǎn),采用簡(jiǎn)單高效的深度學(xué)習(xí)Caffe框架并通過(guò)AlexNet網(wǎng)絡(luò)訓(xùn)練,數(shù)據(jù)集為L(zhǎng)FW人臉數(shù)據(jù)集,得出一個(gè)模型分類(lèi)器,對(duì)原始圖像數(shù)據(jù)進(jìn)行圖像金字塔變換,并通過(guò)前向傳播得到特征圖,反變換得出人臉坐標(biāo),采用非極大值抑制算法得出最優(yōu)位置,最后達(dá)到一個(gè)二分類(lèi)的人臉檢測(cè)結(jié)果。該方法可以實(shí)現(xiàn)不同尺度的人臉檢測(cè),具有較高的精度,可用于構(gòu)建人臉檢測(cè)系統(tǒng)。
中圖分類(lèi)號(hào): TN98;TP391
文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.190870
中文引用格式: 王靜波,孟令軍. 卷積神經(jīng)網(wǎng)絡(luò)人臉檢測(cè)算法[J].電子技術(shù)應(yīng)用,2020,46(1):34-38.
英文引用格式: Wang Jingbo,Meng Lingjun. Convolutional neural network face detection algorithm[J]. Application of Electronic Technique,2020,46(1):34-38.
Convolutional neural network face detection algorithm
Wang Jingbo,Meng Lingjun
National Key Laboratory for Electronic Measurement Technology,North University of China,Taiyuan 030051,China
Abstract: Traditional face detection algorithms often cannot extract useful detection features from the original image, and convolutional neural networks can easily extract high-dimensional feature information, which is widely used in image processing. In view of the above shortcomings, a simple and efficient deep learning Caffe framework is adopted and trained by AlexNet network. The data set is LFW face dataset, and a model classifier is obtained. Image pyramid transformation is performed on the original image data, and feature graph is obtained by forward propagation. The inverse transformation yields the face coordinates, uses the non-maximum suppression algorithm to obtain the optimal position, and finally reaches a two-class face detection result. The method can realize face detection with different scales and has high precision, and can be used to construct a face detection system.
Key words : face detection;convolutional neural network;deep learing;image pyramid;non-maximum suppression

0 引言

    近年來(lái),人工智能行業(yè)有著日新月異的發(fā)展,深度學(xué)習(xí)[1-2](人工神經(jīng)網(wǎng)絡(luò))在其中扮演著至關(guān)重要的角色,人臉檢測(cè)也是深度學(xué)習(xí)領(lǐng)域的熱點(diǎn),它的研究用來(lái)鑒別人的身份,可以廣泛地應(yīng)用于公共安全、企業(yè)辦公、教育、人機(jī)交互等領(lǐng)域。區(qū)別于指紋、虹膜無(wú)需特定的采集裝置,人臉識(shí)別系統(tǒng)[3]只需要具有拍照功能的設(shè)備(例如手機(jī)、相機(jī)等)就可滿(mǎn)足要求,有著獨(dú)特的優(yōu)勢(shì)。

    目前,人臉檢測(cè)落地技術(shù)已經(jīng)隨處可見(jiàn),廣為人知。例如為確保安全,悉尼板球場(chǎng)已全部覆蓋人臉檢測(cè)技術(shù);為了避免假冒開(kāi)戶(hù),工商銀行在215個(gè)網(wǎng)點(diǎn)啟用了人臉檢測(cè); 為了保護(hù)未成年人,人臉檢測(cè)防火墻被添加到抖音中;“人臉檢測(cè)”有助于救援站尋找親屬等。與此同時(shí),互聯(lián)網(wǎng)+[4]的時(shí)代已經(jīng)來(lái)臨,隱私保護(hù)越來(lái)越受到人們的重視,也更加促進(jìn)人臉檢測(cè)技術(shù)研究的迅速發(fā)展。

    智能人臉檢測(cè)系統(tǒng)大致的流程如圖1所示。

rgzn2-t1.gif

    如今,人臉檢測(cè)技術(shù)主要有以下三大類(lèi):

    (1)基于Harr特征的級(jí)聯(lián)Adaboost[5]分類(lèi)器,該方法由VIOLA P和JONES M J共同提出。最開(kāi)始粗密度提取特征,將分類(lèi)不明確的數(shù)據(jù)和下一階段的數(shù)據(jù)一起進(jìn)行優(yōu)化訓(xùn)練,反復(fù)迭代獲得精密度的特征提取器,然后將多個(gè)強(qiáng)提取器級(jí)聯(lián)成更高精度的級(jí)聯(lián)器,使用積分圖像提取圖像有效特征值。

    (2)基于可變形零件模型(Deformable Parts Model)[6],將面部視為零件的組合。最開(kāi)始計(jì)算每個(gè)分量的方向梯度以獲得直方圖,然后使用支持向量機(jī)[7](Surpport Vector Machine)訓(xùn)練分類(lèi)器,并且分類(lèi)操作可以由該分類(lèi)器執(zhí)行。

    (3)基于神經(jīng)網(wǎng)絡(luò)的人臉檢測(cè),采用兩級(jí)卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行人臉檢測(cè),第一級(jí)執(zhí)行面部的粗略定位,第二級(jí)執(zhí)行面部的精細(xì)定位。2015年,在ImageNet[8]比賽的大熱下,雅虎的Sachin等人使用上述方法進(jìn)行人臉檢測(cè)和定位,取得了很好的效果。在人臉檢測(cè)后還需進(jìn)行預(yù)處理操作,目的是通過(guò)一些圖像處理技術(shù)來(lái)減小噪聲對(duì)圖像的影響,將對(duì)比度、亮度和飽和度適當(dāng)修改,達(dá)到提升準(zhǔn)確率的效果[9]。

    現(xiàn)實(shí)生活中拍攝存在許多不確定因素,例如相機(jī)的硬件噪聲、光照和變形。為了消除外在因素的影響,需要對(duì)原始圖片進(jìn)行相關(guān)的預(yù)處理操作。預(yù)處理主要包括人臉圖像的亮度補(bǔ)償、直方圖均衡化和降噪濾波。初期的預(yù)處理一般基于2D圖像的簡(jiǎn)單操作,隨著技術(shù)的發(fā)展逐步衍變?yōu)榛?D建模的預(yù)處理步驟[9]。

    利用上述第3種方法進(jìn)行一定程度的實(shí)現(xiàn)。本文采用數(shù)據(jù)集LFW(Labled Faces in the Wild)人臉數(shù)據(jù)集20 000多張的圖像數(shù)據(jù)經(jīng)過(guò)訓(xùn)練,并迭代5萬(wàn)次得出一個(gè)全連接的caffemodel,圖2為部分人臉數(shù)據(jù)和非人臉數(shù)據(jù),圖3、圖4為數(shù)據(jù)標(biāo)注形式與訓(xùn)練得出的模型分類(lèi)器[10],標(biāo)注數(shù)據(jù)包括人臉I(yè)D、數(shù)據(jù)路徑和人臉坐標(biāo)位置,且該模型已被證實(shí)具有良好的分類(lèi)效果。然后使用其檢測(cè)人臉圖像。待檢測(cè)的圖像數(shù)據(jù)使用訓(xùn)練好的caffemodel進(jìn)行前向傳播得到特征圖,從中可以確定待檢測(cè)人臉的坐標(biāo)。

rgzn2-t2.gif

rgzn2-t3.gif

rgzn2-t4.gif

1 AlexNet卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)

    一般的卷積神經(jīng)網(wǎng)絡(luò)是由卷積層、池化層、全連接層堆疊而成的[11]。卷積層是網(wǎng)絡(luò)中提取圖像高維特征的重要結(jié)構(gòu),相當(dāng)于人腦局部感知:在檢測(cè)圖片的過(guò)程中,不是同時(shí)檢測(cè)整個(gè)圖像,而是對(duì)于圖片中的每一個(gè)特征首先局部感知,然后更高層次對(duì)局部進(jìn)行綜合操作,從而得到全局信息。

    激活函數(shù)ReLU對(duì)卷積層的輸出結(jié)果做一次非線性映射。池化層Pool也稱(chēng)為欠采樣或下采樣,它主要用于減少特征尺寸,壓縮數(shù)據(jù)和參數(shù)的數(shù)量,減小過(guò)擬合,提高模型的容錯(cuò)性,使模型更快更好地朝著最優(yōu)的方向擬合。

    AlexNet是成功應(yīng)用上述操作的經(jīng)典結(jié)構(gòu)。它由KRIZHEVSKY A和其他人設(shè)計(jì)并在2012年ILSVRC[12-13]中贏得了冠軍,它將對(duì)象分類(lèi)錯(cuò)誤率從之前的25.8%降低到16.4%,在當(dāng)時(shí)達(dá)到最優(yōu)水平。AlexNet可以訓(xùn)練更大的數(shù)據(jù)集和更深的網(wǎng)絡(luò)。該模型分為8層,5個(gè)卷積層和3個(gè)完全連接的層[14]。圖5是AlexNet網(wǎng)絡(luò)結(jié)構(gòu)圖以及各層的詳細(xì)參數(shù),Caffe在構(gòu)建網(wǎng)絡(luò)時(shí)就可使用這些參數(shù)定義每一層,但是對(duì)于人臉檢測(cè),它是一種二分類(lèi)任務(wù),需要把最后一層全連接層改成所需任務(wù)的類(lèi)別個(gè)數(shù),原來(lái)的1 000修改成2。

rgzn2-t5.gif

    圖6為采用Caffe內(nèi)置卷積函數(shù)之后的提取效果,之后還可以再進(jìn)行卷積池化操作提取更高維的抽象有用信息,圖中的坐標(biāo)代表像素大小及變化。

rgzn2-t6.gif

2 Caffe深度學(xué)習(xí)框架

    Caffe是一個(gè)清晰而高效的深度學(xué)習(xí)框架[11,15],由加州大學(xué)伯克利分校畢業(yè)的賈揚(yáng)青博士撰寫(xiě)。Caffe是純粹的C++/CUDA架構(gòu),有著如下的優(yōu)勢(shì):

    (1)模塊化:Caffe從頭開(kāi)始設(shè)計(jì)為盡可能模塊化,允許擴(kuò)展新的數(shù)據(jù)格式、網(wǎng)絡(luò)層和損失功能。

    (2)表示和實(shí)現(xiàn)分割:無(wú)需代碼編程,只需使用Protocol Buffer語(yǔ)言在配置文件中自定義網(wǎng)絡(luò)模型[16]。在任何有向非循環(huán)圖的形式中,Caffe支持網(wǎng)絡(luò)架構(gòu)。Caffe會(huì)根據(jù)網(wǎng)絡(luò)大小自動(dòng)調(diào)用合適的內(nèi)存,避免內(nèi)存過(guò)多占用,同時(shí)也可以在CPU和GPU之間自由切換。

    (3)測(cè)試覆蓋:在Caffe中,每個(gè)模塊對(duì)應(yīng)一個(gè)測(cè)試。

    (4)Caffe官方有Python和MATLAB兩個(gè)編譯版本,本實(shí)驗(yàn)編譯的為Python版本,最后在Python 2.7上驗(yàn)證實(shí)現(xiàn)。

    (5)預(yù)訓(xùn)練參考模型:對(duì)于視覺(jué)項(xiàng)目,Caffe提供了一些僅用于學(xué)術(shù)和非商業(yè)領(lǐng)域的參考模型,大部分的模型都可以在caffe model zoo里找到,但其許可證不是BSD開(kāi)源協(xié)議。

    后來(lái)賈揚(yáng)清和他在Facebook的團(tuán)隊(duì)研究開(kāi)發(fā)了新一代框架Caffe2。2018年4月18日,F(xiàn)acebook開(kāi)源了Caffe2。新一代框架更注重模塊化,在移動(dòng)端、大規(guī)模部署上表現(xiàn)卓越。如同TensorFlow,Caffe2使用 C++ Eigen庫(kù),支持ARM架構(gòu)。

3 算法實(shí)現(xiàn)原理

    根據(jù)AlexNet網(wǎng)絡(luò)的輸入特性,需要圖像的大小為227×227的輸入。但原始圖像數(shù)據(jù)中的人臉尺寸有可能不是227×227,有的過(guò)大,有的過(guò)小。因此需要使用圖像金字塔(Image Pyramid)進(jìn)行多尺度變換,然后經(jīng)過(guò)卷積神經(jīng)網(wǎng)絡(luò)的前向傳播得出特征圖,之后映射到原圖上得到所有窗口的人臉概率值。該方法中是將概率值大于0.95的特征點(diǎn)反變換到原圖得到對(duì)應(yīng)的一塊區(qū)域,即為人臉框的位置。

    盡管人臉框的坐標(biāo)已經(jīng)得出,但會(huì)發(fā)現(xiàn)有許多符合要求的窗口,僅需要給出一個(gè)最有可能表征人臉的窗口,因此,有必要應(yīng)用 NMS(非極大抑制)算法來(lái)消除交叉重復(fù)窗口并找到面部的最佳位置,找到人臉的最佳位置。如圖7所示,NMS算法的原理大致為,假設(shè)A框與B框同為包含人臉的候選框,它們之間的交并比IOU(Intersection-over-Union)大于0.8,被視為是高度重疊的,根據(jù)它們屬于人臉的概率值P(B)>P(A),將候選框A剔除。

rgzn2-t7.gif

    圖8為整體檢測(cè)算法流程圖。首先使用OpenCV讀入待檢測(cè)的圖片,然后進(jìn)行下列操作。

rgzn2-t8.gif

4 結(jié)果展示

    該方法實(shí)現(xiàn)平臺(tái)為L(zhǎng)inux系統(tǒng),版本號(hào)為Ubuntu16.04,GPU顯卡型號(hào)為GTX1080。軟件采用Caffe+Python 2.7+OpenCV 3.4.1。

    訓(xùn)練中由于顯存原因,batch_size設(shè)置為64,而不是普遍的128。圖9為訓(xùn)練的結(jié)果,每經(jīng)過(guò)100次記錄損失值,可以看到Training Loss:0.003 01和Test Loss:0.001 39,基本滿(mǎn)足需求,也無(wú)過(guò)擬合現(xiàn)象。

rgzn2-t9.gif

    圖10為圖像數(shù)據(jù)先進(jìn)行圖像金字塔變換,然后每個(gè)尺度變換后的圖片經(jīng)過(guò)前向傳播得出的特征圖的熱度圖。圖中坐標(biāo)變化與圖6相同,可以很簡(jiǎn)單地看到圖像尺度的變化,顏色越深代表對(duì)應(yīng)原圖中的區(qū)域?qū)儆谌四樀母怕手翟酱蟆kS著尺度不斷變換,所有可能為人臉的位置全部得出,最后通過(guò)NMS算法得出一個(gè)最優(yōu)的人臉框。

rgzn2-t10.gif

    圖11為不同大小、清晰度不同的人臉圖像數(shù)據(jù)(圖片來(lái)自網(wǎng)絡(luò)和300W數(shù)據(jù)集,包含正臉、側(cè)臉和多人臉)的實(shí)際檢測(cè)結(jié)果,從中可以很好地檢測(cè)出人臉框,說(shuō)明模型具有很好的分類(lèi)效果,達(dá)到檢測(cè)人臉的功能。

rgzn2-t11.gif

5 結(jié)束語(yǔ)

    本文人臉檢測(cè)的實(shí)現(xiàn),采用簡(jiǎn)單高效易操作的深度學(xué)習(xí)框架Caffe,構(gòu)建AlexNet網(wǎng)絡(luò),通過(guò)大量的數(shù)據(jù)訓(xùn)練得出caffemodel分類(lèi)器,該算法沿用傳統(tǒng)的滑動(dòng)窗口方法,利用金字塔變換和非極大值抑制等算法并使用強(qiáng)大的計(jì)算機(jī)視覺(jué)工具OpenCV框出人臉,整體實(shí)現(xiàn)了卷積神經(jīng)網(wǎng)絡(luò)的人臉檢測(cè)。但是不足之處在于模型不能有效識(shí)別多人臉,圖片亮度較低也不能識(shí)別,下一步擬采用更龐大的數(shù)據(jù)和優(yōu)化更好的網(wǎng)絡(luò)(如VGGNet、GoogleNet和ResNet等)進(jìn)行訓(xùn)練,實(shí)現(xiàn)多人臉檢測(cè)、關(guān)鍵點(diǎn)的定位和表情的檢測(cè)等功能,或者嘗試使用Caffe2實(shí)現(xiàn)移動(dòng)端的人臉相關(guān)檢測(cè)。

參考文獻(xiàn)

[1] 楊丹輝,鄧洲.人工智能發(fā)展的重點(diǎn)領(lǐng)域和方向[J].人民論壇,2018(2):22-24.

[2] 李衛(wèi).深度學(xué)習(xí)在圖像識(shí)別中的研究及應(yīng)用[D].武漢:武漢理工大學(xué),2014.

[3] 蔣兆軍,成孝剛,彭雅琴,等.基于深度學(xué)習(xí)的無(wú)人機(jī)識(shí)別算法研究[J].電子技術(shù)應(yīng)用,2017,43(7):84-87.

[4] 徐貴寶.“互聯(lián)網(wǎng)+”人工智能技術(shù)發(fā)展策略解析[J].世界電信,2016(3):71-75.

[5] VIOLA P,JONES M J.Robust real-time face detection[J].International Journal of Computer Vision,2004,57(2):137-154.

[6] 宋瑨,王世峰.基于可變形部件模型HOG特征的人形目標(biāo)檢測(cè)[J].應(yīng)用光學(xué),2016,37(3):380-384.

[7] 胡發(fā)煥,劉國(guó)平,胡瑢華,等.基于機(jī)器視覺(jué)和支持向量機(jī)的臍橙品質(zhì)分級(jí)檢測(cè)[J].北京工業(yè)大學(xué)學(xué)報(bào),2014(11):1615-1620.

[8] RUSSAKOVSKY O,DENG J,SU H,et al.ImageNet large scale visual recognition challenge[J].International Journal of Computer Vision,2015,115(3):211-252.

[9] 魏正.基于Caffe平臺(tái)深度學(xué)習(xí)的人臉識(shí)別研究與實(shí)現(xiàn)[D].西安:西安電子科技大學(xué),2015.

[10] 王茜,張海仙.深度學(xué)習(xí)框架Caffe在圖像分類(lèi)中的應(yīng)用[J].現(xiàn)代計(jì)算機(jī),2016(5):72-75.

[11] Jia Yangqing,SHELHAMER E,DONAHUE J,et al.Caffe:convolutional architecture for fast feature embedding[J].arXiv:1408.5093[cs.cv],2014.

[12] KRIZHEVSKY A,SUTSKEVER I,HINTON G.ImageNet classification with deep convolutional neural networks[J].Advances in Neural Information Processing Systems,2012,25(2):1097-1105.

[13] BADAWI A A,CHAO J,LIN J,et al.The AlexNet moment for homomorphic encryption:HCNN,the first homomorphic CNN on encrypted data with GPUs[J].arXiv:1811.00778v2[cs.CR],2019.

[14] 宋婷婷,徐世許.基于全采樣和L1范數(shù)降采樣的卷積神經(jīng)網(wǎng)絡(luò)圖像分類(lèi)方法[J].軟件,2018,39(2):75-80.

[15] 許少尉,陳思宇.基于深度學(xué)習(xí)的圖像分類(lèi)方法[J].電子技術(shù)應(yīng)用,2018,44(6):122-125.

[16] 解駿,陳瑋.基于卷積神經(jīng)網(wǎng)絡(luò)的人臉識(shí)別研究[J].軟件導(dǎo)刊,2018(1):25-27.



作者信息:

王靜波,孟令軍

(中北大學(xué) 電子測(cè)試技術(shù)國(guó)防科技重點(diǎn)實(shí)驗(yàn)室,山西 太原030051)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。