阿里又出新玩法|开箱即用的算法集 MNN Kit

简介: 端智能(On-Device AI)近年来已经从移动开发中的有意思的尝试,慢慢发展成为移动开发工程师核心的工具。今天的移动开发,AI 随处可见:从手机淘宝里的拍立淘,到淘宝直播里的商品识别,到头条的个性化推荐,到抖音直播里的人脸识别,人工智能在移动 app 里发挥的作用越来越大。它也逐渐从 Snapchat 那些社交软件的一些比较好玩的属性(如人脸贴纸),慢慢发展到了淘宝里面那些能够真正为商业赋能的应用场景。在这样的背景下,阿里巴巴淘系技术的MNN团队,近日发布了开箱即用的工具集 MNN Kit。

--------点击屏幕右侧或者屏幕底部“+订阅”,关注我,随时分享机器智能最新行业动态及技术干货------------

image.png

MNN Kit是什么?

MNN Kit 是阿里巴巴把经过多次战役实战考验的常用业务场景的模型进行封装,得到的一系列简单易用的 SDK。它底层的技术基石是推理引擎是 2019 年 5 月开源的 MNN。

急于尝试的同学们:MNN Kit 使用文档与开源的 Demo 工程的 GitHub 地址在此:

这些模型的背后,是淘系内部算法团队多年的技术沉淀。比如,MNN Kit 的人脸检测所使用的一系列模型,是由淘系专注于客户端深度学习视觉算法的 PixelAI 团队提供。

MNN Kit 的模型简介

MNN Kit 目前开放了以下三种场景的 SDK:

  • 人脸检测
  • 人像分割
  • 手势识别

人脸检测

人脸检测是 MNNKit 提供的 AI 解决方案 SDK ,在端上提供了高精度、实时、功能丰富的人脸检测能力,能满足各种基于人脸检测的业务场景。

它提供了人脸基本信息(人脸的矩形坐标,106个关键点坐标,置信度),人脸三个维度(Yaw, Pitch, Roll)的欧拉角度,以及人脸在视频流中的动作(眨眼,点头等)。

106 个关键点的效果图如下:

image.png

人脸检测模型是一个非常通用的能力。在它的基础上,我们可以做出各种有意思的玩法,比如美颜,人脸贴纸,换脸,人脸老化效果等。2018 年双十一晚会现场的“笑脸大作战”互动节目,让明星互动 PK 笑脸数。它的背后是用人脸检测结合笑脸检测模型,实时识别出视频流中的笑脸,并与 emoji 进行匹配。

手势识别

手势检测是 MNNKit 提供的移动端 AI 解决方案 SDK,在端上提供了实时的手势检测和识别能力,基于它应用可以拓展丰富的业务场景和玩法。比如,你可以基于手势检测的模型,开发出猜拳的游戏;或者你可以基于它开发一款用受手势控制 App ,可以让用户在手指不方便接触屏幕的时候(比如吃饭时),可以远程刷手机。你的脑洞是玩法应用的边界。

人像分割

人像分割是 MNNKit 提供的移动端 AI 解决方案 SDK ,在端上提供了实时的人像分割能力。它也是一个基础的模型能力,可以应用到比如证件照自动抠图,协助 PS 等场景。

效果图如下:

image.png

极简的接入流程

MNN Kit 诞生于阿里巴巴淘系,一个需要针对诸如双 11,双 12 ,年货节等大促活动快速上线业务的环境。简单快速将模型整合到 app 里,是 MNN Kit 的必备的特性。

MNN Kit 的基本 API 只有三个:创建实例推理释放实例。使用流程如下图所示:

image.png

下面以 Android 中的人脸检测为例,简要介绍一下接入的代码。

创建实例

我们异步创建 FaceDetector 实例,它会在主线程中回调 onSucceeded:

image.png

推理

我们从 Android Camera API 的 onPreviewFrame callback 中,可以获得相机帧的数据 data。定义好需要在视频流中的人脸动作(如眨眼,张嘴等),即可在当前帧进行人脸检测。

image.png

释放实例

App 需要根据自己应用场景,主动释放模型所占用的内存。以我们的 Demo 为例,在 Activity 的 onDestroy ,释放掉模型占用的内存。你可以根据自己 app 的流程,来决定在什么时间节点进行释放。

image.png

前后处理最佳实践

在一个真正的落地场景中,除了以上三步以外,还有一些针对相机视频流的前后处理。这些处理,在很多时候都是类似的。比如前处理方面,如何正确地处理相机帧,需要考虑摄像头是前置还是后置,相机的旋转;后处理方面,需要把模型输出的结果(例如人脸关键点坐标)映射到原图进行渲染。

