基于张正友标定法的相机标定实验(主页有word版)
一、实验目的
1、通过使用张正友标定法对摄像机进行标定,确定摄像机的内参数和外参数。
2、了解相机的几何模型,从而实现对三维场景的准确重建和测量。
二、实验器材
1、手机相机
2、棋盘格标定板
3、计算机(用于图像处理和标定计算)
4、OpenCV标定工具
三、 张正友标定法原理
张正友标定法(Zhang Zhengyou Calibration Method)是一种广泛应用的摄像机标定方法,基于多张具有已知几何特征的平面图像,推导出摄像机的内参数和外参数。
相机的数学模型可以用针孔模型来近似。该模型的基本参数包括:
内参数(Intrinsic Parameters):描述相机的内部几何和光学特性,例如焦距、主点位置、镜头畸变系数等。
外参数(Extrinsic Parameters):描述相机相对于世界坐标系的旋转和位移情况。
张正友标定法的核心思想是通过多幅图像上已知的几何特征点与其对应的图像点之间的关系,建立一组线性方程,通过最小二乘法进行求解,得到相机的内参和外参。
数学上,张正友标定法的基本公式如下:



通过一组二维-三维点对,利用最小二乘法可以求解内外参数,并进一步优化镜头畸变模型。
四、实验步骤
4.1 整体流程

4.2图像采集
1、准备一块带有棋盘格图案的标定板,确保其几何尺寸已知。
2、使用相机从不同角度和距离拍摄多张标定板图像,尽量覆盖标定板的不同姿态,以便于提取特征点。
3、确保图像质量良好,避免模糊或过度曝光。使用手机相机拍摄的棋盘格标定板如图4-2所示。

4.3特征点提取
1、使用 OpenCV的findChessboardCorners函数自动检测每幅图像中的棋盘格角点位置,作为图像特征点。
2、如果角点提取不准确,可以通过cornerSubPix函数进一步细化角点位置,提高精度。
4.4相机标定
1、利用检测到的二维角点和已知的三维世界坐标点,调用OpenCV提供的 calibrateCamera 函数进行标定计算。
2、calibrateCamera 函数会输出摄像机的内参数矩阵和镜头畸变系数 ,同时还会输出每幅图像对应的外参,即旋转矩阵和位移向量 。
特征点提取后的图像如图4-3所示

4.5畸变校正
1、根据标定结果中的畸变系数,使用 undistort 函数对拍摄的图像进行畸变校正,使图像恢复到无畸变状态。
2、对比校正前后的图像,验证标定和畸变校正的效果。
五、 实验结果


对每幅图像,标定输出对应的旋转矩阵和平移向量,用于描述相机在拍摄该图像时相对于标定板的姿态。


六、实验结论
6.1标定结果的准确性与图像数量的关系
使用更多的标定图像,尤其是在不同的角度和姿态下拍摄棋盘格或标定靶标,能够有效提高标定精度。图像越多,标定的平均重投影误差越低。
实验中使用10张以上不同角度和距离的图像,平均重投影误差能降低到亚像素级。
6.2标定图像的分布与角度多样性对标定结果的影响
实验表明,标定图像中的棋盘格图案应尽量覆盖整个图像范围,并应包含不同的倾斜角度。拍摄棋盘格时,不仅要从正面拍摄,还应当从多个角度(如倾斜、旋转)拍摄,这样可以有效减少畸变参数估计中的误差。若标定图像的角度和位置分布单一,则会导致标定精度下降,尤其是畸变系数计算不准。
6.3重投影误差的评估
实验中,OpenCV提供的 cv2.calibrateCamera() 函数可以直接返回平均重投影误差(reprojection error)。实验结果表明,经过适当的棋盘图像采集后,重投影误差可以控制在0.2像素左右。若误差超出0.5像素,可能需要检查角点检测的精度,或重新采集标定图像。
6.4畸变系数的准确性
实验结果显示,张正友标定法能够有效估计相机的径向和切向畸变系数。在畸变严重的图像中,通过标定法校正后的图像变形显著减小,尤其是径向畸变的修正效果明显。
6.5OpenCV 工具的使用简便性:
实验使用的OpenCV 提供全面的相机标定工具,函数 cv2.findChessboardCorners() 用于自动检测棋盘格角点,cv2.calibrateCamera() 用于标定参数估计,使用简单,能大幅简化标定流程。除此之外OpenCV 的标定函数执行高效,能够快速计算内参和外参,并返回标定误差。
总之,通过张正友标定法,成功获得了摄像机的内参数矩阵和畸变系数,验证了相机的几何模型。实验过程中,内参数的精度取决于标定图像的质量和角点检测的精确度。畸变校正后的图像与原始图像相比,明显减少了畸变,证明标定过程的有效性。
更多推荐


所有评论(0)