mediapipe教程6:在安卓上运行mediapipe的poseTracking

一、

前言见mediapipe教程4;

准备,官方给的mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackinggpu/MainActivity.java并没有调相机的code,只有打印输出关键点坐标的code,并且我在后续把调用相机的code和官方输出关键点坐标的这些code加到我的android stdio工程后,运行时发现官方打印输出关键点坐标的code有问题;于是我在网上找到了可用代码,分别是下面两个地址,我测试了第一个是没问题的:

https://gitee.com/luo_zhi_cheng/Mediapipe_pose_Tracking_AAR_example

https://gitee.com/luo_zhi_cheng/Mediapipe-android-pose-tracking

最后,这篇博客也开门见山,先直接来步骤;

 

二、在安卓上运行mediapipe的poseTracking

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

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

mediapipe_aar(
    name = "mediapipe_pose_tracking",
    calculators = ["//mediapipe/graphs/pose_tracking:pose_tracking_gpu_deps"],
)

 

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

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_pose:mediapipe_pose_tracking

解释见教程4;

 

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

bazel build -c opt mediapipe/graphs/pose_tracking:pose_tracking_gpu_binary_graph

 

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

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

 

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

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

bazel-bin/mediapipe/graphs/pose_tracking/pose_tracking_gpu.binarypb
mediapipe/modules/pose_detection/pose_detection.tflite
mediapipe/modules/pose_landmark/pose_landmark_full.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_pose_Tracking_AAR_example里面的文件内容过去就可以,

注意这次app/src/main/java/com/example/aar_pose1/下不仅仅有一个.java文件;

 

(8)编译,运行

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

 

(9)更多

mediapipe官网提供的人体关键点检测模型分为lite、full、heavy三个,由快到慢,由不准到准,可以自己选择,模型在路径mediapipe/modules/pose_landmark/下;

而配置下默认是使用full模型,想要使用不同的模型,请参考:https://blog.csdn.net/luozhichengaichenlei/article/details/117297062中的第2点;

上一篇:android studio中的gradle找不到任务列表task list


下一篇:Linux下多线程编程(C语言)