顔関係の記事が多数になってきて、それらの関係がわかりにくくなったので整理する。
顔検出
記事 | 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 以外の場所にある深層学習ベースの顔検出を調査中(3)
頭部検出
顔器官点の検出・
記事 | OpenCV | dlib | 深層学習 | SVM | Cascade |
---|---|---|---|---|---|
dlibで顔のパーツ検出を行う | o | - | - |
次の記事はとても丁寧に書かれている。
Kaggle Facial Keypoints DetectionをKerasで実装する
顔追跡
Face Tracker
https://github.com/kylemcdonald/FaceTracker
FaceTrackerをインストールする。 - はまった点(2017.11.04)
追跡自体については次の記事を参照するとよさそう。
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 | ||
顔照合のオープンソースの実装について調査中 | ||||
OpenFace(顔照合) について調査中 | o |
顔照合が近年大幅に改善している理由の一つは、顔の正規化の精度の向上を利用しやすくなったことがあるようです。
昔の顔検出ではラスタースキャンをする関係上、位置ずれを許容するような検出器を使っていました。そのため、位置ずれを許容する検出器で検出した後に、目の特徴点をエッジ検出で求めることがされていました。
現在は、深層学習の場合にはラスタースキャンという枠組みが存在せず、オブジェクトらしい領域を選択したあとでオブジェクトの種類を判定する枠組みなどがあります。そのため、深層学習が普及した以降では、それ以前と大幅な違いを生じています。