Mediapipe编译
项目仓
github地址:https://github.com/google/mediapipe
环境准备
python环境,推荐使用anaconda,注意下载linux版本的
bazel工具:
- Android SDK(mediapipe推荐使用30版本sdk):
- Android NDK(mediapipe推荐使用21版本ndk):
以上工具的安装强烈建议安装到一个指定的目录,这样后面构造环境变量PATH
和Android SDK Home
以及Android NDK Home
的时候也可以统一到一起。
编译前的准备状况
- 切换到mediapipe项目的根目录
- 配置Android SDK和NDK路径:
export ANDROID_HOME=/home/dogee/env/android/sdk
export ANDROID_NDK_HOME=/home/dogee/env/android/ndk/21/
- 准备python环境,使用anaconda创建一个mediapipe专属环境,并切换到该环境下。
conda create -n mediapipe python=3.6
conda activate mediapipe
安装mediapipe自带的python依赖库
pip install -r requirments.txt
写入Android SDK和NDK环境到
WORKSPACE
echo "android_sdk_repository(name = \"androidsdk\")" >> WORKSPACE
echo "android_ndk_repository(name = \"androidndk\", api_level=21)" >> WORKSPACE
编译命令
- 有条件的话挂一个vpn,加速bazel下载github上依赖库的速度
- 在mediapipe根目录运行:
bazel build -c opt --config=android_arm64 mediapipe/examples/android/src/java/com/google/mediapipe/apps/handtrackinggpu:handtrackinggpu
大约30min-60min可以完成编译,在bazel-bin/mediapipe/examples/android/src/java/com/google/mediapipe/apps/handtrackinggpu/handtrackinggpu.apk
会产生对应的apk。
Solution下的项目
除了在mediapipe/examples/android/src
下存在部分项目外,其实在mediapipe/examples/android/solution
下存在着完整的gradle
工程,针对手势识别的部分可以直接跑gradle task
,生成的apk略有不同。
意义和目的
打通mediapipe的目的是在于学习这个古老(2019)的项目,从而看看有什么可以再做一下移植和需求突破的。
初步看下来可以学习地方还是很多的: