经典论文回顾:Image Deformation Using Moving Least Squares

本文回顾了SIGGRAPH2006的经典论文《图像变形:使用移动最小二乘法》,介绍了如何通过移动控制点实现像素插值,确保变形的局部性和平滑性。核心内容包括能量函数优化、仿射/相似/刚性变换求解及三角剖分加速方法。
摘要由CSDN通过智能技术生成

Image Deformation Using Moving Least Squares 发表于SIGGRAPH 2006, 是图像变形领域的经典论文,核心思想是利用移动最小二乘法进行插值。目前引用次数800+,今天简单对这篇论文的核心思想做简单回顾。

还是先上一张论文的Teaser,如下图所示,第1列是原始图像,蓝色的点就是变形控制点,第2、3、4列是随着控制点移动后,分别采用仿射变换、相似变换、刚性变换的图像的变形效果。可以看到变形效果具有很好的局部性,也就是每个控制点只影响到最近的像素。
在这里插入图片描述

1. 问题定义

输入:原始控制点 p p p ,移动后的控制点 p ′ p' p
输出:所有像素点 v v v 变形后的位置 v ′ v' v

图像变形问题本质上还是像素点的插值问题,也就是针对每一个像素点 v v v 求解一个映射函数 f f f: v ′ = f ( v ) v' = f(v) v=f(v). 该函数需要满足如下一些性质:

  1. Interpolation: 控制点 p p p 一定能精确的变形到 q q q: f ( p i ) = q i f(p_i) = q_i f(pi)=qi.
  2. Smoothness: 映射函数需要是光滑的,也就是说空间上相近的点变形后的位置也要接近: l i m v i → v j f ( v i ) = f ( v j ) lim_{v_i \to v_j} f(v_i) = f(v_j) limvivjf(vi)=f(vj).
  3. Identity: 相同的点一定能映射到形同的位置,跟性质2类似。

任意点 v v v的映射函数定义如下所示,其中 M M M表示一个线性变换的矩阵, T T T表示一个平移变换矩阵,需要注意的是,对于不同的像素点 M M M T T T 可能不同,但总体上满足光滑性,也就是位置接近,变换相似。
l v ( x ) = x M + T (1) l_v(x) = xM + T \tag1 lv(x)=xM+T(1)
假设我们已经知道了上述像素点 v v v的变换函数,那么我们可以进一步推导控制点的变换 l v ( p i ) l_v(p_i) lv(pi). 实际的变形过程中,我们往往是先移动控制点再驱动图像变形,因此变形前后的控制点是给定的。那么我们期望 l v ( p i ) l_v(p_i) lv(pi)跟真实的修改后的控制点 q i q_i qi 尽可能接近即可,因此能量函数定义:
E = ∑ i w i ∣ l v ( p i ) − q i ∣ 2 (2) E = \sum_iw_i|l_v(p_i)-q_i|^2\tag2 E=iwilv(pi)qi2(2)
其中, w i w_i wi 表示 v v v 对于 控制点 p i p_i pi 的变形影响权重,定义如下,基本上也就是距离越近影响越大,距离越远影响越小。
w i = 1 ∣ p i − v ∣ 2 α (3) w_i=\frac{1}{|p_i-v|^{2\alpha}}\tag3 wi=piv2α1(3)

为此我们的任务就是怎么来最小公式(1)所示的能量函数,从而得到每个点如公式(1)所示的变换函数。

2. 能量函数优化

我们将公式(1)带入公式(2)得到:
E = ∑ i w i ∣ p i M + T − q i ∣ 2 (4) E = \sum_iw_i|p_iM+T-q_i|^2\tag4 E=iwipiM+Tqi2(4)
为此,我们可以分别对 T T T M M M求导:
∂ E ∂ T = 2 ∑ i w i ( p i M + T − q i ) (4) \frac{\partial E}{\partial T} = 2\sum_iw_i(p_iM+T-q_i) \tag4 TE=2iwi(piM+Tqi)(4)
令导数为0,进一步得到 T T T
T = q ∗ − p ∗ M (5) T = q_* - p_*M\tag5 T=qpM(5)
其中,
p ∗ = ∑ i w i p i ∑ i , q ∗ = ∑ i w i q i ∑ i (6) p_* = \frac{\sum_iw_ip_i}{\sum_i},q_* = \frac{\sum_iw_iq_i}{\sum_i}\tag6 p=iiwipi,q=iiwiqi(6)
接下来,我们将公式(5)代回公式(4):
E = ∑ i w i ∣ p i M + q ∗ − p ∗ M − q i ∣ 2 = ∑ i w i ∣ ( p i − p ∗ ) M + q i − q ∗ ∣ 2 E = \sum_iw_i|p_iM+q_*-p_*M-q_i|^2 = \sum_iw_i|(p_i-p_*)M+q_i-q_*|^2 E=iwipiM+qpMqi2=iwi(pip)M+qiq2
p i ^ = p i − p ∗ , q i ^ = q i − q ∗ \hat{p _i} =p_i-p_*, \hat{q_i}=q_i-q_* pi^=pip,qi^=qiq:
E = ∑ i w i ∣ p i ^ M + q i ^ ∣ 2 (7) E = \sum_iw_i|\hat{p _i}M+\hat{q_i}|^2 \tag7 E=iwipi^M+qi^2(7)
接着对 M M M求导,并令导数等于0:
M = ( ∑ i p ^ i T w i p ^ i ) − 1 ∑ j p ^ j T q ^ j (8) M=\left(\sum_{i} \hat{p}_{i}^{T} w_{i} \hat{p}_{i}\right)^{-1} \sum_{j} \hat{p}_{j}^{T} \hat{q}_{j}\tag8 M=(ip^iTwip^i)1jp^jTq^j(8)
为此,整个变换函数可以进一步表示为:
f a ( v ) = ( v − p ∗ ) ( ∑ i p ^ i T w i p ^ i ) − 1 ∑ j p ^ j T q ^ j + q ∗ (9) f_{a}(v)=\left(v-p_{*}\right)\left(\sum_{i} \hat{p}_{i}^{T} w_{i} \hat{p}_{i}\right)^{-1} \sum_{j} \hat{p}_{j}^{T} \hat{q}_{j}+q_{*}\tag9 fa(v)=(vp)(ip^iTwip^i)1jp^jTq^j+q(9)
这便是仿射变换函数的求解过程,文章还推导了 M M M是相似变换和刚性变换的表示形式,这里就不再细讲,具体可以参考原文。

3. 加速方法

文章对这一插值方法进行了加速,具体而言,先对图像做三角剖分,对于每个三角形,首先对三个顶点计算变换函数,然后对三角内部的像素做线性插值计算变形函数,从而得到变形后的位置。

一些变形效果:
在这里插入图片描述
参考论文:
[1] Schaefer S, McPhail T, Warren J. Image deformation using moving least squares[M]//ACM SIGGRAPH 2006 Papers. 2006: 533-540.
[2] Zhu Y, Gortler S J. 3D deformation using moving least squares[J]. 2007. (将移动最小二乘推广到3D形状变形)

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Researcher-Du

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值