相机参数估计值如何计算?

作者:书涵

来源:微信公众号|3D视觉工坊(系投稿)

3D视觉精品文章汇总:https://github.com/qxiaofan/awesome-3D-Vision-Papers/

 

在三维重建中,标定是很重要的一环,而在所有标定中,单目相机标定是最基础的,对于新手而言,跑通了一个相机标定代码,得到了一堆参数结果,如何判断自己的标定的是对的呢?RMS(重投影误差)小标定就一定准确吗? 在这篇文章中,笔者将简单聊聊如何在标定之前估算你要标定的相机内参值。以下方法仅针对普通工业相机镜头,鱼眼相机和全景相机不考虑在内。

首先要知道的是,相机标定时,需要优化的参数有,相机内参 – 其中包括 相机“焦距“”(f/dx f/dy)相机图片中心(u0,v0), 相机畸变系数(k1 k2 k3 p1 p2)。由于参与优化的系数较多,在有些情况下,会优化到一个局部最优解上,导致你的RMS看着挺不错的,甚至比较小,但是在实际使用中如去畸变的时候,发现图片变得畸形。或者在双目极线矫正的时候,对应点没有到同一条直线上,这都是因为优化时落入了一个局部最优解。在开始估计参数之前,我们需要知道以下两点,

1 )对普通工业相机镜头来说,畸变系数通常不会很大;

2 )相机内参标定结果应该在理论的线性系统附近(即不考虑畸变下的计算值)

相机图片中心很好理解,它即指的是你图像的中心点,通常是相机分辨率的一半,即如果你的图像像素大小是 800*600,那么你的图像中心应该是(400,300),在接下来的内容中,笔者要重点介绍如何估计相机“焦距”,这个焦距的表达式是 f/dx. 代表着理想焦距/相机像元大小,是一个无单位的值(f 和 dx单位要统一后比值计算)。 由于f是一个理想焦距,它并不是我们拿到的工业镜头的焦距大小,所以不可以拿工业镜头焦距直接代替。 接下来笔者带大家探究下这个理想焦距的实际意义,以及在相机透镜成像系统中,如何估计这个理想焦距f的大小。

相机参数估计值如何计算?

 

图1

相机参数估计值如何计算?

 

图2

在相机标定时我们用的是小孔成像模型,如下图1所示,光透过小孔在成像平面形成物像,在大部分讲相机标定的书中,我们为了使坐标系方便,会把这个模型稍稍做个变形,如图2,把像平面和物平面放到同一侧(虽然违背物理意义,但是很方便建立模型),于是图1中的小孔就是我们通常所说的光心位置,这个位置是一个虚拟位置,不具备实际测量的可能。小孔到像平面的距离就是我们的理想焦距f。

相机参数估计值如何计算?

 

图3

在实际使用时,我们通常会使用如图3所示的透镜系统,此时,图1中的小孔,即是透镜的中心,我们要标定的理想焦距f,则是像平面到透镜中心的距离。

现在我们知道了f的意义,但是不可能实际去量像平面到透镜中心的距离,那如何估计这个值呢?实际上非常简单,使用简单的初中物理知识我们就可以很好的估计了。

在透镜系统中有如下公式:

相机参数估计值如何计算?

 

其中d代表像距,D代表物距,f代表透镜焦距。d即为我们要求得的理想焦距。

f 是我们工业镜头所标示的焦距。D可以通过测量物体对焦时到镜头的距离测得,这样理想焦距d就可以顺利求得啦。 如果觉得用测量的方式求D不是很准,或者不方便测量D,也可以通过测量D/d 的值,并结合上述公式和f求D的大小。

D/d 的求法如下: 找到一个已知长度的物体(标定板即可),拍摄其在对焦时在相机图片中的像素长度(为了更精确要竟可能使物体的长度和图像边长平行),则D/d = 物体的实际长度/(像素长度*像元大小) 注意统一像元大小和实际长度之间的单位。

通过以上计算,我们就可以很快的得到相机的参数估计值,有了这个值,就可以去对比标定的结果,如果相机内参和实际估计值的差别过大的话,即使是RMS看起来很小,也有可能出现较大误差。 这种情况下,可能是标定输入的参数,比如棋盘格的格点长度出错,也可能是畸变陷入了一个奇怪的局部优化点。

以上图片来自网络。如有侵权,联系作者删除!

3D视觉工坊-相机标定交流群

已建立3D视觉工坊-相机标定微信交流群!想要进相机标定交流群的同学,可以直接加微信号:CV_LAB 。加的时候备注一下:研究方向+学校+昵称,即可。然后就可以拉你进群了。

强烈推荐大家关注「3D视觉工坊」今日头条和「3D视觉工坊」微信公众号,可以快速了解到最新优质的3D视觉论文。

