OpenCV 以外の場所にある深層学習ベースの顔検出を調査中(3)


顔検出

PyPI mtcnn 0.0.8

Multi-task Cascaded Convolutional Neural Networks for Face Detection, based on TensorFlow

github MTCNN face detection implementation for TensorFlow, as a PIP package.

Youtube Face detection with MTCNN

Python3.4 +でのTensorFlow用のMTCNN顔検出器の実装
これは、FacenetのDavid Sandberg(FaceNetのMTCNN)からMTCNNの実装を参考にして書かれています。 これは、Zhang、Kらの論文に基づいている。 (2016)[ZHANG2016]。

そのBENCHMARKを示しており、どの程度実用的な速度がでるのかどうかを意識しているようだ。

Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks

これは元となった論文のFig. 1です。顔検出と検出位置を改善すること。検出位置を改善したあとに、顔器官点の検出をする部分が別々のネットワークで実現しています。

これは元となった論文のFig. 2です。それぞれのネットワークの構造を示しています。

https://github.com/ipazc/mtcnn#usage
に書かれている通りの動作を簡単に確かめることができました。

$ python3
Python 3.5.2 (default, Nov 23 2017, 16:37:01) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from mtcnn.mtcnn import MTCNN
>>> import cv2
>>> img = cv2.imread("ivan.jpg")
>>> detector = MTCNN()
2018-10-02 02:07:10.544632: I tensorflow/core/platform/cpu_feature_guard.cc:137] Your CPU supports instructions that this TensorFlow binary was not compiled to use: SSE4.1 SSE4.2 AVX AVX2 FMA
>>> print(detector.detect_faces(img))
[{'confidence': 0.9985162615776062, 'keypoints': {'nose': (303, 131), 'left_eye': (291, 117), 'mouth_right': (313, 141), 'mouth_left': (296, 143), 'right_eye': (314, 114)}, 'box': [277, 90, 48, 63]}]
>>> 
$ python3 example.py 
2018-10-02 02:10:58.197932: I tensorflow/core/platform/cpu_feature_guard.cc:137] Your CPU supports instructions that this TensorFlow binary was not compiled to use: SSE4.1 SSE4.2 AVX AVX2 FMA
[{'confidence': 0.9985162615776062, 'box': [277, 90, 48, 63], 'keypoints': {'left_eye': (291, 117), 'mouth_left': (296, 143), 'right_eye': (314, 114), 'mouth_right': (313, 141), 'nose': (303, 131)}}]

以下の検出結果のファイルが作成されました。


Modern Face Detection based on Deep Learning using Python and Mxnet

顔検出の紹介記事

小さな顔の検出

https://github.com/alexattia/ExtendedTinyFaces


github https://github.com/HiKapok/X-Detector

X-Detector is a collection of several object detection algorithms. And some of those have not appeared in any academic papers.


OpenCV 以外の場所にある深層学習ベースの顔検出を調査中