小米开源框架mace android案例调试

article/2025/9/15 15:48:20

小米开源框架mace android案例调试

1. 准备工作

编译环境准备:请参照小米官方的文档:

https://mace.readthedocs.io/en/latest/installation/env_requirement.html

Required dependencies

SoftwareInstallation commandTested version
Python 2.7
Bazelbazel installation guide0.13.0
CMakeapt-get install cmake>= 3.11.3
Jinja2pip install -I jinja2==2.102.10
PyYamlpip install -I pyyaml==3.123.12.0
shpip install -I sh==1.12.141.12.14

Optional dependencies

SoftwareInstallation commandRemark
Android NDKNDK installation guideRequired by Android build, r15b, r15c, r16b
ADBapt-get install android-tools-adbRequired by Android run, >= 1.0.32
TensorFlowpip install -I tensorflow==1.6.0Required by TensorFlow model
Dockerdocker installation guideRequired by docker mode for Caffe model
Numpypip install -I numpy==1.14.0Required by model validation
Scipypip install -I scipy==1.0.0Required by model validation
FileLockpip install -I filelock==3.0.0Required by Android run
2. 克隆源码
git clone https://github.com/XiaoMi/mace.git
修改最外层mace文件夹 为mace_new


3. 克隆mace model zoo
git clone https://github.com/XiaoMi/mace-models.git

附上 mace-models与mace的源码,直接获取是最新的代码,可能后期与本篇博客的教程不一致,这里放上我调试时用的源码:
https://download.csdn.net/download/qq_27063119/10537143

4. 编译mace library
cd mace_new
bash tools/build-standalone-lib.sh




5.如果想要保护模型不被盗用,可以在转化静态库时将模型转化为C++代码,转化有两种方式
(1) 将模型图转换为代码,将模型权重转换为具有以下模型配置的文件
model_graph_format: codemodel_data_format: file

(2) 将模型图和模型权重转换为下面的模型配置代码
model_graph_format: codemodel_data_format: code
修改对应的yml文件


以使用mobilenet-v2为例,修改mace-models/mobilenet-v2 文件夹下的mobilenet-v2.yml和mobilenet-v2-host.yml


model_graph_format: filemodel_data_format: file
修改为
model_graph_format: codemodel_data_format: code
并保存


6.将模型转化为mace格式的模型
python tools / converter . py convert -- config =/ media/root/B/python/mace_0711 / mace - models / mobilenet - v2 / mobilenet - v2 . yml



转化后会生成以下文件,其中include,lib,mobilenet-v2是需要用的


使用android studio打开 mace中的安卓项目


首先选择自己的ndk路径


选择好后,在android项目中的macelibrary/src/main/cpp 文件夹下
-- 新建include/mace/public文件夹
-- 新建lib文件夹
-- 新建model文件夹
如图所示:

接着:
(1)将builds/include/mace/public/ 下的mace.h 以及 mace_runtime.h拷贝进去macelibrary/src/main/cpp/include/mace/public中
(2)将builds/mobilenet-v2/include/mace/public/ 下的mace_engine_factory.h 以及 mobilenet_v2.h拷贝至 macelibrary/src/main/cpp/include/mace/public中
(3)将builds/mobilenet-v2/model 下的mobilenet-v2.a 拷贝至 macelibrary/src/main/cpp/model中,并修改mobilenet-v2.a 为 mobilenet.a
(4)将builds/lib下的文件都拷贝至macelibrary/src/main/cpp/lib中
(5)修改macelibrary/src/main/cpp/include/mace/public下所有.h文件中引入的文件地址
以mace_engine_factory.h为例:修改成下图所示,mace_runtime.h,mobilenet_v2.h文件内都要改

全部改完后,由于这个测试的app默认是使用mobilenet_v1的模型的,所以我们更改一下代码让他使用mobilenet_v2,修改com.xiaomi.mace.demo.result下的InitData.java文件中的
model = MODELS [ 0 ];
改为:
model = MODELS [ 1 ];
即可

run,手机上安装后同意授权相机等,效果如图所示:


测试手机为:
小米6
高通骁龙835处理器,6G运行内存
mobilenet_v2的cpu运行速度平均为:1张图片/65ms
mobilenet_v2的gpu运行速度平均为:1张图片/20ms
很明显,检测的速度非常快,小米的mace网络调优很明显。



http://chatgpt.dhexx.cn/article/dhnNAYEH.shtml

相关文章

MACE的环境搭建——conda实现

1. MACE 主页 MACE 的github地址:https://github.com/XiaoMi/mace 小米官方的相关文档:https://mace.readthedocs.io/en/latest/ 对开发环境的要求,可以按照以下指令安装相关的包: 2. 创建虚拟环境并安装常见的包 (1) 创建虚拟环境…

小米开源自研移动端深度学习框架MACE

小米人工智能与云平台副总裁崔宝秋博士在开源中国开源世界高峰论坛上发表《小米 AI 时代的开源》演讲,并在会上宣布,开源小米自研的移动端深度学习框架 Mobile AI Compute Engine (MACE)。 6 月 28 日,小米人工智能与云平台副总裁崔宝秋博士在…

小米开源框架MACE 源码阅读笔记

转载自 https://www.jianshu.com/p/7061fd67d419 前扯 在前不久的某高峰论坛上,小米开源了其移动端的深度学习框架Mobile AI Compute Engine(MACE)。这对于很多致力于嵌入式端优化的人来说,无疑是巨大的惊喜(新坑出现&…

Mace-micro引擎编译与测试

