资讯详情

机器视觉系列(五)——镜头部分

系列文章目录

机器视觉系列(1)-概述 机器视觉系列(2)-机械部件 机器视觉系列(3)-电气部分 机器视觉系列(4)-相机部分

文章目录

  • 系列文章目录
  • 前言
  • 什么是工业镜头?
  • 二、工业镜头分类
  • 三、工业镜头的主要性能参数
      • 镜头质量评价方法
      • 非球面镜头
      • 镜头镀膜
  • 四、工业镜头选型步骤
  • 五、其它组件
  • 六、相机镜头校正
  • 总结
  • 参考资料


前言

延续之前的机器视觉系列文章,从应用的角度介绍工业镜头的相关整理内容。

一、什么是工业镜头

工业镜头是,光学系统由多个镜头(或反射器)组成,形成正确的物理图像关系,确保正确清晰的图像,是镜头的核心;机械装置包括固定光学元件(如镜筒、镜头座、压力圈、连接器等)、镜头调节器(如光圈调节器、调焦器等)、连接器(如普通C接口、CS接口)等。此外,一些镜头还具有自动调光圈、自动调焦或感知光强度的电子结构。

二、工业镜头分类

按实际用途可分为: ①FA就是Factory Automation,工厂自动化是指工厂自动化镜头,简称工业镜头。 ②远心镜头主要是为了纠正传统工业镜头的视差,这对于被测物体不在同一物体上是非常重要的。由于其独特的平行光路设计,远心镜头受到计算机视觉应用场合的青睐,对镜头畸变要求很高。 在这里插入图片描述 有时为了追求高精度而使用它,其入射和出射光瞳均投射到无限远处,其畸变系数为普通镜头的1/20,一般小于0.1%。 ③M12镜头是小螺纹口径镜头,整体尺寸远小于FA镜头和远心镜头,板卡相机。 根据焦距类型,FA镜头也可以进一步分为: ①固定焦镜头是指只有一个固定焦距的镜头,只有一个焦段,或者只有一个视觉,没有变焦功能。与变焦镜头相比,固定焦镜头的设计要简单得多,但一般变焦镜头在变焦过程中会产生影响,而定焦镜头的优点是对焦速度快,成像质量稳定。对于使用定焦镜头的数码相机,它拍摄的运动物体图像清晰稳定,对焦非常准确,画面细腻,颗粒感非常轻微,测光更准确。 ②变焦镜头通过镜头中镜头之间的相互移动,在一定范围内改变镜头的焦距,使相机不仅可以获得全景图像,还可以获得局部细节图像。通过改变焦距,获得不同宽度的视角、不同大小的图像和不同场景范围的相机镜头。变焦镜头在不改变拍摄距离的情况下,可以通过变动焦距来改变拍摄范围,因此非常有利于画面构图。 【其实变焦镜头很好用,就是价格太贵…】 ③鱼眼镜头视角接近或等于180°镜头是一种极端的广角镜头。它的视角力求达到或超出人眼所能看到的范围。因此,鱼眼镜头与人们眼中真实世界的场景有很大的不同。我们在现实生活中看到的风景是规则的固定形式,鱼眼镜头产生的画面效果超出了这一类。。 ④微距镜头是一种特殊的微距摄影镜头,主要用于拍摄非常微妙的物体,并努力尽可能详细地呈现目标的细节。。 此外还有,镜头沿图像的横轴或纵轴倾斜,透视镜头和远心镜头有两种形式,

三、工业镜头的主要性能参数

