MediaPipe × Matplotlib × Streamlit|CSV出力も対応しています。手の推定の時(https://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人まで同時検出対応(サイドバーで選択) |
| 設定変更 | 検出精度・追跡精度をスライダーで調整可能 |
使い方ステップ
- 画像または動画ファイルを選択(拡張子
.jpg,.png,.mp4,.aviに対応) - 画面右側のサイドバーで以下を設定:
- 検出する顔の数(1〜4人)
- 検出信頼度(低いほど検出しやすくなるが精度は下がる)
- 追跡信頼度(精度に影響)
- 「▶ メッシュを描画(mpl)」ボタンをクリック
顔が検出されると、ランドマークメッシュがMatplotlibで描画されます。 - 「📥 CSV ダウンロード」ボタンで座標を保存
データ分析や後処理用に、ランドマークの座標(ID, x, y)をCSV形式で取得できます。
※投入する画像や動画に占める顔の大きさが小さい場合には顔として認識しない場合が多いです。画面の1/3くらいの画角で上半身が映っていると良いと思います。
注意点・ヒント
- 顔が検出されない場合は、明るく、正面に写った顔の画像を使用してください。
- 動画は最初の1フレームのみを使用して顔検出を行います。
- ブラウザ上で動作するため、カメラやGUI操作は不要です。
- Webカメラには非対応です(ローカルアプリでは使用可能)。
- 投入する動画ファイルや画像ファイル名は英語表記にしてください。
出力されるCSVの構造
| landmark_id | x | y |
|---|---|---|
| 0 | 154.32 | 223.87 |
| 1 | 160.18 | 221.40 |
| … | … | … |
landmark_id: MediaPipeのランドマーク番号(0〜467)x,y: 画像内でのピクセル座標(原寸にスケーリング済み)

画像の推定結果を試しに出してみました。きれいに映って入ればこのようにメッシュとして推定することが可能です。
このアプリが向いている用途
- 顔特徴点の可視化・研究
- 表情解析や顔ベースの機械学習前処理
- 顔検出の体験教材・授業素材
- モデルデータ用アノテーションの下処理
まとめ
このアプリを使えば、画像や動画から手軽に顔の構造を数値化・視覚化できます。StreamlitによってWeb上で動作し、コード不要で分析が可能です。
「まず1枚画像を試す」だけでも、顔検出技術の威力を体験できます。ぜひ活用してみてください!


コメント
初めまして。
コメント失礼します。
大学四年生の来栖廉弥と申します。
現在、顔の特徴量店抽出を用いた研究をしておりまして、こちらのアプリが非常に研究との親和性が高いと感じました。
差し出がましいお願いではあるのですが、こちらのアプリを使用できるようにしてもらうことは可能でしょうか。
ご検討のほどよろしくお願いいたします。
こちらはすべてライセンスフリーのものでやっているので問題ございません。また研究となると論文の方法やアルゴリズムを記載する際に出典などを記載する必要があるかと思います。その際にはmediapipeで検索することで関連論文を見つけることができるかと思います。
ご返信ありがとうございます。
ぜひとも使用させていただきたいと思っております。
しかしながら、アプリのURLにとんだところ以下のようなエラーが出てしまいます。
対処していただくことは可能でしょうか。
お忙しいところ恐縮ですが、よろしくお願いいたします。
「ImportError: This app has encountered an error. The original error message is redacted to prevent data leaks. Full error details have been recorded in the logs (if you’re on Streamlit Cloud, click on ‘Manage app’ in the lower right of your app).
Traceback:
File “/mount/src/streamlit-pose-app/streamlit_app.py”, line 8, in
import cv2」