计算机视觉:RANSAC剔除基础矩阵F错误匹配(Python实现)

原理


基础矩阵

(1) X 1 T F X 2 = 0 X_1^TFX_2=0\tag{1} X1TFX2=0(1)
X 1 X1 X1 X 2 X2 X2是两幅图像的一对匹配点, F F F为基础矩阵,基础矩阵为一幅图像上像 p 1 p_1 p1点到另一幅图像上对极线 L 2 L_2 L2的一种映射。所以有如下公式:
(2) L 2 = F ∗ p 1 L_2=F*p_1\tag{2} L2=Fp1(2)
此公式为后面 r a n s a c ransac ransac算法需要用到
基础矩阵F是一个3×3的矩阵,总共有9个未知元素。然而,上面的公式中使用的齐次坐标,齐次坐标在相差一个常数因子下是相等, F F F也就只有8个未知元素,也就是说,只需要8对匹配的点对就可以求解出两视图的基础矩阵 F F F。下面介绍下8点法 E i g h t − P o i n t − A l g o r i t h m Eight -Point -Algorithm EightPointAlgorithm计算基础矩阵的过程。假设在两幅图像对应匹配点的坐标分别为: X 1 = ( x 1 , y 1 , 1 ) T X_1=(x_1,y_1,1)^T X1=(x1,y1,1)T X 2 = ( x 2 , y 2 , 1 ) T X_2=(x_2,y_2,1)^T X2=(x2,y2,1)T,那么由基础矩阵公式得:
(3) [ x 1 y 1 1 ] [ f 11 f 12 f 13 f 21 f 22 f 23 f 31 f 32 f 33 ] [ x 2 y 2 1 ] = 0 \left[ \begin{matrix} x_1 & y_1 & 1 \end{matrix} \right] \left[ \begin{matrix} f_{11} & f_{12} & f_{13} \\ f_{21} & f_{22} & f_{23} \\ f_{31} & f_{32} & f_{33} \end{matrix} \right] \left[ \begin{matrix} x_2 \\ y_2 \\ 1 \end{matrix} \right] \tag{3}=0 [x1y11]f11f21f31f12f22f32f13f23f33x2y21=0(3)
也即:
(4) x 2 x 1 f 11 + x 2 y 1 f 12 + x 2 f 13 + y 2 x 1 f 21 + y 2 y 1 f 22 + y 2 f 23 + x 1 f 31 + y 2 f 32 + f 33 = 0 x_2x_1f_{11}+x_2y_1f_{12}+x_2f_{13}+y_2x_1f_{21}+y_2y_1f_{22}+y_2f_{23}+x_1f_{31}+y_2f_{32}+f_{33}=0\tag{4} x2x1f11+x2y1f12+x2f13+y2x

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值