Halcon标定板制作
- 格式:pdf
- 大小:92.42 KB
- 文档页数:1
Halcon单相机标定和测量示例相机标定有很多方式:九点标定法、棋盘格标定法、圆形阵列标定法;本次采用圆形阵列标定法。
1Halcon相机标定1.1标定板描述文件编制此次相机标定采用的是网购的标定板(直接在万能的某宝搜halcon标定板),如图1。
采购的时候卖家会提供标定板的相应参数,如图2。
图1标定板图 2 标定板参数用halcon标定助手标定的时候需要用到标定板的描述文件,此文件可以用gen_caltab算子自己编制。
如下为函数说明:gen_caltab( : : XNum, YNum, MarkDist, DiameterRatio, CalPlateDescr, CalPlatePSFile : ) 函数说明:创建一个标定文件和相应的脚本文件。
函数参数:Xnum:输入X方向标记(圆点)的数量,Xnum>1;Ynum:输入Y方向标记(圆点)的数量,Ynum>1;MarkDist:标记圆圆心间距离,单位“m”;(我看过一个资料翻译为标记点大小,差点被坑死)DiameterRatio:两标记点距离和标记直径的比值,默认:0.5。
0<DiameterRatio<1.0;CalPlateDescr:输入要保存的标定文件(此文件保存路径在算子窗口可更改),默认值: 'caltab.descr',参考: 'caltab.descr', 'caltab_100mm.descr', 'caltab_10mm.descr', 'caltab_200mm.descr', 'caltab_30mm.descr';CalPlatePSFile :标定板图像文件的文件路径(此文件保存路径在算子窗口可更改),默认: 'caltab.ps',后缀:ps。
此算子“XNum, YNum, MarkDist, DiameterRatio”这四个参数根据图2所示的标定板参数设置。
Halcon标定文件的生成Halcon标定文件的生成图一Halcon标定文件的生成,需要有以下几个步骤:1.创建一个标定数据模板,由create_calib_data算来完成。
2.指定相机的类型,初始化相机内部参数,由set_calib_data_cam_param算子来完成。
3.指定标定板的描述文件,由set_calib_data_calib_object算子完成。
4.收集观察数据,有算子set_calib_data_observ_points完成。
也就是收集标定板上圆点的中心坐标,跟各个校正板的位置姿态。
5.配置校正过程。
由算子set_calib_data完成。
6.将数据整合进行标定计算。
calibrate_cameras7.获得标定参数。
get_calib_data8.记录标定参数,write_cam_parStartCamPar :=[0.016, 0, 0.0000074, 0.0000074, 326, 247, 652,494]解释一下这个数组的意思。
面阵相机有14或18个参数(根据想相机的畸变模式),对于线阵相机有17个参数。
这些参数可以分开为内部相机参数、外部相机参数。
面阵相机(division模式):Focus(焦距):远焦镜头镜头焦距的长度Kappa:扭曲系数Sx,Sy:两像素间距Cx,Cy:中心点坐标Whith,Height:图像的宽高面阵相机(polynomia模式):Focus(焦距):远焦镜头镜头焦距的长度K1, K2, K3, P1,P2:扭曲系数Sx,Sy:两像素间距Cx,Cy:中心点坐标Whith,Height:图像的宽高线阵相机不做具体介绍Halcon标定板规格2011-12-23 12:56 68人阅读评论(1) 收藏举报图一:30*30 规格的标定板的规格黑色圆点行数: 7黑色圆点列数: 7外边框长度: 30mm*30mm内边框长度: 28.125mm*28.125mm 即:黑色边框线宽为一个圆点半径(0.9375)黑色圆点半径: 0.9375mm圆点中心间距: 3.75mm裁剪宽度: 30.75mm*30.75mm 即:由黑色边框向外延伸0.375mm 边角:由黑色外边框向内缩进一个中心边距的长度40*40 规格的标定板的规格黑色圆点行数: 7黑色圆点列数: 7外边框长度: 40mm*40mm内边框长度: 37.5mm*37.5mm 即:黑色边框线宽为一个圆点半径(0.125)黑色圆点半径: 0.125mm圆点中心间距: 5mm裁剪宽度: 21mm*21mm 即:由黑色边框向外延伸0.5mm边角:由黑色外边框向内缩进一个中心边距的长度50*50 规格的标定板的规格黑色圆点行数: 7黑色圆点列数: 7外边框长度: 50mm*50mm内边框长度: 46.875mm*46.875mm 即:黑色边框线宽为一个圆点半径(1.5625)黑色圆点半径: 1.5625mm圆点中心间距: 6.25mm裁剪宽度: 51.25mm*51.25mm 即:由黑色边框向外延伸0.625mm 边角:由黑色外边框向内缩进一个中心边距的长度60*60 规格的标定板的规格黑色圆点行数: 7黑色圆点列数: 7外边框长度: 60mm*60mm内边框长度: 56.25mm*56.25mm 即:黑色边框线宽为一个圆点半径(1.875)黑色圆点半径: 1.875mm圆点中心间距: 7.5mm裁剪宽度: 61.5mm*61.5mm 即:由黑色边框向外延伸0.75mm边角:由黑色外边框向内缩进一个中心边距的长度Halcon如何制作标定板分类:Halcon 2011-12-23 12:51 151人阅读评论(2) 收藏举报图1上图即为我自行制作的标定板的图样。
Halcon相机标定简介相机标定简介⾸先镜头有畸变,也就是说照出的图像与实际不符产⽣了形变。
即使⼯业镜头也是有千分之⼏的畸变率的。
上个图告诉⼤家畸变这个图⾥,第⼀个图就是我们相机下的真实的形状,后边两个就是照出来有畸变的图⽚。
其次镜头与相机⽆论你的机械结构精度多⾼,也不容易或者说没办法将相机安装的特别正,那相机安装不正也是会导致误差的。
⼤家想知道具体数学模型的话可以搜⼀下相机标定的理论⽅⾯的知识,我侧重怎么做。
标定就是把上述两个东西转化成正常的。
⽆论是在图像测量或者机器视觉应⽤中,相机参数的标定都是⾮常关键的环节,其标定结果的精度及算法的稳定性直接影响相机⼯作产⽣结果的准确性。
深度说明1、相机标定参数介绍内参:确定摄像机从三维空间到⼆维空间的投影关系。
针孔相机(FA镜头相机)模型为6个参数(f,kSx,Sy,Cx,Cy);远⼼镜头相机模型为5个参数(f,Sx,Sy,Cx,Cy);线阵相机为11个参数(f,k,Sx,Sy,Cx,Cy,Width,Highth,Vx,Vy,Vz)。
其中:f为焦距;k表⽰径向畸变量级。
如果k为负值,畸变为桶形畸变,如果为正值,那么畸变为枕形畸变。
Sx,Sy是缩放⽐例因⼦。
对于相机(FA镜头)表⽰图像传感器⽔平和垂直⽅向上相邻像素之间的距离,初始值与真实值越接近计算速度越快。
对于远⼼摄像机模型,表⽰像素在世界坐标系中的尺⼨。
Cx,Cy是图像的主点,对于相机,这个点是投影中⼼在成像平⾯上的垂直投影,同时也是径向畸变的中⼼。
对于远⼼摄像机模型,只表⽰畸变的中⼼。
Vx,Vy,Vz:线阵相机必须与被拍摄物体之间有相对移动才能拍摄到⼀幅有⽤的图像。
这是运动向量。
Sx,Sy对于线阵相机是相邻像元的⽔平和垂直距离。
2、标定板详细介绍问题1:halcon是否只能使⽤halcon专⽤的标定板?halcon提供了简便、精准的标定算⼦与标定助⼿,这在实际使⽤中极⼤地⽅便了使⽤者在halcon中有两种标定⽅式:halcon⾃带例程中出现的,⽤halcon定义的标定板,如下图:⽤户⾃定义标定板,⽤户可以制作任何形状、形式的标定板,如下图:所以,halcon并⾮只能使⽤专⽤标定板,也可以使⽤⾃定义标定板就可以进⾏标定。
halcon自标定方法Halcon自标定方法Halcon是一种常用的机器视觉软件,用于开发和实现各种图像处理和机器视觉应用。
在机器视觉领域,相机的标定是非常重要的一步,它能够精确地确定相机的内部参数和外部参数,从而提高图像处理的精度和准确性。
Halcon提供了自标定方法,使相机的标定过程更加简便和高效。
自标定方法基于相机的特征点,通过在图像中检测和匹配特征点来确定相机的内部参数和外部参数。
下面将详细介绍Halcon的自标定方法。
1. 特征点提取在自标定过程中,首先需要从图像中提取特征点。
Halcon提供了多种特征点提取算法,如Harris角点检测、SIFT算法等。
根据实际应用场景的需求,选择合适的算法进行特征点提取。
2. 特征点匹配特征点提取后,需要进行特征点的匹配。
Halcon提供了多种特征点匹配算法,如基于描述子的匹配算法、基于相似性变换的匹配算法等。
通过计算特征点之间的相似性,确定它们之间的对应关系。
3. 相机标定特征点匹配完成后,即可进行相机的标定。
Halcon提供了基于特征点的标定方法,通过求解相机的内部参数和外部参数,得到相机的准确标定结果。
标定过程中需要提供已知的标定板,通过测量标定板上的特征点坐标和图像中对应特征点的像素坐标,计算相机的内部参数和外部参数。
4. 标定结果评估标定过程完成后,需要对标定结果进行评估。
Halcon提供了多种评估方法,如重投影误差、畸变系数等。
通过对比实际观测值和标定结果的差异,评估标定的准确性和精度。
5. 标定结果应用标定结果可以应用于各种机器视觉应用中,如图像校正、目标检测和跟踪等。
通过应用标定结果,可以提高图像处理和机器视觉算法的准确性和稳定性。
总结:Halcon的自标定方法是一种简便高效的相机标定方法,通过特征点提取和匹配,求解相机的内部参数和外部参数,从而实现对相机的准确标定。
标定结果可以应用于各种机器视觉应用中,提高图像处理和算法的准确性和稳定性。
Halcon单相机标定板标定⾸先得到相机的内参gen_cam_par_area_scan_division (0.012, 0, 0.00000375, 0.00000375, 640, 480, 1280, 960, StartCamPar)普通的畸变:’area_scan_division’ [’area_scan_division’, Focus, Kappa, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight⾼精度畸变(多项式⼦):’area_scan_polynomial’ [’area_scan_polynomial’, Focus, K1, K2, K3, P1, P2, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight然后建⽴标定对象:create_calib_data ('calibration_object', 1, 1, CalibDataID)//建⽴标定对象set_calib_data_cam_param (CalibDataID, 0, [], StartCamPar)//设置相机的参数set_calib_data_calib_object (CalibDataID, 0, 'calplate_80mm.cpd')//设置标定板的⽂件//查找标定板NumImages := 7for I := 1 to NumImages by 1read_image (Image, ImgPath + 'calib_image_' + I$'02d')dev_display (Image)find_calib_object (Image, CalibDataID, 0, 0, I, [], [])get_calib_data_observ_contours (Caltab, CalibDataID, 'caltab', 0, 0, I)get_calib_data_observ_points (CalibDataID, 0, 0, I, Row, Column, Index, StartPose)//获取标定板的位姿dev_set_color ('green')dev_display (Caltab)dev_set_color ('red')disp_circle (WindowHandle, Row, Column, gen_tuple_const(|Row|,1.5))endfor//纠正实际世界坐标位姿set_origin_pose (Pose, 0, 0, 0.002, Pose)//由于标定板的厚度是0.02,所以Z平移到相机坐标需要加上0.02//标定相机calibrate_cameras (CalibDataID, Errors)//标定相机get_calib_data (CalibDataID, 'camera', 0, 'params', CamParam)//得到相机标定后的相机内参,这个内参包含了畸变参数get_calib_data (CalibDataID, 'calib_obj_pose', [0,1], 'pose', Pose)//以第⼀张图作为参考平⾯,得到参考平⾯的坐标位姿//坐标转换image_points_to_world_plane (CamParam, Pose, Row, Col, 'mm', X1, Y1)//将相机平⾯映射到实际坐标位置位姿:描述是世界坐标转换到相机坐标的旋转平移参数,也就是该点在相机坐标系下的位姿。
Halcon学习(十八)如何制作标定板下面我具体介绍一下,如何制作halcon的标准标定板方法一:用halcon软件自动生成的.ps文件来制作标定板。
这个也是最简单有效的方法。
打开halcon的HDevelop软件,调用算子:gen_caltab( : :XNum,YNum,MarkDist,DiameterRatio,CalTabDescrFile,CalTa bPSFile :)XNum 每行黑色标志圆点的数量。
YNum 每列黑色标志圆点的数量。
MarkDist 两个就近黑色圆点中心之间的距离。
DiameterRatio 黑色圆点半径与圆点中心距离的比值。
CalTabDescrFile 标定板描述文件的文件路径(.descr)。
CalTabPSFile 标定板图像文件的文件路径(.ps),如图1然后复位(F2),点击运行(F5)通过软件Gsview打开,按1:1比例打印,OK!备注一个30*30的标准标定板的halcon源代码。
gen_caltab(7,7,0.00375,0.5,'F:/halcon程序/gencaltab/30_30.descr','F:/halcon程序/gencaltab/40_40.ps')规格的标定板的规格黑色圆点行数:7黑色圆点列数:7外边框长度:30mm*30mm内边框长度:28.125mm*28.125mm 即:黑色边框线宽为一个圆点半径(0.9375)黑色圆点半径:0.9375mm圆点中心间距: 3.75mm裁剪宽度:30.75mm*30.75mm 即:由黑色边框向外延伸0.375mm边角:由黑色外边框向内缩进一个中心边距的长度方法二:用halcon软件自动生成的.descr文件来制作标定板。
打开halcon 的HDevelop软件,调用算子:gen_caltab生成一个.descr的文件,用写字板打开(注意要用写字板,记事本打开会有一些数据不可见,一般windowsXP在C:\ProgramFiles\Windows NT\Accessories就有写字板软件wordpad.exe)打开后的文件基本如下:以40*40为例:# Plate Description Version 2# HALCON Version 10.0-- Mon Dec 19 11:08:072011# Description of the standard calibrationplate 标准标定板的描述# used for the CCD camera calibration inHALCON# (generated bygen_caltab) (由)gen_caltab算子生成## 7 rows x 7columns 7行*7列# Width, height of calibration plate [meter]: 0.04, 0.04 标定板的宽和高:0.04米,0.04米# Distance between mark centers [meter]: 0.005标志圆点中心间距:0.005米# Number of marks in y-dimension (rows)r 7Y方向标志圆点的数量。
相机标定1 相机标定基本原理1.1 相机成像模型目前大多数相机模型都是基于针孔成像原理建立的,因为针孔成像原理简单,并且能满足建模的要求。
除此之外还有基于应用歪斜光线追踪法和近轴光线追踪法的成像模型[1]。
针孔成像虽然已经展示出了相机的成像原理,但是由于针孔成像是理想的物理模型,没有考虑相机本身的尺寸、镜头与相机轴心的偏斜等因素的影响,因此精度很低,不能满足工业机器视觉的要求。
为了使相机模型能高精度的反应相机的实际成像过程,需要再针孔成像模型的基础上考虑镜头畸变等的因素。
图1 针孔成像基于针孔成像原理建立的相机的成像模型,如下图所示。
在相机的成像模型中,包含有几个坐标系分别是世界坐标系、相机坐标系、图像坐标系,相机的成像过程的数学模型就是目标点在这几个坐标系中的转化过程。
图2 针孔成像模型(1)世界坐标系(X w,Y w,Z w),就是现实坐标系,是实际物体在现实世界中的数学描述,是一个三维的坐标空间。
(2)摄像机坐标系(X c, Y c),以针孔相机模型的聚焦中心为原点,以摄像机光学轴线为Z c轴(3)图像坐标系:分为图像像素坐标系和图像物理坐标系为了便于数学描述将图像平面移动到针孔与世界坐标系之间。
如下图所示。
图3 将相机平面移至针孔与目标物体之间后的模型1.2 坐标系间转换从世界坐标系到相机坐标系:P(X c ,Y c ,Z c )=R(α,β,γ)∗P(X w ,Y w ,Z w )+T每一个世界坐标的对象都可以通过旋转和平移转移到相机坐标系上。
将目标点旋转θ角度,等价于将坐标系方向旋转θ。
如下图所示,是二维坐标的旋转变换,对于三维坐标而言,旋转中绕某一个轴旋转,原理实际与二维坐标旋转相同。
如果,世界坐标分别绕X ,Y 和Z 轴旋转α,β,γ,那么旋转矩阵分别为R (α),R (β),R (γ)图4 坐标旋转原理R (α)=[1000cosα−sinα0sinαcosα] (1-1) R (β)=[cosβ0sinβ010−sinβ0cosβ] (1-2)R (γ)=[cosγsinγ0−sinγcosγ0001] (1-3)总的旋转矩阵就是三者的乘积:R(α,β,γ)=R (α)∗R (β)∗R(γ)平移矩阵T =(t x ,t y ,t z ),t x ,t y ,t z 是世界坐标系原点与摄相机坐标系原点之间的差值。
利用Halcon进行单目标定楼主#更多•只看楼主倒序阅读发布于:2020-01-23 10:12摄像机标定之前,首先要确定相机和镜头的参数,参考对应说明书,查找IMAGING SOUR CE 31BU03相机的参数如下:分辨率1024*768;格式1/3’’;像素尺寸,水平4.65um,垂直4.65um;两个镜头是computar工业自动化镜头,其参数分别是:①焦距5mm,F1.4,尺寸1/2’’,②焦距12mm,F1.4,尺寸2/3’’。
相机和镜头参数作为标定过程中算子StartCa mPar的初值。
标定过程首先,创建标定数据模型,使用算子create_calib_data,实例中为create_calib_data ('cali bration_object', 1, 1, CalibDataID),该算子是为了创建标定数据模型,即标定的数据将存放于CalibDataID中。
其次,设定摄像机的初始化参数,即第一段所提及。
算子为set_calib_data_cam_param (C alibDataID, 0, 'area_scan_division', StartCamPar)。
第三步,描述标定板,,这里标定板名称CaltabName有两种途径获取,使用算子set_calib_data_calib_object (CalibDataID, 0,CaltabName)。
一种途径是直接调用Halcon自带的描述文件(.descr),另一种是通过算子gen_caltab自制标定板,产生描述文件。
标定板描述文件中的标定板信息必须与标定过程中使用的标定板规格、尺寸一致。
第四步,开始标定。
其中又分为两部分,一是找到标定板,二是找到标定点及其位置。
使用算子为find_caltab (Image, Caltab, CaltabName, SizeGauss,MarkThresh, MinDiamMarks)和find_marks_and_pose (Image, Caltab,CaltabName, StartCamPar, StartThresh, Delta Thresh, MinThresh, Alpha,MinContLength, MaxDiamMarks, RCoord, CCoord, StartPose)。
Halcon标定板
什么是Halcon
Halcon是来自德国的一款图像处理软件,在世界范围内广泛使用的机器视觉软件。
是公认的、具有最佳效果的一种图像处理软件。
它源自学术界,有别于市面上一般的商用软件包,事实上这一套软件是由一千多个各自独立的函数,以及底层的数据管理核心构成。
其中包含了各类滤波,色彩以及几何、数学转换,型态学计算分析、校正,分类辨识。
halcon的应用范围几乎没有限制,涵盖医学,遥感探测,监控,到工业上的各类自动化检测。
促成了高科技业,电子业产能的大幅提升。
也是机器视觉用的最多的一种软件。
如何制作Halcon标定板?
以63*63mm的规格举例:
黑色圆点行数:7
黑色圆点列数:7
外边框长度:63mm*63mm
内边框长度:59.0625mm*59.0625mm
即:黑色边框线为一个圆点半径(3.9375)
黑色圆点半径: 3.9375mm
圆点中心间距:7.875mm
裁剪宽度63.875mm*63.875mm
即:由黑色边框向外延伸0.875mm
边角:由黑色外边框向内缩进一个中心边距的长度(7.875mm)
这个就是halcon标定描述文件生成的一个的标定板规格。
Halcon标定板的中心距就是外形尺寸
桂庆光电粟工135-49414687。