视频精修一帧要花2小时?AI只要5.3毫秒!

摘要:围绕用户更具个性化的“变美”需求,美图影像研究院(MT Lab)自研基于深度学习的实时视频美容方案。通过设计轻量的神经网络生成式模型,结合强大的模型优化推理框架(Manis)和千万级人像图库训练优势,实现对动态视频人脸的瑕疵修复与暗沉祛除,同时最大程度地保留了皮肤的真实纹理细节。
新闻来源:机器之心
进入全民短视频时代,人像视频的拍摄也正在迈向专业化。随着固化审美的瓦解,十级磨皮的网红滤镜被打破,多元化的高级质感成为新的风向标,“美”到每一帧是人们对动态视频提出的更高要求。
目前,大部分手机均可记录主流的24fps、25fps、30fps、50fps和60fps(frame per second,FPS),以常见的30FPS为例,1分钟的视频就需要处理1800帧左右,如何保证处理过程中帧与帧之间的效果连续性是算法面临的关键突破点。
事实上,传统磨皮算法是一般实时美颜算法设计的优先选项,其本质是由各类高通滤波算法和图像处理算法组合而成,通过滤波核的大小来实现人像的瑕疵祛除和肤质光滑,经过优化后也能够达到移动端的实时性能要求,但经传统磨皮算法处理后导致的五官与皮肤纹理细节缺失容易形成明显的“假脸”效果。
传统磨皮算法VS美图美颜算法

图1:传统磨皮算法VS美图美颜算法

原图VS美图美颜算法

图2:原图VS美图美颜算法

围绕用户更具个性化的“变美”需求,美图影像研究院(MT Lab)自研基于深度学习的实时视频美容方案。通过设计轻量的神经网络生成式模型,结合强大的模型优化推理框架(Manis)和千万级人像图库训练优势,实现对动态视频人脸的瑕疵修复与暗沉祛除,同时最大程度地保留了皮肤的真实纹理细节。

原视频VS美图实时美颜算法效果

对比之下美图的实时美颜算法既没有弱化面部结构,对细微瑕疵也进行了精细化处理,脸部皮肤呈现干净通透、清晰自然的高级质感。

传统磨皮算法VS美图实时美颜算法效果

此外,为了兼顾更好的使用感受,轻量级的网络能在低、中、高端不同档位的移动端产品上实现更大范围地部署,满足移动端的实时性能要求,平均1秒钟能够美化处理视频142帧,为更多用户带来更好的“变美”体验。

轻量级模型设计,大幅提升生成效果

轻量级结构设计策略
在进行网络结构设计时,首要考虑如何实现效果和速度的均衡。因此在保证不损失过多效果的前提下,模型结构尽量遵循了并行度高的设计原则,轻量级结构设计(如图3)的具体策略如下:
美图轻量级实时美化模型结构

图3:美图轻量级实时美化模型结构

模型生成效果提升方案
为了获得更好的实时生成效果,MT Lab借鉴了RepVGG的重参数等价转换思路,来进一步优化轻量级模型的组件重组流程(如图4)。
该流程在模型训练阶段,对每个3x3卷积增加并行的1x1卷积分支和恒等映射分支;而在模型实际推理阶段,则把对应的1x1卷积分支和恒等映射分支通过padding操作分别等价转换成特殊的3x3卷积,根据卷积的线形可加性,再将参数合并到主分支的3x3卷积里面。
这个方式相当于只增加模型训练阶段的网络消耗以提升网络生成效果,而在实际模型部署时增加的分支参数等价合并,并不会给网络增加任何额外的计算量。
模型组件重参数优化流程

图4:模型组件重参数优化流程

同时,为了大幅提升网络训练效率,除了使用常规的重建感知Loss和像素级Loss外,MT Lab还借鉴对抗生成网络的思路,设计相应的判别Loss来监督网络,在微调(fine-tunning)阶段对实时美化网络进行修正,从而进一步优化模型的生成效果。
判别Loss设计流程(如图5)先对训练数据标定出对应的斑痘、暗沉等瑕疵区域,作为瑕疵mask。再使用参数多、结构深的大型网络训练出一个精准的瑕疵mask分割模型,作为实时美化模型的判别网络。
在训练实时美化网络时,固定判别网络的参数,将实时美化网络输出的结果作为判别网络的输入,同时用一张全“0”mask作为监督,要求判别网络监督实时美化网络不能生成有瑕疵区域的结果,从而达到提升美化效果的目的。
判别Loss设计流程

图5:判别Loss设计流程

