本人几乎找遍了互联网上绝大部分的关于mediapipe 的教程 !!!,但是最终还是没有编译成功,痛心疾首,但最后终于编译成功,因此想分享一下自己踩的坑,希望不要有人再踩上
Google 的姿态识别技术 mediapipe 使用效果不错,但是安装起来总是会遇到各种问题,因此本人在此讲自己安装过程中遇到的各种困难都讲解出来,希望对后来的人有所帮助
在 windows 上安装mediapipe
在 windows 上安装 mediapipe 相对比较简单,只需要用 pip 安装就好了 安装命令:
pip install mediapipe
基本上能完成安装
在 Linux 上安装 mediapipe
首先是官方教程: 点击进入官方安装界面
可以解决一部分的问题
但是一切的一切最好先使用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 也解决了问题,这个我没有去尝试。
(已经忘记在什么地方出现了这个问题了) 但是这是网络问题,多重复几次或者梯子问题解决应该就行了
最后:附上一些曾搜索过的有用的资料
|