Python の設定ガイド

このページでは、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 デベロッパー ガイドをご覧ください。