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

Py-Featで表情認識
◆ Live配信スケジュール ◆
サイオステクノロジーでは、Microsoft MVPの武井による「わかりみの深いシリーズ」など、定期的なLive配信を行っています。
⇒ 詳細スケジュールはこちらから
⇒ 見逃してしまった方はYoutubeチャンネルをご覧ください
VSCode Dev Containersで楽々開発環境構築祭り〜Python/Reactなどなど〜
Visual Studio Codeの拡張機能であるDev Containersを使ってReactとかPythonとかSpring Bootとかの開発環境をラクチンで構築する方法を紹介するイベントです。
https://tech-lab.connpass.com/event/311864/

今回は表情認識のライブラリである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.


*


質問はこちら 閉じる