1. MACE的环境搭建 参考我的博客:MACE的环境搭建——conda实现
2. 构建项目 (1)下载MACE项目到本地
git clone https://github.com/XiaoMi/mace.git
(2)下载MACE Model Zoo 项目
git clone https://github.com/XiaoMi/mace-models.git
(3)编译MACE生成库文件
/path/to/mace是你自己刚才下载的mace代码路径
cd /path/to/mace
# Build library
# output lib path: builds/lib
bash tools/bazel_build_standalone_lib.sh
开始编译,出现Build completed successfully 表示编译成功。
文章图片
(4) 生成C++代码
首先修改文件,修改mace-models/mobilenet-v2下的mobilenet-v2.yml和mobilenet-v2-host.yml文件,把
model_graph_format: file
model_data_format: file改为:model_graph_format: code
model_data_format: code
然后转换文件
python tools/converter.py convert --config=/MACE/mace-models/mobilenet-v2/mobilenet-v2.yml
【模型部署|通过MACE在Android手机上部署深度学习模型】输出如下:
文章图片
我们可以看到在路径 builds/lib 下里面的文件夹里面生成的 .so 文件,这正是我们需要的库文件,为后期的Android的JNI调用做准备。C++的头文件在build/mobilenet-v2/include/mace/public 目录下。
3.生成Android的apk文件 (1) 在/MACE/mace/mace/examples/ 目录下看到android文件夹,这个就是AndroidStudio模板工程,其中是不完善的,缺少相关的lib, model 和 head file,需要添加进来。 需要执行build.sh进行编译和拷贝。
cd mace/exampls/android
./build.sh dynamic
# if libmace.a is needed, update `macelibrary/CMakeLists.txt` and run with `./build.sh static`.
出现下面的提示,说明编译成功了:
文章图片
(2) 安装apk到手机
# running after build step and in `mace/exampls/android` directory
adb install ./app/build/outputs/apk/app/release/app-app-release.apk
(3) 运行apk
记得给app相机使用权限,在AndroidStudio上第一次调试有闪退现象,自己再重新打开app就可以了,运行的是物体识别的模型。
文章图片
好了,深度学习模型就部署到手机端了~哈哈哈
当然,编译过程中也遇到一些坑,我都一一解决了,写了篇博客记录了一下,避免以后采坑:MACE在Android手机上部署深度学习模型——采坑记录
参考:https://blog.csdn.net/u012505617/article/details/85763065
推荐阅读
- Android|后台启动 Activity
- Android|Android 基础控件学习--Timer
- Android|Android 基础控件学习--Menu点击跳转
- 浅识Flutter笔记|Android Studio里配置GenyMotion
- flutter|flutter实现瀑布流布局
- Pytorch|超最简单的安卓端深度学习模型部署教程——pytorch2onnx2pdinfer2android
- android|解决Android中使用ClickableSpan导致的内存泄漏
- Android|Kotlin 协程(二) -协程取消与超时
- 人工智能|PPF(Point Pair Features)原理及实战技巧