工业镜头光心在哪 工业相机内,外参数的认识

小编 2024-11-23 电性测试 23 0

工业相机内、外参数的认识

1、相机内参数是与相机自身特性相关的参数,比如相机的焦距、像素大小等;

相机外参数是在世界坐标系中的参数,比如相机的位置、旋转方向等。

相机标定(或摄像机标定):

一句话就是世界坐标到像素坐标的映射,当然这个世界坐标是我们人为去定义的,标定就是已知标定控制点的世界坐标和像素坐标我们去解算这个映射关系,一旦这个关系解算出来了我们就可以由点的像素坐标去反推它的世界坐标,当然有了这个世界坐标,我们就可以进行测量等其他后续操作了~上述标定又被称作隐参数标定,因为它没有单独求出相机的内部参数,如相机焦虑,相机畸变系数等~一般来说如果你仅仅只是利用相机标定来进行一些比较简单的视觉测量的话,那么就没有必要单独标定出相机的内部参数了~至于相机内部参数如何解算,相关论文讲的很多~

在图像测量过程以及机器视觉应用中,为确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,必须建立相机成像的几何模型,这些几何模型参数就是相机参数。在大多数条件下这些参数必须通过实验与计算才能得到,这个求解参数的过程就称之为相机标定(或摄像机标定)

相机标定的目的是确定相机的一些参数的值。通常,这些参数可以建立定标板确定的三维坐标系和相机图像坐标系的映射关系,换句话说,你可以用这些参数把一个三维空间中的点映射到图像空间,或者反过来。相机需要标定的参数通常分为内参和外参两部分。外参确定了相机在某个三维空间中的位置和朝向,至于内参,可以说是相机内部的参数(这好像是废话...笑),我觉得需要引入一点光学的东西来更好地解释一下。现有的相机都至少包含一个光学镜头和一个光电传感器(CCD或CMOS)。通过镜头,一个三维空间中的物体经常会被映射成一个倒立缩小的像(当然显微镜是放大的,不过常用的相机都是缩小的),被传感器感知到。

·

理想情况下,镜头的光轴(就是通过镜头中心垂直于传感器平面的直线)应该是穿过图像的正中间的,但是,实际由于安装精度的问题,总是存在误差,这种误差需要用内参来描述;

·

理想情况下,相机对x方向和y方向的尺寸的缩小比例是一样的,但实际上,镜头如果不是完美的圆,传感器上的像素如果不是完美的紧密排列的正方形,都可能会导致这两个方向的缩小比例不一致。内参中包含两个参数可以描述这两个方向的缩放比例,不仅可以将用像素数量来衡量的长度转换成三维空间中的用其它单位(比如米)来衡量的长度,也可以表示在x和y方向的尺度变换的不一致性;

·

理想情况下,镜头会将一个三维空间中的直线也映射成直线(即射影变换),但实际上,镜头无法这么完美,通过镜头映射之后,直线会变弯,所以需要相机的畸变参数来描述这种变形效果。

·

1).外参数矩阵。告诉你现实世界点(世界坐标)是怎样经过旋转和平移,然后落到另一个现实世界点(摄像机坐标)上。2).内参数矩阵。告诉你上述那个点在1的基础上,是如何继续经过摄像机的镜头、并通过针孔成像和电子转化而成为像素点的。3).畸变矩阵。告诉你为什么上面那个像素点并没有落在理论计算该落在的位置上,还tm产生了一定的偏移和变形!!!

2、摄像机内参、外参矩阵

在opencv的3D重建中(opencv中文网站中:照相机定标与三维场景重建),对摄像机的内参外参有讲解:

外参:摄像机的旋转平移属于外参,用于描述相机在静态场景下相机的运动,或者在相机固定时,运动物体的刚性运动。因此,在图像拼接或者三维重建中,就需要使用外参来求几幅图像之间的相对运动,从而将其注册到同一个坐标系下面来

内参:下面给出了内参矩阵,需要注意的是,真实的镜头还会有径向和切向畸变,而这些畸变是属于相机的内参的。 摄像机内参矩阵:

其中,fx,fy为焦距,一般情况下,二者相等,x0、y0为主点坐标(相对于成像平面),s为坐标轴倾斜参数,理想情况下为0

摄像机外参矩阵:包括旋转矩阵和平移矩阵 旋转矩阵和平移矩阵共同描述了如何把点从世界坐标系转换到摄像机坐标系

旋转矩阵:描述了世界坐标系的坐标轴相对于摄像机坐标轴的方向 平移矩阵:描述了在摄像机坐标系下,空间原点的位置

例:

<leftCameraMatrix type_id="opencv-matrix"> <rows>3</rows><cols>3</cols><dt>d</dt> <data> 7.3582167224957209e+002 0. 1.5950000000000000e+002

