本人几乎找遍了互联网上绝大部分的关于mediapipe 的教程 !!!,但是最终还是没有编译成功,痛心疾首,但最后终于编译成功,因此想分享一下自己踩的坑,希望不要有人再踩上

Google 的姿态识别技术 mediapipe 使用效果不错,但是安装起来总是会遇到各种问题,因此本人在此讲自己安装过程中遇到的各种困难都讲解出来,希望对后来的人有所帮助

在 windows 上安装mediapipe

在 windows 上安装 mediapipe 相对比较简单,只需要用 pip 安装就好了
安装命令:

pip install mediapipe

基本上能完成安装

在 Linux 上安装 mediapipe

首先是官方教程install
点击进入官方安装界面

可以解决一部分的问题

但是一切的一切最好先使用docker!!!
虽然 官方有 docker 的镜像,但是本人安装的时候在安装 mediapipe 的时候出现了问题,考虑到一些因素,因此最终还是放弃了,有兴趣的朋友可以尝试。

但是本人是在 jetson 上安装,mediapipe 没有提供aarch64的wheel文件,因此需要源码编译,mediapipe官方github解决方案 => jiuqiant/mediapipe_python_aarch64,官方是ubuntu 20.04,最终本人尝试了 ubuntu18.04 也能安装成功 python 库
可能按照解决方案能够完成安装,但是如果没有的话,因此继续

首先按照 官方的步骤开始:

  • 安装bazel (官方的编译器, arm64 上安装是真的烦!!!)
    1.1 首先推荐安装 bazel 4.0.0,本人在使用 bazel 3.7.2 编译的时候出现了版本问题的警告,可能这对最后的结果没有影响但是还是选择了 bazel 4.0.0
    安装可以参考这篇文章 bazel-3.1.0

    bazel 官方传送门
    安装完之后记得检查版本, 一般不会出太大的问题,(环境变量问题需要注意)

bazel version

1.2 按照官方教程,该安装的安装,该修改的修改,这里不再赘述。
这里主要提出一些本人遇到的问题,并提出自己的解决方案。
一般也是到 第7步 编译的时候问题才会显示出来

  • 问题1: return tensor 的问题
    如图所示:
    请添加图片描述

官方github issue 中的解决方案(可解决问题):
github issue 1733
↑↑↑↑↑ 想了解详细内容可以进入issue ↑↑↑↑↑
将那边的文章翻译过来就是:
将报错中的那个文件中的

return tensor;

改为

return absl::StatusOr<mediapipe::Tensor> ( mediapipe::Tensor(std::move(tensor)));

本人尝试的是以上的方法(有时候还需要改另一个文件,这取决于你的报错是怎么样的,当时我是改了两个文件的),当然 issue 中还有一种办法是将 gcc7 升级为 gcc8 也解决了问题,这个我没有去尝试。

  • 问题2 Httpconnect 问题 !!!

(已经忘记在什么地方出现了这个问题了)
但是这是网络问题,多重复几次或者梯子问题解决应该就行了
httpconnect

最后:附上一些曾搜索过的有用的资料

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