照相机的成像过程中,各参数代表什么

照相机的成像过程中,各参数代表什么,第1张

相机的成像过程

相机成像系统中,共有四个坐标系:即世界坐标系、相机坐标系、图像坐标系、像素坐标系。他们之间有如下转化关系:

(3-1)

其中, 为在世界坐标系下一点的物理坐标,为该点对应的在像素坐标系下的像素坐标,为尺度因子。

将矩阵:

(3-2)

称为相机的内参矩阵,内参矩阵取决于相机的内部参数。其中,为像距,,分别表示,方向上的一个像素在相机感光板上的物理长度(即一个像素在感光板上是多少毫米),,分别表示相机感光板中心在像素坐标系下的坐标,表示感光板的横边和纵边之间的角度。

将矩阵: 称为相机的外参矩阵,相机坐标系、及其世界坐标系的相对位置,决定了它的取值, 表示旋转矩阵, 表示平移矢量。

我是试图入门相机标定一年的菜鸟学生,没有什么实践经验,感觉我在坐井观天,说一下对这块的理解,不知道对不对

1,关于相机标定的论文,最经典的就是张正友标定,matlab和opencv用的都是这个原理。对于平常的相机拍摄的不同图像,有效果,而且结果稳定,需要至少3张图。

2,关于鱼眼相机标定的论文,opencv采用的是一篇06年的论文,我忘了名字,记得大概内容好像是类似张正友标定,只是畸变模型变了一点。

而matlab中鱼眼标定的toolbox采用的是一篇05年的论文,忘了名字,记得大概内容是类似自标定,也就是在计算外参的时候就考虑到了畸变。

3,同一个相机标定结果不一样的原因就太多了。可能角点检测的问题,比如标定板打印的细腻程度(是不是用LCD好一些,我不知道),相机的分辨率。可能是距离远近的问题,不同距离,相机光心可能不一样。可能是你标定板在图像中位置的区别,标定板偏转角度过大,拍摄图像的数量什么的

4,最重要的是,我理解的标定畸变本质其实是选一个比较适合的模型,再用多项式拟合一堆参数,最后优化使整体重投影误差极小。而真实相机他没有什么函数,我们不知道畸变和非畸变点之间是什么map关系,而且畸变点和非畸变点之间可能没什么可以用简单的多项式就可以完美拟合的简单map关系。这就导致,你看到的几个标定结果,随便畸变中心略不一样,焦距略不一样,但是最后重投影误差都差不多。因为说白了,即使畸变中心不一样点,都会通过拟合参数,让提取的角点和重投影的点尽量整好对上。可是平均重投影误差一样小,经常遇到畸变系数内参外参却相去甚远,哪个更好呢?

因为相机复杂的透镜结构并不是简单的多项式就可以表示map关系。所以你很难用一个简单的畸变模型就做到所有图像点map关系准确对上。我看到的结果,往往是图像中间区域重投影误差小,图像边缘区域重投影误差大,这是因为你上传图像中的角点本来就集中在中心区域。所以我觉得需要更多的测评标定结果好坏的算法。不受角点检测影响的测评方法会更好吧我觉得,毕竟角点检测的就不一定对。常见的测评方法就是重投影误差,inlier ratio,失败的概率,重建垂直面是否还垂直,重建平行的,重建直线balabala

5,其他的:标定板和自标定各有利弊,连续模型和离散模型各有利弊,generic 模型和non -parameter model不要搞混,前者其实是来一个相机模型就修改他的算法来包容新的相机模型。类似lensfun对很多镜头的去畸变其实是针对人眼视觉效果,不适合视觉重建

想到什么随手补充什么

以上只是我的理解和猜测,不一定对,欢迎大佬拨乱反正给予指导,欢迎同学们和有相机标定工作经验的大哥来和我讨论,一起学习

展开

内存不是相机的常用参数

百度知道

摄像机的主要参数不包括什么

关关宝贝AA

高能答主

最想被夸「你懂的真多」

关注

成为第515位粉丝

摄像头参数是三种不同的参数:

1)摄像头的内参数是六个分别为:1/dx、1/dy、r、u0、v0、f。

opencv1里的说内参数是4个其为fx、fy、u0、v0。实际其fx=FSx,其中的F就是焦距上面的f,Sx是像素/没毫米即上面的dx,其是最后面图里的后两个矩阵进行先相乘,得出的,则把它看成整体,就相当于4个内参。其是把r等于零,实际上也是六个。

dx和dy表示:x方向和y方向的一个像素分别占多少长度单位,即一个像素代表的实际物理值的大小,其是实现图像物理坐标系与像素坐标系转换的关键。u0,v0表示图像的中心像素坐标和图像原点像素坐标之间相差的横向和纵向像素数。

2)摄像头的外参数是6个:三个轴的旋转参数分别为(ω,δ,θ),然后把每个轴的33旋转矩阵进行组合(即先矩阵之间相乘),得到集合三个轴旋转信息的R,其大小还是33;T的三个轴的平移参数(Tx、Ty、Tz)。R、T组合成成的34的矩阵,其是转换到标定纸坐标的关键。

在每个视场无论我们能提取多少个角点,我们只能得到四个有用的角点信息,这四个点可以产生8个方程,6个用于求外参,这样每个视场就还赚两个方程来求内参,则其在多一个视场即可求出4个内参。因为六个外参,这就是为什么要消耗三个点用于求外参。

3)畸变参数是:k1,k2,k3径向畸变系数,p1,p2是切向畸变系数。径向畸变发生在摄像头坐标系转图像物理坐标系的过程中。而切向畸变是发生在摄像头制作过程,其是由于感光元平面跟透镜不平行。总之,16个单目摄像头的参数:10个内部参数(只与摄像头有关):

5个内部矩阵参数K:f,dx,d,u0_,v0_(也可视作4个参数fx,fy_,u_,v0_)5个畸变参数D:k1,k2,k3,p1,p2

6个外部参数(取决于摄像头在{world}的位置):

3个旋转参数R

3个平移参数T

标定

通过相机的标定得到相机内参和外参和畸变系数。

内参矩阵

一般用A或者M1表示。内参矩阵含有相机的固有参数(fx,fy,Cx,Cy),fx,fy(单位:像素)与dx,dy(x,y方向一个像素的物理尺寸,单位:毫米/像素)和焦距f(单位:毫米)有关。 Cx,Cy为图像原点相对于光心成像点的纵横偏移量(单位:像素)。

相机坐标系转图像坐标系

3D恢复

外参矩阵

一般用[R|T]表示,R表示旋转矩阵,T为平移矩阵。不同的棋盘图对应不同的旋转矩阵和平移矩阵。因为每一副图像对应的世界坐标系相对应与相机坐标系是不一样的。

世界坐标系转相机坐标系

图像校正(倾斜,平移)

畸变系数

一般用[p1,p2,p3,k1,k2]表示,p1,p2,p3是相机的径向畸变系数,k1,k2是相机的切向畸变系数。

图像矫正(T型畸变,鱼眼图像等)

前阵子做项目需要,需求:测量二维平面物体的尺寸,比如矩形纸张的长、宽、孔位的测量等,于是做一些记录,同时也是复习一下opencv和halcon

首先说原理和思路,如下:

①获取相机内参  ②确定世界坐标系,一般就是平面物体测量时候所在的平面,原点最好在中间   ③标定②中确定的世界坐标系的外参   ④确定需要测量的像素坐标,如点、线等   ⑤将像素坐标转到世界坐标系   ⑥计算尺寸

其中需要注意的一些点:1、标定板的厚度需要考虑在内,因此计算内参时候需要给初始值(随便指定,最好接近实际值),而且规定世界坐标系的时候z值需要增加一个厚度   2、由于被测物体多多少少都有一些厚度,比如02mm、05mm等,因此在利用标定板进行标定时,标定板最好直接放在待测物体上进行标定   3、标定板最好够大,可以覆盖相机的全视场,这样最好的精度会高一些,而且均匀一些。如果最后的测量结果不均匀,很可能的原因时你的相机视场内平面不均匀。

所以,硬件很重要,一个是标定板,一个是待测台。标定板一定要精度高一些,待测台一定要够平,比如这种的

关于平面尺寸测量,halcon的例程中提供了两个:

1)camera_calibration_multi_imagehdev多幅图像标定,然后计算尺寸

如下图,7张标定,采用的是圆形标定图案,中间有些圆的圆心处有黑点,用来定位;整个标定板充满相机视场;用第一张标定外参。

计算结果如下图,精度还是蛮高的。不过我不建议用绝对误差来衡量,个人倾向于用百分比或者千分比来衡量

2)camera_calibration_single_imagehdev单幅图像标定,然后计算尺寸

如下图,就一张标定(其实就是上面7张中的第一张,放在待测物体上)

标定之前,halcon做了两个事情:1、对相机内参做了最大程度的接近初始化  2、对由标定板厚度引起的误差做了最大的提前预估。剩下的就一样了。

精度也不孬

以上就是关于照相机的成像过程中,各参数代表什么全部的内容,包括:照相机的成像过程中,各参数代表什么、多个相机标定时重复性差的原因、什么不是相机的常用参数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9713118.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存