今回は表情認識のライブラリであるPy-Featについてまとめました。
はじめに
はじめまして、新卒の山﨑です。先日、OSC広島というイベントに先輩方と作成したアプリ『とびっきりの笑顔で「きのこ」か「たけのこ」かはっきりさせようや!(仮)』を出展しました。詳しくは先輩が記事にしているので、こちらから読んでみてください。このアプリを作成する際に初めてPy-Featというライブラリを触ったので、その解説をしていきたいと思います。
Py-Featとは
Py-Featとは、アクション ユニット、感情(怒り、嫌悪、恐れ、幸せ、悲しみ、驚き、無感情)、顔のランドマークを簡単に検出できるPythonのライブラリです。
実際に使ってみる
それでは実際にPy-Featを使ってみたいと思います。
動作環境
OS:Windows10
Python:3.11.3
インストール
- venvを使って仮想環境を作成
python -m venv venv .\venv\Scripts\activate
- pip installを用いて仮想環境にインストール
今回はpy-featだけでなく、結果を出力するためにmatplotlibもインストールします。
pip install py-feat matplotlib
ここまででインストールは完了です。
コードの実行
それでは表情認識を試していきましょう。今回は公式が用意してくれた画像を使用します。コードは下のようになります。
from feat import Detector
from feat.utils.io import get_test_data_path
import matplotlib.pyplot as plt
import os
# 検出器の定義
detector = Detector()
# 公式が用意した画像のパスを取得
test_data_dir = get_test_data_path()
single_face_img_path = os.path.join(test_data_dir, "single_face.jpg")
# 画像を指定して表情認識を実行
# detector.detect_image('<画像ファイルのパス>')
result = detector.detect_image(single_face_img_path)
# 結果を出力
result.plot_detections()
plt.show()
表情認識をちょっと試したいだけならコードはたったこれだけです。いくつかの引数を指定すれば、検出器の細かい設定もできますが、今回は省略したいと思います。
試しにサンプルの笑顔の画像を読み込ませてみると、右のグラフ「Emotions」で「happiness」なっており、期待通りの結果が得られていると思います。
まとめ
この記事ではPy-Featについて解説しました。とても簡単に表情認識ができるので、試してみたい方はぜひ参考にしてみて下さい。