王翰林,何中市
(重慶大學(xué)計(jì)算機(jī)學(xué)院,重慶400044)
近些年,由于深度學(xué)習(xí)與圖像檢測(cè)的結(jié)合,導(dǎo)致圖像檢測(cè)領(lǐng)域的極大發(fā)展。人臉識(shí)別問(wèn)題作為圖像檢測(cè)領(lǐng)域最活躍的問(wèn)題之一,自然也取得極大的進(jìn)步。各種新的基于深度學(xué)習(xí)網(wǎng)絡(luò)的人臉檢測(cè)方法層出不窮,在單一環(huán)境下的人臉檢測(cè)問(wèn)題已經(jīng)得到較為完善的解決。但是在復(fù)雜環(huán)境下,由于存在光照、遮擋、姿勢(shì)和分辨率等問(wèn)題,人臉檢測(cè)的精度和速度還是有待提高。
目標(biāo)檢測(cè)(Object Detection)領(lǐng)域在Ross Girshick引入深度學(xué)習(xí)模型CNN 之后,開(kāi)始了新的篇章。Ross的主要貢獻(xiàn)是把CNN 這個(gè)模型作為特征提取器引入到了目標(biāo)檢測(cè)領(lǐng)域,在這之前,目標(biāo)檢測(cè)領(lǐng)域的所有處于特征提取階段的方法都是利用數(shù)學(xué)和經(jīng)驗(yàn)來(lái)人為的設(shè)計(jì)針對(duì)特定任務(wù)的特征,例如Viola-Jones 在人臉檢測(cè)領(lǐng)域內(nèi)使用的Haar-like 特征,還有在行人檢測(cè)方向使用的HOG(Histogram Of Gradient)特征以及后來(lái)的SIFT(Scale-Invariant Feature Transform),這些特征在特定任務(wù)上的效果都比較好。但是,在涉及到更為復(fù)雜的環(huán)境下的檢測(cè)任務(wù)時(shí),它們都不能很好地做到提取更為靈活準(zhǔn)確的特征的效果。
CNN 模型以及其后來(lái)發(fā)展的變種,之所以能夠很好地適應(yīng)復(fù)雜環(huán)境下的特征提取工作,是應(yīng)為它具有大量的可調(diào)整的參數(shù),而模型基于這些參數(shù)的不斷變化,可以帶來(lái)極強(qiáng)的擬合能力,這就能夠充分適應(yīng)復(fù)雜的圖片和物體的變化,從這些樣本中提取真正關(guān)鍵的特征,而這些特征是靠人類事先設(shè)計(jì)是不可能實(shí)現(xiàn)的。
在通用目標(biāo)檢測(cè)領(lǐng)域,基于Ross 提出的R-CNN模型,由何凱明博士提出了SPPnets,改進(jìn)了圖像的輸入的需要固定尺寸的問(wèn)題,接著Ross 又在SPPnets 的基礎(chǔ)上提出了Fast R-CNN 進(jìn)一步的改進(jìn)了模型,提出了RoI(Region of Interest)層,進(jìn)一步提高了模型的速度和精度,然后何凱明等人又一次提出了Faster R-CNN模型,主要的貢獻(xiàn)是提出了RPN(Region Proposal Net?work)改進(jìn)了Fast R-CNN 模型在生成候選區(qū)域的工作,共享了卷積計(jì)算,真正實(shí)現(xiàn)了端到端(end-to-end)的目標(biāo)檢測(cè)模型。而Faster R-CNN 也是目前檢測(cè)精度最高的通用目標(biāo)檢測(cè)模型。此外,還有YOLO 和SSD 等模型,在檢測(cè)速度上面比Faster R-CNN 模型的效果要好,但是檢測(cè)精度上總體上還有一些不足。
本文是以Faster R-CNN 模型為基礎(chǔ),其中Faster R-CNN 模型中的CNN 部分采用了ResNet50 作為特征提取器。這是因?yàn)闅埐罹W(wǎng)絡(luò)在現(xiàn)今的特征提取方面綜合性能是最好的,設(shè)計(jì)的模型的最重要的兩個(gè)點(diǎn)是人臉周圍的環(huán)境以及人類的注意力機(jī)制的引入。
人臉周圍環(huán)境考慮的是人臉因?yàn)樵趶?fù)雜背景下,會(huì)有很多的遮擋,光照或者分辨率問(wèn)題,那么,我們?cè)诓捎胊nchor(可以理解為模板),就要考慮我們是單純提取人臉大小的區(qū)域,還是根據(jù)人臉的大小采取適當(dāng)?shù)臄U(kuò)大,或者是采用針對(duì)一個(gè)人臉大小的范圍來(lái)采取特定大小的縮放。本文采用的是最后一種,這是基于論文find tiny face 提出的,其中有關(guān)于這個(gè)效果好的具體分析。
人類注意力機(jī)制,是模仿人類在觀察一張圖像時(shí),我們總是傾向于去先查看Salient Object(明顯的目標(biāo)),而不是對(duì)所有的物體都做同等重要的關(guān)注。所以我們考慮到這一點(diǎn)可以加速模型的檢測(cè)工作,我們具體是利用ResNet50 中的每個(gè)block 的最后一層的特征圖,賦予每個(gè)層不同的權(quán)重,來(lái)模仿人類的注意力機(jī)制,效果顯示能夠有效的加速模型的檢測(cè)速度。
在人臉檢測(cè)領(lǐng)域出現(xiàn)了很多優(yōu)秀的模型,從最早的能夠進(jìn)行實(shí)時(shí)檢測(cè)的優(yōu)秀模型Viola-Jones,該框架是首次在級(jí)聯(lián)的AdaBoost 分類器中使用了矩形Haarlike features,從而實(shí)現(xiàn)了實(shí)時(shí)的人臉檢測(cè)。缺點(diǎn)是特征的尺寸是相對(duì)較大,而且在處理非正面的人臉和復(fù)雜環(huán)境下的人臉的效果不是很好。為了解決VJ 算法的缺點(diǎn),陸續(xù)在特征的使用上做了改進(jìn),例如HOG、SIFT、SURF 和ACF。還有一類是在分類器上面做了文章,如Dlib C++Library 使用了SVM 作為分類器,還有一些方法使用了random forest(隨機(jī)森林)來(lái)作為分類器。
接著出現(xiàn)了DPM(Deformable Parts Model)這種模型,這個(gè)模型是基于HOG 描述子改進(jìn)而來(lái)的,主要是解決了物體的多個(gè)角度不同而導(dǎo)致的檢測(cè)不準(zhǔn)的問(wèn)題,在很多檢測(cè)領(lǐng)域都取得很好的檢測(cè)效果,一時(shí)間成為最好的檢測(cè)模型,在人臉檢測(cè)領(lǐng)域也連續(xù)成為最好的模型,直到CNN 模型引入到目標(biāo)檢測(cè)領(lǐng)域。
近些年隨著深度學(xué)習(xí)模型的不斷發(fā)展,有很多優(yōu)秀的人臉檢測(cè)模型結(jié)合了深度學(xué)習(xí)模型,取得巨大進(jìn)步,例如Yunzhu Li 在其論文中使用了一個(gè)集成了Con?vNet 和3D mean 人臉模型的端到端的多任務(wù)學(xué)習(xí)框架,取得了不錯(cuò)的效果。最近,由于Faster R-CNN 模型的興起,很多模型都開(kāi)始采用Faster R-CNN 模型,例如Hongwei Qin 在他的論文中使用了該模型,在FD?DB 數(shù)據(jù)集上取得很好的效果。更多的模型都是對(duì)Faster R-CNN 模型進(jìn)行一定的修改來(lái)使得自己的模型更適合復(fù)雜背景下的人臉檢測(cè)。例如Wan 等人聯(lián)合ResNet 和OHEM(Online Hard Example Mining)設(shè)計(jì)的模型在很多人臉數(shù)據(jù)集上取得優(yōu)異的效果。還有Xudong Sun 在Faster R-CNN 的基礎(chǔ)上采用了特征融合(Feature Concatenation)、Hard Negative Mining、多尺度訓(xùn)練(Multi-Scale Training)等策略來(lái)改進(jìn)模型,在FDDB 數(shù)據(jù)集上取得了很好的效果。
還有很多人開(kāi)始探索模擬人類的視覺(jué)機(jī)制來(lái)設(shè)計(jì)模型,例如最著名的就是Salient Object 檢測(cè),這是利用了人類的注意力機(jī)制來(lái)設(shè)計(jì)模型,其主要思想是每一層的特征層提取的特征是不同,計(jì)算量也是不同的,越往后,特征圖越小,包含的信息越抽象,便于用來(lái)識(shí)別大的物體,但是小的物體或者說(shuō)分辨率低的物體就比較容易被忽略,這是因?yàn)樽詈蟮奶卣鲌D往往每一個(gè)像素點(diǎn)都包含了巨大的接受域(receptive field)。而合理安排每個(gè)特征層權(quán)重,我們可以對(duì)圖片中出現(xiàn)的明顯物體進(jìn)行快速的檢測(cè),然后對(duì)非明顯物體進(jìn)行詳細(xì)的檢測(cè)。這樣可以加快我們對(duì)圖像中人臉的檢測(cè)速度。例如在CVPR2018 會(huì)議上,Xiaoning Zhang 的論文提出了一種新的注意力引導(dǎo)網(wǎng)絡(luò)模型,它以漸進(jìn)的方式選擇性地集成多層次上下文信息。除了模擬人類的注意力機(jī)制外,還有一些研究工作是在分析人臉對(duì)象周圍信息對(duì)于判斷人臉位置的重要性。
例如,Peiyun Hu 的find tiny face 論文提到了怎么選擇一個(gè)合適的模板來(lái)對(duì)人臉信息進(jìn)行提取。
在本文中,我們提出了一種通過(guò)加入人類注意力機(jī)制以及環(huán)境模板信息的改進(jìn)的Faster R-CNN 模型。
我們的模型是在采用了ResNet50 網(wǎng)絡(luò)模型作為特征提取器,ResNet50 是在ImageNet 上進(jìn)行預(yù)先訓(xùn)練過(guò)的,我們采用的人臉檢測(cè)的數(shù)據(jù)集是WIDER FACE,它包含了32,203 張圖像,標(biāo)記了393,703 個(gè)人臉,在圖像的尺寸、姿勢(shì)和遮擋方面具有高度的復(fù)雜性。這個(gè)數(shù)據(jù)集按照40%/10%/50%的比例劃分了訓(xùn)練集,驗(yàn)證集和測(cè)試集。模型的處理流程(Pipeline)如圖1 所示。
我們首先把基于注意力機(jī)制和環(huán)境信息改進(jìn)的模型在WIDER FACE 的訓(xùn)練集上進(jìn)行OHEM(Online Hard Example Mining)的訓(xùn)練,然后在驗(yàn)證集上面進(jìn)行超參數(shù)的選擇,接著我們對(duì)自己的模型進(jìn)行最后的測(cè)試,繪制PR 曲線來(lái)評(píng)估,最后再與表現(xiàn)良好的模型進(jìn)行對(duì)比,獲取自己模型的優(yōu)缺點(diǎn)。
圖1 模型處理的基本流程
在我們的人類的認(rèn)識(shí)里,環(huán)境對(duì)于物體的識(shí)別是至關(guān)重要的。我們通常都會(huì)根據(jù)人臉周邊的環(huán)境進(jìn)行輔助人臉的識(shí)別。這里所說(shuō)的環(huán)境,其實(shí)指的是人臉這個(gè)目標(biāo)周圍的像素點(diǎn),也就是人臉的ground-truth 之外的包圍框。這些多出的信息可以幫助我們進(jìn)行人臉的識(shí)別,但是問(wèn)題是我們需要采用多大的模板才能有效地幫助我們進(jìn)行人臉的識(shí)別呢?
我們根據(jù)文章find tiny face 中的方法總結(jié):
(1)對(duì)于大的目標(biāo)(高度大于140px),使用0.5 倍的模板。
(2)對(duì)于小的目標(biāo)(高度小于40px),使用2 倍的模板。
(3)對(duì)于兩者之間的就使用1 倍的模板。
這種環(huán)境信息的引入導(dǎo)致了模型檢測(cè)的準(zhǔn)確度大幅度提升。
注意力機(jī)制在這里的使用,主要是為了提高模型運(yùn)行的檢測(cè)速度。注意力機(jī)制是對(duì)不同層的特征圖采用不同的權(quán)值,這些權(quán)值的大小決定了我們對(duì)不同大小物體(人臉)的重要程度,對(duì)于高度小于40px 的我們會(huì)側(cè)重于使用淺層的特征圖來(lái)進(jìn)行檢測(cè),對(duì)與高度大于140px 的物體我們會(huì)側(cè)重于使用深層的特征圖的特征進(jìn)行檢測(cè),介于兩者之間的物體我們則側(cè)重于使用中間的特征圖進(jìn)行檢測(cè)。
圖2 鍵模塊的展示
我們?cè)赪IDER FACE 數(shù)據(jù)集上進(jìn)行了訓(xùn)練、測(cè)試。這個(gè)數(shù)據(jù)集包含了32,203 張圖片,總共有393,703張人臉的標(biāo)記,對(duì)于每張人臉的不同的表情(expres?sion)、光照(illumination)、圖像是否合法(invalid)、遮擋(occlusion)以及(pose)都有標(biāo)注,這對(duì)于訓(xùn)練和測(cè)試來(lái)說(shuō)是十分有利的劃分。
我們使用了TensorFlow 框架作為訓(xùn)練和測(cè)試模型的基本架構(gòu),使用ResNet50 作為網(wǎng)絡(luò)的backbone,進(jìn)行特征的提取,這個(gè)網(wǎng)絡(luò)是在ImageNet 上面進(jìn)行過(guò)預(yù)訓(xùn)練的。我們實(shí)驗(yàn)的第一步是使用WIDER FACE 的訓(xùn)練集進(jìn)行訓(xùn)練,其中每個(gè)人臉的對(duì)應(yīng)的標(biāo)簽如表1 所示。
表1
其中2 表示這張圖片中的人臉的個(gè)數(shù)。
下面的10 個(gè)參數(shù)分別為:x1,y1,w,h,blur,expres?sion,illumination,invalid,occlusion,pose。
標(biāo)注后的圖如圖3 所示。
圖3
我們訓(xùn)練的設(shè)置的學(xué)習(xí)率為0.001,我們的anchor的設(shè)置改為根據(jù)人臉的大小也就是上面表格中的h 來(lái)設(shè)置相應(yīng)的anchor 的大小,而不是采用傳統(tǒng)的anchor的設(shè)置方式,只是單純地采用長(zhǎng)寬比和scales 來(lái)設(shè)置anchors 的大小。
我們?cè)谟?xùn)練的時(shí)候,還設(shè)置相對(duì)的res2cx、res3dx、res4fx 以及res5cx 的權(quán)重,一開(kāi)始的初始化采用的是zeros 而不是正態(tài)分布的方式,這樣的實(shí)際效果要好一些。
第二步是在我們使用改進(jìn)之后的RPN 生成的候選區(qū)域放入RoI 層進(jìn)行相應(yīng)參數(shù)的學(xué)習(xí),之后會(huì)根據(jù)類別概率的損失函數(shù)和回歸損失函數(shù)進(jìn)行學(xué)習(xí),之后就得到了一個(gè)學(xué)習(xí)好的具有復(fù)雜背景下識(shí)別能力的模型。
圖4 給出了我們模型在WIDER FACE 上面的PR曲線,還有一些表現(xiàn)較好的其他的模型的PR 曲線作為對(duì)比??梢钥吹轿覀兊脑谡wPR 曲線都和其他優(yōu)秀的模型的PR 曲線持平或者有所超越。同時(shí),經(jīng)過(guò)測(cè)試,我們模型的檢測(cè)速度達(dá)到了3FPS,在這個(gè)精度下的,速度是比較快的。
另外,我們通過(guò)模型測(cè)試之后,隨機(jī)選擇一些測(cè)試結(jié)果的圖像,來(lái)展示我們模型的檢測(cè)效果。
圖4
圖5
通過(guò)上面的分析比較,可以說(shuō)利用人臉周圍的環(huán)境信息和注意力機(jī)制的引入是對(duì)復(fù)雜背景下的人臉檢測(cè)的效果提升比較明顯的,而且速度相對(duì)較快。但是可以注意到,檢測(cè)的精度和速度還是有很大空間進(jìn)行提升的,尤其是檢測(cè)的速度,這一點(diǎn)可能需要更加合理地利用注意力機(jī)制來(lái)進(jìn)行有效提升,這也是我們下一步努力的方向。