含二阶畸变模型的世界坐标到像素(图像)坐标转换

文章详细阐述了摄像机镜头的径向畸变模型,介绍了从世界坐标系经过相机坐标系到像素坐标系的转换过程,包括旋转和平移的数学表达,以及如何在考虑二阶径向畸变的情况下推导出世界坐标到像素坐标的转换公式。此外,还提到了内外参矩阵和畸变相关矩阵在坐标转换中的作用。
摘要由CSDN通过智能技术生成

一、径向畸变模型

        对于摄像机镜头的畸变,其主要部分为径向畸变。径向畸变以光轴中心点图像坐标为参考点,正比于图像点到参考点距离的平方。只考虑二阶透镜形变的径向畸变模型为:

\begin{matrix} {\left\{ \begin{matrix} {u - u_{0} = \left( {u^{`} - u_{0}} \right)\left( {1 + k_{u}^{`}r^{2}} \right)} \\ {v - v_{0} = \left( {v^{`} - v_{0}} \right)\left( {1 + k_{v}^{`}r^{2}} \right)} \\ \end{matrix} \right.~\#~(1)} \\ \end{matrix}

式中:(u{}',v{}')为无畸变的理想图像坐标;(u,v)为实际图像坐标;\left( u_{0},v_{0} \right)为光轴中心点图像坐标,r为图像点到参考点距离;r = \sqrt{\left( u^{`} - u_{0} \right)^{2} + \left( v^{`} - v_{0} \right)^{2}} k_{u}^{`}  k_{v}^{`}   分别为u、v方向二阶畸变系数。

        将式(1)进行变形,得到:

\begin{matrix} {\left\{ \begin{matrix} {u = u^{`}\left( {1 + k_{u}^{`}r^{2}} \right) - u_{0}k_{u}^{`}r^{2}} \\ {v = v^{`}\left( {1 + k_{v}^{`}r^{2}} \right) - v_{0}k_{v}^{`}r^{2}} \\ \end{matrix} \right.~\# (2)} \\ \end{matrix}

        对式(2)进行齐次化可到:

\begin{matrix} {\begin{bmatrix} u \\ v \\ 1 \\ \end{bmatrix} = \begin{bmatrix} {1 + k_{u}^{`}r^{2}} & 0 & 0 \\ 0 & {1 + k_{v}^{`}r^{2}} & 0 \\ 0 & 0 & 1 \\ \end{bmatrix}\begin{bmatrix} u^{`} \\ v^{`} \\ 1 \\ \end{bmatrix} - \begin{bmatrix} {u_{0}k_{u}^{`}r^{2}} \\ {v_{0}k_{v}^{`}r^{2}} \\ 0 \\ \end{bmatrix}~\#(3)} \\ \end{matrix}

二、坐标系转换

2.1世界坐标系到相机坐标系的转换:

图2.1 世界坐标系到相机坐标系的转换

        世界坐标系到相机坐标系的转换就是旋转+平移。可以用公式(4)的矩阵运算表示。下表为w表示世界坐标系,下表为c表示相机坐标系。对世界坐标系进行旋转平移就可以将其变换到相机坐标系。

\begin{matrix} {\begin{bmatrix} x_{c} \\ y_{c} \\ z_{c} \\ \end{bmatrix} = R\begin{bmatrix} x_{w} \\ y_{w} \\ z_{w} \\ \end{bmatrix} + t~\#(4)} \\ \end{matrix}

         对公式(4)进行齐次化可以得到公式(5):

\begin{matrix} {\begin{bmatrix} x_{c} \\ x_{c} \\ x_{c} \\ 1 \\ \end{bmatrix} = \begin{bmatrix} \mathbf{R} & t \\ 0^{T} & 1 \\ \end{bmatrix}\begin{bmatrix} x_{w} \\ y_{w} \\ z_{w} \\ 1 \\ \end{bmatrix}~\#(5)} \\ \end{matrix}

2.2相机坐标系到(成像)平面坐标系的转换:

        相机坐标系到平面坐标系的转换是一个3D到2D的过程。相机坐标系的z轴与光轴是平行的,相机坐标系的原点为光轴中心。如图2.2所示。

图2.2 相机坐标系到成像平面的转换

         镜头处的焦点就是光轴中心,z_{c}就是光轴中心到目标在相机坐标系上的点在光轴上投影的距离。成像平面到光轴中心的距离为f ,引入等效成像平面与成像平面距离镜头(光轴中心)的距离是相等的,都为焦距f。这样就可以用等效成像平面来进行相机坐标系到成像平面坐标系的转换,二者都为正立像,规避了倒立像处理的麻烦。等效成像平面与光轴中心的点记为\left( u_{0},v_{0} \right),对等效平面来说\left( u_{0},v_{0} \right)就是原点即(0,0)点,这里为何要将其记作\left( u_{0},v_{0} \right)呢?在后面讲平面坐标系到像素坐标系的转换会说明这一点。

        根据小孔成像原理可以得到(6)式公式:

\begin{matrix} {\left\{ \begin{matrix} {\frac{x_{c}}{z_{c}} = \frac{x_{2}}{z_{2}} = \frac{x_{2}}{f}} \\ {\frac{y_{c}}{x_{c}} = \frac{y_{2}}{z_{2}} = \frac{y_{2}}{f}} \\ \end{matrix} \right.\#(6)} \\ \end{matrix}

        整理可以得到(7)式公式:

\begin{matrix} {\left\{ \begin{matrix} {x_{2} = \frac{​{fx}_{c}}{z_{c}}} \\ {y_{2} = \frac{​{fy}_{c}}{z_{c}}} \\ \end{matrix} \right.\#(7)} \\ \end{matrix}

        对(7)式进行齐次化可得式(8):

\begin{matrix} {z_{c}\begin{bmatrix} x_{2} \\ y_{2} \\ 1 \\ \end{bmatrix} = \begin{bmatrix} \begin{matrix} \begin{matrix} f & 0 \\ \end{matrix} & \begin{matrix} 0 & 0 \\ \end{matrix} \\ \end{matrix} \\ \begin{matrix} \begin{matrix} 0 & f \\ \end{matrix} & \begin{matrix} 0 & 0 \\ \end{matrix} \\ \end{matrix} \\ \begin{matrix} \begin{matrix} 0 & 0 \\ \end{matrix} & \begin{matrix} 1 & 0 \\ \end{matrix} \\ \end{matrix} \\ \end{bmatrix}\begin{bmatrix} x_{c} \\ y_{c} \\ z_{c} \\ 1 \\ \end{bmatrix}\#(8)} \\ \end{matrix}

 2.3(等效)成像平面坐标系到像素坐标系(图像坐标系)的转换:

         如图2.3所示,在不考虑畸变的情况下,成像平面中(x2,y2)在像素平面中对应的点假设为(u`,v`)则有公式(9)对应的表达式。

图2.3 成像平面到像素平面的转换

 \begin{matrix} {\left\{ \begin{matrix} {\frac{u^{`} - u_{0}}{x_{2}} = \alpha_{x}} \\ {\frac{v^{`} - v_{0}}{y_{2}} = \alpha_{y}} \\ \end{matrix} \right.\#(9)} \\ \end{matrix}

        \alpha_{x}\alpha_{y}是放大系数。对于(9)式子,这里给一点解释,等式左侧的分母为放大后像素点相较于原图中心的偏移距离,分母为放大前的位置相较于成像平面中心的偏移距离,本来分母应该是x_{2} - u_{0}y_{2} - v_{0}的,但是,对成像平面来说他的原点(0,0)就是成像平面与光轴中心的交点(u_{0} ,v_{0})。对像素坐标系就不能这样了,因为像素坐标系的原点在左上角,所以(9)式左侧分母要带上u_{0}v_{0}来衡量其相对于成像平面的偏移程度。

        对(9)式进行变形得到(10)然后对(10)式进行齐次化得到(11):

\begin{matrix} {\left\{ \begin{matrix} {u^{\cdot} = \alpha_{x}x_{2} + u_{0}} \\ {v^{\cdot} = \alpha_{y}y_{2} + v_{0}} \\ \end{matrix} \right.\#(10)} \\ \end{matrix}

\begin{matrix} {\begin{bmatrix} u^{\cdot} \\ v^{\cdot} \\ 1 \\ \end{bmatrix} = \begin{bmatrix} \alpha_{x} & 0 & u_{0} \\ 0 & \alpha_{y} & v_{0} \\ 0 & 0 & 1 \\ \end{bmatrix}\begin{bmatrix} x_{2} \\ y_{2} \\ 1 \\ \end{bmatrix}\#(11)} \\ \end{matrix}

三、含二阶径向畸变的世界坐标到像素坐标的公式推导: 

        将式(11)带入式(3)整理得:

\begin{matrix} {\begin{bmatrix} u \\ v \\ 1 \\ \end{bmatrix} = \begin{bmatrix} {1 + k_{u}^{`}r^{2}} & 0 & 0 \\ 0 & {1 + k_{v}^{`}r^{2}} & 0 \\ 0 & 0 & 1 \\ \end{bmatrix}\begin{bmatrix} \alpha_{x} & 0 & u_{0} \\ 0 & \alpha_{y} & v_{0} \\ 0 & 0 & 1 \\ \end{bmatrix}\begin{bmatrix} x_{2} \\ y_{2} \\ 1 \\ \end{bmatrix} - \begin{bmatrix} {u_{0}k_{u}^{`}r^{2}} \\ {v_{0}k_{v}^{`}r^{2}} \\ 0 \\ \end{bmatrix}} \\ \end{matrix}

        将式(8)带入上式可得:

\begin{matrix} {\begin{bmatrix} u \\ v \\ 1 \\ \end{bmatrix} = \begin{bmatrix} {1 + k_{u}^{`}r^{2}} & 0 & 0 \\ 0 & {1 + k_{v}^{`}r^{2}} & 0 \\ 0 & 0 & 1 \\ \end{bmatrix}\begin{bmatrix} \alpha_{x} & 0 & u_{0} \\ 0 & \alpha_{y} & v_{0} \\ 0 & 0 & 1 \\ \end{bmatrix}\frac{1}{z_{c}}\begin{bmatrix} \begin{matrix} \begin{matrix} f & 0 \\ \end{matrix} & \begin{matrix} 0 & 0 \\ \end{matrix} \\ \end{matrix} \\ \begin{matrix} \begin{matrix} 0 & f \\ \end{matrix} & \begin{matrix} 0 & 0 \\ \end{matrix} \\ \end{matrix} \\ \begin{matrix} \begin{matrix} 0 & 0 \\ \end{matrix} & \begin{matrix} 1 & 0 \\ \end{matrix} \\ \end{matrix} \\ \end{bmatrix}\begin{bmatrix} x_{c} \\ y_{c} \\ z_{c} \\ 1 \\ \end{bmatrix} - \begin{bmatrix} {u_{0}k_{u}^{`}r^{2}} \\ {v_{0}k_{v}^{`}r^{2}} \\ 0 \\ \end{bmatrix}} \\ \end{matrix}

        接下来将式(5)带入上式可得:

\begin{matrix} {\begin{bmatrix} u \\ v \\ 1 \\ \end{bmatrix} = \begin{bmatrix} {1 + k_{u}^{`}r^{2}} & 0 & 0 \\ 0 & {1 + k_{v}^{`}r^{2}} & 0 \\ 0 & 0 & 1 \\ \end{bmatrix}\begin{bmatrix} \alpha_{x} & 0 & u_{0} \\ 0 & \alpha_{y} & v_{0} \\ 0 & 0 & 1 \\ \end{bmatrix}\frac{1}{z_{c}}\begin{bmatrix} \begin{matrix} \begin{matrix} f & 0 \\ \end{matrix} & \begin{matrix} 0 & 0 \\ \end{matrix} \\ \end{matrix} \\ \begin{matrix} \begin{matrix} 0 & f \\ \end{matrix} & \begin{matrix} 0 & 0 \\ \end{matrix} \\ \end{matrix} \\ \begin{matrix} \begin{matrix} 0 & 0 \\ \end{matrix} & \begin{matrix} 1 & 0 \\ \end{matrix} \\ \end{matrix} \\ \end{bmatrix}\begin{bmatrix} \mathbf{R} & t \\ 0^{T} & 1 \\ \end{bmatrix}\begin{bmatrix} x_{w} \\ y_{w} \\ z_{w} \\ 1 \\ \end{bmatrix} - \begin{bmatrix} {u_{0}k_{u}^{`}r^{2}} \\ {v_{0}k_{v}^{`}r^{2}} \\ 0 \\ \end{bmatrix}} \\ \end{matrix}

        对上式进行变形可得式(12)如下所示:

\begin{matrix} {\begin{matrix} {z_{c}\begin{bmatrix} u \\ v \\ 1 \\ \end{bmatrix} = \begin{bmatrix} {1 + k_{u}^{`}r^{2}} & 0 & 0 \\ 0 & {1 + k_{v}^{`}r^{2}} & 0 \\ 0 & 0 & 1 \\ \end{bmatrix}\begin{bmatrix} \alpha_{x} & 0 & u_{0} \\ 0 & \alpha_{y} & v_{0} \\ 0 & 0 & 1 \\ \end{bmatrix}\begin{bmatrix} \begin{matrix} \begin{matrix} f & 0 \\ \end{matrix} & \begin{matrix} 0 & 0 \\ \end{matrix} \\ \end{matrix} \\ \begin{matrix} \begin{matrix} 0 & f \\ \end{matrix} & \begin{matrix} 0 & 0 \\ \end{matrix} \\ \end{matrix} \\ \begin{matrix} \begin{matrix} 0 & 0 \\ \end{matrix} & \begin{matrix} 1 & 0 \\ \end{matrix} \\ \end{matrix} \\ \end{bmatrix}\begin{bmatrix} \mathbf{R} & t \\ 0^{T} & 1 \\ \end{bmatrix}\begin{bmatrix} x_{w} \\ y_{w} \\ z_{w} \\ 1 \\ \end{bmatrix} - \begin{bmatrix} {u_{0}k_{u}^{`}r^{2}} \\ {v_{0}k_{v}^{`}r^{2}} \\ 0 \\ \end{bmatrix}} \\ \end{matrix}\#(12)} \\ \end{matrix}

        对于式(12)有:

\begin{bmatrix} \mathbf{R} & t \\ 0^{T} & 1 \\ \end{bmatrix}                                外参矩阵

 \begin{bmatrix} \alpha_{x} & 0 & u_{0} \\ 0 & \alpha_{y} & v_{0} \\ 0 & 0 & 1 \\ \end{bmatrix}\begin{bmatrix} \begin{matrix} \begin{matrix} f & 0 \\ \end{matrix} & \begin{matrix} 0 & 0 \\ \end{matrix} \\ \end{matrix} \\ \begin{matrix} \begin{matrix} 0 & f \\ \end{matrix} & \begin{matrix} 0 & 0 \\ \end{matrix} \\ \end{matrix} \\ \begin{matrix} \begin{matrix} 0 & 0 \\ \end{matrix} & \begin{matrix} 1 & 0 \\ \end{matrix} \\ \end{matrix} \\ \end{bmatrix}                                 内参矩阵

\begin{bmatrix} {1 + k_{u}^{`}r^{2}} & 0 & 0 \\ 0 & {1 + k_{v}^{`}r^{2}} & 0 \\ 0 & 0 & 1 \\ \end{bmatrix}         和        \begin{bmatrix} {u_{0}k_{u}^{`}r^{2}} \\ {v_{0}k_{v}^{`}r^{2}} \\ 0 \\ \end{bmatrix}                 畸变相关矩阵 

        

在知道内外参矩阵和 畸变矩阵的前提下,给定世界坐标(x_{w},y_{w},z_{w})就可以根据公式(12)得到相应的像素坐标(u,v)。

补充说明:

        我对考虑相机畸变(这里用二阶透镜的径向畸变)的坐标系转换(世界坐标系到像素坐标系)进行了重新推导得到了上面的相关结论。这篇文章是在我完成机器视觉伺服技术这门课的课程报告时抽空写的,尽管在完成此报告期间阅读大量资料,加上老师上课时的一些讲解,我仍不能保证此篇文章完全正确,大家如果发现什么问题欢迎评论区留言交流 。

       

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值