どうも
face_recognitionについて調べてて意外と簡単だったので紹介します。
用意する物
- face_recognition ←こいつが無いとお話にならない
- 顔の入った写真 ←顔が隠れてないやつ
用意した画像
注意
face_recognitionの学習モデルの関係で赤ちゃんの顔を認識できません。
注意事項の詳しい説明はこちら
コード全体
import face_recognition
image = face_recognition.load_image_file("ここに顔画像の入ったパス")#画像をロード
face_locations = face_recognition.face_locations(image)#顔の座標
print(f'画像の中に{len(face_locations)}人います')
すげえ信じられないくらい短い.....
ざっくり解説
画像の読み込み
image = face_recognition.load_image_file("ここに顔画像の入ったパス")#画像をロード
この行で画像を読み込んでimageに入れています。
画像の中の顔の座標取得
face_locations = face_recognition.face_locations(image)#顔の座標
imageに入った画像を読み込んで、画像の中にある顔の座標を取得してface_locationsに座標を入れています。
printで確認してみましょう。
print(face_locations)
実行結果
[(68, 235, 175, 127), (239, 349, 301, 287)]
こんな感じで写真の中の顔の座標を取得できました。
写真の顔が認識できないとValueErrorが出ます。
おいおい座標取得と人数を数えるの関係ないじゃ無いか!!!
っと言う前に下を見てください。
どうやって人数を数えるのか?
もうすでに勘のいい人はわかると思いますが、実行結果を見ると リスト[ ] の中の タプル型の( ) の中に
一人の顔の座標が入っています。つまりlen関数でリストの長さを調べれば、写真の中の人数を数えられます!
人数を出力
print(f'画像の中に{len(face_locations)}人います')
これでOK!
解説終了!!!!!
コードを動かしてみる
画像の中に2人います
こんな感じで出力されます。
最初に説明したように赤ちゃんの顔は認識してないので2人と出力されます。
結構簡単だった
たった4行で画像から顔の座標撮って人数を数えられるface_recognitionすごいですよね
インストールが鬼畜すぎるだけで入れて使ってみると結構楽しいです。
これからもface_recognitionを使ったいろんな記事を書いていきたいと思います!!!
使用したURL