移动AI系列-实时超分的探索与实践

3,944 阅读4分钟

原创 zhangming 百度App技术

一、背景

随着移动设备的普及,基于移动端的内容生产和消费变得越来越容易。百度App作为内容分发平台,承载着大量来自PGC和UGC贡献的图文和视频内容。在2K手机屏幕分辨率已是主流的当下,人们对观看高清晰度的资源的诉求也变得理所当然。图片和视频的采集、传输和存储受限于各种因素,难免会有一些清晰度和分辨率相对较差的资源存在,这就势必会影响到用户的观看体验。百度App联合百度视觉技术部团队,通过基于深度学习的实时超分辨率重建技术来提升端图片和视频显示效果。

二、如何提升分辨率

通常意义所说的图像、影像的分辨率是代表物理场景在成像平面上单位面积的像素多少,是反应图像细节的分辨能力的一个指标。它可用来描述图像的清晰度,分辨率越高,可呈现细节越多,所承载的像素值越精确,在同等显示硬件下,往往可以获得更好的观赏体验,这意味着更好的图片质量,同时资源文件也会更大。 注:不同分辨率的展示效果 (图片源自Wikipedia)

超分辨率可以理解为是基于现有图片像素内容来创建更多像素的过程。

传统提升图像分辨率的方式诸如插值法等,是依据固定规则来计算增加像素的值。往往会有马赛克、锯齿和边缘模糊等各种问题。

近年来,得益于深度学习技术的不断发展,诸如卷积神经网络借鉴了人类视觉系统感知图形图像的方法,通过对图像特征的提取和学习来完成重建,可达到更好更稳定的重建效果。

三、百度App超分重建模型

超分重建模型是基于VDSR的残差学习网络框架,通过模型剪裁和使用Depthwise Separable Convolution等方法对模型计算进行提速。模型输入为已经经过算法上采样至目标分辨率的Y通道,支持可变输入。 注:(图片源自VDSR Paper)

四、移动端实时超分辨率的难度与挑战

五、移动端实时超分的策略与优化

应用层优化:

  • 1.图像超分内存:针对超大图像,通过将原始图片切块,分队列多实例并行超分,动态约束预测时内存的占用峰值。
  • 2.视频超分实时性:由策略模块提供极限超分和安全帧率超分的播放稳定性保障。
  • 3.计算资源调度:将部分基于CPU的前后处理迁移成GPU算子,前后处理和预测由GPU统一处理。 推理引擎优化: 优化成果:
    1. 图片&视频超分预测耗时,优化至原耗时的50%以下。Batch能力:iOS可优化至CoreML耗时的1/4。480p预测速度:iPhone XR为25ms;安卓骁龙845机型为23ms。
    1. 图片&视频超分GPU材质内存占用,降低至50%以下。

六、业务应用与效果比对

图像超分与视频超分均已在百度多个移动端产品应用落地。每日有千万级的图片、视频经过端超分重建处理后,向用户展示和播放。全流程无Server干预,同时减轻了低频资源在Server端重建时的计算、存储和带宽占用。 注:低分辨率超分重建至目标分辨率 VS. 目标分辨率原画质

七、端到端接入方案

百度App将于近日开放视频超分能力,敬请期待。

// iOS
/**
超分
@param image 待超分Image
@param scaleType SR倍数
@param block result回调
*/
(void)executeSuperResolutionWithImage:(UIImage *)aImage
scale:(MMLImageSuperResolutionScaleType)scaleType
completion:(void (^)(UIImage *srImage, NSError *error))block API_AVAILABLE(ios(9.0));

// Android
/**
 * 执行图片超分
 * @param inputBitmap 待超分的图片
 * @param scale       SR倍数
 * @param onSrResultListener 超分结果回调
 */
void sr(Bitmap inputBitmap, float scale, OnSrResultListener onSrResultListener)

八、参考文献

en.wikipedia.org/wiki/Image_…

arxiv.org/abs/1511.04…