8点法估计基础矩阵

估计基础矩阵

文章目录

8点法

根据两幅图像中8个对应点对之间的关系,采用SVD求 解最小二乘方

约束:det(F) = 0

假设已知N对点的对应关系: { x i , x i ′ } i = 1 N \{x_i,x^{\prime}i\}{i=1}^N {xi,xi′}i=1N,每对点满足约束: x i ′ F x i = 0 x_i^{\prime}Fx_i=0 xi′Fxi=0


x = [ u v 1 ] , x ′ = [ u ′ v ′ 1 ] , F = [ f 11 f 12 f 13 f 21 f 22 f 23 f 31 f 32 f 33 ] \boldsymbol{x}=\begin{bmatrix}u\\v\\1\end{bmatrix}, \boldsymbol{x}'=\begin{bmatrix}u'\\v'\\1\end{bmatrix},\boldsymbol{F}=\begin{bmatrix}f_{11}&f_{12}&f_{13}\\f_{21}&f_{22}&f_{23}\\f_{31}&f_{32}&f_{33}\end{bmatrix} x= uv1 ,x′= u′v′1 ,F= f11f21f31f12f22f32f13f23f33

因为 0 = x ′ T F x 0=x^{\prime T}Fx 0=x′TFx

求解线齐次坐标下的方程组
[ u ′ v ′ 1 ] [ f 11 f 12 f 13 f 21 f 22 f 23 f 31 f 32 f 33 ] [ u v 1 ] = 0 \begin{bmatrix}u'&v'&1\end{bmatrix}\begin{bmatrix}f_{11}&f_{12}&f_{13}\\f_{21}&f_{22}&f_{23}\\f_{31}&f_{32}&f_{33}\end{bmatrix}\begin{bmatrix}u\\v\\1\end{bmatrix}=0 [u′v′1] f11f21f31f12f22f32f13f23f33 uv1 =0

即方程组
u ′ u f 11 + u ′ v f 12 + u ′ f 13 + v ′ u f 21 + v ′ v f 22 + v ′ f 23 + u f 31 + v f 32 + f 33 = 0 u'uf_{11}+u'vf_{12}+u'f_{13}+v'uf_{21}+v'vf_{22}+v'f_{23}+uf_{31}+vf_{32}+f_{33}=0 u′uf11+u′vf12+u′f13+v′uf21+v′vf22+v′f23+uf31+vf32+f33=0

转化为矩阵的形式
A f = [ u 1 u 1 ′ u 1 ′ v 1 u 1 ′ v 1 ′ u 1 v 1 ′ v 1 v 1 ′ u 1 v 1 1 ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ u N ′ u N u N ′ v N u N ′ v N ′ u N v N ′ v N v N ′ u N v N 1 ] [ f 11 f 12 f 13 f 21 ⋮ f 33 ] = 0 \boldsymbol{Af}=\begin{bmatrix}u_1u_1'&u_1'v_1&u_1'&v_1'u_1&v_1'v_1&v_1'&u_1&v_1&1\\\vdots&\vdots&\vdots&\vdots&\vdots&\vdots&\vdots&\vdots&\vdots\\u_N'u_N&u_N'v_N&u_N'&v_N'u_N&v_N'v_N&v_N'&u_N&v_N&1\end{bmatrix}\begin{bmatrix}f_{11}\\f_{12}\\f_{13}\\f_{21}\\\vdots\\f_{33}\end{bmatrix}=\mathbf{0} Af= u1u1′⋮uN′uNu1′v1⋮uN′vNu1′⋮uN′v1′u1⋮vN′uNv1′v1⋮vN′vNv1′⋮vN′u1⋮uNv1⋮vN1⋮1 f11f12f13f21⋮f33 =0

易知若 f f f是方程的一个解,则 k f kf kf也是方程的一个解,所以添加约束条件 ∥ f ∥ = 0 \|f\|=0 ∥f∥=0,解得: f f f 的最小二乘解是对应于A的最小奇异值的奇异向量

将A进行SVD分解,得到
A = U Σ V T A=U\Sigma V^T A=UΣVT

其中:

U 的列向量,是 A A T AA^T AAT 的特征向量;

V的列向量,是 A T A A^TA ATA 的特征向量;

A的奇异值( Σ \Sigma Σ 的非零对角元素)则是 A A T AA^T AAT 或者 A T A A^TA ATA 的非零特征值的平方根。

因为可能图像存在噪声干扰的情况,所以目标为最小化 ∥ U Σ V T f ∥ \|U\Sigma V^Tf\| ∥UΣVTf∥

又因为一个矩阵乘上一个正交矩阵范数不变,所以即最小化 ∥ Σ V T f ∥ \|\Sigma V^Tf\| ∥ΣVTf∥,切可得 ∥ V T f ∥ = ∥ f ∥ \|V^Tf\|=\|f\| ∥VTf∥=∥f∥。

