相机标定的思考

 

对于相机标定,之前没深究一些问题,比如世界坐标X,Y的设置问题,为什么将世界坐标的XY值同时缩放相同的倍数,内参和旋转却没有受任何影响?等等问题。这里做一个记录。

还是拿标准的张正友标定来说:

这个式子很简单了,从世界坐标系到像素坐标系的映射,那我们先考虑下面的那个式子,对于Xw,Yw缩放相同的倍数会怎么样?(至于Zw,因为标定对象是一个平面,所以我们可以认为他的Zw都相等,都设置0得了;单应矩阵也就是因为这个条件才称之为单应矩阵的)

因为Zw设置为0了,公式变为:

其实Zw=0了,对于r3就没用了,可以把r3干掉,于是更简单了:

参考上面的公式,我们假设,X,Y同时扩大10倍,考虑到相机模型,扩大10倍后的点其实在从世界坐标原点到原始点的一条射线上面。那伸缩10倍后,有没有影响到像素坐标呢,从相机模型考虑,其实伸缩之后并没有影响到像素坐标,所以可以认为是单应矩阵把这个缩放的变化给吸收了,也就是说,单应矩阵的值也有了缩放。

考虑到:

(这个式子是因为旋转矩阵的性质得到的)

如果单应矩阵的值有了变化,在上面的两个约束式子中,是没有任何意义的,因为第一个式子,右边为0,所以左边h的任何缩放都不会影响的值;对第二个式子,同样的道理,等式两边同时缩放,也不会影响的值;这里我们基本上可以确定,在世界坐标的缩放并不会影响我们对相机内参的求取;

也就是说,我们在标定盘的设置的时候,两个锚点之间的真实距离你可以随便设置,标定的结果并不受影响。

假设我们已经获取了相机内参,我们可以求旋转矩阵以及平移向量;参考下式:

话说,这个lambda是干嘛的呢,因为我们从上上式可以看到,旋转矩阵其实是正交矩阵,那我们需要将r1,r2限制在模1上,所以lambda是做这个事情的,到这里我们发现,我对世界坐标缩放的没有影响到任何值啊,那难道我的单应矩阵的变化量没一点用?看r1,r1不变;看r2,r2也没变,r3完全取决于r1,r2,所以也没变;再看t,我们是没有约束了,那单应矩阵的变化导致的变化以及lambda的值导致了t的变化(世界坐标X,Y增加10倍,像素坐标不变,单应矩阵H应减少10倍,导致lambda增加10倍,那么t也增加10倍(h3的值不受影响,不变)),所以,世界坐标的缩放对标定的最直接的影响在于平移向量的缩放。

其实,从直观上也可以知道,对于世界坐标若增大10倍,那么其平移量也应该增加10倍才对。

 

所以,如果我们进行标定,仅仅要求内参的话,不需要对标定板网格真实宽度进行过度关注;不过我们最好还是写准确一些,因为这个缩放的动作会影响到另一个数据,那就是平移量。

表述不一定准确,有不同的意见,可以私聊

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值