官方简介 Mobile AI Compute Engine (MACE) 是一个专为移动端异构计算平台(支持Android, iOS, Linux, Windows)优化的神经网络计算框架。 主要从以下的角度做了专门的优化: 性能 代码经过NEON指令,OpenCL以及Hexagon HVX专门优化,并且采用W…

小米MACE开源框架搭建

一、环境配置 请参照小米官方的文档: https://mace.readthedocs.io/en/latest/installation/env_requirement.html For Android build, ANDROID_NDK_HOME must be confifigured by using export ANDROID_NDK_HOME/path/to/ndk It will link libc instead of gnustl …

小米AI平台MACE的构建和部署

1.准备部署文件 需要准备的部署文件包括头文件(.h), mace库文件(.),转化后的模型(.a),这里以resnet18v1-opt.onnx模型为例 1.1. 优化onnx模型 # Optimize your model $python MACE_ROOT/tools/onnx_optimizer.py resnet18v1.onnx resnet18v1-opt.onnx…

小米开源框架MACE - 源码阅读笔记一

首先先一目了然看一下其目录结构(这些个源码可以在github上下载到,只要在GitHub搜索mace即可): 介绍 MACE(Mobile AI Compute Engine)是一个针对移动异构计算平台优化的深度学习推理框架。MACE提供工具和文…

MACE的环境搭建和工程构建

1. MACE 主页 MACE 的github地址:https://github.com/XiaoMi/mace 小米官方的相关文档:https://mace.readthedocs.io/en/latest/ 对开发环境的要求,可以按照以下指令安装相关的包: 2. 安装docker 参照教程:https:/…

meterpreter之timestomp命令修改文件MACE时间

文章目录 前言一、timestomp的使用前提二、MACE时间1、文件系统简述2、linux操作系统3、windows操作系统 三、timestomp使用详解1.查看帮助文档2.使用-v选项查看文件信息3.使用-f选项拷贝文件MACE时间4.使用-m/-a/-c/-e修改文件MACE时间5.使用-b/-r使MACE时间显示清空 总结 前言…

小米开源AI框架mace编译构建

目录 简介 环境要求 1 安装 Bazel 2 安装Android NDK 3 在Ubuntu16.04下安装Docker(17.09) 构建并运行示例模型 1 拉取MACE项目 2 拉取MACE Model Zoo项目 3 构建通用MACE库 4 将预先训练的mobilenet-v2模型转换为MACE格式模型 编译运行DEMO…

使用MACE加速---使用篇

最近开始研究如何对手机应用中的识别算法进行加速,搜索后发现了小米的MACE。 Mobile AI Compute Engine (MACE) 是一个专为移动端异构计算设备优化的深度学习前向预测框架。 覆盖了常见的移动端计算设备(CPU,GPU和DSP)。支持的硬…

小米AI推理框架MACE介绍

MACE 是小米公司自研的移动端深度学习框架 Mobile AI Compute Engine,2017年12月15日于公司内部正式发布。2018年6月28日,在“2018(第十三届)开源中国开源世界高峰论坛”上,小米公司人工智能与云平台副总裁崔宝秋博士宣…

MACE 使用笔记

环境安装 tensorflow 安装,一直不太想用mace的部分原因是不支持tensorflow2.模型, 但为了GPU(OpenCL)还是要用啊。 Shell set -e 学习笔记: shell 中的 set -e , set e 用法_滴水成川-CSDN博客_linux set-eset -eset命令的-e参…

小米开源框架MACE 简介

转载自 https://www.jianshu.com/p/2ab68779d05b 前言 MACE 是小米公司自研的移动端深度学习框架 Mobile AI Compute Engine,2017年12月15日于公司内部正式发布。2018年6月28日,在“2018(第十三届)开源中国开源世界高峰论坛”上…

MACE(1)-----环境搭建

学习MACE也有一个月了,将其划分三步来学习。本文是MACE学习的第一步即MACE环境的搭建。之后还有两步mace的编译和mace工程化。 MACE(2)-----模型编译:https://www.cnblogs.com/missidiot/p/9509831.html MACE(3)-----工程化:https://www.cnbl…

JDK , Tomcat , Eclipse 版本对应关系

1. JDK , Tomcat 版本对应关系 参考网址 : https://tomcat.apache.org/whichversion.html 2. JDK , Eclipse 版本对应关系 参考网址 : https://wiki.eclipse.org/Eclipse/Installation 作者 Github : tojohnonly , 博客 : EnskDeCode

如何查看eclipse的版本

阅读数:20254 转载文章,原文地址:https://blog.csdn.net/duqian94/article/details/52386076 由于作者已经写的很清楚了,就没有做修改直接转载过来了。 本篇文章主要讲解的是三种查看eclipse版本的方法(超详细&#xf…

Eclipse各版本有什么区别?

一直以来对eclipse这个IDE的各发行版本都弄不清楚,今天做一个梳理和记录。 Eclipse基本内核包括:图形API(SWT/Jface),Java开发环境插件(JDT),插件开发环境(PDE&#xff0…

超方便插件lombok的使用(eclipse版本)

1 准备 下载地址: 链接:https://pan.baidu.com/s/1Qoy2VRoERqZcgsOVYl3mZQ 提取码:2chx 2.安装 点击 或者找到对应的lombok文件所在目录执行java -jar lombok(1).jar 会自动扫描eclipse所以目录,也可以自己选择点击"S…

查看Eclipse版本号及各个版本区别

1. 找到eclipse安装目录 2. 进入readme文件夹,打开readme_eclipse.html 3. readme_eclipse.html呈现的第二行即数字版本号,如: Eclipse Project Release Notes Release 4.2.0 Last revised June 8th, 2012 附:Eclipse各个版本简介…