23
23

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

顔認証機能を提供しているOSSについてメモ

Last updated at Posted at 2020-06-16

業務で顔認証機能を提供しているOSSについて調査する機会があったので、メモを残しておきます。

##1. OpenCV

OpenCVは、画像処理・画像解析および機械学習等の機能を持つオープンソースのライブラリです。オープンソースですので、基本的に無料で使用することができます。Pythonを始め、C/C++、Java、MATLAB用として公開されており、もともとはインテルが開発・公開しています。

####関連記事
公式ページ,Github
https://opencv.org
https://docs.opencv.org/3.4.3/d1/dfb/intro.html
https://github.com/opencv/opencv
OpenCVで顔認証やってみた
https://qrunch.net/@Atom/entries/Q9fV8JEIQJVCDVId?ref=qrunch
OpenCV だけで顔検出から顔照合まで完結している
https://qiita.com/nonbiri15/items/a970affd90b7a02b2e85

ただし、OpenCVに現時点で実装されているコードだけでは、商用ライブラリのうち高い水準にあるものとは次の範囲で違いが生じる可能性は高いと思われます。
*隠れのある顔画像
例:マスクをした顔・サングラスをした顔
*正面を向いていない顔
例:30度ほど斜めを向いた顔
*よくない照明条件
光が均一な当たり方をしていない顔画像

##2. face_recognition

dlibベースのDLを利用した顔認証ライブラリ
※dlibは機械学習のC++ Pythonのライブラリ

####関連記事
公式ページ,Github
https://github.com/ageitgey/face_recognition
https://pypi.org/project/face-recognition/
https://www.cresco.co.jp/blog/entry/9468/

このモデルはFaceNetにインスパイアされているようなので、詳しい仕組みや理論的な背景はその論文を読むと良いかと思います。

顔識別を行う(Dlib と ageitgey/face_recognition パッケージを使用)
https://www.kkaneko.jp/dblab/dlib/facerec.html
OpenCVとdlibとOpenFaceでの顔検出と知見まとめ
https://vaaaaaanquish.hatenablog.com/entry/2016/06/28/004811

##3. face-net

FaceNetは2015年にGoogleが発表した顔認証用のニューラルネットワークです。
FaceNetの論文はこちらから参照できます。
https://arxiv.org/pdf/1503.03832.pdf

####関連記事
Github
https://github.com/davidsandberg/facenet
FaceNet(顔認識)を動かしてみた
https://masaeng.hatenablog.com/entry/2019/07/26/234225

Facenetを使うことでのメリットは、以下が挙げられます。

  1. 学習済みモデルが利用できる
  2. ベクトルに落とし込むので、検索したい人の画像が少なくてすむ
  3. 顔画像に特化している
  4. お手軽

FaceNet(顔認証)を使って自動撮影カメラを作ってみた
https://masaeng.hatenablog.com/entry/2019/08/09/235046

##4. OpenFace

オープンソースの顔認識技術としてOpenFaceというものもあります。http://cmusatyalab.github.io/openface/
こちらはFaceNet論文を元にしたオープンソースの実装です。

あまり調査できていないが、情報は少ない印象。

##まとめ

非DLのOpenCVは、DLを利用している他ライブラリと比べると、顔の写りなどによっては精度が劣るらしい。
関連記事のサンプルは、すべてPythonで実装。
それぞれの実装のし易さ、精度などは実際に動かして検証する必要がありそう。
face_recognition と face-net を検証してみるのがいいかも。

各ライブラリを比較するために↓表に整理しました。情報はまだざっくりしています。
スクリーンショット 2020-06-29 10.10.44.png
スクリーンショット 2020-07-20 21.07.22.png

23
23
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
23

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?