face_recognition

【Python】顔認識ライブラリ face_recognition の使い方

わずか数行のコードを書くだけで顔認識のプログラムコードを書ける「face_recognition」。本記事では、顔の映った画像から顔の部分にマーキングするプログラムを書くことを通して、この有用なPythonライブラリの使い方を解説します。

ステップ1:ライブラリのインストール

まずはpipを使って、ライブラリをインストールします。

pip install face_recognition pillow

face_recognitionは、目的のライブラリであり、pillowは画像処理(マーキング)をするために必要なライブラリです。

ステップ2:顔認識に使う写真の準備

使用する画像を用意しましょう。本記事では以下の画像を使用します。ファイル名は、ここでは「group_pic.png」としました。

face_recognitionに使う画像

用意した画像を、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によって顔認識マーキングされた画像

顔の部分に赤い正方形が配置され、顔認識がうまくいっていることがわかります。

上部へスクロール