ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

MediaPipe 从 0 到 1:跑通人脸、手势、物体检测的跨平台 AI 流水线

MediaPipe 从 0 到 1:跑通人脸、手势、物体检测的跨平台 AI 流水线 MediaPipe 从 0 到 1跑通人脸、手势、物体检测的跨平台 AI 流水线【免费下载链接】mediapipeCross-platform, customizable ML solutions for live and streaming media.项目地址: https://gitcode.com/GitHub_Trending/med/mediapipe做 App 时想让摄像头画面里实时飘出人脸框、手部关键点或者在浏览器里直接框出物体卡在环境怎么搭、模型怎么跑这一步很常见。MediaPipe 就是干这事的一套 C/Python/Web 通用的视觉 AI 框架预训练模型开箱即用推理全部在设备端完成数据不出本地。这篇按你的目标平台给依赖和命令最后用一个最小例子验证环境是通的卡住的地方也标了现象和解法。它能干什么输入 → 输出先对齐少背概念直接看三组输入输出对号入座判断它是不是你要的东西一张人像照片→ 人脸框 眼、鼻、嘴五个关键点的坐标每个点带置信度见下图仓库测试用例的期望输出。一段视频的每一帧→ 多个带类别和置信度的检测框人物、手机、键盘都能框出来。一张手势照片→ 手势类别这是 Model Maker 手势识别器自带的测试样本四这个手势类别。除了上面的视觉任务仓库里还有姿态估计pose、人脸网格face_mesh、虹膜追踪iris、整体追踪holistic、视频自动构图autoflip等模块全在 mediapipe/modules/ 下每个模块带自己的 README 和测试图。搭环境按目标平台选路线先 clone 仓库后面所有路线都用它git clone https://gitcode.com/GitHub_Trending/med/mediapipe cd mediapipe桌面端Linux / macOSBazel OpenCV桌面端走源码编译三个依赖缺一不可Bazelisk构建、OpenCV图像处理FFmpeg 随 OpenCV 的 video 模块一起装、Python 3Bazel 配置阶段要调。Ubuntu/Debian 上装 OpenCV 开发包sudo apt-get install -y \ libopencv-core-dev \ libopencv-highgui-dev \ libopencv-calib3d-dev \ libopencv-features2d-dev \ libopencv-imgproc-dev \ libopencv-video-dev仓库的 WORKSPACE 和 third_party/opencv_linux.BUILD 默认按 OpenCV 2/3 配好了apt 装的版本直接能用。如果系统装的是 OpenCV 4比如 Ubuntu 21.04两个做法跑仓库根目录的 setup_opencv.sh 自动处理或者手动改opencv_linux.BUILD里的头文件路径加opencv4/一层。macOS 的坑是版本Homebrew 现在默认给 OpenCV 4.x而框架对 3.x 的兼容性最稳所以装的时候要用brew install opencv3装完把 glog 卸掉brew uninstall --ignore-dependencies glog避开依赖冲突。Python 脚本用户pip 一条命令不碰 C 的话不用走 Bazel直接用官方 PyPI 包pip install mediapipe注意 Python 包只发64 位Linux / macOS / Windows 的 wheelPython 版本在 3.9~3.12 范围内仓库里requirements_lock_3_10.txt到requirements_lock_3_12.txt可以对照。这条路线装完就能import mediapipe调 Tasks API适合先验证算法再上原生。Web 与移动端WebMediaPipe 有独立的 JS/TS 包仓库 mediapipe/tasks/web/ 是 Web 端源码和测试浏览器里加载 .tflite 模型即可跑不用编译。Android/iOS桌面机器上交叉编译出 APK仓库根目录有 build_android_examples.sh、build_ios_examples.shAndroid 工具链由 setup_android_sdk_and_ndk.sh 一键装好示例 App 在 mediapipe/examples/android/ 和 mediapipe/examples/ios/。验证环境跑通 hello_world 才算数桌面端装完后用 mediapipe/examples/desktop/hello_world/ 这个最小图验证——它就是一张输入一串 Packet → 原样输出的计算图能跑通说明 Bazel、OpenCV、编译链全 OK# CPU 模式没有 GPU 加速需求时都加 --define MEDIAPIPE_DISABLE_GPU1 export GLOG_logtostderr1 bazel run --define MEDIAPIPE_DISABLE_GPU1 \ mediapipe/examples/desktop/hello_world:hello_world成功的样子终端连续打出 10 行Hello World!计算图转了 10 圈每圈输出一次。只看到构建日志没有这 10 行就是没跑通。Linux 上要用 GPU 跑的话先把 mesa/EGL 驱动装上sudo apt-get install mesa-common-dev libegl1-mesa-dev libgles2-mesa-dev然后把MEDIAPIPE_DISABLE_GPU1换成--copt -DMESA_EGL_NO_X11_HEADERS --copt -DEGL_NO_X11。macOS 桌面端目前不支持 GPU直接按 CPU 模式来。常见卡点现象 → 原因 → 解法现象ERROR ... get_python_bin(repository_ctx) ... Repository command failedBazel 配置 TensorFlow 依赖时找不到本机 Python 解释器。解法是显式指给它bazel build -c opt --define MEDIAPIPE_DISABLE_GPU1 \ --action_env PYTHON_BIN_PATH$(which python3) \ mediapipe/examples/desktop/hello_world现象链接阶段一堆undefined reference to cv::...OpenCV 没被正确接进构建要么装的是 OpenCV 4 但opencv_linux.BUILD还按 2/3 的路径找头文件要么 OpenCV 装在非默认目录比如/usr/local但WORKSPACE里的new_local_repository路径没同步改。两处对齐即可完整对照见 docs/getting_started/install.md。现象Error downloading ... org_tensorflow之类的依赖拉取失败Bazel 首次构建要拉 TensorFlow 等一大批远程仓库网络不稳时中途断掉。设好代理--host_jvm_args -DsocksProxyHost...后跑bazel clean --expunge再来一遍偶尔是上游临时抽风等一会儿重试。现象gcc 6.3 / 7.3 上编译 TensorFlow 相关代码报错文档明确点名的已知问题换 gcc 8 或 9 即可。另外 WSL 下预编译的 OpenCV 不支持摄像头需要视频输入就换文件输入或者自己带 FFmpeg/GStreamer 重编 OpenCV。更完整的排错清单在 docs/getting_started/troubleshooting.md按错误信息原文检索很快。下一步从示例目录挑一个跑hello_world 通了之后别急着写业务先把现成 demo 跑起来找感觉桌面示例mediapipe/examples/desktop/ 下有人脸检测face_detection、手部追踪hand_tracking、物体检测object_detection、姿态pose_tracking、整体追踪holistic_tracking等 14 个目录每个目录一个 BUILDbazel run对应的 target 就能起摄像头 demo。计算图定义mediapipe/graphs/ 里全是 .pbtxt 图配置看懂一个 face_detection 的图基本就理解了 MediaPipe 的整套数据流方式Packet / Calculator / Graph 三个概念在 docs/framework_concepts/framework_concepts.md。Tasks API 源码跨平台的现成任务封装在 mediapipe/tasks/cc/、python/、java/、ios/、web/ 五套实现并排对照读一遍就知道同一模型在各端怎么接。自己训练/替换模型mediapipe/model_maker/ 提供手势识别、目标检测等任务的微调工具用上面那张手势测试图所属的 dataset 流程走一遍就能得到自己的 .tflite。框架文档偏旧主站已迁到 Google 开发者文档但仓库内 docs/ 的 framework_concepts 和 getting_started 几篇仍是理解计算图机制的最好入口。一句话收尾环境验证以 hello_world 连打 10 行为准示例跑以 demo 窗口里出检测框/关键点为准——两条线都通了再往自己业务里搬。【免费下载链接】mediapipeCross-platform, customizable ML solutions for live and streaming media.项目地址: https://gitcode.com/GitHub_Trending/med/mediapipe创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表