[图像拼接]APAP算法及相关问题研究
Posted zizi7
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[图像拼接]APAP算法及相关问题研究相关的知识,希望对你有一定的参考价值。
目录
图像拼接首先通过一些手段(标定、SIFT等特征点、其他传感器等)获取图像间的对应关系(2D-2D)。
这个对应关系可以用单应性矩阵
H
H
H(也称透视变换)描述
[
x
′
y
′
w
′
]
=
[
h
00
h
01
h
02
h
10
h
11
h
12
h
20
h
21
h
22
]
[
x
y
w
]
=
H
[
x
y
w
]
(1)
\\beginaligned\\left[\\beginmatrixx'\\\\y'\\\\w'\\endmatrix\\right]=&\\left[\\beginmatrixh_00&h_01&h_02\\\\h_10&h_11&h_12\\\\h_20&h_21&h_22\\endmatrix\\right]\\left[\\beginmatrixx\\\\y\\\\w\\endmatrix\\right]\\\\=&H\\left[\\beginmatrixx\\\\y\\\\w\\endmatrix\\right]\\endaligned \\tag1
⎣⎡x′y′w′⎦⎤==⎣⎡h00h10h20h01h11h21h02h12h22⎦⎤⎣⎡xyw⎦⎤H⎣⎡xyw⎦⎤(1)
但上述思路的前提是:待拼接的目标处于或者近似处于同一平面。否则就会产生遮挡和角度差异,从而造成拼接图的“虚影”
图1. 由于相机角度差异造成的虚影现象(红圈)
针对上述问题,Autostitch(OpenCV实现的方法)和Photosynth等方法走的是一个全局H + 虚影后处理的路线;
APAP【1】算法则使用多个局部H的方式尝试在拼接时就尽可能精确。
APAP算法思路
APAP算法官方主页提供了matlab的源码
Github上有第三方实现的C++代码
算法以A图为基准,首先计算B图到A图的全局变换
H
H
H(DLT方法),
然后将B图等间距划分小网格,逐个计算B图每个小网格与A图的局部变换
H
∗
H_*
H∗(Moving DLT方法),
最后将B图每个网格内的点按对应的
H
∗
H_*
H∗做局部变换,与A图融合。
图2. 网格局部变换(摘自APAP论文)
几个问题
SVD在最小二乘中的应用
- 模型
A
x
=
b
Ax=b
Ax=b的求解
令
A
A
A尺寸为
m
×
n
m\\times n
m×n,且
m
>
n
m>n
m>n(超定问题)
则优化目标为
m
i
n
∣
∣
A
x
−
b
∣
∣
min||Ax-b||
min∣∣Ax−b∣∣
首先对
A
A
A做SVD分解,有
A
=
U
Σ
V
T
(2)
A=U\\Sigma V^T \\tag2
A=UΣVT(2)
其中
U
U
U和
V
V
V分别称为
A
A
A的左、右奇异向量,满足正交性(即
U
T
=
U
−
1
U^T=U^-1
UT=U−1)
Σ
\\Sigma
Σ为对角阵,对角元素是
A
A
A的奇异值
将式(2)代入目标函数,有
m
i
n
∣
∣
A
x
−
b
∣
∣
→
m
i
n
∣
∣
U
Σ
V
T
x
−
b
∣
∣
→
m
i
n
∣
∣
Σ
V
T
x
−
U
T
b
∣
∣
(
正
交
性
)
→
m
i
n
∣
∣
Σ
y
−
b
′
∣
∣
(
令
y
=
V
T
x
,
b
′
=
U
T
b
)
(3)
\\beginaligned&min||Ax-b||\\\\&\\rightarrow min||U\\Sigma V^Tx-b||\\\\&\\rightarrow min||\\Sigma V^Tx-U^Tb|| (正交性) \\\\&\\rightarrow min||\\Sigma y-b'|| (令y=V^Tx,b'=U^Tb)\\endaligned \\tag3
min∣∣Ax−b∣∣→min∣∣UΣVTx−b∣∣→min∣∣ΣVTx−UTb∣∣(正交性)→min∣∣Σy−b′∣∣(令y=VTx,b′=UTb)(3)
注意到
Σ
\\Sigma
Σ是一个对角阵,令
λ
i
\\lambda_i
λi为其对角线元素,则有
y
i
=
b
i
′
λ
i
x
=
V
y
(4)
y_i=\\fracb'_i\\lambda_i\\\\x=Vy \\tag4
yi=λibi′x=Vy(4)
- 模型
A
x
=
0
Ax=0
Ax=0的求解 以上是关于[图像拼接]APAP算法及相关问题研究的主要内容,如果未能解决你的问题,请参考以下文章
令
A
A
A尺寸为
m
×
n
m\\times n
m×n,且
m
>
n
m>n
m>n;
∣
∣
x
∣
∣
=
1
||x||=1
∣∣x∣∣=1
则优化目标为
m
i
n
∣
∣
A
x