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