今回は下記のDeepfaceを触ってみたので紹介したいと思います.
目次
- 作業環境
- 環境構築
- 実際に動かしてみる
作業環境
- M1 Mac
- Python 3.9
環境構築
M1 MacでMiniforgeを使用している方の環境構築手順となっています
それ以外の方は,GitHubのREADMEを参考に構築を行ってください
$ conda install -c apple tensorflow-deps
$ python -m pip install tensorflow-macos
$ python -m pip install tensorflow-metal
$ pip install deepface --no-deps
$ pip install retina-face --no-deps
$ pip install pandas Flask gdown mtcnn Pillow
M1 MacでGitHubのREADME通りにインストールを行うと下記のようなエラーが出ると思います.
上の手順通りにインストールしてください
ERROR: Could not find a version that satisfies the requirement tensorflow>=1.9.0 (from deepface) (from versions: none) ERROR: No matching distribution found for tensorflow>=1.9.0 (from deepface)
実際に動かしてみる
実際に動かすために下記のようなpythonファイルを作成してください
realtime.py
from deepface import DeepFace
DeepFace.stream(db_path = "./database/", model_name = "ArcFace", detector_backend = 'ssd')
./databaseには,顔画像が保存されています.
$ tree
├── realtime.py
└── database
├── hoge.jpg
├── mage.jpg
└── sen
├── sen1.jpg
├── sen2.jpg
└── sen3.jpg
python3 realtime.py
動作結果を見やすいようにするために,ソースコードを多少書き換えています.
パラメーターの紹介
顔認証のモデルは,以下の9つの中から選択することが可能です.
model_name =
'VGG-Face',
'OpenFace',
'Facenet',
'Facenet512',
'DeepFace',
'DeepID',
'Dlib',
'ArcFace',
'SFace'
また,顔を検出するモデルも変更することが可能です.
defalutでは,opencvが使用されているため検出精度が低いです.
detector_backend =
‘opencv’,
‘ssd’,
‘mtcnn’,
‘dlib’,
‘retinaface’
顔認証では,顔同士の距離計算で類似度を測っています.
そのため,下記のコサイン類似度とユークリッド距離のパラーメータを選択することが可能です.
distance_metric =
‘cosine’,
‘euclidean’,
‘euclidean_l2’
最後に
今回紹介したGitHubのリポジトリは,下記のサイトで見つけたので共有させていただきます.
最後まで読んでくださり,ありがとうございます.