在实际的机器视觉中,最常用的是FA这里只讨论定焦镜头。FA定焦镜头的主要参数。 ①:其中,镜头与焦点的距离是镜头的重要性能指标。镜头焦距的长度决定了拍摄的成像大小、视角大小、景深大小和图片的透视强度。焦距越大,成像越大。根据镜头的不同用途,焦距的大小也不同镜头焦距为5mm、8mm、12mm、16mm、25mm、35mm、50mm、75mm等等。其计算公式为: 式中,WD工作距离(物距)。 ②:计算公式如下: 相对孔径的倒数是光圈系数,通常以F数表示。例如,如果镜头的相对孔径为1:2,则其光圈系数为F2.这个指标将标记在相机的镜头上。常用的光圈系数是F1.4、F2.0、F2.8、F4.0、F5.6、F8.0、F11.0、F16.0、F22.等几个等级。。有些视觉系统为了增加镜头的可靠性和降低成本,采用定光圈设计,即当光圈不能改变时,通过调整光源强调或相机增益来调整图像亮度。 对照度要求低、使用手动光圈的高清相机可以稍微缩小光圈。 ③:镜头靶面尺寸是指镜头成像直径可覆盖的最大感光芯片尺寸,主要为1/2英寸、2/3英寸、1英寸和1英寸以上。 ④:它是镜头和相机之间的连接方式用的接口包括C、CS、F、V、T2等。 ⑤,在机器视觉应用中,最关键的像差是畸变(变形率)和场景(传感器连接的参数已被严格校正)。畸变会影响测量结果,特别是在精确测量中,必须通过软件进行校准和补偿。 ⑥:它代表镜头记录物体细节的能力是指在成像平面上1mm在间距内,可分辨的黑白线对数为线对//mm”。。镜头的分辨率不能与相机的分辨率混淆。 一般,单位线对/mm,镜头的最低分辨率为38线/2英寸mm,镜头的最低分辨率为50线/3英寸mm,相机的靶面越小,镜头的分辨率就越高。 ⑦:它用来衡量镜头可以收集的光的角度范围。其计算公式为: 式中,n空气中是镜头工作介质的折射率n=1.0;a光进入镜头时的最大孔径锥角。数值孔径与分辨率和光学放大倍数成正比。换句话说,数值孔径直接决定镜头的分辨率。数值孔径越大,分辨率越高,否则分辨率越低。 ⑧:其计算公式为: 式中,f为焦距;WD为工作距离。 ⑨:其计算公式为: ⑩:也就是说,物理距离是指从镜头的底部机械表面到被测物体的距离。由于部分系统工作空间小,镜头工作距离小;但部分系统需要在镜头前安装光源或其他工作装置,因此必须有较大的工作距离来确保空间。工作距离越大,保持小视野的难度和成本就越高。 计算景深时注意对焦距离,。 ?:指从相机接口平面到芯片的距离。简单来说,安装标准镜头(标准)C/CS当接口镜头)时,后焦距正好是拍摄对象的成像CCD图像传感器靶面上的距离。后焦距是一个非常重要的参数,直接影响镜头的配置。一般来说,工业相机在出厂时对后焦距进行了适当的调整。因此,在配备固定焦镜头的应用中,一般不需要调整工业相机的后焦距。在某些应用程序中,如果镜头对焦环调整到极限位置,图像仍然不清晰,则需要调整工业相机的后焦距。 ?:用于计算镜头景深所需的参数。不同的制造商对允许扩散圆直径有不同的定义。一般给定参数为芯片尺寸24mm36mm对应弥散圆直径0.035mm,6cm9cm对应0.0817mm,4”5”对应0.146mm。肉眼分辨率一般为二千分之一至五千分之一。人眼在明视距离(眼前30厘米)能辨别的最小物体约为0.125mm。所以弥散圆放大在7寸照片上(这是常见尺寸)只能是0.125mm图像对角线长度的1/1730左右。对于任何尺寸的底片或大约1/1730的允许弥散圆大小CCD它们都适用,因为它们放大的7英寸照片可以将弥散圆控制在0.125mm。因此,蔡斯制定的标准是弥散圆直径=1/1730底片对角线长度。如果在实际使用中需要,也可以。另外,因为弥散圆最根本目的是界定你是否能够看出清晰或者模糊,那么至少需要22个像素(4个像素的方块)来分辨是否清晰,。 ⑬:其是镜头的一个重要的外部参数,它表示满足图像清晰要求的远点位置与近点位置的差值,如下图: 前景深ΔL1、后景深ΔL2及景深ΔL的计算公式为: 在相机中可清晰成像的距离范围为:L-△L1~L+△L2。 式中,f为焦距;F为光圈系数;L为对焦距离(即工作距离*(1+1/放大倍率))。 对比下前景深与后景深的区别: 另从后景深的计算公式可以看出,很容易出现△L2<0的情况,这就引出超焦距的概念。即当镜头对焦在无穷远时,景深前界(离镜头最近清晰点)到镜头的距离称之为超焦距。就是。如果超焦距是2米,则景深就是1米到无穷远。当使用超焦距时,我们希望获得尽可能大的景深。 超焦距的计算公式为: 这时的清晰成像距离为>fH/2。 ,则: L = 700 + 12 = 712mm △L1 = 2.80.011712^2 / (12^2 + 2.80.011712) = 94.10mm △L2 = 2.80.011712^2 / (12^2 - 2.80.011712) = 127.91mm △L = 94.10+127.91 = 222.01mm fH = 12 + 12^2/(2.80.011) = 4687.32mm 可以看到,影响景深的最主要因素是工作距离,工作距离越大景深越大。此外,光圈越大景深越小,焦距越大景深越小。 实际使用中,: ①固定光圈,保证其他测试条件相同。 ②放置一个条码目标物,调节镜头至条码刚好能识别出的状态,即极限状态。再用相同的另一张条码上移到能识别出的极限高度,此段高度即为景深。 对镜头成像品质影响最大、或者说,两个指标的综合表现可以合称为清晰度Clarity。在专业高清镜头领域,厂商实际上有单独针对镜头的。MTF曲线图是镜头厂家在极为专业、严谨的测试环境下测试并对外公布的参数,可作为镜头成像品质权威、客观的技术参考依据。一方面因为MTF曲线图测试环境非常严谨,另外排除了成像介质(成像器件)的影响,因此能够客观反映镜头水准。而镜头的MTF曲线图可以客观反映分辨率和像差这两个特性。 在对镜头的分辨率和像差进行测试时,将正弦光栅图(黑白条纹图)置于镜头前方,测量镜头成像处的调制度,由于镜头像差的影响,会出现以下情况:空间频率较低(线条较宽疏)时,测量的调制度几乎等于正弦光栅的调制度;当正弦光栅空间频率较高(线条较细密)时,镜头成像的调制度逐渐下降。 镜头成像的调制度随空间频率变化的函数称为调制度传递函数MTF。对于原来调制度为M的正弦光栅,如果经过镜头后达到像平面的像的调制度为M,则MTF函数值为:MTF = M*/M。显然MTF的值介于0和1之间,MTF的值越高镜头性能越好。根据这个调制传递函数作出一条关于镜头的“幅频特性”曲线,即MTF特性曲线图,纵坐标为MTF值,横坐标为空间频率(每毫米线对数),如下图: 在MTF曲线图上,用于评价一款镜头成像清晰度的两个指标(像差和分辨率),可以清楚地表现出来。镜头的反差表示了镜头还原实物反差变化的能力,它对应的是空间频率很低时的MTF值,随着空间频率提高,MTF值以递减的趋势变化。 ,如下图:

镜头质量测评方法

镜头是以光轴为中心的中心对称结构。理论上在像场中与光轴同心的圆上的任一点的成像状况都应该是相同的。但光栅并不是点状的,它有方向性。我们将平行于参考直径的光栅方向称为弧矢向S,而将垂直于参考直径的光栅方向称为子午向M。受到镜头像散的影响,这两种方向的光栅作出的曲线往往是不重合的。 在MTF曲线图中,应该同时考虑这两种信息。于是MTF曲线图的坐标轴发生了变化,纵坐标还是MTF值,但横坐标变成了测试点到像场中心的距离,单位为mm,而空间频率的变化要画出多条曲线来表示。这就是实际上,在镜头的官方资料中所能找到的MTF曲线和上面讲的“幅频特性”曲线并不一样的原因,尽管它们实质相同,但真正的MTF曲线要包含更丰富的内容,如下图: 对于镜头的成像素质,我们只关心像差和分辨率,也就是低频空间频率下和高频空间频率下的MTF值,所以一般只用两条曲线分别代表这两个参数——用低频额定10lp/mm曲线代表镜头反差特性,用高频的30lp/mm曲线代表镜头分辨率特性。另外随着镜头光圈大小的改变,成像的素质也会有很大变化,在MTF图中也要表示出这一点。一般会选用最有代表性和使用价值的两个光圈值F8和全开做出两组曲线,可同时画在一张图上,如下图: 左上图中(左图右图焦距不同,分别为24mm和120mm,F值相同),: ①S10代表在空间频率固定为10lpmm,f=4时的弧矢方向曲线图,像差特性; ②M10代表在空间频率固定为10lp/mm,f=4时的子午方向曲线图,像差特性; ③S30代表在空间频率固定为30lp/mm,f=4时的弧矢方向曲线图,分辨率特性; ④M30代表在空间频率固定为30lp/mm,f=4时的子午方向曲线图,分辨率特性。 Y轴的数字可用于理解清晰度的好坏,,具体数值可能因人而异。 MTF图的分析方法可总结为: ①10lp/mm曲线代表镜头反差特性,越高说明镜头反差越大; ②30lp/mm曲线代表镜头分辨率特性,越高说明镜头分辨率越高; ③MTF曲线越平直,说明边缘与中间的一致性越好; ④边缘曲线快速下降说明成像在边角的反差与分辨率降低; ⑤弧矢曲线与子午曲线越接近,说明镜头像散越小。

