自然場景人臉檢測技術實踐

  • 2020 年 2 月 18 日
  • 筆記

總第380篇

2020年 第3篇

剛剛度過了一個特殊的春節,美美在這裡給大家拜個晚年。相信大家作為各公司技術團隊的骨幹,應該也和我的同事們一樣,正在緊張忙碌地用技術支撐着各方面的工作,同舟共濟,抗擊疫情吧。請大家注意做好個人和家庭防護,多加強運動,提高免疫力。讓我們一起為武漢加油,願疫情早日結束!

在家工作,學習也不能鬆懈。今天美美給大家帶來兩篇人工智能領域的技術文章。一篇是機器學習平台的建設實踐,一篇是自然場景中的人臉檢測,希望對大家有所啟發。

在自然場景中,人臉檢測技術挑戰極大,美團AI平台視覺智能中心從底層算法模型和系統架構兩個方面進行了改進,開發了高精度人臉檢測模型VICFace。目前,該模型已經在美團各業務線使用,高度滿足業務的性能需求。

一、背景

人臉檢測技術是通過人工智能分析的方法自動返回圖片中的人臉坐標位置和尺寸大小,是人臉智能分析應用的核心組成部分,具有廣泛的學術研究價值和業務應用價值,比如人臉識別、人臉屬性分析(年齡估計、性別識別、顏值打分和表情識別)、人臉Avatar、智能視頻監控、人臉圖像過濾、智能圖像裁切、人臉AR遊戲等等。因拍攝的場景不同,自然場景環境複雜多變,光照因素也不可控,人臉本身多姿態以及群體間的相互遮擋給檢測任務帶來了很大的挑戰(如圖1所示)。在過去20年里,該任務一直是學術界和產業界共同關注的熱點。

自然場景人臉檢測在美團業務中也有着廣泛的應用需求,為了應對自然場景應用本身的技術挑戰,同時滿足業務的性能需求,美團視覺智能中心(Vision Intelligence Center,VIC)從底層算法模型和系統架構兩個方面進行了改進,開發了高精度人臉檢測模型VICFace。而且VICFace在國際知名的公開測評集WIDER FACE上達到了行業主流水平。

圖1 自然場景人臉檢測樣本示例

二、技術發展現狀

跟深度學習不同,傳統方法解決自然場景人臉檢測會從特徵表示和分類器學習兩個方面進行設計。最有代表性的工作是Viola-Jones算法[2],它利用手工設計的Haar-like特徵和Adaboost算法來完成模型訓練。傳統方法在CPU上檢測速度快,結果可解釋性強,在相對可控的環境下可以達到較好的性能。但是,當訓練數據規模成指數增長時,傳統方法的性能提升相對有限,在一些複雜場景下,甚至無法滿足應用需求。

隨着計算機算力的提升和訓練數據的增長,基於深度學習的方法在人臉檢測任務上取得了突破性進展,在檢測性能上相對於傳統方法具有壓倒性優勢。基於深度學習的人臉檢測算法從算法結構上可以大致分為三類:

1)基於級聯的人臉檢測算法。

2)兩階段人臉檢測算法。

3)單階段人臉檢測算法。

其中,第一類基於級聯的人臉檢測方法(如Cascade CNN[3]、MTCNN[4])運行速度較快、檢測性能適中,適用於算力有限、背景簡單且人臉數量較少的場景。第二類兩階段人臉檢測方法一般基於Faster-RCNN[6]框架,在第一階段生成候選區域,然後在第二階段對候選區域進行分類和回歸,其檢測準確率較高,缺點是檢測速度較慢,代表方法有Face R-CNN[9] 、ScaleFace[10]、FDNet[11]。最後一類單階段的人臉檢測方法主要基於Anchor的分類和回歸,通常會在經典框架(如SSD[12]、RetinaNet[13])的基礎上進行優化,其檢測速度較兩階段法快,檢測性能較級聯法優,是一種檢測性能和速度平衡的算法,也是當前人臉檢測算法優化的主流方向。

