两幅视图存在两个关系:第一种,通过对极几何一幅图像上的点可以确定另外一幅图像上的一条直线;另外一种,通过上一种映射,一幅图像上的点可以确定另外一幅图像上的一个点,这个点是第一幅图像通过光心和图像点的射线与一个平面的交点在第二幅图像上的影像。第一种情况可以用基本矩阵来表示,第二种情况则用单应矩阵来表示。而本质矩阵则是基本矩阵的一种特殊情况,是在归一化图像坐标下的基本矩阵。
基本矩阵(Fundamental Matrix)
介绍
基本矩阵体现了两视图几何(对极几何,epipolar geometry)的内在射影几何(projective geometry)关系,基本矩阵只依赖于摄像机的内参
K
和外参
上图是一个两视图的几何描述,其中
O
、
上图的左侧相机的图像平面上的一个点
x
,反向投影得到射线
我们可以看到这里存在一个从一副图像上的点到另外一幅图像与之对应的对极线的映射 x→l′ 。而基本矩阵就表示了这种从点到直线的射影映射关系。
几何推导
首先在几何层面对上述一个图像上的点到另外一个图像上的对极线的映射关系进行分析。可以把这个映射分成两个步骤:
点到平面的转移
存在一个不经过两个相机光心的的平面 π ,光心 O 与
x 的射线与平面 π 相交与一点 X 。该点X 又投影到第二幅图像平面上的点 x′ 。这个称为点 x 通过平面π 的转移。点 x , x′ 是平面 π 上的3D点 X 在两个相机平面上的像。对应每一个3D点X 都存在一个2D的单应 Hπ 把每一个 x 映射到 x′ 。对极线的构造
已知第二幅图像上的对应点 x′ ,再加上对极点 e′ 我们可以构造对极线 l′=e′×x′=[e′]×x′ (这里的 [e′]× 是叉乘矩阵)。由于 x′ 可以表示为 x′=Hπx ,则有:
基本矩阵可以记作为 F=[e′]×Hπ ,其中 Hπ 是一幅图像到另外一幅图像通过任意平面 π 的转移映射。因为 [e′]× 的秩是2, Hπ 的秩是3,因此 F 是秩为2的矩阵。
从几何角度来讲,F矩阵表示了第一幅图像的2维射影平面
代数推导
对于两个视图的射影矩阵
P
、
其中 P+ 是 P 的伪逆,即
- 设两个视图的双目系统,且世界坐标系定在第一个视图:
P=K[I|0]P′=K′[R|t]=K′R[I|−O′]
则:
P+=[K−10]O=(01)
且:
F=[P′C]×P′P+=[K′t]×K′RK−1=K′−T[t]×RK−1=K′−TR[RTt]xK−1=K′−TRKT[KRTt]×
对极点可以表示为:
e=(−RTt1)=KRTte′=P′(01)=K′t
从而, F 可以记作:
F=[e′]×P′P+=K′−T[T]×RK−1=K′−TR[RTt]×K−1=K′−TRKT[e]×
性质
假设两幅图像由中心不重合的相机获得,则基本矩阵F为所对应点
x↔x′
都满足下式的秩为
2
的
有如下性质:
F 是秩为
2 、自由度为 7 的齐次矩阵(3×3 其次矩阵有 8 个独立比率,还有一个满足约束detF=0 的约束,所以再减去一个自由度)对应点:如果 x 和 x′ 是对应的图像点,那么 x′TFx=0 。
对极线:
l′=Fx 对应于 x 的对极线
l=FTx 对应于 x′ 的对极线
对极点:
- Fe=0
- FTe=0
有摄像机矩阵 P 、
P′ 计算:- 一般相机
F=[e′]×P′P+ ,其中 P+ 是 P 的伪逆,
e′=P′O 且 PO=0 。- 规范相机, P=[I|0] , P′=[M|m]
F=[e′]×M=M′T[e′]× ,其中 e′=m 且 e=M−1m
- 非无穷远相机 P=K[I|0] , P′=K′[R|t]
F=K′−T[t]×RK−1=[K′[t]×K′RK−1=K′−TRKT[KRTt]×
本质矩阵(Essentical Matrix)
介绍
本质矩阵是归一化图像坐标下的基本矩阵的特殊情况。基本矩阵把要求标定相机这样一个(非本质的)的基本假设去掉了。
归一化坐标
考虑 P=K[R|t] 的相机矩阵,令 x=PX 为图像上的一个点。如果已知相机标定矩阵 K ,那么用它的逆矩阵作用与点x 得到点 x^=K−1x ,则 x^=[R|t]X ,其中 x^ 是图像的点在归一化坐标下的表示。它可以被视为空间点 X 在相机[R|t] 的标定矩阵为单位阵的 I 的情况下的像。相机矩阵K−1P=[R|t] 称为归一化相机矩阵。考虑一对归一化的相机矩阵 P=[I|0] 和 P′=[R|t] ,与归一化相机矩阵对应的基本矩阵称之为本质矩阵。有如下形式:
E=[t]×R=R[RTt]×
用归一化坐标图像坐标表示对应点 x↔x′ 时,本质矩阵的定义方程为:
x′^TEx^=0把 x′^ 和 x^ 的表达式代入上式得 x′TK′−TEK−1x=0 ,与基本矩阵关系式比较可得两者之间的关系为:
E=K′TFK
性质
本质矩阵只有
5
个自由度:旋转矩阵
单应矩阵(Homograph Matrix)
介绍
射影映射是
上图中,把点 x 的射线延长到世界平面 π (一般都不经过任何一个相机的光心)并且交于一点 xπ ,该点投影到另外一个视图上得到点 x′ ,这个从点 x 到点 x′ 的映射是从平面 π 诱导的单应。如果世界平面 π 到第一幅图像的透视变换为 x=H1πxπ ,而世界平面到第二幅图像的透视变换为 x′=H2πxπ ,那么这两个透视变换的复合是两个平面之间的单应变换 x′=H2πH−11πx=Hx 。
代数推导
给定两幅视图的投影矩阵
定义世界平面 π 为 πTM=0 ,其中 π=(vT,1)T 。对于第一幅视图而言,根据透视投影有 x=PX=[I|0]X ,该射线上的点 X=(xT,ℓ)T 都投影到 x 点,又点 X 在平面 π 上,则满足 πTX=0 ,从而可以确定参数 ℓ ,得到 X=(xT,−vTx)T 。该3D点在第二幅图像上的投影为:
由该平面诱导的单应为 x′=Hx ,得
很明显,这里的单应矩阵 H 是有向量
考虑对于已经有标定的双目相机矩阵的相机矩阵
并且世界平面 π 的坐标为 π=(nT,d)T ,则根据上面的结论,有 v=b/d ,则对相机 P=[I|0] , P′=[R|t] 的单应为:
加上内参矩阵 K ,
这是一个三参数簇,由 nT/d 参数化,整个簇由该世界平面以及相机内参和两相机相对外参决定。
总结
我们可以从基本矩阵和单应矩阵的推导看到,基本矩阵不依赖于场景中的物体,只和两帧图像间的相对位姿和相机矩阵有关(本质矩阵则与相机矩阵无关)。而单应矩阵不仅仅和帧间的相对位姿有关,还和特定的世界平面有关。所以,当我们得到两帧图像并且知道图像中点的对应关系后,不论场景是什么样的,通过基本矩阵就都已经直接恢复出帧间的运动;而单应矩阵则不行,只有当匹配点都在特定的世界平面中,才可以使用单应来恢复帧间的运动。