Py-Featを使って表情認識をやってみた

Py-Featで表情認識
◆ Live配信スケジュール ◆
サイオステクノロジーでは、Microsoft MVPの武井による「わかりみの深いシリーズ」など、定期的なLive配信を行っています。
⇒ 詳細スケジュールはこちらから
⇒ 見逃してしまった方はYoutubeチャンネルをご覧ください
【5/21開催】Azure OpenAI ServiceによるRAG実装ガイドを公開しました
生成AIを活用したユースケースで最も一番熱いと言われているRAGの実装ガイドを公開しました。そのガイドの紹介をおこなうイベントです!!
https://tech-lab.connpass.com/event/315703/

今回は表情認識のライブラリであるPy-Featについてまとめました。

はじめに

はじめまして、新卒の山﨑です。先日、OSC広島というイベントに先輩方と作成したアプリ『とびっきりの笑顔で「きのこ」か「たけのこ」かはっきりさせようや!(仮)』を出展しました。詳しくは先輩が記事にしているので、こちらから読んでみてください。このアプリを作成する際に初めてPy-Featというライブラリを触ったので、その解説をしていきたいと思います。

Py-Featとは

Py-Featとは、アクション ユニット、感情(怒り、嫌悪、恐れ、幸せ、悲しみ、驚き、無感情)、顔のランドマークを簡単に検出できるPythonのライブラリです。

実際に使ってみる

それでは実際にPy-Featを使ってみたいと思います。

動作環境

OS:Windows10

Python:3.11.3

インストール

  1. venvを使って仮想環境を作成
    python -m venv venv
    .\venv\Scripts\activate
  2. 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について解説しました。とても簡単に表情認識ができるので、試してみたい方はぜひ参考にしてみて下さい。

参考文献

Py-Feat公式ドキュメント

アバター画像
About やまさき 1 Article
佐賀県出身の田舎者。大学ではPythonを使っていましたが、最近はTypeScriptをよく触っています

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

1人がこの投稿は役に立ったと言っています。


ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!



>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!

Be the first to comment

Leave a Reply

Your email address will not be published.


*


質問はこちら 閉じる