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

?

基于改進(jìn)MTCNN的人臉檢測算法

2020-12-22 08:55藍(lán)雯飛張盛蘭朱容波熊文娟
關(guān)鍵詞:候選框人臉卷積

藍(lán)雯飛,張盛蘭,朱容波,熊文娟

(中南民族大學(xué) 計算機(jī)科學(xué)學(xué)院,武漢 430074)

人臉檢測是人臉識別技術(shù)的重要環(huán)節(jié)[1],作為一種生物特征驗(yàn)證技術(shù),人臉檢測與人臉識別具有不要求識別者主動配合、采集人臉方便等特點(diǎn),如今,人臉檢測技術(shù)已滲入眾多行業(yè),成為生活中必不可少的一部分[2].但是,由于傳統(tǒng)的人臉檢測方法比如基于ASM的人臉檢測,達(dá)不到對數(shù)量規(guī)模較大的人臉圖像進(jìn)行檢測的要求.隨著科學(xué)技術(shù)的發(fā)展,近年來,使用與深度學(xué)習(xí)相關(guān)的目標(biāo)檢測算法去處理圖像相關(guān)的任務(wù)成為最熱門的研究之一[3].

CNN(卷積神經(jīng)網(wǎng)絡(luò))是深度學(xué)習(xí)在圖像方面的應(yīng)用.吳紀(jì)蕓等人提出了一種改進(jìn)的MTCNN人臉檢測算法,通過改進(jìn)多任務(wù)卷積神經(jīng)網(wǎng)絡(luò),整合不同網(wǎng)絡(luò)模型,動態(tài)修改Minsize值,減少圖像金字塔中圖片生成數(shù)量,達(dá)到優(yōu)化網(wǎng)絡(luò)的目的[4]. ZHANG等人提出基于多任務(wù)卷積神經(jīng)網(wǎng)絡(luò)的人臉檢測和對齊算法,文章通過三階的卷積神經(jīng)網(wǎng)絡(luò)對任務(wù)進(jìn)行從粗到細(xì)的處理并提出一種新的在線硬樣本生成策略進(jìn)一步提升性能[5].

受文獻(xiàn)[5]及相關(guān)研究啟發(fā),本文對深度學(xué)習(xí)理論中的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行了深入研究,在繼續(xù)采用三階卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練圖像的基礎(chǔ)上,對原始MTCNN人臉檢測算法做了改進(jìn),旨在提高模型的檢測準(zhǔn)確率和訓(xùn)練速度.

1 理論基礎(chǔ)

1.1 MTCNN人臉檢測算法

在深度學(xué)習(xí)中,MTCNN(Multi-task Convolutional Neural Network)人臉檢測算法是人臉識別過程中較實(shí)用的、性能較好的一種檢測方法,它可以根據(jù)人的正臉或側(cè)臉來對一個人的臉部關(guān)鍵點(diǎn)進(jìn)行檢測.

1.2 檢測原理

MTCNN是一個由三層網(wǎng)絡(luò)(P-Net、R-Net、O-Net)組成的網(wǎng)絡(luò)結(jié)構(gòu),其主體思路為級聯(lián)卷積神經(jīng)網(wǎng)絡(luò)思想,并使用多任務(wù)的形式訓(xùn)練網(wǎng)絡(luò)參數(shù),來實(shí)現(xiàn)人臉檢測由簡到精的過程[6].

為確保不同尺寸的圖片輸入都能得到正確的輸出結(jié)果,即實(shí)現(xiàn)對不同大小的人臉進(jìn)行檢測,MTCNN網(wǎng)絡(luò)采用圖像金字塔的形式,將原始的人臉圖片按照網(wǎng)絡(luò)模型設(shè)計,縮放為不同尺寸大小,然后將處理后的圖片傳入P-Net網(wǎng)絡(luò),接收到圖片后,P-Net會首先對圖片進(jìn)行分析,生成很多的人臉候選框,然后對所有候選框進(jìn)行NMS(非極大值抑制)計算,刪除掉一些重復(fù)的人臉候選框,并將輸出結(jié)果映射到原圖像上;緊接著,該網(wǎng)絡(luò)會在原圖像上截取出所有由P-Net確定的(離散)圖像片段,將其調(diào)至24×24像素大小后傳入R-Net處理;R-Net接收到這些分散的圖片后,將輸出經(jīng)由P-Net處理后的每一個候選框的修正值和置信度值.然后,運(yùn)用NMS算法進(jìn)行計算,矯正置信度值高于閾值的候選框并輸出,經(jīng)過R-Net處理后會獲得一些相對正確的人臉框,將這些候選框調(diào)至48×48像素大小后傳入MTCNN里面最精細(xì)的網(wǎng)絡(luò)O-Net進(jìn)行運(yùn)算,同時,生成置信度和修正值,對候選框再次進(jìn)行NMS計算,修正置信度值大于閾值的候選框,直到最終輸出正確的人臉候選框和人臉特征關(guān)鍵點(diǎn)坐標(biāo)為止.

