MediaPipe ARM aarch64 构建实战:两条路径把 mediapipe 装进你的设备
MediaPipe ARM aarch64 构建实战:两条路径把 mediapipe 装进你的设备
【免费下载链接】mediapipeCross-platform, customizable ML solutions for live and streaming media.项目地址: https://gitcode.com/GitHub_Trending/med/mediapipe
把 MediaPipe 部署到 ARM(aarch64)设备时,一条pip install mediapipe就会让你卡在门口:PyPI 上没有 aarch64 的 wheel,安装直接失败。这篇文章给出当前可行的两条路——社区预编译包和源码构建——目标是在 Jetson、树莓派等 aarch64 平台上装好 mediapipe 并跑通最小验证,全程只贴必要命令。
官方支持现状:PyPI 没有 aarch64 wheel
先说清楚事实,免得你在 pip 的报错里绕弯路。官方 Python 文档明确写了:MediaPipe PyPI 目前不提供 aarch64 的 Python wheel 文件,在 Nvidia Jetson、Raspberry Pi 这类 aarch64 Linux 系统上构建和使用,需要走专门途径(见 docs/getting_started/python.md 的 "Building MediaPipe Python Package" 一节)。
所以 ARM 用户的选项只有两个:
- 用社区维护的 aarch64 预编译版本,装完即用;
- 从源码构建自己的 mediapipe 包,可控但耗时。
下面分别展开。
路径一:社区维护的 mediapipe-python-aarch64
如果你只是想在 Jetson 或树莓派上把 mediapipe 跑起来、不打算改 C++ 源码,这条路径成本最低。社区项目mediapipe-python-aarch64提供了针对 ARM 架构优化的构建脚本和预编译包,专门覆盖 Jetson、Raspberry Pi 等设备的部署场景,省掉了本地编译 Bazel 工程的全部时间。
使用时的注意事项:
- 安装前确认包对应的 mediapipe 版本和你的 Python 版本匹配;
- 社区项目是第三方维护的,升级节奏跟官方不同,锁定版本后建议在业务里做回归验证。
路径二:mediapipe 源码构建
⚠️ 源码构建会本地编译 C++ 工程,耗时和依赖都比路径一重得多,但它不受第三方包版本限制,也适合你有本地修改的场景。
环境与前置工具:venv、Bazel、OpenCV
源码构建依赖 Bazel 作为构建系统、OpenCV 作为图像处理库,二者必须装对版本并正确配置,否则后面一步就会报错。Bazel 与 OpenCV 的安装和配置方法见 docs/getting_started/install.md。
Python 侧建议 3.6 以上版本,并强制使用虚拟环境隔离依赖:
python3 -m venv mp_env && source mp_env/bin/activate按系统安装系统依赖
Debian / Ubuntu 系统需要这几个包,cmake仅在你需要源码构建 OpenCV 时才装:
sudo apt install python3-dev sudo apt install python3-venv sudo apt install -y protobuf-compiler sudo apt install cmakemacOS 上对应安装:
brew install protobuf brew install cmake拉取仓库并安装 Python 依赖
克隆 mediapipe 源码并安装 requirements.txt 中列出的 Python 依赖(absl-py、numpy、opencv-contrib-python 等):
git clone https://gitcode.com/GitHub_Trending/med/mediapipe cd mediapipe pip3 install -r requirements.txt两种构建方式对比:setup.py install 与 bdist_wheel
构建入口都是仓库根目录的 setup.py,两种方式按需选择。
方式一:直接安装到当前环境。--link-opencv让构建直接链接已安装的 OpenCV 库,不重复编译:
python3 setup.py install --link-opencv方式二:构建 wheel 包。产物落在dist/目录,适合跨设备安装——在一台配置完整的机器上编译一次,把 wheel 拷到目标板子上pip install即可:
python3 setup.py bdist_wheel pip install dist/mediapipe-*.whl简单判断:单机使用选方式一;多台设备或想固定版本回滚选方式二。
验证安装:最小冒烟测试
先跑一段最小 import 测试,确认包能加载:
import mediapipe as mp print(mp.__version__) print("MediaPipe imported successfully")没有异常、版本号正常输出,说明 aarch64 编译产物是健康的。想进一步确认功能面,可以逐个 import solutions 里用到的模块做冒烟测试,按需覆盖这些能力:
- Face Detection(face_detection)
- Face Mesh(face_mesh)
- Hands
- Holistic
- Objectron
- Pose
- Selfie Segmentation
下一步清单
- 在 Jetson / 树莓派上先装路径一的社区包跑通业务,再评估是否需要源码构建;
- 关注 PyPI 上 mediapipe 新版本的发布说明,看 aarch64 wheel 是否已补上——一旦官方提供,源码路径可以直接退役;
- 走源码构建时,把
bdist_wheel产物按日期归档,版本升级整体换包,不做增量修补; - Jetson 上安装前核对 Python 版本与 CUDA 环境的匹配关系,避免 wheel 与运行时 Python 不一致;
- 需要深入自定义计算图时,继续读 docs/getting_started/python_framework.md 了解 Python framework。
参考资料
- 官方 Python 使用与构建文档:docs/getting_started/python.md
- Bazel / OpenCV 安装指南:docs/getting_started/install.md
- Python framework 进阶文档:docs/getting_started/python_framework.md
- 社区 aarch64 适配项目:mediapipe-python-aarch64(以项目名检索获取最新地址)
【免费下载链接】mediapipeCross-platform, customizable ML solutions for live and streaming media.项目地址: https://gitcode.com/GitHub_Trending/med/mediapipe
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
