• Ubuntu安装MediaPipe

    • 1. github下载Meidapipe代码
    • 2. [安装Bazel](https://docs.bazel.build/versions/master/install-ubuntu.html)
    • 3. Install OpenCV and FFmpeg
    • 4. 安装在Linux desktop运行需要的工具
    • 5. 运行Hello World desktop example
  • 安装Android SDK和NDK
    • 1. 安装[Android Studio](https://developer.android.google.cn/studio/),在Android studio下安装NDK
    • 2. 配置SDK,NDK环境变量
  • 在已有的Android项目中使用MediaPipe
    • Step1. 构建MediaPipe AAR
    • Step2:运行bazel构建binarypd文件
    • Step3:在Android Studio中使用Mediapipe
    • Step4: 构建完成

Ubuntu安装MediaPipe

1. github下载Meidapipe代码

1
2
3
4

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

# Change directory into MediaPipe root directory
$ cd mediapipe

2. 安装Bazel

提供了三种options,选择第一种,安装时可能会网速太慢导致安装失败
Step1: 添加源(一次性操作)

1
2
3

sudo apt install curl
curl 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

Step2:安装更新Bazel

1
2

sudo apt update && sudo apt install bazel
sudo apt update && sudo apt full-upgrade

Step3:安装JDK(在Android上运行需要,否则可不安装)

1
2
3
4
5

# Ubuntu 16.04 (LTS) uses OpenJDK 8 by default:
sudo apt install openjdk-8-jdk

# Ubuntu 18.04 (LTS) uses OpenJDK 11 by default:
sudo apt install openjdk-11-jdk

3. Install OpenCV and FFmpeg

1
2
3

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

4. 安装在Linux desktop运行需要的工具

1

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

5. 运行Hello World desktop example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

$ export GLOG_logtostderr=1

# if you are running on Linux desktop with CPU only
$ bazel run --define MEDIAPIPE_DISABLE_GPU=1 \
    mediapipe/examples/desktop/hello_world:hello_world

# If you are running on Linux desktop with GPU support enabled (via mesa drivers)
$ bazel run --copt -DMESA_EGL_NO_X11_HEADERS --copt -DEGL_NO_X11 \
    mediapipe/examples/desktop/hello_world:hello_world

# Should print:
# Hello World!
# Hello World!
# Hello World!
# Hello World!
# Hello World!
# Hello World!
# Hello World!
# Hello World!
# Hello World!
# Hello World!

安装Android SDK和NDK

1. 安装Android Studio,在Android studio下安装NDK

2. 配置SDK,NDK环境变量

1
2
3

# 这个也是一次行操作,关闭终端后需重新配置
export ANDROID_HOME=<path to the Android SDK>
export ANDROID_NDK_HOME=<path to the Android NDK>

例如我的环境变量是

1
2
3
4
5
6
7

export ANDROID_HOME=/home/zhw/Android/Sdk
export ANDROID_NDK_HOME=/home/zhw/Android/Sdk/ndk/21.1.6352462

#如果想设置全局环境变量
$ sudo vim /etc/profile
#把上面两行export复制到profile最下面,再执行以下操作生效
$ source /etc/profile

在已有的Android项目中使用MediaPipe

Step1. 构建MediaPipe AAR

  1. Create a mediapipe_aar() target.
    新建aar_exmaple和BUILD
    在mediapipe/examples/android/src/java/com/google/mediapipe/apps/aar_example/BUILD添加

1
2
3
4
5
6

load("//mediapipe/java/com/google/mediapipe:mediapipe_aar.bzl", "mediapipe_aar")

mediapipe_aar(
    name = "mp_face_detection_aar",
    calculators = ["//mediapipe/graphs/face_detection:mobile_calculators"],
)

  1. 运行bazel构建AAR

1
2
3
4
5
6

bazel build -c opt --host_crosstool_top=@bazel_tools//tools/cpp:toolchain --fat_apk_cpu=arm64-v8a,armeabi-v7a \
    //mediapipe/examples/android/src/java/com/google/mediapipe/apps/aar_example:mp_face_detection_aar

# It should print:
# Target //mediapipe/examples/android/src/java/com/google/mediapipe/apps/aar_example:mp_face_detection_aar up-to-date:
# bazel-bin/mediapipe/examples/android/src/java/com/google/mediapipe/apps/aar_example/mp_face_detection_aar.aar

Step2:运行bazel构建binarypd文件

1

bazel build -c opt mediapipe/examples/android/src/java/com/google/mediapipe/apps/facedetectiongpu:binary_graph

Step3:在Android Studio中使用Mediapipe

先放一张最终项目结构图,可按照这个结构复制所需文件

  1. 新建FaceDetection项目
  2. 将以下文件复制到项目中

1
2
3
4

cp bazel-bin/mediapipe/examples/android/src/java/com/google/mediapipe/apps/aar_example/mp_face_detection_aar.aar /path/to/your/app/libs/
cp bazel-bin/mediapipe/examples/android/src/java/com/google/mediapipe/apps/facedetectiongpu/facedetectiongpu.binarypb /path/to/your/app/src/main/assets/
cp mediapipe/models/face_detection_front.tflite /path/to/your/app/src/main/assets/
cp mediapipe/models/face_detection_front_labelmap.txt /path/to/your/app/src/main/assets/

mp_face_detection_aar.aar --------> app/lib/mp_face_detection_aar.aar
facedetectiongpu.binarypb -------->app/src/main/assets/facedetectiongpu.binarypb
face_detection_front.tflite -------->app/src/main/assets/face_detection_front.tflite
face_detection_front_labelmap.txt -------->app/src/main/assets/face_detection_front_labelmap.txt

  1. 下载OpenCV-android-sdk,复制opencv jni库的项目中

1

cp -R ~/Downloads/OpenCV-android-sdk/sdk/native/libs/arm* /path/to/your/app/src/main/jniLibs/

  1. 再把mediapipe/examples/android/src/java/com/google/mediapipe/apps/facedetectioncpu下的res,AndroidManifest.xml,MainActivity.java放到项目中,修改AndroidManifest.xml的package="com.google.mediapipe.apps.facedetectioncpu">为你自己的包,其他报错按提示修改

    在app的build.gradle中添加依赖库,这里我安装的时候参考了csdn上的一篇博客,我直接用的他的dependencies,结果有一个依赖错了,导致我的项目运行失败,花了两天时间才解决,所以请严格安装官网安装,此博客只作为一个参考。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
    implementation 'androidx.appcompat:appcompat:1.0.2'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.0'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
    // MediaPipe deps
    implementation 'com.google.flogger:flogger:0.3.1'
    implementation 'com.google.flogger:flogger-system-backend:0.3.1'
    implementation 'com.google.code.findbugs:jsr305:3.0.2'
    implementation 'com.google.guava:guava:27.0.1-android'
    implementation 'com.google.guava:guava:27.0.1-android'
    implementation 'com.google.protobuf:protobuf-java:3.11.4''
    // CameraX core library
    def camerax_version = "1.0.0-alpha06"
    implementation "androidx.camera:camera-core:$camerax_version"
    implementation "androidx.camera:camera-camera2:$camerax_version"
}

Step4: 构建完成

接着就可以插上你的手机运行下试试吧

Meidapipe 3D手势姿态跟踪算法,手机端实时检测 ,多个手势同时捕捉相关推荐

  1. 3D手势姿态跟踪算法:手机端实时检测,多个手势同时捕捉

    就在不久前,Google 人工智能实验室宣布,他们在「实时手部跟踪」方面取得了新的进展,并将这项新技术运用在了 MediaPipe 中,这也是 AI 计算机视觉任务的一大突破.这一技术不光可以在手机上 ...

  2. 三维网格精简算法java版_ISMAR 2020 | 商汤提出手机端实时单目三维重建系统

    导读:商汤研究院和浙江大学CAD&CG国家重点实验室合作研发了一个手机端实时单目三维重建系统Mobile3DRecon.与现有的基于RGBD的在线三维重建或离线生成表面网格的系统不同,该系统结 ...

  3. 谷歌最新开源BundleTrack: 无需任何CAD模型的6D物体姿态跟踪算法

    视频地址:在公众号「3D视觉工坊」,后台回复「谷歌X实习生」,即可直接下载. 最近,谷歌X的实习生Bowen Wen新开源了用于6D物体姿态跟踪的代码BundleTrack,该工作已经被今年的IEEE ...

  4. 商汤提出手机端实时单目三维重建系统,实现逼真AR效果和交互

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 来源:商汤泰坦公开课 摘要 · 看点 商汤研究院和浙江大学 CAD&CG 国家重点实验室合作研 ...

  5. 最佳论文!商汤提出手机端实时单目三维重建系统 | ISMAR 2020

    摘要 · 看点 商汤研究院和浙江大学 CAD&CG 国家重点实验室合作研发了一个手机端实时单目三维重建系统 Mobile3DRecon.与现有的基于 RGBD 的在线三维重建或离线生成表面网格 ...

  6. 令人惊讶的手机端实时 4K 风格迁移!谷歌又出牛文

    Joint Bilateral Learning for Real-time Universal Photorealistic Style Transfer 本文是Boston & Pixel ...

  7. php企业网站通讯录管理系统,EML企业通讯录管理系统v5.4.15 经典版+手机端实时查看人员联系方式+客户关系管理系统...

    企业通讯录管理系统,向企业员工随时随地的提供企业通讯录信息,用户可在手机端实时查看人员联系方式,拨打电话等全面提高了企业内部沟通效率. 主要功能有:用户管理(添加用户,删除用户用户,更新用户资料):通 ...

  8. BundleTrack:无需实例或类级别3D模型的6D姿态跟踪算法(IROS2021)

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨paopaoslam 来源丨泡泡机器人SLAM 标题:BundleTrack: 6D Pose ...

  9. ICCV 2019 | 微软开源跨视图融合的3D人体姿态估计算法,大幅改进SOTA精度

    点击我爱计算机视觉标星,更快获取CVML新技术 今天跟大家分享一篇来自微软亚洲研究院新出并已经开源的3D姿态估计的文章:Cross View Fusion for 3D Human Pose Esti ...

最新文章

  1. solr从数据库为solr_home导入数据
  2. padding和卷积的区别_TensorFlow笔记1——20.CNN卷积神经网络padding两种模式SAME和VALID...
  3. SAP License:标准层次无法创建
  4. Layui富文本编辑器,文章编辑器
  5. 笔记-JavaScript高级程序设计-第六章思维导图
  6. CAD/CASS插件断面图批量提取横纵断面数据(左负右正、左零开始)可附加提取桩号XY坐标(北坐标东坐标)
  7. 9. 面向对象基础(下)
  8. html显示文件夹图片,Html读取本地文件夹下图片并显示
  9. 一山不容二虎?双动力同步驱动技术与模型分享
  10. 谷歌浏览器怎么更新升级 谷歌浏览器手动更新方法
  11. 计算机软件即征即退条文,2021年软件产品即征即退政策
  12. android WebView
  13. 生日悖论与Hash函数的攻击
  14. office web apps安装部署 Win 2008 安装
  15. 深入分析Java Web技术内幕(修订版) 读书笔记
  16. AMBA AXI 协议
  17. 使用yanderify搞个图片转视频(让大头照动起来)
  18. 红图新媒体-完美的新媒体矩阵方案需要这样做
  19. 使用Excel宏来群发邮件或工资条
  20. 电脑默认按住了ctrl键的解决办法

热门文章

  1. Swift使用CoreLocation,你必须要看这一篇
  2. InputStreamReader 和 OutputStreamWriter类使用方法简单介绍,及演示。
  3. 安装TPCC-MySQL报错
  4. 新一代数据中心不可忽视DAC高速铜缆直连线应用
  5. 【注册机】ColorSchemer Studio 2.1.0 注册机
  6. SharePoint最简母版页
  7. python中数字和字符串可以直接相加_用c语言或者python将文件中特定字符串后面的数字相加...
  8. html 提交后跳转页面,html 提交后跳转页面
  9. [转载] Linux里面的文件目录类指令
  10. r语言 运算符_R语言运算符