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

步骤

  • 一、Windows10的安装方法
  • 二、Jetson Nano下的安装方法
    • 1、首先下载Mediapipe文件并安装bazel (官方的编译器)
    • 2、安装依赖
    • 3、安装编译器
    • 4、进mediapipe目录删除不必要的OpenCV模块和链接器标志。
    • 5、修改文件
    • 6、编译
      • 出现的各种错误
      • 编译成功
    • 8、运行Mediapipe

一、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

出现的各种错误

首先是最重要的一个错误!不要使用python3.7!不要使用python3.7!!!
不然最后编译会报错,提示bazel找不到规则,而且找不到问题所在,这个问题卡了我三天(再次摊手)。

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/

编译成功

编译成功之后会在文件目录下生成一个dist文件夹,里面存放了mediapipe的.whl文件。

8、运行Mediapipe

先安装mediapipe功能包:

$python3 -m pip install cython
$python3 -m pip install numpy
$python3 -m pip install pillow
$python3 -m pip install mediapipe/dist/mediapipe-0.8-cp36-cp36m-linux_aarch64.whl

成功结果

安装过程出现了matplotlib一直安装失败的问题

解决方法:
用apt-get下载

$sudo apt-get install python3-matplotlib

Win10和Jetson Nano环境下安装Mediapipe-python相关推荐

  1. 初探Django2.1:Win10+Python3.6.6环境下安装Django

    Django的简介 Django的是一个开放源代码的网络应用框架,由Python的写成.采用了MVC的框架模式,即模型男,视图V和控制器C.它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为 ...

  2. win10 python3.5.2环境下 安装xgboost

    在命令行中直接使用 pip install xgboost 情况下,我这里出现了 no files/directories 的问题,网上查了一下很多人也有这样的问题. 以下为解决方法: 1. 打开网址 ...

  3. 【Jetson nano开发笔记】jetson nano 环境搭建与常见软件安装

    文章目录 开发板 看看他香不香 IO定义 设置一下root密码吧 更换源 赶紧配置VNC 已安装组件的使用 cuda OpenCV cuDNN jetson nano 安装 TensorFlow GP ...

  4. 测绘——如何在win10环境下安装CAD2006+CASS7.0

    如何在win10环境下安装CAD2006+CASS7.0 在win10环境下安装CAD2006会出现很多问题,但这一类早期软件仍在很多行业中被广泛使用,想要进行正确安装,要进行以下几步操作: 一.首先 ...

  5. 在win10环境下安装vmware软件后没有vmnet1、vmnet8虚拟网卡!

    在win10环境下安装vmware软件后没有虚拟网卡! 此问题困扰已经半年之久,差点重装系统,更甚至更换笔记本,网上的方法几乎全部用过了,最后一波自己尝试终于解决了!!! 解决办法:  环境确认win ...

  6. win10,64位环境下curl7下载安装和配置详细图文教程(亲测有效)

    win10,64位环境下curl7下载安装和配置教程 一.前期准备: (1)windows10,64位: (2)python3.8 二.下载: 三.安装: 四.环境变量配置: (1)新建 ==CURL ...

  7. 在win10环境下安装vmware软件后没有vmnet1、vmnet8虚拟网卡义

    1.在win10环境下安装vmware软件后没有vmnet1.vmnet8虚拟网卡义 VMware版本问题!!! 使用window10安装的VMware,发现 "网络连接"只有 v ...

  8. Win10 环境下安装Ubuntu 18.04过程记录

    Win10 环境下安装Ubuntu 18.04过程记录 步骤1:下载镜像文件 从Ubuntu官网https://www.ubuntu.com/download/server下载系统的iso镜像文件 , ...

  9. 3 win10环境下安装Pytorch可视化工具Visdom(亲测,欢迎交流)

    0 Win10环境下安装Visdom可视化工具(亲测成功,欢迎交流) Visdom可视化工具: 本文测试安装环境为windows10+Anaconda+python3.7.10 (注意先装好Anaco ...

最新文章

  1. [Django](1093, quot;You can#39;t specify target table #39;fee_details_invoices#39; for update in...
  2. mysql complete_mysql 无意重启 [Note] /usr/sbin/mysqld: Normal shutdown
  3. 网站架构探索(2)-CDN基本常识 王泽宾
  4. 【原创】【专栏】《Linux设备驱动程序》--- LDD3源码目录结构和源码分析经典链接
  5. 快速排序及优化(Java实现)
  6. 如何备份和还原 Outlook Express 数据
  7. [EF4] CompiledQuery预编译性能提升 + 数据载入之大彻大悟
  8. 程序员踩坑之旅:将 75000 行 iOS 原生代码迁移到 Flutter!
  9. node.js读写文件操作
  10. GNN-图卷积模型-2017:GAT【消息传递(前向传播):聚合函数+更新函数】【聚合函数:attention(邻域所有节点根据注意力机制进行加权)】【训练更新函数的参数】【直推式归纳式】【同质图】
  11. 1.3中国计算机网络发展情况
  12. 手把手教你如何连接到宝塔面板创建的FTP空间
  13. 极客也可以很亲民,酷炫设计、多变造型的华为智能眼镜即将发布
  14. 声音以模拟信号的形式存储在计算机中,08计算机1-2班《计算机基础》自学资料(5)...
  15. 穷人思维和富人思维,决定你一生的财富
  16. Altium Designer简介及使用流程
  17. [235]scrapy分布式爬虫scrapy-redis(二)
  18. 费曼:数学与物理学的关系
  19. android 脸部识别之3D,这两款安卓手机也支持3D结构光人脸识别
  20. 华为瘦胖ap互转_Cisco 胖AP转为瘦AP

热门文章

  1. Jetson Xavier NX远程桌面VNC使用
  2. 3051系列变送器从管线上拆除步骤
  3. 四核处理器_【购机提问】强处理器机型怎么选?4500元价位办公有啥推荐?
  4. IFTTT使用测试教程
  5. 【经典谱和现代谱估计】
  6. 训练时GPU显存太小问题、batchsize 的大小跟GPU的显存的关系
  7. Java版——企业进销存管理系统设计文档+源码
  8. 量子通信与计算机网络,好消息,我国量子通信技术取得新突破!与美欧的差距或进一步拉大...
  9. scrapy爬虫实践之抓取拉钩网招聘信息(4)
  10. linux proftpd 关闭匿名用户,linux服务器管理相关问题(四)--proftpd配置