1. 概述

MNN 工作台 开箱即用的 Playground 功能,是一个简单快速地创建 MNN 机器学习应用工具。

1.1 三端一体能力

MNN 工作台上提供了一套基于MNN、MNNCV、OpenCV 以及 Numpy 的机器学习/深度学习三端一体 Playground 能力,能够实现一套 Python 代码在 Mac/Windows/Android 以及 iOS 上多平台同时运行。此外,工作台提供了一套三端通用的用户界面操作 API,称为 Playground API,能够实现同一套Python API在 Mac / iOS / Android 上执行。该 API 提供了包括摄像头调用,图片选择以及图片渲染等在内的UI操作,能够快速搭建跨平台应用。关于Playground API 的更多介绍,请参考文档 具体使用方式,请阅读《4.5 Playground API 使用手册》。**
基于这一套技术,用户可以实现机器学习/深度学习算法在 Mac/Windows 上进行调试并实时展示算法效果,调试完成后直接无线推送到移动端,进行端测模型能力效果测试和验证。

1.2 Playground 调试与验证

工作台上提供了 PC playground 能力,在工作台上能够直接进行机器学习/深度学习算法性能调试和效果验证。此外,我们提供了 EasyMNN Playground app 配合 MNN 工作台使用能够通过扫码实现无线推送,将算法推送到移动端(如手机)进行移动端验证,关于如何使用 EasyMNN Playground App 请参考《2.4 EasyMNN Playground App 安装》
如果你想要在自己的 App 内部嵌入无限推送调试验证 MNN 的能力,可以参考《2.3 MNN 工作台 SDK EasyMNN 使用手册》

2. 如何使用 MNN 工作台 Playground

2.1 PC playground

PC playground 能够在工作台上直接运行代码,展示算法效果,以下以一个空工程来演示 PC playground能力。

  1. 打开工作台主界面,点击create a new project按钮,新建一个工程,如下图所示。

截屏2020-09-08下午7.19.46.png
图例 1. MNN工作台主界面

  1. 点击左侧栏的Models按钮,进入工作台开箱即用能力集页面,如下图所示。

image.png
图例 2. MNN工作台开箱即用能力集界面

  1. 点击页面中的create Empty Playground按钮,新建一个三端一体Playground工程,如下图所示。输入工程名,如”Gan”。

image.png
图例 3 新建一个 Playground 工程示意图

  1. 点击存储按钮,进入 Playground 界面,如下图所示。

image.png
图例 4. MNN工作台 Playground 模板界面

  1. 此时,工作台自动生成一个三端一体空工程,先点击当前界面右上角的image.png,选择当前工程的入口文件,如下图所示,模板工程默认入口文件为main.py。

image.png
图例 5. Playground工程选择入口文件示例图

  1. 入口文件选择完成后,我们点击 Preview 按钮image.png,工作台会从运行入口文件,如main.py,如果出现代码问题,会显示代码的错误信息,如下图所示。

image.png
图例 6. Playground 代码 Preview 错误展示示例图

  1. 如果代码不存在问题,则会进入到 PC 端的 Playground 界面,如下图所示。

image.png
图例 7. Playground 代码 Preview 正常示例图

2.2 EasyMNN Playground App 移动端验证


2.2.1 EasyMNN Playground App 应用下载

关于如何使用 EasyMNN Playground App 请参考《2.4 EasyMNN Playground App 安装》

2.2.2 无线推送与移动端验证

一定要确保自己安装了 EasyMNN Playground App 后再进行如下的步骤。

在 PC 上完成算法模型调试和验证后,MNN 工作台提供了一套无线推送的能力,通过 EasyMNN Playground App扫码连接到 MNN 工作台,将应用无线推送到移动端。

以上一节工程为例,点击 MNN 工作台左上角的二维码图标,如下图所示。
image.png图例 8. MNN 工作台无线扫码示例

MNN 工作台会弹出一个连接二维码,如下图所示。
image.png图例 9. 工作台移动端连接二维码示例

用 EasyMNN Playground App 扫码,将手机与 MNN 工作台连接。连接成功后,页面左上角会显示连接的手机名称,本例手机名称为”DeviceAIPhone”,如下图所示。
image.png
图例 10. MNN 工作台 Playground 连接手机设备示例图

点击推动按钮image.png,将 Playground 的代码推动到端侧,如手机等。则端上会出现以下应用界面,完成应用无线推送,你就可以在手机上进行模型验证了。

image.png

图例 11. EasyMNN Playground 移动端 Debug UI界面示例图

至此,我们完成关于 EasyMNN Playground 移动端验证的介绍。

3. 官方 Playground 列表

MNN 工作台官方维护了一系列基于MNN的端侧实时开箱即用的深度学习算法能力,包含OCR、人像分割、人脸检测以及风格迁移等一系列主流算法能力。以下为开源的 Playground 列表以及对应信息。

Playground能力 描述
OCR 工作台提供通用 OCR 检测能力,包括模型文件,代码以及对应的配置文件,能够实时对图片中的中文字符进行检测和识别。该能力下 MNN 模型大小为2.7M,包括字符检测模型 1.1M 与字符识别模型 1.6M。
人脸检测 工作台提供人脸检测及人脸关键点检测能力,包括模型文件,代码以及对应的配置文件,能够实现对图片中的人脸以及106个人脸关键点检测。该能力下的模型文件大小仅为0.98M,其中人脸检测模型为517k,人脸关键点检测模型为491k。
人像分割 工作台参考业界主流的人像分割实现方案,内置提供人像分割能力,包括模型文件,代码以及对应的配置文件,能够实现对图片中人物的风格,如下图所示。该能力下的模型文件大小仅为279K。
人脸卡通脸 工作台提供了一个人脸卡通脸生成的方案,基于人脸检测,人脸关键点以及人脸漫画脸风格迁移等深度学习能力,能够将图片中人脸转变成卡通脸形象。该Playground能力模型大小为1.3M,其中人脸检测模型为517k,人脸关键点检测模型为491k,人脸卡通脸生成模型大小为424k。该模型能力的效果如下图所示,能够将任意人脸生成对应的卡通脸。
实时风格滤镜 工作台提供了四种风格的实时滤镜能力,能够对视频背景进行风格迁移。该模型大小仅为80k,能够在端侧实现实时滤镜能力。
图片漫画风格迁移 工作台提供漫画风格迁移能力,包括模型文件,代码以及对应的配置文件,能够实现图片到漫画风格的转变,如下图所示。该能力下的模型文件大小仅为1.5M。

表 1. MNN 工作台官方 Playground 模型列表
**

4. 其他模型获取及贡献

如果对 MNN 工作台中 Playground 中的模型觉得满意,同时也有更高精度、更快性能的需求,欢迎通过《1.4 联系 MNN 工作台及 MNN 作者》联系我们。

如果你手上有不错的模型示例愿意对外贡献,也欢迎通过 MNN 模型市场上传,开放给大家使用,我们会对质量高的开放模型赠送相关精美礼品,具体步骤可以参考《4.2 MNN 模型市场》