小米MACE开源框架搭建

article/2025/9/15 16:39:57

一、环境配置

 

请参照小米官方的文档: 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 if NDK version >= r17b and bazel version >= 0.13.0, please refer to NDK cpp-support.

 

二、框架搭建

  

  1、下载小米MACE镜像

    轻量版 mace-dev-lite 镜像下载    

# Pull lite edition docker image
docker pull registry.cn-hangzhou.aliyuncs.com/xiaomimace/mace-dev-lite
# Build lite edition docker image
docker build -t registry.cn-hangzhou.aliyuncs.com/xiaomimace/mace-dev-lite ./docker/mace-dev-lite

        完全版mace-dev镜像下载(包含多版本的NDK和一些其他工具)

# Pull full edition docker image
docker pull registry.cn-hangzhou.aliyuncs.com/xiaomimace/mace-dev
# Build full edition docker image
docker build -t registry.cn-hangzhou.aliyuncs.com/xiaomimace/mace-dev ./docker/mace-dev

  2、创建容器

       以mace-dev-lite为例

# Create a container named `mace-dev`
docker run -it --privileged -d --name mace-dev \-v /dev/bus/usb:/dev/bus/usb --net=host \-v /local/path:/container/path \-v /usr/bin/docker:/usr/bin/docker \-v /var/run/docker.sock:/var/run/docker.sock \registry.cn-hangzhou.aliyuncs.com/xiaomimace/mace-dev-lite
# Execute an interactive bash shell on the container
docker exec -it mace-dev /bin/bash

  3、克隆源码

git clone https://github.com/XiaoMi/mace.git
git fetch --all --tags --prune# Checkout the latest tag (i.e. release version)
tag_name=`git describe --abbrev=0 --tags`
git checkout tags/${tag_name}

  4、进行源码编译、生成库文件以及创建工程、测试。

  方法一

    (1)一步直接完成编译和相关库、文档的创建和配置 。不需要任何其他操作。

  cd mace/example/android./build.sh

    (2)使用Android studio打开mace/example/下的android项目,在file>Project Structure>SDK Location中的Android NDK Location 中 配置Android studio 的NDK 路径到自己所安装的路径。

     (3)连接Android手机进行测试。

    注:若出现闪退现象,可能手机权限不够,可以对测试机进行 ROOT 后 再行测试。(亲身经历)

  方法二

   (1)克隆mace model zoo ,放在与mace文件同目录下。

  git clone https://github.com/XiaoMi/mace-models.git

  (2)编译mace library。

  cd macebash tools/build-standalone-lib.sh

  (3)在转化静态库时将模型转化为C++代码,转化有两种方式

     以使用mobilenet-v2为例:

      修改   mace-models/mobilenet-v2    文件夹下的   mobilenet-v2.yml  和   mobilenet-v2-host.yml。

      1)将模型图转换为代码,将模型权重转换为具有以下模型配置的文件。
 
            model_graph_format: codemodel_data_format: file

      2)将模型图和模型权重转换为下面的模型配置代码。

                model_graph_format: codemodel_data_format: code

          --在此建议全部转化为模型配置代码--

      即 将 mobilenet-v2.yml 和 mobilenet-v2-host.yml  文件中的         

           model_graph_format: codemodel_data_format: file
           #改为#
           model_graph_format: codemodel_data_format: code

      保存

  
  (4)将模型转化为mace格式的模型。
 
  python tools/converter.py convert --config=/path/to/mace-models/mobilenet-v2/mobilenet-v2.yml       #/path/to/  为自己的文件路径

  

   (5)转化后会在 builds/ 文件夹下生成  include, lib, mobilenet-v2 等文件夹。

 

   (6)在android项目中的macelibrary/src/main/cpp 文件夹下

    

    mace/example/android/macelibrary/src/main/cpp 文件夹下

          -- 新建include/mace/public文件

       -- 新建lib文件夹

       -- 新建model文件夹
  (7)将库文件夹mace/builds/下的相关文件复制到工程文件 mace/example/android/ 下的相关文件夹下 。
    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.a4、将 builds/lib下的文件都拷贝至macelibrary/src/main/cpp/lib中5、修改 macelibrary/src/main/cpp/include/mace/public 下 所有 .h 文件中引入的文件地址

        为

         #include "src/main/cpp/include/mace/public/mace.h"

     注:若文件中没有路径文件,则在头文件下加上以上地址;若存在,则跟换为以上地址。

 

  (8)使用Android studio打开mace/example/下的android项目,在file>Project Structure>SDK Location>Android NDK Location 中 配置

     Android studio 的NDK 路径到自己所安装的路径。

 

   (9)由于这个测试的app默认是使用mobilenet_v1的模型的,所以我们更改一下代码让他使用mobilenet_v2,修改android studio工程下

     app/src/main/java/com.xiaomi.mace.demo.result/InitData.java文件中的。 

         model = MODELS[0];改为:model = MODELS[1];

     

 

       (10)连接Android手机进行测试。

    注:若出现闪退现象,可能手机权限不够,可以对测试机进行 ROOT 后 再行测试。(亲身经历)

 

 

 

 

   

    

   

    

 

转载于:https://www.cnblogs.com/kang06/p/9477043.html


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

相关文章

小米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各个版本简介…

安装两个Eclipse 版本不一致,高版本无法打开

Could not create the Java Virtual Machine,A fatal exception has occurred。 首先删除了 工作空间的配置 然后删除掉C:\Windows\System32 里面的三个java文件 java.exe javas.exe javaw.exe 配置好环境变量就好了

eclipse选择java版本_使用 Eclipse 开发版本选择和下载说明

现在越来越多的人开发使用 IDEA,使用 Eclipse 开发的已经渐渐变少了,这篇就简单介绍下 Eclipse 的版本选择和下载,供目前还在坚守使用 Eclipse 开发的同胞们~ Eclipse 简介 Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,…

解决pydev与eclipse版本问题

eclipsepydevanaconda版本问题方法: 在eclipse安装pydev插件时,会遇见安装后在“Preference”不显示“pydev”现象,原因:下载的pydev版本与eclipse版本不匹配,导致无法使用,经过反复调试,发现官…

Eclipse版本升级(2020-12)

文章目录 Eclipse版本升级(2020-12)内置工具栏安装本地安装包安装 Eclipse版本升级(2020-12) Eclipse内安装软件通常会通过内置软件安装方式或者是自己下载安装包方式安装。同样,Eclipse版本升级也可以用这两种方式。…

Eclipse版本对应的jdk需求及查看eclipse的java版本怎么看Eclipse需要安装哪个版本jdk

1)找到eclipse安装目录。 2)进入readme文件夹,打开readme_eclipse.html。 Eclipse软件 jdk及种操作方法 自行百度网盘提取 链接:https://pan.baidu.com/s/1JEYq4Lo8aEms7ClPIchLsA?pwddt4z 提取码:dt4z 我先给一个我翻译过的图&#x…