【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

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

评论

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

Kubeless 快速入门 | 玩转 Kubeless

donghui

Serverless kubeless

低代码开发平台,来自“未来”的软件开发方案

Marilyn

敏捷开发

Go发起HTTP2.0请求流程分析(前篇)

Gopher指北

HTTP HTTP2.0 Go 语言

GitHub 上开源了一个很邪恶的项目!女生勿近,18香警告...

程序员生活志

有一说一,大型信息化企业的软件系统,还是用自研的好

Marilyn

敏捷开发 快速开发 开发工具 软件设计

架构师训练营第 1 期 第 4 周作业

李循律

极客大学架构师训练营

JAVA代码生成器,快速开发平台之魂

Marilyn

Java 敏捷开发 快速开发 开发工具

游戏夜读 | 怎么做联网五子棋?

game1night

智能时代,快速开发平台将成为主流软件开发工具

Marilyn

敏捷开发

为什么巨头都在布局SaaS生态?

ToB行业头条

SASS

深入分析软件快速开发平台与传统软件开发方案的优缺点

Marilyn

敏捷开发

商业智能(Business Intelligence)系统的使用及设计原则

Marilyn

敏捷开发 快速开发 商业智能

架构师训练营 1 期第 4 周:系统架构 - 作业

piercebn

极客大学架构师训练营

OpenFaas 获得 VMworld 2020 年度最佳 Startup Spotlight 大奖

donghui

Serverless OpenFaas

XJR企业级软件快速开发平台规范

Marilyn

程序员 敏捷开发 软件设计

快速开发平台,程序员“老师傅”必备

Marilyn

敏捷开发 快速开发 开发工具

spring-boot-route(十三)整合RabbitMQ

Java旅途

Java Spring Boot RabbitMQ

TensorFlow 篇 | TensorFlow 2.x 基于 Keras 的模型保存及重建

Alex

tensorflow keras model save model restore tensorflow hub

Redis Sharding集群跟一致性哈希有什么瓜葛?

Man

一致性哈希 Jedis redis cluster

架构一期第四周作业

Airs

MySQL 建表为啥还设置个自增 id ?用流水号当主键不正好么?

程序员小航

Java MySQL 开发 工作笔记 流水号

快速开发平台,高集成易扩展,进入软件疾速开发新世代

Marilyn

敏捷开发 快速开发 开发工具

java安全编码指南之:输入注入injection

程序那些事

Java java安全编码 java安全 java安全编码指南

大企内部软件系统反复故障难以解决,业内人士:唯有彻底更换

Marilyn

敏捷开发 快速开发 开发工具

MySQL-技术专题-性能优化—索引篇

洛神灬殇

为了省钱,我用1天时间把PHP学完,装进DDD领域驱动设计里!

小傅哥

php 设计模式 小傅哥 架构师

JAVA & VUE ,分离式开发平台建造思路

Marilyn

Java Vue 敏捷开发

Vidyo的解决方案到底是什么?有哪些特点?

dwqcmo

音视频 集成架构 解决方案 智能硬件

摆脱复杂烧脑的程序代码,利用快速开发平台轻轻松松做软件

Marilyn

敏捷开发 快速开发

标本兼治,程序员用它整体提升公司效率

Marilyn

敏捷开发 快速开发

用友政务表格技术应用开发实践:预算一体化产品核心功能搭建

葡萄城技术团队

SpreadJS 用友

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