Python の設定ガイド

このページでは、Python アプリケーションで MediaPipe Tasks を使用するための開発環境を設定する方法について説明します。

サポートされているプラットフォームとバージョン

MediaPipe Tasks を使用してアプリケーションを構築するには、次の開発環境リソースが必要です。

  • OS:
    • パソコン: Windows、Mac、Linux
    • IoT: Raspberry OS 64 ビット
  • Python: バージョン 3.9 以降をサポート
  • PIP: バージョン 20.3 以降

開発環境のセットアップ

Python アプリケーションで MediaPipe タスクを実行する前に、MediaPipe パッケージをインストールします。

$ python -m pip install mediapipe

パッケージをインストールしたら、開発プロジェクトにインポートします。

import mediapipe as mp

MediaPipe Tasks の依存関係

MediaPipe Tasks は、ビジョン、テキスト、音声用の 3 つの事前構築済みライブラリを提供します。アプリで使用する MediaPipe タスクに応じて、ビジョン、テキスト、音声のライブラリを開発プロジェクトにインポートします。

ビジョンタスク

MediaPipe Tasks vision モジュールには、画像または動画の入力を処理するタスクが含まれています。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 デベロッパー ガイドをご覧ください。