MTCNN工作原理

MTCNN工作原理

MTCNN是什麼

MTCNN,Multi-task convolutional neural network(多任務卷積神經網絡),將人臉區域檢測與人臉關鍵點檢測放在了一起,基於cascade框架。總體可分爲PNet、RNet、和ONet三層網絡結構,

MTCNN實現流程

構建圖像金字塔

首先將圖像進行不同尺度的變換,構建圖像金字塔,以適應不同大小的人臉的進行檢測。

P-Net

 

全稱爲Proposal Network,其基本的構造是一個全連接網絡。對上一步構建完成的圖像金字塔,通過一個FCN進行初步特徵提取與標定邊框,並進行Bounding-Box Regression調整窗口與NMS進行大部分窗口的過濾。
 

Proposal Network

R-Net

全稱爲Refine Network,其基本的構造是一個卷積神經網絡,相對於第一層的P-Net來說,增加了一個全連接層,因此對於輸入數據的篩選會更加嚴格。在圖片經過P-Net後,會留下許多預測窗口,我們將所有的預測窗口送入R-Net,這個網絡會濾除大量效果比較差的候選框,最後對選定的候選框進行Bounding-Box RegressionNMS進一步優化預測結果。
 

Refine Network

O-Net

全稱爲Output Network,基本結構是一個較爲複雜的卷積神經網絡,相對於R-Net來說多了一個卷積層。O-Net的效果與R-Net的區別在於這一層結構會通過更多的監督來識別面部的區域,而且會對人的面部特徵點進行迴歸,最終輸出五個人臉面部特徵點。
 

Output Network

 
各層最終實現的效果如圖:
 

在這裏插入圖片描述

技術細節

FCN(全卷機網絡)

全卷積網絡就是去除了傳統卷積網絡的全連接層,然後對其進行反捲積對最後一個卷積層(或者其他合適的卷積層)的feature map進行上採樣,使其恢復到原有圖像的尺寸(或者其他),並對反捲積圖像的每個像素點都可以進行一個類別的預測,同時保留了原有圖像的空間信息。
同時,在反捲積對圖像進行操作的過程中,也可以通過提取其他卷積層的反捲積結果對最終圖像進行預測,合適的選擇會使得結果更好、更精細。

IoU

對於某個圖像的子目標圖像和對這個子目標圖像進行標定的預測框,把最終標定的預測框與真實子圖像的自然框(通常需要人工標定)的某種相關性叫做IOU(Intersection over Union),經常使用的標準爲兩個框的交叉面積與合併面積之和。

Bounding-Box regression:

  • 解決的問題:
    IOU小於某個值時,一種做法是直接將其對應的預測結果丟棄,而Bounding-Box regression的目的是對此預測窗口進行微調,使其接近真實值。
  • 具體邏輯
    在圖像檢測裏面,子窗口一般使用四維向量(x,y,w,h)表示,代表着子窗口中心所對應的母圖像座標與自身寬高,目標是在前一步預測窗口對於真實窗口偏差過大的情況下,使得預測窗口經過某種變換得到更接近與真實值的窗口。
    在實際使用之中,變換的輸入輸出按照具體算法給出的已經經過變換的結果和最終適合的結果的變換,可以理解爲一個損失函數的線性迴歸。

NMS(非極大值抑制)

顧名思義,非極大值抑制就是抑制不是極大值的元素。在目標檢測領域裏面,可以使用該方法快速去掉重合度很高且標定相對不準確的預測框,但是這種方法對於重合的目標檢測不友好。

Soft-NMS

對於優化重合目標檢測的一種改進方法。核心在於在進行NMS的時候不直接刪除被抑制的對象,而是降低其置信度。處理之後在最後統一一個置信度進行統一刪除。

PRelu

MTCNN中,卷積網絡採用的**函數是PRelu,帶有參數的帶有參數的Relu,相對於Relu濾除負值的做法,PRule對負值進行了添加參數而不是直接濾除,這種做法會給算法帶來更多的計算量和更多的過擬合的可能性,但是由於保留了更多的信息,也可能是訓練結果擬合性能更好。

我的思考

對於Soft-NMS來說,在進行非極大值抑制的時候,可以結合實際應用場景將部分重合的窗口的置信度與其重合度進行線性或者非線性變換來進行更富有邏輯意義的濾除,而不是簡單的降低置信度之後進行統一濾除。
在進行卷積的時候,是否能夠使用不同大小的卷積核使得卷積網絡更加敏捷,同時保留、突出的特徵更多,從而進一步提高算法的精度與效率。

參考文獻

  1. Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks
  2. Ways for Visualizing Convolutional Networks
  3. 全卷積網絡 FCN 詳解
  4. FCN
  5. 非極大值抑制(Non-Maximum Suppression,NMS)
  6. 【論文解析】MTCNN論文要點翻譯