CV | 智能缩放:浅谈Seam Carving算法 (2)


Seam Carving

高效的图像智能缩放算法,应该既满足图像几何约束,保留图像的结构信息,同时可识别图像内容以得到重要信息,
从而在缩放过程中尽可能保留关键的图像内容。
2004年Agarwala等人提出交互式搜索最优缝方法,
而后Jia等人提出拖拽式粘贴延展图像方法结合泊松图像编辑技术,
Rother等人开发了自动拼贴技术能够自动地创建图像集的拼贴图像。
但是以上技术没有讨论过图像智能缩放,直到2006年Wang提出了解决图像抠图和合成的方法,
Zomet提出了对多个能量方程预测拼贴代价的最小值方法。
然而计算缝[1]有很多方法,包括动态规划或者图割法。
对于目标移除,Bertalmio等人提出图像的内填充方法,Drori等人提出基于图像补丁的方法,
而近期Sun等人提出一个交互式方法对缺失视觉结构的图像进行填充。
Viola等人提出检测图像中重要区域的方法,Itti等人提出构建一个视觉显著性图,
Suh等人提出自动缩略图剪裁,Decarlo等人提出人眼关注点检测方法。
通过对这些方法的研究,Shai等人提出基于seam carving算子的图像内容识别的智能缩放算法。

Seam Carving 算子

基于内容识别的图像缩放算法的目标是移除或插入最不被注意到的像素点,

seam carving算子是选择移除(插入)像素的关键点。

该算法使用seam carving算子对图像能量进行计算,以评估出图像中所有像素的重要性。

该算子依据特定的能量方程进行能量计算,不同的能量方程得到的结果性能不一。


1. E1能量方程

在众多能量方程中,其中被广泛应用的是形式简单的E1能量方程,即索贝尔算子能量方程。
如下式(1)可知,E1 能量方程以每个像素对x轴和y轴的偏导和作为像素的能量值。
这个能量公式计算简单且高效,与其它四种方式相比,综合性能较优。
(1)

2. 基于HoG的能量方程

另一种综合性能较为优良的能量公式是基于梯度直方图HoG的能量方程。

参考Shai等人的方法,使用面向梯度的直方图算法对每一个像素进行处理。

面向方向梯度的直方图HoG算法的主要思想是:

一幅图像中,内容的表象特征可以用局部区域的梯度值或边缘处的方向密度值分布进行描述。

本质上来说,梯度是反映目标视觉特征的重要统计信息,而越接近目标边缘处,梯度数值通常就越大。

HoG算法的实现方法是将图像分成若干个较小的连通区域,称之为细胞单元(cell),

然后对细胞单元中各个像素点求梯度和方向的直方图,接着将局部直方图以细胞单元为最小单位向上分组为细胞区间(block),

在区间内对每个细胞单元进行对比度归一化,对光照和阴影特征性能描述获得更好的效果,

最后将这些直方图总合为一个直方图行向量作为衡量图像内容特征重要性的描述器。

使用基于梯度直方图HoG的能量方程计算输入图像的能量图,将输入图像进行归一化处理后,

对每一个像素取 区间为单位的检测窗口进行扫描,据此计算出8个直方图值。

对每个像素进行直方图计算后,取该像素所在区间内的最大直方图数值作为分母,对像素求偏导的和作为分子,

即使用前面提及的 能量方程计算出分子值,最后分子除以分母得出最终的 能量值。

之所以取区间内最大的直方图数值作为分母,是因为分子通常会使缝与图像内容的边缘平行从而避免相交,

而分母的作用则与之相反,使得缝接近图像边缘,正好产生平衡的效果。

能量公式Ehog定义如下

2)

Seam Carving 缩放策略

能量方程计算得到图像能量图,图像内容的能量值越高则说明该区域是图像重要内容的可能性越大。
根据确定的能量方程计算出图像的能量图后,为了保证缩放前后能量差值尽可能小,
移除或插入像素的最优选择策略是每次选择当前情况下具有最小能量的像素点组成的缝路径,
然后进行移除或插入操作。作为算法的重要约束之一,图像缩放的过程中要确保图像的矩形几何结构,
需要满足:图像宽度缩小或放大时,每一行移除或插入像素数相同;
图像高度缩小或放大时,每一列移除或插入像素数相同。
因此,Shai等人定义了一个seam carving缩放算子,用来平衡图像内容和图像的几何结构,
也就有了seam carving缩放策略。

为了形象地说明seam carving算子的操作机制,设I是尺寸为n×m的输入图像,
定义图像中的一条由上到下的垂直缝为如下(2-3)形式
3)
式中的x是一个映射函数
含义是图像中的一条垂直缝包含的像素对应于图像的第i行第j列的像素点,坐标表示为( i, j ) = ( i, x( i ) )。
从公式(2)中可以看出缝必须满足单调性约束和连通性约束。
对于垂直缝的定义sx,表明垂直缝必须是由纵穿图像的强连通的像素点构成的,
且在图像的每一行包含且仅包含一个像素。
值得注意的是,对于缝定义的连通性约束:
====可根据实际情况调整为>>>> (其中1 <= k <= m)
同理可得图像中一条水平缝的定义形式
4)
与垂直缝的定义相同,y是一个映射函数
即一条水平缝包含的像素对应图像的第j行第i列 的像素点,坐标表示为( i, j ) = ( y( j ), j )。
一条缝s上的像素集(如垂直缝{ si })可表示为:
5)

移除一条缝上的像素点后,图像效果类似于将图像的某一行或一列的像素点移除。

以图像的左侧为参考,图像中剩余的像素如果位于移除缝的像素点左侧,则其位置保持不变,

若是位于移除缝的像素点右侧,则其位置向左移动一个像素单位,以填补移除像素的空缺。

根据已知的能量方程,定义缝s的能量为缝上所有像素点的能量值的总和,

每个像素点的能量值分别通过能量方程e进行计算:

6)

根据seam carving算子的智能缩放策略,对图像进行缩小操作时,

移除的缝s*应具有当前图像内所有缝的可能情况中的最小能量值:

7)

算法采用动态规划方法,将整幅图像看作一个二维数组进行遍历找到最优缝。
就垂直缝而言,算法首先以图像的第一行的任意像素作为入口,对图像的第二行到最后一行进行遍历,
计算出所有可能连通且单调的缝的能量图M。
然后,在能量图M的最后一行找到最小的能量值,最后以该点的坐标作为起点回溯找到最优缝的完整路径。
水平缝的情况与之相似,不再赘述。


[1] Shai Avidan Mitsubishi Electric Research Labs, SeamCarving for Content-Aware Image Resizing, 2007

文章链接:http://download.csdn.net/detail/ilovejohnny/9576342

代码链接:http://download.csdn.net/detail/ilovejohnny/9576672


[2] O Weber, Robust Image Retargeting via Axis - Aligned Deformation D Panozzo, 2012

文章链接:http://download.csdn.net/detail/ilovejohnny/9576352


Expecting The V.I.P M.A.D.E World Tour toooooooooooooday ! ^_______________^*








  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值