Help us understand the problem. What is going on with this article?

OpenCV だけで顔検出から顔照合まで完結している

OpenCV だけで顔検出から顔照合まで完結している。
そういう状況になってきている。
深層学習を利用した従来よりも強力な顔検出・狭義の顔照合(=正規化済みの顔を用いて、顔の類似性を判定する技術)があることには気づいていたが、顔のlandmark(目・鼻・口など)を求めて、顔を正規化する技術もOpenCVに含まれていたことに最近気づいた。

https://github.com/opencv/opencv/tree/master/samples/dnn

tensorFlow ベースのコードで顔検出のDNNが使えるようになっている。
いつの間にか、sampleの構成が大幅に変わっている。

上記のGithub のREADME.md を読んでください。

https://github.com/opencv/opencv/tree/master/samples/dnn/face_detector

Face landmark detection in an image

顔画像の正規化をするためには、顔のlandmark(目鼻口などの位置)が重要です。
そのためのライブラリが含まれるようになりました。

Face Recognition with OpenCV

顔の画像が正規化されていれば、いよいよ狭い意味での顔照合を呼び出すことができます。

EigenFace(固有顔)などを使うアプローチでの顔照合です。

ただし、OpenCVに現時点で実装されているコードだけでは、商用ライブラリのうち高い水準にあるものとは次の範囲で違いが生じる可能性は高いと思われます。

  • 隠れのある顔画像
    • 例:マスクをした顔・サングラスをした顔
  • 正面を向いていない顔
    • 例:30度ほど斜めを向いた顔
  • よくない照明条件
    • 光が均一な当たり方をしていない顔画像

そういった部分での差があるとは予想されますが、OpenCVというライブラリの中で完結する範囲が増えてきたことはすばらしいことです。

github Face Recognition with OpenCV and Python

OpenCV-Face-Recognition-Python.ipynb

Real-time-face-recognition-in-python-using-opencv-

Face Recognition using Haar-Cascade Classifier, OpenCV, and Python

Face Detection In Python Using OpenCV


次のプロジェクトは、OpenCVにある顔検出から顔照合までの技術を通しで利用しようとするものです。

RaspberryPi と RaspberryPi Cameraを用いて、リアルタイムの顔照合を実現するものです。

OpenCV-Face-Recognition

Real-Time Face Recognition: An End-to-End Project


Facial recognition: OpenCV on the camera board

Face recognition OpenCV Raspberry Pi


InsightFace: 2D and 3D Face Analysis Project

追記:

OpenCVのDNNの枠組みを使った年齢性別の推定ができるようになっています。

Gender & Age Classification using OpenCV Deep Learning ( C++/Python )

OpenCVの顔照合についての補足

深層学習の利用が拡大してきたなかで、顔照合のアルゴリズムとして、EigenFace(=固有顔)のように、線形モデルを前提としているのは、若干古臭い手法になりつつある。

深層学習の顔照合の実装について、オープン・ソースで、照合性能・照合処理速度・顔の属性推定などのさまざまな顔関連の実装とが関係している。
そのような中で、OpenCVに今の時点で含まれている顔照合を何で置き換えるべきかを考えるのがいいだろう。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした