7

我正在使用广角镜头(178º对角线FOV),并试图使用Opencv校准模块进行正确校准。所有的检测和校准过程都正常,但结果很差。使用Opencv进行广角镜头校准

我已经尝试了许多不同的配置:

  • 不同组图像
  • 不同径向系数编号:2,3,4,5甚至6.(CV_CALIB_FIX_K1,...,CV_CALIB_FIX_K6)
  • 将主点和切向失真固定为0(CV_CALIB_FIX_ASPECT_RATIO,CV_CALIB_FIX_PRINCIPAL_POINT)
  • 将预期焦距用作初始相机矩阵。 (CV_CALIB_USE_INTRINSIC_GUESS)

我能得到的最好的是一样的东西:Bad calibration

任何想法,我怎么能得到一个好的校准? 您是否认为同时使用两种校准模式,或使用圆形网格作为校准模式会有所帮助?

我见过在opencv 3.0中添加了薄棱镜coeffs。我没有尝试过,但我认为不会有所作为,对吧?编辑:检查它...没有什么

+0

您是否将图像与校准目标放置在视野的边界(左上角,右上角等)中? –

+0

是的,我做到了。我实际上有很多带有棋盘四周的图像...您可以在这里查看我使用的数据集之一:[https://dl.dropboxusercontent.com/u/31166777/images.rar] –

回答

1

自从Opencv 2.4.10及以上版本以来,广角/鱼眼镜头有一个特殊的畸变模型能够处理这种强烈的径向畸变。我用我的数据集进行了测试,结果非常好。

3

也许相机/镜头模型的OpenCV没有足够准确地描述你的超广角镜头。所以也许你必须放弃内置的OpenCV校准程序并编写自己的校准程序。

例如谷歌搜索给我:

Kanatani, K., "Calibration of Ultrawide Fisheye Lens Cameras by Eigenvalue Minimization," Pattern Analysis and Machine Intelligence, IEEE Transactions on , vol.35, no.4, pp.813,822, April 2013

摘要:本文提出了一种新技术,用于通过强加的约束校准超宽鱼眼 镜头相机是共线点是 整流共线,平行线是平行的,并且正交线是正交的。利用拟合线 降低到3D中的特征值问题,我们通过严格的摄动分析来获得实际的校准程序。 做实验时,我们指出,假设仅存在 共线性和并行性,则存在虚假解。我们的技术有许多理想的属性。例如,关于参考图案或相机位置不需要度量信息 ,并且单独的条纹图案可以显示在视频屏幕上以生成虚拟网格,从而消除了网格点提取处理。

2

您是否确定要使用CV_CALIB_RATIONAL_MODEL标志?这将告诉OpenCV使用支持广角镜头的模型。

这里是my suggestions 150度镜头。你也可以考虑尝试April Cal,我已经有了不错的运气。

1

我对鱼眼镜头没有任何经验,但如果您打算将图像映射到透视投影,您将遇到麻烦。图像的大视角部分将映射到图像平面上非常远的距离。这可能会导致像您提供的图像。肯定有一些错误,但似乎大多数直线“世界线”映射到直线“图像线”。

您对结果的期望是什么,以及您计划如何使用此校准?

1

鱼眼镜头具有不同的失真建模。要校准鱼眼摄像机,请使用opencv鱼眼模块。见opnecv docs