计算机视觉
图像处理

Halcon标定流程总结

Halcon标定流程

摄像机分两种,一种是面扫描摄像机(Area Scan Camera),一种是线扫描摄像机(Line Scan Camera)。准确来说,叫摄像机系统比较正确。两者的区别我也提一提吧,有些同学可能不知道,所谓的面扫描摄像系统是指可以通过单纯曝光取得面积影像,而线扫描摄像机,必须利用运动速度才能取得影像。
    两种不同的摄像系统由于成像的过程有区别,所以标定的过程也有区别,这里仅讨论面扫描摄像系统。流程如下:
    1、初始摄像机参数:
    startCamPar:=[f,k,Sx,Sy,Cx,Cy,NumCol,NumRow]
    f 焦距
    k 初始为0.0
    Sx 两个相邻像素点的水平距离
    Sy 两个相邻像素点的垂直距离
    Cx、Cy 图像中心点的位置
    NumCol NumRow图像长和宽
    2、caltab_points读取标定板描述文件里面描述的点到X[],Y[],Z[],描述文件由gen_caltab生成。
    3、find_caltab找到标定板的位置
    4、find_marks_and_pose 输出标定点的位置和外参startpose
    5、camera_calibration输出内参和所有外部参数
    到第五步时,工作已经完成了一半,计算出各个参数后可以用map_image来还原形变的图像或者用坐标转换参数将坐标转换到世界坐标中。
    初始参数是0.0195,注意halcon里单位是m
    k是畸变系数,可以初始为0
    sx和sy是相邻像元的水平和垂直距离,1/4″可以查得分别宽和高尺寸是3.2和2.4mm,用320×240去除,得到sx和sy分别是0.01mm,那么应该初始为sx=1.0e-005和sy=1.0e-005,Cx和Cy分别是图像中心点行和列坐标,可以初始化为160和120,最后两个参数是ImageWidth和ImageHeight直接就用320和240。

 

如何制作halcon的标准标定板

方法一:用halcon软件自动生成的.ps文件来制作标定板。

    这个也是最简单有效的方法。

    打开halcon 的HDevelop软件,调用算子:

gen_caltab( : : XNum,YNum,MarkDist,DiameterRatio,CalTabDescrFile,CalTabPSFile : )

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:Program FilesWindows NTAccessories就有写字板软件wordpad.exe)打开后的文件基本如下:

       以40*40为例:

# Plate Description Version 2

# HALCON Version 10.0 —  Mon Dec 19 11:08:07 2011

# Description of the standard calibration plate   标准标定板的描述

# used for the CCD camera calibration in HALCON  

# (generated by gen_caltab)                       (由)gen_caltab算子生成

 

 # 7 rows x 7 columns           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 7

Y方向标志圆点的数量。

# Number of marks in x-dimension (columns)

c 7

X方向标志圆点的数量。

#   offset of coordinate system in z-dimension [meter] (optional):

z 0

Z坐标偏移

# Rectangular border (rim and black frame) of calibration plate

标定板的矩形边框(边缘和黑色边框)

#   rim of the calibration plate (min x, max y, max x, min y) [meter]:

o -0.0205 0.0205 0.0205 -0.0205

标定板的剪切边缘【-0.0205 0.0205 0.0205 -0.0205】(以标定板中心为坐标圆点)

#   outer border of the black frame (min x, max y, max x, min y) [meter]:

i -0.02 0.02 0.02 -0.02

黑色边框的外边缘【-0.02 0.02 0.02 -0.02】

#   triangular corner mark given by two corner points (x,y, x,y) [meter]

#   (optional): 

t -0.02 -0.015 -0.015 -0.02

三角形标志【-0.02 -0.015 -0.015 -0.02】

#   width of the black frame [meter]:

w  0.00125

黑色边框线的宽度:0.00125米。

#  calibration marks:  x y radius [meter]

一下是各个矫正板黑色圆点在标定板上的坐标(共7*7个)

#  calibration marks at y = -0.015 m

-0.015 -0.015 0.00125

-0.01 -0.015 0.00125

-0.005 -0.015 0.00125

0 -0.015 0.00125

0.005 -0.015 0.00125

0.01 -0.015 0.00125

0.015 -0.015 0.00125

 

 

Halcon标定板规格

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标定文件的生成,需要有以下几个步骤:

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_cameras

7.获得标定参数。get_calib_data

8.记录标定参数,write_cam_par

StartCamPar := [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:图像的宽高

转载注明来源:CV视觉网 » Halcon标定流程总结

分享到:更多 ()
扫描二维码,给作者 打赏
pay_weixinpay_weixin

请选择你看完该文章的感受:

2不错 2超赞 2无聊 0扯淡 0不解 0路过

评论 抢沙发

评论前必须登录!