【保存版】顔のランドマークを抽出&可視化するStreamlitアプリ

python

MediaPipe × Matplotlib × Streamlit|CSV出力も対応しています。手の推定の時(http://ktr-project.net/?p=164)と同様、このmediapipeのアプリが何に使えるかはわかりませんが、とりあえず座標を出力できるようにしました。

顔の変化が特徴として出る兆候があれば、今後使えるかもしれませんね。


アプリの目的

このアプリは、画像または動画ファイルの中から顔を自動検出し、
MediaPipe Face Mesh により 顔のランドマーク(目・鼻・輪郭などの座標)を抽出&可視化します。

さらに、結果を CSV形式でダウンロード できるため、顔分析や機械学習にも活用できます。


アプリの機能一覧

アプリのURLはこちらです(https://facetrackusemediapipe-akv5wappybrmppdwfvwogcz.streamlit.app/)。ランドマークがうまく映らない場合には、設定の変更を試してみてください。

実際のアプリの中身のコードはgithubを参照してください(https://github.com/43taro108/face_track_use_mediapipe)。

機能説明
顔検出画像・動画の中から顔を自動で検出(複数顔対応)
ランドマーク抽出468個の顔ランドマークを座標として取得
Matplotlib描画顔の形状を2Dプロットでわかりやすく可視化
CSV出力ランドマークのID・X座標・Y座標をダウンロード可能
マルチフェイス対応最大4人まで同時検出対応(サイドバーで選択)
設定変更検出精度・追跡精度をスライダーで調整可能

使い方ステップ

  1. 画像または動画ファイルを選択(拡張子 .jpg, .png, .mp4, .avi に対応)
  2. 画面右側のサイドバーで以下を設定:
    • 検出する顔の数(1〜4人)
    • 検出信頼度(低いほど検出しやすくなるが精度は下がる)
    • 追跡信頼度(精度に影響)
  3. 「▶ メッシュを描画(mpl)」ボタンをクリック
    顔が検出されると、ランドマークメッシュがMatplotlibで描画されます。
  4. 「📥 CSV ダウンロード」ボタンで座標を保存
    データ分析や後処理用に、ランドマークの座標(ID, x, y)をCSV形式で取得できます。

※投入する画像や動画に占める顔の大きさが小さい場合には顔として認識しない場合が多いです。画面の1/3くらいの画角で上半身が映っていると良いと思います。


注意点・ヒント

  • 顔が検出されない場合は、明るく、正面に写った顔の画像を使用してください。
  • 動画は最初の1フレームのみを使用して顔検出を行います。
  • ブラウザ上で動作するため、カメラやGUI操作は不要です。
  • Webカメラには非対応です(ローカルアプリでは使用可能)。
  • 投入する動画ファイルや画像ファイル名は英語表記にしてください

出力されるCSVの構造

landmark_idxy
0154.32223.87
1160.18221.40
  • landmark_id: MediaPipeのランドマーク番号(0〜467)
  • x, y: 画像内でのピクセル座標(原寸にスケーリング済み)

画像の推定結果を試しに出してみました。きれいに映って入ればこのようにメッシュとして推定することが可能です。


このアプリが向いている用途

  • 顔特徴点の可視化・研究
  • 表情解析や顔ベースの機械学習前処理
  • 顔検出の体験教材・授業素材
  • モデルデータ用アノテーションの下処理

まとめ

このアプリを使えば、画像や動画から手軽に顔の構造を数値化・視覚化できます。StreamlitによってWeb上で動作し、コード不要で分析が可能です。

「まず1枚画像を試す」だけでも、顔検出技術の威力を体験できます。ぜひ活用してみてください!

コメント

タイトルとURLをコピーしました