MTCNN神經(jīng)網(wǎng)絡(luò)的訓(xùn)練流程如圖1所示,原始圖像經(jīng)過P-Net、R-Net和O-Net處理后輸出人臉候選框和關(guān)鍵點(diǎn)坐標(biāo).

圖1 MTCNN神經(jīng)網(wǎng)絡(luò)訓(xùn)練流程圖Fig.1 Training flowchart of MTCNN neural networks

1.3 激活函數(shù)選擇

日常神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中比較常見的激活函數(shù)有sigmoid、tanh、ReLU等[7].

sigmoid激活函數(shù)是使用范圍最廣的一類激活函數(shù),常用于隱藏神經(jīng)元的輸出.它的函數(shù)定義如下:

(1)

它可以將網(wǎng)絡(luò)中函數(shù)的值域R映射到(0,1)區(qū)間.sigmoid函數(shù)對中心區(qū)域的信號增益較大,對兩側(cè)區(qū)域的信號增益小,可以用來解決二分類問題[8].

tanh是在sigmoid函數(shù)基礎(chǔ)上改進(jìn)來的,它的函數(shù)定義如下:

(2)

tanh函數(shù)是一條以零為中心的曲線,取值范圍為[-1,1],其優(yōu)點(diǎn)是幾乎可以適用于所有場景,該函數(shù)在特征相差明顯時效果會很好.

本文訓(xùn)練過程中采用的是一種后來才出現(xiàn)的激活函數(shù)——ReLU函數(shù),其定義如下:

(3)

相比sigmoid函數(shù)與tanh函數(shù),ReLU函數(shù)有以下優(yōu)點(diǎn)[9]:

(1)加入非線性因素,使網(wǎng)絡(luò)有更好的表達(dá)能力,加強(qiáng)模型的學(xué)習(xí)能力;

(2)算法簡單,網(wǎng)絡(luò)運(yùn)算效率更高;

(3)梯度是常數(shù),不會出現(xiàn)梯度消失,使得模型收斂速度穩(wěn)定;

(4)收斂速度比sigmoid和tanh函數(shù)快.

2 算法及改進(jìn)

2.1 人臉對齊模塊

模型訓(xùn)練時,將經(jīng)歷圖像金字塔處理后的各種尺度的圖像送入卷積網(wǎng)絡(luò)中處理,經(jīng)過多次卷積、池化和再卷積操作,最終得到輸出圖像,由輸出圖像得到目標(biāo)矩形框,如圖2所示.

圖2 處理后的人臉圖像Fig.2 Face image after processing

當(dāng)訓(xùn)練集中的圖片經(jīng)過網(wǎng)絡(luò)模型時,若出現(xiàn)邊界框左上角y軸坐標(biāo)值小于0,即說明人臉信息不全,自動舍棄此類人臉圖像.

本文使用自然環(huán)境下的人臉訓(xùn)練樣本,人臉特征點(diǎn)定位使用的損失函數(shù)公式如下:

(4)

2.2 模型參數(shù)調(diào)整

人臉檢測大體上分為兩個階段:1)找出所有可能是人臉的候選區(qū)域;2)通過邊界框回歸從候選區(qū)域中選出最可能是人臉的區(qū)域.MTCNN算法通過P-Net、R-Net和O-Net解決了邊框回歸和關(guān)鍵點(diǎn)定位的問題,在此基礎(chǔ)上,本文對此算法做了進(jìn)一步改進(jìn),對MTCNN關(guān)鍵參數(shù)nms_threshol,threshold,minsize進(jìn)行微調(diào). 改進(jìn)后的流程圖如圖3所示.