令 y = V T f y=V^Tf y=VTf

于是目标转化为求满足约束条件 ∥ y ∥ = 1 \|y\|=1 ∥y∥=1的情况下, ∥ Σ y ∥ \|\Sigma y\| ∥Σy∥的最小值

因为 Σ \Sigma Σ为特征值降序的对角阵,所以 y = [ 0 , 0 , ... , 1 ] T y=[0,0,\dots,1]^T y=[0,0,...,1]T

又因为 y = V T f y=V^Tf y=VTf,且 V T = V − 1 V^T=V^{-1} VT=V−1

所以 f = V − T y = V y f=V^{-T}y=Vy f=V−Ty=Vy​

于是得到结论: f f f 的最小二乘解是对应于A的最小奇异值的奇异向量

然后将 f f f重组为 F ^ \hat{F} F^

又由于用SVD求解得到的 F ^ \hat{F} F^通常为满秩,而实际上 F F F的秩为2,因此最佳解为秩为2的 F ^ \hat{F} F^近似:
min ⁡ F ∥ F − F ^ ∥ 2 s . t . det ⁡ ( F ) = 0 \begin{aligned}\min_F&\left\|\boldsymbol{F}-\boldsymbol{\widehat{F}}\right\|_2\\ s.t.&\det(\boldsymbol{F}){=}0\end{aligned} Fmins.t. F−F 2det(F)=0

将 F ^ \hat{F} F^进行SVD分解得 F ^ = U D V T \hat{F}=UDV^T F^=UDVT

其中
D = [ σ 1 σ 2 σ 3 ] ( σ 1 ≥ σ 2 ≥ σ 3 ) D=\begin{bmatrix}\sigma_1\\&\sigma_2\\&&\sigma_3\end{bmatrix} \quad(\sigma_1\geq\sigma_2\geq\sigma_3) D= σ1σ2σ3 (σ1≥σ2≥σ3)

可得
F = U [ σ 1 σ 2 0 ] V T F=U\begin{bmatrix}\sigma_1\\&\sigma_2\\&&0\end{bmatrix}V^T F=U σ1σ20 VT

即可将下图

转化为

此时极线一致

归一化 8点法

步骤

  1. 归一化坐标:对每幅图像,计算一个相似变换, 并归一化图像坐标 x ^ = T x , x ′ ^ = T ′ x ′ \hat{x}=Tx,\hat{x^{\prime}}=T^{\prime}x^{\prime} x^=Tx,x′^=T′x′ (平移到均值 ,缩放:到原点的平均距离为 2 \sqrt{2} 2 )
  2. 在归一化后的坐标系中,采用8点法计算 F ^ \hat{F} F^
  3. 反归一: F = T − 1 F ^ T ′ F=T^{-1}\hat{F}T^{\prime} F=T−1F^T′

然后求解基础矩阵F

解除归一化

因为
x ^ = T x , x ′ ^ = T ′ x ′ \hat{x}=Tx,\hat{x^{\prime}}=T^{\prime}x^{\prime} x^=Tx,x′^=T′x′


( x ′ ^ ) T F ^ x ^ = 0 ( T ′ x ′ ) T F ^ ( T x ) = 0 ( x ′ ) T ( T ′ T F ^ T ) x = 0 \begin{aligned} (\hat{x^{\prime}})^T\hat F\hat{x}&=0\\ (T^{\prime}x^{\prime})^T\hat F(Tx)&=0\\ (x^{\prime})^T(T^{\prime T}\hat FT)x&=0 \end{aligned} (x′^)TF^x^(T′x′)TF^(Tx)(x′)T(T′TF^T)x=0=0=0

可得
F = T ′ T F ^ T F=T^{\prime T}\hat FT F=T′TF^T

相关推荐
quaer13 小时前
Open-Sora全面开源?
开发语言·算法·机器学习·matlab·矩阵
吱吱鼠叔1 天前
MATLAB数据文件读写:2.矩阵数据读取
数据库·matlab·矩阵
￴ㅤ￴￴ㅤ9527超级帅1 天前
LeetCode hot100---数组及矩阵专题(C++语言)
c++·leetcode·矩阵
海涛高软1 天前
osg 矩阵相关
线性代数·矩阵
herobrineAC2 天前
以矩阵的视角解多元一次方程组——矩阵消元
线性代数·矩阵
正义的彬彬侠4 天前
单位向量的定义和举例说明
人工智能·线性代数·机器学习·矩阵
我有一些感想……5 天前
鸡兔同笼,但是线性代数
c++·笔记·矩阵
大佟5 天前
矩阵学习过程中的一些思考
学习·线性代数·矩阵
正义的彬彬侠5 天前
矩阵的特征值和特征向量
人工智能·线性代数·机器学习·矩阵
一尘之中6 天前
AMD 矩阵核心
人工智能·学习·矩阵