このページでは、Python アプリケーションで MediaPipe Tasks を使用するための開発環境を設定する方法について説明します。
サポートされているプラットフォームとバージョン
MediaPipe Tasks でアプリケーションをビルドするには、次の開発環境リソースが必要です。
- OS:
- デスクトップ: Windows、Mac、Linux
- IoT: Raspberry OS 64 ビット
- Python: バージョン 3.9 ~ 3.12
- PIP: バージョン 20.3 以降
デベロッパー環境の設定
Python アプリケーションで MediaPipe タスクを実行する前に、MediaPipe パッケージをインストールします。
$ python -m pip install mediapipe
パッケージをインストールしたら、開発プロジェクトにインポートします。
import mediapipe as mp
MediaPipe Tasks の依存関係
MediaPipe Tasks には、ビジョン、テキスト、音声用の 3 つの事前ビルド済みライブラリが用意されています。 アプリで使用する MediaPipe Task に応じて、ビジョン、テキスト、音声のライブラリを開発プロジェクトにインポートします。
ビジョンタスク
MediaPipe Tasks ビジョン モジュールには、画像または動画の入力を処理するタスクが含まれています。MediaPipe Tasks ビジョン ライブラリをインポートするには、次の依存関係を開発プロジェクトにインポートします。
from mediapipe.tasks.python import vision
テキストタスク
MediaPipe Tasks テキスト モジュールには、文字列入力を処理するタスクが含まれています。MediaPipe Tasks テキスト ライブラリをインポートするには、次の依存関係を開発プロジェクトにインポートします。
from mediapipe.tasks.python import text
音声タスク
MediaPipe Tasks 音声モジュールには、音声入力を処理するタスクが含まれています。MediaPipe Tasks 音声ライブラリをインポートするには、次の依存関係を開発プロジェクトにインポートします。
from mediapipe.tasks.python import audio
BaseOptions の構成
BaseOptions を使用すると、MediaPipe Task API の一般的な構成が可能になります。
| オプション名 | 説明 | 有効な値 |
|---|---|---|
model_asset_buffer |
モデル アセット ファイルの内容。 | モデル コンテンツ(バイト文字列) |
model_asset_path |
開いてメモリにマッピングするモデル アセットのパス。 | ファイルパス(文字列) |
PyInstaller を使用した Python Tasks アプリのパッケージ化
PyInstaller で Python Tasks アプリをパッケージ化する場合、.task バンドルなどのモデルファイルは自動的に含まれません。アプリで BaseOptions(model_asset_path=...) を使用する場合は、モデルファイルを PyInstaller バンドルに含めて、実行時にそのパスを解決します。
たとえば、PyInstaller の sys._MEIPASS ディレクトリを確認するヘルパーを使用します。
import os
import sys
def resource_path(relative_path: str) -> str:
base_path = getattr(sys, "_MEIPASS", os.path.abspath("."))
return os.path.join(base_path, relative_path)
次に、解決したモデルパスを BaseOptions に渡します。
from mediapipe.tasks import python
from mediapipe.tasks.python import vision
model_path = resource_path("pose_landmarker.task")
base_options = python.BaseOptions(model_asset_path=model_path)
options = vision.PoseLandmarkerOptions(base_options=base_options)
pose_landmarker = vision.PoseLandmarker.create_from_options(options)
PyInstaller でビルドするときに、モデルファイルをバンドルして MediaPipe パッケージ ファイルを収集します。
pyinstaller app.py \
--add-data "pose_landmarker.task:." \
--collect-all mediapipe \
--hidden-import mediapipe.tasks.c
macOS または Linux では、--add-data セパレータは : です。Windows では、; を使用します。macOS デスクトップ アプリの場合は、--windowed を追加して .app バンドルを作成します。
トラブルシューティング
MediaPipe に関する技術的な質問については、 ディスカッション グループまたは Stack Overflowにアクセスして、 コミュニティからサポートを受けてください。バグの報告または機能リクエストを行う場合は、 GitHub で問題を報告します。
Python 開発環境の設定については、 Python デベロッパー ガイドをご覧ください。