非球面镜头

常规的相机镜头为球面镜头,。在实际应用中,通常通过多片镜片组合来对球面镜头的像差进行矫正,这样带来的问题是镜头的体积及重量的增加,同时透过的光减少。 非球面镜头Aspherical Lens采用非球面镜片,实质是在球面面形基础上细微调整而成的。从数学角度来说,球面的面形是一个二次函数,而非球面的面形函数是四次甚至更高次的函数,因此非球面的面形更加复杂。实际上,它是在球面的基础上,按事先设计好的细微面形起伏,进行人为控制而获得非球面的复杂曲面。 ①非球面镜头能够减少球差及色差,提高清晰度; ②非球面镜头采用的镜片数量小,可以缩小镜头体积和重量; ③非球面镜头能够显著提升画面周边的成像质量; ④光通过镜头损耗减少,可以做出通光量更大的镜头。

镜头镀膜

由于光线通过镜头的玻璃镜片过程中,有部分光会发生反射现象而产生损失(通常为5%),而镜头一般由多组镜片构成,则光线通过一组镜头镜片过程中,由于发生了多次反射过程(N组镜片的镜头实质有2N个反射面),实际上到达相机靶面的光线大量减少,同时会产生令人不愉快的鬼影和炫光现象。因此,多组镜片构成的镜头一方面产生了像差、降低了镜头的反差、并导致了镜头实际有效通光孔径降低。 。镜头的镀膜是根据光学的干涉原理,在镜头表面镀上一层厚度为四分之一波长的物质(通常为氟化物),使镜头对这一波长色光的反射降至最低。显然,一层膜只对一种色光起作用,而多层镀膜则可对多种色光起作用。 多层镀膜通常采用不同的材料重复地在透镜表面镀上不同厚度的膜层。多层镀膜可大大提高镜头的透光率,例如未经镀膜的透镜的每个表面的反射率为5%,单层镀膜后降至2%,而多层镀膜可降至0.2%,这样可大大减少镜头各透镜间的漫反射,从而提高影像的反差和明锐度。

四、工业镜头的选型步骤

E=B/C,相机长边和短边的像素数都要大于E ②像元尺寸=产品短边尺寸B/所选相机的短边像素数; ③ =所选相机芯片短片尺寸/相机短边的视野范围 ④ =像元尺寸/放大倍率(判断是否小于C) ⑤ =工作距离*(1+1/放大倍率)单位mm ⑥,否则将出现黑角 ⑦,即要求像面分辨率要大于1/(2*单个像元尺寸<单位取mm>)以上,单位线对/mm 另外,对于恒定光照条件的环境(一般为实验室环境),可选用固定光圈的镜头。对于光照度变化不明显的环境,常选用手动光圈镜头,即将光圈调到一个比较理想的数值后固定住。如果照度变化较大,应选用自动光圈镜头。在使用自动光圈镜头时,一般需要镜头配合摄像机的背光补偿功能来实现,采用宽动态范围的摄像头也有比较不错的效果。

五、其他组件

,其是根据光线的偏振原理制造的镜片,用来排除和滤除光束中的直射光线,使光线能于正轨之透光轴投入眼睛视觉影像,使视野清晰自然。例如,。在拍摄这样的场景时,光源的投射角度与相机拍照的角度要趋近一致,并且其最大的偏折角度需介于30-40°之间。使用的时候可以通过慢慢转动滤镜前组的镜片来进行调整,力求把景物表面的反光降到最低程度。另外,,这是因为偏光镜可以吸收大气中雾气或灰尘反射出的各种方向的杂光,从而使拍摄出的影像更加纯净。 ②,其是用来选取所需辐射波段的光学器件。滤光片的一个共性,就是没有任何滤光片能让天体的成像变得更明亮,因为所有的滤光片都会吸收某些波长,从而使物体变得更暗。。但是,如果在镜头前放一个黄色滤光片,阻挡一部分绿叶散射出的绿光、蓝天散射出的蓝光,而让黄花散射出的黄光大量通过,这样,黄花就显得十分明显了,突出了“黄花”这个主题。

