讲解关于slam一系列文章汇总链接:史上最全slam从零开始,针对于本栏目讲解的(01)ORB-SLAM2源码无死角解析链接如下(本文内容来自计算机视觉life ORB-SLAM2 课程课件): (01)ORB-SLAM2源码无死角解析-(00)目录_最新无死角讲解:https://blog.csdn.net/weixin_43013761/article/details/123092196 文末正下方中心提供了本人 联系方式, 点击本人照片即可显示 W X → 官方认证 {\color{blue}{文末正下方中心}提供了本人 \color{red} 联系方式,\color{blue}点击本人照片即可显示WX→官方认证} 文末正下方中心提供了本人联系方式,点击本人照片即可显示WX→官方认证
一、前言通过前面的博客,我们已经对FAST关键点做了详细的讲解。我们先来回顾一下之前的代码,在 ORBextractor::operator() 函数中,调用了比较重要的几个函数:
void ORBextractor::operator()( InputArray _image, InputArray _mask, vector& _keypoints,
OutputArray _descriptors){
// Step 2 构建图像金字塔
ComputePyramid(image);
//使用四叉树的方式计算每层图像的特征点并进行分配
ComputeKeyPointsOctTree(allKeypoints);
// Step 6 计算高斯模糊后图像的描述子
computeDescriptors(workingMat, //高斯模糊之后的图层图像
keypoints, //当前图层中的特征点集合
desc, //存储计算之后的描述子
pattern); //随机采样模板
}
针对于 ComputePyramid(image); 以及 ComputeKeyPointsOctTree(allKeypoints); 已经做了比较详细的讲解,接下来我们就是就是对 computeDescriptors()进行讲解了。在代码讲解之前,我们先来了解一下BRIEF描述子的理论知识
二、理论基础
论文:BRIEF: Binary Robust Independent Elementary Features,如果需要详细了解的朋友可以查看这篇论文。 简要说明: 一种对已检测到的特征点进行描述的算法,它是一种二进制编码的描述子,在图像匹配时使用BRIEF能极大的提升匹配速度。 主要实现的思想逻辑如下:
步骤 ( 1 ) \color{blue}{步骤(1)} 步骤(1) 为减少噪声干扰,先对图像进行高斯滤波.
步骤 ( 2 ) \color{blue}{步骤(2)} 步骤(2) 以关键点为中心,取SxS的邻域大窗口(仅在该区域内为该关键点生成描述子)。大窗口中随机选取一对(两个)5x5的子窗口,当然也可以是随机两个像素点。比较子窗口内的像素和(可用积分图像完成),进行二进制赋值。(一般S=31),公式如下: τ ( p ; x , y ) = { 0 , i f p ( x ) < p ( y ) 1 , o t h e r w i s e \color{blue} \tau(p;x,y)= \begin{cases} 0,& if ~~p(x)
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?