腾讯QQ空间超分辨率技术TSR

2023-10-12 14:50

本文主要是介绍腾讯QQ空间超分辨率技术TSR,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

腾讯QQ空间超分辨率技术TSR:为用户节省3/4流量,处理效果和速度超谷歌RAISR

 

雷锋网AI科技评论:

随着移动端屏幕分辨率越来越高,甚至像iPhone更有所谓的“视网膜屏”,人们对高清图片的诉求也随之越来越大。在QQ 、QQ空间、微博、微信等社交平台,人们常乐于发送和浏览数兆的高清图片,以获得更佳的视觉体验。但这也给用户造成了一定的困扰——要看高清大图也就意味着要占用大量带宽,一来是数据成本增加,二来加载速度会变慢,导致用户体验不佳。在时间就是金钱的时代,怎么能把这么宝贵的时间用在等待loading上呢?

所以如何能够在不影响用户体验的情况下,通过传输小图来达到高清效果是一个很值得研究的问题。在去年10月,谷歌发表了一篇论文讲述了他们推出的一项新技术RAISR(Rapid and Accurate Image Super-Resolution),利用机器学习将低分辨率图像转化为高分辨率图像。这项技术能够在节省带宽75%的情况下分辨率效果达到甚至超过原图,同时速度能够提升大约10到100倍。于是很快RAISR成为该领域的行业标杆。

而近日腾讯QQ空间联合优图实验室也推出的他们在此领域的最新技术TSR(Tencent Super Resolution)。据介绍,TSR技术在同样的标准下,处理速度在RAISR的基础上提升了40%,处理效果也有明显提升。

此外,TSR也是业界首次实现移动端使用深度神经网络进行超分辨率,并保证图片能够实时进行处理。即使在用户的普通Andriod手机,也可以使用这项技术。

一、超分辨率模型

超分模型结构图如下:

 

1、神经网络

首先,在深度卷积神经网络这一块,他们构建了一个10层的网络。对比目前学术界研究的神经网络,这个网络能够很好的解决Checker Board Artifacts和对于部分图片处理纹理不清晰的问题。通过神经网络抽象出图片的整体特殊,识别图片的纹理和内容,随后再根据图片的纹理和内容进行图片的高清细节重建,从而达到远超过原图的视觉效果。

通过控制卷积神经网络的层数与每层的CHANEL数,在简化整体计算量的情况下,这个网络能很好的解决图片过于平滑,纹理不清晰的问题。通过精简化的设计,TSR能够保证模型在只有4.6KB的基础上有不错的处理效果。

2、CbCr与Y通道分离

在图片预处理方面,TSR采用了二次插值方法对图片进行预处理。这样做可以对比较模糊的UGC(用户原创内容)图片也能取得较好的效果。针对人眼对于颜色与亮度的敏感程度,他们对图片采用CbCr与Y通道分离,只对Y通道数据进行超分处理的方法提高处理速度。

(注:YCbCr 是色彩空间的一种,通常会用于影片中的影像连续处理,或是数字摄影系统中。 Cb和Cr为蓝色和红色的浓度偏移量成份,Y是所谓的流明(luminance),表示光的强度。)

3、PRelu激活函数

此外,在模型中他们采用PRelu(Parametric Rectified Linear Unit)作为激活函数,这样可以得到更快的收敛速度与更好的网络表达能力。

顾名思义为带参数的ReLU,二者的定义和区别如图

此外,他们采用了基于Adam(Adaptive Moment Estimation,自适应矩估计)的梯度下降法,来求解神经网络模型的具体参数。

4、图片预处理

具体的模型训练上,他们先采用1W张用户真实图片,然后通过调整图片颜色、高度、对比度、施转、左右反转等数据增强操作,构造百万级的训练样本集。然后采用压缩的方法将训练样本图片宽高各压缩到原来的1/2,此时图片的整体带宽就只有原来的1/4了。

5、对比调参

处理后的图片经过前面介绍的超分模型处理后,再与原来的图片的效果进行比较,根据对比效果进行调整模型参数。

与业界的训练该方法不同,除了对比图片的损失(PSNR)外,他们还同时引入了可视化评测系统,使用用户的真实图片进行可视化评测,用于优化参数。

6、评测结果

TSR与学术界前沿超分辨率技术对比如下图(NTIRE2017数据,400* 300 放大到 800 * 600,硬件环境:Titan XP workstation)。 可以看到在处理速度与图片效果上,TSR相比别家(包括谷歌的RAISR)都要更佳。

 

二、将超分辨率技术应用到移动端

目前主流的深度神经网络模型一般在后台的高性能GPU机器上运行,这对机器性能要求比较高。TSR则为基于手机端的深度学习架构。

 

TSR将深度学习从后台迁移到移动端, 主要包括如下较为关键的技术:

1、分块加速技术 

把图片分成很多小块通过神经网络进行处理。分块加速技术的优点在于能够充分使用CPU的多核特性进行多核并行计算。 

在分块的过程中,同时还使用算法对图片的纹理复杂度进行识别和智能处理来提高图片的处理速率。如下图示,通过智能识别可以加速蓝框中图块的处理过程。

2、异构多核CPU/GPU加速技术

能够根据用户手机的GPU与CPU能力进行任务的智能划分,联合GPU/CPU进行处理以达到较好的处理效果。这样的技术也许应该算是业界首创了。

3、统一移动端并行加速框架RapidNet 

 RapidNet深度融合了基于AND平台的opencl GPU并行计算加速技术和基于IOS平台的METAL 加速技术。对基于ARM结构的CPU,则能够充分利用neon SIMD技术和纯程池技术。

据了解,相比于业界主流的机器学习平台,速度提高10倍以上,内存消耗则降低95%。

4、动态探测与模型动态加载技术   

保证了手机端的全覆盖。TSR会动态探测手机的处理能力,针对不同手机实时加载不同的模型,从而能够保证所有性能的手机客户端都可以使用这种技术,保证了手机端的全覆盖。

 

三、TSR图片处理效果

TSR对图片处理的效果(注:左边是原图,右边是超分辨率处理的图片)

TSR处理后效果对比:

细节对比:

TSR处理后效果对比:

细节对比:

TSR处理后效果对比:

细节对比:

TSR处理后效果对比:

细节对比:

用户普通图片压缩75%再进行TSR处理后跟原图进行对比效果:

四、与RAISR及其他技术对比

在同样处理标准下,TSR与RAISR的效果性能对比:

可以看出不管是在处理速度,还是处理效果上,TSR都要超过之前行业的标杆PARSR:处理速度在PARSR的基础上提升40%,处理效果也有明显提升。让我们用图来看。

从上面对比图可以看出,对于图片细节与纹理的处理,TSR相比RAISR在细节还原上表现更好。

其次,据介绍,TSR是目前业界唯一能够将基于深度学习的超分分辨率技术落地并应用到移动端的技术,即使在用户的普通的手机上,也可以很好的运行TSR并取得不错的效果。

另外,基于TSR衍生出来的深度学习框架RapidNet,对比CAFFE2与TENSORFLOW框架,性能提升平均达到20倍,且能够把深度学习落地到普通手机。

五、技术应用场景

这项技术的应用,如文章开头所说,可以应用到业界中所有的图片处理上,能够给用户节省75%的流量,从而大大降低图片传输的带宽

对于腾讯来说,TSR目前已经在QQ空间进行落地应用,此外QQ、微信、天天P图、动漫等应该也都是TSR技术的目标使用场景。

另外,据介绍,这项技术还能够用来智能修复用户的老照片、模糊的图片等,能够把普通图片变成高清图片。

当然或许最重要的是,TSR这项技术其实是打开了移动端进行AI相关的深度机器学习模型的大门。因为之前要想运行深度神经网络就必须采购昂贵的GPU,而现在即使是普通用户也能够在自己的普通的手机上运行这项技术。如果延伸的话,也许TSR技术将来能够对人脸识别、OCR识别、背景识别、人物美妆等技术的发展有一定的帮助。

据介绍,随着AI技术的兴起,腾讯QQ空间也加大了在AI这一块的投入,他们的联合优图实验室在图片的智能化处理(包括视频内容识别、人脸识别)以及语音识别、对话机器人这些领域进行较为深入研究。


【相关】Google超分辨率论文RAISR实现小结 - 羽凌寒 - CSDN博客 https://blog.csdn.net/u011630458/article/details/69524582

【转载自】

雷锋网 https://mp.weixin.qq.com/s?__biz=MTM2ODM0ODYyMQ==&mid=2651430932&idx=2&sn=c3c90665fdaf888530a8a9809fb93f26&chksm=624da0b6553a29a0f0fa9e0b4290a050db4709dc63ee851208e00fdfea2411c96f346990470a&mpshare=1&scene=23&srcid=1106xNv1zgnlqetbVRT4Uusj#rd

