如何保证工业相机工作的精准与稳定?

news/2024/7/6 0:44:25

点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

无论是在图像测量或者机器视觉应用中,相机参数的标定都是非常关键的环节,其标定结果的精度及算法的稳定性直接影响相机工作产生结果的准确与稳定。

什么是相机标定?

在图像测量过程以及机器视觉应用中,为确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,必须建立相机成像的几何模型,这些几何模型参数就是相机参数。

在大多数条件下这些参数必须通过实验与计算才能得到,这个求解参数的过程就称之为相机标定。

计算机视觉的基本任务之一是依据相机获取的图像信息计算三维空间中物体的几何信息,并由此重建和识别物体。我们用简单的数学模型来表达复杂的成像过程,并且求出成像的反过程。标定之后的双目相机,可以进行三维场景的重建,这是计算机视觉的一大分支。


经典的针孔相机模型

e0147d5809c7d122b99de2826f485d90.png

小孔成像的实验大家都很熟悉,如上图,依据这个实验也可以抽象出一个经典的针孔相机模型,如下图:

5f0f315442ed960a81133142c3bd4268.png

相机标定常用到四种坐标系,分别为:

 像素坐标系(u,v):描述物体成像后的像点在数字图像上(相片)的坐标,单位为个(像素数目)。

 成像平面坐标系(x,y):描述成像过程中物体从相机坐标系到图像坐标系的投影透射关系,单位为m。

 相机坐标系(xc,yc,  zc):原点落在相机上的三维坐标系,单位为m。

 世界坐标系(xw,yw,  zw):用户定义的三维世界的坐标系,为了描述目标物在真实世界里的位置而被引入,单位为m。

世界坐标系到相机坐标系的转换关系今天暂不讨论,我们把重点放在相机坐标系到成像平面坐标系的转换关系上。

上文中小孔成像实验的成像过程可以描述为一点通过针孔相机模型的示意图(如图A)。为了在数学上更方便描述,我们将相机坐标系和图像坐标系位置对调,变成图B所示的布置方式:

df5f6fcb66f9c0f83ca8f1c24ec53f3b.png

图A

87c8c928598b7820290183091e326a4b.png

图B

经过一系列推导,我们就可以得到一个结果转化公式:

cc3088a211df07a7c1bf2bed362928b9.png

透镜的畸变

透镜的畸变主要分为径向畸变和切向畸变:

径向畸变就是沿着透镜半径方向分布的畸变,产生原因是光线在远离透镜中心的地方比靠近中心的地方更加弯曲,径向畸变主要包括桶形畸变和枕形畸变两种。以下分别是枕形和桶形畸变示意图。

ae87eb6a6e01d8cc319c3b4f94caf665.png

切向畸变是由于透镜本身与图像平面不平行而产生的,这种情况多是由于透镜被粘贴到镜头模组上的安装偏差导致。

 799f828754b070c5e6e6c98592c1a45b.png

常用的相机标定方法

常用的相机标定方法有:传统相机标定法、主动视觉相机标定方法、相机自标定法。

 传统相机标定法

传统相机标定法需要使用尺寸已知的标定物,通过建立标定物上坐标已知的点与其图像点之间的对应,利用一定的算法获得相机模型的内外参数。根据标定物的不同可分为三维标定物和平面型标定物。传统相机标定法在标定过程中始终需要标定物,且标定物的制作精度会影响标定结果。

 主动视觉相机标定法

基于主动视觉的相机标定法是指已知相机的某些运动信息对相机进行标定。该方法不需要标定物,但需要控制相机做某些特殊运动,利用这种运动的特殊性可以计算出相机内部参数。基于主动视觉的相机标定法的优点是算法简单,往往能够获得线性解,故鲁棒性较高,缺点是系统的成本高、实验设备昂贵、实验条件要求高,而且不适合于运动参数未知或无法控制的场合。

 相机自标定法

