相机标定方法汇总文档格式.docx
- 文档编号:17525054
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:18
- 大小:1.76MB
相机标定方法汇总文档格式.docx
《相机标定方法汇总文档格式.docx》由会员分享,可在线阅读,更多相关《相机标定方法汇总文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
提示角点拾取窗大小,我选择了默认的5*5
弹出角点拾取窗口界面,拾取4个边界点:
提示输入方格的x向和y向的实际尺寸,这里的棋盘格实际大小为30mm*30mm,以及X向和Y向的方格个数,输入5和8,设置后得到角点提取的效果:
后续的12张图片进行同样的操作。
(后续MATLAB自己出了个标定工具箱cameracalibrator,以及opencv、halcon的角点都是自动提取,稍后详细说明)
完成后点击calibration进行初始标定
标定的初始化如下:
Calibrationparametersafterinitialization:
FocalLength:
fc=[532.49170532.49170]
Principalpoint:
cc=[319.50000239.50000]
Skew:
alpha_c=[0.00000]=>
angleofpixel=90.00000degrees
Distortion:
kc=[0.000000.000000.000000.000000.00000]
得到的标定结果如下:
Calibrationresultsafteroptimization(withuncertainties):
fc=[534.97637536.20121]+/-[3.719843.92117]
cc=[343.26051233.07723]+/-[4.116434.58569]
alpha_c=[0.00000]+/-[0.00000]=>
angleofpixelaxes=90.00000+/-0.00000degrees
kc=[-0.320750.273000.00104-0.000740.00000]+/-[0.020400.073720.001030.001260.00000]
Pixelerror:
err=[0.55364
0.23137
]
这里对这5个参数进行说明
(详见链接http:
//www.vision.caltech.edu/bouguetj/calib_doc/htmls/parameters.html)
(1)fc为焦距的像素尺寸,计算为F/DX,F/DY,F为几何焦距尺寸,DX,DY为像元尺寸。
(2)cc为光心在图像坐标系下的图像坐标
(3)alpha_c倾斜系数,反映X和Y像素轴的夹角
(4)kc畸变系数,这里有5个,前两个和最后一个为径向畸变,第三和第四个为切向畸变,一般第五个为0,切向畸变也很小
(5)err像素误差,可以看到这里小于一个像素尺寸
点击showextrinsic,得到相机和标定板的相对位置关系:
点击reprojectonimages,根据当前标定的结果和棋盘世界尺寸,得到投影到图像上的角点图
误差图
点击analyseerror,对误差进行分析
点击图上点得到相关信息,一种颜色代表一副图,随机点击绿色点
Selectedimage:
3
Selectedpointindex:
18
Patterncoordinates(inunitsof(dX,dY)):
(X,Y)=(5,6)
Imagecoordinates(inpixel):
(449.80,357.74)
Pixelerror=(0.85299,0.66929)
Windowsize:
(wintx,winty)=(5,5)
初次标定的效果还算满意,进行一次recomp.corners,对角点进行校正,一路空格。
然后再次标定,得到结果
fc=[533.09010533.21564]+/-[1.203471.26428]
cc=[342.48318233.86838]+/-[1.344571.48320]
kc=[-0.290000.100440.00121-0.000160.00000]+/-[0.006460.022560.000320.000410.00000]
err=[0.136820.13975]
效果好了很多
点击save保存标定结果Calib_Results.mat,以供后续的双目标定。
个人感觉此方法标定结果效果更优,可以将MATLAB标定结果转为opencv可处理的xml文件后在vs下进行编程。
工具界面后两排都是一些简单操作,我也简单介绍下
第三排是基本操作:
加减图、保存标定结果、载入标定结果、退出
第四排是小步操作:
获取单图外参、矫正图像、输出标定数据、显示标定结果
这里说下前两个,后两个就是点来看看,不说了
第一个comp.extrinsic是获取单图片的外参,这一步需要相机的标定结果,根据结果获得相机和该图的位置关系。
点击后得到comp.extrinsic后
输入图像的全名,不带格式,第二个提示为格式
然后操作如上,完成后得到以棋盘为世界坐标的相机-世界坐标的外参
Extrinsicparameters:
Translationvector:
Tc_ext=[70.077058-137.151501379.099782]
Rotationvector:
omc_ext=[-0.341265-2.9484100.719537]
Rotationmatrix:
Rc_ext=[-0.9712470.194743-0.136943
0.2359330.864274-0.444260
0.031840-0.463796-0.885370]
err=[0.114550.17418]
参数说明:
(1)Tc_ect为平移矢量,这里相机模型不再详述
(2)omc_ext为旋转矢量
(3)Rc_ext为旋转矩阵,Rc_ext=rodrigues(omc_ext).这里进行了
rodrigues变换
(4)err为像素误差
世界坐标系见图,Z轴的标注被吃了:
第二个为undistortimage
得到矫正后的图像,并会保存在标定图集的路径下。
经过以上步骤,单目标定结束
点击exit退出
然后标定右相机,做好将左右图集用两个文件夹保存,得到标定结果文件。
对两个结果文件重命名,加标注left和right
——————————————————————————————————————————————————————————————————————————
1.2双目标定
打开stereo_gui.m
操作界面:
点击loadleftandrightcalibrationfiles
载入左右标定文件,根据提示输入
然后运行runstereocalibration,进行全局优化的双目标定(?
为正负号)
Stereocalibrationparametersafteroptimization:
Intrinsicparametersofleftcamera:
fc_left=[533.56169533.59560]�[0.925190.94450]
cc_left=[342.53093234.76465]�[1.350471.34582]
alpha_c_left=[0.00000]�[0.00000]=>
angleofpixelaxes=90.00000�0.00000degrees
kc_left=[-0.288660.093660.00120-0.000140.00000]�[0.006810.023890.000310.000370.00000]
Intrinsicparametersofrightcamera:
fc_right=[536.89174536.47377]�[0.973350.96952]
cc_right=[327.39289249.94526]�[1.440081.30625]
alpha_c_right=[0.00000]�[0.00000]=>
kc_right=[-0.290100.10622-0.000510.000100.00000]�[0.005310.009580.000250.000620.00000]
Extrinsicparameters(positionofrightcamerawrtleftcamera):
om=[0.007150.00427-0.00351]�[0.002980.003360.00032]
T=[-99.813271.10181-0.14312]�[0.154690.124240.54609]
om表示右摄像头相对于左摄像头的旋转角度,即以左相机为参考系
T表示右摄像头相对于左摄像头的平移量,也以左相机为参考系
得到两相机的相对位置
点击savestereocalibrationresults保存双目标定结果,即完成了MATLABcalibrationtoolbox工具箱的双目标定。
2.MATLAB更新的应用stereocameracalibrator
本人使用MATLAB2015版
然后自动提取角点,得到对应图像对。
这里该工具箱需要保证标定板的X向和Y向的方格数要有一个为偶数,一个为奇数。
结果只检测到7组
该工具设长轴为X轴
点击标定,得到reprojectionerrors和extrinsics
点击输出标定参数
得到标定的结果
可以看到有相机内参数、两相机的旋转平移矩阵、基础矩阵、本质矩阵、平均投影误差、标定数量、角点数、单位
点击cameraParameters,查看左相机的内参数
径向畸变,切向畸变,世界点,单位,扭曲系数,径向畸变参数,切向畸变参数,7张图的平移矢量,7张图的投影误差,7张图的旋转矢量,图片数量,内参数矩阵,焦距的像素尺寸,主点的像素坐标,倾斜系数,平均投影误差,投影点,7张图的旋转矩阵
生成mat文件运行得到标定结果
Camera1Intrinsics
-------------------
Focallength(pixels):
[534.3513+/-0.4050534.3210+/-0.3959]
Principalpoint(pixels):
[341.4583+/-0.5920235.1254+/-0.5816]
Radialdistortion:
[-0.2940+/-0.00280.1218+/-0.0092]
Camera2Intrinsics
[537.2223+/-0.4180536.8958+/-0.4019]
[325.8371+/-0.6577251.4986+/-0.5598]
[-0.2894+/-0.00180.1048+/-0.0040]
PositionAndOrientationofCamera2RelativetoCamera1
---------------------------------------------------------
Rotationofcamera2:
[1.0000+/-0.00120.0032+/-0.00140.0050+/-0.0001]
Translationofcamera2(mm):
[-99.7254+/-0.07081.2402+/-0.05800.0645+/-0.2536]
可以看出和calibrationtoolbox的功能基本一致,角点的提取更加智能化,但提取的效果不是很理想,13张图只检测到了7张,使用上会更加方便
(这里reject的图片过多,怎么提高检测数量希望向大家请教)
3.opencv相机标定
opencv相机标定的参考很多,这里就不再给出链接,自行XX
大概步骤如下:
(1)opencv标定需要对图像的大小,角点的个数,方格的实际尺寸,图像的数量,棋盘的世界坐标等等进行初始化
(2)使用findChessboardCorners进行角点的提取
(3)使用cornerSubPix提取角点子像素级精度
(4)保存每幅图片的角点和世界坐标点
(5)使用calibrateCamera进行单相机的标定
(6)使用
stereoCalibrate进行双目标定
这里对calibrateCamera的标定标志位进行注释
//标志位
/*CV_CALIB_USE_INTRINSIC_GUESS-内参数矩阵包含fx,fy,cx和cy的初始值。
否则,(cx,cy)被初始化到图像中心(这儿用到图像大小),焦距用最小平方差方式计算得到。
注意,如果内部参数已知,没有必要使用这个函数,使用cvFindExtrinsicCameraParams2则可。
CV_CALIB_FIX_PRINCIPAL_POINT-主点在全局优化过程中不变,一直在中心位置或者在其他指定的位置(当CV_CALIB_USE_INTRINSIC_GUESS设置的时候)。
CV_CALIB_FIX_ASPECT_RATIO-优化过程中认为fx和fy中只有一个独立变量,保持比例fx/fy不变,fx/fy的值跟内参数矩阵初始化时的值一样。
在这种情况下,(fx,fy)的///实际初始值或者从输入内存矩阵中读取(当CV_CALIB_USE_INTRINSIC_GUESS被指定时),或者采用估计值(后者情况中fx和fy可能被设置为任意值,只有比值被使用)。
CV_CALIB_ZERO_TANGENT_DIST–切向形变参数(p1,p2)被设置为0,其值在优化过程中保持为0。
*/
尺寸设为30,单位为mm。
角点提取的效果如下:
4.halcon标定
对于halcon软件,目前才开始学习。
只是跑过示例,了解不多
一般步骤:
(1)初始化参数
(2)使用
find_caltab找到标定板区域
(3)使用find_marks_and_pose确定标定点坐标和相机外参
(4)使用disp_caltab显示投影的标志点,并连线
(5)使用binocular_calibration进行双目标定
binocular_calibration(X,Y,Z,RowsL,ColsL,RowsR,ColsR,StartCamParL,StartCamParR,StartPosesL,StartPosesR,'
all'
CamParamL,CamParamR,NFinalPoseL,NFinalPoseR,cLPcR,Errors)
(6)得到左、右相机的内参数和相对位姿、误差如下:
errors为0.0154181,这里拍摄的标定图片效果很好,精度很高
以上便是目前常用的几种标定方法。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 相机 标定 方法 汇总