0. 7.3582167224957209e+002 1.1950000000000000e+002

0. 0. 1.

</data></leftCameraMatrix>

二、 一些疑问

Q1:标定时棋盘格的大小如何设定,对最后结果有没有影响?

A:当然有。在标定时,需要指定一个棋盘方格的长度,这个长度(一般以毫米为单位,如果需要更精确可以设为0.1毫米量级)与实际长度相同,标定得出的结果才能用于实际距离测量。一般如果尺寸设定准确的话,通过立体标定得出的Translation的向量的第一个分量Tx的绝对值就是左右摄像头的中心距。一般可以用这个来验证立体标定的准确度。比如我设定的棋盘格大小为270 (27mm)???,最终得出的Tx大小就是602.8 (60.28mm),相当精确。

Q2:通过立体标定得出的Tx符号为什么是负的?

A:这个其实我也不是很清楚。个人的解释是,立体标定得出的T向量指向是从右摄像头指向左摄像头(也就是Tx为负),而在OpenCV坐标系中,坐标的原点是在左摄像头的。因此,用作校准的时候,要把这个向量的三个分量符号都要换一下,最后求出的距离才会是正的。

但是这里还有一个问题,就是Learning OpenCV中Q的表达式,第四行第三列元素是-1/Tx,而在具体实践中,求出来的实际值是1/Tx。这里我和maxwellsdemon讨论下来的结果是,估计书上Q表达式里的这个负号就是为了抵消T向量的反方向所设的,但在实际写OpenCV代码的过程中,那位朋友却没有把这个负号加进去。(一家之言,求更详细的解释)

Q3:cvFindStereoCorrespondenceBM的输出结果好像不是以像素点为单位的视差?

A:在OpenCV2.0中,BM函数得出的结果是以16位符号数的形式的存储的,出于精度需要,所有的视差在输出时都扩大了16倍(2^4)。其具体代码表示如下:

dptr[y*dstep] = (short)(((ndisp - mind - 1 + mindisp)*256 + (d != 0 ? (p-n)*128/d : 0) + 15) >> 4);

可以看到,原始视差在左移8位(256)并且加上一个修正值之后又右移了4位,最终的结果就是左移4位

因此,在实际求距离时,cvReprojectTo3D出来的X/W,Y/W,Z/W都要乘以16 (也就是W除以16),才能得到正确的三维坐标信息

Q4:利用双摄像头进行测距的时候世界坐标的原点究竟在哪里?

A:世界坐标系的原点是左摄像头凸透镜的光心。

说起这个,就不得不提到针孔模型。如图3所示,针孔模型是凸透镜成像的一种简化模型。当物距足够远时(远大于两倍焦距),凸透镜成像可以看作是在焦距处的小孔成像。

图3. 针孔模型

在实际计算过程中,为了计算方便,我们将像平面翻转平移到针孔前,从而得到一种数学上更为简单的等价形式(方便相似三角形的计算),如图4所示。

图4. 针孔模型的数学等价形式

因此,对应图2就可以知道,世界坐标系原点就是左摄像头针孔模型的针孔,也就是左摄像头凸透镜的光心

Q5:f和d的单位是像素,那这个像素到底表示什么,它与毫米之间又是怎样换算的?

A:这个问题也与针孔模型相关。在针孔模型中,光线穿过针孔(也就是凸透镜中心)在焦距处上成像,因此,图3的像平面就是摄像头的CCD传感器的表面。每个CCD传感器都有一定的尺寸,也有一定的分辨率,这个就确定了毫米与像素点之间的转换关系。举个例子,CCD的尺寸是8mm X 6mm,分辨率是640X480,那么毫米与像素点之间的转换关系就是80pixel/mm。

在实际运用中,我们在数学上将这个像平面等效到小孔前(图4),这样就相当于将在透镜中心点之前假设了一块虚拟的CCD传感器。

Q6:为什么cvStereoRectify求出的Q矩阵cx, cy, f都与原来的不同?

A:这个在前文有提到过。在实际测量中,由于摄像头摆放的关系,左右摄像头的f, cx, cy都是不相同的。而为了使左右视图达到完全平行对准的理想形式从而达到数学上运算的方便,立体 校准所做的工作事实上就是在左右像重合区域最大的情况下,让两个摄像头光轴的前向平行,并且让左右摄像头的f, cx, cy相同。因此,Q矩阵中的值与两个instrinsic矩阵的值不一样就可以理解了。

机器视觉如何正确获取图像(镜头篇)

一个典型的机器视觉系统包括相机、镜头、光源、图像采集卡等组件,镜头在系统中有着非常重要的地位。

