我第一次在opencv中对具有棋盘图案的单个相机进行相机校准。焦点是固定的。我不知道该怎么做,似乎有很多问题:
- 应使用多少张图像进行校准?
- 应该使用什么模式?点数,方格大小
- 应该对校准目标应用哪些转换?旋转、倾斜、移动……
我得出的结论是,以上问题都无法单独回答,因为它们都相互依赖。例如,拍摄大量彼此非常相似的图像在直觉上不如拥有更少的图像更好地分布在帧中。
我往后退了一步,想了想到底是怎么回事。(我试过)基本上,有一个相机及其像差(焦距、失真等)的数学模型,校准是收集数据以使模型(其值)适合手头硬件的过程。这似乎主要是统计数据。为了使模型很好地适应整个图像,应该从整个图像中收集样本数据。
我得出结论,以上所有问题都归结为图案的可检测点应如何分布在 3D 空间中。
我想知道这个想法是否有意义。
我厌倦了阅读诸如“图像越多越好”、“至少应该使用任意数量的图像”等无法为校准质量提供量化衡量标准的建议。当然,有一个重投影误差,它说明校准与提供的校准数据的匹配程度,但不是该数据首先适合校准的程度。
我得出的结论是,通过用于创建校准的样本数据的分布来评估校准的质量更有意义。说得通?
因此,上面的问题 1 和 2 合并为:在所有校准图像中检测到的校准点的总体密度(或密度分布)应该是多少?
假设我从所有校准图像中取出所有检测到的点并将它们放在一张图像中,我可以看到每个像素区域有多少校准点.如果我有很多图像中心有图案的图像,我会在那里得到更高的密度。
每个像素区域的校准点密度的最小(基线)值是多少? ??
每个像素区域的校准点分布是否应该在整个图像上保持不变?或者我是否需要在边缘更高的密度(阅读:更多的样本值)?
问题 3 是要求第三维度的分布。带有图案的校准目标可以前后移动(沿光轴)或倾斜。两种转换都会导致校准点位于焦点1的平面的前面或后面。根据景深,可以检测到距焦平面一定距离的角点。这为可以检测校准点的空间增加了第三维。 校准点应如何根据距焦平面1的距离分布?鉴于远离焦点的点的检测效果不佳,大多数点是否应该在焦点1周围?
tl,博士;
在摄像头前面,有一个 3D 空间,由一个棱锥体/圆锥体包围,可以在其中检测校准点。为了获得良好的校准,校准点应如何分布在该空间中?
1我的意思是在图像中“聚焦”的点平面。