前言
相较于普通的针孔相机,鱼眼相机的能够观测到的范围更广,在一定程度上其实是可以增强视觉的鲁棒性的。针对于鱼眼相机的模型其实有挺多的,也有论文对这些模型进行了评测,但对于本人来说,最熟知的还是针孔模型,如果换到其他的模型的话,可能会丈二摸不着头脑。基于此,希望自己能对这些模型有些通透的理解。
畸变的简单介绍
为了获得好的成像效果,相机的前面会加透镜,透镜的加入会使得光的传播发生变化:首先是透镜自身的形状对光线传播的影响,其次是在组装过程中,透镜和成像平面不可能完全平行,这也会使得光线穿过透镜投影到成像平面时的位置发生变化[1]。这里主要有两种畸变,径向畸变主要是由于透镜的形状引起的,而切向畸变是由于相机在组装过程中由于不能使得透镜和成像平面严格平行引起的。
Extended Unified Camera Model
对与EUCM模型来说,它需要标定6个参数

:相机坐标系坐标
:投影平面坐标系坐标(椭球坐标)
:归一化平面坐标系坐标(M平面)
根据上面的坐标、内参和畸变系数可以得到他们之间的关系。
相机坐标到像素坐标
归一化平面坐标
其中
像素坐标
有了归一化平面坐标之后,就可以使用内参进行投影了
像素坐标到相机坐标
在实际情况中,从图像中得到特征点,这是他的像素坐标,如何准确的恢复到世界坐标系中也是很很重要的,畸变的影响会导致它最后反投影的点的结果不准确。
椭球面坐标
该坐标可以通过像素坐标进行转换,假设椭球面坐标
其中
相机坐标
这里的恢复就需要用到两帧图像的对应椭球面坐标进行三角化才可以得到相机坐标,椭球面坐标其实就相当于针孔相机去畸变之后的坐标,根据它得到的路标点才是比较准确的。三角化的过程就不叙述了。
总结
粗略看了一下文献[2]中的代码,它主要的改变其实就是将去畸变坐标变成了椭球面中的坐标,用该坐标来进行投影和反投影,计算基本矩阵和本质矩阵,在优化方面,雅克比矩阵也变化了,改变在g2o的代码中。模型的变化应该就是处理的点的变化,不论是像素坐标还是归一化平面坐标,或者是转化为其他坐标,他们都是为了更好的恢复3D点。看了这篇文章和论文让我对畸变模型有了更好的理解。
参考资料
[1]《视觉SLAM十四讲》高翔、张涛等
[2] Liu, Guo, Feng, et al. Accurate and Robust Monocular SLAM with Omnidirectional Cameras[J]. Sensors, 2019, 19(20):4494.