相机标定-机器视觉基础(理论推导、Halcon和OpenCV相机标定)

本文详细介绍了相机标定的过程,包括背景知识、相机内外参模型推导和编程实现。首先阐述了2D和3D空间中的几何变换,如欧式变换、相似变换、仿射变换和透视变换。接着,探讨了相机内外参数,特别是相机小孔成像模型和畸变矫正。最后,展示了基于Halcon和OpenCV的相机标定代码实现,以及标定结果的影响因素。

        相机标定是获得目标工件精准坐标信息的基础。首先,必须进行相机内参标定,构建一个模型消除图像畸变;其次,需要对相机和机器人的映射关系进行手眼标定,构建一个模型将图像坐标系上的点映射到世界坐标系。主要分为背景知识、相机内外参模型推导、编程代码实现三个部分。

1 背景知识

        在讨论相机模型标定之前,我们应当先了解几何里面关于2D、3D空间里面几种几何变换形式。主要包括欧式变换、相似变换、仿射变换和透视变换,相机标定的过程,就是一个透视变换矩阵求解的过程。

参考来源:北京邮电大学鲁鹏老师的课件

1.1 2D平面上的变换

1.1.1 欧式变换

        所谓欧式变换,即只有平移加旋转的变换,例如在2D平面上有一个正方形,经过变换后正方形的尺寸没有发生改变,但中心点会发生改变,并且偏转了一定的角度。自由度为三个,即xy方向的平移和旋转的角度theta。

1.1.2 相似变换

        所谓的相似变换,即在欧式变换的基础上,附加一个均匀伸缩变换。经过变换后,在相似变换的基础上对原有的尺寸进行了放缩。但保证线与线之间的角度、长度的比值和面积的比值不变。自由度为四个:即xy方向的平移和旋转的角度再加一个放缩系数。

 1.1.3 仿射变换

        所谓的仿射变换,即在相似变换的基础上再增加了两个自由度。由上图的相似变换矩阵可以得知,决定矩阵数值的值主要有s、θ、X0、Y0。我们可以看到s、θ两个参数决定了矩阵里面的四个数值,假设这四个参数完全由a、b、c、d四个独立的变量进行控制,即仿射变换一共有六个自由度。变换前后线与线之间的平行性、平行线段长度的比值和面积的比值不变。

1.1.3 透视变换

        所谓的透视变换,即在仿射变换的基础上再次增加两个自由度,由仿射变换的矩阵我们可以看到,其第三行两个数值都为0,假设其不为0,分别为V1、V2。因此,透视变换一共有八个自由度,变换前后只有四共线的交比保持不变,即交比不变性。

1.2 3D空间上的变换

1.2.1 欧式变换

        所谓欧式变换,即只有平移加旋转的变换。当其在三维空间里面时,旋转共有绕三个轴xyz的旋转,平移也是发生在三维空间。同时在此基础上附加一个放缩系数s,其一共有七个自由度,变换前后不变量:点变换到点、线变换到线;保持点的共线性、线的共面性;保持直线与直线、直线与平面、平面与平面的平行性不变;保持线的夹角不变。

三维空间旋转平移变换可参考:机器人学导论

 

评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

beyond951

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值