六、相机镜头校正

这里只介绍面阵相机的针孔相机模型的标定。 我接触过的相机镜头校正软件有:OpenCV、Matlab、Halcon三种,其都可以分为4个步骤: ①, ②, ③, ④。 步骤①三者之间没有差别。 关于拍摄用于标定的图像时的注意细节有: <1>; <2>保持相机不变,; <3>拍摄图像最少10张,; <3>; <4>,如下图: <5>; <6>; <7>。 在本文实验中,我分别使用标称制造精度±0.01mm的棋盘格和圆点阵的两种标定板各拍摄了21张不同位姿的图像: 步骤④三者之间没有差别。 步骤③主要是使用的针孔相机模型的差别,OpenCV和Matlab差别很小,OpenCV的相机内参数矩阵定义为: Matlab的相机内参数矩阵定义为: Matlab提供了一个传感器x轴和y轴相对偏斜的自由度s,而Halcon的相机内参数矩阵使用焦距f,像元缩放sx和sy(即每个像元对应的尺寸),中心点坐标cx和cy来表示,将上述参数整理后形式与OpenCV的定义相同。fx = f/sx,fy = f/sy,其中f为镜头焦距,单位mm;sx和sy的单位需从μm转换为mm。这里使用的是Basler acA1300-30gc,其像元尺寸为3.75μm,f=5mm,则对应的fx=5/3.751000=1333.33。 而关于镜头畸变的模型定义,三者都提供多项式畸变校正模型,只是OpenCV提供的自由度最大,3个径向畸变系数k1、k2、k3和2个切向畸变系数p1、p2都可以选择性配置;Matlab的自由度略小,相比OpenCV不能配置只使用k1的多项式模型;而Halcon的自由度最低,5个系数必须全部使用。但Halcon还提供了一个只用系数kappa表示的可进行解析求解的除法畸变模型。 步骤②是后面两个步骤的基础,Matlab(在2021版之后,而我用的是2019,不能提取圆点阵)可以提取棋盘格和圆点阵两种图案的特征点亚像素坐标;OpenCV也可以提取棋盘格和圆点阵两种图案的特征点亚像素坐标(cv.findChessboardCorners+cv.cornerSubPix以及cv.findCirclesGrid);Halcon只可以提取圆点阵图案的特征点亚像素坐标。 :分别使用OpenCV提取两种图案的特征点的亚像素精度坐标,Matlab提取棋盘格、Halcon提取圆点阵。然后分别求每幅图像提取的特征点的X和Y坐标的均值(X和Y混在一起),然后将不同软件提取的特征值进行相减得: 可以看到,OpenCV的提取值X和Y坐标都比Matlab 小约1个像素;OpenCV的提取值X和Y坐标都比Halcon大约0.02个像素。 如上面所述,。 基于上述特征点提取结果,先在3种软件中,分别测试使用5畸变校正系数和1畸变校正系数(Matlab为2畸变校正系数)。,哪一种软件二者的校正后投影特征点的平均坐标偏差都小于0.005个像素。因此,在整理对比实验数据时只列出使用少系数畸变校正模型的标定结果。 可以看到最终投影平均误差最小的是:使用OpenCV算法+圆点阵+OpenCV提取特征点的算法。 这个结果可能跟很多博文中的比较结果都不一样,但这个结论其实不重要,主要是因为:使用的标定板、相机、镜头、拍摄标定图像时的相对位置、使用的图像数量都会对这个结论产生影响。 先排除能排除的影响:使用的图像数量。这里以OpenCV算法+圆点阵+OpenCV提取特征点的算法为例,分别: 从上图可以看出:基本上超过20张图像,其平均误差就已经收敛,不会再有明显的下降改进;从13-21张的变化过程中,最大误差波动也才0.003个像素,对于上述所有算法,其对于最终平均误差指标的影响都小于0.003/0.049100%≈6%。所以可以确定,使用图像数量基本上不影响上述指标波动。 上面也说过,校正算法本身的影响很小,从上表数据也可以得到验证。 而对于剩下的使用的标定板、相机、镜头、拍摄标定图像时的相对位置这几个影响因素,我们是没有办法进行对比实验的。再加上在标定算法的最后一步,都会有一个非线性的精炼过程,其是数值最优的(严格依赖于数据),但不一定是真实的。也就是说,这个步骤会导致即使使用的标定板、相机、镜头全部相同,仅是由于使用了不同的标定图像,就会造成最终的平均误差的波动,所以我们也没有必要太过关注于平均误差的绝对值。 但在实际使用中,我们还是需要从上述各种算法中选择一种,来获得最优的相机镜头校正结果,所以还是需要对上述算法进行量化比较。这里我以如下准则来进行评价:由于我们知道相机和镜头属于工业制品,且大品牌的高质量产品是有严格的品控的(其会在出厂前进行抽检和全检),所以我们用到的相机和镜头,其在产品说明书上会提供明确的规格参数。而实际视觉系统在标定过程中,标定板尺寸、标定板距镜头的大致距离,这些也都是可以获得的参数。虽然由于安装使用、人工操作、算法处理等环境都会引入误差,但最终的标定结果还是应该与上述可获知参数比较接近的。所以可认为,。 OpenCV的官方文档给出了镜头标定的计算推导过程: 以及镜头畸变的除法模型: 多项式模型: 上式中的u和v与x’、y’含义相同,u和v与x’’、y’’含义相同。 其中,(Xw,Yw,Zw)为标定板上某个特征点在世界坐标系中的位置,(Xc,Yc,Zc)为标定板上相同点在相机坐标系中的位置,而r11-r33表示两个坐标系变换之间的旋转矩阵,tx、ty、tz表示两个坐标系变换之间的平移向量。其中(Xw,Yw,Zw)、(Xc,Yc,Zc)、tx、ty、tz都可用具有长度单位的数值表示,且这些系数的长度单位是一致的,而r11-r33为(-1,1)之间的数值。相机内参矩阵A中的系数fx、fy、cx、cy是将具有长度单位的相机坐标系中的点转换到图像坐标系中的像素值。而在实际使用中,一般是要经过镜头畸变变换,将(Xc,Yc,Zc)归一化为(x’,y’,1),然后畸变变换得到(x’’,y’’)后,再使用相机内参矩阵A。所以畸变变换中的系数κ或K1、K2、K3、p1、p2都是无量纲值。 在求解相机内参矩阵A时,可参考公式: 将镜头畸变的影响预先施加到(Xc,Yc,Zc)中,这时利用相似三角形原理,根据Xc和Zc的比值与u和1的比例相等来求解fx、fy、cx、cy,于是可得fx和fy的单位为pixel/mm(mm也可以是其他长度单位),cx和cy的单位为pixel,而且不要求fx单位中的长度单位与Xc的长度单位一致。即cx和cy大致为图像中心像素的像素级坐标值,fx = f/sx,fy = f/sy,f为镜头的焦距,单位取mm,那么sx和sy就为相机每个像元的尺寸,单位也得取mm。 这样所有的镜头标定相关参数就都有了明确的物理意义和单位,就可以与真实环境或物体参数对应起来。 关于镜头焦距和像元尺寸,都可以查阅产品手册获得。tx和ty的值一般不重要,而tz的值对应的就是标定板在拍摄标定图像过程中,相对镜头的实际距离了。镜头畸变系数也可查阅产品手册获得,海康MV系列工业镜头的畸变水平为0.15%,由于畸变模型系数为无量纲值,其对应的r^2是归一化坐标的径向距离,所以可简化取为1。当畸变多项式模型只使用K1一个系数时,是可以得到K1和κ的对应关系的: 于是畸变模型计算得: κ≈-K1≈0.0015。 在实际使用OpenCV的cv2.calibrateCamera函数进行标定的过程中发现,如果希望最终的标定系数与实际物理参数推导的关系一致,,因为对于使用LM算法进行最小二乘的迭代寻优而言,初始点的位置至关重要。另外参数objectPoints,即标定板中特征点的数值也非常重要,因为其对应[R|T]矩阵的计算,一方面要保证objectPoints的数值具有明确的物理意义,另一方面又要保证[R|T]矩阵计算的数值稳定性。之前已说过R矩阵中的数值都是(-1,1)之间的数,所以要求T向量的数值也应在(-1,1)之间,这其中最关键的就是tz。所以,这是因为实际标定过程中,无论是标定板尺寸、还是标定板距镜头的距离,都在1m以内,这样就。另外实测表明,。 注意,由于标定算法的数值计算精度要求很高,,因为其精度可达小数点后15位,这也是Halcon所使用的。而OpenCV相关算法使用32位浮点数来表示数值,其精度只有小数点后7位,是有可能存在算法计算精度问题的。 通过上述准则,我们就可以确定如何选择相机标定算法了。这里的图像中心是640和480,所以依然是使用OpenCV算法+圆点阵+OpenCV提取特征点的算法最佳。从算法层面分析,这。 另外,在Janne Heikkila and Olli Silven的 《A Four-step Camera Calibration Procedure with Implicit Image Correction》中,其说明。还要将上述标定误差从像素换算到实际长度单位(这里是25/42*0.049≈0.03mm),其。 基于以上分析,在实际进行相机镜头标定时,为追求高精度,(即相机光圈、焦距、镜头、工作距离、曝光时间都尽可能接近真实使用值),然后使用圆点阵标定板,按照上述标定用图像注意事项,采集超过20张标定图像,最后进行亚像素级的相机镜头标定。这样获得的结果不一定是真实的,但由于其高度的数据相似性,会使其在实际使用中,获得更小的标定后校正误差。

