国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于機器學習的人臉檢測系統(tǒng)的設(shè)計與現(xiàn)實

2020-07-04 02:35彭濤
現(xiàn)代信息科技 2020年3期
關(guān)鍵詞:人臉檢測機器學習

摘? 要:人們在生活上對安全和便捷要求越來越高,人臉檢測在近年開始被廣泛應(yīng)用,使人們的生活購物、信息保障等方面都得到了質(zhì)的提升,所以人臉檢測的研究實現(xiàn)是非常有必要的。文章設(shè)計了一個基于機器學習的人臉檢測系統(tǒng)。主要方法使用了MTCNN模型框架進行人臉候選框以及人臉特征點的預(yù)測,通過多個階段的預(yù)測與篩選,最后得出準確的人臉框以及5個人臉特征點。

關(guān)鍵詞:人臉檢測;機器學習;MTCNN

中圖分類號:TP391.41? ? ? 文獻標識碼:A 文章編號:2096-4706(2020)03-0094-03

Abstract:People are increasingly demanding safety and convenience in their lives. Face detection has been widely used in recent years,which has led to a qualitative improvement in peoples life shopping and information security,So the research and implementation of face detection is very necessary. This paper designs a face detection system based on machine learning. The main method uses the MTCNN model framework to predict the face candidate frame and face feature points. Through multiple stages of prediction and screening,the final result is the accurate face frame and five face feature points.

Keywords:face detection;machine learning;MTCNN

0? 引? 言

筆者在讀碩士期間,對機器學習和人臉檢測做了一定研究,積累了一些經(jīng)驗和資料。作為高校教師,每次課堂點到需要很長時間,這樣不僅耽誤了課堂教學的進程,也浪費了學生的時間,基于此,本文利用筆者讀碩期間所學知識開發(fā)一個基于機器學習的人臉檢測系統(tǒng),通過該系統(tǒng)完成點到,解決傳統(tǒng)點到的弊端。人臉檢測是圖像處理的重要組成部分,也是計算機視覺的一個重要研究領(lǐng)域,在智能安防、人機交互及免密身份驗證等方面有著非常廣泛的應(yīng)用。本文以基于機器學習的人臉檢測為切入點,設(shè)計并實現(xiàn)了基于機器學習的人臉檢測系統(tǒng),更好地為我校教師教學過程中學生點到服務(wù)。

1? 系統(tǒng)概述

1.1? 訓(xùn)練集圖片剪裁

對人臉檢測模型進行訓(xùn)練之前,需要對PNet、RNet、ONet三個網(wǎng)絡(luò)模型訓(xùn)練圖片進行處理,本人臉檢測模型使用WIDER_FACE與LFW人臉數(shù)據(jù)作為訓(xùn)練使用的數(shù)據(jù)集,該模塊通過數(shù)據(jù)標注信息表,該表提供了每張圖片的路徑、圖中人臉的數(shù)量、每個人臉框的坐標位置以及5個人臉特征點的坐標,使用該表對圖片的人臉框進行剪裁,并輸出新的圖片以及對新剪裁圖片進行坐標信息的標注等。值得注意的是,MTCNN提出了除正負樣本的制作外還使用了部分困難樣本,將隨機剪裁正確人臉I(yè)OU在正負樣本之間的樣本,標簽設(shè)為人臉。部分樣本的制作,在訓(xùn)練模型時能夠提升其檢測的準確性和魯棒性。

1.2? 網(wǎng)絡(luò)模型搭建

進行訓(xùn)練所使用的數(shù)據(jù)集處理完之后,就需要對網(wǎng)絡(luò)模型的框架進行搭建。根據(jù)機器學習大致框架,確定各層PNet、RNet和ONet的輸入大小,filter參數(shù)設(shè)置,池化層kernel參數(shù)設(shè)置以及確定三個輸出端的連接方式。

1.3? 檢測模型訓(xùn)練

在訓(xùn)練的模塊上,需要對三層網(wǎng)絡(luò)逐一進行訓(xùn)練,由于網(wǎng)絡(luò)相對較小,所以訓(xùn)練速度也比較快。在網(wǎng)絡(luò)模型搭建和訓(xùn)練上,本系統(tǒng)使用Tensorflow環(huán)境進行模型的搭建和訓(xùn)練。

