一、前言

mediapipe教程2中提到,我最终需要在安卓设备上运行,因此本节开始,我们开始研究mediapipe的安卓相关内容;

 

二、准备

(1)我们本节的步骤是在ubuntu下编译出.apk文件,然后连接安卓设备,用adb命令在安卓设备上生成应用程序,再开启使用即可;

(2)与mediapipe教程2一样,需要多注意两个重要网址:官网的代码、官网的教程;还有mediapipe的版本、bazel的版本与安装配置、其他库安装都与mediapipe教程2一样;

(3)安装java_runtime、android sdk 28.03以上、ndk版本在18到21之间

###注意,java runtime千万不能用sudo apt-get install openjdk-8-jre-headless命令来安装,我一开始就是这样安装的,结果后面的步骤出现了问题才找到这里;

java runtime安装参考:https://blog.csdn.net/justdoit_potato/article/details/77962670,与查看博客一样,安装jdk1.8即可;

安装完成后使用下面命令查看:

java -version

安卓sdk和ndk的安装使用mediapipe中的脚本即可,但需要安装curl,步骤如下:

sudo apt-get install curl
cd /mediapipe/
sudo chmod 777 -R *
sudo ./setup_android_sdk_and_ndk.sh

#然后配置android sdk和ndk(根据你自己的路径)
sudo chmod 777 -R /home/lzc/Android/
sudo gedit ~/.bashrc
export ANDROID_HOME=$PATH:/home/lzc/Android/Sdk
export ANDROID_NDK_HOME=$PATH:/home/lzc/Android/Sdk/ndk-bundle/android-ndk-r19c
source ~/.bashrc

 

三、安卓上运行mediapipe的helloworld

允许两种方式编译安卓程序,一种是命令行cmd中,另一种是在Android Stdio中;

我们最终运行的就是官网教程:https://google.github.io/mediapipe/getting_started/hello_world_android.html,这个例子就是在cmd中编译;

我运行的设备是一个安卓的机顶盒,使用数据线直连ubuntu系统,ubuntu桌面出现一个类似手机的图标即表示已连接设备;

(1)编译

你会发现编译时候会一直卡在“Fetching @maven;”过不去,

这个问题参考https://blog.csdn.net/qq_26144863/article/details/115911792

或者https://blog.csdn.net/luozhichengaichenlei/article/details/117264231

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

(2)使用adb命令在安卓系统上生成应用程序

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

(3)运行

在设备的应用程序中找到刚刚生成的程序(Hello World),运行应用程序,该例子为sobel算子边缘检测。

 

四、其他例子(没有运行起来,也应该运行不起来)

1、hand

(1)编译

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

(2)使用adb命令在安卓系统上生成应用程序

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

(3)运行(注意,这里我没有运行起来,因为原始例子也并不是调用相机检测手部关键点,原始例子详情自己看MainActivity.java中的内容)

 

2、pose

(1)编译

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

(2)使用adb命令在安卓系统上生成应用程序

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

(3)运行(注意,这里我没有运行起来,因为原始例子也并不是调用相机检测手部关键点,原始例子详情自己看MainActivity.java中的内容)

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