1. 程式人生 > >人臉識別之人臉檢測(十六)--Cascade CNN

人臉識別之人臉檢測(十六)--Cascade CNN

轉自:https://blog.csdn.net/xzzppp/article/details/51692907

論文:A Convolutional Neural Network Cascade for FaceDetection

1、簡介

    CascadeCNN是對經典的Violajones方法的深度卷積網路實現,是一種檢測速度較快的人臉檢測方法。使用VGA圖片,在CPU上達到14FPS,GPU上達到100FPS,在FDDB上達到85.1%的召回率和87%的準確率。

2、總體框架

    下圖是該方法的整個流程示意圖,可以看出是3階級聯。

          級聯結構中有6個CNN,3個CNN用於人臉非人臉二分類,另外3個CNN用於人臉區域的邊框校正。給定一幅影象,12-net密集掃描整幅圖片,拒絕90%以上的視窗。剩餘的視窗輸入到12-calibration-net中調整大小和位置,以接近真實目標。接著輸入到NMS中,消除高度重疊視窗。下面網路與上面類似。

12-net, 24-net and48-net的CNN結構圖

2.1  net網路

         12-net:使用12×12的檢測視窗,以步長為4,在W×H的圖片上滑動,得到檢測視窗。實際應用中,將影象尺度變換為金字塔結構,每層都作為12-net輸入。12-net可以拒絕90%以上的視窗,大大減小了下級網路的負擔。

         24-net:在12-net的基礎上,將24×24的圖片縮放到12×12,輸入到12-net全連線層,與12-net並聯,最後一起輸出到24-net全連線層。

2.2  calibration-net網路

         該網路用於視窗校正,使用三個偏移變數:Xn:水平平移量,Yn:垂直平移量,Sn:寬高比縮放。候選框口(x,y,w,h)中,(x,y)表示左上點座標,(w,h)表示寬和高。

我們要將視窗的控制座標調整為:

          這項工作中,我們有N=5×3×3=45種模式。偏移向量三個引數包括以下值:

          Sn:(0.83,0.91,1.0,1.10,1.21)

          Xn:(-0.17,0,0.17)

          Yn:(-0.17,0,0.17)

          同時對偏移向量三個引數進行校正。

校正網路的結構如下圖所示:

Cascade CNN一定程度上解決了傳統方法在開放場景中對光照、角度等敏感的問題,但是該框架的第一級還是基於密集滑動視窗的方式進行視窗過濾,在高解析度存在大量小人臉(tiny face)的圖片上限制了演算法的效能上限。

3、檢測結果

     在FDDB資料集上進行測試,每階段的檢測視窗個數和召回率如圖所示: