本發(fā)明涉及人臉檢測(cè)領(lǐng)域,特別地,涉及一種基于多任務(wù)級(jí)聯(lián)卷積神經(jīng)網(wǎng)絡(luò)的人臉檢測(cè)方法及檢測(cè)裝置。
背景技術(shù):
人臉檢測(cè)(facedetection)技術(shù)是所有人臉相關(guān)技術(shù)(人臉識(shí)別、人臉對(duì)齊、人臉表情識(shí)別、人臉關(guān)鍵點(diǎn)預(yù)測(cè)等)的基礎(chǔ)。隨著人臉檢測(cè)技術(shù)應(yīng)用到越來越多的場(chǎng)景中,尤其在用戶非配合的監(jiān)控環(huán)境,人臉尺度、角度和光照情況變化很大,這對(duì)人臉檢測(cè)的精度和速度要求也越來越高。
深度學(xué)習(xí)(deeplearning)技術(shù)與早些年的人工神經(jīng)網(wǎng)絡(luò)并無本質(zhì)的區(qū)別,自2012年起,受益于數(shù)據(jù)的增加和計(jì)算能力的增強(qiáng),深度學(xué)習(xí)技術(shù)得到迅速的發(fā)展。卷積神經(jīng)網(wǎng)絡(luò)(convolutionalneuralnetworks,cnn)是深度學(xué)習(xí)網(wǎng)絡(luò)的一種,在圖像領(lǐng)域,cnn方法比傳統(tǒng)方法在解決各種問題的能力上有了質(zhì)的提高。
近些年人臉檢測(cè)方法按照是否采用深度學(xué)習(xí)方法分為兩類,未采用深度學(xué)習(xí)方法的算法效果比較好的有jointcascadefacedetectionandalign(jda)和normalizedpixeldifference(npd)。jda方法將人臉檢測(cè)和人臉關(guān)鍵點(diǎn)檢測(cè)結(jié)合起來,利用一種比較簡(jiǎn)單的像素差特征和隨機(jī)森林方法實(shí)現(xiàn)算法框架。由于特征比較簡(jiǎn)單,該算法對(duì)光照的魯棒性比較差,在逆光、光照不均勻的情況下人臉檢測(cè)的效果較差。npd方法和jda方法整體框架類似,不同點(diǎn)主要在于npd對(duì)像素差特征進(jìn)行了歸一化處理,對(duì)逆光情況有較好的改善。該算法在權(quán)威人臉檢測(cè)數(shù)據(jù)集fddb(facedetectiondatasetandbenchmark)上檢測(cè)效果比jda略差,速度上慢于jda方法。
以上兩種檢測(cè)算法是傳統(tǒng)方法(未采用深度學(xué)習(xí))中效果最好的幾種之一,比深度學(xué)習(xí)方法的人臉檢測(cè)算法在誤檢個(gè)數(shù)相同的情況下召回率要低5到10個(gè)點(diǎn)。下面介紹幾種效果比較好的深度學(xué)習(xí)人臉?biāo)惴āacedetectionwiththefasterr-cnn將vgg網(wǎng)絡(luò)(16層)和fasterr-cnn框架應(yīng)用到人臉檢測(cè),另一種方法booststrappingfacedetectionwithhardnegativeexamples更是將50層的殘差網(wǎng)絡(luò)應(yīng)用到人臉檢測(cè)中。這些方法雖然取得了很好的效果,但是由于模型文件太大,速度太慢,基本很難在實(shí)際產(chǎn)品中使用。
傳統(tǒng)方法在戶外監(jiān)控環(huán)境,對(duì)人臉的召回率不夠。而基于深度學(xué)習(xí)的算法,采用的網(wǎng)絡(luò)太深,模型文件較大,運(yùn)算復(fù)雜度太高,很難在實(shí)際產(chǎn)品中部署。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供了一種基于多任務(wù)級(jí)聯(lián)卷積神經(jīng)網(wǎng)絡(luò)的人臉檢測(cè)方法及檢測(cè)裝置,以解決現(xiàn)有技術(shù)中難以兼顧運(yùn)算復(fù)雜度和檢測(cè)精度的技術(shù)問題。
本發(fā)明采用的技術(shù)方案如下:
一種基于多任務(wù)級(jí)聯(lián)卷積神經(jīng)網(wǎng)絡(luò)的人臉檢測(cè)方法,包括:組建級(jí)聯(lián)的多級(jí)卷積神經(jīng)網(wǎng)絡(luò);采用人臉正樣本、人臉負(fù)樣本、部分人臉和人臉關(guān)鍵點(diǎn)樣本作為訓(xùn)練樣本來訓(xùn)練多級(jí)卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行人臉分類、人臉區(qū)域位置回歸以及人臉關(guān)鍵點(diǎn)定位的任務(wù)的學(xué)習(xí);利用訓(xùn)練好的多級(jí)卷積神經(jīng)網(wǎng)絡(luò)對(duì)待檢測(cè)圖像進(jìn)行人臉檢測(cè);其中,在訓(xùn)練階段,同時(shí)采用在線方式和離線方式結(jié)合來挖掘難的人臉負(fù)樣本作為訓(xùn)練樣本。
進(jìn)一步地,在線方式為:在每個(gè)批處理訓(xùn)練的梯度回傳階段,只計(jì)算損失大于設(shè)定閾值的部分人臉負(fù)樣本的梯度,忽略剩余的人臉負(fù)樣本。離線方式為:通過訓(xùn)練好的模型來獲取分類出錯(cuò)的人臉負(fù)樣本,并從分類出錯(cuò)的人臉負(fù)樣本中選取出得分在設(shè)定范圍內(nèi)的一批,以預(yù)定概率加入到當(dāng)前訓(xùn)練的人臉負(fù)樣本中繼續(xù)訓(xùn)練所述模型。
進(jìn)一步地,多級(jí)卷積神經(jīng)網(wǎng)絡(luò)中的每一級(jí)包括依次連接的多個(gè)卷積層、至少一個(gè)最大池化層以及一個(gè)全連接層,且后一級(jí)卷積神經(jīng)網(wǎng)絡(luò)中的全連接層輸出的特征與上一級(jí)卷積神經(jīng)網(wǎng)絡(luò)的全連接層輸出的特征結(jié)合,再通過不同的全連接子層對(duì)應(yīng)到不同的任務(wù)的學(xué)習(xí)。
進(jìn)一步地,多級(jí)卷積神經(jīng)網(wǎng)絡(luò)包括三級(jí)卷積神經(jīng)網(wǎng)絡(luò),其中,第一級(jí)卷積神經(jīng)網(wǎng)絡(luò)采用10*10*3大小的圖像作為輸入,第一級(jí)卷積神經(jīng)網(wǎng)絡(luò)包括多個(gè)卷積層和最大池化層以及一個(gè)全連接層,經(jīng)過卷積和池化處理后,圖像由10*10*3變?yōu)?*1*32大小的特征,再通過兩個(gè)不同的全連接子層對(duì)應(yīng)到不同的任務(wù);第二級(jí)卷積神經(jīng)網(wǎng)絡(luò)采用24*24*3大小的圖像作為輸入,第二級(jí)卷積神經(jīng)網(wǎng)絡(luò)包括多個(gè)卷積層和兩個(gè)最大池化層以及一個(gè)輸出長(zhǎng)度為128的全連接層,本級(jí)的全連接層輸出的特征和第一級(jí)卷積神經(jīng)網(wǎng)絡(luò)輸出的1*1*32的特征拼接起來形成長(zhǎng)度為160的特征,再通過兩個(gè)不同的全連接子層對(duì)應(yīng)到不同任務(wù)的學(xué)習(xí);第三級(jí)卷積神經(jīng)網(wǎng)絡(luò)采用48*48*3大小的圖像作為輸入,第三級(jí)卷積神經(jīng)網(wǎng)絡(luò)包括多個(gè)卷積層和三個(gè)最大池化層以及一個(gè)輸出長(zhǎng)度為256的全連接層,本級(jí)的全連接層輸出的特征和第二層卷積神經(jīng)網(wǎng)絡(luò)輸出的長(zhǎng)度為160的特征拼接起來形成長(zhǎng)度為416的特征,再通過三個(gè)不同的全連接子層對(duì)應(yīng)到不同任務(wù)的學(xué)習(xí)。
進(jìn)一步地,在訓(xùn)練階段,級(jí)聯(lián)的多級(jí)卷積神經(jīng)網(wǎng)絡(luò)中,前面的多級(jí)卷積神經(jīng)網(wǎng)絡(luò)輸入樣本為人臉正樣本、人臉負(fù)樣本和部分人臉樣本,在最后一級(jí)卷積神經(jīng)網(wǎng)絡(luò)中加入人臉關(guān)鍵點(diǎn)樣本,并在后面各級(jí)卷積神經(jīng)網(wǎng)絡(luò)中提高人臉正樣本和人臉負(fù)樣本的比率。
進(jìn)一步地,在訓(xùn)練階段,人臉分類任務(wù)采用交叉熵?fù)p失函數(shù),人臉區(qū)域位置回歸和人臉關(guān)鍵點(diǎn)定位任務(wù)采用歐式損失函數(shù),人臉分類任務(wù)還采用中央部分損失函數(shù),并將交叉熵?fù)p失函數(shù)、歐式損失函數(shù)和中央部分損失函數(shù)通過不同的權(quán)重加權(quán)輸出。
進(jìn)一步地,在檢測(cè)階段,圖像經(jīng)每一級(jí)卷積神經(jīng)網(wǎng)絡(luò)處理后,對(duì)認(rèn)定的同一人臉區(qū)域,采用非極大值抑制方法將樣本得分排在前k個(gè)的個(gè)人臉區(qū)域聚類合并到第k個(gè)之后的人臉區(qū)域,并調(diào)整人臉區(qū)域位置。在使用非極大值抑制方法對(duì)樣本得分進(jìn)行排序時(shí),采用多級(jí)卷積神經(jīng)網(wǎng)絡(luò)的加權(quán)得分作為樣本得分。多級(jí)卷積神經(jīng)網(wǎng)絡(luò)包括三級(jí)卷積神經(jīng)網(wǎng)絡(luò),加權(quán)得分計(jì)算機(jī)制為:第一級(jí)卷積神經(jīng)網(wǎng)絡(luò)分類得分是s1,第二級(jí)卷積神經(jīng)網(wǎng)絡(luò)分類得分s2,第三級(jí)卷積神經(jīng)網(wǎng)絡(luò)分類得分s3,在排序時(shí)樣本經(jīng)過第一級(jí)卷積神經(jīng)網(wǎng)絡(luò)采用的得分t1=s1,樣本經(jīng)過第二級(jí)卷積神經(jīng)網(wǎng)絡(luò)后的得分t2=s2+s1*0.5,樣本經(jīng)過第三級(jí)卷積神經(jīng)網(wǎng)絡(luò)后得分t3=s3+t2*0.5。
根據(jù)本發(fā)明的另一方面,還提供了一種基于多任務(wù)級(jí)聯(lián)卷積神經(jīng)網(wǎng)絡(luò)的人臉檢測(cè)裝置,包括:組建模塊,用于組建級(jí)聯(lián)的多級(jí)卷積神經(jīng)網(wǎng)絡(luò);訓(xùn)練模塊,用于對(duì)多級(jí)卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,訓(xùn)練模塊采用人臉正樣本、人臉負(fù)樣本、部分人臉和人臉關(guān)鍵點(diǎn)樣本作為訓(xùn)練樣本來訓(xùn)練多級(jí)卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行人臉分類、人臉區(qū)域位置回歸以及人臉關(guān)鍵點(diǎn)定位任務(wù)的學(xué)習(xí);檢測(cè)模塊,用于對(duì)待檢測(cè)圖像利用訓(xùn)練好的多級(jí)卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行人臉檢測(cè);訓(xùn)練模塊在訓(xùn)練階段,同時(shí)采用在線方式和離線方式結(jié)合來挖掘難的人臉負(fù)樣本作為訓(xùn)練樣本。
進(jìn)一步地,在線方式為:在每個(gè)批處理訓(xùn)練的梯度回傳階段,只計(jì)算損失大于設(shè)定閾值的部分人臉負(fù)樣本的梯度,忽略剩余的人臉負(fù)樣本;離線方式為:通過訓(xùn)練好的模型來獲取分類出錯(cuò)的人臉負(fù)樣本,并從分類出錯(cuò)的人臉負(fù)樣本中選取出得分在設(shè)定范圍內(nèi)的一批,以預(yù)定概率加入到當(dāng)前訓(xùn)練的人臉負(fù)樣本中繼續(xù)訓(xùn)練所述模型。
進(jìn)一步地,組建模塊組建的多級(jí)卷積神經(jīng)網(wǎng)絡(luò)中,每一級(jí)卷積神經(jīng)網(wǎng)絡(luò)包括依次連接的多個(gè)卷積層、至少一個(gè)最大池化層以及一個(gè)全連接層,且后一級(jí)卷積神經(jīng)網(wǎng)絡(luò)中的全連接層輸出的特征與上一級(jí)卷積神經(jīng)網(wǎng)絡(luò)的全連接層輸出的特征結(jié)合,再通過不同的全連接子層對(duì)應(yīng)到不同的任務(wù)的學(xué)習(xí)。
本發(fā)明具有以下有益效果:本發(fā)明基于級(jí)聯(lián)的多級(jí)卷積神經(jīng)網(wǎng)絡(luò),能夠?qū)W習(xí)到魯棒性更強(qiáng)的特征,同時(shí)采用在線方式和離線方式兩種挖掘難的人臉負(fù)樣本的方式,能提高網(wǎng)絡(luò)的分類能力,從而提高網(wǎng)絡(luò)的檢測(cè)能力和準(zhǔn)確率,并保證該方法在實(shí)際產(chǎn)品中的運(yùn)行速度。
除了上面所描述的目的、特征和優(yōu)點(diǎn)之外,本發(fā)明還有其它的目的、特征和優(yōu)點(diǎn)。下面將參照附圖,對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說明。
附圖說明
構(gòu)成本申請(qǐng)的一部分的附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
圖1是本發(fā)明優(yōu)選實(shí)施例基于多任務(wù)級(jí)聯(lián)卷積神經(jīng)網(wǎng)絡(luò)的人臉檢測(cè)方法的流程圖;
圖2是本發(fā)明優(yōu)選實(shí)施例的第一級(jí)卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)示意圖;
圖3是本發(fā)明優(yōu)選實(shí)施例的第二級(jí)卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)示意圖;
圖4是本發(fā)明優(yōu)選實(shí)施例的第三級(jí)卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)示意圖;
圖5是本發(fā)明優(yōu)選實(shí)施例的基于多任務(wù)級(jí)聯(lián)卷積神經(jīng)網(wǎng)絡(luò)的人臉檢測(cè)裝置的結(jié)構(gòu)框圖。
具體實(shí)施方式
需要說明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。下面將參考附圖并結(jié)合實(shí)施例來詳細(xì)說明本發(fā)明。
參照?qǐng)D1,本發(fā)明的基于多任務(wù)級(jí)聯(lián)卷積神經(jīng)網(wǎng)絡(luò)的人臉檢測(cè)方法,具體流程包括:
步驟s100,組建級(jí)聯(lián)的多級(jí)卷積神經(jīng)網(wǎng)絡(luò);
步驟s200,采用人臉正樣本、人臉負(fù)樣本、部分人臉和人臉關(guān)鍵點(diǎn)樣本作為訓(xùn)練樣本來訓(xùn)練所述多級(jí)卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行人臉分類、人臉區(qū)域位置回歸以及人臉關(guān)鍵點(diǎn)定位的任務(wù)的學(xué)習(xí);
步驟s300,利用訓(xùn)練好的多級(jí)卷積神經(jīng)網(wǎng)絡(luò)對(duì)待檢測(cè)圖像進(jìn)行人臉檢測(cè)。
本發(fā)明的優(yōu)選實(shí)施例,通過組建并訓(xùn)練級(jí)聯(lián)的三級(jí)差異化的卷積神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)人臉檢測(cè)、人臉關(guān)鍵的定位。本發(fā)明首先保證該方法在實(shí)際產(chǎn)品中的運(yùn)行速度,在此基礎(chǔ)上,對(duì)輸入圖像構(gòu)造圖像金字塔,再應(yīng)用三個(gè)級(jí)聯(lián)的淺層卷積神經(jīng)網(wǎng)絡(luò),大大提高算法的性能。第一級(jí)卷積神經(jīng)網(wǎng)絡(luò)在保證速度的同時(shí)保證了較高的人臉召回率,第二級(jí)卷積神經(jīng)網(wǎng)絡(luò)和第三個(gè)卷積神經(jīng)網(wǎng)絡(luò)進(jìn)一步得到準(zhǔn)確的人臉區(qū)域位置信息和人臉關(guān)鍵點(diǎn)的位置。每級(jí)卷積神經(jīng)網(wǎng)絡(luò)在分類判別輸入圖像是否為人臉的同時(shí)對(duì)人臉區(qū)域的位置進(jìn)行矯正,進(jìn)一步提高了人臉檢測(cè)的準(zhǔn)確率。
具體地,第一級(jí)卷積神經(jīng)網(wǎng)絡(luò)采用10*10*3大小的圖像作為輸入。在第一級(jí)卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練階段,通過分別采取8*8、9*9、10*10、11*11、12*12共五種輸入大小進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果證明采用10*10*3大小的圖像作為輸入,能在損失很小精度的同時(shí)(對(duì)比12*12*3)大幅度提高第一級(jí)卷積神經(jīng)網(wǎng)絡(luò)的速度。第一級(jí)卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)如圖2所示,其包括依次連接的一個(gè)1*3*3的卷積層(c)、一個(gè)3*1*10的卷積層、一個(gè)2*2的最大池化maxpooling層(mp)和一個(gè)1*3*10的卷積層、一個(gè)3*1*16的卷積層和一個(gè)1*3*10的卷積層以及一個(gè)全連接層。經(jīng)過卷積和池化處理后,圖像由10*10*3變?yōu)?*1*32大小的特征(featuremap),再通過兩個(gè)全連接子層對(duì)應(yīng)到不同的任務(wù),包括人臉分類(faceclassification)和人臉區(qū)域位置回歸(boundingboxregression)。
為了進(jìn)一步優(yōu)化速度,本發(fā)明將核3*3*10的卷積層,拆分成一個(gè)核為1*3*3和一個(gè)核為3*1*10的卷積層,在性能幾乎不下降的同時(shí)進(jìn)一步優(yōu)化速度,本發(fā)明在后面的兩級(jí)卷積神經(jīng)網(wǎng)絡(luò)中也應(yīng)用了該技術(shù)來優(yōu)化網(wǎng)絡(luò)。在檢測(cè)階段,本發(fā)明將訓(xùn)練好的第一級(jí)卷積神經(jīng)網(wǎng)絡(luò)中的全連接層按照核為1*1的卷積層的形式排列,這樣可不限制輸入圖像的大小。輸入整張圖像得到經(jīng)過第一個(gè)網(wǎng)絡(luò)處理后的特征圖,根據(jù)該特征圖判斷哪些位置為人臉區(qū)域。
第二級(jí)卷積神經(jīng)網(wǎng)絡(luò)輸入為24*24*3,如圖3所示,其結(jié)構(gòu)包括依次連接的一個(gè)1*3*3的卷積層、一個(gè)3*1*28的卷積層、一個(gè)3*3的最大池化層、一個(gè)1*3*28的卷積層、一個(gè)3*1*48的卷積層、一個(gè)3*3的最大池化層,再連接一個(gè)核為2*2的卷積層和一個(gè)全連接層,輸出的長(zhǎng)度為128。將這個(gè)長(zhǎng)度為128的特征和第一級(jí)卷積神經(jīng)網(wǎng)絡(luò)輸出的1*1*32的特征拼接起來形成長(zhǎng)度為160的特征,在此基礎(chǔ)上通過兩個(gè)全連接子層對(duì)應(yīng)到不同的任務(wù)的學(xué)習(xí),包括人臉分類和人臉區(qū)域位置回歸。實(shí)驗(yàn)證明加入第一級(jí)卷積神經(jīng)網(wǎng)絡(luò)的特征后,能提高第二級(jí)卷積神經(jīng)網(wǎng)絡(luò)的分類能力。
如圖4所示,第三級(jí)卷積神經(jīng)網(wǎng)絡(luò)的輸入為48*48*3,輸入層之后依次連接一個(gè)1*3*3的卷積層、一個(gè)3*1*32的卷積層、一個(gè)3*3的最大池化層、一個(gè)1*3*32的卷積層、一個(gè)3*1*64的卷積層、一個(gè)3*3的最大池化層、一個(gè)核為3*3的卷積層和一個(gè)2*2的最大池化層、一個(gè)核為2*2的卷積層、緊跟一個(gè)全連接層,輸出長(zhǎng)度為256。和第二級(jí)卷積神經(jīng)網(wǎng)絡(luò)類似,本發(fā)明也將前兩級(jí)卷積神經(jīng)網(wǎng)絡(luò)得到的長(zhǎng)度為160的特征和本級(jí)長(zhǎng)度為256的特征拼接在一起,拼接后特征長(zhǎng)度為416,再通過三個(gè)不同的全連接子層對(duì)應(yīng)到不同任務(wù)的學(xué)習(xí),包括人臉分類、人臉區(qū)域位置回歸和人臉關(guān)鍵點(diǎn)定位(landmarklocalization)。
本發(fā)明采用widerface和celeba作為訓(xùn)練數(shù)據(jù)。在訓(xùn)練階段,根據(jù)所選取圖像區(qū)域和實(shí)際人臉標(biāo)記區(qū)域的重疊大小,將訓(xùn)練樣本分為人臉正樣本(positives,重疊區(qū)域大于0.7)、人臉負(fù)樣本(negatives,重疊區(qū)域小于0.3)、部分人臉(partfaces,重疊區(qū)域大于0.5且小于0.7)、人臉關(guān)鍵點(diǎn)樣本(landmarks,有關(guān)鍵點(diǎn)標(biāo)注的人臉正樣本)。其中positives和negatives用于人臉分類任務(wù);positives和partfaces用于人臉區(qū)域位置回歸任務(wù);landmarks用于人臉關(guān)鍵點(diǎn)定位任務(wù)。在訓(xùn)練第一級(jí)卷積神經(jīng)網(wǎng)絡(luò)的階段,控制positives、negatives、partfaces的比例為1:3:1,在訓(xùn)練第二級(jí)卷積神經(jīng)網(wǎng)絡(luò)的階段控制該比例為1:2:1,在最后在訓(xùn)練第三級(jí)卷積神經(jīng)網(wǎng)絡(luò)的階段將landmarks加入訓(xùn)練,并控制positives:negatives:partfaces:landmarks的比例為1:1:1:1。在第二級(jí)卷積神經(jīng)網(wǎng)絡(luò)和第三級(jí)卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程中提高人臉正樣本和人臉負(fù)樣本的比率,能有效提高這兩級(jí)網(wǎng)絡(luò)的分類能力。
在訓(xùn)練第一級(jí)卷積神經(jīng)網(wǎng)絡(luò)的時(shí)候,從有標(biāo)簽的大圖數(shù)據(jù)中,隨機(jī)截取10x10大小的圖像塊作為第一級(jí)卷積神經(jīng)網(wǎng)絡(luò)的輸入。在訓(xùn)練第二級(jí)卷積神經(jīng)網(wǎng)絡(luò)和第三級(jí)卷積神經(jīng)網(wǎng)絡(luò)的時(shí)候,分別將之前訓(xùn)練好的網(wǎng)絡(luò)在有標(biāo)簽的數(shù)據(jù)上做人臉檢測(cè)得到對(duì)應(yīng)下一級(jí)網(wǎng)絡(luò)的輸入數(shù)據(jù)。
針對(duì)人臉分類、人臉區(qū)域位置回歸、人臉關(guān)鍵點(diǎn)定位這三個(gè)不同的任務(wù),本發(fā)明采用了不同的損失函數(shù)。人臉分類采用的是交叉熵?fù)p失函數(shù),其公式如下:
其中pi表示在該樣本是正樣本(人臉)的概率,
人臉區(qū)域位置回歸和人臉關(guān)鍵點(diǎn)定位都采用的歐式損失函數(shù),其公式如下:
為了進(jìn)一步提高人臉分類的性能,本發(fā)明采用了中央部分損失函數(shù)(centerloss)進(jìn)一步拉開人臉樣本和非人臉樣本在高維空間的距離,實(shí)驗(yàn)中也證明,在每一級(jí)卷積神經(jīng)網(wǎng)絡(luò)的人臉分類任務(wù)中加入centerloss后,分類能力有進(jìn)一步的提高。centerloss的公式如下:
為提高對(duì)人臉的召回率,本發(fā)明在訓(xùn)練中將以上幾個(gè)損失通過不同的權(quán)重加權(quán)輸出:
其中αi代表不同loss對(duì)應(yīng)的權(quán)重,βi對(duì)應(yīng)樣本類型。
在人臉檢測(cè)的訓(xùn)練過程中,挖掘難的人臉負(fù)樣本(hardnegativemining)作為訓(xùn)練樣本一直是一種行之有效的提高檢測(cè)能力的方法。本發(fā)明同時(shí)采用兩種人臉負(fù)樣本挖掘的方式,一種為在線方式(online),另一種為離線方式(offline)。online的方式實(shí)現(xiàn)如下,在每個(gè)批處理(batch)訓(xùn)練的梯度回傳階段,只計(jì)算損失大于設(shè)定閾值的部分人臉負(fù)樣本的梯度,忽略剩余的人臉負(fù)樣本。優(yōu)選地,本發(fā)明只計(jì)算損失比較大的前70%的人臉負(fù)樣本的梯度,忽略剩余30%的容易的人臉負(fù)樣本。在offline階段,本發(fā)明采用的是一種次難樣本的策略,即通過訓(xùn)練好的模型來獲取分類出錯(cuò)的人臉負(fù)樣本,從分類出錯(cuò)的人臉負(fù)樣本中選取出得分比較低的那一批以預(yù)定概率加入到訓(xùn)練樣本中。以0為閾值,本發(fā)明從分類出錯(cuò)的人臉負(fù)樣本中優(yōu)選地選取得分在0~0.5的那一批,以40%的概率加入到當(dāng)前訓(xùn)練的人臉負(fù)樣本中繼續(xù)訓(xùn)練該模型。此方法在訓(xùn)練第一級(jí)卷積神經(jīng)網(wǎng)絡(luò)階段能大幅度提高網(wǎng)絡(luò)的分類能力,使第一級(jí)卷積神經(jīng)網(wǎng)絡(luò)過濾掉絕大多數(shù)人臉負(fù)樣本,有效減少第二級(jí)卷積神經(jīng)網(wǎng)絡(luò)和第三級(jí)卷積神經(jīng)網(wǎng)絡(luò)處理的樣本個(gè)數(shù),提高了檢測(cè)能力和運(yùn)行速度。實(shí)驗(yàn)證明,以上兩種方法均可提高網(wǎng)絡(luò)的分類能力。以上概率/數(shù)值僅是優(yōu)選的方式,本發(fā)明并不局限于此。
訓(xùn)練完成后,利用訓(xùn)練好的多級(jí)卷積神經(jīng)網(wǎng)絡(luò)對(duì)待檢測(cè)圖像進(jìn)行人臉檢測(cè),檢測(cè)階段的整個(gè)流程如下:
對(duì)于每一張需要檢測(cè)的圖像,首先構(gòu)建圖像金字塔(resize),將金字塔圖像的每一級(jí)作為第一級(jí)卷積神經(jīng)網(wǎng)絡(luò)的輸入。對(duì)于第一級(jí)卷積神經(jīng)網(wǎng)絡(luò),將全連接層轉(zhuǎn)換成全卷積網(wǎng)絡(luò),可對(duì)應(yīng)任何尺度大小的輸入,直接輸出得到人臉區(qū)域位置的置信度圖,并由此計(jì)算出對(duì)應(yīng)人臉區(qū)域位置。
然后對(duì)第一級(jí)卷積神經(jīng)網(wǎng)絡(luò)輸出的人臉區(qū)域進(jìn)行聚類合并。本發(fā)明采用一種改進(jìn)的非極大值抑制topknms方法進(jìn)行聚類合并,對(duì)認(rèn)定的同一人臉區(qū)域,每次保留前k個(gè)得分高的,合并到得分較低的也就是第k個(gè)之后的人臉區(qū)域,進(jìn)一步保證了人臉召回率。將聚類合并后的人臉區(qū)域進(jìn)行位置矯正,然后縮放到第二級(jí)卷積神經(jīng)網(wǎng)絡(luò)的輸入大小。
縮放后的圖像經(jīng)過第二級(jí)卷積神經(jīng)網(wǎng)絡(luò)處理后,將通過閾值的人臉區(qū)域進(jìn)行位置調(diào)整,然后經(jīng)過topknms處理。第三級(jí)卷積神經(jīng)網(wǎng)絡(luò)除了輸入改成48*48*3大小之外,其他過程同第二級(jí)卷積神經(jīng)網(wǎng)絡(luò),與此同時(shí)得到人臉關(guān)鍵點(diǎn)的信息。
在使用非極大值抑制方法對(duì)樣本得分進(jìn)行排序時(shí),本發(fā)明不僅考慮當(dāng)前網(wǎng)絡(luò)的得分,還累計(jì)計(jì)算前一級(jí)網(wǎng)絡(luò)的得分。具體的得分計(jì)算機(jī)制為:第一級(jí)卷積神經(jīng)網(wǎng)絡(luò)分類得分是s1,第二級(jí)卷積神經(jīng)網(wǎng)絡(luò)分類得分s2,第三級(jí)卷積神經(jīng)網(wǎng)絡(luò)分類得分s3,在排序時(shí)樣本經(jīng)過第一級(jí)卷積神經(jīng)網(wǎng)絡(luò)采用的得分t1=s1,樣本經(jīng)過第二級(jí)卷積神經(jīng)網(wǎng)絡(luò)后的得分t2=s2+s1*0.5,樣本經(jīng)過第三級(jí)卷積神經(jīng)網(wǎng)絡(luò)后得分t3=s3+t2*0.5。充分考慮到三級(jí)卷積神經(jīng)網(wǎng)絡(luò)的加權(quán)得分,實(shí)驗(yàn)證明該方法能提高人臉檢測(cè)的準(zhǔn)確率。
根據(jù)本發(fā)明的另一方面,還提供了一種基于多任務(wù)級(jí)聯(lián)卷積神經(jīng)網(wǎng)絡(luò)的人臉檢測(cè)裝置,本實(shí)施例的裝置可參考上述方法實(shí)施例,具體地,參照?qǐng)D5,其包括:
組建模塊400,用于組建級(jí)聯(lián)的多級(jí)卷積神經(jīng)網(wǎng)絡(luò);
訓(xùn)練模塊500,用于對(duì)多級(jí)卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,訓(xùn)練模塊500采用人臉正樣本、人臉負(fù)樣本、部分人臉和人臉關(guān)鍵點(diǎn)樣本作為訓(xùn)練樣本來訓(xùn)練多級(jí)卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行人臉分類、人臉區(qū)域位置回歸以及人臉關(guān)鍵點(diǎn)定位任務(wù)的學(xué)習(xí);且訓(xùn)練模塊500在訓(xùn)練階段,同時(shí)采用在線方式和離線方式結(jié)合來挖掘難的人臉負(fù)樣本作為訓(xùn)練樣本;
檢測(cè)模塊600,用于對(duì)待檢測(cè)圖像利用訓(xùn)練好的多級(jí)卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行人臉檢測(cè)。
在線方式實(shí)現(xiàn)如下:在每個(gè)批處理訓(xùn)練的梯度回傳階段,只計(jì)算損失比較大的前70%的人臉負(fù)樣本的梯度,忽略剩余30%的容易的人臉負(fù)樣本。離線方式具體為:通過訓(xùn)練好的模型來獲取分類出錯(cuò)的人臉負(fù)樣本,并從分類出錯(cuò)的人臉負(fù)樣本中選取出得分0~0.5的那一批,以40%的概率加入到當(dāng)前訓(xùn)練的人臉負(fù)樣本中繼續(xù)訓(xùn)練該模型。
組建模塊400組建的多級(jí)卷積神經(jīng)網(wǎng)絡(luò)中,每一級(jí)卷積神經(jīng)網(wǎng)絡(luò)包括依次連接的多個(gè)卷積層、至少一個(gè)最大池化層以及一個(gè)全連接層,且后一級(jí)卷積神經(jīng)網(wǎng)絡(luò)中的全連接層輸出的特征與上一級(jí)卷積神經(jīng)網(wǎng)絡(luò)的全連接層輸出的特征結(jié)合,再通過不同的全連接子層對(duì)應(yīng)到不同的任務(wù)的學(xué)習(xí)。
本發(fā)明的基于多任務(wù)級(jí)聯(lián)卷積神經(jīng)網(wǎng)絡(luò)的人臉檢測(cè)方法及裝置,具有以下優(yōu)點(diǎn):
(1)調(diào)整第一級(jí)卷積神經(jīng)網(wǎng)絡(luò)的輸入大小和網(wǎng)絡(luò)結(jié)構(gòu),大幅提高了運(yùn)行速度。
(2)同時(shí)采用在線和離線兩種挖掘難的人臉負(fù)樣本的方式,增加第一級(jí)卷積神經(jīng)網(wǎng)絡(luò)對(duì)人臉負(fù)樣本的排除能力,有效減少了第二級(jí)卷積神經(jīng)網(wǎng)絡(luò)和第三級(jí)卷積神經(jīng)網(wǎng)絡(luò)處理的樣本個(gè)數(shù),提高了檢測(cè)能力和運(yùn)行速度。
(3)在訓(xùn)練過程中的人臉分類任務(wù)加入了centerloss的約束,拉大人臉和非人臉的類間距,有利于提高分類能力。
(4)將不同尺度特征結(jié)合,提高了特征的表達(dá)能力。具體地,第二級(jí)卷積神經(jīng)網(wǎng)絡(luò)加入了第一級(jí)卷積神經(jīng)網(wǎng)絡(luò)的特征表達(dá),第三級(jí)卷積神經(jīng)網(wǎng)絡(luò)加入了第一級(jí)卷積神經(jīng)網(wǎng)絡(luò)和第二級(jí)卷積神經(jīng)網(wǎng)絡(luò)的特征表達(dá),增強(qiáng)了不同尺度的魯棒性,提高第二級(jí)卷積神經(jīng)網(wǎng)絡(luò)和第三級(jí)卷積神經(jīng)網(wǎng)絡(luò)的分類的能力。
(5)通過每級(jí)卷積神經(jīng)網(wǎng)絡(luò)處理后,本發(fā)明將人臉區(qū)域位置采用非極大值抑制topknms方法進(jìn)行聚類合并,并調(diào)整人臉區(qū)域位置,進(jìn)一步提高了人臉檢測(cè)的準(zhǔn)確率。在非極大值抑制的時(shí)候,采用topknms和各級(jí)卷積神經(jīng)網(wǎng)絡(luò)得分加權(quán)的策略,提高了人臉的召回率。
以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。