运行VINS,相机模型与参数的准备

相机模型与参数

对于VINS来说,相机的内参的准确是万分重要的。如果参数不对,那么100%跑飞,没商量。要想VINS可以很好的工作,给出良好的相机内参是必须的。
对于realsense系列的相机,出厂都做好了可靠的标定。对于t265,我们可以在安装好驱动后在终端输入:rs-enumerate-devices -c(D435应该也可以吧),可以得到非常详细的结果。

这里让我们来仔细看一下相机内参的打印结果:

Intrinsic of "Fisheye 1" / 848x800 / {Y8}
  Width:      	848
  Height:     	800
  PPX:        	414.27099609375
  PPY:        	407.440002441406
  Fx:         	287.116394042969
  Fy:         	287.183990478516
  Distortion: 	Kannala Brandt4
  Coeffs:     	-0.0126302903518081  	0.0507939010858536  	-0.0472322292625904  	0.00915194489061832  	0  
  FOV (deg):  	111.8 x 108.6

从打印的信息,我们可以看到,标定采用的畸变模型是Kannala Brandt(也称equi,等距畸变),而成像模型没有说明,但显然是针孔模型整个相机模型=pinhole+equi,在kalibr中的名称为 pinhole-equi,也是opencv默认的鱼眼模型。

除了这种鱼眼模型外,全向模型(Omni)+径向切向畸变(RanTan)MEI模型,也是一种常用的鱼眼模型。

我们常说的针孔模型=pinhole+RanTan。

一般最常见的相机模型就是以上三种,我们在标定相机或者准备config文件时,一定要确定所用的模型先。相机模型,本质上也就是对三维点—>像素点映射的一个拟合。那么模型选择的好坏也就直接影响了我们的标定结果。

关于相机模型的一些更详细的解读资料:

  • SLAM 中常用的相机模型&畸变模型总结:https://blog.csdn.net/OKasy/article/details/90665534
  • 相机的成像模型(Pinhole + Omni)和畸变模型(RanTan, FOV, EQUI):https://blog.csdn.net/qq_40618821/article/details/117966536
  • 代码解读 | VINS_Mono中的鱼眼相机模型 :链接
  • 鱼眼相机投影成像模型和畸变模型:https://zhuanlan.zhihu.com/p/511284263
  • VinsFusion中的MEI模型解析: https://zhuanlan.zhihu.com/p/414047132

相机标定指标与影响因素

我们标定相机内参最常用的指标是重投影误差。重投影误差主要受如下几个因素的影响:

  • 角点的检查精度(一般来说圆点圆心的检测比方形角点的检测精度和鲁棒性都要更高。但是圆点检测存在一个成像平面和标定板平板不平行就会产生偏心误差的问题,这又导致其精度不够好。但是有算法可以把成像的椭圆修正为正圆的话,那么可以消除偏心误差,使其精度就很高)
  • 测量噪声(拍摄时不要运动太快或者手抖,导致运动模糊)
  • 分辨率(由于重投影误差是用像素作为单位的,那么不可避免的,画面分辨率越高,重投影误差也就越大。但是高分辨率的像素其实更小,所以一些所谓的重投影误差的经验值,必须是建立在对应分辨率下的)
  • 优化(优化算法是否好,能否优化到最优值,这个在实际情况中一般可以忽略)
  • 标定板的精度、平整度
  • 数据采集是否覆面积

总结:标定相机内参时:

  1. 一定要选择合适的模型
  2. 保证标定板的质量和较好的光照条件
  3. 足够的数据覆盖足够面积

Ref:

  • bilibili相关公开课程
  • Datta A, Kim J-S, Kanade T. Accurate camera calibration using iterative refinement of control points[C]//2009 IEEE 12th International Conference on Computer Vision Workshops, ICCV Workshops. Kyoto, Japan:IEEE,2009: 1201–1208[2023-01-12].(这篇文章给出了修正圆形检测偏心误差的方法,使其标定精度非常好)

你可能感兴趣的:(python,人工智能,算法)