准确地说,RAISR并不是用来压缩图像的,而是用来upsample图像的。

众所周知,图片缩小到半分辨率后,在拉回原大小,会出现强烈的锯齿。从80年代开始就有很多super sampling的方法,要么从多张低分辨率的图构建出高分辨率,要么从单张“猜测”出高分辨率。本质上其实都是针对边缘搞事情。从锯齿状的边缘恢复出一条带斜率的线段。

用机器学习做这件事情,基本框架是
1. 拿到大量高分辨率的图像,对图片做分块,比如4x4。
2. 每个块都缩小到半分辨率。
3. 用半分辨率的块作为输入,全分辨率的块作为输出,训练。
4. 在Runtime,用半分辨率的块作为输入,就能预测出一个可以接受的全分辨率结果。

当然,在第三步,特征选取、调参数之类是必要的。DL嘛。

这其实Sony早就有了,X-Reality Pro芯片里就集成了一个,用来把1080p转成4k。不过不那么通用,重点是针对文字这样清晰边缘的,以处理亮度特征为主。

回到我一开始说的,为什么说RAISR不是压缩算法,而是upsample算法?因为即便是一个不存在高分辨率的图像,也可以通过这个算法得到高分辨率。
 

作者:Momenta
链接:https://www.zhihu.com/question/54889600/answer/375813735
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

对于一个低分辨率图片,我们想要得到对应的高分辨率图片,这个问题在学术界叫做Single Image Super-Resolution(SISR)问题。处理这种问题的一个基本思路是,给定大量的有对应关系的低清和高清图像训练数据,用算法去学习两者之间的对应关系(可以认为是一种滤波器)。本文即从这种思路出发,提出了一种快速生成高分辨率图像的方法,从多个角度对学习这种映射的过程进行加速。

 

考虑简单的线性SISR,可以用下式表示:

RAISR: rapid and accurate image super resolution

其中,z是m*n维的输入低清图像,x是Ms*Ns维的待求的高清图像,H是作用在x上的MsNs*MsNs维的线性算子,Ds是MN*MsNs维的衰减矩阵,在两个维度上分别进行尺度为s的衰减。在这样一个模型下,求解高分辨率图像就是通过已知的测量z去恢复未知的x的过程。

 

常见的从低清到高清的线性算法包括双线性差值或最近邻差值等,这些简单的线性差值算法简单易用,但是这些算法和图像本身的内容无关,因此很难处理复杂精细的图像区域,往往会有失真或过于平滑的现象。因此,近年来有许多基于数据的算法,常见的做法是,将高清图像下采样为低清图像,生成一对对低清-高清图像组合,通过大量这样的数据,去学习从低清到高清图像的映射。比较典型的有SRCNN[16],通过卷积神经网络去学习这个映射,取得了非常好的高分辨率恢复效果。当然,使用卷积神经网络往往会需要非常大的计算量。

 

在RAISR这篇文章中,作者的目标就是把高清恢复做快,快到可以用到当前主流的移动设备上。RAISR的思路是,将低分辨率图像首先进行双线性差值;然后,在双线性差值的基础上,将预训练好的滤波器作用于小图像块;为了提升图像恢复效果,有进一步使用哈希的方法将图像块聚类进行训练。

 

1.学习滤波器

学习滤波器的过程和学习高清映射的思路一致。给定一些图像对,用最小化恢复出来的图像和高清图像质检的误差的方法,学习预设的滤波器。常用的least-square损失函数可写为:

RAISR: rapid and accurate image super resolution

 

其中,h是我们要求的滤波器,A是从高清图像中扣取的小图像块,b是这个小图像块对用的低清像素块。这个流程可以用下图来直观表示。

RAISR: rapid and accurate image super resolution

 

 

 

2.图像分块

RAISR: rapid and accurate image super resolution

 

 

RAISR是以双线性差值为基础的。在双线性差值中,假设上采样比率为2,那么每个像素会被上采样为4个像素点(参见上图中的P1-P4)。所以作者想要先学习四种滤波器,在P1-P4的位置分别使用。相应地,在训练的过程中,训练数据也分成四个块分别训练,如下图:

RAISR: rapid and accurate image super resolution

 

 

 

3.聚类图像块

然而,采用上述方法进行高清恢复,只在四个预训练好的小滤波器中有少量参数,并不能很好的适应图像内容。因此,RAISR又进一步对训练数据中的图像块进行聚类,每一类分别使用不同的滤波器。在聚类的方法的选择上,作者也选用了相对快速的哈希算法。

RAISR: rapid and accurate image super resolution

 

 

 

4.低分辨到高分辨图像预测流程

综合以上步骤,RAISR的流程可以概括为下图:

RAISR: rapid and accurate image super resolution

 

 

 

首先,对低清图像进行简单的双线性差值;然后,使用哈希算法快速将图像块分到不同的类别(bucket)中;对于每个类别,分别使用四个预先训练好的滤波器进行线性滤波;将不同的图像块的结果融合起来,得到最终的恢复结果。

 

从这篇文章中我们可以看到,移动端应用需求会催生各种加速的方法。对于高分辨率恢复的问题,本文作者采用了多种机智的方法累加的方式,如分块计算、哈希加速等。然而我们认为,做应用算法的加速,不仅可以考虑本类似文中的多种机智方法的融合,也可以考虑在一个方法上“死磕”优化。比如,针对卷积神经网络如何小型化快速化,可以从硬件、底层代码、网络结构等多个角度进行优化。对于这些更多的优化技巧,我们以后见。

 

该文为Momenta Paper Reading 第一季第五期回顾,始发于2017年3月27日。
PPT下载链接:TpI-pmokbTKhLRdQ 密码: 8has

<div class="List-item"><div class="ContentItem AnswerItem" data-za-index="3" data-zop="{&quot;authorName&quot;:&quot;叛逆者&quot;,&quot;itemId&quot;:141689844,&quot;title&quot;:&quot;Google开发的RAISR算法利用机器学习压缩图片,提高分辨率,实际应用怎么样?&quot;,&quot;type&quot;:&quot;answer&quot;}" name="141689844" itemprop="suggestedAnswer" itemtype="http://schema.org/Answer" itemscope="" data-za-detail-view-path-module="AnswerItem" data-za-detail-view-path-index="3" data-za-extra-module="{&quot;card&quot;:{&quot;has_image&quot;:false,&quot;has_video&quot;:false,&quot;content&quot;:{&quot;type&quot;:&quot;Answer&quot;,&quot;token&quot;:&quot;141689844&quot;,&quot;upvote_num&quot;:30,&quot;comment_num&quot;:2,&quot;publish_timestamp&quot;:null,&quot;parent_token&quot;:&quot;54889600&quot;,&quot;author_member_hash_id&quot;:&quot;0b21747b1fec79ad8af7e68a2b1ff681&quot;}}}"><div class="ContentItem-meta"><div class="AuthorInfo AnswerItem-authorInfo AnswerItem-authorInfo--related" itemprop="author" itemscope="" itemtype="http://schema.org/Person"><meta itemprop="name" content="叛逆者"><meta itemprop="image" content="https://pic4.zhimg.com/ab952a4f1312716c6163c524fdbebdae_is.jpg"><meta itemprop="url" content="https://www.zhihu.com/people/minmin.gong"><meta itemprop="zhihu:followerCount" content="140871"><span class="UserLink AuthorInfo-avatarWrapper"><div class="Popover"><div ></path></svg></span></button></div></div></div></div></div>

相关文章:

  • 2021-09-19
  • 2022-01-12
  • 2021-07-17
  • 2021-08-08
  • 2021-05-22
  • 2021-12-30
猜你喜欢
  • 2021-07-19
  • 2021-06-24
  • 2021-07-27
  • 2021-08-29
  • 2021-09-01
  • 2021-05-14
  • 2021-09-09
相关资源
相似解决方案