当前位置:   article > 正文

在arm板Ubuntu系统上安装mediapipe简单记录_mediapipe arm linux

mediapipe arm linux
  • 简单记录一下在arm架构的linux ubuntu系统上安装mediapipe的过程
  • 安装过程参考mediapipe官网,链接:

Installation  |  MediaPipe  |  Google for Developershttps://developers.google.com/mediapipe/framework/getting_started/install.md

注意事项:

  • 与OpenCV进行相互操作。最好选择OpenCV 3.X到4.1版本,OpenCV 2.X目前可以工作,但其相互操作性支持可能在将来被弃用;
  • 如果你打算使用TensorFlow计算器和示例应用程序,gcc和g++的6.3和7.3版本有一个已知的问题。官网上建议安装gcc和g++版本8.x;
  • 若要使Mediapipe与TensorFlow一起工作,请将Python 3.7设置为默认Python版本,并通过运行pip3 install --user six安装Python "six"库。
$ pip3 install --user six

一、安装Bazel

  • Mediapipe使用Bazel进行编译,关于Bazel的使用请自行查阅资料或在安装完成后输入bazel --help查看。
$ bazel --help
  • 以下为安装过程:
  • Bazel安装过程参考Bazel官网,链接:

https://bazel.build/install?hl=zh-cnhttps://bazel.build/install?hl=zh-cn

  • 选择从源代码编译Bazel
  • 选择从头开始构建Bazel,而无需使用现有的 Bazel 二进制文件

1、安装Bazel前提条件:

  • Bash

  • zip、unzip

  • C++ 构建工具链

  • JDK:必须提供版本 11。

  • Python。版本 2 和版本 3 受支持,安装其中一个版本就足够了。

2、从github获取需要的 Bazel 版本

  • 请注意,Mediapipe基本是和特定版本的Bazel是绑定的,在安装Bazel之前,建议去看看需要使用的mediapipe版本所依赖的Bazel版本是多少。
  • 下载分发归档包:bazel-<version>-district.zip,其<version>是对应版本号。

https://github.com/bazelbuild/bazel/releaseshttps://github.com/bazelbuild/bazel/releases

3、将此分发归档解压到磁盘上某个位置

  •  使用unzip解压即可。

4、引导Bazel

  • 进入到解压的目录,运行编译脚本:
$ env EXTRA_BAZEL_ARGS="--tool_java_runtime_version=local_jdk" bash ./compile.sh
  • 编译后的输出会被放入 output/bazel。这是一个独立的 Bazel 二进制文件,没有嵌入式 JDK。您可以将其复制到任何位置或直接使用。为方便起见,请将此二进制文件复制到PATH上的目录中(例如 /usr/local/bin)。
  • 如需以可重现的方式构建 bazel 二进制文件,还要在“运行编译脚本”步骤中设置 SOURCE_DATE_EPOCH

二、下载mediapipe

1、进入用户目录(或其他目录),下载源码

  1. $ cd $HOME
  2. $ git clone --depth 1 https://github.com/google/mediapipe.git

2、进入下载完成的目录

  1. # Change directory into MediaPipe root directory
  2. $ cd mediapipe
  • 注:若不使用git命令,也可直接去github下载,将下载后的文件解压到磁盘上某个位置:

https://github.com/google/mediapipe.githttps://github.com/google/mediapipe.git

三、安装opencv和FFmpeg

  • 官网上有三种方式安装,这里列出前两种:

方案1、使用包管理器工具安装预编译的OpenCV库与FFmpeg

  1. $ sudo apt-get install -y \
  2. libopencv-core-dev \
  3. libopencv-highgui-dev \
  4. libopencv-calib3d-dev \
  5. libopencv-features2d-dev \
  6. libopencv-imgproc-dev \
  7. libopencv-video-dev
  • 注意:在Debian 11/Ubuntu 21.04上安装OpenCV 4.5时,也应该安装libopencv
$ sudo apt-get install -y libopencv-contrib-dev