三、優化思路和業務應用

在自然場景應用中,為了同時滿足精度需求以及達到實用的目標,美團視覺智能中心(Vision Intelligence Center,VIC)採用了主流的Anchor-Based單階段人臉檢測方案,同時在數據增強和採樣策略、模型結構設計和損失函數等三方面分別進行了優化,開發了高精度人臉檢測模型VICFace。以下是相關技術細節的介紹。

1. 數據增強和採樣策略

單階段通用目標檢測算法對數據增強方式比較敏感,如經典的SSD算法在VOC2007[50]數據集上通過數據增強性能指標mAP提升6.7。經典單階段人臉檢測算法S3FD[17]也設計了樣本增強策略,使用了圖片隨機裁切,圖片固定寬高比縮放,圖像色彩擾動和水平翻轉等。

百度在ECCV2018發表的PyramidBox[18]提出了Data-Anchor採樣方法,將圖像中一個隨機選擇的人臉進行尺度變換變成一個更小Anchor附近尺寸的人臉,同時訓練圖像的尺寸也進行同步變換。這樣做的好處是通過將較大的人臉生成較小的人臉,提高了小尺度上樣本的多樣性,在WIDER FACE[1]數據集Easy、Medium、Hard集合上分別提升0.4(94.3->94.7),0.4(93.3->93.7),0.6(86.1->86.7)。ISRN[19]將SSD的樣本增強方式和Data-Anchor採樣方法結合,模型檢測性能進一步提高。

而VICFace在ISRN樣本增強方式的基礎上對語義模糊的超小人臉做了過濾,而mixup[22]在圖像分類和目標檢測中已經被驗證有效,現在用於人臉檢測,有效地防止了模型過擬合問題。考慮到業務數據中人臉存在多姿態、遮擋和模糊的樣本,且這些樣本在訓練集中佔比小,檢測難度大,因此在模型訓練時動態的給這些難樣本賦予更高的權重從而提升這些樣本的召回率。

2. 模型結構設計

人臉檢測模型結構設計主要包括檢測框架、主幹網絡、預測模塊、Anchor設置與正負樣本劃分等四個部分,是單階段人臉檢測方法優化的核心。

  • 檢測框架

近年來單階段人臉檢測框架取得了重要的發展,代表性的結構有S3FD[17]中使用的SSD,SFDet[25]中使用的RetinaNet,SRN[23]中使用的兩步結構(後簡稱SRN)以及DSFD[24]中使用的雙重結構(後簡稱DSFD),如下圖2所示。其中,SRN是一種單階段兩步人臉檢測方法,利用第一步的檢測結果,在小尺度人臉上過濾易分類的負樣本,改善正負樣本數量的均衡性,針對大尺度的人臉採用迭代求精的方式進行人臉定位,改善大尺度人臉的定位精度,提升了人臉檢測的準確率。在WIDER FACE上測評SRN取得了最好的檢測效果(按標準協議用AP平均精度來衡量),如表1所示。

S3FD:

SFDet:

SRN:

DSFD:

圖2 四種檢測結構

表1 Backbone為ResNet50時,四種檢測結構在WIDER FACE上的評估結果

VICFace繼承了當前性能最好的SRN檢測結構,同時為了更好的融合自底向上和自頂向下的特徵,為不同特徵不同通道賦予不同的權重,以P4為例,其計算式為:

其中WC4向量的元素個數與Conv(C4)特徵的通道數相等,WP4與Upsample(P5)的通道數相等,WC4與WP4是可學習的,其元素值均大於0,且WC4與WP4對應元素之和為1,結構如圖3所示。

圖3 視覺智能中心VICFace網絡整體結構圖

  • 主幹網絡

