【计算摄影】如何让拍摄的照片适配不同分辨率的设备?
大家好,这是专栏《计算摄影》的第九篇文章,这一个专栏来自于计算机科学与摄影艺术的交叉学科。
作者&编辑 | 言有三
今天要介绍的一个问题,叫做Image Retargeting,这是一个非常小众,小众到做CV的绝大多数人都不知道的领域,但却是实实在在有应用价值的领域。
1 什么是Image Retargeting
1.1 图像重定向(image retargeting)
很多的时候,我们需要将一个尺度的图像,放到一个尺寸不匹配的地方,比如相机拍摄的照片,放置到各种移动设备,需要特定的分辨率和长宽比,这个问题叫做image retargeting,可以翻译为图像重定向,从而获得不同构图比例的图片,下图展示了一些常见的设备比例(1:1,4:3,16:10,16:9等)和一个16:9的构图结果。
图1 常见的构图比例
1.2 为什么要研究image retargeting
图像重定向需要适配不同分辨率,所以要通过增加或去掉像素来改变图片的尺寸。除了为了适应显示区域而缩小图片外,图像缩小技术更多的是被用来产生预览图片,用于博客等平台。图像放大技术则一般被用来令一个较小的图像填充一个大的屏幕。
图2 缩略图应用
接下来我们就介绍经典的Image Retargeting相关算法。
2 Image retargeting算法
如下图3,展示了一幅图采用不同的Image Retargeting方法,生成的高度不变,宽度是原始图像一半大小的结果。
图3 经典Image Retargeting方法比较
图3中的方法从左到右分别是
(1) CR,即manually chosen cropping window人工裁剪方法
(2) SV,即streaming video方法
(3) Multi-operator,即multiop多算子方法
(4) SC,即seam-carving接缝裁剪方法
(5) SCL,即simple scaling operator简单尺度缩放方法
(6) SM,即shift-maps漂移图方法
(7) SNS,即scale-and-strech缩放与拉伸方法
(8) warp,即nonhomogeneous warping非均匀变形方法
由于文章篇幅问题,下面我们对其中算法的原理进行简单介绍,每一种算法的具体细节与实现,请大家阅读论文原文和相应代码进行补充。
2.1 CR方法
人工剪裁(CR)是Retargeting最直接的解决思路,相较于其他的retargeting方法,CR得到的结果不会引入任何的形变,但是其损失重要信息的可能性也越大。
一般来说,剪裁会借助显著图或者物体检测的方法来选择剪切的区域,然后根据目标尺寸的大小进行剪切,比如下图4就是获得显著图然后进行裁剪,图像显著性是图像中重要的视觉特征,体现出人眼对图像各区域的重视程度。
图4 基于显著区域的裁剪
2.2 SCL方法
除了剪切的方法,比例缩放也是解决图像重定向的另一个直接思想,相较于直接剪裁带来的严重信息损失,比例缩放可以“基于全局”来进行整体的缩放,尤其能够保留原图像的构图信息。但是这种操作可能会过于压缩或者拉伸目标,如下图5,这严重影响整图的美观。
图5 缩放变形示意图
2.3 SC方法
2007年以色列的两名研究员提出了seam-carving,它通过设置一个能量函数来计算图像中不同的位置像素点的能量”,重要内容的地方对应能量大;反之,可有可无的位置能量就小。
然后找出一系列的接缝(即图像中最不重要的一连串像素),接着利用接缝对图像做删减或增加。如果是要缩小图像,则移除这些接缝,若是放大,则在这些接缝的位置处插入一些像素。
图6 SC方法
比如上图6左边是原图,红色线表示接缝,中间的表示梯度图,右上角是seam-carving结果,右下角是缩放结果。假如要减少宽度,找到接缝线后,以图像第一行或最后一行为开始行,然后开始迭代,所有位于最小能量线右边的像素点左移一个单位,从而实现图像缩小宽度缩小一个单位,移除的时候 为了让图像看起来自然,需要在移除缝线的地方进行平均。
这类算法的核心是找到一个合理的能量函数。这个能量函数可以是梯度,梯度大的地方亮度变化剧烈、纹理丰富,一般是重要内容;梯度小的位置亮度变化小,比如蓝天,删除一条缝隙对图像影响较小。
SC方法的优点是可以很好的保护原图像中的重要内容,但是当缩放的比例过大的时候,可能引入形变。
2.4 SM方法
SM方法为原图匹配一个与原图同等大小的“运动路线图”(shift map),原图中的每个像素都依据“运动路线图”来变化位置,最终有的像素实现了“短距离漂移”,有的则相当于被“流放”而不会出现在结果图中。如果迭代的次数等于SC方法中要去除的列,每一次迭代只改变一个像素宽,则SM方法就是SC方法,所以它可以看作是SC方法的泛化版本,它们的主要区别在于SM方法一次去除一个目标,而不仅仅是一条缝。SM方法对原图的内容也有一定的保护,但是在结果中可能出现物体的割裂或者部分缺失,这是该方法失效的主要原因。
2.5 warp方法
warp方法通过将原图进行网格化,然后对每一个小格子进行不同程度的扭曲,这需要评估图像不同区域的重要性。对于重要的小格子,扭曲程度低一些,不重要的格子,扭曲程度高些。如下图7对视频中的显著目标,人脸目标,运动区域进行检测,然后合并起来获得重要性图,最后用于优化目标不同位置的权重。
图7 warp方法
2.6 SNS方法
SNS方法通过使用梯度和显著图来评估图像中的区域重要性进,然后对重要的区域使用均匀缩放来保持形状,而对不重要区域进行变形缩放,如下示意图。
图8 SNS方法
2.7 multiop方法
即多算子的方法,它是指对一张图像,分别借助不同的算法来进行处理,包括seam carving,scaling等,如下图9展示了融合seam carving(图d),scaling(图e)的结果(图c)。每一种算法称之为一个算子,得到一个由多个算法共同指导的缩放结果。由于“集百家之所长”,多算子的结果在多数情况下,一般可以被接受。
图9 multi-crop方法
2.8 SV方法
SV方法是一个依赖于重要性图进行变形的方法,其重要性图的定义依赖于显著目标,线段检测,以及其他人工交互式的标记,如下图10。
图10 SV方法
除此之外,还有对各种方法的改进,不再一一列举。从上面的这些方法来看,其实可以归为两大类:
第1类:基于变形(warping)与缩放(scaling)的方法 ,其中重点在于找到重要的区域,对重要区域和不重要区域进行不同程度的变形与缩放,并且要保证目标的尺度。
第2类:基于复制删除(seam-carving)的方法,这一类方法就是基于最优路径,在不重要的区域插入与删除元素。
另外,我们以前还介绍过自动构图的算法,也是一类可以用于Retargeting的方法,见:
******
这里的CR方法也可以归为构图算法一类,构图方法与Retargeting方法的主要区别在于:构图算法首先在图中选择窗口然后再进行缩放,可以保持原图像的局部连续性,也不会出现变形问题,但可能丢失重要目标,而且它不能对图像进行放大填充。
3 Image retargeting的比较
Image Retargeting算法结果没有唯一正确的答案,因此设计合适的评估指标是一个很关键的问题,尽管对于不同的人和不同的图片,评价标准难以一概而论,但是仍然具有一定共性。文[1]作者建立了一个包含80张图的benchmark,名为RetargetMe,图的种类包括:
(1) 人像以及人脸图(people and faces)
(2) 具有线条或者明显边界的图(lines and/or clear edges)
(3) 具有明显的前景图像的图(evident foreground objects)
(4) 具有纹理元素或者重复格式的图(texture elements or repeating patterns)
(5) 具有特殊的几何结构或者对称的图(specific geometric structures, and symmetry)
图11 RetargetMe示意图
对于方法的评测,主要考虑以下几个因素:
(1) 保留原图的重要信息,获得content-aware的方法,这一般需要借助显著图;
(2) 减少视觉缺陷(preventing artifacts人工痕迹);
(3) 保存原始图像的结构信息(perserving structure),比如构图信息;
对于评测方法,作者采用了主观人工打分排序评测和两类no-reference comparison方法,两类no-reference comparison方法是edge histogram和color layout,都可以对于任意大小的图片,输出固定的特征。
这里我们以主观的评测结果来比较各种方法,在给定原图参考时,排名如下,从左到右依次降低:
图12 人工评测结果
总结起来,对所有的缩放方法来说,
(1) 除去人工裁剪CR操作,SV方法和MULTIOP是最受人欢迎的,三种有相当的排名。SV方法需要对图像中的重要信息进行复杂的分析,而MULTIOP方法,则是将许多简单的特征和操作进行融合,虽然是两种最好的方法,却采用了两种截然不同的思路。
(2) SCL,SC,WARP方法是最不受欢迎的。被测试者对图像内物体变形比较敏感,尤其是包含人脸信息或者内容具有良好的对称性的图片,此时人们宁愿牺牲内容信息也不愿意见到图像内物体变形扭曲。
最后,还比较了人工方法和no-reference comparison两种方法的一致性。这是一篇很传统,经典的,干货非常多,值得读的文章,包含了:
(1) 数据集的建立,并提供了数据集和代码的下载链接。
(2) 方法的比较。
(3) 人工主观指标评测。
(4) 自动定量指标评测。
(5) 一个包含了比较方法介绍以及评测指标计算细节的supplement文件。
(6) 甚至对于主观评测和自动评测指标的一致性,还进行了比对。
4 展望
总的来说,当前Image Retargeting主要在两个方向上有研究的意义:
其一,Image Retargeting方法的评价,由于难以建立直接而客观的标准,不同人的审美差异不同,导致不同方法的比较还需要研究;
其二,基于深度学习模型的研究,如文[2]自动学习偏移特征图,实现端到端的Retargeting,这也是更加值得关注的方向。
图13 基于深度学习的Image Retargeting
参考文献
[1] Rubinstein M, Gutierrez D, Shamir A, et al. A comparative study of image retargeting[C]// ACM SIGGRAPH Asia. ACM, 2010:160.
[2] Cho D , Park J , Oh T H , et al. Weakly- and Self-Supervised Learning for Content-Aware Deep Image Retargeting[J]. IEEE, 2017.
更多摄影图像处理相关的内容细节,请参考我最近出版的新书,《深度学习之摄影图像处理》,介绍如下:
总结
本文介绍了Image Retargeting问题,这是一个比较小众的研究领域,有实际的应用价值,传统方法研究较多,基于深度学习的研究方向较少,对这一块技术感兴趣的朋友可以了解学习。
有三AI秋季划-图像质量组
图像质量小组需要掌握与图像质量相关的内容,学习的东西包括8大方向:图像质量评价,图像构图分析,图像降噪,图像对比度增强,图像去模糊与超分辨,图像风格化,图像深度估计,图像修复。了解详细请阅读以下文章:
转载文章请后台联系
侵权必究