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