NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

移动 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:461720

评论

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

hdfs的集群间拷贝、归档、回收站等功能剖析

大数据技术指南

hdfs 7月日更

颠覆传统经营模式,区块链助力餐饮行业数字化革新

CECBC

企业数据安全的「取胜之匙」:区块链隐私保护计算

CECBC

Java的深拷贝与浅拷贝,能否拿下看你自己!

Java如何学

Java 编程 程序员 浅拷贝和深拷贝

Filecoin矿机挖矿分币系统开发搭建

薇電13242772558

区块链

拾实娱购系统软件开发

字节4面Java研发岗面试经历:redis+TCP+HashMap+算法+JVM+spring

Java 程序员 架构 面试

带你全面了解 Git 系列 01 - 深入 Git 原理

淼💦 淼

git 大前端

团队使用 Slack 技巧

郭旭东

远程办公 Slack

Lua开发技巧-小表预填充

HelloBug

lua 开发技巧 小表预填充

拿来把你,挖掘实战之基本挖掘流程【建议收藏】

网络安全学海

黑客 网络安全 信息安全 渗透测试· 漏洞分析

去中心化分散自治组织通证经济体

CECBC

“云上超算”——北鲲云超算SaaS平台

北鲲云

云计算 生命科学

那些腾讯阿里字节等大厂面试官,问面试题背后到底在问什么?

前端依依

面试 大前端 经验分享

MapReduce排序以及序列化实践

五分钟学大数据

mapreduce 7月日更

在哪里跌倒就在哪里躺一会|靠谱点评

无量靠谱

JAVA语言异步非阻塞设计模式(原理篇)

有道技术团队

Java 后端 网易有道

西瓜口袋系统开发|西瓜口袋软件APP开发

星际联盟抢占FIL挖矿先机:星际联盟单T出矿多少?星际联盟一年能挖出多少FIL?

fil币 ipfs挖矿 fil挖矿 fil矿机

彼得原理:我们迟早会不胜任自己的岗位?

石云升

职场经验 7月日更

B 站崩了,受害程序员聊聊

程序员鱼皮

架构 分布式 微服务 后端 服务器

Python 的上下文管理器是怎么设计的?

Python猫

Python

12个提升PostgreSQL_TSDB 插入性能的建议

数据库 大数据 时序数据库 tsdb 数据智能

农扶帮系统软件开发内容

星际联盟filecoin矿机靠谱吗?星际联盟FIL矿机可以信赖吗?

fil币 ipfs挖矿 fil挖矿 fil矿机

DAPP智能合约平台开发|TP钱包DAPP搭建

Geek_23f0c3

dapp DAPP智能合约交易系统开发 区块链、

What's JVM——自动内存管理

CodeWithBuff

Java 后端 JVM

SPA钱包挖矿系统开发详情

Why WebRTC|“浅入深出”的工作原理详解

声网

算法 音视频

阿里巴巴新产“Java面试指南泰山版”,全是流行技术,限时开放

Java 程序员 架构 面试

Go 学习笔记之 接口

架构精进之路

Go 语言 7月日更

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