附上使用OpenCV+圆点阵校正的Python代码如下:

dirs = "D:\circles"
fns = os.listdir(dirs)
fns = [os.path.join(dirs,k) for k in fns]
CHECKERBOARD = (7,7)
objpoints = []
imgpoints = []
objp = np.zeros((1, CHECKERBOARD[0] * CHECKERBOARD[1], 3), np.float32)
objp[0,:,:2] = np.mgrid[0:CHECKERBOARD[0], 0:CHECKERBOARD[1]].T.reshape(-1, 2)
objp = objp * 0.025 # 真实世界坐标,单位m,Z轴坐标全为0

for fname in fns:
    img = cv2.imread(fname)
    gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
    ret, corners = cv2.findCirclesGrid(gray, CHECKERBOARD) # 直接得到浮点数
    if ret == True:
        objpoints.append(objp)
        imgpoints.append(corners) # 对特征点坐标进行中心化不会改变最终的标定精度,因为标定板会出现在相机视野的各个角落,所以依然不会缩减该参数的取值范围 

# 给定初始化相机内参和镜头畸变参数
ini_camera = np.zeros((3,3), dtype=np.float32)
f = 12 # 12mm镜头
sx = 3.75*1e-3 # 像元3.75μm
fx = f / sx
ini_camera[0,0] = fx
ini_camera[1,1] = fx
ini_camera[0,2] = 1280/2 # 图像长1280
ini_camera[1,2] = 960/2 # 图像宽960
ini_camera[2,2] = 1
ini_dist = np.zeros((1,5), dtype=np.float32)
acc = 0.9985 # 对应0.15%的标称畸变水平
r2 = 1
ini_dist[0,0] = (acc-1) / r2 # -0.0015