在三维重建中,标定是很重要的一环,而在所有标定中,单目相机标定是最基础的,对于新手而言,跑通了一个相机标定代码,得到了一堆参数结果,如何判断自己的标定的是对的呢?RMS(重投影误差)小标定就一定准确吗? 在这篇文章中,笔者将简单聊聊如何在标定之前估算你要标定的相机内参值。以下方法仅针对普通工业相机镜头,鱼眼相机和全景相机不考虑在内。

首先要知道的是,相机标定时,需要优化的参数有,相机内参 – 其中包括 相机“焦距“”(f/dx f/dy)相机图片中心(u0,v0), 相机畸变系数(k1 k2 k3 p1 p2)。由于参与优化的系数较多,在有些情况下,会优化到一个局部最优解上,导致你的RMS看着挺不错的,甚至比较小,但是在实际使用中如去畸变的时候,发现图片变得畸形。或者在双目极线矫正的时候,对应点没有到同一条直线上,这都是因为优化时落入了一个局部最优解。在开始估计参数之前,我们需要知道以下两点,

1 )对普通工业相机镜头来说,畸变系数通常不会很大;

2 )相机内参标定结果应该在理论的线性系统附近(即不考虑畸变下的计算值)

相机图片中心很好理解,它即指的是你图像的中心点,通常是相机分辨率的一半,即如果你的图像像素大小是 800*600,那么你的图像中心应该是(400,300),在接下来的内容中,笔者要重点介绍如何估计相机“焦距”,这个焦距的表达式是 f/dx. 代表着理想焦距/相机像元大小,是一个无单位的值(f 和 dx单位要统一后比值计算)。 由于f是一个理想焦距,它并不是我们拿到的工业镜头的焦距大小,所以不可以拿工业镜头焦距直接代替。 接下来笔者带大家探究下这个理想焦距的实际意义,以及在相机透镜成像系统中,如何估计这个理想焦距f的大小。

相机参数估计值如何计算?

 

图1

相机参数估计值如何计算?

 

图2

在相机标定时我们用的是小孔成像模型,如下图1所示,光透过小孔在成像平面形成物像,在大部分讲相机标定的书中,我们为了使坐标系方便,会把这个模型稍稍做个变形,如图2,把像平面和物平面放到同一侧(虽然违背物理意义,但是很方便建立模型),于是图1中的小孔就是我们通常所说的光心位置,这个位置是一个虚拟位置,不具备实际测量的可能。小孔到像平面的距离就是我们的理想焦距f。

相机参数估计值如何计算?

 

图3

在实际使用时,我们通常会使用如图3所示的透镜系统,此时,图1中的小孔,即是透镜的中心,我们要标定的理想焦距f,则是像平面到透镜中心的距离。

现在我们知道了f的意义,但是不可能实际去量像平面到透镜中心的距离,那如何估计这个值呢?实际上非常简单,使用简单的初中物理知识我们就可以很好的估计了。

在透镜系统中有如下公式:

相机参数估计值如何计算?

 

其中d代表像距,D代表物距,f代表透镜焦距。d即为我们要求得的理想焦距。

f 是我们工业镜头所标示的焦距。D可以通过测量物体对焦时到镜头的距离测得,这样理想焦距d就可以顺利求得啦。 如果觉得用测量的方式求D不是很准,或者不方便测量D,也可以通过测量D/d 的值,并结合上述公式和f求D的大小。

D/d 的求法如下: 找到一个已知长度的物体(标定板即可),拍摄其在对焦时在相机图片中的像素长度(为了更精确要竟可能使物体的长度和图像边长平行),则D/d = 物体的实际长度/(像素长度*像元大小) 注意统一像元大小和实际长度之间的单位。

通过以上计算,我们就可以很快的得到相机的参数估计值,有了这个值,就可以去对比标定的结果,如果相机内参和实际估计值的差别过大的话,即使是RMS看起来很小,也有可能出现较大误差。 这种情况下,可能是标定输入的参数,比如棋盘格的格点长度出错,也可能是畸变陷入了一个奇怪的局部优化点。

以上图片来自网络。如有侵权,联系作者删除!

3D视觉工坊-相机标定交流群

已建立3D视觉工坊-相机标定微信交流群!想要进相机标定交流群的同学,可以直接加微信号:CV_LAB 。加的时候备注一下:研究方向+学校+昵称,即可。然后就可以拉你进群了。

强烈推荐大家关注「3D视觉工坊」今日头条和「3D视觉工坊」微信公众号,可以快速了解到最新优质的3D视觉论文。

posted @ 2021-01-28 10:58  3D视觉工坊  阅读(673)  评论(0编辑  收藏  举报