下面小矩将为大家简要介绍一下镜头成像、技术指标及镜头分类、镜头选型等方面,帮助您了解镜头的基本性能,以便在现场应用中获取最优的产品性能。

镜头成像原理

镜头的成像是以凸透镜成像的原理为基础,通过透镜的组合,把物体发出或者反射的光线成像在像平面上(与芯片面重合) 。

运用凹凸透镜组合能有效地平衡球差、轴外像差、色差等各种像差,提高成像质量。

技术指标介绍

1、焦点/焦距

与光轴平行的光线射入凸透镜时,理想的镜头应该是所有的光线聚集在一点后,再以锥状扩散开来,这个聚集所有光线的点叫做焦点。

对于单个透镜来说,焦距是指从光心到焦点的距离,如图一;

对于多个透镜组成的镜头组来说,焦距是指像方主平面到焦点的距离,如图二。

2、光圈

在镜头内部,有一个多边形或者圆形且面积可变的孔状光栅装置,这个装置就叫做光圈。光圈的作用是控制镜头的通光量,通常用光圈系数来描述其大小。

光圈系数是指镜头焦距 与整个镜头入瞳直径D的比值,通常用f/#来表示。其计算公式:f/#=f′/D。

f/#值越小,光圈越大。一般f/#值是以√2倍递增,因此光圈常用的计数为F1.4,F2.0,F2.8,F4.0……在同一单位时间内上一级的通光面积是下一级的两倍,例如光圈从f/8调整到f/5.6,通光面积便增加一倍。

光圈对图片亮度的影响:相同应用条件下,同一镜头,光圈越大,通光孔径越大,图片越亮。

3、工作距离

工作距离:镜头聚焦清晰时,被测目标到镜头最前端的距离称为工作距离。实际应用中,镜头不能对任意物距下的目标都同时聚焦清晰,因此镜头的工作距离有一定范围。

4、视场角/视野

视场角: 在光学工程中,视场角是指镜头对图像传感器的张角,即若y'为Sensor的半对角线长度,则视场角2θ≈2*arctan(y'/f')。

视野: 也叫视场范围,是指镜头能观测到的实际范围。镜头的视野大小和相机的分辨率,决定视觉系统所能达到的视觉检测精度。

相同的工作距离下,焦距越短,视场角越大,视野也就越大;相同的焦距下,视场角一定,工作距离越远,视野越大。

5、放大倍率

放大倍率定义为像的大小与物的大小之比。

-1<β <0时,物像异侧,成倒立缩小的实像,如AA′所示,这就是镜头的成像原理。

β=-1时,物像异侧,成倒立等大的实像,如BB′所示。

β<-1时,物像异侧,成倒立放大的实像,如CC′所示,这就是显微镜的成像原理。

β>0时,物像同侧,成正立放大的虚像,如DD′所示,这就是放大镜的成像原理。

6、分辨率

分辨率是指光学系统可以测到的被测物体上的最小可分辨特征尺寸。镜头能分辨物体的细节越小,镜头的分辨率就越高。通常用像面处每毫米能够分辨的黑白相间的条纹对数(lp/mm)描述。

在实际应用中,建议镜头的分辨率不低于相机的分辨率。

7、景深

景深:能在像平面上获得清晰像的物方空间深度。即:在被摄物平面(对焦点)前后一定范围内的物体,在无需调焦的情况下,其成像仍然清晰,这段可清晰成像空间深度就是景深。

8、光学畸变

由于镜头在不同视场放大倍率的不一样,使得像相对于物体失去相似性,这种像变形的缺陷称为光学畸变。光学畸变只影响成像的几何形状,并不影响成像的清晰度。常见的光学畸变主要有两种类型,桶形畸变和枕形畸变。

9、TV畸变

TV畸变是图像的视觉畸变的度量,TV畸变的定义有很多 。其中RIAA TV畸变计算公式如下:

10、后截距

法兰距:镜头法兰面到像面(芯片)的距离。

机械后截距:镜头最后的机械面到像面的距离。

光学后截距:镜头最后端镜片表面顶点到像面的距离。

镜头分类

镜头有多种分类方法:

按功能分类:定焦镜头、变焦(倍)镜头、定光圈镜头;

按用途分类:远心镜头、FA镜头、线扫镜头、微距镜头(或者显微镜头);

按视角分类:普通镜头、广角镜头、远摄镜头;

按焦距分类:短焦距镜头、中焦距镜头、长焦距镜头。

工业应用中,最常用的镜头为定焦镜头和远心镜头。 定焦镜头指固定焦距的镜头;远心镜头主要是为纠正传统镜头的视差而特殊设计的镜头,它在一定的工作距离范围内,所得图像的放大倍率不随工作距离的变化而变化,即被测物在不同工作距离下,所成像的大小相同,因此普遍应用在高精度测量的场合中。