單階段人臉檢測模型的主幹網絡通常使用分類任務中的經典結構(如VGG[26]、ResNet[27]等)。其中,主幹網絡在ImageNet數據集上分類任務表現越好,其在WIDER FACE上的人臉檢測性能也越高,如表2所示。為了保證檢測網絡得到更高的召回,在性能測評時VICFace主幹網絡使用了在ImageNet上性能較優的ResNet152網絡(其在ImageNet上Top1分類準確率為80.26),並且在實現時將Kernel為7×7,Stride為2的卷積模塊調整為為3個3×3的卷積模塊,其中第一個模塊的Stride為2,其它的為1;將Kernel為1×1,Stride為2的下採樣模塊替換為Stride為2的Avgpool模塊。

表2 不同主幹網絡在ImageNet的性能對比和其在RetinaNet框架下的檢測精度

  • 預測模塊

利用上下文信息可以進一步提高模型的檢測性能。SSH[36]是將上下文信息用於單階段人臉檢測模型的早期方案,PyramidBox、SRN、DSFD等也設計了不同上下文模塊。如圖4所示,SRN上下文模塊使用1xk,kx1的卷積層提供多種矩形感受野,多種不同形狀的感受野助於檢測極端姿勢的人臉;DSFD使用多個帶孔洞的卷積,極大的提升了感受野的範圍。

圖4 不同網絡結構中的Context Module

在VICFace中,將帶孔洞的卷積模塊和1xk,kx1的卷積模塊聯合作為Context Module,既提升了感受野的範圍也有助於檢測極端姿勢的人臉,同時使用Maxout模塊提升召回率,降低誤檢率。它還利用Cn層特徵預測的人臉位置,校準Pn層特徵對應的區域,如圖5所示。Cn層預測的人臉位置相對特徵位置的偏移作為可變卷積的Offset輸入,Pn層特徵作為可變卷積的Data輸入,經過可變卷積後特徵對應的區域與人臉區域對應更好,相對更具有表示能力,可以提升人臉檢測模型的性能。

圖5 自研檢測模型結構中的預測模塊

  • Anchor設置與正負樣本劃分

基於Anchor的單階段人臉檢方法通過Anchor的合理設置可以有效的控制正負樣本比例和緩解不同尺度人臉定位損失差異大的問題。現有主流人臉檢測方法中Anchor的大小設置主要有以下三種(S代表Stride):{ 4S },{ 2S,

},{ 4S,

}。根據數據集中人臉的特點,Anchor的寬高也可以進一步豐富,如{1},{0.8},{1,0.67}。

在自研方案中,在C3、P3層,Anchor的大小為2S和4S,其它層Anchor大小為4S(S代表對應層的Stride),這樣的Anchor設置方式在保證人臉召回率的同時,減少了負樣本的數量,在一定程度上緩解了正負樣本不均衡現象。根據人臉樣本寬高比的統計信息,將Anchor的寬高比設置為0.8,同時將Cn層IoU大於0.7的樣本劃分為正樣本,小於0.3的劃分為負樣本,Pn層IoU大於0.5的樣本劃分為正樣本,小於0.4的劃分為負樣本。

3. 損失函數

人臉檢測的優化目標不僅需要區分正負樣本(是否是人臉),還需要定位出人臉位置和尺寸。S3FD中區分正負樣本使用交叉熵損失函數,定位人臉位置和尺寸使用Smooth L1 Loss,同時使用困難負樣本挖掘解決正負樣本數量不均衡的問題。另一種緩解正負樣本不均衡帶來的性能損失更直接的方式是Lin等人提出Focal Loss[13]。UnitBox[41]提出IoU Loss可以緩解不同尺度人臉的定位損失差異大導致的性能損失。AlnnoFace[40]同時使用Focal Loss和IoU Loss提升了人臉檢測模型的性能。引入其它相關輔助任務也可以提升人臉檢測算法的性能,RetinaFace[42]引入關鍵點定位任務,提升人臉檢測算法的定位精度;DFS[43]引入人臉分割任務,提升了特徵的表示能力。

