一起自学SLAM算法:3.4 图像特征点提取

本文为博客 VIP 文章,开通 VIP 后可阅读全文

开通 VIP

  连载文章,长期更新,欢迎关注:


写在前面

第1章-ROS入门必备知识

第2章-C++编程范式

第3章-OpenCV图像处理

        3.1 认识图像数据

        3.2 图像滤波

        3.3 图像变换

        3.4 图像特征点提取

第4章-机器人传感器

第5章-机器人主机

第6章-机器人底盘

第7章-SLAM中的数学基础

第8章-激光SLAM系统

第9章-视觉SLAM系统

第10章-其他SLAM系统

第11章-自主导航中的数学基础

第12章-典型自主导航系统

第13章-机器人SLAM导航综合实战


特征点提取算法能帮助计算机获取图像的区域特征信息,并应用于图像识别、图像匹配、三维重建、物体跟踪等领域。在实际工程中,具有很高的应用价值。在图像领域,特征点(feature points)也常常被称为关键点(key points)或兴趣点(interest points)。特征点的提取有多种算法,可以从图像纹理信息来提取,也可以通过图像区域灰度统计信息来,或者通过频谱变化、小波变换等变换后在变换空间进行提取。本节将对最常用的SIFT(scale invariant feature transform,尺度不变特征变换)特征点、SURF(Speeded Up Robust Features,加速稳健特征)特征点和ORB(Oriented FAST and Rotated BRIEF,快速特征点提取和描述)特征点进行分析和讲解,并对比其性能表现。

SIFT在性能方面非常突出,在业界有很高的名气;SURF是对SIFT的改进,在提取速度方面做了优化;ORB是用于取代SIFT和SURF的简洁提取算法,提取速度比SIFT和SURF快很多。后续视觉SLAM中的ORB_SLAM框架就是基于ORB特征点的,在实时性方面表现非常出色。因此学好本节的内容,将极大降低后续视觉SLAM章节的学习难度。

本节的重点放在SIFT、SURF和ORB三种特征点提取的原理讲解中,如果对OpenCV中具体实现程序感兴趣,可以阅读OpenCV3中相应的源代码,源代码的路径如下。

  • SIFT源码路径:opencv_contrib/modules/xfeatures2d/src/sift.cpp。
  • SURF源码路径:opencv_contrib/modules/xfeatures2d/src/surf.cpp。
  • ORB源码路径:opencv/modules/features2d/src/orb.cpp。

3.4.1 SIFT特征点

SIFT是对旋转、尺度和亮度保持不变,对仿射变换、噪声等也有比较好的稳定性的图像局部特征。那什么是旋转尺度不变性呢?简单点说就是同一个物体,用相机在不同的角度和距离拍出来的图片,图片中物体的特征应该是一样的,不因图片的大小和旋转而改变。

SIFT特征提取过程,如图3-7所示。由于所有操作都在灰度图上进行,因此输入原始图需要先经过灰度转换。然后构建高斯金字塔(Gaussian Pyramids),用于表示图像的尺度空间。将高斯金字塔每组(Octave)中相邻两图层(Layer)求差值得到高斯差分金字塔(Difference of Gaussian Pyramids,DoG金字塔),用于尺度空间的极值点检测。接着通过极值点检测、特征点定位和特征点筛选操作,提取出特征点在尺度空间的位置。之后回到高斯金字塔,

图像特征提取(VGG和Resnet特征提取卷积过程详解) 图像特征提取(VGG和Resnet卷积过程详解) 第一章 图像特征提取认知 1.1常见算法原理和性能 众所周知,计算机不认识图像,只认识数字。为了使计算机能够“理解”图像,从而具有真正意义上的“视觉”,本章我们将研究如何从图像提取有用的数据或信息,得到图像的“非图像” 的表示或描述,如数值、向量和符号等。这一过程就是特征提取,而提取出来的这些“非图像”的表示或描述就是特征。有了这些数值或向量形式的特征我们就可以通过训练过程教会计算机如何懂得这些特征, 从而使计算机具有识别图像的本领。 1.2 什么是图 阅读详情

相关推荐

激光SLAM总结——特征点提取与匹配

学习LOAM笔记——特征点提取与匹配学习LOAM笔记——特征点提取与匹配1. 特征点提取1.1 对激光点按线束分类1.2 计算激光点曲率1.3 根据曲率提取特征点2. 特征点匹配2.1 scan-to-scan中的特征点匹配2.2 scan-to-map中特征点匹配3. 补充 学习LOAM笔记——特征点提取与匹配 兜兜转转一圈,最近又开始接触一些和SLAM相关的工作,LOAM是一个非常经典的激光SLAM框架,LOAM和VLOAM至今还在kitti榜上有着不错的表现,从这篇博客开始,我开始着手对LOAM以及L

