AIによる顔の感情認識

AI/ML

概要

本リポジトリは、ビデオやウェブカメラの映像から顔領域を検出し、その表情を分類して感情を推定するデモ・ユーティリティ群を提供します。OpenCV による顔検出とディープラーニングによる表情分類を組み合わせ、リアルタイム推論や保存済み動画の解析が可能です。元の petercunha/Emotion プロジェクトをベースに、TensorFlow 2.x 互換化(from tensorflow.keras へ移行)、pandas の deprecated API 対応(as_matrix() → values)、依存パッケージのバージョン明示、詳しい環境構築手順、そして環境整備を自動でチェックするスクリプト(setup_environment.py)など実用面の改善が盛り込まれています。実行環境の互換性を重視した改修により、モダンな Python/TensorFlow 環境で動作させやすくなっています。

GitHub

リポジトリの統計情報

  • スター数: 1
  • フォーク数: 0
  • ウォッチャー数: 1
  • コミット数: 2
  • ファイル数: 9
  • メインの言語: Python

主な特徴

  • TensorFlow 2.x と互換となるように Keras API を移行済み(from tensorflow.keras)
  • pandas の最新仕様に対応し古い API 呼び出しを修正
  • 環境構築ガイドと自動検証スクリプトで実行環境の問題を軽減
  • OpenCV と深層学習モデルを組み合わせた顔・感情認識のデモ実装

技術的なポイント

このプロジェクトの技術的要点は「互換性の改善」と「実行可能な環境構築サポート」にあります。オリジナル実装は旧来の Keras API や pandas の古いメソッドに依存しており、現行の TensorFlow やライブラリでは動作しないことが多くありました。本リポジトリでは、Keras の import を from tensorflow.keras に統一することで TensorFlow 2.x 環境下でもモデルの定義・読み込み・推論が可能です。これはモデルのシリアライズ形式やレイヤー互換性を保ちながら、最新環境でトレーニング済みモデルを利用・再利用する上で重要です。

また、データ加工周りでは pandas.DataFrame.as_matrix() の deprecated 問題を values に置き換え、NumPy 互換の配列取得を安定化させています。これにより、学習データや特徴量抽出処理が最新 pandas でも正しく動作します。

実行環境面では requirements.txt による依存明示に加え、setup_environment.py の自動チェックでインストール済みライブラリのバージョン確認や不足パッケージの案内を行い、ユーザーが手動で環境調整する手間を減らします。OpenCV を使った顔検出パイプラインは、フレーム取得→顔矩形検出→顔領域の前処理(リサイズ・正規化)→分類モデルへ入力→感情ラベルの出力、という標準的な流れを採っています。分類モデルは CNN ベースのアプローチを想定しており、推論時は軽量化(画像サイズ低減やバッチ処理)でリアルタイム性能を確保します。

デモディレクトリやスクリプトは、ウェブカメラ入力/動画ファイル入力双方に対応したサンプルを含み、モデルの入出力形式やラベルマッピング、可視化(矩形+ラベル描画)方法が示されています。総じて、研究用のオリジナル実装を実運用しやすく整備したブリッジ的なリポジトリです。

プロジェクトの構成

主要なファイルとディレクトリ:

  • 25.9.1’: file
  • LICENSE: file
  • README.md: file
  • demo: dir
  • emotions.py: file

…他 4 ファイル

(demo ディレクトリにはウェブカメラや動画ファイルを使った実行サンプルが含まれている想定で、emotions.py は顔の検出と感情推定を行う主要なスクリプトです。setup_environment.py で環境チェック・依存関係の整備を補助します。)

使い方(概略)

  1. Python 環境を用意し、requirements.txt に記載のパッケージをインストール。
  2. setup_environment.py を実行して環境チェックと不足パッケージの案内を確認。
  3. モデルファイル(事前学習済み weights)が必要な場合は README に従い配置。
  4. demo 内スクリプトを実行してウェブカメラまたは動画ファイルから感情推定を試す。

注意点として、推論精度はモデルの学習データやラベルセットに依存し、照明やカメラ角度などの条件で変動します。プロダクション利用時は追加の前処理(照度補正、顔向き補正)やモデル再学習、プライバシー配慮が必要です。

まとめ

オリジナル実装を最新環境へ移植し、実行性を高めた感情認識の実用的なブリッジ実装です。

リポジトリ情報:

READMEの抜粋:

감정 인식 (Emotion Recognition)

이 소프트웨어는 비디오나 웹캠 피드에서 사람의 얼굴과 해당하는 감정을 인식합니다. OpenCV와 딥러닝으로 구동됩니다.

프로젝트 소개

이 프로젝트는 petercunha/Emotion 원본 저장소를 기반으로 하여 환경 설정 및 호환성 문제를 해결한 버전입니다。

주요 개선사항

  • TensorFlow 2.x 호환성: from kerasfrom tensorflow.keras 변경
  • pandas 최신 버전 지원: deprecated as_matrix()values 변경
  • 정확한 패키지 버전 명시: 호환성 문제 방지를 위한 버전 범위 설정
  • 상세한 환경 설정 가이드: 실제 환경 구축 경험을 바탕으로 작성
  • 자동 환경 검증 스크립트: setup_environment.py