顔関係の記事が多数になってきて、それらの関係がわかりにくくなったので整理する。

顔検出

記事 OpenCV dlib 深層学習 SVM Cascade
Haar Cascadesを用いた顔検出 o - - - o opencv/samples/python/facedetect.py
OpenCVに含まれる深層学習ベースの顔検出 o - o - - opencv/samples/dnn/resnet_ssd_face_python.py
OpenCV 以外の場所にある深層学習ベースの顔検出を調査中 - - o - -
Python + dlibで顔検出 by @shngt - o - o - dlib.get_frontal_face_detector()
dlibのCNNでの顔検出 - o o - - cnn_face_detector.py

顔器官点の検出

顔向き推定について調査中

記事 OpenCV dlib 深層学習 SVM Cascade
dlibで顔のパーツ検出を行う o - -

深層学習が用いられている顔の属性推定について調査中

顔追跡

Face Tracker
https://github.com/kylemcdonald/FaceTracker

追跡自体については次の記事を参照するとよさそう。

OpenCV Tracking API について by IrohaLog

顔照合

記事 OpenCV dlib sciki-learn
「OpenCV 3.3.0 Face Recognition with OpenCV」への補足記事 o opencv_contrib/modules/face/samples
dlibベースの顔照合プログラム face_recognition o https://github.com/ageitgey/face_recognition
scikit-learn の顔照合の実装 o http://scikit-learn.org/0.16/auto_examples/applications/face_recognition.html
顔照合のオープンソースの実装について調査中

顔照合が近年大幅に改善している理由の一つは、顔の正規化の精度の向上を利用しやすくなったことがあるようです。
昔の顔検出ではラスタースキャンをする関係上、位置ずれを許容するような検出器を使っていました。そのため、位置ずれを許容する検出器で検出した後に、目の特徴点をエッジ検出で求めることがされていました。

現在は、深層学習の場合にはラスタースキャンという枠組みが存在せず、オブジェクトらしい領域を選択したあとでオブジェクトの種類を判定する枠組みなどがあります。そのため、深層学習が普及した以降では、それ以前と大幅な違いを生じています。

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.