相机标定(世界坐标系-->相机坐标系,相机坐标系-->图像坐标系,图像坐标系-->像素坐标系,完成世界坐标系-->像素坐标系)

本篇文章主要介绍如何使用相机标定,实现世界坐标系-->相机坐标系,相机坐标系-->图像坐标系,图像坐标系-->像素坐标系,完成世界坐标系-->像素坐标系。

 相机标定内参/畸变系数求解与外参求解代码:https://www.cnblogs.com/tangjunjun/p/16715485.html  (添加:2022-0926)

原理介绍如下:

 一、世界坐标系转换为相机坐标系

相机标定概念:即求解外参旋转矩阵R与平移向量t

 世界坐标系概念(一般摄像机为坐标原点):

 相机坐标系:

 

世界坐标系到相机坐标系方法通常使用旋转和平移方法实现:

旋转方法种类:旋转矩阵,欧拉角,四元数,轴角,李群和李代数

旋转应用场景:惯性导航,机器人学(机械臂运动学,无人机姿态估计,slam等)

旋转矩阵图解推导方法:

本图说明:红点假设为物体p(物体未发生变化,只是坐标系建立方法不同而已),黑色为原坐标系,蓝色为绕X轴旋转坐标系,旋转角为seta。

求解新坐标系(Xc,Yc,Zc),其中绕X轴旋转,则新Xc=X将不发生变化。

Yc=oa+ab=ec+pd=oc*sin(seta)+cp*cos(seta)=Z*sin(seta)+Y*cos(seta)

Yc=ac-cd=oe-cd=oc*cos(seta)-cp*sin(seta)= Z*cos(seta)-Y*sin(seta)

 

 最终表现为矩阵如下:

 

验证旋转是否正确(因到原点距离不变),采用欧式距离验证:

 

通过以上方法类推绕Y轴,Z轴旋转,得到以下矩阵,将其相乘可得到绕X/Y/Z轴旋转的坐标转换。 

如下为旋转角矩阵变换

添加(2022-0930):以上绕x轴公式的正负号偏差为角度问题,若-seta可将上面角度转为下面公式:

 

 

 

补充关于绕Y轴旋转的矩阵:

以下利用几何变换推导绕Y轴变换不同的2个矩阵,若读者发现不同文章不一样,可以不用慌张,仅仅思考角度不一样,可理解seta角正负的影响,

详情推导请看下面的变换。

 

 

 

额外注意点:

 

 

平移向量可表示为:

 

 通过旋转矩阵与平移向量可求R与t,即为相机的外参R、t

 

 二、相机坐标系转换为图像坐标系

相机坐标系->图像坐标系这个转换过程,实际将三维转换我二维平面,其原理复符合小孔成像,可采用相似三角形求解转换公式。

小孔成像示意图:

 

 

从下图上,如果相机坐标系到图像坐标系的转化,我们可以理解为,如何将相机坐标系下的3D点 [公式] 映射到 [公式] 上,通过蓝色虚线部分,我们可以得到两个相似三角形 [公式] 和 [公式] ,其中相机坐标系的原点 [公式] 到图像坐标系的原点 [公式] 的距离,我们称之为焦距 [公式] 。

                        

 

 

 

 

利用相似三角形可得:

 

最终可转换如下:

 

 说明:Zc实际为相机坐标系Z轴的值,可通过如下形式得到:(添加:2022-0926)

 

 

 

 

 三、图像坐标系转换像素坐标系 

图像坐标系转像素坐标系实际是比列尺(属于缩放问题)与移动问题,首先是 [公式] 这个我们可以理解为,从图像坐标系中心点到像素坐标系中心点的一个偏移量。属于相机内参的一部分。另外,如果我们已知图像坐标系的一个点 [公式] ,我们还应该知道,横坐标的每一个mm对应像素是多少。即有如下公式:

 

 

 其中dx与dy表示x轴与y轴物理像素尺寸,即1个像素是dx毫米。

可使用以下公式表示:

 

 

 

最终实现世界坐标系到像素坐标系的转换:

 上图可知M2为相机外参,M1为相机内参

相机标定目的:

 

 推荐博客:https://blog.csdn.net/xsh_roy/article/details/125265394     //修改时间20220803

posted @ 2022-05-08 01:03  tangjunjun  阅读(3484)  评论(0编辑  收藏  举报
https://rpc.cnblogs.com/metaweblog/tangjunjun