zoukankan      html  css  js  c++  java
  • Ubuntu下MediaPipe的环境配置

    1.介绍

    MediaPipe是一款由Google开发并开源的数据流处理机器学习应用开发框架。它是一个基于图的数据处理管线,用于构建使用了多种形式的数据源,如视频、音频、传感器数据以及任何时间序列数据。MediaPipe通过将各个感知模型抽象为模块并将其连接到可维护的图中来解决这些问题。
    优点

    • 有效管理资源(CPU和GPU)达到低延迟性能
    • 处理诸如音频和视频帧之类的时间序列数据的同步
    • 并测量性能和资源消耗(目前Google正在开发,尚未开源)

    官网上给出的Demo:

    MediaPipe的主要组件包括:

    • (1) 图(Graph)-有向图
    • (2) 数据包(Packet)
    • (3) 节点(Node)
    • (4) 数据流(Stream)
    • (5) 图配置(GraphConfig)
    • (6) 计算单元(Caculator)
    • (7) 子图(Subgraph)

    2.安装

    2.1 下载MediaPipe源码

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

    2.2 安装bazel

    • 添加Bazel分发URI作为包源
    sudo apt install curl gnupg
    curl -f https://bazel.build/bazel-release.pub.gpg | sudo apt-key add -
    echo "deb [arch=amd64] https://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list
    
    • 安装和更新bazel
    sudo apt update && sudo apt install bazel
    sudo apt update && sudo apt full-upgrade
    

    注意:后续编译中会下载大量依赖库,由于总所周知的原因,需要在终端进行全局代理,不然编译报错或者直接无法编译。

    2.3 安装OpenCV和FFmpeg

    sudo apt-get install libopencv-core-dev libopencv-highgui-dev 
                           libopencv-calib3d-dev libopencv-features2d-dev 
                           libopencv-imgproc-dev libopencv-video-dev
    

    2.4 安装GPU库

    sudo apt-get install mesa-common-dev libegl1-mesa-dev libgles2-mesa-dev

    2.5 运行hello world

    export GLOG_logtostderr=1
    
    # 不启用GPU
    bazel run --define MEDIAPIPE_DISABLE_GPU=1 mediapipe/examples/desktop/hello_world:hello_world
    
    # 启用GPU
    bazel run --copt -DMESA_EGL_NO_X11_HEADERS --copt -DEGL_NO_X11 mediapipe/examples/desktop/hello_world:hello_world
    

    运行结果打印10次Hello World:

    # Hello World!
    # Hello World!
    # Hello World!
    # Hello World!
    # Hello World!
    # Hello World!
    # Hello World!
    # Hello World!
    # Hello World!
    # Hello World!
    

    3.编译MediaPipe官方应用

    3.1 桌面版的人手姿态追踪Hand Tracking

    • 编译(CPU版本)
    bazel build -c opt --define MEDIAPIPE_DISABLE_GPU=1 mediapipe/examples/desktop/hand_tracking:hand_tracking_cpu
    
    • 运行(CPU版本)
    GLOG_logtostderr=1 bazel-bin/mediapipe/examples/desktop/hand_tracking/hand_tracking_cpu 
      --calculator_graph_config_file=mediapipe/graphs/hand_tracking/hand_tracking_desktop_live.pbtxt
    
    • 编译(GPU版本)
    bazel build -c opt --copt -DMESA_EGL_NO_X11_HEADERS --copt -DEGL_NO_X11 
      mediapipe/examples/desktop/hand_tracking:hand_tracking_gpu
    
    • 运行(GPU版本)
    GLOG_logtostderr=1 bazel-bin/mediapipe/examples/desktop/hand_tracking/hand_tracking_gpu 
      --calculator_graph_config_file=mediapipe/graphs/hand_tracking/hand_tracking_mobile.pbtxt
    

    3.2 安卓版本的人手姿态追踪Hand Tracking

    需要安装的环境:

    • JAVA Runtime (14.0.2)
    • Android SDK release 28.0.3 and above
    • Android NDK r18b and above.
      建议采用Android Studio安装Android SDK NDK,在.bashrc中添加里面路径,采用source .bashrc配置生效:
    export ANDROID_HOME=<path to the Android SDK>
    export ANDROID_NDK_HOME=<path to the Android NDK>
    

    在命令行中使用Bazel构建Hand Tracking

    bazel build -c opt --config=android_arm64 mediapipe/examples/android/src/java/com/google/mediapipe/apps/handtrackinggpu:handtrackinggpu
    

    安装在指定Android平台上:

    adb install bazel-bin/mediapipe/examples/android/src/java/com/google/mediapipe/apps/handtrackinggpu/handtrackinggpu.apk
    

    也可以通过adb指令安装apk。

    附:本人移植在MTK安卓平台上的构建命令和上诉有所不同:

    bazel build -c opt --fat_apk_cpu=arm64-v8a,armeabi-v7a mediapipe/examples/android/src/java/com/google/mediapipe/apps/handtrackinggpu:handtrackinggpu
    
  • 相关阅读:
    45 岁,还写代码吗?
    给你 8 个接私活的网站
    一文回顾 Java 入门知识(下)
    5 种前途迷茫的编程语言
    JVM 内存的结构模型、堆与堆栈原理、对象在内存中的结构
    mysql 索引是否能提高UPDATE,DELETE,INSERT 处理速度
    【诈尸】【游戏】多人联机游戏推荐
    250.统计同值子树
    366. 寻找二叉树的叶子节点
    156.上下翻转二叉树
  • 原文地址:https://www.cnblogs.com/zhongzhaoxie/p/13359340.html
Copyright © 2011-2022 走看看