阿里又出新玩法|开箱即用的算法集 MNN Kit-阿里云开发者社区

开发者社区> 机器智能技术> 正文

阿里又出新玩法|开箱即用的算法集 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

版权声明:如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:developerteam@list.alibaba-inc.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:

阿里云机器智能研究领域主要围绕机器学习等前沿技术开展理论与应用研究。《机器智能技术》圈子基于阿里巴巴达摩院的技术沉淀,围绕【研究报告】、【前沿技术】、【应用案例】、【行业新闻】、【传奇人物】多个方向为广大开发者贡献干货内容。

官方博客