自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 博客-地图

本页面用来博客文章整理。在未来一段时间的计划中,本文将是唯一的置顶文章,以方便查看博客的所有内容。本博客所有内容都是与视觉SLAM相关的内容,希望本博客可以对读者您有所帮助,如有改进意见,欢迎评论区留言批评指正!由于本人的个人博客网站暂时不维护了,所以将博客内的一些文章重新搬过来。

2023-08-15 10:06:47 158

原创 论文分享-ORBSLAM3中的多地图系统

此线程主要都是做关键帧的增加删除等操作,对于多地图系统中,没有过多的参与(因为LocalMapping线程都是运行在活跃地图中)已经是比较准的,但是这个相对位姿只是对于当前关键帧和候选关键帧比较准,并不清楚这个相对位姿对于各自的窗口是否准,因此还要校验。Atlas其实就是由。程序开始时,会先建立ID为0的地图,并设定为活跃地图,之后的每次地图的创建都会将当前的地图设定为非活跃地图。当前关键帧的5个共视关键帧中只要有3个匹配成功即认为检测到共同区域,如果不够3个,再检测后面进来关键帧的时间连续性。

2023-08-15 10:01:42 458

原创 ORBSLAM2系列-LoopClosing闭环检测线程

这是三大线程的最后一个线程,在每个关键帧从LoaclMapping线程处理后,就会经过闭环检测的线程进行回环处理。这里就是一直在进行闭环检测,或者说一直在寻找当前关键帧与之前关键帧是否有那些相似的地方,是否是回到的原来关键帧的地方形成回环。DetectLoop初步检测以前关键帧是否与当前关键帧有联系形成闭环候选关键帧、计算候选匹配关键帧和当前关键帧之间的相似变换sim3再次进行筛选、对通过前两部筛选后的可回环关键帧进行全局处理。

2023-08-15 10:00:02 611

原创 ORBSLAM2系列-LocalMapping局部建图线程

到此整个LocalMapping线程就结束了,其中主要就是对局部地图进行了优化,并添加了新的地图点,这个线程中处理的都是关键帧。每个关键帧经过处理后,最后会放入链表中,用于LoopClosing闭环检测线程使用。

2023-08-15 09:59:15 254

原创 ORBSLAM2系列-重定位中求解位姿R,t

在重定位中求解位姿的具体函数在代码中详细的注释,就不再一一列举,因为整个过程就如上面所介绍的算法流程一样,一一对比就能看明白。

2023-08-15 09:57:47 356

原创 ORBSLAM2系列-Tracking跟踪线程

最后进行的投影匹配是使用关键帧的地图点(除了上面优化时候使用的内点)投影到当前帧,然后再进行网格搜索(这个过程与初始化时候一样),得到能够匹配点(这个投影匹配是函数,整体过程也是与局部地图跟踪一样)在重定位的最后,根据条件一共运行了两次投影匹配+重投影误差优化,都是为了能够找回跟踪,如果某一候选关键帧完成了整个重定位过程,那么就不再计算其他的候选关键帧(这部分主要看程序,逻辑简单,主要就是两个函数不断的挽救跟踪)

2023-08-15 09:56:05 321

原创 ORBSLAM2系列-矩阵模型H和F的分解

这是视觉slam十四讲中的内容。那么我们需要理解其在几何上的意义,以下内容。

2023-08-15 09:54:38 340 1

原创 ORBSLAM2系列-矩阵模型H和F的计算

矩阵模型计算原理对极约束对极约束在视觉slam十四讲中讲解的比较详细,在这里就简单的介绍一些流程:1.对于一个空间坐标P(X,Y,Z)P(X,Y,Z)P(X,Y,Z),根据针孔相机模型可以得到两个像素点p1,p2p_1,p_2p1​,p2​在两个相机坐标系下的位置:s1p1=KP,s2p2=K(RP+t)参考:Z[uv1]=(fx0cx0fycy001)(XYZ)=defKPs_1p_1=KP,\quad s_2p_2=K(RP+t) \quad 参考:Z\begin{bmatrix}u \\

2023-08-15 09:53:40 248

原创 ORBSLAM2系列-单目初始化

至此,单目初始化就彻底结束了,后续再进来的图像帧就是用来跟踪Tracking。

2023-08-15 09:52:24 502

原创 ORBSLAM2系列-特征点提取

计算FAST角点使用四叉树均匀化特征点、灰度质心法求解特征点方向、根据方向计算Steer BRIEF描述子。一共就做了这几步,但是为了后续能够方便进行三角化计算,将各个图层的特征点转换到原图像(金字塔的最底层)下,然后将特征点信息和描述子信息(因为提取特征点主要就为了求解这两个)分别传递给重载括号运算符的形参中(这部分放在了计算描述子中,因为在一个for循环中),实现传递。