相机自标定算法主要是利用场景中的一些平行或者正交的信息。其中空间平行线在相机图像平面上的交点被称为消失点,它是射影几何中一个非常重要的特征,所以很多学者研究了基于消失点的相机自标定方法。自标定方法灵活性强,可对相机进行在线定标。但由于它是基于绝对二次曲线或曲面的方法,其算法鲁棒性差。

e5c116db3fe122aa9ba9d14f096a90fc.png

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲

在「小白学视觉」公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲

在「小白学视觉」公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

99a0bfc05ec21c51c0a491484696fa7b.png

7cfaf5d73b22be52eaddc0c851aa9a07.png


http://lihuaxi.xjx100.cn/news/272849.html

相关文章

[c#基础]ICloneable接口

摘要 该接口使你能够创建现有对象的副本的自定义的实现。该接口只提供了,一个Clone方法,实现对象的浅拷贝。有浅拷贝,那么就有相对应的深拷贝。但该接口并没有对我们提供,需要我们自己实现。 什么是浅拷贝与深拷贝? 浅…

纯css3代码写下拉菜单效果

1 <!DOCTYPE html>2 <html lang"en">3 <head>4 <meta charset"UTF-8">5 <meta name"viewport" content"widthdevice-width,initial-scale1;user-scaleno">6 <title>CSS3树形菜单</title…

4招教你零基础入门Python

随着近几年Python的飞速发展&#xff0c;应用范围逐步趋于广泛&#xff0c;后端开发、前端开发、爬虫、金融量化分析、人工智能、自动化运维、自动化运维、大数据&#xff0c;Python都有涉及。Python相对其他编程语言来讲&#xff0c;语法较简单&#xff0c;就算没有任何编程基…

SQL查找是否存在,别再count了,很耗费时间的

点击上方“方志朋”&#xff0c;选择“设为星标”回复”666“获取新整理的面试文章来源&#xff1a;http://suo.im/5T1tGv根据某一条件从数据库表中查询 『有』与『没有』&#xff0c;只有两种状态&#xff0c;那为什么在写SQL的时候&#xff0c;还要SELECT count(*) 呢&#x…

机械键盘写代码嗖嗖嗖!免费包邮送到家

写代码如果用机械键盘是件很爽的事情&#xff0c;敲代码Bug多不多不重要&#xff0c;逼格必须先到位&#xff01;所以&#xff0c;小编联合9位公众号主给大家送一款全新的RX-78-2高达有线办公键盘游戏樱桃轴机械键盘红轴。写代码逼格高&#xff01;赠送规则本次活动联合了9个号…

读《杜拉拉升职记》有感

读杜拉拉升职记有感1.一定要在核心部门任职&#xff0c;防止被边缘化2.劳心者治人&#xff0c;劳力者治于人干了活还受气怎么办&#xff1f;1.把每一个阶段的主要任务和安排的都做成清晰简明的表格&#xff0c;发给我的老板&#xff0c;告诉他如果有反对意见&#xff0c;在某某…

《评人工智能如何走向新阶段》后记(再续17)

由AI科技大本营下载自视觉中国258.2月15日阿里巴巴达摩院研发AI诊断技术 阿里达摩院联合阿里云研发一套全新的AI诊断技术&#xff0c;可在20秒内对新冠肺炎疑似病例CT影像做出分析判断&#xff0c;识别准确率达96%。 有了AI加持&#xff0c;通过NLP自然语言处理回顾性数据&…

利用OpenCV识别玻璃纤维织物劈缝缺陷

点击上方“小白学视觉”&#xff0c;选择加"星标"或“置顶”重磅干货&#xff0c;第一时间送达玻璃纤维织物是经编多轴向织物&#xff0c;由一层或多层平行的纱线按照尽可能多的方向交错而成的。织物具有一定的密实度和厚度&#xff0c;颜色一般为白色&#xff0c;生…