欢聚时代AI跨平台推理框架VNN正式开源

1. 介绍
欢聚时代AI跨平台推理框架VNN正式开源啦!同时,我们正式宣布!友商卖1200万一年的人脸识别 , 手势肢体识别,人物实时抠像,图像风格化等等20余种能力的AI模型,我们现在全部免费对外开放,假如你有美颜美妆,智能瘦身,AR人脸手势贴纸人工智能开发者社区,阿凡达数字人驱动,生成动漫形象等需求,现在不必再承受每年高昂的AI收取费用 , 使用VNN快尽情探索更多的业务场景吧!
此外,欢聚时代希望VNN可以让更多中小型企业享受到AI带来的切实收益,同时一同把VNN建设成全平台商用性最好的基础AI推理框架,让更多的企业可以把自己的小模型跑在不同终端(IOS//PC/MAC/Linux)
性能对比:
278
人脸关键点
VNN(免费模型) VS友商(商用模型)
准确率
识别率
抖动及闪烁
CPU使用率
半小时耗电
VNN
87%
93%
3/31个用例
VNN高于友商2%-3%
VNN高于友商1%-3%
友商
72%
91%
7/31个用例
2. 效果预览(部分)
106 | 278人脸关键点
赛博朋克人脸风格化
迪士尼人脸风格化
蚂蚁呀嘿 | 人脸驱动
动物抠图
图像风格化
人物抠图
天空抠图
手指手势识别
3. 技术简介
近年来深度学习一直是比较火热的赛道,各种神经网络模型也是层出不穷 。受到算力因素的影响,神经网络模型在端侧的部署落地也影响着AI的发展 。NCNN、MNN、TNN等推理引擎的开源为AI的生态注入了一溪活水,推动着深度学习更高效更智能的应用于人们的生活 。
欢聚集团对深度学习领域持续投入,在研究神经网络模型的同时也自研了深度学习前向推理框架VNN,具有高性能、低功耗、多平台、轻量级的特性,可用于移动端、PC端以及服务端神经网络模型的部署,并在实际业务产品中加以打磨优化 。目前VNN框架已经能很好的支持直播、短视频等应用场景 。
为了推动其进一步的发展,团队决定把该项目开源,为开源社区做出贡献的同时,也能让感兴趣的朋友可以给出一些批评和建议,一起把VNN打造成业界领先的深度学习推理框架 。
4. 整体架构
作为神经网络部署框架,VNN致力于填补AI模型与应用场景之间的桥梁,提供了从模型转换到端侧部署的一系列工具,如下
VNN框架架构
VNN是模型转换工具链 , 主要实现从AI(深度学习框架训练的)模型到VNN模型的转换 。是目前应用最广的深度学习训练框架,VNN 以语言实现,主要支持了模型的转换 , 通过导入VNN 的模块,简单的几句代码即可转换出跨平台的VNN模型 。模型直转方案相对中转方案可以更好地解决因版本问题导致的模型转换错误和算子缺失等部署痛点 。另外,为了支持等其他训练框架的模型转换为VNN模型,VNN也支持经ONNX模型中转后的模型转换 。
VNN Core 是核心算子库,实现模型解析和计算、内存池管理等功能 , 包含深度调优的几十种常见AI算子的实现 。在算子计算效率方面,具体而言,客户端主流硬件平台包括x86、、ARMv7、ARMv8、ARMv8.2以及、Metal等多种体系结构,不同的体系结构在CPU寄存器数量、访存方法、SIMD寄存器位数、半精度浮点指令支持等若干方面存在差异,这些差异对算子计算效率有明显影响 。VNN针对各硬件平台的特性编写汇编算子或算子,充分发挥硬件的计算潜力;其次,深度学习模型常用的卷积层具有多种实现 , 每种实现在不同的输入尺寸和卷积层参数下性能各有优劣 。VNN包含了卷积层的多种实现,并通过VNN 的自动测速功能或手工指定的方法为每个卷积层选择效率最优的实现 。
VNN Kit 是工具函数库,实现日志输出管理和模型结果变换等功能 。VNN设计了完善的异常处理机制,并提供日志输出管理功能,方便开发者从日志中获取具体的异常信息,提高SDK接入和调试效率 。其次,考虑到客户端开发者常遇到的摄像头采集画面镜像、倒置问题 , VNN提供了对模型结果进行旋转、翻转的功能,方便开发者根据实际情况调整模型结果 , 节省开发者的编码时间 。
VNN SDKs 包括 VNN Face(VNN 人脸关键点检测)、VNN(VNN 手势检测) 等各AI功能的顶层实现库 。VNN SDKs 通过对上文 VNN Core、VNN Kit 库的共享引用,减少代码冗余 。对于移动端占比最大的ARMv8.x架构,在、iOS平台下全部功能的打包体积分别为2.3MB、2.0MB , 适用于对安装包体积敏感的场景 。其次,VNN SDKs提供了跨平台API人工智能开发者社区,方便跨平台开发并获得一致的体验 。
5. 优势
(1) 多种实用AI能力
VNN的首个版本中,开放了人脸关键点检测、人像背景分割、手势识别、天空分割、衣服分割、头部分割、头发分割、动物分割(猫狗)、表情驱动、文档矫正、场景分类等21个AI功能,可用于美颜、瘦脸、表情贴纸、手势玩法(控雨)、头发换色等实际应用场景,覆盖直播、短视频、社交工具及其它相关业务 。
以人脸关键点检测为例 , 人脸关键点检测的作用是定位人脸轮廓、眼睛、眉毛、嘴唇等的位置,它是自动瘦脸等智能美颜美妆特效的基础算法 。目前自研人的脸关键点检测能够满足点位准确,识别率高,抖动闪烁幅度?。??牡偷囊??,在效果和性能上持平或优于商汤的相同产品 。经过多轮的评测后,公司内部已完成对商汤人脸关键点SDK的替换 , 成为旗下各个应用最基础的AI功能模块 。以下是自研人脸278点关键点检测的效果和在美颜瘦脸上的应用 。
人脸 | 美颜演示
视觉AI技术提供了对现实世界更深入的解构和重构能力,我们可以从中发掘新的玩法、乐趣和商机 。以VNN提供的“迪士尼人脸风格化”应用为例,首先通过人脸关键点SDK检测出图像中的人脸,其次通过迪士尼人脸风格化SDK根据这张现实中的人脸和关键点信息 , 生成脸型角度一致的、具有迪士尼风格的人脸 , 最后通过人脸分割SDK识别现实人脸每个像素位置,实现生成人脸对现实人脸的精细替换 。以下是利用上述3个VNN SDK协作实现“迪士尼人脸风格化”的示例 。
VNN将持续优化已有AI功能的性能和效果,提供更多的AI能力的覆盖 。目前VNN已为欢聚时代公司的Hago、VOO、、VFly、马克水印相机等多个应用产品提供持续的AI能力支持, 也希望这款开放的SDK能为更多移动端和PC端的应用产品贡献一份力量 。
(2) 多平台支持
VNN支持、iOS、、MacOS、大系统平台,而且在各个平台上,所有的AI功能实现接口风格统一,SDK调用接口一致 , 模型文件基本一致 , 基本可以做到几行代码就实现一个AI功能 。以人脸关键点SDK为例,几行代码就能实现对SDK从创建、设置、运行到销毁整个生命周期的控制 。
【欢聚时代AI跨平台推理框架VNN正式开源】VNN使用Demo
另外 , VNN提供了详细的使用说明文档,同时还提供了各个平台的调用Demo,助力AI功能在应用端更高效、更快捷的落地 。
(3) 高性能低功耗
以下为VNN 热门SDK在主流手机上的运行速度 。大部分功能均能以实时或准实时的速度运行 。人像分割图片版SDK主要应用于影像编辑与创作 , 可在满足生产效率的前提下提供高质量的分割效果 。人脸关键点和手势识别在手机上单独运行时,基本不存在发热现象 。
VNN性能对比
6. 下一步计划
(1) 开放GPU支持 。针对高功耗的,计算量大的大模型,基于GPU的实现可以加快模型前向速度,降低功耗 。
(2) 开放转换工具链VNN。基于的转换工具链,可以快捷地将模型或其它框架下经ONNX中转的模型,转换成VNN的模型并部署到各端 。
(3) 开源代码 , 助力AI生态的繁荣发展,贡献VNN的力量 。
本文到此结束,希望对大家有所帮助 。