weixin_44580210的博客 1万+

图像特征提取算法

图像特征提取算法及MATLAB代码实现,思路清晰,易于初学者了解.

一起自学SLAM算法:10.3 机器学习与SLAM

推理、知识、神经网络、机器学习、决策理论等诸多的概念,本身就是在不同的层面不同的时期来讨论的,这些概念之间有些是互相重叠的、有些是发展递进的、有些是特例、有些是不同角度出发的同一观点等等。图10-33 发展历程既然从理论上暂时无法得知智能的真正面貌,那么广大读者也就不必拘泥于理论层面的各种概念,仅从实践的角度讨论和学习主流的一些技术应用就已经够了。如图10-34所示,为人工智能技术应用的大致流程。从实际问题出发,对问题进行分析并提取出一些重要的先验信息以帮助我们构造更合适的智能系统来解决问题。

机器人研究猿-CSDN 1836

深度学习理论——特征提取算法

大家好,继续理论学习,今天介绍几种最常见的特征提取算法。 1.LBP算法(Local Binary Patterns,局部二值模式) LBP算子是一种用来描述图像局部纹理特征的算子,具有灰度不变性。 其主要思想是在目标像素周围定义一个3x3的窗口,以目标像素为阈值,将相邻的8个像素的灰度值与目标像素进行对比,如果大于目标像素,则标记为1,如果小于等于则标记为0。这样,对每一个窗口都可以产生一...

Miss_yuki的博客 3万+

特征点提取算法

以上代码中,`imread`函数用于读入图像,`cvtColor`函数将图像转换为灰度图像,`xfeatures2d::SURF::create()`函数用于创建SURF算法对象,`detect`函数用于提取SURF特征点,`compute`函数用于计算SURF特征描述符,`drawKeypoints`函数用于将特征点绘制在图像上,`imshow`函数用于显示图像,`waitKey`函数用于等待用户按下按键。ORB算法中采用了FAST角点检测算法来检测图像的角点,使用BRIEF算法来描述特征点

weixin_43271137的博客 6493

一起自学SLAM算法:第9章-视觉SLAM系统

连载文章,长期更新,欢迎关注:上一章介绍了以激光雷达做为数据输入的激光SLAM系统,激光雷达的优点在于数据稳定性好、测距精度高、扫描范围广,但缺点是价格昂贵、数据信息量低、安装部署位置不能有遮挡、雨天烟雾等环境容易失效。相比于激光雷达,视觉传感器价格便宜许多、所采集到的图像数据信息量更高、室内室外场景都能适用并且雨天烟雾场景影响较小,不过视觉传感器数据稳定性和精度较差、巨大的数据量也消耗更大的计算资源。主流的视觉传感器包括单目、双目和RGB-D这3类相机,其原理见4.3节相关内容。

机器人研究猿-CSDN 3426

一起自学SLAM算法:写在前面

试想一下如果人类拥有一个非常聪明的脑瓜子但却被限制在固定的地方不能移动,那么人与人之间的交流将很大程度地被阻断,人类的分工协作、社会生产、认识并改造自然的能力也将不复存在。可以说人类的躯体延展了人类的智能,特别是躯体的可移动性极大地扩展了人类智能的作用范围。而互联网技术的普及是对人类智能的又一次延展,我们可以借助互联网巨大的信息存储以及检索能力来管理我们的知识(以前靠人脑维护这些知识则需要消耗掉我们很大一部分的心智),同时互联网提供的便捷交流渠道加速了人类认识并改造自然的进程。伴随着互联网技术而兴起的人工智

机器人研究猿-CSDN 3599

一起自学SLAM算法:9.2 LSD-SLAM算法

连载文章,长期更新,欢迎关注:下面将从原理分析、源码解读和安装与运行这3个方面展开讲解LSD-SLAM算法

机器人研究猿-CSDN 1948

一起自学SLAM算法:9.1 ORB-SLAM2算法

连载文章,长期更新,欢迎关注:下面将从原理分析、源码解读和安装与运行这3个方面展开讲解ORB-SLAM2算法

机器人研究猿-CSDN 1762

一起自学SLAM算法:8.3 LOAM算法

连载文章,长期更新,欢迎关注:不管是Gmapping还是Cartographer,通常都是采用单线激光雷达作为输入并且只能在室内环境运行。虽然Cartographer支持2D建图和3D建图模式,但是Cartographer采用3D建图模式构建出来的地图格式仍然为2D形式的地图。这里介绍一种用在室外环境的激光SLAM算法,即LOAM算法。该算法利用多线激光雷达,能构建出3D点云地图。LOAM算法是一款非常经典的SLAM算法,曾经霸占KITTI数据集效果榜首很长一段时间。