1.4? 第一階段候選框檢測

在對圖像進行檢測前,需要構(gòu)造圖像金字塔,即將圖像變換成一系列大小的圖像,這樣能使不同大小的人臉都能夠盡可能縮放成PNet模型,能夠檢測人臉的大小輸入。根據(jù)卷積神經(jīng)網(wǎng)絡(luò)各個層具有大小不同的感受野,從不同層提取多個尺度的特征向量分別進行人臉分類與回歸,并將網(wǎng)絡(luò)的全連接層改成卷積層,以適應(yīng)不同大小的圖片輸入。將變換好的所有圖片逐一輸入PNet模型中進行前向傳播,得到每個12*12區(qū)域是否是人臉的概率,再將所有判斷為人臉的區(qū)域進行反映射,得出該區(qū)域在原圖的坐標值。得出所有人臉候選框,再進行NMS非極大值抑制,舍棄重疊值過高的候選框。多任務(wù)物體檢測網(wǎng)絡(luò)同時輸出了物體的類別和物體的回歸框。

1.5? 第二階段候選框檢測模塊

在第一階段模塊對圖片進行大致的檢測篩選之后,會得出較多的候選框,并且重復(fù)率較高,通過將第一階段得到的候選框進行圖片裁剪,再逐一輸入RNet模型中進行進一步的檢測篩選,將人臉概率值小的進行舍棄,保留概率高的人臉候選框,再進行NMS處理。

1.6? 第三階段候選框檢測模塊

在前兩個階段處理過后,得出人臉候選框,在該階段繼續(xù)進行進一步檢測篩選,該過程和第二階段類似,在此之上,添加5個人臉特征點的檢測,將第二階段篩選得出的人臉圖片作為第三階段模型的輸入,進行前向傳播過后,分別得到人臉的概率值,人臉候選框的坐標值以及5個人臉特征點的坐標值。再對所有候選框進行NMS處理,得出最后的人臉候選框和特征點坐標。

2? 系統(tǒng)核心功能設(shè)計與實現(xiàn)

2.1? 訓(xùn)練集圖片處理模塊設(shè)計與實現(xiàn)

訓(xùn)練集制作模塊包括對PNet、RNet與ONet三層網(wǎng)絡(luò)進行訓(xùn)練集的制作,其中包括人臉樣本、非人臉樣本、困難樣本以及人臉特征點樣本的制作。因為選用WIDER_FACE數(shù)據(jù)集只標注人臉候選框的位置,所以人臉樣本、非人臉樣本和困難(部分)樣本都是用WIDER_FACE數(shù)據(jù)集制作。Wider Face Dataset包含非常豐富的人臉樣本,數(shù)量巨大,而且人臉樣本的尺度、姿態(tài)、遮擋以及光照條件變化很大。而人臉特征點樣本則使用已經(jīng)標注好人臉特征點信息的LFW數(shù)據(jù)集進行制作。該模塊中,除了需要對樣本圖片進行剪裁,還需要對每個圖片信息進行標注,標注格式包括剪裁之后的圖片路徑名,label值,以及每個樣本的詳細信息(人臉樣本與困難樣本為候選框坐標,人臉特征點樣本則為5個特征點坐標)。

2.2? 檢測模型搭建模塊設(shè)計與實現(xiàn)

在三層卷積網(wǎng)絡(luò)模型中,都需要進行通過卷積層進行特征提取和最后的全連接操作,所以在實現(xiàn)模型搭建的過程中,構(gòu)造卷積函數(shù)和全連接函數(shù)接口,使得在每層使用卷積層操作的時候只需添加卷積filter、池化kernel和步長等參數(shù),并不需要每個網(wǎng)絡(luò)都重寫一遍卷積的代碼。該函數(shù)接口核心代碼如下所示:

