Homography(单应性变换)是计算机视觉中的一个重要概念,用于描述两个平面之间的透视关系。在图像处理和计算机视觉中,Homography通常表示两个平面之间的投影关系,这种关系可以通过一个3x3的矩阵来表示。
在数学上,给定两个平面,它们之间的单应性变换可以表示为:
s
′
[
x
′
y
′
1
]
=
H
[
x
y
1
]
s' \begin{bmatrix} x' \ y' \ 1 \end{bmatrix} = H \begin{bmatrix} x \ y \ 1 \end{bmatrix}
s′[x′ y′ 1]=H[x y 1]
其中:
((x, y)) 是第一个平面上的点的坐标,
((x’, y’)) 是第二个平面上的对应点的坐标,
(H) 是一个3x3的矩阵,称为单应性矩阵,表示两个平面之间的变换关系,
(s’) 是一个尺度因子。
Homography通常用于以下应用场合:
-
图像配准(Image Registration): 当两幅图像中的内容表示相同的场景时,通过计算它们之间的Homography可以将它们对齐。这在图像拼接、全景图生成等应用中非常常见。
-
虚拟增强现实(Virtual and Augmented Reality): 在虚拟和增强现实应用中,通过Homography可以将虚拟对象投影到现实世界中,使其与实际场景相匹配。
-
物体识别与跟踪(Object Recognition and Tracking): 在目标识别与跟踪中,Homography可以用于在不同视角之间跟踪物体,以及在图像中定位物体。
-
摄像机标定(Camera Calibration): 在计算机视觉中,摄像机的内部参数和外部参数可以通过Homography进行标定,从而提高摄像机的测量精度。
在这些场合中,Homography通过将一个平面上的点映射到另一个平面上的对应点,描述了平面之间的几何关系,为图像处理和计算机视觉任务提供了强大的工具。
以上是一般性解释,有点懵,以下是细节版本介绍:
已知一个平面上的两点P和Q,用两台照相机分别对其进行拍摄,那么P、Q会在相机C1上形成投影点p1,q1, 在相机C2上形成投影点p2, q2
已知相机C1距离已知平面的距离d, 相机C1到相机C2的旋转和平移矩阵,已知平面的法向量
可以求出p1和q1之间的对应关系,求出的H是一个(3*3)的矩阵,称为单应矩阵,如下图所示:
在3D坐标下的关系如上图,如果将坐标点投影到相机坐标系下的坐标,就可以得到2D单应性变换,只需要×相机参数K,如下图所示
在MVSNet中的单应性变换:
想知道实际的点P投影到照相机的点的距离D,可以考虑在相机C1前假象n个平面,各个平面到相机的距离分别是d1-dn
如果说是实际的点P确实在距离在dn的平面上(即D=dn),那么p1通过Homography(dn)得到的投影到C2上的点的特征应该和原本P投影到C2上点p2的特征非常接近,如下图所示:
如果说从C1到C2相机的旋转和平移矩阵(R和t)未知,可以通过世界坐标进行相应的转化,
世界坐标转化到C1和C2相机的旋转和平移矩阵可以得到,
通过一定的计算推倒(过程可以理解为 将世界坐标下的P投影到C1坐标,再从C1坐标系投影到C2坐标;再投影回世界坐标下,P 的位置应该不变)
可以得出C1到C2的平移矩阵
,过程如下图:(从下往上看)