綜合前述方法的優點,VICFace充分利用人臉檢測及相關任務的互補信息,使用多任務方式訓練人臉檢測模型。在人臉分類中使用Focal Loss來緩解樣本不均衡問題,同時使用人臉關鍵點定位和人臉分割來輔助分類目標的訓練,從而提升整體的分類準確率。在人臉定位中使用Complete IoU Loss[47],以目標與預測框的交並比作為損失函數,緩解不同尺度人臉損失的差異較大的問題,同時兼顧目標和預測框的中心點距離和寬高比差異,從而可以達到更好整體檢測性能。

4. 優化結果和業務應用

在集群平台的支持下,美團視覺智能中心的自然場景人臉檢測基礎模型VICFace與現有主流方案進行了性能對比,在國際公開人臉檢測測評集WIDER FACE的三個驗證集Easy、Medium、Hard中均達到領先水平(AP為平均精度,數值越高越好),如圖6和表3所示。

圖6 VICFace以及當前主流人臉檢測方法在WIDER FACE上的測評結果

表3 VICFace以及當前主流人臉檢測方法在WIDER FACE上的測評結果

註:SRN是中科院在AAAI2019提出的新方法,DSFD是騰訊優圖在CVPR2019提出的新方法,PyramidBox++是百度在2019年提出的新方法,AInnoFace是創新奇智在2019提出的新方法,RetinaFace是ICCV2019 Wider Challenge亞軍。

在業務應用中,自然場景人臉檢測服務目前已接入美團多個業務線,滿足了業務在UGC圖像智能過濾和廣告POI圖像展示等應用的性能需求,前者保護用戶隱私,預防侵犯用戶肖像權,後者可以有效的預防圖像中人臉局部被裁切的現象,從而提升了用戶體驗。此外,VICFace還為其它人臉智能分析應用提供了核心基礎模型,如自動檢測後廚工作人員的着裝合規性(是否穿戴帽子和口罩),為食品安全增加了一道保障。

在未來的工作中,為了給用戶提供更好的體驗,同時滿足高並發的需求,在模型結構設計和模型推理效率方面將會做進一步探索和優化。此外,在算法設計方面,基於Anchor-Free的單階段目標檢測方法近年來在通用目標檢測領域表現出較高的潛力,也是視覺智能中心未來會關注的重要方向。

參考文獻