PNet層中,第一層為輸入層,該層輸入為預(yù)測待測圖片,大小不確定,因此將最后一層全連接層改為全卷積層,在第一層卷積conv1中,filter設(shè)置為3*3大小,滑動步長為1,filter數(shù)量為10,池化層kernel大小設(shè)置為2*2,步長為2。第二層conv2與第一層參數(shù)類似,filter數(shù)量設(shè)為16。conv3同上,但filter數(shù)量設(shè)置為32,在前三層卷積操作完成后,分別對輸出進行3個輸出端的運算,對于人臉分類器,使用全卷積,即將卷積核大小設(shè)為1*1,對每個卷積核大小的特征單獨提取出兩個最終值,最后通過softmax進行人臉和非人臉概率計算。對于人臉候選框的輸出端,與以上類似使用全卷積提取,不同的是該分支輸出是進行人臉候選框左上角與右下角坐標的檢測,所以最終輸出需要提取出4個預(yù)測值。而第三個輸出分支對5個人臉特征點進行預(yù)測,則使用全卷積后提取出10個預(yù)測值。對于RNet層與ONet層后面兩層架構(gòu)的實現(xiàn),由于網(wǎng)絡(luò)模型框架與PNet差別不大,參數(shù)稍有不同,因此實現(xiàn)過程與第一層PNet層類似,這里不再多做贅述。

2.3? 檢測模型訓(xùn)練模塊設(shè)計與實現(xiàn)

在模型訓(xùn)練模塊上,因為訓(xùn)練樣本集都已經(jīng)制作完成,PNet、RNet和ONet三層網(wǎng)絡(luò)的訓(xùn)練都是前向傳播后,再通過反向傳播進行參數(shù)的更新,總體相差無幾,所以主要是對loss值的計算進行討論和對PNet訓(xùn)練進行討論。PNet訓(xùn)練模塊實現(xiàn)上,首先,使用tensorflow框架進行訓(xùn)練,事先定義好前向傳播過程,再計算loss值,對于PNet、RNet和ONet三層每層都需要進行三個輸出,需要三個對應(yīng)loss值,在進行第一個輸出端loss值的計算上,因為樣本有4種類型,這里人臉分類器的loss值計算只針對樣本label為1與0,即人臉與非人臉兩個正負樣本進行計算,損失函數(shù)的選擇上使用因為進行了softmax二分類計算概率,這里使用交叉熵函數(shù);其次,對于第二個輸出端處理人臉候選框loss值,使用歐氏距離進行計算,此處的loss值計算針對樣本label為1和-1,即人臉與部分樣本,當樣本label為其他值時,loss值算為0,最后進行l(wèi)oss值取平均時不作計算;最后,第三個輸出端口處理人臉特征點預(yù)測的loss值,與人臉候選框的loss值一樣,使用歐氏距離對真實的坐標與預(yù)測的坐標進行計算,這里,樣本的label選取為-2,即人臉特征點樣本。

通過前向傳播,計算完loss值之后,使用tensorflow進行反向傳播進行權(quán)重參數(shù)的更新。到此一次更新結(jié)束,本系統(tǒng)模型訓(xùn)練迭代次數(shù)設(shè)為100 000次,所以重復(fù)上述過程,進行100 000次迭代訓(xùn)練。對其余兩個網(wǎng)絡(luò)模型RNet和ONet進行訓(xùn)練,因為網(wǎng)絡(luò)的輸出端都是一樣的,所以loss值的計算繼續(xù)沿用,訓(xùn)練過程和上述類似,不再贅述。

2.4? 第一階段候選框檢測模塊設(shè)計與實現(xiàn)

第一階段的檢測實現(xiàn)主要分為三部分:圖像scale變換、圖片PNet檢測篩選和NMS非極大值抑制篩選。圖像scale變換子模塊中,將變換最小的圖片下限設(shè)為12*12,且將縮放系數(shù)設(shè)為0.75,將原圖進行圖像金字塔構(gòu)造。進行scale變換后,依次將每個縮放后的圖片進行PNet層輸入運算,得到三個輸出,包括face_label(該檢測區(qū)域為人臉的概率值)、face_box(該區(qū)域人臉候選框的坐標)、landmark(5個人臉特征點坐標),因為檢測的感受野為12*12,再通過滑動窗口的原理計算進行反映射,計算得出該點檢測的區(qū)域在原圖的坐標。得到每一個區(qū)域的人臉概率后,將概率值小于0.8的候選框舍棄,保留大于0.8的候選框。再使用NMS進行覆蓋率較高的候選框進行舍棄,初步產(chǎn)出可能為人臉的候選框。該階段模塊的核心代碼實現(xiàn)如下所示:

2.5? 第二階段候選框檢測模塊設(shè)計與實現(xiàn)

在第一階段實現(xiàn)后,產(chǎn)生了多個PNet認為是人臉置信度高的候選框坐標之后,進行第二階段的進一步篩選處理。將第一階段得到的候選框坐標,在原圖上進行剪裁得到多張候選框圖片,由于RNet層網(wǎng)絡(luò)模型使用全連接層,因此輸入圖片大小需要固定值,則將所有剪裁得到后的圖片使用OpenCV函數(shù)resize()調(diào)整大小為24*24,然后作為RNet層的輸入,進行前向傳播運算,最后得到每張圖片的人臉概率值、人臉候選框坐標以及人臉特征點坐標。同第一階段操作,將人臉候選框圖片人臉概率值小于0.8的進行舍棄,然后再通過NMS進行重復(fù)率高的候選框舍棄,最終得到第二階段篩選后的人臉候選框坐標。

2.6? 第三階段候選框檢測模塊設(shè)計與實現(xiàn)

經(jīng)過前兩個階段模型的篩選處理后,基本已經(jīng)將大部分粗糙和誤檢的候選框進行淘汰,最后一階段,處理繼續(xù)精細篩選人臉候選框,最重要的一步,是將人臉特征點進行預(yù)測以及反映射。ONet與PNet、RNet對比,ONet層才說得上真正用上了landmark的預(yù)測坐標值。該階段實現(xiàn)過程與第二階段相差無幾,不同的是,此階段連續(xù)進行了兩次NMS篩選操作,并且在最后不僅返回人臉候選框坐標值,并且也將候選框置信度以及5個人臉特征點坐標值進行保存返回,最后在原圖上進行候選框和人臉特征點的標注。

3? 結(jié)? 論

本文主要研究的是基于機器學習的人臉檢測系統(tǒng),在對檢測系統(tǒng)進行劃分時,根據(jù)檢測人臉圖像流程將系統(tǒng)分為六個模塊:對人臉檢測模型訓(xùn)練集圖片剪裁處理模塊;預(yù)測模型搭建模塊;預(yù)測模型訓(xùn)練模塊;第一階段候選框檢測模塊;第二階段候選框篩選模塊;第三階段候選框再篩選以及人臉特征點預(yù)測模塊。

參考文獻:

[1] 吳彤,陳燦燦,張翔.人臉識別應(yīng)用算法性能測試簡述 [J].中國安全防范技術(shù)與應(yīng)用,2019(1):14-16.

[2] 常思遠,李有乘,孫培巖,等.一種基于MTCNN的視頻人臉檢測及識別方法 [J].許昌學院學報,2019,38(2):149-152.

[3] 徐冬陽.人臉檢測與識別技術(shù)的發(fā)展及應(yīng)用 [J].電子世界,2018(1):193-194.

作者簡介:彭濤(1974-),女,漢族,江西龍南人,講師,碩士,主要研究方向:計算機應(yīng)用。

猜你喜歡
人臉檢測機器學習
JNI技術(shù)在基于OpenCV的人臉與微笑檢測中的應(yīng)用
基于人臉特征定位的SNS網(wǎng)站應(yīng)用組件研究與設(shè)計
基于詞典與機器學習的中文微博情感分析
基于Android平臺的人臉識別系統(tǒng)設(shè)計與實現(xiàn)
基于網(wǎng)絡(luò)搜索數(shù)據(jù)的平遙旅游客流量預(yù)測分析
前綴字母為特征在維吾爾語文本情感分類中的研究
基于Matlab的人臉檢測實驗設(shè)計
基于支持向量機的金融數(shù)據(jù)分析研究
機器學習理論在高中自主學習中的應(yīng)用
基于JSeg和顯著性檢測的服裝圖像分割方法