一般可分为以下几类:

物方远心镜头: 物方主光线平行于光轴,即主光线的会聚中心位于物方无限远,能够消除物方因调焦不准确而导致的读数误差。

像方远心镜头: 像方主光线平行于光轴,即主光线的会聚中心位于像方无限远,能够有效消除因像方调焦不准而导致的测量误差。

图1/物方远心镜头 图2/像方远心镜头

双侧远心镜头: 物方主光线和像方主光线分别投射到各自端无限远,兼容以上两款镜头的优点。

双侧远心镜头

常规的表面缺陷检测、有无判断等对系统精度要求不高时,可以选用普通镜头。

对于精密测量的应用需求则考虑选择远心镜头,因为普通镜头成像时,由于不同工作距离造成放大倍率不一致而造成视差,即产生近大远小的效果,从而影响测量精度。远心镜头能确保检测目标在一定范围内放大倍率一致,克服视差,从而提高测量精度。

普通镜头与远心镜头效果对比

镜头选型

1、选型思路

在机器视觉系统中,镜头的主要作用是将工件成像至相机传感器芯片上,因此镜头的选型将直接影响到机器视觉系统的整体性能。

一般可以通过以下方式合理地选择镜头:

2、注意要点

a.对焦环与光学接口

调节镜片组的相对位置或光学系统的后焦距使成像清晰的结构部件称为对焦环(或调焦环)。

下图为对焦环不同状态下的成像效果:

镜头与相机连接的机械接口,行业内常用的光学接口已形成通用规范,例如C口、CS口、F口和K口。

b.最大兼容相机芯片尺寸

最大兼容相机芯片尺寸指镜头能支持的最大清晰成像的范围。在实际选择相机和镜头时,要注意所选择镜头的最大兼容芯片尺寸要大于或等于所选择的相机芯片的尺寸。

以下为常用镜头及相机芯片的兼容性说明:

3、选型过程

a.首先确定应用需求(视野、精度、安装高度等)。

b.根据应用需求计算关键的光学性能参数。例如,由视野范围、相机芯片尺寸以及工作距离,计算焦距:视场(水平方向)/芯片(水平方向)≈工作距离/焦距

c.分辨率匹配:在实际应用中,应注意镜头的分辨率不低于相机的分辨率。

d.景深要求:对景深有要求的项目,尽可能使用小光圈;由于景深影响因素较多以及判定标准较为主观,具体的景深计算需要结合实际使用条件。

e.注意与光源的配合,选配合适的镜头。

f.注意考虑使用环境的可安装空间。

案例展示

使用需求: 视野为180mm×135mm,相机芯片为1″(芯片尺寸12.8mm×9.6mm),像元尺寸为3.5μm,相机接口为C型接口,工作距离小于800mm。

(1)根据焦距公式计算,可得:f′=工作距离÷(水平视场÷芯片)=800÷(180÷12.8)=56.89mm。

(2)选择最接近的焦距,f′取50mm,根据确定的焦距,计算新的工作距离,可得:新的工作距离≈(水平视场÷芯片)×焦距=(180÷12.8)×50=703.125mm,新的工作距离<800mm,因此所选定的焦距可行。

(3)像素匹配:像素=12.8÷(3.5×10-3)×9.6÷(3.5×10-3)=1.00×107 ,建议选择高清晰1000万像素级定焦镜头。

(4)确定接口为C接口。

(5)综上所述,可选择OPT Machine Vision的OPT-C5024-10M。

矩视智能机器视觉低代码平台是一个面向机器视觉应用的云端协同开发平台,始终秉承0成本、0代码、0门槛、0硬件的产品理念。

平台以人工智能技术为核心,在机器视觉应用开发环节,为开发者提供图像采集、图像标注、算法开发、算法封装和应用集成的一站式完整工具链。覆盖字符识别、缺陷检测、尺寸测量、目标定位 等上百项通用功能,致力于成为全球用户量最多,落地场景最广泛的机器视觉低代码平台。

更多功能正在开发中,最新信息会第一时间在官方公众号【矩视智能】 进行公布,大家持续关注哦!

相关问答

求苏科版八年级上册物理复习提纲._作业帮

[回答]第一章声现象声音是什么1.声音是由物体振动产生的.2.把正在发声的物体叫声源(固体、液体、气体都可以是声源).3.不同物体的传声效果不同,声音在固...

2017暑期三下乡,你们团队有哪些实际的成果?

[农科院走访]活动第一天我们和农科院的李院长一起了解了农科院的发展情况。然后去农科院的生产实验基地进行参观,李院长向我们讲解了玉米、大豆的实验操作,以...