Mediapipe android hands编译

一 编译环境

Ubuntu 18.04

官网说明 

Installation - mediapipe

安装Bazel 

版本说明 

 我直接改成了5.2.0 

下载地址 Releases · bazelbuild/bazel · GitHub

bazel build target 和 bazel run target

bazel build target是编译目标。bazel run target 是编译并运行目标。

直接下个 二进制文件 bazel-5.2.0-linux-x86_64

二  下载mediapipe源码

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

v0.8.10.2 (其它版本不一定 匹配bazel版本)

安装依赖

sudo apt-get install build-essential openjdk-11-jdk python zip unzip

配置android sdk  ndk   

bash ./setup_android_sdk_and_ndk.sh

30.0.3

配置 pip3镜像源

编译过程中可能下载pyhton 部分库失败手动安装 

如 安装numpy npm 

三 编译

创建 Mediapipe 生成 Android aar 的编译文件,命令如下。

cd mediapipe/examples/android/src/java/com/google/mediapipe/apps/
mkdir buid_aar && cd buid_aar
vim BUILD

编译文件 BUILD 中内容如下,name 是生成后 aar 的名字,calculators 为使用的模型和计算单元,其他的模型和支持计算单元可以查看 mediapipe/graphs/ 目录下的内容,在这个目录都是 Mediapipe 支持的模型。其中目录 hand_tracking 就是使用到的模型,支持的计算单元需要查看该目录下的 BUILD 文件中的 cc_library,这里我们是要部署到 Android 端的,所以选择 Mobile 的计算单元。本教程我们使用 mobile_calculators,这个只检测一个手的关键点,如何想要检查多个收修改成这个计算单元 multi_hand_mobile_calculators

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

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

回到mediapipe根目录 编译输出aar


bazel build -c opt --fat_apk_cpu=arm64-v8a,armeabi-v7a \
//mediapipe/examples/android/src/java/com/google/mediapipe/apps/buid_aar:mediapipe_hand_tracking

执行以下命令生成 Mediapipe 的二进制图,命令参数同样是上面的 BUILD 中,其中路径不变,变的是路径后面的参数。这次我们需要寻找的是 mediapipe_binary_graph 中的 name,根据我们所要使用的模型,同样这个也是只检测单个手的关键点,多个手的使用 multi_hand_tracking_mobile_gpu_binary_graph。选择对应的 name。成功之后会生成 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
 

注意

1 修改依赖仓库

vi  WORKSPACE   这里是重点。



用下面国内的镜像仓库,替换掉google的,

之前旧的

    repositories = [

        "https://maven.google.com",

        "https://dl.google.com/dl/android/maven2",

        "https://repo1.maven.org/maven2",

        "https://jcenter.bintray.com",

],

新的

    repositories =

    [

        "https://maven.aliyun.com/repository/google",

        "https://maven.aliyun.com/repository/central",

        "https://maven.aliyun.com/repository/public",

],

之后整个编译过程无须翻墙

2 修改opencv-android-sdk  300M的东西愣是下不下来  我直接迅雷下了 

 虚拟机编译大概不到一小时

android中集成参照官方文档

mediapipe/hello_world_android.md at master · google/mediapipe · GitHub

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值