【参考文献】

腾讯QQ空间超分辨率技术TSR:为用户节省3/4流量,处理效果和速度超谷歌RAISR | 雷锋网 https://www.leiphone.com/news/201710/c0GICjRacVyzHKIM.html

TSR:基于深度学习的超分辨率技术及应用 - 云+社区 - 腾讯云 https://cloud.tencent.com/developer/article/1006272

转载于:https://www.cnblogs.com/wxl845235800/p/7847361.html

这篇关于腾讯QQ空间超分辨率技术TSR的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/196545

相关文章

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

金融业开源技术 术语

金融业开源技术  术语 1  范围 本文件界定了金融业开源技术的常用术语。 本文件适用于金融业中涉及开源技术的相关标准及规范性文件制定和信息沟通等活动。

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出 在数字化时代,文本到语音(Text-to-Speech, TTS)技术已成为人机交互的关键桥梁,无论是为视障人士提供辅助阅读,还是为智能助手注入声音的灵魂,TTS 技术都扮演着至关重要的角色。从最初的拼接式方法到参数化技术,再到现今的深度学习解决方案,TTS 技术经历了一段长足的进步。这篇文章将带您穿越时

系统架构设计师: 信息安全技术

简简单单 Online zuozuo: 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo :本心、输入输出、结果 简简单单 Online zuozuo : 文章目录 系统架构设计师: 信息安全技术前言信息安全的基本要素:信息安全的范围:安全措施的目标:访问控制技术要素:访问控制包括:等保

前端技术(七)——less 教程

一、less简介 1. less是什么? less是一种动态样式语言,属于css预处理器的范畴,它扩展了CSS语言,增加了变量、Mixin、函数等特性,使CSS 更易维护和扩展LESS 既可以在 客户端 上运行 ,也可以借助Node.js在服务端运行。 less的中文官网:https://lesscss.cn/ 2. less编译工具 koala 官网 http://koala-app.

Spring的设计⽬标——《Spring技术内幕》

读《Spring技术内幕》第二版,计文柯著。 如果我们要简要地描述Spring的设计⽬标,可以这么说,Spring为开发者提供的是⼀个⼀站式的轻量级应⽤开发框架(平台)。 作为平台,Spring抽象了我们在 许多应⽤开发中遇到的共性问题;同时,作为⼀个轻量级的应⽤开发框架,Spring和传统的J2EE开发相⽐,有其⾃⾝的特点。 通过这些⾃⾝的特点,Spring充分体现了它的设计理念:在

java线程深度解析(六)——线程池技术

http://blog.csdn.net/Daybreak1209/article/details/51382604 一种最为简单的线程创建和回收的方法: [html]  view plain copy new Thread(new Runnable(){                @Override               public voi

java线程深度解析(二)——线程互斥技术与线程间通信

http://blog.csdn.net/daybreak1209/article/details/51307679      在java多线程——线程同步问题中,对于多线程下程序启动时出现的线程安全问题的背景和初步解决方案已经有了详细的介绍。本文将再度深入解析对线程代码块和方法的同步控制和多线程间通信的实例。 一、再现多线程下安全问题 先看开启两条线程,分别按序打印字符串的

AIGC6: 走进腾讯数字盛会

图中是一个程序员,去参加一个技术盛会。AI大潮下,五颜六色,各种不确定。 背景 AI对各行各业的冲击越来越大,身处职场的我也能清晰的感受到。 我所在的行业为全球客服外包行业。 业务模式为: 为国际跨境公司提供不同地区不同语言的客服外包解决方案,除了人力,还有软件系统。 软件系统主要是提供了客服跟客人的渠道沟通和工单管理,内部管理跟甲方的合同对接,绩效评估,BI数据透视。 客服跟客人

【高等代数笔记】线性空间(一到四)

3. 线性空间 令 K n : = { ( a 1 , a 2 , . . . , a n ) ∣ a i ∈ K , i = 1 , 2 , . . . , n } \textbf{K}^{n}:=\{(a_{1},a_{2},...,a_{n})|a_{i}\in\textbf{K},i=1,2,...,n\} Kn:={(a1​,a2​,...,an​)∣ai​∈K,i=1,2,...,n