基于网格锚的图片裁剪:一种新的标准和高效的模型
摘要
图像裁剪的目的是通过去除图像中无关的内容来改善图像的组成和美学质量。现有的图像裁剪数据库大多只提供一个或多个人工标注的边界框作为基准,难以反映实际中图像裁剪的非唯一性和灵活性。
采用IoU等评价指标也不能可靠地反映裁剪模型的真实性能。本文回顾了图像裁剪的问题,并通过考虑图像裁剪的特殊特性和要求(如局部冗余、内容保存、高宽比),提出了基于网格锚的公式。
我们的公式将候选裁剪窗口的搜索空间从数百万减少到不超过90。
在此基础上,构建了基于网格锚的裁剪基准,对每幅图像的所有裁剪进行标注,并定义了更可靠的评价指标。
为满足裁剪鲁棒、高效的实际需求,设计了一种高效、轻质的裁剪模型。
通过同时考虑感兴趣的区域和被丢弃的区域,并充分利用多尺度信息,我们的模型可以对不同场景的图像稳健地输出视觉上令人满意的裁剪。我们的模型在一个GTX 1080Ti GPU上运行速度为200帧/秒,在一个i7-6800K CPU上运行速度为12帧/秒。
1.介绍
从本质上来说,图像裁剪是一种主观的,灵活的任务,是没有唯一解的。
如上图所显示的,好的裁剪结果之间在不同的长宽比/分辨率的要求下会有很多个。
即使是在某一特定的长宽比或分辨率的约束下,也会有很多个可以接受的裁剪结果。
在最右边的一列中,第1,行是好的裁剪结果,第3行是不好的裁剪结果。而第2行看做是ground truth。
第3行的那个结果与ground truth之间的IoU是0.67,明显大于第1行的IoU—0.37.
但是很明显,第3行的那个结果很不理想,美学质量很差。这就说明了,IoU这个指标不适合用来评估裁剪质量。
这样的高自由度使得那些只有一个或多个标注的现有的裁剪数据集很难去学习到一个可靠和鲁棒的裁剪模型。
这篇文章的主要贡献有:
- 考虑到图像裁剪问题的特殊属性和要求(如局部冗余、内容保存、高宽比),提出了一种基于网格锚的图像裁剪公式。我们的方案将候选裁剪从数百万个减少到不超过90个,为满足图像裁剪的实际需求提供了一个有效的解决方案。
- 在此基础上,我们为每个源图像构造了一个新的带有详尽注释的裁剪数据库。从3336幅源图像中总共有288,069个已注释的候选裁剪,每个裁剪都至少有7个经验丰富的人类受试者进行了注释,我们的数据库为学习稳健的图像裁剪模型提供了一个良好的平台。我们还定义了三种新的度量标准,它们可以比以前数据集中使用的IoU和BDE更可靠地评估已学习的裁剪模型的性能。
- 在卷积神经网络(CNN)的基础上设计了一种高效的图像裁剪模型。具体来说,我们的模型首先从输入图像中提取多尺度特征,然后对感兴趣的区域和被丢弃的区域进行建模,以稳定地输出一个视觉上令人满意的裁剪。利用最近在设计高效CNN模型[26]和[27]方面取得的进展,我们的裁剪模型包含不到250万个参数,在单台NVIDIA GTX 1080Ti GPU上可以运行高达200帧/秒的速度
, 在一个Intel i7-6800K CPU上运行12fps。
2.相关工作
在本节中,我们总结了现有的图像裁剪数据集和评价指标,代表性的图像裁剪方法以及近年来在提高裁剪效率方面所做的努力。
2.1 图像裁剪数据集和评估指标
图像裁剪数据集
序号 | 论文 | 内容 | 链接 | 备注 |
---|---|---|---|---|
1 | J. Yan, S. Lin, S. Bing Kang, and X. Tang, “Learning the change for automatic image cropping,” in Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2013, pp. 971–978. 1, 2, 3,12 | 第一个裁剪数据集,有950张图片,每张图片有3个专业摄影师进行标注 | 用IoU和BDE评估裁剪性能 | |
2 | C. Fang, Z. Lin, R. Mech, and X. Shen, “Automatic image cropping using visual composition, boundary simplicity and content preservation models,” in ACM Multimedia, 2014, pp. 1105–1108. 1, 2, 3, 4 | 包括500张图片,每张图片有10个专业人员标注 | ||
3 | Y .-L. Chen, T.-W. Huang, K.-H. Chang, Y .-C. Tsai, H.-T. Chen, and B.Y . Chen, “Quantitative analysis of automatic image cropping algorithms:A dataset and comparative study,” in Proceeding of the IEEE Winter Conference on Applications of Computer Vision, 2017, pp. 226–234. 1,2, 3, 6, 7, 10, 12 | 提出了一个成对标注的策略。包括1743张图片,31,430对标注的子图 | 为了获得更多的标注,从而学习一个鲁棒的裁剪模型 | |
4 | Z. Wei, J. Zhang, X. Shen, Z. Lin, R. Mech, M. Hoai, and D. Samaras,“Good view hunting: Learning photo composition from dense view pairs,” in Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2018, pp. 5437–5446. 1, 2, 3, 6, 7, 10, 11 | 建立了一个大规模的比较图片构图数据集,生成超过1万的视图对。 | 这些数据集中的候选裁剪无法为图像裁剪提供更可靠、有效的评价指标 | |
5 | 本论文 | 我们的数据集是在一种新的图像裁剪公式下构造的 | 我们的密集的标注不仅为训练裁剪模型提供了广泛的信息,而且使我们能够定义新的评估指标,更可靠地评估裁剪性能。 |
2.2 图像裁剪方法
根据方法的主要驱动,图像裁剪可以分为三大类:
注意驱动方法
这一类方法普遍的流程就是:
先得到一张重要显著性图,然后寻找一个裁剪窗口,以获得最大的显著分数。然而,一个具有高注意值的裁剪窗口不一定有美学上的美感。
美学驱动的方法
这一类的方法通过提高图片的整体美学质量,从而提高基于注意的方法的性能。这些方法通常设计一系列手工特征来表示图像的美学性质或者构图规则。
然而,手工特征不足以用来准确地预测复杂的图像美学。
数据驱动的方法
这一类方法针对图像裁剪任务,训练一个端到端的CNN模型。
由于缺乏足够数量的标注的训练样本,大多数的方法选择一个通用的美学分类器,这个分类器在类似AVA,CUHKPQ等美学数据集上训练,以此来帮助进行裁剪任务。
然而,在完整的图像上训练的通用美学分类器可能不能够可靠地评价一张图片的裁剪结果。
另一种策略是使用成对学习来构建更多的训练数据。
我们的方法基于数据驱动的方法,并比现有的方法有多种优势。
首先,我们提出了一种新的公式用于图像裁剪学习。
第二,我们建立了一个足够大的数据集,具有可靠的标注,使得我们能够训练更加鲁棒和准确地裁剪模型。
2.3 图像裁剪效率
对于一个实用的图像裁剪系统来说,效率是非常重要的。
有两种方法可以提高效率:
- 减少候选裁剪的数量
- 降低裁剪模型的计算复杂度
论文 | 内容 | 备注 |
---|---|---|
W. Wang, J. Shen, and H. Ling, “A deep network solution for attention and aesthetics aware photo cropping,” IEEE Transactions on Pattern Analysis and Machine Intelligence, 2018. 2, 3 | 首先检测图像的显著区域,然后在显著地区周围生成约1000个裁剪窗口。 | 这种策略不可避免地会遇到基于注意力的方法所面临的相同问题:许多有用的背景像素不必要地丢失,裁剪结果可能没有最好的构图 |
Z. Wei, J. Zhang, X. Shen, Z. Lin, R. Mech, M. Hoai, and D. Samaras, “Good view hunting: Learning photo composition from dense view pairs,” in Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2018, pp. 5437–5446. 1, 2, 3, 6, 7, 10, 11 | 在单目标检测器使用895个预定义的锚框 | 这种用于目标检测的锚框可能不适用于图像裁剪 |
本论文 | 提出的新公式仔细地考虑了图像裁剪任务的特殊性质,并减少候选裁剪的数目,使其不多于90个 |
近期许多的裁剪模型是基于AlexNet或者VGG16结构的,但是这些网络结构都太过于重量级,不适用于类如移动手机或无人机等设备上。
作者提出的裁剪模型包含了高效CNN架构设计的最新进展,它比之前的模型更轻量和高效。
3. 基于网格锚的图像裁剪
如上图所示的,图像裁剪任务具有很高的自由度。对于给定的一张图像,是没有一个唯一的最优解。
我们考虑一个好的图像裁剪系统的两个实际的需求:
- 能够根据不同的设置(比如:长宽比和分辨率)返回可接受的结果而不是单一的输出。
- 裁剪系统要能够在资源有限的设备上运行,因此要足够轻量级和高效。
带着这些考虑,我们提出了一个基于网格锚的公式,用于实际图像裁剪,并在这一公式下建立一个新的标准。
3.1 公式
给定一个空间分辨率为 H × W H\times W H×W的图像,一个候选裁剪可以通过以下方式定义:
它的左上角 ( x 1 , y 1 ) (x_1,y_1) (x1,y1)和右下角 ( x 2 , y 2 ) (x_2,y_2) (x2,y2),其中 1 ≤ x 1 < x 2 ≤ H , 1 ≤ y 1 < y 2 ≤ W 1\leq x_1<x_2\leq H,1\leq y_1 < y_2 \leq W 1≤x1<x2≤H,1≤y1<y2≤W
因此,易知,候选裁剪的数量是:
H ( H − 1 ) W ( W − 1 ) 4 \frac{H(H-1)W(W-1)}{4} 4H(H−1)W(W−1)
即使图像尺寸为 100 × 100 100\times 100 100×100,上式的结果依然是个很大的数字。幸运的是,通过利用图像裁剪的以下特性和要求,可以显著减少搜索空间,使自动图像裁剪成为一个容易处理的问题。
局部冗余性
图像裁剪本质上就是一个具有局部冗余性的问题。
正如上图所显示的,一系列相似且可接受的裁剪结果,能够通过将一个好的裁剪结果进行平移或缩放来获得。
直观地说,我们可以通过在图像网格锚点上定义裁剪而不是稠密的像素,以此来去除冗余的候选裁剪。
提出的基于网格锚点的公式如下图所示。
作者在一张原图上建立一个 M × N M\times N M×N个格子的图像网格,并在网格中心定义一个裁剪的角 ( x 1 , y 1 ) 和 ( x 2 , y 2 ) (x_1, y_1)和(x_2, y_2) (x1,y1)和(x2,y2),其中的网格中心作为锚点,并在其邻近地区产生一种有代表性的裁剪。
想这样的规格化,使得候选裁剪的数量从 H ( H − 1 ) W ( W − 1 ) 4 \frac{H(H-1)W(W-1)}{4} 4H(H−1)W(W−1)减小到 M ( M − 1 ) N ( N − 1 ) 4 \frac{M(M-1)N(N-1)}{4} 4M(M−1)N(N−1),减少了很多数量级。
内容保持
一般来说,一个好的裁剪应该保留源图像的主要内容。否则,裁剪后的图像可能会遗漏源图像中的重要信息,误解摄影师的意图,导致输出不满意。比如下图所示:
因此,裁剪窗口不应太小,以避免丢弃过多的图像内容。
基于以上原因,裁剪窗口的两个锚点 ( x 1 , y 1 ) , ( x 2 , y 2 ) (x_1,y_1),(x_2,y_2) (x1,y1),(x2,y2)被分别限制在原始图片的左上角和右下角的一个 m × n m\times n m×n大小的网格,如下图所示:
从而候选裁剪的数量从 M ( M − 1 ) N ( N − 1 ) 4 \frac{M(M-1)N(N-1)}{4} 4M(M−1)N(N−1)减少到 m 2 n 2 m^2n^2 m2n2.
上图的红色实线围起来的方框,是最小的可能的裁剪窗口,它覆盖了原图 ( M − 2 m + 1 ) ( N − 2 n + 1 ) M N \frac{(M-2m+1)(N-2n+1)}{MN} MN(M−2m+1)(N−2n+1)个网格,有可能依然尺寸过小以至于不能够保持足够的图像内容。因此,我们更进一步约束了潜在裁剪窗口的面积不小于原图面积的某一特定比例:
S c r o p ≥ λ S I m a g e . . . . . . . . . . . . . . . . . . . . . . . ( 1 ) S_{crop}\geq\lambda S_{Image}.......................(1) Scrop≥λSImage.......................(1)
其中 λ ∈ [ ( M − 2 m + 1 ) ( N − 2 n + 1 ) M N , 1 ] \lambda \in [\frac{(M-2m+1)(N-2n+1)}{MN},1] λ∈[