MediaPipe的opencv_linux.BUILDWORKSPACE已经为OpenCV 2/3配置完成,应该可以在任何架构上正确工作:

  1. # WORKSPACE
  2. new_local_repository(
  3. name = "linux_opencv",
  4. build_file = "@//third_party:opencv_linux.BUILD",
  5. path = "/usr",
  6. )
  7. # opencv_linux.BUILD for OpenCV 2/3 installed from Debian package
  8. cc_library(
  9. name = "opencv",
  10. linkopts = [
  11. "-l:libopencv_core.so",
  12. "-l:libopencv_calib3d.so",
  13. "-l:libopencv_features2d.so",
  14. "-l:libopencv_highgui.so",
  15. "-l:libopencv_imgcodecs.so",
  16. "-l:libopencv_imgproc.so",
  17. "-l:libopencv_video.so",
  18. "-l:libopencv_videoio.so",
  19. ],
  20. )

对于OpenCV 4,考虑当前架构,需要修改opencv_linux.BUILD:

  1. # WORKSPACE
  2. new_local_repository(
  3. name = "linux_opencv",
  4. build_file = "@//third_party:opencv_linux.BUILD",
  5. path = "/usr",
  6. )
  7. # opencv_linux.BUILD for OpenCV 4 installed from Debian package
  8. cc_library(
  9. name = "opencv",
  10. hdrs = glob([
  11. # Uncomment according to your multiarch value (gcc -print-multiarch):
  12. # "include/aarch64-linux-gnu/opencv4/opencv2/cvconfig.h",
  13. # "include/arm-linux-gnueabihf/opencv4/opencv2/cvconfig.h",
  14. # "include/x86_64-linux-gnu/opencv4/opencv2/cvconfig.h",
  15. "include/opencv4/opencv2/**/*.h*",
  16. ]),
  17. includes = [
  18. # Uncomment according to your multiarch value (gcc -print-multiarch):
  19. # "include/aarch64-linux-gnu/opencv4/",
  20. # "include/arm-linux-gnueabihf/opencv4/",
  21. # "include/x86_64-linux-gnu/opencv4/",
  22. "include/opencv4/",
  23. ],
  24. linkopts = [
  25. "-l:libopencv_core.so",
  26. "-l:libopencv_calib3d.so",
  27. "-l:libopencv_features2d.so",
  28. "-l:libopencv_highgui.so",
  29. "-l:libopencv_imgcodecs.so",
  30. "-l:libopencv_imgproc.so",
  31. "-l:libopencv_video.so",
  32. "-l:libopencv_videoio.so",
  33. ],
  34. )

方案2、运行主路径下的setup_opencv.sh脚本从源代码自动构建OpenCV,并自动修改MediaPipe的OpenCV配置

$ ./setup_opencv.sh

四、在Linux(不是OS X)上运行桌面示例与GPU加速

  1. # Requires a GPU with EGL driver support.
  2. # Can use mesa GPU libraries for desktop, (or Nvidia/AMD equivalent).
  3. $ sudo apt-get install mesa-common-dev libegl1-mesa-dev libgles2-mesa-dev
  • 注:若要使用GPU支持编译,请将选项
--define MEDIAPIPE_DISABLE_GPU=1

        替换为:

--copt -DMESA_EGL_NO_X11_HEADERS --copt -DEGL_NO_X11

五、示例程序hello world

$ export GLOG_logtostderr=1

  • 如果在只有CPU的Linux桌面上运行:
  1. $ bazel run --define MEDIAPIPE_DISABLE_GPU=1 \
  2. mediapipe/examples/desktop/hello_world:hello_world
  • 如果在启用了支持GPU的Linux桌面上运行(通过mesa驱动程序):
  1. $ bazel run --copt -DMESA_EGL_NO_X11_HEADERS --copt -DEGL_NO_X11 \
  2. mediapipe/examples/desktop/hello_world:hello_world
  • 打印结果如下:
  1. # Hello World!
  2. # Hello World!
  3. # Hello World!
  4. # Hello World!
  5. # Hello World!
  6. # Hello World!
  7. # Hello World!
  8. # Hello World!
  9. # Hello World!
  10. # Hello World!

  • 如果遇到构建错误,请阅读“ Troubleshooting”以查找解决方案。

Troubleshooting  |  MediaPipe  |  Google for Developershttps://developers.google.com/mediapipe/framework/getting_started/troubleshooting.md

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/906070
推荐阅读
相关标签
  

闽ICP备14008679号