孫彥 丁學(xué)文 雷雨婷
摘要:為了改善當(dāng)前人臉識別技術(shù)存在準確率低、算法運行速度慢和無法識別多個目標(biāo)的問題,提出一種基于目標(biāo)檢測模型SSD_MobileNetv1的人臉識別方法,搭建Tensorflow Object Detection API框架,對人臉圖像進行數(shù)據(jù)清洗和過濾來減少噪聲對識別的影響,用MobileNetv1網(wǎng)絡(luò)對圖像進行特征提取,輸入至SSD網(wǎng)絡(luò)進行訓(xùn)練,使用梯度下降法優(yōu)化訓(xùn)練網(wǎng)絡(luò)中的權(quán)重。實驗結(jié)果表明,多人臉識別目標(biāo)定位準確、識別準確率高及模型訓(xùn)練的收斂速度加快,具有魯棒性。
關(guān)鍵詞:人臉識別;SSD_MobileNetv1神經(jīng)網(wǎng)絡(luò);數(shù)據(jù)清洗;梯度下降
中圖分類號:TP391文獻標(biāo)志碼:A文章編號:1008-1739(2019)22-68-4
0引言
人臉識別是基于對人的臉部特征信息來識別身份。在當(dāng)今這個處于大數(shù)據(jù)和云計算的社會,人臉識別在現(xiàn)實社會中的應(yīng)用相當(dāng)廣泛,例如在火車站安檢、公安系統(tǒng)、視頻會議及醫(yī)療等方面,人臉識別技術(shù)正逐步成為智能化領(lǐng)域的研究課題[1]。
傳統(tǒng)的人臉識別算法包括PCA[2],LDA[3],LBP[4]等,在提取特征和準確度方面均存在一定不足。杜翠鳳采用深度卷積對抗神經(jīng)網(wǎng)絡(luò)對多狀態(tài)自適應(yīng)的人臉識別,準確率達75.87%[5];胡少聰將卷積神經(jīng)網(wǎng)絡(luò)和SIAMESE網(wǎng)絡(luò)進行了組合,對不同部位及尺度的人臉圖像訓(xùn)練從而實現(xiàn)人臉識別,達到81%的準確率[6];利用yolo_v2對多個人臉進行識別,發(fā)現(xiàn)對人臉目標(biāo)的定位不準確,且識別的準確率不夠高。
雖然現(xiàn)在人臉識別技術(shù)在準確度方面有所提升,但對于內(nèi)存資源占用量大、運行效率慢以及多人臉圖像的識別仍然存在欠缺。針對上述問題,提出一種在Tensorflow Object Detection API框架下,利用目標(biāo)檢測模型SSD_MobileNetv1生成先驗框判斷不同尺度目標(biāo)識別多個目標(biāo)的特點,以及深度分離可卷積網(wǎng)絡(luò)減少網(wǎng)絡(luò)參數(shù)的特點,識別在不同表情、裝扮、光照等常見場景下的多人臉目標(biāo),該方法提升了識別準確率,加快了模型訓(xùn)練時的收斂速度。
1 SSD_MobileNetv1網(wǎng)絡(luò)模型
SSD_MobileNe tv1網(wǎng)絡(luò)模型以SSD為基礎(chǔ),在MobileNetv1骨干網(wǎng)絡(luò)的conv13層后添加8個卷積層,抽取6層用作檢測層[7]。SSD_MobileNetv1結(jié)合SSD和MobileNetv1網(wǎng)絡(luò),用3伊3大卷積核對各個通道輸出進行卷積和分解來提取特征學(xué)習(xí),在深度卷積層和點卷積層后連接批規(guī)范層和relu函數(shù)來保證良好的精確度,再由點卷積執(zhí)行特征融合進入卷積網(wǎng)絡(luò),對特征進行篩選和映射,將特征輸入到網(wǎng)絡(luò)進行訓(xùn)練以更新權(quán)重值,減少參數(shù)運算量,實現(xiàn)模型運行的加速。
1.1 SSD卷積神經(jīng)網(wǎng)絡(luò)
SSD卷積神經(jīng)網(wǎng)絡(luò)模型是利用單個深度神經(jīng)網(wǎng)絡(luò)進行對象檢測的框架[8]。SSD變VGG原結(jié)構(gòu)的2個全連接層為卷積層,刪除Dropout層,增加3層卷積和1層池化,在各個卷積層的feature map上構(gòu)造不同的Bounding Boxes(BB)進行檢測,生成多個BB,利用NMS得到最終BB集合,提升模型精度和檢測能力。
SSD利用生成錨框的思想來生成先驗框,采用多尺度訓(xùn)練方式,將不同大小默認框應(yīng)用在特征圖上以離散化輸出框形狀,來滿足真實目標(biāo)形狀多變的情況,SSD先驗框生成圖如圖1所示。
將其翻轉(zhuǎn)后得到另一個寬和高互換、面積相同的長方形。先驗框大小隨不同的特征圖和長寬比不斷變化,預(yù)測多個先驗框有效判斷目標(biāo)的多種形狀,兼顧各個尺度的目標(biāo),實現(xiàn)在多個尺度的特征圖上執(zhí)行檢測目標(biāo)工作。
1.2 MobileNetv1網(wǎng)絡(luò)
MobileNetv1網(wǎng)絡(luò)模型是Google提出的使用深度可分離卷積來構(gòu)建輕量級的深層神經(jīng)網(wǎng)絡(luò)。優(yōu)點在于分解卷積核,將標(biāo)準卷積分解成深度卷積和點卷積,深度卷積將每個卷積核應(yīng)用到每個通道,用單個卷積核對單個通道進行卷積,得到輸入通道數(shù)的深度,再利用點卷積對深度卷積的輸出線性結(jié)合從而產(chǎn)生新的特征[7]。這種分解可有效降低模型規(guī)模,減少網(wǎng)絡(luò)參數(shù)。深度分離卷積示意圖如圖2所示。
SSD_MobileNetv1網(wǎng)絡(luò)利用深度分離可卷積的特性將原有的冗余參數(shù)用小規(guī)模參數(shù)來替代,降低計算量和硬件內(nèi)存資源消耗,收斂速度加快,有效控制過擬合。
2系統(tǒng)設(shè)計與實現(xiàn)
2.1人臉識別系統(tǒng)設(shè)計
本文設(shè)計的人臉圖像識別系統(tǒng)分為3個模塊,系統(tǒng)的實現(xiàn)框圖如圖3所示。第1個模塊是數(shù)據(jù)集構(gòu)建模塊;第2個模塊是網(wǎng)絡(luò)訓(xùn)練模塊,利用SSD_MobileNetv1網(wǎng)絡(luò)提取圖像特征,進行特征融合,完成網(wǎng)絡(luò)模型的訓(xùn)練;第3個模塊是人臉識別模塊,將測試圖像輸入到已經(jīng)完成訓(xùn)練的網(wǎng)絡(luò)中進行計算,得到識別結(jié)果。
2.2人臉圖像預(yù)處理
本次實驗圖像數(shù)據(jù)來自Wider face數(shù)據(jù)集,圖片高達3萬張,包含了40萬張人臉,囊括了各個尺度、裝扮、光照及表情等常見的場景。
實驗之前,考慮到圖像具有隨機性,圖片尺寸大小不一,重復(fù)率較高等問題,需要對圖像進行預(yù)處理。首先,利用數(shù)據(jù)清洗處理缺失值、平滑噪聲、識別和刪除離散值[9],采用過濾和銳化操作增強圖像邊緣細節(jié),可以有效提高圖像質(zhì)量和圖像利用率。
Wider face數(shù)據(jù)集自帶含原始圖片的名稱與路徑以及人臉框坐標(biāo)大小的txt文件,將含有圖像標(biāo)注信息的txt文件轉(zhuǎn)換為XML文件以提供交換和描述獨立于應(yīng)用程序的結(jié)構(gòu)化數(shù)據(jù)。
此外,還需將XML文件轉(zhuǎn)換為tfrecord格式,可以把圖片數(shù)據(jù)信息和標(biāo)簽一同存儲,可以快速在TensorFlow中實現(xiàn)復(fù)制、讀取和存儲等操作,達到加速模型讀取和訓(xùn)練的效果。
3實驗仿真
3.1系統(tǒng)實驗
3.2實驗結(jié)果與分析
利用可視化工具Tensorboard查看網(wǎng)絡(luò)的性能,有效顯示網(wǎng)絡(luò)訓(xùn)練期間各種指標(biāo)隨時間的變化趨勢信息。隨著訓(xùn)練次數(shù)的增加,訓(xùn)練的損失呈現(xiàn)下降趨勢,網(wǎng)絡(luò)的良好性能優(yōu)勢得以體現(xiàn),圖像的失真率在減小,圖片識別的效果逐步提高。
選取了含有多個目標(biāo)的人臉圖像對訓(xùn)練好的人臉識別模型進行測試,來驗證模型的識別率,識別效果如圖4所示。
從識別效果圖發(fā)現(xiàn),盡管測試圖像存在干擾背景,但SSD_MobileNetv1網(wǎng)絡(luò)模型依然能準確識別圖像中的多個人臉目標(biāo),并且識別率較高。
圖5是2種模型識別結(jié)果對比,圖5(a)是在yolov2模型下的識別效果圖5(b)是SSD_MobileNetv1網(wǎng)絡(luò)下的識別效果。為了提升對訓(xùn)練圖像的分辨率,人臉識別一般會采用yolov2模型進行實驗,yolov2模型對人臉識別存在召回率以及定位能力提高的優(yōu)勢,但圖5(a)中人臉沒有全部檢測出來,且識別的準確率也是低于5(b)的。
比較在SSD_MobileNetv1網(wǎng)絡(luò)和yolov2模型的識別率,結(jié)果如表1所示。
以上測試結(jié)果表明,SSD_MobileNetv1網(wǎng)絡(luò)對多個人臉共存圖片具有較好的目標(biāo)定位效果,符合現(xiàn)實場景中多個個體出現(xiàn),定位準確且識別精確度比較高。
4結(jié)束語
本文給出了一種基于目標(biāo)檢測模型SSD_MobileNetv1的人臉識別,介紹了圖像數(shù)據(jù)清洗等預(yù)處理操作和SSD_MobileNetv1神經(jīng)網(wǎng)絡(luò)的基本概念,介紹網(wǎng)絡(luò)訓(xùn)練以及運用梯度下降法更新網(wǎng)絡(luò)訓(xùn)練的權(quán)重,最后介紹了對人臉識別模型的測試和分析。實驗結(jié)果表明,本文方法對多人臉圖像中的人臉目標(biāo)定位準確,且模型訓(xùn)練收斂速度較快。后續(xù)的工作是繼續(xù)優(yōu)化模型的性能,以求獲得更高的魯棒性,并將模型移植到手機等設(shè)備上,充分發(fā)揮其實用價值。
參考文獻
[1]安大海,蔣硯軍.基于BP神經(jīng)網(wǎng)絡(luò)的人臉識別系統(tǒng)[J].軟件, 2015,36(12):76-79.
[2]曾建凡.多角度人臉檢測與識別方法研究[J].電子設(shè)計工程, 2017,25(11):41-44.
[3] Chen L F, Liao H YM, Ko M T, et al. A New LDA-based Face Recognition System Which Can Solve the Small Sample Size Problem[J]. Pattern Recognition,2000,33(10): 1713-1726.
[4] Ahonen T, Hadid A, Pietikinen M. Face Description with Local Binary Patterns: Application to Face Recognition[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2006, 28(12):2037-2041.
[5]杜翠鳳,溫云龍,李建中.基于深度卷積對抗神經(jīng)網(wǎng)絡(luò)的多狀態(tài)自適應(yīng)人臉識別方法[J].移動通信,2019,43(9):75-78,85.
[6]胡少聰.基于深度學(xué)習(xí)的人臉識別方法研究[J].電子科技, 2019,32(06):82-86.
[7] Howard A G, Zhu M, Chen B, et al. MobileNetsV1: Efficient Convolutional Neural Networks for Mobile Vision Applications[J]. Computer Science -computer Vision and Pattern Recognition,2017:1704-1712.
[8] Liu W, Anguelov D, Erhan D, et al. SSD: Single Shot Multi Box Detector[C]// European Conference on Computer Vision, Springer,2016:21-37.
[9] Meisler Steven L, Kahana Michael J, Ezzyat Youssef. Does Data Cleaning Improve Brain State Classification?[J]. Journal of neuroscience methods,2019:328.