圖 3 改進(jìn)后的流程圖Fig.3 Flowchart of improved algorithm

如圖3所示,模型訓(xùn)練時對關(guān)鍵的參數(shù)進(jìn)行了調(diào)整.nms_threshol表示采用非極大值抑制算法篩選人臉框時的IOU閾值,threshold表示人臉框得分閾值,minsize表示最小可檢測圖像,本文通過邊界框回歸和非極大值抑制算法進(jìn)行最佳人臉候選框的選擇,從而給參數(shù)設(shè)定合適的閾值.threshold的值設(shè)置得過大,會導(dǎo)致冗余計算;設(shè)置得過小,則會出現(xiàn)一系列問題比如人臉檢測候選框太小提取不到合適的人臉特征信息等.

通過對網(wǎng)絡(luò)模型進(jìn)行測試和分析,并經(jīng)多次實(shí)驗(yàn)對比,得出結(jié)論:當(dāng)MTCNN中R-Net和O-Net的nms_threshol值分別設(shè)置為0.7和0.15、threshol分別設(shè)置為0.7和0.15、minsize值設(shè)置為24時,在同一測試集上的人臉效果最好.

2.3 引入人臉誤檢判別公式

研究發(fā)現(xiàn):在進(jìn)行了關(guān)鍵參數(shù)的微調(diào)后,網(wǎng)絡(luò)模型在自然環(huán)境中測試集上的人臉檢測效率有了較明顯的提高,但是部分人臉被誤檢的情況仍舊存在.通過對測試集人臉置信度數(shù)值進(jìn)行分析對比發(fā)現(xiàn),當(dāng)人臉置信度的值高于或等于0.96時,候選框中是完整人臉的概率較大,被誤檢的人臉(給出的人臉候選框)的置信度都小于0.96.由此,本文引入一個人臉誤檢判別公式,公式的閾值通過對實(shí)驗(yàn)結(jié)果進(jìn)行對比而得:

(5)

p表示MTCNN神經(jīng)網(wǎng)絡(luò)對自然環(huán)境下人臉檢測的人臉候選框置信度的大小,當(dāng)f(p)=1時,表示檢測到的目標(biāo)區(qū)域是人臉;反之,f(p)=0,則為誤檢的情況,并對該檢測區(qū)域進(jìn)行舍棄.本文通過對MTCNN網(wǎng)絡(luò)模型參數(shù)進(jìn)行微調(diào),得到了不同的檢測結(jié)果,對比實(shí)驗(yàn)結(jié)果發(fā)現(xiàn):設(shè)置p的值為0.96時,此MTCNN網(wǎng)絡(luò)模型能在自然環(huán)境中的測試集上取得最好的效果,與此同時誤檢率也能最大程度地降低,其流程圖如圖4所示.

圖4 使用人臉誤檢判別公式后的流程圖Fig.4 Flowchart of using face misdetection discrimination formula

引入人臉誤檢判別公式后,雖然存在個別圖像被誤檢的情況,但網(wǎng)絡(luò)模型在同一測試集上的人臉檢測誤檢率明顯降低.本次的實(shí)驗(yàn)結(jié)果是在對網(wǎng)絡(luò)模型參數(shù)進(jìn)行微調(diào)的基礎(chǔ)上取得的,實(shí)驗(yàn)結(jié)果表明:判別公式引入后,該網(wǎng)絡(luò)模型在人臉檢測的準(zhǔn)確率和魯棒性上都有了提高.

2.4 模型的核心算法

(1)非極大值抑制(NMS)算法是一個尋找局部最大值的過程,它可以準(zhǔn)確、快速地去掉標(biāo)定為不合格但重合度卻很高的候選窗口[10].就本次的人臉檢測過程來說,在訓(xùn)練的初始階段,P-Net網(wǎng)絡(luò)會框出很多的人臉候選框,其中不少是重復(fù)的,使用NMS算法則可以舍棄很多預(yù)測分?jǐn)?shù)較低的候選框、保留預(yù)測分?jǐn)?shù)較高的候選框,最后再將對應(yīng)的人臉候選框映射到原圖像上.

