张正友相机标定法原理研究

张正友相机标定法原理研究

通过一种计算方法,标定相机的内参和外参;其中相机的外参 就是世界坐标系到相机坐标系的下的变换矩阵{R,T},相机的内参包括fx,fy,Cx,Cy、径向畸变参数(k1,k2,k3)及切向畸变参数(p1,p2); *相机标定的过程,就是旨在用软件算法去补偿硬件制造误差的过程。*张正友标定法是一个求解的过程。

原理分析

将世界坐标系中的点P(Xw,Yw,Zw)变换到相机坐标系上的点P(Xc,Yc,Zc)


将P点从相机坐标系转到相机平面坐标系中的坐标(将点移动到坐标平面上,缩进Z向)

将P点从相机坐标平面坐标系转到图像像素平面坐标系

如何求解:单应性矩阵与棋盘格标定法

将上面公式中的过程矩阵,转换成单应性矩阵,单应性不严谨的定义:用 [无镜头畸变] 的相机从不同位置拍摄 [同一平面物体] 的图像之间存在单应性,可以用 [透视变换] 表示 。

H即我们说的单应性矩阵(Homography),是相机内外参数的混合矩阵,用来描述物体在世界坐标系和像素坐标系下的映射关系。可以发现单应性矩阵是一个3×3矩阵。(但只有8个自由度)

这里 r1​,r2​ 是旋转矩阵 R 的前两列,s 是齐次坐标的比例因子,比例因子 s 本质上就是 1 / Zc​​。

这个内参矩阵 M 的形式,是由相机成像的几何过程一步步推导出来的,每一项都对应一个物理意义。我们可以把它拆解成三个核心变换:

轴倾斜参数 γ 只出现在 x′ 的表达式中,而不在 y′ 中,这是由我们对倾斜几何的定义决定的。简单来说,这是一个约定俗成的数学建模选择,而不是物理定律。我们可以从以下几个层面来理解:

总结

γ 只出现在 x′ 中,是因为我们定义了 x 轴是倾斜的那个轴,y 轴是基准。

这是一个为了简化模型而做出的合理假设,在绝大多数实际场景中都足够精确。

从数学上讲,这是一个自由度的取舍问题,我们牺牲了一点通用性,换来了更鲁棒、更易于求解的标定模型。

单应性矩阵求解

已知棋盘格的第一个内角点为世界坐标原点,即(0,0,0),程序中写入棋盘格的格子尺寸入25mm,OpenCV 函数 findChessboardCorners将自动确定其他角点坐标。而像素坐标可以通过图像处理进行确定。

在相机标定(如棋盘格标定)的单应性矩阵求解中,这里的 (xi​,yi​) 指的是世界坐标系下的平面点坐标,而 (xi′​,yi′​) 是对应的图像像素坐标。

(wx​,wy​)∈R2⟺(x,y,w)∈P3:意思是:三维射影空间里的一个齐次点 (x,y,w),对应到二维欧氏空间里的普通点就是 (wx​,wy​);反过来,任何一个二维点 (x′,y′) 都可以写成三维齐次点 (x′,y′,1) 的形式。

所以为了求解单应性矩阵,我们需要确保一张棋盘格图像里面至少有四个角点,得到8个方程。但在实际中,为了更为精确,我们的每幅图像的角点数量可能远超4个,并且会使用多幅不同角度位置的棋盘格图像。

相机内参数求解

对于每幅棋盘格图像,我们都将得到一个单应性矩阵H。那么如何从H求出内外参数呢?回顾公式,可以发现内参矩阵M和旋转向量r1和r2有关,而r1和r2存在两个关系:正交和模长相等且为1.

也就是说,拍摄一幅角点数大于4的棋盘格图像,我们可以利用纯数学计算得到一个单应性矩阵H,而一个单应性矩阵H,可以得到两个关于内参矩阵M的方程。

可以发现,B的转置是一个对称矩阵,也就是有6个待求参数,那么需要6个方程,也即三个单应性矩阵。这样就可以解出内参矩阵M。

相机外参求解

复制代码
解出单应性矩阵和内参数后,可以继续求解外参数。

通过上述步骤,成功解算出了的相机参数。但是你有没有注意到一个问题,我们在进行角点匹配的时候,外部棋盘格角点的坐标是真实准确的,而利用图像处理技术得到的角点像素坐标其实隐含了镜头畸变的影响(透镜成像)。也就是说,我们利用隐含了畸变影响的角点像素坐标,计算出了相机内外参数。

但实际上,相机外部参数不应该受镜头畸变影响,外参只是将世界坐标系变换成了相机坐标系。所以我们说得到的相机外参是不准确的,或者说被污染了,被污染的相机外参又反过来影响了相机内参的准确性。

这样以来,或许我们的内外参矩阵在角点上表现良好,但在其他位置可能依然存在失真。因为我们得到的理论参数完全是一个线性模型,而在有畸变的情况下应该是一个非线性模型。所以需要进行矫正。

利用重投影误差进行畸变矫正

我们的目标是找到一组最优参数 ,使得所有角点的"实际观测像素"与"理论投影像素"之间的欧氏距离平方和最小。

八、总结

整个标定过程分为两个部分,第一部分程序数学计算得到初始的被污染的参数;第二阶段利用被污染的参数并引入畸变系数得到预测值,利用目标函数和优化算法来逐步减少预测值和真实值的误差,不断更新参数,最后得到一个较为良好的内参外参和畸变系数。

相关推荐
芯门7 小时前
FPGA商用级ISP(三):自动白平衡(AWB)算法实现与 FPGA 架构解析
图像处理·计算机视觉·fpga开发
aaaffaewrerewrwer1 天前
2026年常用HEIC转JPG在线工具推荐(支持批量转换)
服务器·图像处理
youcans_1 天前
【跟我学YOLO】YOLO26(3)安装配置与快速使用
图像处理·yolo·目标检测·计算机视觉·环境配置
Coding茶水间2 天前
基于深度学习的番茄叶子病虫害监测系统演示与介绍(YOLOv12/v11/v8/v5模型+Pyqt5界面+训练代码+数据集)
图像处理·人工智能·python·深度学习·yolo·目标检测
IRevers2 天前
【YOLO】YOLO-Master 腾讯轻量级YOLO架构超越YOLO-13(含检测和分割推理)
图像处理·人工智能·pytorch·python·yolo·transformer·边缘计算
嵌入式-老费2 天前
Linux camera驱动开发(特殊的cpu+fpga芯片)
图像处理·驱动开发·fpga开发
BackCatK Chen2 天前
无方向盘、无踏板!特斯拉Cybercab下线:自动驾驶的终极形态来了?
图像处理·人工智能·机器学习·自动驾驶·视觉检测·能源·制造
AomanHao3 天前
【ISP】基于暗通道先验改进的红外图像透雾
图像处理·人工智能·算法·计算机视觉·图像增强·红外图像
Coding茶水间4 天前
基于深度学习的猪识别系统演示与介绍(YOLOv12/v11/v8/v5模型+Pyqt5界面+训练代码+数据集)
图像处理·人工智能·python·深度学习·yolo·目标检测