收藏 分享(赏)

《HALCON编程及工程应用》课件第11章 HALCON标定方法.pptx

上传人:bubibi 文档编号:21804247 上传时间:2024-05-24 格式:PPTX 页数:29 大小:2.41MB
下载 相关 举报
《HALCON编程及工程应用》课件第11章 HALCON标定方法.pptx_第1页
第1页 / 共29页
《HALCON编程及工程应用》课件第11章 HALCON标定方法.pptx_第2页
第2页 / 共29页
《HALCON编程及工程应用》课件第11章 HALCON标定方法.pptx_第3页
第3页 / 共29页
《HALCON编程及工程应用》课件第11章 HALCON标定方法.pptx_第4页
第4页 / 共29页
《HALCON编程及工程应用》课件第11章 HALCON标定方法.pptx_第5页
第5页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、11.111.211.311.411.5标定的目的标定理论HALCON标定流程HALCON标定助手标定应用例程之二维测量第第11章章 HALCON标定方法标定方法HALCON编程基础与工程应用编程基础与工程应用11.1 标定的目的标定的目的l相机需要标定的原因之一就是镜头畸变。所有光学相机镜头都存相机需要标定的原因之一就是镜头畸变。所有光学相机镜头都存在畸变的问题,畸变属于成像的几何失真,它是由于焦平面上不同在畸变的问题,畸变属于成像的几何失真,它是由于焦平面上不同区域对影像的放大率不同而形成的画面扭曲变形现象,这种变形的区域对影像的放大率不同而形成的画面扭曲变形现象,这种变形的程度从画面中心

2、至画面边缘依次递增,主要在画面边缘反映的较为程度从画面中心至画面边缘依次递增,主要在画面边缘反映的较为明显明显。所以所以相机相机标定就是为了消除相机镜头在拍摄过程中产生的畸标定就是为了消除相机镜头在拍摄过程中产生的畸变变。l镜头畸变分类:桶形畸变和枕形畸变镜头畸变分类:桶形畸变和枕形畸变,也,也有的分为径向畸变和有的分为径向畸变和梯梯形畸变。形畸变。HALCON编程基础与工程应用编程基础与工程应用镜头畸变的几种类型镜头畸变的几种类型(a)枕形畸枕形畸变 (b)无无畸畸变 (c)桶形畸桶形畸变(a)远心心镜头零畸零畸变 (b)普通普通镜头径向畸径向畸变 (c)普通普通镜头梯形畸梯形畸变HALCO

3、N编程基础与工程应用编程基础与工程应用11.2 标定理论标定理论坐标系的转换标定的内外参数HALCON编程基础与工程应用编程基础与工程应用1、坐标系的转换、坐标系的转换l在图像测量、定位过程以及其它机器视觉应用中,为确定空间物在图像测量、定位过程以及其它机器视觉应用中,为确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,体表面某点的三维几何位置与其在图像中对应点之间的相互关系,必须建立相机成像的几何模型,这些几何模型参数就是相机参数。必须建立相机成像的几何模型,这些几何模型参数就是相机参数。这个求解参数的过程就称之为相机标定这个求解参数的过程就称之为相机标定。l求解出镜头的畸

4、变参数,就可以把有畸变的图像变换到没有畸变求解出镜头的畸变参数,就可以把有畸变的图像变换到没有畸变状态的图像状态的图像。HALCON编程基础与工程应用编程基础与工程应用针孔相机模型针孔相机模型 基于基于针孔成像原理建立的针孔成像原理建立的相机成像相机成像模型。模型。在相机的成像在相机的成像模型中,包含有几个坐标系:模型中,包含有几个坐标系:世界坐标系、相机坐标系、图世界坐标系、相机坐标系、图像坐标系。相机成像过程的数像坐标系。相机成像过程的数学模型就是目标点在这几个坐学模型就是目标点在这几个坐标系中的转化过程标系中的转化过程。HALCON编程基础与工程应用编程基础与工程应用三三种坐标系定义种坐

