- 博客(97)
- 资源 (47)
- 收藏
- 关注
原创 libSM.so+libfontconfig.so:未定义的引用
分别检查anaconda3/lib/libfontconfig.so.1.10.x和usr/lib/x86_64-linux-gnu/libfontconfig.so.1.10.1 是否版本号相同 如果不相同把x86的移动到anaconda里面即可.上面这个anaconda的地址大家自己找。
2024-03-11 17:26:37
575
1
原创 eigen安裝 只需看這一篇!
/若默认安装的是/usr/local/include/eigen3/Eigen 下,将Eigen文件夹拷贝一份到/usr/local/include 下。進入上面的網址,然後下載一個你所需要的eigen 我下的3.3.1的。然後解壓,進入文件夾內。
2023-11-20 16:40:25
630
原创 ORB_SLAM3_1.0 ros版本編譯
一開始git clone就跟着官網的來即可,然後注意orbslam3的1.0版本有examples和examples_old,這個地方需要非常注意。其他按照官網上的來即可。然後找到/ORB_SLAM3_1.0/Examples_old/ROS/ORB_SLAM3/CMakeLists.txt。然後mkdir build && cd build && cmake.. && make -j即可順利通過。上面這個是AR相關的,和單目 雙目 imu沒啥大關係,注釋調無所謂。本文記錄一下ros版的orb編譯。
2023-11-20 16:36:00
144
原创 (线特征)opencv+opencv contribute 配置
在配置环境的时候,可以发现大多数都是用到了opencv3.4.16和其contribute版本,这里进行一个相关操作的教学。opencv下载地址:https://github.com/opencv/opencv/releases/tag/3.4.16。参考链接:https://blog.youkuaiyun.com/woodgril/article/details/109155073。参考链接:https://blog.youkuaiyun.com/bj233/article/details/113351023。
2023-08-24 22:19:36
750
原创 (博客笔记)SLAM的三相性和世界观
激光类传感器可以很好的体现SLAM的世界观,这里的世界观个人理解是SLAM建图与真实世界所表达的物体信息之间的差距,也即SLAM建图能否贴近真实世界。注意,稀疏点云不是SLAM的世界观,原因如下:稀疏点云有完整且正确的深度,但是也是难以被理解的机器语言,所以说稀疏点云并不是SLAM的世界观。激光SLAM有优点也有缺点,当然一般人说激光SLAM的缺点最常包括激光设备很贵,要用便宜的视觉sensor来代替激光设备。SLAM的三相性是指开销、鲁棒性和精度,简单来说就是快,稳,准!
2023-07-21 22:46:35
129
原创 (秋招)面激光slam必备知识--scan context
就很直接,使用暴力匹配的方法,得到相似性程度最高的那一组解,那么这组解对应的相位差就是两个scan context之间的旋转量。但是通过上面的暴力匹配,发现是非常消耗计算量的,那么想到一个办法,针对每一列,统计个数,使用这个个数先做一个预匹配,即相似的地方,点的数量也是差不多相等的。scan context是一个描述场景的描述符,它之前不是用在slam上面的,但是有人将它用到激光slam上面,发现还可以,于是这个scan context就用来进行激光slam的位置识别(做闭环用的)。
2023-07-07 21:47:59
473
原创 (秋招)闭环检测流程回顾
在vins中角点使用的是harris角点,然后这个地方的创新版本是Shi-To啥啥啥的一个角点,然后这里进行了brief描述子的计算,这个地方就是为了进行回环检测才进行的描述子的相关操作。这里的使用RANSAC进行F矩阵或者pnp就是基于F矩阵或者pnp,然后首先根据它们之一的公式来计算出一个模型,把其他点带到这个模型里面,计算内点和外点的数量来对模型的参数进行调整,通过不断调整模型,使得内点的数量增加,然后模型逐渐稳健,此时便完成了外点剔除的操作。这些额外的角点能用来实现更好的回环检测。
2023-06-24 15:46:27
381
原创 (秋招)vins中的光流法
那么下一层基于这个初值也会得到一个解,就这样进行迭代,直到达到金字塔的最底层,也即第0层,就是原始分辨率的那张图片,此时光流法就会给出一个速度值,这个值是比较可靠的(相比对原始图片直接使用光流法来说)。2.小运动,这个也必须满足,就是时间的变化不会引起位置的剧烈变化,这样灰度才能对位置求偏导(换句话说,小运动情况下我们才能用前后帧之间单位位置变化引起的灰度变化去近似灰度对位置的偏导数),这也是光流法不可或缺的假定。可以看到光流法是来估计物体运动的(估计的是物体运动的速度,根据速度再计算相对应的特征点)。
2023-06-23 10:36:35
471
原创 (秋招准备)三角化复习
三角化又叫三角测量,本质是用相机的运动估计特征点的空间位置,发生在估计得到帧间运动之后(单目情况)。vins里面的代码如上,上面design_matrix相关的就是通过叉积进行的等式表达,然后求解世界坐标即可成功三角化。在视觉SLAM14讲中,有关深度的求解,如上,就是使用一个等式来分别求解x1和x2的深度值,然后通过深度值来恢复点的空间坐标。这里首先将平面坐标和世界坐标进行表示,然后利用平行的性质,来进行叉积为0的表达。左目2个方程,右目两个方程,通过四个方程来求解世界坐标,即达到了三角化的目的。
2023-06-20 20:43:29
417
原创 (1分钟速览)g2o入门指南--笔记版
本文则介绍有关g2o的相关内容,作为一个入门指南,目标:大家阅读完以后,大体知道g2o写代码的时候有几步,然后图是怎么画的,一条边连接啥节点,最后自己会求导即可。这里面的话GN计算的效率还可以,经过我的实验,DogLeg是最快的,然后LM是最慢的,然后GN和Dogleg差不多,但是精度的话,Dogleg还是比较准确的。这个图要理解一下,图中的边为一元边,这个的意思就是说,在求一个二次函数的拟合问题的时候,这里的abc三个参数进行拟合求解,那么此时这里的边就是自己指向自己的,就是所谓的一元边。
2023-05-20 16:07:52
833
原创 (1分钟速览)图像金字塔对比--光流法and fast角点
建立一个图像金字塔,然后从上到下依次进行光流跟踪,其中,上一层跟踪的结果,比如说在某个图像小块内。针对尺度不变性,其说的是对于远处和近处相同的一个物体,可能近处能够检测出来有角点,但是放远了以后就不一定能检测出来角点了。这个地方,有的代码里前面的xy和后面的xy貌似不太对应,但是也能算出来,这个地方有些疑惑。就是说通过上面的步骤,分别检测每层金字塔上的fast角点,然后作为这幅图像的fast角点。旋转不变性,通过上面图中的公式进行计算,这个在高翔的深蓝学院课程课后作业有练习到,这里就不过多说明了。
2023-05-16 10:37:50
475
原创 (1分钟了解)视觉惯性导航初始化方法综述
联合初始化方法的代表--改进M-K方法,非联合初始化方法的代表--VINS-Mono,半联合初始化方法的代表--ORB-SLAM3。IMU预积分算法的核心思想是将一段时间内IMU测量数据中与状态向量更新无关的数据进行积分处理,作为这段时间内的IMU预积分项,避免这部分数据在后续过程中的重复积分,最终达到简化状态估计的目的。EuRoC数据集可以提供VINS(注意这里的VINS不是vins-mono 而是一个统称)初始化所需的运动激励(就是说每个轴的加速度要到达一定的值,这样才能让初始化启动)和传感信息。
2023-05-15 18:25:49
794
原创 边缘化你必须知道的一件事!(FEJ知识点总结)
关于第一估计雅可比(FEJ, First Estimate Jacobians)先进行一个简单的描述,在Marginalize的时候,求解滑动窗口估计器的迭代过程中,会不断迭代计算H矩阵和残差b,而在迭代过程中,状态变量会不断更新,计算雅可比的时候需要固定线性化点(fix the linearization point)。因此,marg时,被marg的那些变量的雅可比已经不更新了,而此时留在滑动窗口里的其他变量的雅可比要用和marg时一样的线性点,就是FEJ进行计算,不要用新的线性点了。
2023-05-10 17:14:26
2071
1
原创 (秋招笔试准备系列)贪心相关理论总结--代码随想录
Carl(代码随想录的作者~)个⼈认为:如果找出局部最优并可以推出全局最优,就是贪⼼,如果局部最优都没找出来,就不是贪⼼,可能是单纯的模拟。(我对这句话的理解就是选择当前最优的,然后这种选择可能经过证明以后就是通往全局最优的一条正确的道路,也即每一步最优最终构成了全局最优。反正贪心的思想给人的感觉就是你可以用,但是具体怎么证明的话,还是需要思考的。局部最优推出全局最优,找不出反例,试试贪心!
2023-02-28 20:00:47
144
原创 (周末公众号解读系列)2000字-视觉SLAM综述
此外,VINS-Mono的初始化方法值得注意,它采用了不相交方法(以及VI-ORBSLAM Mur Artal和Tards,2017),该方法首先初始化纯视觉子系统,然后估计IMU(加速度计和陀螺仪)的偏差、重力、比例和速度。如图1所示,相机传感器模块负责收集图像数据,前端模块负责跟踪两个相邻帧之间的图像特征,以实现初始相机运动估计和局部建图,后端模块负责前端的数值优化和进一步的运动估计,回环模块负责通过计算大规模环境中的图像相似度来消除累积误差,建图模块负责重建周围环境(Gao等人,2017)。
2023-02-25 19:46:30
773
原创 (秋招笔试系列)二叉树相关联系-代码随想录整理
标记法实现前中后序遍历的统一风格,把中间节点node后面加上NULL这样进行标记以后在push到res数组里面的时候直接判断当前节点是否为NULL,然后pop两次即可。-前序和后序不可以唯一确定一颗二叉树,因为没有中序遍历无法确定左右部分,也就无法分割。vector的begin()函数指向容器的第一个元素,vector的end()函数。栈的方式实现二叉树的前中后序遍历,主打一个节约资源。-2.二叉树:前中后序迭代法(一)-3.二叉树:前中后序迭代法(二)-9.二叉树:求左下角的值。
2023-02-25 16:50:10
119
原创 秋招笔试准备--动态规划(代码随想录学习笔记)
大佬们在刷题的时候遇到相似类型的背景的时候就可以快速定位出这是一道动态规划的题目,然后想一想dp数组表示什么,递推公式是啥,该怎么初始化,然后最后验证一下边界条件即可。这个题目就是斐波那契的变式题目,其递推的思路就是当我站在第i阶楼梯上的时候,其状态是由第i-1阶和第i-2阶的状态共同决定的,据此就可以写出相应的递推公式出来。有关滚动数组的相关知识,其主要是看到递推公式只和上一行有关,那么直接把上一行数组的内容复制下来,然后直接dp就可以了。-3.买卖股票的最佳时机III。-2.买卖股票的最佳时机II。
2023-02-23 21:30:47
140
原创 机场提示端口1080已被占用
taskkill -pid xxxxx(这个地方是最后一列显示的数字) -f。然后一个回车下去,重新打开软件即可。再次体验上网的感jio。”命令查看所有端口被占用情况,
2023-02-23 10:56:32
1465
1
原创 (1分钟突击面试) 高斯牛顿、LM、Dogleg后端优化算法
LM方法是信赖域的方法,主要是为了解决JTJ的问题,就是说可能JTJ不可逆,那么加上一个莱姆大*单位阵以后 相当于前面介绍的岭回归,那么这就保证了求逆运算。以上三个算法的总结,DogLeg方法是首选的比较好用的方法,然后LM和Dog-Leg方法都比高斯牛顿法要好。说明信赖域方法要好于线搜索的方法。这里有一个小的知识点回顾,就是线性化的话在slam中表达的意义是求雅可比,出自vins的辅导课程中。这里的u起着阻尼的作用,就是说步长大了的话就放小点,步长小的话就放大点。添加图片注释,不超过 140 字(可选)
2023-02-10 17:37:18
1329
原创 (1分钟速通面试) SLAM中的最小二乘问题
就是说撇开最小二乘不提的话,在求解观测参数的时候我们常用的方法就是最大似然,也即概率相乘,然后取log,然后求导,最后令导数为0,求解出来的那个参数就是最大似然估计出来的参数。总的来说,即我们找不到ax=b的解,那么我们找一个p,让它非常接近b,这样求出来的ax=p的解即是最小二乘解,也就是我们所要求解的那个解。这个公式的推导也是非常的简单,就是考虑极值点导数为0的情况,然后求导数为0,那么最后一套流程下来以后,得到的解便是所要求解的参数啦!感觉这个最小二乘问题还是比较重要的,废话不多说,开始讲解!
2023-02-10 16:08:33
723
2
原创 (1分钟速通面试) 矩阵分解相关内容
前面这句话主要针对分类来说,因为你的数据离散了,可区分性好了以后,那么我们做分类的效果才显著,这样的研究才有意义。栓Q,本篇到此结束。本篇博客总结一下QR分解和LU分解,这些都是矩阵加速的操作,在slam里面还算是比较常用的内容,这个地方在isam的部分出现过。上面这幅图的话 主要说了广义逆矩阵的事情,为啥说是广义呢,因为平时我们定义的逆矩阵一定是一个方阵,这里不是方阵了,那么就称作是广义逆矩阵了。上面这个就是QR分解,感觉这些的话 会用就行,知道谁的速度快,然后什么情况下的矩阵适合什么样的方法即可。
2023-02-09 20:37:35
591
原创 (1分钟速览)KBM-SLAM 论文阅读笔记
基于特征的匹配的一个例子如图3-B所示。图3-A显示了一个直接方法的例子:一个感兴趣的位置(在这种情况下是一个三角形)周围的像素值通过一个变换对齐,该变换使两幅图像中两个感兴趣的位置之间的强度值最小化。数据关联,直接法或者特征点法,说白了数据关联就是在找两帧图像中相同的特征点,也即特征点A在图像帧1和图像帧2中的位置在哪里,然后对应好以后开始做后面的odometry的事情。与直接和基于特征的方法不同,一些系统,如SVO被认为是混合的,它使用两者的结合来改进相机姿态估计,或生成密集/半密集的地图。
2023-01-18 12:19:34
656
1
原创 因子图--isam相关内容总结
这个再看一下视觉slam14讲。Isam2 贝叶斯树的求解,从叶子节点向根节点来更新functions,然后从根节点再向叶子节点进行变量的求解。添加图片注释,不超过 140 字(可选)添加图片注释,不超过 140 字(可选)添加图片注释,不超过 140 字(可选)添加图片注释,不超过 140 字(可选)添加图片注释,不超过 140 字(可选)添加图片注释,不超过 140 字(可选)添加图片注释,不超过 140 字(可选)添加图片注释,不超过 140 字(可选)添加图片注释,不超过 140 字(可选)
2023-01-09 20:34:43
604
原创 (1分钟速览)最近邻搜索--激光SLAM常用必杀技
上面这个例子就是说,当走到(13,10)这个节点以后,本来应该往右子树走的,但是右子树为空,那么就返回到上一层,然后程序结束返回(13,10)。但其实(12,8)才是我们所以得到的解,那么此时我们就以(10.1, 10.1)为圆心,到(13,10)的距离为半径画圆,发现(12,8)在圆内,所以此时对(12,8)进行进一步递归,然后继续求解即可。这里对平衡的理解:我的理解就是,如果这颗二叉树平衡了,即左右子树的高度相差在1之内,那么这颗二叉树的查询效率非常高,每次对半查询,那么时间复杂度就是logn。
2023-01-08 18:03:28
619
原创 (3分钟速览)SLAM中的三大金刚-H E F Matrix
这幅图说明对极约束的意义,这个对极约束反映了点到直线之间的映射关系,并不是点到点的对应关系,因此P1不能准确地对应到P2上面,但是我们可以通过对极约束知道P2肯定在极线l2上面。和上面那幅图一个意思,就说左边的P对应到右边平面上,然后对应点肯定落在l’这条极线上面,具体是哪个点的话是不清楚的,但是这样也算是大大减少了计算量。F的秩为2,根据F的表达式,同时有可逆矩阵不改变矩阵的秩,那么F的秩和tx的秩相等,同时tx的秩为2,所以F的秩为2即证。添加图片注释,不超过 140 字(可选)
2023-01-08 15:47:34
308
原创 (重要)实数域上一切范数等价的证明
总结:本篇博客证明了在实数域上一切范数等价的命题。那么这个二范数可不可以用一范数代替呢,答案是可以的,这个可以用一切范数等价的命题来进行证明。然后利用上面在闭集空间上最大值和最小值构造了C1和C2,接着利用最开始提到的证明两种范数等价的条件,发现满足条件,那么在实数域上一切范数等价的命题即证。首先需要明确范数等价的条件,这里的条件等价于夹逼,就是A小于等于B,B小于等于A,那么A肯定等于B。1、首先证明连续性,经过不等式放缩以后,发现当X趋于Y的时候,函数X趋于函数Y,因此证明了这个范数具有连续性。
2023-01-07 18:47:02
1621
原创 (1分钟了解)SLAM的七大问题:地图表示、信息感知、数据关联、定位与构图、回环检测、深度、绑架
绑架问题就是重定位,就是说模拟绑架的场景,被蒙上眼以后就不知道先前的位置信息了,这时候要通过SLAM来进行当前位姿的确定。SLAM中涉及到的比较重要的4个问题,地图表示问题,信息感知问题,数据关联问题,定位与构图问题。添加图片注释,不超过 140 字(可选)添加图片注释,不超过 140 字(可选)添加图片注释,不超过 140 字(可选)添加图片注释,不超过 140 字(可选)添加图片注释,不超过 140 字(可选)添加图片注释,不超过 140 字(可选)SLAM问题也被称为是CML问题。
2023-01-07 17:28:34
989
原创 (3分钟了解)SLAM后端优化的四大金刚!g2o ceres gtsam SE-Sync
总结:这篇博客中了解了SE-Sync的后端优化库,并且对后端优化的框架又有了一个新的认识和总结。就是说对偶问题的解是原问题的下确界,然后这两之间的差值被称为对偶间隙,并且当对偶间隙为0的时候,对偶问题的最优解即是原问题的最优解。添加图片注释,不超过 140 字(可选)添加图片注释,不超过 140 字(可选)添加图片注释,不超过 140 字(可选)添加图片注释,不超过 140 字(可选)添加图片注释,不超过 140 字(可选)添加图片注释,不超过 140 字(可选)添加图片注释,不超过 140 字(可选)
2023-01-07 16:19:26
1240
1
原创 相机标定中的战斗机--张氏标定法
这四个坐标系算是老朋友了,其中图像坐标系和像素坐标系是在一个平面上的,只不过两个坐标系的坐标原点不同,然后图像坐标系用xy表示,像素坐标系用uv表示。正交矩阵和旋转矩阵之间的关系,首先正交矩阵的行列式的绝对值为1,当正交矩阵的行列式为1时,此矩阵为旋转矩阵。上面的k1 k2 k3 p1 p2都是需要求解的畸变参数,这里的话畸变就是因为透镜的形状所引起的,但是这个畸变可以用数学的方式进行消除,所以没在透镜上面做文章。张正友标定法的简明流程,就是通过自行打印的棋盘格,然后从不同角度获取照片。
2023-01-07 11:25:11
950
原创 (一分钟)激光SLAM扫描匹配 文献阅读
激光提取的特征为线特征和面特征,然后这里基于特征的方法是使用其他可以使用的特征,例如曲率、法向量等作为特征。激光扫描匹配可以分为3类,分别是基于点、基于特征和基于数学特性的匹配。添加图片注释,不超过 140 字(可选)添加图片注释,不超过 140 字(可选)添加图片注释,不超过 140 字(可选)添加图片注释,不超过 140 字(可选)添加图片注释,不超过 140 字(可选)添加图片注释,不超过 140 字(可选)NDT方法,利用数学性质来进行扫描匹配。添加图片注释,不超过 140 字(可选)
2023-01-06 20:13:10
808
原创 (1分钟速览)SLAM问题中一般方程和超定方程的求解
那么此时我们可以用最小二乘拟合来对这个方程进行求解,ATAx=ATb这个方程就是求解最小二乘拟合系数的,通过这个方程进算出来的x称为最小二乘意义下的最优解,这个在SLAM问题中是经常用到的,而且如果你研究生阶段是研究SLAM的后端的话,那么这个最小二乘可能是你面试时候经常遇到的问题。不知道,但是从后面这个转换成旋转矩阵和标定矩阵来看的话,感觉QR分解的功能还是非常强大的。Cholesky分解,这个证明过程就是利用了LU分解来进行证明的,同理,这个也没有加快矩阵的计算,只是在计算过程中,外表显得更加优雅。
2023-01-06 19:02:33
461
原创 (10分钟感受) 对极几何 & PnP & ICP的用法
由于一个像素的深度数据可能测量不到,我们有:对于深度已知的特征点,使用3d-3d来求解位姿,对于深度未知的特征点,使用3d-2d的方法来求解位姿即可。这里有一个自由度可观,举个例子,针对旋转矩阵,一般选取第三行第三列元素,把矩阵的每一个元素同时除以第三行第三列的元素,那么第三行第三列位置的值为1,此时便有了8个未知量,就可认为是8自由度的求解问题,需要8个点来进行解决。以上是2d-2d 2d-3d 3d-3d的匹配的一个简略的介绍,其中最为重要的还是本质矩阵 基础矩阵的推导和计算。第一段不晓得在说啥。
2023-01-06 18:24:19
595
原创 CV中一些常见的特征点
要对上面这个图有印象。添加图片注释,不超过 140 字(可选)添加图片注释,不超过 140 字(可选)添加图片注释,不超过 140 字(可选)添加图片注释,不超过 140 字(可选)添加图片注释,不超过 140 字(可选)添加图片注释,不超过 140 字(可选)添加图片注释,不超过 140 字(可选)添加图片注释,不超过 140 字(可选)添加图片注释,不超过 140 字(可选)添加图片注释,不超过 140 字(可选)添加图片注释,不超过 140 字(可选)添加图片注释,不超过 140 字(可选)
2023-01-05 20:32:26
422
原创 (3分钟)总结数据关联(特征匹配&回环检测)
在上面表格中,描述子法也即传统的方法,其通过描述子的计算来判断当前系统是否走到之前的位置,也即判断回环。下面三个是深度学习的方法,通过网络的学习来对回环进行检测,是当前较为热门的回环检测方法。Feature Matching: 计算所有特征点描述子距离,表征了特征点的相似程度(采用不同的距离度量范数,浮点型描述子--欧氏距离,二进制描述子--汉明距离)尽管进行了特征匹配,但是仍然存在匹配错误的情况,这时候便是用RANSAC对匹配错误的匹配对进行剔除,来提高特征匹配的效果。这里的传统方法好像还有一种。
2023-01-03 18:23:16
988
原创 (1分钟)速通ikdtree
我们在理论和实际实验中都验证了ikd树的有效性。例如,在激光雷达测程法和映射中,基于k-d树的最近点搜索对于匹配新的激光雷达扫描中的一个点与其映射(或之前的扫描)[3]-[8]中的对应点是至关重要的。例如,在激光雷达测程法和映射中,基于k-d树的最近点搜索对于匹配新的激光雷达扫描中的一个点与其映射(或之前的扫描)[3]-[8]中的对应点是至关重要的。例如,在激光雷达测程法和映射中,基于k-d树的最近点搜索对于匹配新的激光雷达扫描中的一个点与其映射(或之前的扫描)[3]-[8]中的对应点是至关重要的。
2023-01-03 17:31:48
1497
原创 (1分钟)速通BA优化--光束法平差
SLAM中的BA优化,先根据相机模型和A,B图像特征匹配好的像素坐标,求出A图像上的像素坐标对应的归一化的空间点坐标,然后根据该空间点的坐标计算重投影到B图像上的像素坐标,重投影的像素坐标(估计值)与匹配好的B图像上的像素坐标(测量值),不会完全重合,BA的目的就是每一个匹配好的特征点建立方程,然后联立,形成超定方程,解出最优的位姿矩阵或空间点坐标(两者可以同时优化)。因为BA可以得到空间点的坐标,这样在优化过程中,一帧图像中有成万的点去优化,这样减慢了优化的效率,因此位姿图应运而生。
2023-01-03 11:39:24
2633
数学建模期末考试必看,神经网络,初步探索机器学习,对于建模拿奖以及以后的就业都有非常大的帮助!!!
2022-03-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人