模型优化,实现实时美化最佳体验
众所周知,影响模型实时执行的因素包括图片帧率、分辨率和功耗。视频人像美化需要保持实时的高分辨率,模型的FeatureMap就会相应的增大,再叠加美化模型内部的高计算量,导致整个推理过程帧率低且耗时长;同时,大量的图像前后处理增加了整体的效果耗时和设备功耗,实时处理难以长时间维持稳定。
MT Lab基于自研的全平台AI推理框架Manis,通过整合模型智能分发、纹理数据推理加速、效果叠加优化等多种技术方案,来完成美图美化模型在移动端App的顺利落地应用,为用户带来最优的实时效果体验。
基于算力配置定制化模型
为保证不同档位的移动端产品均能获得最佳体验效果,MT Lab通过Manis的天枢平台系统为不同机型的设备能力下发定制的美化模型与AI配置,再通过AI推理框架(Manis)调度选择最优算力执行推理过程,从而既能保证低端算力设备达到实时效果,也能实现高端算力设备更优品质的画质表现。
模型分发流程以不同设备最优性能的实现为原则,在模型设计之前就与包括华为、MTK、高通、苹果在内的AI芯片厂商达成深度交流与合作,从而保证训练后的模型结构和参数完全符合AI芯片的计算特性。
GPU推理方面,Manis针对高通的GPU架构在纹理内存上的访存能力较优的特点,选择GL texture纹理推理计算方式;针对MTK设备在普通内存上的多种加速特性能力,选择GL buffer纹理推理计算方式;而针对支持OpenCL规范的共享特性的高通GPU设备,则通过OpenCL和OpenGL上下文关联,将GL texture与CL texture、GL buffer与CL buffer进行映射,实现OpenGL/OpenCL混合执行,再利用渲染和计算方式的优势,从而达到AI算法在GPU的最优调度。
美图天枢解决方案模型分发流程

图6:美图天枢解决方案模型分发流程

实时美化模型优化
事实上,CPU和GPU数据交互同步是一件非常损耗性能的操作,功耗增加导致长时间的处理下容易出现掉帧现象。
对此,MT Lab在人脸检测环节采用极速轻量的CPU推理,快速获取人脸区域,通过局部的数据操作,降低FeatureMap大小的同时保留关键特征图信息,避免大数据量下GPU带宽受限带来的性能掉点问题;在图像处理环节通过GPU数据流并发推理,弱化了高计算量带来的负面影响。最后,基于双通道数据流在局部区域上进行效果叠加优化,从而保证了视频中每帧数据的高分辨率,呈现高品质的实时画质。
纹理数据流加速策略

图7:纹理数据流加速策略

美图优化加速器— —AI推理框架Manis
基于Manis的模型优化是视频美化算法得以顺利落地的核心环节,与此同时Manis还在美图产品应用场景中扮演着更为重要的角色。它既实现了移动端上极致性能优化,还服务于加速AI项目的落地生态打造。通过与主流开源框架的性能数据对比(如图8),可以很明显地感受到Manis所具备的高水平推理能力与性能提升能力。
Manis与某开源框架第三季度最新版本的性能数据对比

图8:Manis与某开源框架第三季度最新版本的性能数据对比

在实际应用中,Manis包含AI服务、天枢系统、运维监控等在内的多项功能,主要通过以下三个体系模块来实现对算法的优化加速:
模型转换模块
可以快速实现各主流模型结构向Manis模型结构转换,以便算法顺利接入。同时,通过图优化技术简化模型结构,为各种执行设备如CPU、GPU、AI芯片添加优化控制手段,达到模型层面的性能优化。
模型测试模块
基于 Manis在主流手机设备上的部署,能够在线测试输出模型在各种算力使用场景下的性能表现和评估信息,对模型算法进行快速验证,从而帮助模型不断迭代优化,同时缩短优化的开发周期。
模型推理模块
Manis高度适配CPU、GPU、DSP、NPU、ANE、APU等多种硬件设备,其中GPU支持OpenGL、OpenCL、Metal、CUDA等多种技术方案,CPU支持fp32、fp16、bf16、int8等多种精度方案。
其中,针对移动端设备的性能优化包括汇编级CPU neon优化、图优化、Auto-Tuning、多线程优化以及算子融合;针对移动端的精度优化包含fp32/fp16浮点计算方式、bf16格式计算策略以及8位整型量化计算方案,能够结合推理的设备能力,进行动态图切分及混合精度计算,释放设备的最大算力。而针对类似实时美化这样的复杂应用,则采用定制化的优化策略,包括内存复用策略、内存池、模型共享以及数据排布优化。
美图AI推理框架(Manis)架构图

图9:美图AI推理框架(Manis)架构图

目前,美图全部产品的应用落地场景都有着Manis的身影,为美图核心AI算法在不同平台和硬件上实现低延迟、低内存、低功耗的应用落地。随着Manis更进一步的迭代与优化,在拓展实时化应用上的更优性能之外,还将助力美图不断升级用户“变美”体验,全方位服务用户“变美”需求,引领影像美化新革命。