光學(xué)篩選機(jī)|光學(xué)影像篩選機(jī)|外觀缺陷檢測機(jī)|機(jī)器視覺檢測機(jī)|自動化檢測設(shè)備|非標(biāo)視覺檢測|外觀檢測|光學(xué)分選機(jī)|在線檢測機(jī)|瑕疵檢測設(shè)備|六面檢測機(jī)|光學(xué)全檢機(jī)
文本標(biāo)簽:光學(xué)篩選機(jī)|光學(xué)影像篩選機(jī)|外觀缺陷檢測機(jī)|機(jī)器視覺檢測機(jī)|自動化檢測設(shè)備|非標(biāo)視覺檢測|外觀檢測|光學(xué)分選機(jī)|在線檢測機(jī)|瑕疵檢測設(shè)備|六面檢測機(jī)|光學(xué)全檢機(jī)
編者按:蘇軾在《題西林壁》中曾寫道:“橫看成嶺側(cè)成峰,遠(yuǎn)近高低各不同?!边@兩句詩闡釋了視角的變化對于視覺任務(wù)的影響。而在人臉識別領(lǐng)域,由于真實(shí)場景的復(fù)雜多變,受人體姿態(tài)和取景角度的影響,采集到的人臉圖像,時常會存在平面內(nèi)旋轉(zhuǎn)角度不確定等問題,這為人臉檢測以及基于人臉的視覺任務(wù)帶來了極大的挑戰(zhàn)。本文中,將為大家介紹中科院計(jì)算所VIPL組的CVPR2018新作:如何利用級聯(lián)矯正網(wǎng)絡(luò),來實(shí)現(xiàn)實(shí)時、旋轉(zhuǎn)自適應(yīng)的人臉檢測。
本文將介紹我們的一篇實(shí)時旋轉(zhuǎn)不變?nèi)四槞z測的算法。
在體操、街舞、家庭合影等復(fù)雜的應(yīng)用場景,由于人體姿態(tài)和取景角度的變化,人臉不總是豎直的,有可能有各種各樣的平面內(nèi)旋轉(zhuǎn)角度。旋轉(zhuǎn)不變?nèi)四槞z測算法目標(biāo)是精確的檢測這種旋轉(zhuǎn)的人臉。多樣的平面內(nèi)旋轉(zhuǎn)角度,使得人臉的表觀變化非常大,為旋轉(zhuǎn)不變?nèi)四槞z測帶來了極大的挑戰(zhàn)性。
有很多已有的工作嘗試解決旋轉(zhuǎn)不變?nèi)四槞z測。最簡單直接的方法就是基于數(shù)據(jù)増廣的方法,在訓(xùn)練階段將人臉旋轉(zhuǎn)到任意角度。這樣做的優(yōu)點(diǎn)是測試階段沒有額外的時間開銷;缺點(diǎn)是旋轉(zhuǎn)人臉的表觀變化非常大,需要使用一個計(jì)算量較大的網(wǎng)絡(luò)才能保證檢測的精度,這在一些對實(shí)時性要求高的應(yīng)用中是不實(shí)用的。
另外一種策略就是分治。可以訓(xùn)練一個豎直人臉檢測器,在測試階段,將待檢測圖像旋轉(zhuǎn)多遍進(jìn)行檢測,這樣也可以實(shí)現(xiàn)任意旋轉(zhuǎn)角度人臉的檢測。豎直人臉檢測器的計(jì)算量是相對較小的,但是檢測多次也會使得時間開銷成倍增長,而且?guī)砀嗟恼`檢測。
還有一種方法是先將旋轉(zhuǎn)的人臉轉(zhuǎn)正然后再進(jìn)行檢測。具體而言,可以先使用一個旋轉(zhuǎn)路由網(wǎng)絡(luò),預(yù)測候選人臉框的旋轉(zhuǎn)角度,然后轉(zhuǎn)正人臉,之后可以使用一個豎直人臉檢測器完成檢測。然而,精確的預(yù)測人臉的旋轉(zhuǎn)角度本身也是一個很難的任務(wù),旋轉(zhuǎn)角度預(yù)測錯誤也會降低檢測精度。
目前的許多旋轉(zhuǎn)不變?nèi)四槞z測算法需要在精度或者速度上進(jìn)行妥協(xié)。我們提出的PCN算法目標(biāo)是在保持很低的計(jì)算量的前提下,實(shí)現(xiàn)精準(zhǔn)的旋轉(zhuǎn)人臉檢測。
在CVPR 2015上提出了Cascade CNN人臉檢測方法,即通過級聯(lián)多個CNN逐步過濾非人臉樣本。之后提出的MTCNN對Cascade CNN改進(jìn),將分類、邊框回歸、特征點(diǎn)三個任務(wù)合并,利用不同任務(wù)相關(guān)性實(shí)現(xiàn)多任務(wù)學(xué)習(xí)提升性能。Cascade CNN、MTCNN算法在豎直人臉檢測上可以實(shí)現(xiàn)出很好的效果,但在旋轉(zhuǎn)不變?nèi)四槞z測上仍有提升空間。我們的PCN由CNN級聯(lián)組成,這點(diǎn)借鑒于Cascade CNN。PCN中的每一級CNN都是一個多任務(wù)網(wǎng)絡(luò),同時學(xué)習(xí)人臉非人臉判別、邊框回歸、旋轉(zhuǎn)角度校準(zhǔn)三個任務(wù)。
在測試階段,首先使用滑動窗口與圖像金字塔的方式產(chǎn)生候選窗口,然后送入網(wǎng)絡(luò)開始檢測。每一級網(wǎng)絡(luò)過濾掉部分非人臉窗口,根據(jù)邊框回歸結(jié)果調(diào)整候選框位置,然后根據(jù)預(yù)測出的旋轉(zhuǎn)角度校準(zhǔn)窗口的角度,具體來講:
第一級網(wǎng)絡(luò)預(yù)測旋轉(zhuǎn)角度使用二分類的方式,只預(yù)測人臉朝上或者朝下,朝下的人臉會被翻轉(zhuǎn),經(jīng)過第一級后人臉旋轉(zhuǎn)角度范圍從360度縮減為180度;
第二級網(wǎng)絡(luò)預(yù)測旋轉(zhuǎn)角度使用三分類的方式,只預(yù)測人臉朝上、朝左或者朝右,朝左或右的人臉會被翻轉(zhuǎn)為朝上,經(jīng)過第二級后人臉旋轉(zhuǎn)角度范圍從180度縮減為90度;
在第三級旋轉(zhuǎn)范圍已經(jīng)比較小,所以第三級網(wǎng)絡(luò)直接回歸旋轉(zhuǎn)角度。
通過逐漸減少人臉的旋轉(zhuǎn)變化,可以顯著降低人臉與非人臉分類的難度,進(jìn)而提升檢測精度。在第一級和第二級采用只預(yù)測粗糙朝向的方式,可以使得旋轉(zhuǎn)角度預(yù)測的精度大大提高且速度更快。
在PCN中,存在兩個級聯(lián)結(jié)構(gòu)。第一個是人臉與非人臉的級聯(lián)分類,這點(diǎn)與Cascade CNN一致。先使用小的CNN過濾簡單負(fù)樣本,再用大的CNN判別難負(fù)樣本,這種方式可以極大地提升檢測速度。
第二個級聯(lián)結(jié)構(gòu)是旋轉(zhuǎn)角度的級聯(lián)校準(zhǔn)。PCN的級聯(lián)校準(zhǔn)屬于一種由粗到精的級聯(lián)回歸模式,與人臉特征點(diǎn)估計(jì)、人體姿態(tài)估計(jì)思想類似。人臉的旋轉(zhuǎn)角度等于三級網(wǎng)絡(luò)預(yù)測結(jié)果之和。
級聯(lián)校準(zhǔn)模式,將難度較大的旋轉(zhuǎn)角度預(yù)測分解為多個任務(wù),每一個任務(wù)都會比較簡單,這使得整個校準(zhǔn)的難度降低。在第一級和第二級只預(yù)測粗糙朝向有兩個原因,第一是粗糙朝向預(yù)測的精度更高,剛開始就直接回歸角度誤差會很大;第二是可以避免傾斜的圖像crop操作,可以大大提高速度。
在實(shí)現(xiàn)人臉窗口旋轉(zhuǎn)校準(zhǔn)操作時,即使只是對窗口做計(jì)算低廉的翻轉(zhuǎn)操作,如果窗口數(shù)目很大時,速度仍然很慢。我們可以先將輸入圖像翻轉(zhuǎn)三次,得到上下左右四個朝向的圖像。這樣將一個人臉旋轉(zhuǎn)到某個角度,等價于去對應(yīng)角度的圖像上crop人臉。此策略可以將與窗口數(shù)量成正比的校準(zhǔn)操作時間縮減為常數(shù)時間,效率大大提高。
為了驗(yàn)證我們的算法的有效性,我們比較了常見的各種旋轉(zhuǎn)不變?nèi)四槞z測算法。
FDDB是一個常用的人臉檢測評測集,但是主要包括豎直人臉,我們將FDDB旋轉(zhuǎn)到上下左右四個方向來評測旋轉(zhuǎn)不變?nèi)四槞z測算法??梢钥闯鑫覀兊乃惴ň扰cFaster RCNN(VGG16)和SSD500(VGG16)精度相當(dāng),在誤檢測較少時候PCN會更好一些。與Cascade CNN等其他方法相比,PCN的精度有明顯提升。
我們從WIDER FACE中挑選了一部分旋轉(zhuǎn)人臉的圖像進(jìn)行算法評測。這個數(shù)據(jù)集上的測試結(jié)果進(jìn)一步證明了PCN的有效性。
下面結(jié)合速度、精度、模型大小進(jìn)行綜合的分析。PCN是一個可以在CPU上也實(shí)時運(yùn)行的算法,模型大小和速度都遠(yuǎn)優(yōu)于Faster RCNN、SSD、R-FCN算法。同時可以看到,PCN相比Cascade CNN,速度幾乎一樣,但精度有明顯提高,這得益于我們快速準(zhǔn)確的漸進(jìn)校準(zhǔn)策略。
這是PCN算法的一些檢測結(jié)果,可以看出PCN算法可以精準(zhǔn)的檢測任意平面內(nèi)旋轉(zhuǎn)角度的人臉,且對膚色、光照、視角魯棒。
總結(jié)一下,PCN是一個快速、魯棒、準(zhǔn)確的旋轉(zhuǎn)不變?nèi)四槞z測算法,在實(shí)際中有良好的應(yīng)用前景。