开发者

移动开发者实现AI业务不可错过的神器—飞桨移动端部署工具LiteKit?

开发者 https://www.devze.com 2023-01-21 12:31 出处:网络 作者:开发技巧
目前,越来越多的人工智能场景将人工智能能能力直接部署到移动终端,其优势主要在于实时、省流、安全等方面。这些AI能力给移动端产品带来巨大的想象空间,促进了移动互联网下半场的繁荣。

目前,越来越多的人工智能场景将人工智能能能力直接部署到移动终端,其优势主要在于实时、省流、安全等方面。这些AI能力给移动端产品带来巨大的想象空间,促进了移动互联网下半场的繁荣。

在移动端智能化的背后,离不开移动开发者以及人工智能应用算法工程师。在实际业务开发中,算法工程师开发出来的AI算法,最终都要交付给移动开发者进行工程落地。这个落地的链条其实难度相当大,总结来说涉及以下两方面:

-一款没有任何AI实践的产品,不仅要进行模型的训练、预测引擎的集成,还需要根据不同模型进行数据的前后处理,图像的各种颜色空间、存储格式的转换,过程中可能会使用到Python、C/C 、iOS、Android等多种语言,接入门槛高。

-同时,接入AI能力的过程非常复杂,涉及引擎调用相关开发、前后处理相关开发、甚至并发相关处理,考虑到移植和复用情况,更需要兼容多种业务场景、进行模块化拆分,导致工作量成倍增加。

如果您也面临以上问题,那么LiteKit将是您最好的选择!话不多说,我们先看效果!

  视频超分

(高清原视频截图) (低清超分后视频截图)

这个图片来自百度百家号推出壮美极境公益项目的视频。左边的图片为480p原始视频截图,右边的图片为360p视频通过超分能力重建的480p视频截图。通过左右视频屏幕截图的比较,可以看到超级视频(右侧)在手机上与原始视频(左侧)几乎一致的视觉体验。

(超分前);

左图为360p原始视频的单帧画面,右侧将360p视频超过480p画面,比较画面扩大后,画面不仅没有损失

所谓视频超级,一般来说,将低像素视频转换为高像素,视频可以更清晰!

对于手机场景来说,视频本身最重要的不仅仅是追求终极的超级效果,速度和效果的平衡。手机视频的主要目标是在手机方面达到25FPS(手机方面的视频通常是25FPS,通常在24FPS的视觉上感觉不到卡尔顿)的前提下,优化和重建画面。

LiteKit提供的视频是业界首次开放的25FPS视频超解决方案。手机移动应用中最常见的是360p视频。LiteKit支持在360p到480p场景下进行25FPS的超级。此外,LiteKit的视频可以直接处理播放器解码后的YUV420视频框架数据,获得相同格式的输出数据,消除了转换视频框架数据的过程,大大方便了用户的使用,降低了使用时间。

性能优化

LiteKit视频超能力模型,经过反复性能优化,可支持360p-gt480p超能力场景下播放器25FPS的持续超能力。

从上面的测试结果可以看出,在18年的iPhoneXsMax上,视频超也可以达到32.15ms的预测速度,支持播放器25FPS的超级。在最新的iPhone12中,与iPhoneXsMax相比,预测速度将进一步提高30%。

手势识别

这是LiteKit提供的手势识别AI能力。正确检测手势位置的矩形坐标、手势类型和信赖度,支持识别手、五指手、v手、握拳、1手、OK手。

人物分割

(人物分割前)(人物分割后)

这是LiteKit提供的人物分割AI能力,提供实时的人物分割

快速体验

以上是LiteKit现在开放的AI能力,这些AI能力可以直接点击以下链接快速安装AndroidDemo体验(只需要安卓手机):

答案当然是肯定的!不仅可以访问,还可以说可以在一秒钟内访问APP工程!

LiteKit提供了视频超级、人物分割、手势识别的一系列AI能力,这些AI能力来自百度各业务线AI场景多年的技术沉淀,以SDK的形式提供,开箱即用。

即使是没有任何AI实践的APP开发商,只需要调用两三个简单的API连接LiteKit提供的SDK软件包,就可以顺利访问AI能力。就像拆快递柜一样简单,打开箱子就可以直接使用。

将SDK想象为虚拟程序包,该程序包具有完成的软件功能,该程序包几乎完全关闭,只有一个小接口可以连接到外部,该接口为API。

如何访问