(2)人臉檢測就是在一張圖中找到所有的人臉,它是一個分類任務(wù),本文選擇交叉熵?fù)p失函數(shù)來實(shí)現(xiàn)其功能,函數(shù)公式為:

(6)

該函數(shù)能表征真實(shí)樣本標(biāo)簽和預(yù)測概率之間的差值,可以無限增加“分類失誤”的懲罰力度,加快模型訓(xùn)練速度.

3 模型訓(xùn)練

模型訓(xùn)練流程如下.

(1)確定網(wǎng)絡(luò)的輸入變量和輸出變量:

輸入變量:對MTCNN檢測出來的人臉圖片進(jìn)行灰度處理操作,轉(zhuǎn)化為單通道的圖片數(shù)據(jù),再把圖片縮放到寬度和高度都為64的圖片.

輸出變量:輸出變量是每張輸入圖片經(jīng)過卷積網(wǎng)絡(luò)處理后的帶有人臉候選框和置信度的圖片,是離散變量.

(2)數(shù)據(jù)集劃分:

將人臉圖像數(shù)據(jù)按照8∶2的比列,劃分為兩部分:一部分用于訓(xùn)練集,另一部分是進(jìn)行檢驗(yàn)的驗(yàn)證集.

(3)卷積神經(jīng)網(wǎng)絡(luò)由3個卷積層和1個全連接層組成,詳細(xì)結(jié)構(gòu)為:

(i)第一個卷積層:用32個3×3×1的卷積核對輸入圖像做卷積,后面的×1是因?yàn)檩斎氲膱D片是單通道的,卷積核移動步長為1.卷積之后,為增強(qiáng)模型的擬合能力,用ReLU激活函數(shù)作為非線性映射函數(shù);之后對每個2×2的區(qū)域做最大池化操作;最后用一個dropout層防止過擬合,dropout層的做法是以一定的概率p,讓某個神經(jīng)元停止工作,這次訓(xùn)練過程中不更新權(quán)值,也不參加神經(jīng)網(wǎng)絡(luò)的計算,但其權(quán)重需保留下來;

(ii)第二個卷積層:用64個3×3×32的卷積核對第一個卷積層產(chǎn)生的feature map再卷積,這里的32是因?yàn)榈谝粋€卷積層用了32個卷積核,產(chǎn)生的feature map也是32維的;

(iii)第三個卷積層:用64個3×3×64的卷積核對第二個卷積層產(chǎn)生的feature map做卷積,后面的結(jié)構(gòu)跟之前的卷積層一模一樣;

(iv)全連接層:一個普通的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),把卷積層學(xué)習(xí)到的特征和最終的輸出層連接起來.全連接層的輸出通過softmax函數(shù)傳遞,會輸出樣本屬于各個類別的概率值,那么樣本分類結(jié)果就是概率值最大的那一類.損失函數(shù)定義為交叉熵函數(shù),用梯度下降法傳遞誤差.

(4)每次訓(xùn)練都從訓(xùn)練集中隨機(jī)抽取100個樣本進(jìn)行訓(xùn)練,訓(xùn)練達(dá)到一定次數(shù)后,考察模型在測試集上的性能,如果預(yù)測的準(zhǔn)確率達(dá)到某個閾值,即可停止訓(xùn)練,本文中的閾值設(shè)為0.96.

4 實(shí)驗(yàn)與結(jié)果分析

4.1 數(shù)據(jù)預(yù)處理

為驗(yàn)證上述方法在識別準(zhǔn)確率和識別速率方面的優(yōu)勢,本文做了相關(guān)的實(shí)驗(yàn).

選用公開的LFW人臉庫作為本次實(shí)驗(yàn)的訓(xùn)練數(shù)據(jù)集,該數(shù)據(jù)集提供的人臉圖片均來源于生活中的自然場景,一共包含5000多人,約1680人包含兩張以上的人臉,人臉庫分為光照、遮擋、表情等不同情況,該數(shù)據(jù)庫被廣泛應(yīng)用于評價人臉檢測與識別算法的性能.

