写点什么

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

  • 2020-12-27
  • 本文字数:1442 字

    阅读完需:约 5 分钟

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

一、背景


随着移动设备的普及,基于移动端的内容生产和消费变得越来越容易。百度 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。

2. 图片 &视频超分 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);
复制代码


八、参考文献


https://en.wikipedia.org/wiki/Image_resolution

https://arxiv.org/abs/1511.04587


头图:Unsplash

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

来源:百度 App 技术 - 微信公众号 [ID:gh_59f5931152fe]

转载:著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

2020-12-27 22:461693

评论

发布
暂无评论
发现更多内容

Spring 中不同依赖注入方式的对比与剖析

Deecyn

spring

借助第一性原理开启中台建设

数字圣杯

数据中台 数字化转型

高效阅读,成就自我-《麦肯锡精英高效阅读法》读后感

顾强

读书笔记 读书 读书方式

面向页面的移动端架构设计

稻子

flutter ios android 大前端 架构模式

原创 | 使用JUnit、AssertJ和Mockito编写单元测试和实践TDD (四)关于单元测试的常见错误观念和做法

编程道与术

Java 编程 软件测试 TDD 单元测试

Dubbo集成Sentinel实现限流

Java收录阁

sentinel

编写制度的几点实用建议

石君

制度 编写制度 安全管理

我常用的在线工具清单

彭宏豪95

效率 效率工具 工具

智浪

Neil

后浪 智能时代 智浪

基于XGB单机训练VS基于SPARK并行预测(XGBoost4j-spark无痛人流解决方案)

黄崇远@数据虫巢

学习 算法

你竞争我得利之零售变革

孙苏勇

行业资讯

“字节”不断“跳动”,卡拉永远 OK?

无量靠谱

字节跳动 诺基亚 危机

原创 | 使用JUnit、AssertJ和Mockito编写单元测试和实践TDD (五)第一个单元测试

编程道与术

Java 编程 软件测试 TDD 单元测试

交易上链——中心化数字资产交易所的完美解决之道

Tux Hu

区块链 智能合约 数字货币 去中心化网络 数字资产

业务信息化操作系统(BIOS)——中台的核心产出物

孤岛旭日

中台 操作系统 企业信息化

工作两年简历写成这样,谁要你呀!

小傅哥

面试 小傅哥 简历优化 找工作

从波音747学项目管理

顾强

项目管理 读书感悟 沟通

用SpreadJS实现在线Excel的录入与展示,提升企业医保信息化服务水平

葡萄城技术团队

SpreadJS 医保信息化 在线excel

延时任务的几种实现方式

郭儿的跋涉

Java 延时任务 延时消息

通过一个聊天应用学习 Deno

寇云

typescript 后端

爱是恒久忍耐,又有恩慈

霍太稳@极客邦科技

身心健康 心理

21天养不成习惯,28天也不行。不要痴心妄想。

赵新龙

TGO鲲鹏会 习惯养成

高仿瑞幸小程序 08 创建第一个云函数

曾伟@喵先森

小程序 微信小程序 大前端 移动

算法工程师的发展路径

Lucien

反对996,但是选择996是一个怎样的矛盾心态?

顾强

职场 加班

使用jdbcSstoragerHandler 处理mysql、oracle 、hive数据

飞哥

认识数据产品经理(三 成为数据产品经理)

马踏飞机747

大数据 数据中台 数据分析 产品经理

《硅谷革命:成就苹果公司的疯狂往事》读后感

顾强

回“疫”录(15):在家SOHO,是你想要的工作方式吗?

小天同学

疫情 回忆录 现实纪录 纪实 远程办公

编程的门槛 - 抄作业的得与失

顿晓

编程门槛 编程思维 动手能力 抄作业

有了容器为什么kubernetes还需要Pod?

架构师修行之路

Kubernetes 分布式 云原生 pod

移动 AI 系列 - 实时超分的探索与实践_语言 & 开发_百度App技术_InfoQ精选文章