LiteKit访问只需创建、推理、释放三个步骤成AI能力的开发。视频超分、人物分割、手势识别,包括未来开源的新AI能力,输入输出各不相同,但整体流程和API的样式被抽象成类似的步骤,API的命名也高度一致,学习成本最低。以下代码是视频超能力的访问过程:

(在内容持续更新中,最新内容可以访问该链接获得。https://github.com/PaddlePaddle/LiteKit)

LiteKit的设计

liteKit将访问过程的整体抽象化为:创建、推理、释放三个步骤:

-创建后,可以重复使用推理

推理过程的整体API:输入数据(同步)返回数据。图中和模型直接相关的前后处理流程,都被AI能力推理界面内部封装,用户无需关注,无需任何处理。为了方便不同业务不同的输入,每个能力的推理接口可能有几个,这几个接口能力完全相同,唯一不同的只是输入和输出类型,用户通常只需要根据自己的输入输出类型关心最便捷使用的一个即可。

-释放与创建一一对应,当AI业务退出的时候,执行即可。

关于输入数据的获取和输出数据的使用,在真实的业务落地中,是需要开发者进行考虑的问题。例如在推理前,需要拿到相机帧,考虑到手机的自动旋转及前后镜头的问题,需要开发者对图像进行旋转。得到推理结果后,开发人员需要以适当的方案渲染推理结果。

LiteKit的结构

LiteKit从下到上主要分为三层:

1.最下层的Paddlelite:百度桨深度学习平台提供的开源推理引擎

2.中间的LiteKitCore框架层:隔离业务人员对PaddleLite的直接依赖,向上层提供基本一致的OC、Java、CavaAPI,提供基础结构和数据类型的定义

3.LiteKit业务层:根据各自的业务,包装了人物分割、视频超分、手势识别等能力。LiteKit的能力不断扩大。

LiteKit人物分割、视频超级、手势识别三大能力、底层统一依赖LiteKitCore。目前,LiteKitCore也同时开源。LiteKitCore作为移动终端AI能力的配置工具,其作用主要是向下接管推理引擎,向上提供统一的AI推理能力。

-移动端的AI开发者接入了LiteKitCore之后,不必再关心推理引擎的配置、模型的加载等复杂操作,LiteKit内部管理了推理引擎大部分复杂的配置,同时仍然支持使用者灵活的配置一些入模型地址等的关键参数。

-LiteKitCore向上对AI能力的开发者,提供了Java/ObjectiveC/C 三套接口,能大大降低端AI开发者的开发成本。

下面就以CTekitcore访问CPU的AI推理能力为例,简单示范访问过程:

-使用LiteKitCore创建AI推理引擎管理实例,不需要在意模型的结构,推理引擎的使用方法

-在使用AI推理能力的时候也不用在意推理引擎具体怎么调用,LiteKitCore提供好用的C/Java/ObjectiveCAPI。

在开发不同业务的过程中,上层的业务配置可以根据不同的业务场景设置,下层LiteKitCore的一部分代码可以完全再利用和移植,大大降低了AI能力开发的工作量。

展望

LiteKit作为桨的移动终端配置工具,可以迅速配置基于百度深度学习框架的轻量化推理引擎PaddleLite的AI能力。人工智能能能力可以在任何应用程序和场景下工程化落地,学生们可以简单地实现自己的AI效果。

LiteKit将在不久的将来开放OCR等更多的能力,支持更多的业务场景。大家对LiteKit开放的能力有什么期待呢?如果有的话,请点击以下链接,填写对AI能力的需求。https://iwen开发者_高级运维juan.baidu.com/code=ap8fxl

相关链接

想进一步了解LiteKit的合作伙伴,可以去Github点star查看完整的文件和Demo

LiteKithub地址:https://github.com/PaddlePaddle/LiteKiteKithub地址:httttps:////github.com/Padithub.com/PaddlePadePadle/LiteKit/p>

更多参考:

如果您想详细了解更多关于AdlePade的内容,请参考。PaddleLite支持包括手机移动终端和嵌入终端的终端场景,支持广泛的硬件和平台,是高性能、轻量级的深度学习推理引擎。除了与划船核心框架无缝对接外,还兼容支持TensorFlow、Caffe保存的其他训练框架(可通过X2Paddle工具将其他形式的模型转换为划船模型)。

PaddleLiteGitHub地址:https://github.com/PaddlePaddle/Paddle-Lite

0

精彩评论

暂无评论...
验证码 换一张
取 消