加入收藏 | 设为首页 | 会员中心 | 我要投稿 济宁站长网 (https://www.0537zz.cn/)- 行业智能、边缘计算、专有云、AI硬件、5G!
当前位置: 首页 > 站长资讯 > 动态 > 正文

基于MNN的移动端深度学习SDK,支持安卓和iOS

发布时间:2021-03-04 16:28:26 所属栏目:动态 来源:互联网
导读:编译好的包的二进制 Release 版本,提供端侧运行环境。 Core 基础层,这主要抽象和封装与 MNN c++接口调用粒度基本一致的上层 API,iOS 通过 OC 接口提供,Android 通过 Java 接口提供(TODO)。这一层同时也为上层 SDK 提供一些公共服务类或结构定义。 业务
  1. 编译好的包的二进制 Release 版本,提供端侧运行环境。

  2. Core 基础层,这主要抽象和封装与 MNN c++接口调用粒度基本一致的上层 API,iOS 通过 OC 接口提供,Android 通过 Java 接口提供(TODO)。这一层同时也为上层 SDK 提供一些公共服务类或结构定义。

  3. 业务 Kit 层,包括了人脸检测、手势识别封装的 API。据项目介绍,之后的业务 Kit 层会不断扩展。

内部原理

因为 MNNKit 主要提供阿里的端侧 AI 能力,因此
 

如,当用户需要调用 API 的时候,需要首先创建实例,然后将图像、视频或其他结构化数据输入,进行 AI 模型的推理工作。工作完成后释放实例即可。

目前 MNNKit 已支持的 API 有:

  • 人脸检测API

  • 手势识别 API

  • 人像分割 API

以人脸检测为例,检测内容主要分为三大板块:

  • 人脸基本信息

  • 人脸位置的矩形坐标

  • 106 个关键点坐标(区分被遮挡的和未被遮挡的)

  • 置信度
     

    示,该流程是 iOS 和安卓设备后置摄像头正向拍摄后,在移动端上的整体处理过程。

    首先,系统从摄像头获取数据,作为 SDK 的输入。接着,SDK 会进行如下操作:

    1. 在 MNN 引擎执行推理之前,对原始的输入进行预处理,保证输入数据中的人脸为正向

    2. 使用 AI 模型进行推理;

    3. 推理后,产生基于输入图像(预处理之后的)坐标系的关键点结果;。

    4. 把关键点坐标变换到和屏幕渲染坐标系相同的方向,方便渲染。

    程应用中,最后的结果关键点要显示在用户屏幕上,前端会使用一个用来渲染的"画布"。画布的坐标系被称为渲染坐标系,

    在 SDK 检测的最后一步,我们将关键点变换到和渲染坐标系相同的方向,然后等比例映射关键点坐标到渲染坐标系的坐标即可。映射后可以直接渲染到画布上

    代码示例

    MNNKit 提供了包括人脸检测、手势识别等方面的示例代码。接下来我们以人脸检测为例,看看怎样可以在安卓或 iOS 中调用 API 进行推理工作。

    安卓代码

    前文提到,调用 API 需要首先创建一个实例,以下为异步创建 

(编辑:济宁站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读