/mediapipe-python-sample

MediaPipeのPythonパッケージのサンプルです。2021/06/04時点でPython実装のある7機能(Hands、Pose、Face Mesh、Holistic、Face Detection、Objectron、Selfie Segmentation)について用意しています。

Primary LanguagePythonApache License 2.0Apache-2.0

mediapipe-python-sample

MediaPipeのPythonパッケージのサンプルです。
2021/06/04時点でPython実装のある以下7機能について用意しています。

Requirement

  • mediapipe 0.8.5 or later
  • OpenCV 3.4.2 or later

mediapipeはpipでインストールできます。

pip install mediapipe

Demo

デモの実行方法は以下です。

Face Mesh

python sample_facemesh.py
  • --device
    カメラデバイス番号の指定
    デフォルト:0
  • --width
    カメラキャプチャ時の横幅
    デフォルト:960
  • --height
    カメラキャプチャ時の縦幅
    デフォルト:540
  • --max_num_hands
    最大手検出数
    デフォルト:1
  • --min_detection_confidence
    検出信頼値の閾値
    デフォルト:0.5
  • --min_tracking_confidence
    トラッキング信頼値の閾値
    デフォルト:0.5
  • --use_brect
    外接矩形を描画するか否か
    デフォルト:指定なし

Hands

python sample_hand.py
  • --device
    カメラデバイス番号の指定
    デフォルト:0
  • --width
    カメラキャプチャ時の横幅
    デフォルト:960
  • --height
    カメラキャプチャ時の縦幅
    デフォルト:540
  • --max_num_faces
    最大顔検出数
    デフォルト:1
  • --min_detection_confidence
    検出信頼値の閾値
    デフォルト:0.7
  • --min_tracking_confidence
    トラッキング信頼値の閾値
    デフォルト:0.5
  • --use_brect
    外接矩形を描画するか否か
    デフォルト:指定なし

Pose

python sample_pose.py
  • --device
    カメラデバイス番号の指定
    デフォルト:0
  • --width
    カメラキャプチャ時の横幅
    デフォルト:960
  • --height
    カメラキャプチャ時の縦幅
    デフォルト:540
  • --model_complexity
    モデルの複雑度(0:Lite 1:Full 2:Heavy)
    ※性能差はPose Estimation Qualityを参照ください
    デフォルト:1
  • --min_detection_confidence
    検出信頼値の閾値
    デフォルト:0.5
  • --min_tracking_confidence
    トラッキング信頼値の閾値
    デフォルト:0.5
  • --use_brect
    外接矩形を描画するか否か
    デフォルト:指定なし

Holistic

python sample_holistic.py
  • --device
    カメラデバイス番号の指定
    デフォルト:0
  • --width
    カメラキャプチャ時の横幅
    デフォルト:960
  • --height
    カメラキャプチャ時の縦幅
    デフォルト:540
  • --model_complexity
    モデルの複雑度(0:Lite 1:Full 2:Heavy)
    ※性能差はPose Estimation Qualityを参照ください
    デフォルト:1
  • --min_detection_confidence
    検出信頼値の閾値
    デフォルト:0.5
  • --min_tracking_confidence
    トラッキング信頼値の閾値
    デフォルト:0.5
  • --use_brect
    外接矩形を描画するか否か
    デフォルト:指定なし

Face Detection

python sample_facedetection.py
  • --device
    カメラデバイス番号の指定
    デフォルト:0
  • --width
    カメラキャプチャ時の横幅
    デフォルト:960
  • --height
    カメラキャプチャ時の縦幅
    デフォルト:540
  • --min_detection_confidence
    検出信頼値の閾値
    デフォルト:0.5

Objectron

python sample_objectron.py
  • --device
    カメラデバイス番号の指定
    デフォルト:0
  • --width
    カメラキャプチャ時の横幅
    デフォルト:960
  • --height
    カメラキャプチャ時の縦幅
    デフォルト:540
  • --static_image_mode
    静止画像モード ※トラッキング無し
    デフォルト:指定なし
  • --min_detection_confidence
    検出信頼値の閾値
    デフォルト:0.5
  • --min_tracking_confidence
    トラッキング信頼値の閾値
    デフォルト:0.99
  • --model_name
    検出対象(20201/03/03時点:'Shoe', 'Chair', 'Cup', 'Camera'の4種類)
    デフォルト:Cup

Selfie Segmentation

python sample_selfie_segmentation
  • --device
    カメラデバイス番号の指定
    デフォルト:0
  • --width
    カメラキャプチャ時の横幅
    デフォルト:960
  • --height
    カメラキャプチャ時の縦幅
    デフォルト:540
  • --model_selection
    モデル種類指定
    0:Generalモデル(256x256x1 出力)
    1:Landscapeモデル(144x256x1 出力)
    デフォルト:0
  • --score_th
    スコア閾値(閾値以上:人間、閾値未満:背景)
    デフォルト:0.1
  • --bg_path
    背景画像格納パス ※未指定時はグリーンバック
    デフォルト:None

For Raspberry Pi

以下のRaspberry Pi向けビルドを利用することで、Raspberry Pi上で本サンプルを試すことが出来ます。

ToDo

  • Holisticのサンプル追加 (mediapipe 0.8.1)
  • Poseのz座標表示を追加 (mediapipe 0.8.3)
  • Face Detectionのサンプル追加 (mediapipe 0.8.3)
  • Objectronのサンプル追加 (mediapipe 0.8.3)

Reference

Author

高橋かずひと(https://twitter.com/KzhtTkhs)

License

mediapipe-python-sample is under Apache-2.0 License.

また、女性の画像、および背景画像はフリー素材ぱくたそ様の写真を利用しています。