MTCNN人臉檢測是2016年的論文提出來的,MTCNN的“MT”是指多任務學習(Multi-Task),在同一個任務中同時學習”識別人臉“、”邊框迴歸“、”人臉關鍵點識別“。
1“金字塔”變換
首先將原始圖片縮放到不同的尺度,形成一個圖像金字塔。這可以解決有的人臉大,有的人臉小,能把在同一尺度之下檢測人臉。
2網絡結構
P-Net是一個全卷積網絡,可以適應任意尺寸的輸入,輸出是還是不是人臉face classification,2維是方便交叉熵損失。
1*1*4代表標定框信息,Facial landmark localization 1*1*10 表示檢測的5個關鍵點。
上圖爲P-Net的結果,我們把圖像金字塔不同尺度的圖片,輸出就會有很多會大小不同的標定框。這個過程中
R-Net
我們把P-Net 的結果通過插值的方式縮放到24*24 的尺寸。輸入到R-Net。這個網絡是優化P-Net檢測的結果,也可以消除誤判。
這是R-Net的輸出結果,可以看到很多多餘的標定框都過濾掉了。
之後我們接入O-Net進行最後的人臉識別和關鍵點檢測。
3損失函數
我們根據網絡的輸出來定義損失函數,網絡人臉判別部分使用交叉熵損失,邊框迴歸和關鍵點檢測部分使用L2損失。
我們把3個部分分配權重,加起來就是總損失。
對P-Net和R-Net更關注框的位置,所以這部分權重相對更大。
對於O-Net更關心關鍵點檢測,同理。
有兩種損失在人臉領域效果較好。
一個是三元組損失Triple Loss
一個是center loss