一、

前言和准备见mediapipe教程4,这篇博客开门见山,直接来步骤;

 

二、在安卓上运行mediapipe的handTracking

参考网址:

步骤:https://google.github.io/mediapipe/getting_started/android_archive_library.html

代码:https://gitee.com/luo_zhi_cheng/mediapipe_multi_hands_tracking_aar_example

 

实际步骤(与教程4类似):

(1)在路径mediapipe/examples/android/src/java/com/google/mediapipe/apps/build_aar_hand/下新建BUILD文件,并复制下面内容

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

mediapipe_aar(
    name = "mediapipe_hand_tracking",
    calculators = ["//mediapipe/graphs/hand_tracking:mobile_calculators"],
)

 

(2)生成安卓aar文件(生成的文件在bazel-bin/mediapipe/examples/android/src/java/com/google/mediapipe/apps/build_aar_hand/目录下),命令:

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

解释见教程4;

 

(3)生成Mediapipe的二进制图(生成文件路径为bazel-bin/mediapipe/graphs/hand_tracking/hand_tracking_mobile_gpu.binarypb)

bazel build -c opt mediapipe/graphs/hand_tracking:hand_tracking_mobile_gpu_binary_graph

 

(4)新建Android Stdio工程,选择“Empty Activity”,这里我的工程名改为:aar_hand1,复制刚刚编译生成的aar文件到Android Stdio工程的app/libs/目录下;

刚刚编译生成的aar文件路径为:bazel-bin/mediapipe/examples/android/src/java/com/google/mediapipe/apps/build_aar_hand/mediapipe_hand_tracking.aar

 

(5)复制以下文件到Android Stdio工程的app/src/main/assets/目录下

(具体需要复制什么,见mediapipe/examples/android/src/java/com/google/mediapipe/apps/handtrackinggpu/BUILD中的assets)

bazel-bin/mediapipe/graphs/hand_tracking/hand_tracking_mobile_gpu.binarypb
mediapipe/modules/hand_landmark:handedness.txt
mediapipe/modules/hand_landmark:hand_landmark.tflite
mediapipe/modules/palm_detection:palm_detection.tflite

 

(6)打开安卓工程的app/build.gradle,修改其中的内容参考教程4;

 

(7)Android Stdio工程其他文件

1、AndroidManifest.xml,2、activity_main.xml,3、MainActivity.java,4、其他xml文件,如colors\strings\style\themes

复制https://gitee.com/luo_zhi_cheng/mediapipe_multi_hands_tracking_aar_example的相应文件;

然后根据教程4中写的注意事项,简要的修改即可;

 

(8)编译,运行

结果:在我的破安卓机顶盒上运行起来有点卡,可能是因为硬件性能不行;

运行时,如果检测到手,则会打印landmark的数量和位置,如下图;

Logo

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

更多推荐