深度學習-MTCNN網絡結構詳解

                                     MTCNN工作原理

MTCNN是什麼
MTCNN,Multi-task convolutional neural network(多任務卷積神經網絡),將人臉區域檢測與人臉關鍵點檢測放在了一起,它的主題框架類似於cascade。總體可分爲P-Net、R-Net、和O-Net三層網絡結構。

它是2016年中國科學院深圳研究院提出的用於人臉檢測任務的多任務神經網絡模型,該模型主要採用了三個級聯的網絡,採用候選框加分類器的思想,進行快速高效的人臉檢測。這三個級聯的網絡分別是快速生成候選窗口的P-Net、進行高精度候選窗口過濾選擇的R-Net和生成最終邊界框與人臉關鍵點的O-Net。和很多處理圖像問題的卷積神經網絡模型,該模型也用到了圖像金字塔、邊框迴歸、非最大值抑制等技術。

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

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

P-Net是一個人臉區域的區域建議網絡,該網絡的將特徵輸入結果三個卷積層之後,通過一個人臉分類器判斷該區域是否是人臉,同時使用邊框迴歸和一個面部關鍵點的定位器來進行人臉區域的初步提議,該部分最終將輸出很多張可能存在人臉的人臉區域,並將這些區域輸入R-Net進行進一步處理。

這一部分的基本思想是使用較爲淺層、較爲簡單的CNN快速生成人臉候選窗口。
在這裏插入圖片描述
R-Net
全稱爲Refine Network,其基本的構造是一個卷積神經網絡,相對於第一層的P-Net來說,增加了一個全連接層,因此對於輸入數據的篩選會更加嚴格。在圖片經過P-Net後,會留下許多預測窗口,我們將所有的預測窗口送入R-Net,這個網絡會濾除大量效果比較差的候選框,最後對選定的候選框進行Bounding-Box Regression和NMS進一步優化預測結果。

因爲P-Net的輸出只是具有一定可信度的可能的人臉區域,在這個網絡中,將對輸入進行細化選擇,並且捨去大部分的錯誤輸入,並再次使用邊框迴歸和麪部關鍵點定位器進行人臉區域的邊框迴歸和關鍵點定位,最後將輸出較爲可信的人臉區域,供O-Net使用。對比與P-Net使用全卷積輸出的1x1x32的特徵,R-Net使用在最後一個卷積層之後使用了一個128的全連接層,保留了更多的圖像特徵,準確度性能也優於P-Net。

R-Net的思想是使用一個相對於P-Net更復雜的網絡結構來對P-Net生成的可能是人臉區域區域窗口進行進一步選擇和調整,從而達到高精度過濾和人臉區域優化的效果。
在這裏插入圖片描述
O-Net
全稱爲Output Network,基本結構是一個較爲複雜的卷積神經網絡,相對於R-Net來說多了一個卷積層。O-Net的效果與R-Net的區別在於這一層結構會通過更多的監督來識別面部的區域,而且會對人的面部特徵點進行迴歸,最終輸出五個人臉面部特徵點。

是一個更復雜的卷積網絡,該網絡的輸入特徵更多,在網絡結構的最後同樣是一個更大的256的全連接層,保留了更多的圖像特徵,同時再進行人臉判別、人臉區域邊框迴歸和人臉特徵定位,最終輸出人臉區域的左上角座標和右下角座標與人臉區域的五個特徵點。O-Net擁有特徵更多的輸入和更復雜的網絡結構,也具有更好的性能,這一層的輸出作爲最終的網絡模型輸出。

O-Net的思想和R-Net類似,使用更復雜的網絡對模型性能進行優化
在這裏插入圖片描述
集成架構及系統思想
MTCNN爲了兼顧性能和準確率,避免滑動窗口加分類器等傳統思路帶來的巨大的性能消耗,先使用小模型生成有一定可能性的目標區域候選框,然後在使用更復雜的模型進行細分類和更高精度的區域框迴歸,並且讓這一步遞歸執行,以此思想構成三層網絡,分別爲P-Net、R-Net、O-Net,實現快速高效的人臉檢測。在輸入層使用圖像金字塔進行初始圖像的尺度變換,並使用P-Net生成大量的候選目標區域框,之後使用R-Net對這些目標區域框進行第一次精選和邊框迴歸,排除大部分的負例,然後再用更復雜的、精度更高的網絡O-Net對剩餘的目標區域框進行判別和區域邊框迴歸。

下面是整個系統的工作流圖
在這裏插入圖片描述
技術細節
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來說,在進行非極大值抑制的時候,可以結合實際應用場景將部分重合的窗口的置信度與其重合度進行線性或者非線性變換來進行更富有邏輯意義的濾除,而不是簡單的降低置信度之後進行統一濾除。
在進行卷積的時候,是否能夠使用不同大小的卷積核使得卷積網絡更加敏捷,同時保留、突出的特徵更多,從而進一步提高算法的精度與效率。

原文鏈接:https://blog.csdn.net/qq_36782182/article/details/83624357

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章