わずか数行のコードを書くだけで顔認識のプログラムコードを書ける「face_recognition」。本記事では、顔の映った画像から顔の部分にマーキングするプログラムを書くことを通して、この有用なPythonライブラリの使い方を解説します。
ステップ1:ライブラリのインストール
まずはpipを使って、ライブラリをインストールします。
pip install face_recognition pillow
face_recognitionは、目的のライブラリであり、pillowは画像処理(マーキング)をするために必要なライブラリです。
ステップ2:顔認識に使う写真の準備
使用する画像を用意しましょう。本記事では以下の画像を使用します。ファイル名は、ここでは「group_pic.png」としました。
![face_recognitionに使う画像](https://2jigenha.com/wp-content/uploads/2024/03/image-24.webp)
用意した画像を、Pythonコードを書く階層と同じフォルダに格納します。
ステップ3:face_recognitionを使う
まず、face_recognitionを使うためのPythonコードを書きます。
import face_recognition
# 画像をロード
image = face_recognition.load_image_file('group_pic.png')
# 画像内の全ての顔の位置を検出
face_locations = face_recognition.face_locations(image)
これで顔認識ができました。変数「face_locations」に顔の位置の座標などが格納されています。驚くほど簡単ですね。しかしこれでは我々は何もわからないので、顔にマーキングするプログラムを書いていきましょう。
from PIL import Image, ImageDraw
# PILイメージオブジェクトを作成
pil_image = Image.fromarray(image)
# PILの描画ツールを使って描画用のオブジェクトを作成
draw = ImageDraw.Draw(pil_image)
# 検出された顔の位置に矩形を描画
for (top, right, bottom, left) in face_locations:
# PIL/ImageDrawを使用して顔の周りに矩形を描画
draw.rectangle(((left, top), (right, bottom)), outline=(255, 0, 0))
# 描画用のオブジェクトを破棄(保存された変更を確定)
del draw
# 結果の画像を表示
pil_image.show()
# 必要に応じて結果の画像を保存
pil_image.save('result_image.jpg')
以上のプログラムを実行すると、同じ階層のディレクトリに「result_image.jpg」と名前のついた次のような画像が保存されているはずです。
![face_recognitionによって顔認識マーキングされた画像](https://2jigenha.com/wp-content/uploads/2024/03/image-25.webp)
顔の部分に赤い正方形が配置され、顔認識がうまくいっていることがわかります。