本页向您介绍如何设置开发环境,以便在 Python 应用中使用 MediaPipe Tasks。
支持的平台和版本
使用 MediaPipe Tasks 构建应用需要以下开发环境资源:
- 操作系统:
- 桌面设备:Windows、Mac、Linux
- 物联网: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 为视觉、文本和音频提供了三个预构建的库。根据应用使用的 MediaPipe 任务,将视觉、文本或音频库导入到您的开发项目中。
视觉任务
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,以获取 社区的支持。要报告 bug 或提出功能请求, 请在 GitHub 上提交问题。
如需有关设置 Python 开发环境的帮助,请访问 Python 开发者指南。