MNN Kit 把这些最佳工程实践作为参考实现放在了 Demo 里面。这 Demo 的代码在 MNN Kit的GitHub 开源。

未来

MNN Kit 目前极大的简化了移动开发流程中使用通用模型能力的流程。如果你的应用场景不是完全契合这个通用的场景呢?很多情况下,以一个优秀的基础模型为起点,进行迁移学习,就可以得到适合你自己应有场景的模型。MNN 团队会后续发布产品来帮助大家更加轻松高效地进行迁移学习。

另外,MNN Kit 会逐步覆盖到其他的通用场景的模型。请大家拭目以待!

image.png


原文链接: https://mp.weixin.qq.com/s/SXwQofXaDQ19ncyIYVmMIQ
目录
相关文章
|
缓存 算法 架构师
阿里P9架构师终于把毕生心血而成的分布式高可用算法笔记开源了
说在前面的话 分布式系统无处不在。 一台计算机内部多个互联的处理器组成了一个分布式系统,它们通过“一致性缓存”算法使每个处理器核心看到相同的数据。近三十年来,随着互联网的发展,越来越多的互联网后台系统采用计算机集群的方式来应对海量请求和数据的需求,这个计算机集群也是分布式系统。 为了简化分布式系统的开发,出现了很多为开发者提供分布式框架的开源项目,例如Apache基金会旗下的ZooKeeper项目就是一个应用广泛的分布式框架。 同时,国内也有很多关于如何使用这些分布式框架来搭建应用的书籍,它们极大地推动了分布式系统在国内的应用。我们不仅要知道如何使用这些现成的分布式框架来搭建应用,而且应
|
6月前
|
存储 算法
【数据结构与算法】【腾讯阿里链表面试题】算法题--链表易懂版讲解
【数据结构与算法】【腾讯阿里链表面试题】算法题--链表易懂版讲解
|
6月前
|
算法 搜索推荐 Java
太实用了!阿里内部强推的超全Java算法学习指南,已被彻底征服
算法和数据结构一直以来都是程序员的基本内功。 数据结构可以看作是算法实现的容器,通过一系列特殊结构的数据集合,能够将算法更为高效而可靠地执行起来。
|
6月前
|
算法 NoSQL Java
2023年阿里高频Java面试题:分布式+中间件+高并发+算法+数据库
又到了一年一度的金九银十,互联网行业竞争是一年比一年严峻,作为工程师的我们唯有不停地学习,不断的提升自己才能保证自己的核心竞争力从而拿到更好的薪水,进入心仪的企业(阿里、字节、美团、腾讯.....)
|
11月前
|
存储 人工智能 算法
|
算法 网络协议 Java
48W字?GitHub上下载量破百万的阿里:图解Java、网络、算法笔记
Java基础这个东西,无论在哪个公司都被看得尤为重要,而面试中关于基础的问题也是层出不穷。所以基础可以说是重中之重,当你的基础打牢了,其他的也就没有那么重要了。
|
Kubernetes 算法 关系型数据库
No.3 腾讯,阿里,字节,优科面经(上-算法篇)
No.3 腾讯,阿里,字节,优科面经(上-算法篇)
|
30天前
|
算法 安全 数据安全/隐私保护
基于game-based算法的动态频谱访问matlab仿真
本算法展示了在认知无线电网络中,通过游戏理论优化动态频谱访问,提高频谱利用率和物理层安全性。程序运行效果包括负载因子、传输功率、信噪比对用户效用和保密率的影响分析。软件版本:Matlab 2022a。完整代码包含详细中文注释和操作视频。
|
7天前
|
算法 数据安全/隐私保护 索引
OFDM系统PAPR算法的MATLAB仿真,对比SLM,PTS以及CAF,对比不同傅里叶变换长度
本项目展示了在MATLAB 2022a环境下,通过选择映射(SLM)与相位截断星座图(PTS)技术有效降低OFDM系统中PAPR的算法实现。包括无水印的算法运行效果预览、核心程序及详尽的中文注释,附带操作步骤视频,适合研究与教学使用。
|
15天前
|
算法 数据挖掘 数据安全/隐私保护
基于FCM模糊聚类算法的图像分割matlab仿真
本项目展示了基于模糊C均值(FCM)算法的图像分割技术。算法运行效果良好,无水印。使用MATLAB 2022a开发,提供完整代码及中文注释,附带操作步骤视频。FCM算法通过隶属度矩阵和聚类中心矩阵实现图像分割,适用于灰度和彩色图像,广泛应用于医学影像、遥感图像等领域。
下一篇
无影云桌面