Pythonでretina-faceを用いて顔の検出を行う

スポンサーリンク

Pythonでretina-faceを用いて顔の検出を行ってみます。

今回はretina-faceを用います。このライブラリはPythonの標準ライブラリ、モジュールではありませんので、事前にインストールする必要があります。なお、今回はPythonのDeepFaceライブラリも使用しますので、事前にインストールする必要があります。

■Python

今回のPythonのバージョンは、「3.9.9」を使用しています。(Windows11)(pythonランチャーでの確認)

■顔の画像を用意する

retina-faceを用いて顔の検出を行いますのでまずは顔の画像を用意します。今回はPixabay(https://pixabay.com/)で著作権フリーの顔画像をダウンロードします。

ダウンロード後、今回は「C:\Users\user_\test_1(フォルダパス)」という場所にファイル名を「girl_face.jpg」という名前に変更し、jpg形式のファイルで保存します。

さらに今回はverify()メソッドを用いますので、2つの画像を比較して顔認証を行うため、2つの画像が必要ですので、もう1枚画像を用意します。今回は同じ場所に「girl_face_2.jpg」というjpg形式のファイルを保存します。

これで顔の画像の用意は完了となります。

■retina-faceを用いて顔の検出を行う

完了後、retina-faceを用いて顔の検出を行うスクリプトを書いていきます。

■コード

from deepface import DeepFace
obj = DeepFace.verify(r"C:\Users\user_\test_1\girl_face.jpg",r"C:\Users\user_\test_1\girl_face.jpg"
          , model_name = 'ArcFace', detector_backend = 'retinaface')
print(obj["verified"])

DeepFace.verifyメソッドを使用して顔認証を実行します。具体的な処理は「r”C:\Users\user_\test_1\girl_face.jpg”」で顔認証を行う対象の画像ファイルのパスを指定しています、今回は、girl_face.jpgというファイルを使用しています。そして「r”C:\Users\user_\test_1\girl_face_2.jpg”」で顔認証を行う2つ目の画像ファイルのパスを指定しています。今回は、girl_face_2.jpgというファイルを使用しています。次に「model_name=’ArcFace’」顔認証に使用するモデルの名前を指定しています。この場合、’ArcFace’モデルが選択しています。DeepFaceライブラリでは、さまざまな顔認証モデルをサポートしています。最後に「detector_backend=’retinaface’」で顔検出に使用するバックエンドを指定しています。’retinaface’は、高性能な顔検出アルゴリズムの一つです。

実行後、顔認証の結果を出力します。objオブジェクトから”verified”というキーを使用して、認証の結果を取得し、その結果をコンソールにprint()を用いて表示します。

■実行・検証

このスクリプトを「d_face.py」という名前で、Pythonが実行されている作業ディレクトリ(カレントディレクトリ)に保存し、コマンドプロンプトから実行してみます。

retinaface.h5 will be downloaded from the url https://github.com/serengil/deepface_models/releases/download/v1.0/retinaf ace.h5 Downloading...
From: https://github.com/serengil/deepface_models/releases/download/v1.0/retinaface.h5 To: C:\Users\user_\.deepface\weights\retinaface.h5
100%|
119M/119M [00:31<00:00, 3.79MB/s]
arcface_weights.h5 will be downloaded to C:\Users\user_/.deepface/weights/arcface_weights.h5 Downloading...
From: https://github.com/serengil/deepface_models/releases/download/v1.0/arcface_weights.h5 To: C:\Users\user_\.deepface\weights\arcface_weights.h5
100%
False

実行してみると、本来であれば、obj[“verified”]はTrueになり、2つの画像を比較して認証が成功となりますが、今回用意した2つの画像は異なる顔画像でしたので、失敗となり「False」と出力されることが確認できました。

コメント

タイトルとURLをコピーしました