2023-08-14 22:35:28 371

原创 ORB-SLAM2系列-相机成像与畸变

ORBSLAM2中在单目相机使用的先提取特征点,还有一个原因就是对于畸变不大的相机,可以这么操作(毕竟slam要求实时性),而对于畸变较大的相机(广角相机或者鱼眼相机等),就需要先去畸变。根据针孔相机模型中,我们是直接将相机光心想象成了一个平面,但是在实际中,相机前面是有一个透镜的,为了能够拍摄到更大的范围,这个透镜一般都是中间很厚两边薄,因此之前的假设就不能满足。等式左边是已知的坐标,而右边是未知的,那么求解这个未知量的时候就非常麻烦,因此选择反过来求,假设已经有了矫正畸变后的图像,而这个图像每一点。

2023-08-14 22:31:27 303

原创 论文分享-VINS论文解读

VINS论文中主要讲解的就是视觉与IMU之间的耦合,使用了怎样的方法将两种传感器数据融合一起,实现了一个完整且易使用的slam系统。VINS代码的整体流程如图:图中红色字体代表着论文中的不同部分:对于视觉测量来说,VINS中的相机数据是如何识别跟踪特征点;对于IMU测量需要对两个连续帧之间的测量进行预积分在初始过程中如何通过视觉和IMU提供必要的姿态、速度、重力向量、偏置等基础状态量视觉和IMU使用紧耦合的方式在重定位和后端非线性优化过程中的应用使用了4自由度的位姿图优化全局。

2023-08-14 22:18:40 585

原创 论文分享 - OctoMap八叉树建图原理

论文:OctoMap:An Efficient Probabilistic 3D Mapping Framework Based on Octrees。

2023-08-14 22:15:18 1096

原创 Git学习笔记-基础知识

git是分布式版本控制工具,此文章是根据黑马程序员的git教程编写,其中大量的使用了黑马程序员的教程中的内容,尤其是最后的IDE使用Git,但是IDE的部分其实只要自己捣鼓捣鼓就会了。

2023-08-14 22:12:31 80

原创 CMake学习笔记-基础知识

-Dname 定义宏name,在编译的时候使用定义宏# 常用场景:# -DDEBUG定义DEBUG宏,那么在程序中如果有#ifdef DEBUG的代码,就会执行,如下面例子:#endif# 如果使用了g++ -DDEBUG main.cpp 那么就会指定第7行。

2023-08-14 22:10:19 146

原创 C++标准库学习(一) STL体系结构基础

此系列文章都是根据侯捷老师的系列教学视频进行编写,记录自己在学习STL过程中的知识点。

2023-08-14 22:07:46 336

原创 C++学习笔记(六)STL-常用算法

此 C++ 系列的笔记,是根据黑马程序员的 C++ 视频教程所写。这部分是算法,是整个 C++ 语言中最重要的部分之一。

2023-08-14 22:06:04 64

原创 C++学习笔记(五)STL-容器

vector容器可以嵌套嵌套之后,注意解引用,解引用解的第一层还是个容器,而第二层解引用才解到了数据,因此,需要双层循环才能看到数据//自定义数据类型public:mAge = age;int mAge;//存放对象//创建数据//使用for循环遍历数据it!= v.end();it++) {//下面的*it是解引用,看<>中是什么,解引用解出来就是什么//如果不适用解引用,那么it可以当做指针来使用//下面两行一样的功能//存放对象指针//<>中存放指针。

2023-08-14 22:04:12 142

原创 C++学习笔记(四)模板

此C++系列的笔记,是根据黑马程序员的C++视频教程所写。这部分包括函数模板和类模板more。

2023-08-14 21:58:02 52

原创 C++笔记(三)类和对象2

C++笔记(三)类和对象2C++运算符重载重新给那些已经有定义的运算符,设置新的定义而原来运算符的定义依然不会修改,因此,就是重载加号运算符重载实现两个自定义数据类型相加的运算运算符重载可以发生函数重载,就是函数名称相同,参数不同分别有两种方式:成员函数重载和全局函数重载//假设我们要将两个Person类的数据相加class Person{ public: int m_a; int m_b; //成员函数的运算符重载 Person operato

2022-03-18 22:04:17 563

原创 C++笔记(三)类和对象1

