SNS论文阅读笔记
文章:
Wang, Y. S., C. L. Tai, O. Sorkine and T. Y. Lee (2008). “Optimized Scale-and-Stretch for Image Resizing.” Acm Transactions on Graphics 27(5): 8.
摘要
我们提出了一种“缩放”扭曲方法,允许将图像大小调整到任意纵横比,同时保留视觉上突出的特征。该方法通过迭代计算每个局部区域的最优局部比例因子并更新尽可能匹配这些比例因子的扭曲图像来操作。图像内容的变形量由表征每个像素的视觉吸引力的重要性图来指导;使用基于梯度和显著性的测量的新颖组合来自动计算该显著性图。我们的技术允许将由于调整大小而导致的失真转移到具有同质内容的图像区域,使得对感知上重要的特征的影响最小化。与以前的方法不同,我们的方法将失真分布在所有的空间方向上,即使调整大小操作只应用于水平或垂直方向,从而充分利用可用的均匀区域来吸收失真。我们开发了一个有效的公式,用于扭曲函数计算中涉及的非线性优化,允许交互式图像大小调整。
1.介绍
2.相关工作
3.任意图像缩放
网格
M
=
(
V
,
E
,
F
)
M = (V, E, F)
M=(V,E,F)
其中 V 为顶点, E为边, F为四边形面。
目标任务是将
m
×
n
m\times n
m×n大小的图片
r
e
s
i
z
e
resize
resize为
m
′
×
n
′
m'\times n'
m′×n′大小的图片。
首先固定左上角的顶点 v 0 v_0 v0 的位置,然后由用户指定右下角的顶点 v e n d v_{end} vend的新位置。其余的边界顶点被限制为沿各自的边界滑动,以保持图像为矩形。
这篇文章在解决一个优化问题,找到一个符合条件的变形网格几何 V ′ = [ v 0 ′ T , v 1 ′ T , . . . , v e n d ′ T ] V'=[v_0'^T,v_1'^T,...,v_{end}'^T] V′=[v0′T,v1′T,...,vend′T]
3.1 四边形重要性
W
=
W
α
×
W
β
W = W_{\alpha}\times W_{\beta}
W=Wα×Wβ
四边形
f
f
f 的重要值
w
f
w_f
wf 计算为四边形内所有像素的平均重要值,并被归一化为0到1之间。
3.2 基于网格的图像缩放
由右下角 v e n d v_{end} vend 的新位置表示新的图像尺寸,我们计算最优的变形网格,使得较高重要性的四边形享有均匀的缩放,而低重要性的四边形被允许失真更多。
另外,我们希望最小化网格线的弯曲程度,因为主要物体经常占据多个互相连接的四边形。
具体来说,变形的网格通过优化受边界约束的四边形变形和网格线弯曲能量项来求解。
3.2.1 四边形变形
形状失真能量项: 计算每个四边形中的变形四边形与均匀缩放的四边形之间的差异大小。
对于 每一个四边形(quad)
f
∈
F
f\in F
f∈F都有一个缩放因子
s
f
s_f
sf,使得每一个顶点
v
v
v有,
v
′
=
s
f
v
+
t
v' = s_fv+t
v′=sfv+t
我们记四边形
f
f
f 的边的集合为
E
(
f
)
E(f)
E(f)
四边形
f
f
f 的失真能量为:
D
u
(
f
)
=
∑
(
i
,
j
)
∈
E
(
f
)
∣
∣
(
v
i
′
−
v
j
′
)
−
s
f
(
v
i
−
v
j
)
∣
∣
2
D_u(f) = \sum_{(i,j)\in E(f)}||(v_i'-v_j')-s_f(v_i-v_j)||^2
Du(f)=(i,j)∈E(f)∑∣∣(vi′−vj′)−sf(vi−vj)∣∣2
令
∂
D
u
(
f
)
∂
s
f
=
0
,
可
得
:
令 \frac{\partial D_u(f)}{\partial s_f}=0,可得:
令∂sf∂Du(f)=0,可得:
s
f
=
∑
(
i
j
)
∈
E
(
f
)
(
v
i
−
v
j
)
T
(
v
i
′
−
v
j
′
)
∑
(
i
,
j
)
∈
E
(
f
)
∣
∣
v
i
−
v
j
∣
∣
2
s_f = \frac{\sum_{(ij)\in E(f)}(v_i-v_j)^T(v_i'-v_j')}{\sum_{(i,j)\in E(f)}||v_i-v_j||^2}
sf=∑(i,j)∈E(f)∣∣vi−vj∣∣2∑(ij)∈E(f)(vi−vj)T(vi′−vj′)
最终总的能量项为:
D
u
=
∑
f
∈
F
w
f
D
u
(
f
)
D_u = \sum_{f\in F}w_fD_u(f)
Du=f∈F∑wfDu(f)
3.2.2 网格线弯曲度
定义变形前后的边的长度比:
l
i
j
=
∣
∣
v
i
′
−
v
j
′
∣
∣
∣
∣
v
i
−
v
j
∣
∣
l_{ij} = \frac{||v_i'-v_j'||}{||v_i-v_j||}
lij=∣∣vi−vj∣∣∣∣vi′−vj′∣∣
并引入以下能量项:
D
l
=
∑
(
i
,
j
)
∈
E
∣
∣
(
v
i
′
−
v
j
′
)
−
l
i
j
(
v
i
−
v
j
)
∣
∣
2
D_l = \sum_{(i,j)\in E}||(v_i'-v_j')-l_{ij}(v_i-v_j)||^2
Dl=(i,j)∈E∑∣∣(vi′−vj′)−lij(vi−vj)∣∣2
3.2.3 总的能量和边界条件
D
=
D
u
+
D
l
D = D_u+D_l
D=Du+Dl
…
作者使用迭代器求解变形网格。
在实验中,作者在每次迭代中平滑
s
f
s_f
sf
令
N
(
f
)
N(f)
N(f)表示四边形
f
f
f 的相邻四边形的集合。
w
g
w_g
wg 表示所有的四边形的重要值的平均值 。
通过最小化以下能量项,我们获取平滑缩放因子
s
f
′
s_f'
sf′:
∑
f
∈
F
∑
q
∈
N
(
f
)
1
2
(
w
f
+
w
q
)
(
s
f
′
−
s
q
′
)
2
+
∑
f
∈
F
w
g
(
s
f
′
−
s
f
)
2
\sum_{f\in F}\sum_{q\in N(f)}\frac{1}{2}(w_f+w_q)(s_f'-s_q')^2+\sum_{f\in F}w_g(s_f'-s_f)^2
f∈F∑q∈N(f)∑21(wf+wq)(sf′−sq′)2+f∈F∑wg(sf′−sf)2
为了保证非负目标函数 D最终能够收敛,每次迭代获得的
V
′
V'
V′都要保证
D
t
+
1
≤
D
t
D^{t+1}\leq D^t
Dt+1≤Dt.
具体地,令
V
t
+
1
=
0.7
V
t
+
1
+
0.3
V
t
,
直
到
D
t
+
1
≤
D
t
V^{t+1} = 0.7V^{t+1}+0.3V^t,直到 D^{t+1}\leq D^t
Vt+1=0.7Vt+1+0.3Vt,直到Dt+1≤Dt,或者顶点位移都小于0.5
3.3 初始值
3.4 基于重要性的初始网格
基本思路是吸引更多顶点到重要区域。具体来说,如果边 {i,j} 附近的四边形覆盖了一些突出的物体,我们就缩短它。为了使网格变形,我们最小化以下目标函数:
Ω
=
∑
{
i
,
j
}
∈
E
(
1
+
w
i
j
)
∣
∣
v
i
′
−
v
j
′
∣
∣
2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
(
9
)
\Omega = \sum_{\{i,j\}\in E}(1+w_{ij})||v_i'-v_j'||^2....................(9)
Ω={i,j}∈E∑(1+wij)∣∣vi′−vj′∣∣2....................(9)
重要性高的边会变短,重要性小的边会变长。加常量值1是为了降低该权重因子的比例。
我们迭代求解网格几何,通过在每一步中最小化(9)来更新顶点位置,并重新计算权重,因为在变形过程中四元显著性发生了变化。当所有顶点移动小于0.5像素时,我们停止。