人臉檢測(三)——Multi-task CNN(MTCNN)

這篇文章主要記錄了《Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks》連結

在人臉檢測和特徵點定位的任務上,這篇文章提出的方法比現有最先進的技術有明顯的額提升,而且具有實時處理的效能。

在這篇文章中,提出了一個深度卷積多工的框架,這個框架利用了檢測和對準之間固有的關係來增強他們的效能。特別是,在預測人臉及臉部標記點的時候,通過三階的級聯卷積神經網路對任務進行從粗到精的處理。而且還提出了一種新的線上困難樣本生成策略來進一步提升效能。

論文最主要的一點應該是三階的級聯卷積神經網路。我們應該能從下圖直觀地看出其特點:

stage 1(P-Net):一個淺層的全部由卷積層組成的CNN快速生成候選視窗,獲取候選人臉視窗以及人臉迴歸向量,再基於估計的邊框進行校準,之後才有NMS來合併高度重疊的候選。

stage 2(R-Net):用stage1得出的結果,放到R-Net進一步排除大量錯誤的候選,使用邊框迴歸執行校準並進行NMS。

stage 3(O-Net):這個和stage 2 有點類似,但是這個階段目的是識別出更準確的臉部區域,最後輸出5個特徵點位置。

人臉/非人臉判定採用交叉熵損失函式

人臉框迴歸採用歐式距離損失函式:

特徵點定位也採用歐式距離損失函式:

而面對不同情況時,有些損失函式是沒有被用到的,比如說當影象中無人臉時,則人臉框迴歸和特徵點定位的損失函式便沒有用到,我們只計算了第一個等式。那麼這時,我們使用到下列公式來進行權衡:

其中alpha表示三個任務在當前階段的網路中的損失比重,beta表示取樣型別指示;在P-Net和R-net的時候,det、box、landmark的alpha值分別取1、0.5、0.5,而在O-Net中,det、box、landmark的alpha值分別取1、0.5、1,其中landmark的比重調高了,目的是為了獲取更精確的臉部標記點位置。

上圖是三階對應的網路。

從其展現的結果,我們可以看到使用線上困難樣本挖掘以及使用了聯合檢測和對準的方法的結果效能要比沒有使用的好很多,

從下表可以看出,運用了三階網路的速度要快,精確度也有所提高,

並且,坐著以AFLW的資料作為Benchmark,比較了在人臉對準上的效能,如下圖,很明顯可以看出作者提出的MTCNN明顯要高出其他網路的效能。

上圖是三階對應的網路。