图像匹配
应用流程是:
假设
参数化运动模型
齐次坐标homogeneous coordinates:
所谓齐次坐标,简而言之,就是用N+1维来代表N维坐标。我们可以在一个2D笛卡尔坐标末尾加上一个额外的变量w来形成2D齐次坐标,因此,一个点(X,Y)在齐次坐标里面变成了(x,y,w),并且有
X = x/w
Y = y/w
例如,笛卡尔坐标系下(1,2)的齐次坐标可以表示为(1,2,1),如果点(1,2)移动到无限远处,在笛卡尔坐标下它变为(∞,∞),然后它的齐次坐标表示为(1,2,0),因为(1/0, 2/0) = (∞,∞),这样我们可以不用”∞"来表示一个无穷远处的点了。此外,我们把齐次坐标转化为笛卡尔坐标的方法是前面n-1个坐标分量分别除以最后一个分量即可。
所有的齐次坐标对应笛卡尔坐标是同一个点是一个,那么这些齐次坐标就都相同。类似于将一个点,对应成一个向量,向量可以在空间中移动。
Transform Matrix 两种变换
2D Affine Transform:(2维仿射变换)&2D Perspective Transform:(2维透视变换)
仿射变换
define:把平行直线映射为平行直线
线性变换
满足性质:
仿射变换是线性变换+平移:
变换矩阵
Translation (平移):
Scale (缩放):
X切变(Shear):
Y切变
参数估计
- 最优平移参数 (dx, dy):
问题:多个对应点求出多个dx,如何得到最终的dx解:求平均;数学原理:最小二乘的原理:
a
r
g
m
i
n
(
Δ
x
−
d
x
)
2
argmin(\Delta_x-d_x)^2
argmin(Δx−dx)2
假设真正的偏移是
d
x
d_x
dx,二次函数导数等于0求解;最小二乘法
- 估计变换参数 (a,b,c,d,e,f)
三个点对求解:
多余三个点对使用最小二乘法:
-
特殊仿射变换
- 相似变换(Similar):只包含平移、旋转和等比缩放
保持物体的形状;转化成最小二乘法线性的
转化成和上面一样的问题;
-
刚性变换(Rigid)
只包含平移和旋转
保持物体的形状和尺寸这里不能转化成和上面一样的格式,原因在于上面的a,b有关系,这样求解出来,如果 a、b不满足平方和为1,那么就无解。
不能转化成线性的,是非线性的:
- 相似变换(Similar):只包含平移、旋转和等比缩放
参数是超越函数三角函数,不是线性问题:
见书上雅克比推导,用到一阶泰勒展开;
透视变换
定义:平面到平面保持直线性的映射;
任意的3x3可逆矩阵都是透视变换;任意透视变换都是3x3可逆矩阵。
- 类型
中心投影对应的平面到平面的映射是透视变换,具体有三种类型:
1.场景中任意平面到图像平面映射
2.场景同一个平面在不同视点图像之间的对应点映射。
3旋转相机在不同角度图像之间的映射
- 参数估计
仿射变换只需要三个点对,透视变化要四个点对;
为什么只有8个参数,因为齐次坐标具有齐次不变性,可以将w转化,将右下值化成1;
透视变换参数估计
p242雅克比矩阵求导;
直接线性变换求解:
齐次矩阵,没有常数项。通过上面的形式转换,可以写成矩阵相乘形式;
对应0空间向量,对应最小特征向量,通过特征分解
通过推导,这里的h就是SVD分解后,V的最后一个向量,为了使||h||=1,取一个分母。保证最小化最小二乘的损失?
考虑外点实际匹配出现大错误,在拟合直线时,假设直线已知,那么落在直线周围的是内点,其余的为外点,我们想在拟合直线过程中排除外点,只用内点,直观来看就是如果外点被用于计算直线,那么真正内点就与直线拟合度没有那么高。
RANSC
目的
避免外点的影响,寻找内点,最后只使用内点计算参数;
算法流程
RANSAC是通过反复选择数据集去估计出模型,一直迭代到估计出认为比较好的模型。
具体的实现步骤可以分为以下几步:
- 选择出可以估计出模型的最小数据集;(对于直线拟合来说就是两个点,对于计算Homography矩阵就是4个点)
- 使用这个数据集来计算出数据模型;
- 将所有数据带入这个模型,计算出“内点”的数目;(累加在一定误差范围内的适合当前迭代推出模型的数据)
- 比较当前模型和之前推出的最好的模型的“内点“的数量,记录最大“内点”数的模型参数和“内点”数;
- 重复1-4步,直到迭代结束或者当前模型已经足够好了(“内点数目大于一定数量”)。
特征匹配中包含大量错误,而将两个图像做变换就是通过特征匹配出的点求解单应性矩阵然后进行变换的,所以为了筛选出正确匹配的特征点,我们使用rnasc方法,每次求出一个矩阵,看有多少匹配的点能满足,提前设定一个终止次数或者阈值(内点数量达到多少)停止,找到满足条件的H:
决定ransac的超参数:
设w为内点比例,每次确定拟合直线需要的点的数量(直线是2),进行k次采样,那么k次全部采样到外点的概率为p,这种就一定不会计算出正确拟合内点的参数;通过p查找参数,确定进行多少次采样。
也不知道外点个数;
- ransac缺点
- 实际情况中外点数量大
- 外点比例不知道
ransac之后:
ransac将数据分成内点和外点,并得出最小的内点的集合。
通过最小二乘法在最小内点上计算出更准确的参数;
计算出参数可能会改变内外点分类,重新分类内外点。
基于变换矩阵对齐图像
f为变换矩阵,计算逆可以对齐:
基于匹配的识别
为了更高效的识别与匹配,图像块有一个特征描述对应到高维空间,当在特征空间距离近时,表示有相似的特征描述,意味着相似的物体内容(local content):
应用:图像识别;
Video Google System
视频帧搜索:
1.搜索查询区域所有相关单词
2.通过倒排记录表查找所有相关帧
3.比较单词符合的数量
4.对筛选出来的帧进行空间验证,通过sift特征计算是否匹配