Face Detection DSFD 論文理解
阿新 • • 發佈:2019-01-10
paper:DSFD: Dual Shot Face Detector
link:DSFD paper
code:to add when publication
摘要
- 人臉檢測任務目前存在的問題:尺度、姿勢、遮擋、表情、外觀、照明等具有高度可變性;
- 論文創新點:
- 繼承SSD的檢測框架,引入feature enhance module,用於傳輸原始特徵圖來將單發檢測器擴充套件到雙射檢測器;
- 採用通過兩組anchor計算的progressive anchor loss(PAL)來有效促進特徵;
- 通過在DSFD中整合創新的資料增強技術和錨設計策略來提出一種改進的錨點匹配方法(IAM),為了能給迴歸器提供更好地初始化;
- 在popular benchmark上的實驗:WIDER FACE(easy:0.966, medium:0.957, hard:0.904);FDDB(discontinues:0.991, continues:0.862)
Dateset
- FDDB(FaceDetection Data Set and Benchmark)由美國馬薩諸塞大學(UMass)於2010年建立,該資料集包含2845張影象,5171個人臉。其中包含大量遮擋、複雜的姿態以及低解析度的人臉。結果公佈分為公開方法(publishedmethods)和非公開方法(unpublished methods)兩個榜單。優圖此次參與的是公開方法(公佈論文)的評測。FDDB是早期評估各類人臉檢測演算法最重要的資料集之一;
- WIDER FACE由香港中文大學於2016年建立,該資料集包含32203張影象,393703個人臉,其中大量受到光照、遮擋、化妝、表情變化、小臉等因素影響。這些資料中40%為訓練集(Training)、10%為驗證集(Validation)、50%為測試集(Testing)。WIDERFACE一經提出,便引起了廣泛關注,成為近幾年來人臉檢測領域最權威的資料集之一;
引言
- 目前表現最好的人臉檢測器可分為兩類:基於應用於Faster-RCNN的RPN採用兩階段檢測策略,RPN生成高質量region proposal,然後由Fast-RCNN檢測器進一步確認;基於單鏡頭檢測器SSD的一階段檢測方法,脫離RPN的思想直接預測bbox和confidence;
- 儘管人臉檢測器取得了不錯的進展,但是還存在三個方面的問題:
- 特徵學習:目前FPN被廣泛應用在人臉檢測器中為了獲取更豐富的特徵,但是FPN只聚合高層和底層輸出層之間的特徵圖,沒有關注當前層的特徵資訊,同時忽略了anchor之間的上下文資訊;
- 損失函式設計:目標檢測的常規損失函式包括迴歸損失函式和用於識別的分類損失函式,focal loss的提出能夠進一步解決類別不平衡問題,分層loss能夠利用所有的原始增強特徵;但是這些損失函式沒有考慮不同級別特徵圖的漸進學習能力;
- 錨點匹配:基本策略是有規律地使用具有不同比例和橫縱比的bbox的集合來生成每一個特徵圖的預設錨點,現有工作分析了一系列合理的錨點尺度和錨點補償策略,用以增加正例錨點的數量;但是這種方式忽略了資料增強中的隨機取樣,連續的面部尺寸和大量離散的錨點尺度仍然使得正負錨點之間的比率差異很大;
- 為了解決上述上個問題,文中提出基於SSD pipeline的雙射人臉檢測器:
- 結合PyramidBox中的low-level FPN和RFBNet中的Receptive Feild Block提出一種新穎的特徵增強模組,可利用不同層級的特徵資訊,從而獲得更多的有辨識度和魯棒性的特徵;
- 在PyramidBox的層次loss和pyramid anchor思想的推動下提出了漸進錨點損失PAL,通過使用一組較小的錨來計算輔助監督損失,有效促進特徵,較小的錨拓展在高層特徵圖上時候能具有更多用於分類的語義資訊和用於檢測的高解析度資訊;
- 提出一種改進的錨點匹配策略,在DSFD中集成了錨點分割槽策略和基於錨點的資料增強技術,儘可能匹配錨點和ground truth face,為迴歸器提供更好地初始化;
- 在流行的benchmark上進行綜合實驗,FDDB和WIDER FACE,以此證明我們提出的DSFD網路的優越性;
- 下圖檢測效果顯示較小的anchor應用和改進的anchor匹配策略能夠消除尺度和遮擋帶來的檢測障礙:
相關研究內容
- Overfeat、CascadeCNN、MTCNN等將CNN作為影象金字塔上的滑動視窗來構建特徵金字塔,使用影象金字塔導致速度慢記憶體效率低;大多數two stage的檢測器在單一尺度上提取特徵;
- 多尺度特徵對於微小物體檢測表現更好,比如:SSD、MS-CNN、SSH、S3FD等檢測框架在多層特徵結構上預測bbox;FCN、Hypercolums、Parsenet在分割中融合了多層特徵;
- FPN是一種自上而下的架構可以將高階語義資訊整合到所有尺寸中,FPN的應用可以顯著提高目標檢測的效果,但是FPN沒有考慮到當前層的資訊,忽略了anchor之間的上下文關係;
- 目標檢測loss的常規設計策略是分類loss
softmax loss
和bbox迴歸lossL2 loss
的加權求和;smooth L1 loss
能夠避免梯度保障;focal loss
動態縮放cross entropy loss,能夠緩解one stage檢測器中的類別不平衡問題;RepLoss設計用於行人檢測,可以提高遮擋場景下的檢測效能;FANet建立了分層特徵金字塔,根據其架構提出了層次loss; - 為了使模型更加魯棒,大多數檢測方法都會進行資料增強,例如顏色扭曲,水平翻轉,隨機裁剪和多尺度訓練;anchor compensation strategy能夠使得小臉在訓練期間匹配足夠的anchor;隨機裁剪策略能夠生成大量被遮擋的人臉用於訓練;
Dual Shot Face Detector
DSFD Pipeline
- DSFD使用拓展的VGG16backbone,在分類層之前新增輔助結構;使用conv3_3、conv4_3、conv5_3、conv_fc7、conv6_2、conv7_2作為第一個鏡頭的檢測層,生成作為原始特徵圖的of1,of2,of3,of4,of5,of6,使用FEM將原始特徵圖轉換為六個增強的特徵圖:ef1,ef2,ef3,ef4,ef5,ef6,以此構建成第二個鏡頭的檢測層;
- 設計上和S3FD以及PyramidBox不同,在FEM中利用了感受野增廣以及新的anchor設計策略後,沒有必要設計三種尺度的stride、anchor和receptive field去滿足等比例間隔原則;
- 原始鏡頭和增強鏡頭使用的loss function不同,分別為FSL、SSL;
FEM:Feature Enhance Module
- FEM的提出是為了讓原始特徵圖更具辨識度和魯棒性,針對當前anchor ,FEM利用不同維度資訊包括:當前層anchor 以及上一層anchor ;與anchor相關聯的特徵圖單元可以用公式(1)表示:
- 疑問:第一個公式等號左邊應該是 ,其中 表示第 層特徵圖的座標為 的單元, 表示擴張卷積、逐元素乘積、上取樣操作的結合; 和 分別表示當前層資訊和上層資訊;FEM中先使用 卷積歸一化輸入的特徵圖,然後對up layer的輸入進行上取樣和當前layer輸入執行元素乘積,最後將N個FM分成三份分別作為包含不同擴張卷積層數的子網路中,最後concat操作合併子網結果,得到增強特徵圖;
PAL:Progressive Anchor Loss
- 文中採用multi-task loss,能夠促進雙射模型中原始和增強特徵圖的訓練任務,首先second shot anchor-based multi-task Loss被定義為 ,其中N為匹配密集框的數目, 為人臉和背景兩類的softmax loss, 是使用anchor 時預測框 和真實框 之間引數化的smooth L1 loss,當 時 被啟用, 是平衡兩者之間的權重;
- 同一個level上的原始特徵圖比增強特徵圖具有較少的用語分類的語義資訊,但是有更多用於檢測的高解析度定位資訊;因此作者認為原始特徵圖可以用於檢測和分類較小的人臉,由此基於一組較小的anchor提出first shot multi-task loss