# 只使用多项式畸变系数K1标定
flag = 0 | cv2.CALIB_USE_INTRINSIC_GUESS | cv2.CALIB_ZERO_TANGENT_DIST | cv2.CALIB_FIX_K2 | cv2.CALIB_FIX_K3
ret, mtx, dist, rvecs, tvecs = cv2.calibrateCamera(objpoints, imgpoints, gray.shape[::-1], ini_camera, ini_dist, flags=flag)
# 使用5个多项式畸变系数标定
flag = 0 | cv2.CALIB_USE_INTRINSIC_GUESS
ret, mtx, dist, rvecs, tvecs = cv2.calibrateCamera(objpoints, imgpoints, gray.shape[::-1], ini_camera, ini_dist, flags=flag)

总结

以上就是关于工业镜头要讲的内容,欢迎大家对本文章进行补充和指正。

参考资料

《Halcon机器视觉算法原理与编程实战》,北京大学出版社 《机器视觉算法与应用》,清华大学出版社 《海康机器视觉认证工程师官方资料》 《Handbook of Machine and Computer Vision——The Guide for Developers and Users》,Alexander Hornberg,Wiley OpenCV官方文档,https://opencv.org/ Matlab官方文档,https://ww2.mathworks.cn/help/vision/ug/evaluating-the-accuracy-of-single-camera-calibration.html Halcon官方文档,https://www.mvtec.com/doc/halcon/12/en/calibrate_cameras.html https://learnopencv.com/understanding-lens-distortion/

标签: cs系列速度传感器物体阻挡光线传感器zc01029950传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台