IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Win10和Jetson Nano环境下安装Mediapipe-python -> 正文阅读

[系统运维]Win10和Jetson Nano环境下安装Mediapipe-python

最近因一个项目需要用到google的mediapipe包进行手部识别,效果不错便想将其移植到jetson nano的ubuntu系统上。坑不少,在这里记录一下过程。

一、Windows10的安装方法

windows10安装很简单,直接打开cmd用pip安装就行:

pip3 install mediapipe -i https://pypi.tuna.tsinghua.edu.cn/simple’‘’

二、Jetson Nano下的安装方法

mediapipe 没有提供aarch64的wheel文件,因此需要源码编译。官方用的系统是ubuntu20,我用的是ubuntu18,步骤一致。

先贴出官方的安装方法:
MediaPipe Python on aarch64 Ubuntu 20.04
顺利的话照着顺序和解决方案做就可以安装完成了。
下面是我按照官方安装的步骤进行安装以及每一步遇到的错误和解决方法:

1、首先下载Mediapipe文件并安装bazel (官方的编译器)

$ clone https://github.com/google/mediapipe.git

这里我们安装 bazel 4.0.0版本的,其他版本可能会出现警告,安装方法参考这篇文章:在jetson nano上安装bazel
安装完然后检查一下版本就行了:

$ bazel version

2、安装依赖

$ sudo apt install -y python3-dev
$ sudo apt install -y cmake

3、安装编译器

$ sudo apt install -y protobuf-compiler

后面编译的时候如果出现缺少any.proto错误,这意味着protoc可能太旧,您可以从GitHub下载最新的protoc-3.x.x-linux-aarch_64.zip(这里贴出3.18.0的下载链接),然后解压文件:

$ unzip protoc-3.x.x-linux-aarch_64.zip

然后将“bin”和include下的“google”复制到/mediapipe中。然后,修改mediapipe/setup.py,将

protoc_command = [self._protoc, ‘-I.’, ‘–python_out=.’, source]

修改为

protoc_command = [self._protoc, ‘-I.’, ‘-I/usr/local/include’, ‘–python_out=.’, source]

4、进mediapipe目录删除不必要的OpenCV模块和链接器标志。

$ cd mediapipe
$ sed -i -e "/\"imgcodecs\"/d;/\"calib3d\"/d;/\"features2d\"/d;/\"highgui\"/d;/\"video\"/d;/\"videoio\"/d" third_party/BUILD
$ sed -i -e "/-ljpeg/d;/-lpng/d;/-ltiff/d;/-lImath/d;/-lIlmImf/d;/-lHalf/d;/-lIex/d;/-lIlmThread/d;/-lrt/d;/-ldc1394/d;/-lavcodec/d;/-lavformat/d;/-lavutil/d;/-lswscale/d;/-lavresample/d" third_party/BUILD

5、修改文件

打开third_party/BUILD,定位到

“WITH_ITT”: “OFF”,
“WITH_JASPER”: “OFF”,
“WITH_WEBP”: “OFF”,

在后面添加两句,然后保存退出:

“ENABLE_NEON”: “OFF”,
“WITH_TENGINE”: “OFF”,

6、编译

这一步问题最多并且耗时最久,一次编译要将近一个小时,每一次出错都要重新编译(摊手.jpg)

$ python3在这里插入代码片 setup.py gen_protos && python3 setup.py bdist_wheel

出现的错误:

1、缺少any.proto错误,解决方法看上面第3步。
2、return tensor错误
在这里插入图片描述
这里的错误是因为gcc的版本太低,不能自动执行类型转换,有两个办法解决,第一个升级gcc7到gcc8,第二个是修改文件,将报错文件中的

return tensor

修改成

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

但是后面还会有另一个return报错,所以这里我用的是第一个方法一劳永逸:

升级gcc8:
Ubuntu18.04 更新gcc和g++的版本号

3、this rule is missing dependency declarations for the following fles错误
清理bazel的缓存然后重新编译即可

rm -rf ~/.cache/bazel/
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-09-11 19:13:10  更:2021-09-11 19:14:19 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/30 3:38:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码