[Mediapipe]Mediapipe的Android配置
近来还是独自研究一些比较有趣的东西,google的一个框架
Mediapipe
Android开发估计一下工程就懵,感觉工程根本就不是Android的工程,我也是费了很大的力气才编译成功。
1.首先配置bazel环境,bazel是用于编译机器学习代码工具
下面是mac环境的命令
# If Bazel 1.1.0+ was installed.
$ brew uninstall bazel
# Install Bazel 1.1.0
$ brew install https://raw.githubusercontent.com/bazelbuild/homebrew-tap/f8a0fa981bcb1784a0d0823e14867b844e94fb3d/Formula/bazel.rb
$ brew link bazel
# Run 'bazel version' to check version of bazel
2.安装opencv3环境,这个是用于图像检测使用
$ brew install opencv@3
# There is a known issue caused by the glog dependency. Uninstall glog.
$ brew uninstall --ignore-dependencies glog
3.配置python
$ brew install python
$ sudo ln -s -f /usr/local/bin/python3.7 /usr/local/bin/python
$ python --version
Python 3.7.4
$ pip3 install --user six
4.安装as 3.5以上的版本
Android SDK Build-Tools 28 or 29
Android SDK Platform-Tools 28 or 29
Android SDK Tools 26.1.1
Android NDK 17c 及以上(注意NDK路径)
./bash_profile中需要配置
export ANDROID_HOME=/usr/local/home/Android/Sdk
export ANDROID_NDK_HOME=/usr/local/home/Android/Sdk/ndk/<版本号>
5.在AS的Plugin中安装bazel插件,在 macos 上, 则选择 Android Studio -> Preferences -> Bazel settings
在mac命令中输入 $ which bazel,得到bazel的地址
然后修改 Bazel binary 的路径为中的路径
6.选择 File->Import Bazel Project
选择 Workspace :/path/to/mediapipe (media工程的目录),点击 Next
选择 Generate from BUILD file (/path/to/mediapipe/BUILD ),点击 Next
修改 Project View 为下面代码,要打开android_sdk_platform的注释,有多个可以选,选一个就可以了,点击Finish
targets:
//mediapipe/examples/android/...:all
//mediapipe/java/...:all
android_sdk_platform: android-29
7.配置bazel编译命令,以facedetectioncpu工程为例
选择 Bazel -> Sync -> Sync project with Build files,这一步有可能会出错,需要翻墙,连接 Android 设备到工作空间,如果电脑内存太小,会同步失败
选择 Run… -> Edit Configurations…
7.1 Select Templates -> Bazel Command.
7.2 Enter Target Expression: //mediapipe/examples/android/src/java/com/google/mediapipe/apps/facedetectioncpu
7.3 Enter Bazel command: mobile-install.
7.4 Enter Bazel flags: -c opt --config=android_arm64.
7.5 Press the [+] button to add the new configuration.
7.6 Select Run to run the example app on the connected Android device
8.连接手机编译,需要java8环境
如果你使用小米MIUI11编译过了安装,也会显示启动失败,提示Andoridx的库不兼容
你使用华为等机器,不会出现这个问题.
9.经过这些之后,你看到demo能运行成功,那就恭喜你了。