视觉SLAM14精讲——相机与图像3.2

视觉SLAM14精讲

  1. 三维空间刚体运动1.0
  2. 三维空间刚体运动1.1
  3. 三维空间刚体运动1.2
  4. 李群与李代数2.1
  5. 相机与图像3.1

视觉SLAM14精讲——相机与图像3.2

畸变

相机畸变是相机镜头光学缺陷所致的缺陷, 在光学领域这种问题是没办法百分百被消除的。在标定过程中,通过对棋盘格角点的识别,从而计算得到畸变参数,这些畸变参数能将被扭曲的点重新映射会原本的位置。纠正后的图像,直线横平竖直。

有关重投影误差

在标定过程中最重要的指标是重投影误差。但是这个数据是一个统一的最终指标。简单来说它既不够直观,也不能真正反映整体的效果。

  • 首先,重投影误差不能反映局部缺陷。 畸变矫正存在局部缺陷比较大的情况,比如其余区域的畸变控制的比较好,总体的重投影误差可以呈现出低于标准的水平。但实际上,我们甚至可以容忍整体都携带一些程度较低的畸变,而使得图像变得平滑可用,也不会用部分畸变严重到物体扭曲的结果。这些局部扭曲会导致AI识别、分割等功能完全失效。
  • 其次,重投影误差不够直观。 很难描述,重投影误差在2,1, 以及0.5个像素时,图像所呈现的效果。在这里有个小窍门,如果是批量不大的标定结果,建议直接上尺子量屏幕,衡量出现在图像中的直线的平直程度。买了曲面屏的不要来找我。
缩放

上一章讨论了图像缩放时对内参的影响。好消息是图像缩放对畸变参数不造成影响。原因在原著5.1.2里面说的很清楚:

[ x d i s t o r t e d , y d i s t o r t e d ] T [x_{distorted}, y_{distorted}]^T [xdistorted,ydistorted]T是即便后点的归一化坐标。

也就是说,畸变矫正的操作是在去除了内参影响之后进行的。图像缩放的影响已经在内参矩阵层面得到消除,对应的畸变参数不发生变化。

实际使用

关于畸变的实际使用,主要讲解opencv接口。不同标定算法,对应不同的长度。不同相机模型,对应不同接口。

  • 对于接口。笔者推荐直接使用官方英文文档https://docs.opencv.org/,不要使用CXDN的二手中文贴。这些接口都是较早在opencv中集成,所以不要太在意版本,随便点一个进入。我们随便选一个比较新的。
    在这里插入图片描述
    有上方输入initUndistortRectifyMap,我们会看到三个选项:
    在这里插入图片描述
    后面两个对应的是鱼眼相机以及全景相机。这里不得不提到,如果是120度以内的鱼眼镜头,使用传统5个参数以内的算法(第一个函数),还是可以标出来的。到140度就会有较大的失败率。此时最好按照鱼眼的方法进行标定以及畸变矫正。

点击进入后,英语练一练,无需多说。函数的输入输出,不同语言的版本,甚至原理公式推导以及相关文献均有详细解释。系列往后也会一直使用该文档对opencv相关的内容进行讲解。
在这里插入图片描述
在这里插入图片描述

  • 31
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值