實(shí)驗(yàn)之前,首先對人臉圖像數(shù)據(jù)進(jìn)行預(yù)處理,將圖像尺寸縮小至64×64像素,灰度值控制在0~1范圍內(nèi).整個訓(xùn)練過程中,使用真實(shí)的人臉坐標(biāo)區(qū)域計算IoU值(IoU值表示的是子窗口與真實(shí)窗口的交集與并集的比值),若IoU值大于0.65,為正樣本,小于0.3則為負(fù)樣本,IoU值在0.4到0.65之間的視為只含有部分人臉的圖片信息.

4.2 實(shí)驗(yàn)結(jié)果分析

在MTCNN人臉檢測算法中,主要關(guān)注3個指標(biāo),即檢測準(zhǔn)確率、誤檢率和檢測速度.本文將人臉數(shù)據(jù)集分為兩部分,其中80%作為訓(xùn)練集,20%作為測試集.為方便對參數(shù)微調(diào)前后的MTCNN網(wǎng)絡(luò)模型作對比,本文將參數(shù)微調(diào)前后的兩個模型一起在測試集上做了測試,得到的檢測結(jié)果見表1.

表1 參數(shù)微調(diào)前后的模型對比結(jié)果Tab.1 Model comparison results before and after fine-tuning parameters

MTCNN網(wǎng)絡(luò)模型引入人臉誤檢判別公式后,再次對網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練,改進(jìn)前后的測試結(jié)果如表2所示.

表2 引入判別公式前后模型測試結(jié)果Tab.2 Model test results before and after introducingthe discrimination formula

4.3 實(shí)驗(yàn)結(jié)果對比

MTCNN人臉檢測算法改進(jìn)前后在檢測速度上的對比見表3.

表3 改進(jìn)前后檢測速度對比Tab.3 Comparison of detection speed before and after improvement

從表3可以看出,本文改進(jìn)后的人臉檢測算法在提高檢測準(zhǔn)確率的同時,檢測速度也有所提升.

5 結(jié)束語

本文在原MTCNN人臉檢測算法的基礎(chǔ)上,對原有的網(wǎng)絡(luò)模型進(jìn)行遷移學(xué)習(xí)即對算法涉及到的參數(shù)進(jìn)行了討論,同時對模型的關(guān)鍵參數(shù)進(jìn)行了微調(diào),從多組實(shí)驗(yàn)結(jié)果中選擇效果最佳的參數(shù)并確定人臉置信度的閾值,同時提出了人臉誤檢判別公式,當(dāng)目標(biāo)區(qū)域的閾值小于給定的閾值時,判定該區(qū)域不是人臉,對此區(qū)域進(jìn)行舍棄.實(shí)驗(yàn)表明:微調(diào)參數(shù)后的MTCNN檢測算法結(jié)合了人臉誤檢判別公式,與原MTCNN算法相比,人臉檢測性能有了很大程度的提升,優(yōu)化后的算法能夠提高人臉識別率、降低訓(xùn)練時間,有助于人臉檢測技術(shù)的推廣和發(fā)展.

猜你喜歡
候選框人臉卷積
基于Two-Stage的目標(biāo)檢測算法綜述
基于3D-Winograd的快速卷積算法設(shè)計及FPGA實(shí)現(xiàn)
有特點(diǎn)的人臉
一起學(xué)畫人臉
基于深度學(xué)習(xí)的重疊人臉檢測
卷積神經(jīng)網(wǎng)絡(luò)的分析與設(shè)計
從濾波器理解卷積
基于單幀標(biāo)注的弱監(jiān)督動作定位
三國漫——人臉解鎖
基于傅里葉域卷積表示的目標(biāo)跟蹤算法
泰宁县| 敦煌市| 米泉市| 青龙| 尼勒克县| 延川县| 钦州市| 白山市| 青神县| 汾西县| 阜阳市| 庆城县| 容城县| 朝阳县| 京山县| 洪雅县| 尼勒克县| 右玉县| 额济纳旗| 宿松县| 灯塔市| 定陶县| 双牌县| 汝南县| 来安县| 和政县| 永泰县| 宁夏| 东方市| 南靖县| 民丰县| 明光市| 汉中市| 法库县| 渝中区| 东丰县| 双流县| 额敏县| 丹凤县| 永胜县| 湄潭县|