5、标系定义在计算机视觉中常采用右手定则来定义在计算机视觉中常采用右手定则来定义上图中的上图中的坐标系。图中存在三个坐标系。图中存在三个不同层次坐标系,以下是对这三种坐标系的定义。不同层次坐标系,以下是对这三种坐标系的定义。1.世界坐标系(世界坐标系(Xw,Yw,Zw)就是现实坐标系,或全局坐标系,它是客观世界的绝对坐标,由用户任意定义的三维空间坐标系,一般的3D场景用的就是这种坐标(HALCON标定中以标定板为参考坐标系基准)。2.相机坐标系(相机坐标系(Xc,Yc)以小孔相机模型针孔平面上的聚焦中心为原点,以相机光轴为Zc构成三维坐标系,其中Xc、Yc与成像平面坐标系平行。3.图像坐标系:分为

6、成像平面坐标系和图像像素坐标系图像坐标系:分为成像平面坐标系和图像像素坐标系。成像平面坐标系(x,y):其原点为透镜光轴与成像平面交点,X、Y轴分别平行于相机坐标系Xc轴和Yc轴,是平面直角坐标系,单位mm。图像像素坐标系(u,v):固定在图像上的以像素为单位的平面直角坐标系,其原点位于图像左上角,其横纵两轴(对于数字图像,是行和列)分别平行于成像平面坐标系的横、纵坐标轴X、Y,这个也是HALCON中表示图像坐标系的方法。HALCON编程基础与工程应用编程基础与工程应用成像平面上的投影点(点成像平面上的投影点(点q)的)的变化变化过程过程 上图是上图是将将相机平面移至针孔与目标物体之间后的模型

7、示意图,描述的相机平面移至针孔与目标物体之间后的模型示意图,描述的是在这个移动过程中,成像平面上的投影点(点是在这个移动过程中,成像平面上的投影点(点q)的变化情况)的变化情况。根据根据空间一点成像到图像平面上的路线,先由世界坐标系变换到相机坐空间一点成像到图像平面上的路线,先由世界坐标系变换到相机坐标系,标系,然后然后又由相机坐标系变换到成像坐标系,但是这个过程有畸变,又由相机坐标系变换到成像坐标系,但是这个过程有畸变,需要进行变换处理,再由成像平面坐标系变换到图像像素坐标系,中间需要进行变换处理,再由成像平面坐标系变换到图像像素坐标系,中间大致分为以下几个步骤:大致分为以下几个步骤:HAL

8、CON编程基础与工程应用编程基础与工程应用空间点Pw(Xw,Yw,Zw)转换到点 P(Xc,Yc,Zc):式中,R是旋转矩阵,T是平移向量。每一个世界坐标的对象都可以通过旋转和平移变换到相机坐标系上(旋转过程如下图)。将目标点旋转角度,等价于将坐标系按相反的方向旋转角度。如下图所示,是二维坐标的旋转变换,对于三维坐标而言,旋转中绕某一个轴旋转,原理与二维坐标旋转相同。如果世界坐标分别绕 X、Y 和 Z轴旋转、,那么旋转矩阵分别为 。从从世界坐标系到相机坐标系世界坐标系到相机坐标系HALCON编程基础与工程应用编程基础与工程应用总的旋转矩阵,也就是三者的乘积。平移矩阵 ,是世界坐标系原点与相机坐

9、标系目标点之间的差值。HALCON编程基础与工程应用编程基础与工程应用 从相机坐标系到图像坐标系属于透视投影变换关系,即将3D图像信息转换成2D图像信息。其中点P是相机坐标系中的点,点p(x,y)是像极坐标系中的点P在图像坐标系上的投影点。可得如下坐标转换矩阵:此时投影点p的单位还是mm,并不是pixel(像素),需要进一步转换到像素坐标系。相机相机坐标系到图像坐标系坐标系到图像坐标系HALCON编程基础与工程应用编程基础与工程应用 图像像素坐标系u-v是以图像左上角为原点,以图像互为直角的两个边缘为坐标轴,满足右手准则而建立的。图像由一个个小的像素点组成,图像像素坐标系的横纵坐标正是以像素点

10、为单位,用来描述图像中每一个像素点在图像中的位置。图像成像坐标系以光轴与像平面交点为原点建立,图像成像坐标系的两个坐标轴分别与图像像素坐标系的坐标轴平行,并且方向相同,如图所示,图像成像坐标系是以毫米为单位的直角坐标系 X-Y。用(Xf,Yf)来描述图像像素坐标系中的点,用(Xd,Yd)来描述图像成像坐标系中的点。图像成像坐标系的原点O在图像像素坐标系中的坐标为(Cx,Cy),用 dx、dy 来表示相邻像素点中心在 X 轴方向和Y轴方向的实际物理距离。图像像素坐标系的转化关系图像图像成像坐标系到图像像素坐标系成像坐标系到图像像素坐标系HALCON编程基础与工程应用编程基础与工程应用2、标定的内

11、外参数、标定的内外参数l外部参数:外部参数:由前面可知,相机的外部参数是用来描述相机坐标系与世由前面可知,相机的外部参数是用来描述相机坐标系与世界坐标系的关系,它表明相机在世界坐标系中的位置和方位,可用旋界坐标系的关系,它表明相机在世界坐标系中的位置和方位,可用旋转矩阵和平移向量来表示。实质上旋转矩阵只有三个独立参数,加上转矩阵和平移向量来表示。实质上旋转矩阵只有三个独立参数,加上平移向量的三个参数,故一共有平移向量的三个参数,故一共有6个独立的外部参数个独立的外部参数。l内部参数:内部参数:内部参数只与相机内部结构有关,而与相机位置参数无关,内部参数只与相机内部结构有关,而与相机位置参数无关

12、,主要包括图像主点坐标主要包括图像主点坐标 (图像与相机光轴相交的点),单个像元图像与相机光轴相交的点),单个像元的高宽的高宽 ,相机的有效焦距相机的有效焦距 f 和透镜的畸变失真系数和透镜的畸变失真系数 k 等。主点坐等。主点坐标标,理论上位于图像中心处,但实际上由于相机制作的精度和使用过,理论上位于图像中心处,但实际上由于相机制作的精度和使用过程中相机镜头可以转动和拆卸等原因,使得面阵相机并不能保证其中程中相机镜头可以转动和拆卸等原因,使得面阵相机并不能保证其中心为透镜光轴,且图像采集数字化窗口的中心不一定与光学中心重合,心为透镜光轴,且图像采集数字化窗口的中心不一定与光学中心重合,这就使

13、得主点不一定在图像的中心,故而需要标定。这就使得主点不一定在图像的中心,故而需要标定。单个像元的高、单个像元的高、宽理论上应该是相等的,但是由于制造的误差,两者不可能完全相等,宽理论上应该是相等的,但是由于制造的误差,两者不可能完全相等,因此需要根据实际情况对其进行修正。因此需要根据实际情况对其进行修正。HALCON编程基础与工程应用编程基础与工程应用11.3 HALCON标定流程标定流程相机参数确定HALCON标定板规格生成标定板HALCON编程基础与工程应用编程基础与工程应用1、相机相机参数确定参数确定 相机相机分两种,一种是面扫描相机,也称面阵相机(分两种,一种是面扫描相机,也称面阵相机

14、(Area Scan Camera),一),一种是线扫描相机,也称线阵相机(种是线扫描相机,也称线阵相机(Line Scan Camera)。准确来说,所谓的面)。准确来说,所谓的面扫描摄像系统是指可以通过单纯曝光取得面积影像,而线扫描摄像系统,必须保扫描摄像系统是指可以通过单纯曝光取得面积影像,而线扫描摄像系统,必须保证相机和目标是相对运动的,然后利用相对运动速度才能取得影像证相机和目标是相对运动的,然后利用相对运动速度才能取得影像。(1)初始相机参数:startCamPar:f,k,Sx,Sy,Cx,Cy,NumCol,NumRowf-焦距k-初始为0.0195Sx-两个相邻像素点的水平距

15、离Sy-两个相邻像素点的垂直距离Cx、Cy-图像中心点的位置NumCol、NumRow-图像长和宽(2)caltab_points,读取标定板描述文件里面描述的点(X,Y,Z),描述文件由 gen_caltab生成。HALCON编程基础与工程应用编程基础与工程应用(3)find_caltab,找到标定板的位置。(4)find_marks_and_pose,输出标定点的位置和外参startpose。(5)camera_calibration,输出内参和所有外部参数。HALCON编程基础与工程应用编程基础与工程应用 2、HALCON标定板规格标定板规格(1)30*30规定的标定板的规格(2)40*

16、40规定的标定板的规格(3)50*50规定的标定板的规格(4)60*60规定的标定板的规格以30*30规定的标定板的规格为例:黑色圆点行数:7黑色圆点列数:7外边框长度:30mm*30mm内边框长度:28.125mm*28.125mm,即黑色边框线宽为一个圆点半径(0.9375)黑色圆点半径:0.9375mm圆点中心间距:3.75mm裁剪宽度:30.75mm*30.75mm,即由黑色边框向外延伸0.375mm边角:由黑色外边框向内缩进一个中心边距的长度HALCON编程基础与工程应用编程基础与工程应用3、生成生成标定板标定板(1)方法一:用HALCON软件自动生成的.ps文件来制作标定板这个也是

17、最简单有效的方法。打开HALCON软件,调用算子:gen_caltab(:XNum,YNum,MarkDist,DiameterRatio,CalTabDescrFile,CalTabPSFile:),具体参数如下:XNum:每行黑色标志圆点的数量;YNum:每列黑色标志圆点的数量;MarkDist:两个就近黑色圆点中心之间的距离;DiameterRatio:黑色圆点半径与圆点中心距离的比值;CalTabDescrFile:标定板描述文件的文件路径(.descr标定板描述文件);CalTabPSFile:标定板图像文件的文件路径(.ps标定板图形文件)。例:生成一个30*30的标准标定板的HA

18、LCON源代码:gen_caltab(7,7,0.00375,0.5,F:/HALCON程序/gencaltab/30_30.descr)HALCON编程基础与工程应用编程基础与工程应用(2)方法二:用HALCON软件自动生成的.descr文件来制作标定板。打开HALCON,输入算子gen_caltab,打开如图11-10所示的算子窗口,生成一个.descr的文件,点击打开文件夹,会看到.descr文件,然后用写字板打开(注意要用写字板,记事本打开会有一些数据不可见)。HALCON编程基础与工程应用编程基础与工程应用11.4 HALCON标定助手标定助手1、标定标定注意注意事项事项HALCON

19、中的标定助手为图像处理提供了一种很简便的标定方式,不仅简化了标定步骤,也省去了繁琐的编程过程,我们只需要采集到符合标定标准的标定板图像,了解设备的参数信息,比如相机类型、标定板厚度等。(1)标定板材质选用玻璃或者陶瓷材质为最好;(2)光源尽量在标定板前方,在与相机相反的方向;(3)标定板采集图像尽量在12幅以上,数量越多,所得的参数就越精确;(4)为了保证参数的精确性,要保证标定板的四角全部在视野范围内。主要是因为一般标定板的四角畸变量比较大,需要通过四角的畸变程度获得准确的畸变系数;(5)要保证标定板的标志点灰度值与其背景灰度值的差值在100以上,否则HALOCN会提示有品质问题。HALCO

20、N编程基础与工程应用编程基础与工程应用标定板图像标定板图像(a)(b)(c)(d)HALCON编程基础与工程应用编程基础与工程应用2、HALCON标定助手标定标定助手标定过程过程步骤1:打开标定助手,设定描述文件,标定板厚度,相机类型、焦距等参数。图中 ,表示Sx和Sy按照1:1的关系关联,同步调节,因为面阵相机的像元一般是方形的,宽和高是一样的。如果取消关联,那么Sx和Sy可以异步调节。步骤2:加载图像,可以实时采集,也可以采集好后再一起标定,建议先采集后标定。图中所示加载标定板图像的窗口,还需要将其中的一幅图像设置为参考位姿。HALCON编程基础与工程应用编程基础与工程应用步骤3:在采集图

21、片合格后,点击上一步骤图中的“标定”按钮,标定结果就出来了,如图所示,在这一步的窗口中,会有标定之后的相机内外参数等标定结果。步骤4:生成代码,在标定完成之后,可以选择生成代码。HALCON编程基础与工程应用编程基础与工程应用11.5标定应用例程之二维测量标定应用例程之二维测量 采用采用 HALCON HALCON 标定助手生成的代码只能获取相机的内外参数,对于标定助手生成的代码只能获取相机的内外参数,对于实际应用还需要进一步处理,完成的标定代码是更加复杂的,包含内外实际应用还需要进一步处理,完成的标定代码是更加复杂的,包含内外参数的获取、将图像坐标转换到世界坐标系、获取像素实际物理距离、参数

22、的获取、将图像坐标转换到世界坐标系、获取像素实际物理距离、生成用于矫正的生成用于矫正的MapMap图像、将畸变图像矫正等。图像、将畸变图像矫正等。在在之前,我们已经介绍了之前,我们已经介绍了HALCONHALCON标定助手的使用,并且学习了相关标定助手的使用,并且学习了相关算子。接下来我们通过这些算子进行图像的校正,然后再测量出图像中算子。接下来我们通过这些算子进行图像的校正,然后再测量出图像中划痕的长度。划痕的长度。HALCON编程基础与工程应用编程基础与工程应用应用例程中的相关算子应用例程中的相关算子1.创建标定数据模型,用于储存标定数据,标定描述文件,标定过程中的创建标定数据模型,用于储

23、存标定数据,标定描述文件,标定过程中的设置设置 CalibSetup;NumCameras;NumCalibObjects;CalibDataID。2.设置相机参数和相机设置相机参数和相机类型类型CalibDataID;CameraIdx;CameraType;CameraParam。3.在标定模型中指定标定板所使用的标定板描述在标定模型中指定标定板所使用的标定板描述文件文件CalibDataID;CalibObjIdx;CalibObjDescr。4.图像中寻找标定板所在图像中寻找标定板所在区域区域CalPlate;CalPlateDescr;SizeGauss;MarkThresh;Min

24、DiamMarks。5.获得标定板黑圆点的信息和预估外获得标定板黑圆点的信息和预估外参数参数StartCamParam;StartThresh;DeltaThresh;MinThresh;Alpha;MinContLength;MaxDiamMarks;RCoord,CCoord;StartPose。HALCON编程基础与工程应用编程基础与工程应用7.设置设置3D坐标原点坐标原点PoseIn;DX,DY,DZ;PoseNewOrigin。8.生成图像坐标系到世界坐标系生成图像坐标系到世界坐标系映射映射Map;CameraParam;WorldPose;WidthIn,HeightIn;Widt

25、hMapped,HeightMapped;Scale;MapType。9.获得存储在标定模型中的存储获得存储在标定模型中的存储数据数据CalibDataID;ItemType;ItemIdx;DataName;DataValue。HALCON编程基础与工程应用编程基础与工程应用基于基于HALCON标定助手的二维测量标定助手的二维测量 以下以下是例程中用到的目标图像及标定文件。是例程中用到的目标图像及标定文件。其中图其中图(a)是待检测图像,图是待检测图像,图(b)是校是校正检测之后的图像,正检测之后的图像,图图(c)(h)是是标定过程用到标定过程用到的的一部分一部分标定标定板图像。板图像。(a

26、)(b)(c)(d)(e)(f)(g)(h)HALCON编程基础与工程应用编程基础与工程应用标定过程中需要注意的问题标定过程中需要注意的问题(1)使用 image_points_to_world_plane 时,由于未将单位设定为m,导致使用算子gen_image_to_world_plane_map 时,不能正确得生成映射图像,因为该算子默认的单位是m。最后转换得到的实际物理距离的单位也是m。(2)gen_radial_distortion_map算子只能矫正径向畸变,gen_image_to_world_plane_map不仅能矫正径向畸变而且可以矫正视角的畸变,使图像绕着坐标轴旋转。(3

27、)calibrate_cameras 与 camera_calibrate 的区别,应该尽量使用 calibrate_cameras,使用该算子可以很方便的修改相机的参数。而且camera_calibrate是一次标定完成,不需要设定相机的参数。HALCON编程基础与工程应用编程基础与工程应用总结总结 本章主要围绕标定这一大的主题,结合HALCON算子的详细说明,对相机标定、畸变校正、图像测量这三大部分进行了系统的介绍。首先介绍了相机成像的畸变种类及相机在标定过程中需要初始化或者测得的参数。然后在标定方面,应用了HALCON的标定助手,通过助手获得标定数据。而且也着重介绍了标定板的详细参数及获得途径,方便读者进行标定前的准备工作。最后通过一个二维测量实例,完成了从标定到校正畸变,再到测量的过程。HALCON编程基础与工程应用编程基础与工程应用

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高等教育

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:文库网官方知乎号:文库网

经营许可证编号: 粤ICP备2021046453号世界地图

文库网官网©版权所有2025营业执照举报