C++笔记(三)类和对象1文章目录C++笔记(三)类和对象1封装对象的初始化和清理构造函数析构函数构造函数的分类拷贝构造函数调用时机构造函数调用规则深拷贝和浅拷贝(面试经典)初始化列表类对象作为类成员静态成员C++对象模型和this指针成员变量和成员函数分开存储this指针的用途空指针访问成员函数const修饰成员函数友元全局函数做友元类做友元成员函数做友元封装就是class类,类中需要包含成员属性(成员变量)和成员行为(成员函数),还有访问权限:public、private、protected。如

2022-03-18 21:55:58 225

原创 C++笔记(二)核心编程

C++笔记(二)核心编程文章目录C++笔记(二)核心编程内存分区模型引用基本语法注意事项引用做函数返回值常量引用函数高级默认参数占位参数函数重载内存分区模型代码区:存放函数体的二进制代码,由操作系统管理(存放CPU执行的机器指令)(程序运行前就有了)共享:由于会频繁的被执行,因此代码只需要存放一份共享只读:防止程序意外修改内部指令全局区:存放全局变量、静态变量和常量(字符串常量和const修饰的全局变量)(程序运行前就有了)注:const修饰的局部变量(局部常量)不在全局区中

2022-03-18 21:48:16 978

原创 C++笔记(一)基础编程

C++笔记(一)基础编程文章目录C++笔记(一)基础编程浮点数据类型转义字符三目运算符循环结构跳转语句指针空指针const修饰指针指针与函数结构体定义和使用(三种方式)结构体数组结构体指针结构体做函数参数结构体中const使用浮点数据类型float f1 = 3.14f; //如果不写这个f,那么程序会默认为这个是double类型             //因此,这段代码会经过一个强制类型转换成float。转义字符水平制表符\tcout << "a\thell

2022-03-14 14:40:36 1118

原创 Pytorch入门(三) 训练 / 测试模型

上一篇文章中讲解了神经网络模型的编写,一般情况下,我们只需要对现有的网络模型进行修改就可以了,那这篇文章就进入到最重要的部分了,也就是网络模型的训练和测试。其实对于分类和回归的模型(可以理解为分类就是将回归模型离散化,而回归就是将分类问题连续化,说人话就是回归模型输出了一些具体的数值像坐标这种,而分类就是将回归的数值经过softmax等函数进行离散,就大概是这个意思),是有一套完整的套路的,就是说你完全可以自己写出来一套“模板”,在使用分类或者回归模型时,直接套用就ok了。

2021-11-13 15:08:48 6560 1

原创 Pytorch入门(二) 神经网络模型

Pytorch 入门(二) 神经网络模型上一篇文章讲解了对数据集的处理,这篇文章我们就开始学习网络模型的Pytorch编写。虽然大部分时候我们不需要去自己编写模型,只需要使用大佬们写好的模型,然后再去改参数(俗称调参侠),但是我们依然要能看懂模型的代码。这篇文章会比较短,因为网络模型的程序并不多(常用的),我们只需要看懂,能够模仿编写就可以。网络模型-基本框架网络模型与数据预处理的Dataset相同,使用类的方式实现。下面介绍一下神经网络的基本框架:from torch import nn

2021-11-05 18:40:30 838

原创 Pytorch 入门(一) 数据预处理

Pytorch 入门(一) 数据预处理此Pytorch系列文章既是记录我的学习(因为我也是新手),也是教程(其中有一些自己的想法)。这篇文章会直接上一些干货,对于新手来说,这篇文章只会让你更快的上手写程序,但是如果你要了解更细的东西,还需要继续深入的学习。

2021-11-05 18:39:44 1077 1

原创 Demo : 人脸5个关键点检测

Demo Task 1 : 人脸5个关键点检测资料代码:gitee数据集:百度云盘 密码:pjvk算法构建人脸关键点检测,需要使用回归算法,因此一开始的想法就是前面使用多层卷积,适当添加残差网络作为基础模块,最后进行线性全连接层,直接预测5个坐标点的值。经过在网上查找资料,发现了PFLD框架,使用MoblieNet作为主干网络,同时将网络后三层进行拼接(cat),再进行全链接层的预测。网络结构backbone主干网络PFLD框架的基础网络是基于MoblieNet V2进行修改的,在主干网络

2021-10-09 16:34:51 3038

原创 Hexo学习

Hexo框架搭建个人博客   最近一直想要建立一个自己的个人博客,可我对互联网的知识有很多不懂,因此不断的上网寻找,找到了一个比较不错的手把手教搭建个人博客的B站up主:CodeSheep(程序羊),感谢up主的个人博客教学视频,我才能踏出我想要记录blog的第一步.Hexo命令   搭建个人博客的过程,在codesheep的视频中讲解比较充分,也就不再述说,主要以搭建好之后,怎么完成一些...

2019-12-08 11:43:29 135

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除