1. 程式人生 > >【論文解析】MTCNN論文要點翻譯

【論文解析】MTCNN論文要點翻譯

目錄

@

0.論文連線

點選開啟

1.前言

MTCNN是一篇關於人臉檢測演算法效果很不錯的論文,落地效果也很好,據我所知有不少公司在用這個演算法做人臉檢測。

2.論文Abstract翻譯

在無約束環境下,人臉的檢測與對齊對於不同的姿勢,燈光和遮擋是非常有挑戰性的。近期的學術研究證明了深度學習方法在這兩個任務上能夠實現令人欽佩的效能。本文,我們提出了一個深度級聯多工框架,它能夠利用人臉檢測與對齊的內在相關性來提高他們的效能。尤其是我們的框架利用級聯架構,分三個精心設計的深度卷積神經網路通過由粗糙到細緻的方式來預測臉部整體和特徵點的座標。另外,我們提出了一種新的線上挖掘困難樣本的策略,這樣可以更好的提高模型的實際效能。我們的方法實現了卓越的準確性通過最先進的技術來應對挑戰面向人臉檢測的FDDB和WIDER FACE基準測試AFLW面部對齊基準,同時保持實時效能。

3.論文的主要貢獻

  1. 提出了一種新的基於將臉部檢測和對齊的一體化級聯CNN框架,並且精心設計了一個輕量級的CNN框架,實現實時效能。
  2. 提出了一種有效可以線上生成困難樣本挖掘的方法來提高效能。
  3. 在具有挑戰性的基準上進行了大量的實驗,通過與人臉對齊和檢測上的先進方法的比較來顯示本文模型優秀的效能提高。

    4.演算法流程

    4.1 網路效果圖

    這裡寫圖片描述 由圖可知整體流程,首先對圖片多尺度變換構建影象金字塔,作為網路的輸入。接下來就是三層級聯卷積網路。

    4.2 三層網路概述

    4.2.1 P-Net

    P-Net(Proposal Network)是一個全連線卷積神經網路,他粗略的獲取臉部候選框跟邊框迴歸變數,然後候選框通過邊框迴歸變數(

    邊框迴歸解釋)進行校正。最後用NMS演算法合併高度重合的候選框。

    4.2.2 R-Net

    將所有的候選框作為下層網路R-Net(Refine Network)的輸入,這個網路將會進一步拒絕大量的效果不好的候選框,然後同樣的通過邊框迴歸變數進行校正,NMS進行合併。

    4.2.3 O-Net

    O-Net與R-Net較為相似,但是在這個網路的目標是通過更多的監督來識別面部的區域。特別的是,這個網路將會輸出人臉的五個特徵點。

    4.3 網路的結構

    在論文“A convolutional neural network cascade for face detection”中, 多種CNN被設計成可以做面部檢測。但是,他的效能可能被以下幾個因素限制:

  4. 在卷積層中的一些卷積層缺少多樣性,那樣會限制模型的識別能力。
  5. 與其他多類別的目標檢測跟分類任務相比,人臉檢測是一個具有挑戰性的二分類任務,所以他的卷積層可能需要更少的卷積核。為此,我們減少卷積核的數量並且將5x5的卷積核變成3x3,因此在減少計算量同時增加深度並且獲得更好的效能。

通過這些改善,與在論文“A convolutional neural network cascade for face detection”的網路結構相比,可以在更少的執行時間獲得更好的效能。效能對比圖如下, 這裡寫圖片描述 網路結構圖如下 這裡寫圖片描述 同時啟用函式用的是PReLU.

4.4 訓練

我們利用三項任務來訓練我們的CNN檢測器:人臉檢測,邊框迴歸,人臉特徵點位置。

  1. 人臉檢測:學習目標制定為一個二分類問題,對每個樣本\(x_{i}\),我們用交叉熵損失函式: \[L_{i}^{det} = -(y_{i}^{det}log(p_{i}) + (1-y_{i}^{det}) (1-log(p_{i})))\] \(p_{i}\)是通過神經網路預測出樣本\(x_{i}\)為人臉的概率。\(y_{i}^{det}\)代表ground-truth,$y_{i}^{det} \in $ {0, 1}

  2. 邊框迴歸:對於每個候選視窗,我們預測它與最近的ground truth之間的offset(例如迴歸框的左上角座標以及高跟寬)。學習目標制定為迴歸問題,損失函式是平方損失函式: \[L_{i}^{box} = ||\hat y^{box}_{i}-y_{i}^{box}||_{2}^{2}\] \(\hat y_{i}^{box}\)是從網路中得到的迴歸目標,$ y_{i}^{box}$是ground-truth座標,它是四維的,包括左上座標,高度跟寬度。

  3. 人臉特徵點座標:與邊框迴歸類似,損失函式為: \[L_{i}^{landmark} = ||\hat y^{landmark}_{i} - y_{i}^{landmark}||^{2}_{2}\] 同樣,\(\hat y_{i}^{landmark}\)是從網路中得到的特徵點座標, \(y_{i}^{landmark}\)是ground-truth的座標,有五個座標,分別是兩隻眼睛,兩個嘴角跟一個鼻子。
  4. 多源(Multi-source)訓練: 因為在每個CNN中有不同的任務,所以在學習過程中會有不同的訓練資料集,在訓練某個特指任務時,其他任務損失值應該為零,因此一個綜合所有任務的損失函式如下: \[min{\sum_{i = 1}^{N}\sum_{j \in \{det, box, landmark\} }\alpha_{j}\beta_{i}^{j}L_{i}^{j}}\] 其中N代表訓練樣本的數量,\(a_{j}\)代表每個任務的重要程度,在P-Net跟R-Net中, \(\alpha_{det} = 1, \alpha_{box} = 0.5, \alpha_{landmark} = 0.5\)然而在O-Net中為了人臉特徵點座標更高的準確率,引數設定為\(\alpha_{det} = 1, \alpha_{box} = 0.5, \alpha_{landmark} = 1\)\(\beta_{i}^{j} \in \{0,1\}\)是樣本型別的指示器,在這種情況下,可以很自然的使用隨機梯度下降來訓練這些CNN。
  5. 線上挖掘困難樣本:不同於傳統方式,需要在原始分類器訓練完之後進行困難樣本挖掘,實現線上操作。在每一小批量樣本中,對其按照前向傳播所有樣本的損失值進行排序,並且選取前70%作為“hard samples”,從而在反向傳播中,我們只計算“hard samples”的梯度。這意味著,訓練時我們將忽略那些對增強模型效能作用較小的簡單樣本。實驗證明這種策略相對手動選擇困難樣本有更好的效能。

5 模型效能分析

5.1 關於線上挖掘困難樣本的效能

為了體現效能,論文訓練了兩個O-Net,他們的初始引數全部一樣,一個進行“online hard sample mining”一個不進行,畫出他們的學習曲線如下: 這裡寫圖片描述

5.2 將人臉檢測與對齊聯合的效能

為了測試貢獻,同樣訓練兩個相同的O-Net,一個"joint facial landmarks regression",另一個並不進行上述操作,對比其兩者的效能,同時對比邊框迴歸的效能。可以發現加入人臉特徵點座標的學習對人臉檢測與邊框迴歸都起到了有益的作用,如下圖: 這裡寫圖片描述

5.3 人臉檢測的效果

與各演算法在各資料集上的對比圖: 這裡寫圖片描述

這裡寫圖片描述

6 程式碼閱讀[待更新]

7 感悟&&心得

此部分等閱讀完程式碼,徹底理解演算法進行補充