通过MACE在Android手机上部署深度学习模型

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 表示编译成功。

通过MACE在Android手机上部署深度学习模型_第1张图片

     (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手机上部署深度学习模型_第2张图片

     我们可以看到在路径 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手机上部署深度学习模型_第3张图片

 

好了,深度学习模型就部署到手机端了~哈哈哈

当然,编译过程中也遇到一些坑,我都一一解决了,写了篇博客记录了一下,避免以后采坑:MACE在Android手机上部署深度学习模型——采坑记录

参考:https://blog.csdn.net/u012505617/article/details/85763065

 

你可能感兴趣的:(模型部署,基础技术,Android,模型部署,深度学习)