学习笔记之——针孔相机模型及单应性矩阵

最近做了两个ROS的实验。《ROS实验笔记之——基于stereo camera的视觉里程计的实现》与《ROS实验笔记之——基于ArUco Marker来估算camera的位姿》在这两个实验中,算法什么的固然是project考察的重点,但是对传感器的建模更加是重点中的重点。只是project里面默认了camera已经标定了,参数直接给出来。

本博文学习一下相机的标定。大部分的内容参考几篇微信的推文,本博文仅仅为本人学习记录用,不做任何商业用途

而之前本人的一些博客也涉及过相机标定相关的:《学习笔记之——相机标定》《相机矩阵(camera matrix)

 

目录

针孔相机模型

世界坐标系到相机坐标系

相机坐标系到像平面坐标系(不考虑畸变)Perspective Projection

像平面坐标系到图像坐标系

相机的畸变模型

径向畸变

切向畸变

单应性矩阵(Homography)

参考资料


 

针孔相机模型

世界坐标系到相机坐标系

对于世界坐标系与相机坐标系之间的转换,实际上是两个三维坐标系之间的刚体变换,也即,只有旋转矩阵R与平移矩阵t的变换。对于相机坐标系的X_{C}与世界坐标系X_{W}的点,有如下的转换公式:

对于旋转矩阵R,具有如下性质:它是一个行列式为1的正交矩阵;反之,行列式为1的正交矩阵也是一个旋转矩阵。故此,可以将n维的旋转矩阵集合定义为:

 SO(n) 是特殊正交群Special Orthogonal Group的意思。其中SO(3)是指三维空间的旋转。

对于欧氏空间,上面的旋转与平移的变换不是一个线性的关系,这样的形式在进行多次变换的时候,表达式会显得很啰嗦。为此引入齐次坐标与变换矩阵

对于变换矩阵,其左上角为旋转矩阵,右上角为平移向量,左下角为0,右下角为1。这样的矩阵又称为特殊欧氏群special Euclidean group(SE)

相机坐标系到像平面坐标系(不考虑畸变)Perspective Projection

从三维坐标到二维坐标的转换,也即投影透视过程(Perspective Projection)。成像过程如下图所示。

根据相似三角形,有:

写成矩阵的形式:

像平面坐标系到图像坐标系

由于图像坐标系是用像素表示的,像平面坐标系都是m为单位的,所以要进行转换,dx,dy 分别表示x和y方向每个像素占多大。fx , fy 的单位是像素。

由于像平面的原点在中心,而像素坐标的原点在左上角,因而需要在x和y方向分别平移 cx,cy个像素

故此有:

那么,接下来可以获取:相机坐标系->像平面坐标->像素坐标的转换如下:

其中矩阵为相机内参矩阵,只和相机本身有关fx,fy为相机焦距,一般情况下两者相等,cx,cy为中心偏移像素,一般情况下为图像的1/2,那么世界坐标系到像素坐标系就可以写成:

其中,R|t就是我们平时说的相机的外参矩阵,而则是内参矩阵。

OK~最终总结整个针孔相机模型如下:

 

相机的畸变模型

相机畸变模型一般包括径向畸变切向畸变

径向畸变

径向畸变是由于透镜的形状导致的,且越向透镜边缘移动径向畸变越严重。有桶形畸变和枕形畸变。对应的数学模型如下:

切向畸变

切向畸变是由于安装导致透镜和成像平面不严格平行。因此,如果存在切向畸变,一个矩形被投影到成像平面上时,很可能会变成一个梯形。

对应的数学模型:

综上,我们一共需要5个畸变参数(k1、k2、k3、p1和p2 )来描述透镜畸变。

 

单应性矩阵(Homography

由上面从世界坐标系到相机坐标系的变换公式有:

其中r_{3}可以由r_{1}\times r_{2}获得,故此像素坐标系和世界坐标系下的坐标映射关系可以表达为:

其中,u、v表示像素坐标系中的坐标,s表示尺度因子,fx、fy、u0、v0、γ(由于制造误差产生的两个坐标轴偏斜参数,通常很小)表示5个相机内参,R,t表示相机外参,Xw、Yw、Zw(假设标定棋盘位于世界坐标系中Zw=0的平面)表示世界坐标系中的坐标。

在此,引入一个新的概念:单应性(Homography)变换。可以简单的理解为它用来描述物体在世界坐标系和像素坐标系之间的位置映射关系。对应的变换矩阵称为单应性矩阵。在上述式子中,单应性矩阵定义为:

其中,M为内参矩阵

从单应矩阵定义的式子来看,它同时包含了相机的内参与外参。单应矩阵描述了两个平面之间的映射关系。若场景中的特征点都落在同一平面上,则可以通过单应性进行运动估计。假设两张图像中的对应点对齐次坐标为(x',y',1)和(x,y,1),单应矩阵H定义为:

有:

矩阵展开后有3个等式,将第3个等式代入前两个等式中可得:

也就是说,一个点对对应两个等式。对于单应矩阵而言,h11~h33一共9个参数。但由于这里使用的是齐次坐标系,也就是说可以进行任意尺度的缩放。比如我们把hij乘以任意一个非零常数k并不改变等式结果:

所以实际上单应矩阵H只有8个自由度。将H添加约束条件,将H矩阵模变为1,如下:

乘以分母展开,得到:

图片

整理,得到:

图片

假如我们得到了两幅图片中对应的N个点对(特征点匹配对),那么可以得到如下线性方程组:

由于单应矩阵H包含了||H||=1约束,因此根据上图的线性方程组,8自由度的H我们至少需要4对对应的点才能计算出单应矩阵。

 

 

参考资料

https://mp.weixin.qq.com/s/MhG1tFhjlftOk_uwY66afQ

https://mp.weixin.qq.com/s?__biz=MzIxOTczOTM4NA==&mid=2247484873&idx=1&sn=e2affdaaf226d83bda7532963e917f62&chksm=97d7e05ea0a06948c4d31348913ffe2a70ab67b333f6445000a3b0541a0093849b600438a2d5&scene=21#wechat_redirect

https://mp.weixin.qq.com/s?__biz=MzIxOTczOTM4NA==&mid=2247484931&idx=1&sn=c3b8ca92772b196fd4107328df0522cb&chksm=97d7e394a0a06a825682a492218a276d7d9e0f9737920f2c1789cd271c85fae638aa069e9662&scene=178&cur_album_id=1362922280875311105#rd

https://zhuanlan.zhihu.com/p/109466220

https://mp.weixin.qq.com/s?__biz=MzIxOTczOTM4NA==&mid=2247484931&idx=1&sn=c3b8ca92772b196fd4107328df0522cb&chksm=97d7e394a0a06a825682a492218a276d7d9e0f9737920f2c1789cd271c85fae638aa069e9662&scene=178&cur_album_id=1362922280875311105#rd

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值