🌊
MediaPipe Pose をローカルのPythonで使う[備忘録]
はじめに
MediaPipeを用いたポーズ推定を,ローカルでPythonを用いて行う方法.
下記ページのコードを使用しています.
私が使用した環境やアプリケーションは以下の通りです.
・windows
・コマンドプロンプト
・python3.10.11
0.Pythonの保存場所の確認
- コマンドプロンプトを起動する.
以下,全てのコードはコマンドプロンプトにて実行します.
- Pythonの保存場所を確認
where python
上記のコードを実行すると,
C:\xxx\xxx\xxx\Python3**\python.exe
このようなパスが表示されるので,『C:xxx\xxx\xxx\Python3**』の部分をメモしておく.パスが複数表示される場合があるが,『Python3**』が含まれる方を選択すること.このパスは後で使用します.
1.Pythonの仮想環境の作成
以下のコードを実行する.
py -m venv .(任意の名前) #仮想環境の作成
.(任意の名前)\Scripts\activate.bat #仮想環境の起動
私が実行したコードは以下の通り.
仮想環境を起動すると,
このようにコマンドプロンプトの画面が切り替わる.
2.MediaPipe Pythonパッケージのインストール
-
https://pypi.org/project/mediapipe/ からパッケージをダウンロード
「ファイルをダウンロード」をクリック.
赤い丸印で示したパッケージをクリックすると,パッケージのダウンロードが始まる.『cp3**』はPythonのバージョンと対応しており,Python3.10xxを使用しているなら『cp310』のものを選べばよい.
- ダウンロードしたパッケージを移動させる
1.でダウンロードしたパッケージを上記の『C:\xxx\xxx\xxx\Python3**』のフォルダへ移動させる.
- パッケージのインストール
まず以下のコードを実行する.
py -m pip install (パッケージの名前).whl
次にpythonを起動する.
py
最後に,必要なモジュールをインポートし,Poseのソリューションを呼び出す.
import mediapipe as mp
import cv2
import numpy as np
mp_drawing = mp.solutions.drawing_utils
mp_drawing_styles = mp.solutions.drawing_styles
mp_pose = mp.solutions.pose
3.MediaPipe Pose Solutionの実行
以下のコードを実行する.
※注意
ポーズ推定を行いたいローカルファイル上の動画のパスを指定する際は,これまでとは違ってファイルの区切りのバックスラッシュを2つにするここと.
cap = cv2.VideoCapture("ローカルファイル上の動画のパス")
with mp_pose.Pose(
min_detection_confidence=0.5,
min_tracking_confidence=0.5) as pose:
while cap.isOpened():
success, image = cap.read()
if not success:
print("Ignoring empty camera frame.")
break
image.flags.writeable = False
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
results = pose.process(image)
image.flags.writeable = True
image = cv2.cvtColor(image, cv2.COLOR_RGB2BGR)
mp_drawing.draw_landmarks(
image,
results.pose_landmarks,
mp_pose.POSE_CONNECTIONS,
landmark_drawing_spec=mp_drawing_styles.get_default_pose_landmarks_style())
cv2.imshow('MediaPipe Pose', cv2.flip(image, 1))
if cv2.waitKey(5) & 0xFF == 27:
break
終える際は Ctrl+C を押した後,コマンドプロンプトにて
quit()
を実行すればよい.
Discussion