1. Yang S, Luo P, Loy C C, et al. Wider face: A face detection benchmark[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2016: 5525-5533.

2. Viola P, Jones M J. Robust real-time face detection[J]. International journal of computer vision, 2004, 57(2): 137-154.

3. Li H, Lin Z, Shen X, et al. A convolutional neural network cascade for face detection[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2015: 5325-5334.

4. Zhang K, Zhang Z, Li Z, et al. Joint face detection and alignment using multitask cascaded convolutional networks[J]. IEEE Signal Processing Letters, 2016, 23(10): 1499-1503.

5. Hao Z, Liu Y, Qin H, et al. Scale-aware face detection[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2017: 6186-6195.

6. Ren S, He K, Girshick R, et al. Faster r-cnn: Towards real-time object detection with region proposal networks[C]//Advances in neural information processing systems. 2015: 91-99.

7. Lin T Y, Dollár P, Girshick R, et al. Feature pyramid networks for object detection[C]. Proceedings of the IEEE conference on computer vision and pattern recognition. 2017: 2117-2125.

8. Jiang H, Learned-Miller E. Face detection with the faster R-CNN[C]//2017 12th IEEE International Conference on Automatic Face & Gesture Recognition (FG 2017). IEEE, 2017: 650-657.

9. Wang H, Li Zhif, et al. Face R-CNN. arXiv preprint arXiv: 1706.01061, 2017.

10. Yang S, Xiong Y, Loy C C, et al. Face detection through scale-friendly deep convolutional networks[J]. arXiv preprint arXiv:1706.02863, 2017.

11. Zhang C, Xu X, Tu D. Face detection using improved faster rcnn[J]. arXiv preprint arXiv:1802.02142, 2018.

12. Liu W, Anguelov D, Erhan D, et al. Ssd: Single shot multibox detector[C]//European conference on computer vision. Springer, Cham, 2016: 21-37.

13. Lin T Y, Goyal P, Girshick R, et al. Focal loss for dense object detection[C]//Proceedings of the IEEE international conference on computer vision. 2017: 2980-2988.

14. Huang L, Yang Y, Deng Y, et al. Densebox: Unifying landmark localization with end to end object detection[J]. arXiv preprint arXiv:1509.04874, 2015.

15. Liu W, Liao S, Ren W, et al. High-level Semantic Feature Detection: A New Perspective for Pedestrian Detection[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2019: 5187-5196.

16. Zhang Z, He T, Zhang H, et al. Bag of freebies for training object detection neural networks[J]. arXiv preprint arXiv:1902.04103, 2019.

17. Zhang S, Zhu X, Lei Z, et al. S3fd: Single shot scale-invariant face detector[C]//Proceedings of the IEEE International Conference on Computer Vision. 2017: 192-201.

18. Tang X, Du D K, He Z, et al. Pyramidbox: A context-assisted single shot face detector[C]//Proceedings of the European Conference on Computer Vision (ECCV). 2018: 797-813.

19. Zhang S, Zhu R, Wang X, et al. Improved selective refinement network for face detection[J]. arXiv preprint arXiv:1901.06651, 2019.

20. Li Z, Tang X, Han J, et al. PyramidBox++: High Performance Detector for Finding Tiny Face[J]. arXiv preprint arXiv:1904.00386, 2019.

21. Zhang S, Zhu X, Lei Z, et al. Faceboxes: A CPU real-time face detector with high accuracy[C]//2017 IEEE International Joint Conference on Biometrics (IJCB). IEEE, 2017: 1-9.

22. Zhang H, Cisse M, Dauphin Y N, et al. mixup: Beyond empirical risk minimization[J]. arXiv preprint arXiv:1710.09412, 2017.

23. Chi C, Zhang S, Xing J, et al. Selective refinement network for high performance face detection[C]//Proceedings of the AAAI Conference on Artificial Intelligence. 2019, 33: 8231-8238.

24. Li J, Wang Y, Wang C, et al. Dsfd: dual shot face detector[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2019: 5060-5069.

25. Zhang S, Wen L, Shi H, et al. Single-shot scale-aware network for real-time face detection[J]. International Journal of Computer Vision, 2019, 127(6-7): 537-559.

26. Simonyan K, Zisserman A. Very deep convolutional networks for large-scale image recognition[J]. arXiv preprint arXiv:1409.1556, 2014.

27. He K, Zhang X, Ren S, et al. Deep residual learning for image recognition[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2016: 770-778.

28. Xie S, Girshick R, Dollár P, et al. Aggregated residual transformations for deep neural networks[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2017: 1492-1500.

29. Iandola F, Moskewicz M, Karayev S, et al. Densenet: Implementing efficient convnet descriptor pyramids[J]. arXiv preprint arXiv:1404.1869, 2014.

30. Howard A G, Zhu M, Chen B, et al. Mobilenets: Efficient convolutional neural networks for mobile vision applications[J]. arXiv preprint arXiv:1704.04861, 2017.

31. Sandler M, Howard A, Zhu M, et al. Mobilenetv2: Inverted residuals and linear bottlenecks[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2018: 4510-4520.

32. Bazarevsky V, Kartynnik Y, Vakunov A, et al. BlazeFace: Sub-millisecond Neural Face Detection on Mobile GPUs[J]. arXiv preprint arXiv:1907.05047, 2019.

33. He Y, Xu D, Wu L, et al. LFFD: A Light and Fast Face Detector for Edge Devices[J]. arXiv preprint arXiv:1904.10633, 2019.

34. Zhu R, Zhang S, Wang X, et al. Scratchdet: Exploring to train single-shot object detectors from scratch[J]. arXiv preprint arXiv:1810.08425, 2018, 2.

35. Lin T Y, Maire M, Belongie S, et al. Microsoft coco: Common objects in context[C]//European conference on computer vision. Springer, Cham, 2014: 740-755.

36. Najibi M, Samangouei P, Chellappa R, et al. Ssh: Single stage headless face detector[C]//Proceedings of the IEEE International Conference on Computer Vision. 2017: 4875-4884.

37. Sa. Earp, P. Noinongyao, J. Cairns, A. Ganguly Face Detection with Feature Pyramids and Landmarks. arXiv preprint arXiv:1912.00596, 2019.

38. Goodfellow I J, Warde-Farley D, Mirza M, et al. Maxout networks[J]. arXiv preprint arXiv:1302.4389, 2013.

39. Zhu C, Tao R, Luu K, et al. Seeing Small Faces from Robust Anchor's Perspective[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2018: 5127-5136.

40. F. Zhang, X. Fan, G. Ai, J. Song, Y. Qin, J. Wu Accurate Face Detection for High Performance. arXiv preprint arXiv:1905.01585, 2019.

41. Yu J, Jiang Y, Wang Z, et al. Unitbox: An advanced object detection network[C]//Proceedings of the 24th ACM international conference on Multimedia. ACM, 2016: 516-520.

42. Deng J, Guo J, Zhou Y, et al. RetinaFace: Single-stage Dense Face Localisation in the Wild[J]. arXiv preprint arXiv:1905.00641, 2019.

43. Tian W, Wang Z, Shen H, et al. Learning better features for face detection with feature fusion and segmentation supervision[J]. arXiv preprint arXiv:1811.08557, 2018.

44. Y. Zhang, X. Xu, X. Liu Robust and High Performance Face Detector. arXiv preprint arXiv:1901.02350, 2019.

45. S. Zhang, C. Chi, Z. Lei, Stan Z. Li RefineFace: Refinement Neural Network for High Performance Face Detection. arXiv preprint arXiv:1909.04376, 2019.

46. Wang J, Yuan Y, Li B, et al. Sface: An efficient network for face detection in large scale variations[J]. arXiv preprint arXiv:1804.06559, 2018.

47. Zheng Z, Wang P, Liu W, et al. Distance-IoU Loss: Faster and Better Learning for Bounding Box Regression[J]. arXiv preprint arXiv:1911.08287, 2019.

48. Bay H, Tuytelaars T, Van Gool L. Surf: Speeded up robust features[C]//European conference on computer vision. Springer, Berlin, Heidelberg, 2006: 404-417.

49. Yang B, Yan J, Lei Z, et al. Aggregate channel features for multi-view face detection[C]//IEEE international joint conference on biometrics. IEEE, 2014: 1-8.

50. Everingham M, Van Gool L, Williams C K I, et al. The PASCAL visual object classes challenge 2007 (VOC2007) results[J]. 2007.

51. Redmon J, Farhadi A. Yolov3: An incremental improvement[J]. arXiv preprint arXiv:1804.02767, 2018.

作者簡介

振華、歡歡、曉林,皆為美團視覺智能中心工程師。

———- END ———-

招聘信息

美團視覺智能中心基礎視覺組的主要職責是夯實視覺智能底層核心基礎技術,為集團業務提供平台級視覺解決方案。主要方向有基礎模型優化、大規模分佈式訓練、Server效率優化、移動端適配優化和創新產品孵化。

歡迎計算機視覺相關領域小夥伴加入我們,簡歷可發郵件至 tech@meituan.com(郵件標題註明:美團視覺智能中心基礎視覺組)。