また、このファイルの翻訳されたバージョンを中国語简体中文版、韓国語、または日本語で読むこともできます。
Pythonまたはコマンドラインから、世界で最も単純な顔認識ライブラリを使用して、顔を認識して操作します。
DLIBの最先端の顔認識を使用して構築されました。このモデルの精度は、野生のベンチマークのラベルのある面で99.38%です。
これにより、コマンドラインの画像のフォルダーで顔の認識を行うことができるSimple face_recognition
コマンドラインツールも提供します。
写真に表示されるすべての顔を見つけます:
import face_recognition
image = face_recognition . load_image_file ( "your_file.jpg" )
face_locations = face_recognition . face_locations ( image )
各人の目、鼻、口、あごの場所と輪郭を取得します。
import face_recognition
image = face_recognition . load_image_file ( "your_file.jpg" )
face_landmarks_list = face_recognition . face_landmarks ( image )
顔の特徴を見つけることは、多くの重要なものに非常に役立ちます。ただし、デジタルメイクを適用するなど、本当に愚かなものに使用することもできます(「Meitu」と考えてください):
各写真に誰が登場するかを認識します。
import face_recognition
known_image = face_recognition . load_image_file ( "biden.jpg" )
unknown_image = face_recognition . load_image_file ( "unknown.jpg" )
biden_encoding = face_recognition . face_encodings ( known_image )[ 0 ]
unknown_encoding = face_recognition . face_encodings ( unknown_image )[ 0 ]
results = face_recognition . compare_faces ([ biden_encoding ], unknown_encoding )
このライブラリを他のPythonライブラリで使用して、リアルタイムの顔認識を実行することもできます。
コードについては、この例を参照してください。
ユーザーコントリビューされた共有Jupyterノートブックデモ(公式にはサポートされていません):
まず、Pythonバインディングで既にDLIBがインストールされていることを確認してください。
次に、cmakeがインストールされていることを確認してください。
brew install cmake
最後に、 pip3
(またはPython 2用のpip2
)を使用してPYPIからこのモジュールをインストールします。
pip3 install face_recognition
または、このライブラリをDockerで試すこともできます。このセクションを参照してください。
インストールに問題がある場合は、事前に構成されたVMを試すこともできます。
pkg install graphics/py-face_recognition
Windowsは正式にサポートされていませんが、役立つユーザーはこのライブラリをインストールする方法についての指示を投稿しています。
face_recognition
をインストールすると、2つの簡単なコマンドラインプログラムが取得されます。
face_recognition
写真の写真やフォルダーに顔を認識します。face_detection
写真のために写真やフォルダーに顔を見つけます。 face_recognition
コマンドラインツールface_recognition
コマンドを使用すると、写真の写真やフォルダーの顔を写真またはフォルダーに認識できます。
まず、すでに知っている各人の1つの写真を備えたフォルダーを提供する必要があります。写真に誰がいるかに従って名前が付けられたファイルを持つ、各人に1つの画像ファイルがあるはずです。
次に、識別するファイルを備えた2番目のフォルダーが必要です。
次に、Command face_recognition
を実行して、既知の人とフォルダー(または単一の画像)のフォルダーを未知の人と渡すだけで、それぞれの画像に誰がいるかがわかります。
$ face_recognition ./pictures_of_people_i_know/ ./unknown_pictures/
/unknown_pictures/unknown.jpg,Barack Obama
/face_recognition_test/unknown_pictures/unknown.jpg,unknown_person
各顔の出力に1つの線があります。データは、ファイル名と見つかった人の名前でコンマを分離しています。
unknown_person
_Personは、既知の人々のフォルダーの誰も一致しなかった画像の顔です。
face_detection
コマンドラインツールface_detection
コマンドを使用すると、画像内の面の位置(ピクセル座標)を見つけることができます。
コマンドface_detection
を実行するだけで、画像のフォルダーを渡してチェック(または単一の画像)を確認します。
$ face_detection ./folder_with_pictures/
examples/image1.jpg,65,215,169,112
examples/image2.jpg,62,394,211,244
examples/image2.jpg,95,941,244,792
検出された顔ごとに1本の線を印刷します。報告された座標は、顔の上部、右、下、左座標(ピクセル)です。
あなたが同じ人のために複数の試合を取得している場合、それはあなたの写真の人々が非常に似ているように見え、顔の比較をより厳格にするためにより低い許容値が必要である可能性があります。
--tolerance
パラメーターでそれを行うことができます。デフォルトの許容値は0.6で、数値が低いと、顔の比較がより厳格になります。
$ face_recognition --tolerance 0.54 ./pictures_of_people_i_know/ ./unknown_pictures/
/unknown_pictures/unknown.jpg,Barack Obama
/face_recognition_test/unknown_pictures/unknown.jpg,unknown_person
許容範囲の設定を調整するために各一致で計算された顔の距離を確認したい場合は、 --show-distance true
使用できます。
$ face_recognition --show-distance true ./pictures_of_people_i_know/ ./unknown_pictures/
/unknown_pictures/unknown.jpg,Barack Obama,0.378542298956785
/face_recognition_test/unknown_pictures/unknown.jpg,unknown_person,None
各写真の人の名前を知りたいだけで、ファイル名を気にしない場合は、これを行うことができます。
$ face_recognition ./pictures_of_people_i_know/ ./unknown_pictures/ | cut -d ' , ' -f2
Barack Obama
unknown_person
複数のCPUコアを備えたコンピューターがある場合、顔認識は並行して実行できます。たとえば、システムに4つのCPUコアがある場合、すべてのCPUコアを並行して使用することにより、同じ時間で約4倍の画像を処理できます。
python 3.4以降を使用している場合は、 --cpus <number_of_cpu_cores_to_use>
パラメーターを渡します。
$ face_recognition --cpus 4 ./pictures_of_people_i_know/ ./unknown_pictures/
--cpus -1
を渡して、システム内のすべてのCPUコアを使用することもできます。
face_recognition
モジュールをインポートしてから、ほんの数行のコードでフェイスを簡単に操作できます。とても簡単です!
APIドキュメント:https://face-Recognition.readthedocs.io。
import face_recognition
image = face_recognition . load_image_file ( "my_picture.jpg" )
face_locations = face_recognition . face_locations ( image )
# face_locations is now an array listing the co-ordinates of each face!
試してみるには、この例を参照してください。
また、やや正確なディープラーニングベースの顔検出モデルにオプトインすることもできます。
注:このモデルでは、GPUアクセラレーション(NvidiaのCUDAライブラリを介して)が必要です。また、 dlib
縮小するときにCUDAサポートを有効にすることもできます。
import face_recognition
image = face_recognition . load_image_file ( "my_picture.jpg" )
face_locations = face_recognition . face_locations ( image , model = "cnn" )
# face_locations is now an array listing the co-ordinates of each face!
試してみるには、この例を参照してください。
たくさんの画像とGPUがある場合は、バッチに顔を見つけることもできます。
import face_recognition
image = face_recognition . load_image_file ( "my_picture.jpg" )
face_landmarks_list = face_recognition . face_landmarks ( image )
# face_landmarks_list is now an array with the locations of each facial feature in each face.
# face_landmarks_list[0]['left_eye'] would be the location and outline of the first person's left eye.
試してみるには、この例を参照してください。
import face_recognition
picture_of_me = face_recognition . load_image_file ( "me.jpg" )
my_face_encoding = face_recognition . face_encodings ( picture_of_me )[ 0 ]
# my_face_encoding now contains a universal 'encoding' of my facial features that can be compared to any other picture of a face!
unknown_picture = face_recognition . load_image_file ( "unknown.jpg" )
unknown_face_encoding = face_recognition . face_encodings ( unknown_picture )[ 0 ]
# Now we can see the two face encodings are of the same person with `compare_faces`!
results = face_recognition . compare_faces ([ my_face_encoding ], unknown_face_encoding )
if results [ 0 ] == True :
print ( "It's a picture of me!" )
else :
print ( "It's not a picture of me!" )
試してみるには、この例を参照してください。
すべての例はこちらから入手できます。
python
やface_recognition
をインストールする必要なく実行できるスタンドアロン実行可能ファイルを作成する場合は、pyinstallerを使用できます。ただし、このライブラリを使用するには、カスタム構成が必要です。その方法については、この問題をご覧ください。
face_recognition
カバーする記事とガイドブラックボックスライブラリに依存するのではなく、顔の位置と認識がどのように機能するかを知りたい場合は、私の記事を読んでください。
face_recognition
C ++で記述されているdlib
に依存するため、HerokuやAWSなどのクラウドホスティングプロバイダーにアプリを展開するのは難しい場合があります。
物事をより簡単にするために、このレポでは、dockerコンテナにface_recognition
で構築されたアプリを実行する方法を示すDockerfileの例があります。それで、Docker画像をサポートするサービスに展開できるはずです。
dockerイメージをローカルに試すことができます: docker-compose up --build
いくつかの事前に作成されたDocker画像もあります。
GPU(ドライバー> = 384.81)とインストールされたnvidia-dockerを持つLinuxユーザーは、GPUで例を実行できます。Docker-Compose.ymlファイルを開き、 dockerfile: Dockerfile.gpu
およびruntime: nvidia
Linesを除外します。
問題が発生した場合は、GitHubの問題を提出する前に、Wikiの一般的なエラーセクションをお読みください。