机器人研究猿-CSDN 2754

一起自学SLAM算法3.1 认识图像数据

学习OpenCV的第一件事,就是要搞明白图像的存在形式。话不多说,从程序中具体讲解。本章C++示例代码将采用CMake方式编译,关于CMake编译的内容已经在第2章中讲解过了,不在重复。利用OpenCV可以从图片文件、视频文件和相机设备获取图像数据,下面结合例子分别对这三种方式进行讲解。关于新建C++工程和CMakeLists.txt编译配置文件的内容不再展开讲解,不熟悉的朋友可以回头参考第2章的内容。1.从图片文件获取首先,来看一下image_from_img.cpp文件,见代码清单3-1所示。代码清单3

机器人研究猿-CSDN 948

一起自学SLAM算法3.3 图像变换

经过3.2节图像滤波的学习,相信大家对图像处理有了一定的了解。不过,图像滤波只是很初级的处理,其目的是提升图像本身的质量。本节要讲到的图像变换,从改变图像的结构入手,将图像变换成不同的形态。由于篇幅限制,这里重点讲在后续视觉SLAM章节中涉及到的图像变换算法。其他一些常用图像变换算法将略过,比如频谱变换、小波变换、图像金字塔等,感兴趣可以查阅相关资料。这里从基本概念入手,逐步对仿射变换的原理进行解析。首先需要了解的就是重映射(remap),就是把原图中某个位置的像素放到另一个位置,这样原图的所有像素经过重映

机器人研究猿-CSDN 1345

一起自学SLAM算法:9.3 SVO算法

连载文章,长期更新,欢迎关注:下面将从原理分析、源码解读和安装与运行这3个方面展开讲解SVO算法

机器人研究猿-CSDN 1317

一起自学SLAM算法3.2 图像滤波

通过上面的学习,已经知道图像是由一个个像素点组成的,处理图像就是处理这些像素点。但是需要注意的是,图像中的像素之间的关联性是重要的信息,不能完全把像素点割裂开来,这一点也正是众多图像算法的出发点。这里就通过图像滤波,来具体理解像素之间的这种关联性。图像滤波的目的是在尽量保留图像特征的条件下,过滤掉图像中的噪声,其直接影响到后续图像识别、分析等算法的效果。关于图像的线性滤波过程,如图3-2所示,滤波器h(x,y)为一个加权系数的窗,利用窗对图像中的像素f(x,y)进行加权求和,结果g(x,y)就是滤波输出值,

机器人研究猿-CSDN 1192

4 SLAM(同步定位与建图)学习指南

(主流SLAM框架如ORB-SLAM3、VINS-Mono均用C++):位姿图优化(Bundle Adjustment、g2o/GTSAM):相机(单目/双目/RGB-D)、激光雷达(LiDAR)、IMU。(如《SLAM十四讲》),再读论文(如ORB-SLAM)。:三维空间变换(旋转矩阵、四元数、李群/李代数):高斯分布、贝叶斯滤波(卡尔曼滤波、粒子滤波)(核心):矩阵运算、特征值分解、最小二乘法。(ORB-SLAM3),再学激光SLAM。(如ORB-SLAM3),理解代码架构。

afanstatic的博客 1284

[自学博客]纯自学记录,用于监督。视觉SLAM14

第二遍看视觉SLAM14讲,学理论推导,将程序融会贯通用。 进度: 2月18日 3.1----4.1 2月19日 4.2----4.5 2月20日 5.1----5.4 2月21日 6.1----6.4 2月22日 C++学习,专利修改 2月23日 7.1----7.4 2月24日 7.5----7.8 2月25日 7.9----8...

Eminbogen的博客 575

视觉SLAM技术精讲课程:从基础到应用

SLAM(Simultaneous Localization and Mapping,即时定位与地图构建)技术是机器人和自动驾驶领域的重要技术之一,它能够使机器人或自主移动设备在未知环境中进行位置定位和环境地图构建的同时操作。SLAM技术经历了从早期的激光SLAM,到现在的视觉SLAM的演变,不仅限于机器人的定位与导航,还在增强现实(AR)、虚拟现实(VR)、无人机等领域中发挥着重要作用。本章将介绍SLAM技术的核心思想,探索其基本概念、发展历程以及在不同领域中的应用实例。

weixin_30248619的博客 932

自学笔记】计算机视觉基础知识点总览-持续更新

提示:这里对文章进行总结:例如:以上就是今天要讲的内容,自学记录计算机视觉基础知识点总览。

2301_78806917的博客 2463
上一篇: 一起自学SLAM算法:3.3 图像变换
下一篇: 一起自学SLAM算法:第4章-机器人传感器
机器人研究猿
博客等级 码龄4年 444粉丝 80原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值