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

2024-06-12 10:28

本文主要是介绍视觉SLAM14精讲——相机与图像3.2,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

视觉SLAM14精讲

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

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

  • 视觉SLAM14精讲
      • 畸变
        • 有关重投影误差
        • 缩放
        • 实际使用

畸变

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

有关重投影误差

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

  • 首先,重投影误差不能反映局部缺陷。 畸变矫正存在局部缺陷比较大的情况,比如其余区域的畸变控制的比较好,总体的重投影误差可以呈现出低于标准的水平。但实际上,我们甚至可以容忍整体都携带一些程度较低的畸变,而使得图像变得平滑可用,也不会用部分畸变严重到物体扭曲的结果。这些局部扭曲会导致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相关的内容进行讲解。
在这里插入图片描述
在这里插入图片描述

这篇关于视觉SLAM14精讲——相机与图像3.2的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1053950

相关文章

基于人工智能的图像分类系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 图像分类是计算机视觉中的一个重要任务,目标是自动识别图像中的对象类别。通过卷积神经网络(CNN)等深度学习技术,我们可以构建高效的图像分类系统,广泛应用于自动驾驶、医疗影像诊断、监控分析等领域。本文将介绍如何构建一个基于人工智能的图像分类系统,包括环境

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模

前言 本系列教程旨在使用UE5配置一个具备激光雷达+深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础,Nav2相关的学习教程可以参考本人的其他博客Nav2代价地图实现和原理–Nav2源码解读之CostMap2D(上)-CSDN博客往期教程: 第一期:基于UE5和ROS2的激光雷达+深度RG

计算机视觉工程师所需的基本技能

一、编程技能 熟练掌握编程语言 Python:在计算机视觉领域广泛应用,有丰富的库如 OpenCV、TensorFlow、PyTorch 等,方便进行算法实现和模型开发。 C++:运行效率高,适用于对性能要求严格的计算机视觉应用。 数据结构与算法 掌握常见的数据结构(如数组、链表、栈、队列、树、图等)和算法(如排序、搜索、动态规划等),能够优化代码性能,提高算法效率。 二、数学基础

Verybot之OpenCV应用一:安装与图像采集测试

在Verybot上安装OpenCV是很简单的,只需要执行:         sudo apt-get update         sudo apt-get install libopencv-dev         sudo apt-get install python-opencv         下面就对安装好的OpenCV进行一下测试,编写一个通过USB摄像头采

《计算机视觉工程师养成计划》 ·数字图像处理·数字图像处理特征·概述~

1 定义         从哲学角度看:特征是从事物当中抽象出来用于区别其他类别事物的属性集合,图像特征则是从图像中抽取出来用于区别其他类别图像的属性集合。         从获取方式看:图像特征是通过对图像进行测量或借助算法计算得到的一组表达特性集合的向量。 2 认识         有些特征是视觉直观感受到的自然特征,例如亮度、边缘轮廓、纹理、色彩等。         有些特征需要通

【python计算机视觉编程——7.图像搜索】

python计算机视觉编程——7.图像搜索 7.图像搜索7.1 基于内容的图像检索(CBIR)从文本挖掘中获取灵感——矢量空间模型(BOW表示模型)7.2 视觉单词**思想****特征提取**: 创建词汇7.3 图像索引7.3.1 建立数据库7.3.2 添加图像 7.4 在数据库中搜索图像7.4.1 利用索引获取获选图像7.4.2 用一幅图像进行查询7.4.3 确定对比基准并绘制结果 7.

参会邀请 | 第二届机器视觉、图像处理与影像技术国际会议(MVIPIT 2024)

第二届机器视觉、图像处理与影像技术国际会议(MVIPIT 2024)将于2024年9月13日-15日在中国张家口召开。 MVIPIT 2024聚焦机器视觉、图像处理与影像技术,旨在为专家、学者和研究人员提供一个国际平台,分享研究成果,讨论问题和挑战,探索前沿技术。诚邀高校、科研院所、企业等有关方面的专家学者参加会议。 9月13日(周五):签到日 9月14日(周六):会议日 9月15日(周日

海鸥相机存储卡格式化如何恢复数据

在摄影的世界里,‌每一张照片都承载着独特的记忆与故事。‌然而,‌当我们不慎将海鸥相机的存储卡格式化后,‌那些珍贵的瞬间似乎瞬间消逝,‌让人心急如焚。‌但请不要绝望,‌数据恢复并非遥不可及。‌本文将详细介绍在海鸥相机存储卡格式化后,‌如何高效地恢复丢失的数据,‌帮助您重新找回那些宝贵的记忆。‌ 图片来源于网络,如有侵权请告知 一、‌回忆备份情况 ‌海鸥相机存储卡格式化如何恢复数据?在意

【python计算机视觉编程——8.图像内容分类】

python计算机视觉编程——8.图像内容分类 8.图像内容分类8.1 K邻近分类法(KNN)8.1.1 一个简单的二维示例8.1.2 用稠密SIFT作为图像特征8.1.3 图像分类:手势识别 8.2贝叶斯分类器用PCA降维 8.3 支持向量机8.3.2 再论手势识别 8.4 光学字符识别8.4.2 选取特征8.4.3 多类支持向量机8.4.4 提取单元格并识别字符8.4.5 图像校正

Python计算机视觉编程 第十章

目录 一、OpenCv基础知识 1.读取和写入图像 2.颜色空间 3.显示图像和结果 二、处理视频 1.输入视频 2.将视频读取到NumPy数组中 三、跟踪 1.光流 2.Lucas-Kanade算法 一、OpenCv基础知识 OpenCV 自带读取、写入图像函数以及矩阵操作和数学库。 1.读取和写入图像 import cv2# 读取图像im = c