自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Qt 学习(一) addressbook

(3)在MainWindow中设置 centralwidget 以及 title, 并添加menu 以及 action,再绑定槽函数。此界面包含的控件:QLineEdit;MainWindow 继承自 QMainWindow,根据需要设计的界面样式。为两个menu 添加了三个可点击的控件,对应的槽函数需要根据代码架构来设计。每一个{name, address} 都是通过一个 QDialog 添加;(2)确定MainWindow 的成员变量。(5) 槽函数:添加,修改,删除。索引:QModelIndex。

2024-06-26 14:58:09 470

原创 SLAM学习资料汇总

(1) orb_slam 官网(网站最后有5篇论文,价值很高)http://webdiis.unizar.es/~raulmur/orbslam/(2)半仙居士blog(可以都看,很经典)http://www.cnblogs.com/gaoxiang12/(3) 贺一加 blog(monocular slam 和navigation讲的很好可以看看)http://blog.csdn.NE...

2024-06-18 14:38:02 397 1

原创 数据流角度看DSO(六)

此时已经初始化成功,在讨论第九帧的时候,我将其设为非关键帧来介绍对非关键帧的处理。第九帧1.当前帧生成FrameHessian,FrameShell的对象,相关值的初始设置,加入到allFrameHistory。2.fh->makeImages(image->image, &Hcalib);3.Vec4 tres = trackNewCoarse(fh);对参考帧进行跟踪。trackNewCoarse()函数解析:(1)获取参考帧的信息:FrameHessian* last

2020-05-21 20:21:32 954

原创 数据流角度看DSO(五)

第八帧接上一篇博客,将当前帧作为关键帧进行处理。1.获取当前帧的camToWorld,并对当前帧的状态进行setEvalPT_scaled()处理。fh->shell->camToWorld = fh->shell->trackingRef->camToWorld * fh->shell->camToTrackingRef;fh->setEvalPT_scaled(fh->shell->camToWorld.inverse(),fh-&gt

2020-05-21 16:36:49 1162 2

原创 数据流角度看DSO(四)

前面几帧的处理都是为初始化做准备,到第八帧才满足进行初始化的条件。第八帧前面直到else if(coarseInitializer->trackFrame(fh, outputWrapper))的处理均与第2帧一样,在当前帧的时候,对第一帧进行跟踪之后会返回ture,表示可以进行初始化操作。初始化操作:initializeFromInitializer(fh);...

2020-05-20 20:23:15 860

原创 数据流角度看DSO(三)

上一篇博客介绍了对第一帧的处理,接下来看第二帧。第二帧

2020-05-18 18:40:38 981

原创 数据流角度看DSO(二)

上一篇博客介绍到了运行前的准备,包括相关参数文件的读取,图像金字塔的建立以及内参矩阵K的计算,还有获取图像信息并进行光度校准。接上一篇博客介绍到的图像帧处理入口,以第一帧开始分析每个图像帧的处理。第一帧1.初始化存储图像帧信息的类,生成类FrameHessian,FrameShell的对象,并设置初值,包括:camToWorld,aff_g2l等,并将当前帧的信息加入到allFrameHistory。 FrameHessian* fh = new FrameHessian(); FrameShell

2020-05-18 11:57:44 1222

原创 数据流角度看DSO(一)

此系列博客是在这篇博客( DSO代码梳理(一) )的基础继续往下分析的,我觉得从数据流的角度可能能够更加

2020-05-17 16:55:39 1707

原创 利用ROS话题的订阅功能实现从bag文件中提取信息

在验证定位算法的时候,为了更好的说明问题,我们会实际采集数据来进行实验。通常由于定位算法不支持直接运行bag文件,(当然你也可以将算法设计成ROS版)我们需要从bag文件中提取出所需要的数据。本文以zr300相机采集的数据为例,利用ROS的话题订阅功能从bag文件中提取出图像信息及IMU信息,以及对应的时间戳。1. ROS工作空间的创建mkdir -p ~/catkin_ws/src ...

2020-05-08 15:45:02 4104

原创 Ubuntu16.04编译并运行VINS-MONO

入坑视觉SLAM已经快一年了,目前还没有完整的接触过VIO,一般来说,纯VO都不能满足工程应用需求,因此融合IMU是至关重要的.VINS作为开源VIO方案中效果数一数二的,实在是很有必要学习一下.并且关于VINS的学习资料很多,有许多大牛都写了相应的博客.本文只是记录一下自己运行VINS的一些经验.创建ROS工作空间首先保证电脑安装了ROS系统,在Ubuntu16.04系统中安装的是ROS ...

2019-11-14 20:24:27 2529 2

原创 DSO代码梳理(一)

本科毕设就是利用开源DSO代码做的,运行了TUM单目数据集,EuRoC数据集,TUM-RGBD数据集。前段时间看了ORB-SLAM2的track线程,感觉ORB的代码比DSO的代码逻辑更清晰,可读性更强。虽然自己之前做毕设的时候梳理过DSO的代码流程,但是现在已经忘了好多,感觉还是有必要再重新梳理一遍。为了加深自己的理解,打算利用博客记录一下。对于运行不同的数据集(主要区别是光度校准文件),DS...

2019-08-28 21:52:56 2749 13

原创 SLAM的一些学习笔记

坐标系在视觉SLAM中存在多种坐标系,如世界坐标系、相机坐标系、像素坐标系、归一化相机平面、未归一化的像素坐标系(这个坐标系不一定有,是我自己在学习过程中发现的,然后根据含义命名的)。如果你对SLAM有一定的研究,这几中坐标系的定义应该都知道(如果不知道可以查看《视觉SLAM十四讲》),但是对这几种的坐标系的转换可能就有一点不太清楚。在这里将几种坐标系之间的转换总结如下:相机位姿在SLAM...

2019-08-27 14:03:38 235

原创 ORB-SLAM2梳理——track线程(四)

前面三篇博客中,第一篇着重分析了track线程的整体流程,第二篇和第三篇分析的是单目初始化过程。本篇博客分析在初始化完成之后的跟踪过程,它存在两种跟踪状态,三种跟踪模型。两种跟踪状态分别为:只跟踪不建图、跟踪和建图,通过bool变量mbOnlyTracking来区分。首先介绍的是三种跟踪模型。// 三种跟踪模型TrackReferenceKeyFrame() //参考关键帧模型Tra...

2019-08-25 20:35:41 337

原创 ORB-SLAM2梳理——track线程(三)

上一篇博客主要讲了track线程的特征点提取,以及描述子的计算,其中重点是特征点的提取。对于特征点提取,ORB-SLAM首先将图像建立图像金字塔,对每一层图像提取FAST角点。为了保证提取角点的分布比较均匀,将图像分成了一定数量的块,在提取角点之后,将特征点分散到八叉树中,然后计算相应的描述子。本篇博客接着分析track线程的具体实现。首先分析特征点匹配函数(初始化时)。 ORBmatcher...

2019-08-25 15:00:28 424

原创 ORB-SLAM2梳理——track线程(二)

上一篇博客着重分析了track线程的流程,这篇分析流程的具体实现(具体分析的函数在上一篇博客的末尾有介绍)。首先分析特征点提取类的构造函数,即:///此函数在初始SLAM系统函数的初始Tracking里调用。 mpTracker = new Tracking(this, mpVocabulary, mpFrameDrawer, mpMapDrawer, mpMap, mpKeyFrameDa...

2019-08-24 20:19:32 365

原创 ORB-SLAM2梳理——track线程(一)

以ORB-SLAM2运行EuRoc数据集为例分析流程。首先分析运行参数,一共需要五个参数,并且需要按照特定的顺序排列,argv[0]可执行文件argv[1]ORB词典文件 strVocFileargv[2]参数设置文件 strSettingsFileargv[3]图像文件 vstrImageFilenamesargv[4]时间戳 vTime...

2019-08-23 21:11:59 1093

翻译 文献精读——自动曝光视频的实时视觉里程计和SLAM系统的在线光度校准

Abstract近年来,基于直接法的视觉里程计和SLAM算法在精度方面表现出令人惊奇的水平。然而为了获得具有竞争性的结果,它们需要相机的光度校准。因此,相应的算法不能直接用于普通摄像机或者由未知相机获得的视频序列。本文提出了一种能够处理自动曝光视频序列的在线光度校准方法,能够从连续帧中恢复曝光时间,相机的响应函数,由渐晕引起的传感器辐照度衰减因子。利用鲁棒的增益KLT特征跟踪获得点的对应关系...

2019-07-31 13:30:18 787 4

原创 视觉SLAM十四讲,第一讲,第二讲笔记

第一讲SLAM 的目的是解决“定位”、“地图构建”两个问题。其中,定位:估计传感器自身的位置,地图构建:建立周围环境的模型。第二讲常用相机类型:单目相机,双目相机,深度相机单目相机:结构简单,成本低。以二维的形式反映三维世界,丢掉了场景中的一个维度,也就是所谓的深度。通过移动相机,改变相机的视角来恢复深度,这也是为什么单目SLAM初始化的时候要有一定的平移。(比较常用的深度恢复的方...

2019-07-29 14:52:41 248

原创 视觉SLAM十四讲——第九讲VO0.4版流程详解

前言:视觉SLAM十四讲是很多初学者第一次接触SLAM的入门书,不得不说,这本书真的是一本很不错的书。不仅有理论知识,而且还有详细的程序例程,很适合初学者。本文着重介绍第九讲中VO0…4版的流程及原理,对于VO0.1版介绍的数据结构不做介绍,如有不懂的请参考视觉SLAM十四讲。VO0.4版总体流程相关文件读取相关文件读取:读取 default.yaml 中的内容,包括数据集的地址,相机内...

2019-07-24 19:43:40 1064

Qt 学习(一) address book

Qt 学习(一) address book

2024-06-26

空空如也

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

TA关注的人

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