惊鸿一博
毕业于中国科学院大学/中科院自动化研究所;专注于SLAM,三维重建,图像处理,视觉定位等;曾就职于鸿海集团,大陆集团,现在某自动驾驶独角兽企业;热爱分享,热爱生活;欢迎一起交流,学习,进步。
展开
-
slam_g2o::LinearSolverDense 和 g2o::LinearSolverEigen区别,是否可以使用 g2o::LinearSolverEigen 替换?
【代码】slam_g2o::LinearSolverDense 和 g2o::LinearSolverEigen区别,是否可以使用 g2o::LinearSolverEigen 替换?原创 2025-04-24 23:15:00 · 40 阅读 · 0 评论 -
ORB-SLAM_地图点优化_固定位姿_g2o定义_雅可比矩阵推导
在构建vslam点云地图时,如何固定位姿,仅仅对地图点进行优化的问题。原创 2025-04-21 22:30:00 · 79 阅读 · 0 评论 -
SLAM_极线搜索最佳匹配特征点_NCC
极线搜索,进行特征匹配: 根据初始参考图中参考点pt_ref的深度和深度方差图, 求得空间3D点的最远和最近两个坐标, 将其投影到当前cur图像平面, 得到当前图像平面的极线表示形式(使用极线方向 + 极线长度的组合表示), 然后遍历极线区间, 则极线上的像素点为候选匹配点, 使用NCC的方法, 计算最大的NCC得分, 得到当前图像的最佳匹配.对于每个候选点(curr), 计算与当前的参考点(ref)的相似度(相关性), 即求当前像素5*5临域像素灰度之间的相似度 (去平均值处理)原创 2024-08-30 23:30:00 · 336 阅读 · 0 评论 -
SLAM_三角化计算像素点深度_给2个匹配点+相对位姿_克莱默法则_SLAM十四讲13章公式推导_单目稠密重建
在求得深度标量值之后, 又乘以了对应的单位方向向量, (Vector3d xm = lambdavec ( 0,0 ) * f_ref;注意, 代码中, 相对像素点在相机坐标系下的三维坐标进行了归一化, 归一化成单位向量 (f_ref.normalize();其中, fr fc为两个特征点在各自相机坐标系下的归一化坐标, Rrc, t为从相机坐标系cur到相机坐标系ref的相对位姿.其中, x1 x2为两个特征点在各自相机坐标系下的归一化坐标, R, t为从相机坐标系1到相机坐标系2的相对位姿.原创 2024-08-24 16:33:30 · 211 阅读 · 0 评论 -
添加Sophus库时CMake找不到Sophus的问题
Sophus库文件, Could not find a package configuration file provided by "Sophus" with any of the following names: SophusConfig.cmake sophus-config.cmake原创 2024-08-12 22:30:00 · 384 阅读 · 0 评论 -
视觉vslam建图_目前面临的主要问题和解决方案
视觉SLAM(Simultaneous Localization and Mapping,)是机器人和计算机视觉领域中的一个重要技术,主要通过相机捕捉环境图像进行定位和地图构建。原创 2024-08-09 23:15:00 · 389 阅读 · 0 评论 -
线特征_LSD直线检测算法和LBD直线描述子
线特征在于具有天然的光照及视角不变性,同时更高级的特征也使追踪的鲁棒性和准确性有所提高。特别是在特定的人造场景(室内,走廊)等场景,能够克服无纹理或者不可靠纹理带来的干扰。线段的检测及匹配耗时相对特征点更大。同时在后端也没有一个标准且通用的SLAM优化及回环模块。线特征匹配也是较为困难的,如线段易断裂,不具备强有力的几何约束(如极线几何约束),在纹理缺失处不具有较强的辨识度等。同一条直线在不同视角下的观测不稳定,由于遮挡、直线特征提取算法等因素的影响,直线的端点不具有重复性,同一直线特征可能断裂。原创 2024-01-05 23:30:00 · 1389 阅读 · 0 评论 -
线特征_普鲁克直线的几何投影(表示/变换/直线估计)
普鲁克直线表示方法1.1 平行1.2 相交1.3 非共面2. 普鲁克直线的空间变换2.1刚体变换2.2相似变换3.普鲁克直线的空间投影原创 2024-01-04 22:00:00 · 901 阅读 · 0 评论 -
SLAM_语义SLAM相关论文
语义SLAM相关论文汇总,3篇综述,多篇经典论文。原创 2023-11-07 23:15:00 · 934 阅读 · 1 评论 -
三维重建_基于图像的三维重建_面片/光度一致性/稠密点云重建
面片是三维物体表面的局部切平面,可以近似地表示某一局部范围内的物体表面。光度一致性(photometric loss)其实就是两帧之间同一个点或者patch的光度(在这里指灰度值,RGB)几乎不会有变化,几何一致就是同一个静态点在相邻帧之间的尺度(就是尺寸大小)几乎不会有变化.原创 2023-08-20 09:26:58 · 619 阅读 · 0 评论 -
运动恢复结构(SfM)_OpenMVG_代码的核心逻辑
基于图像的三维重建 课程, OpenMVG核心逻辑,输入:摄像机内参数、特征点和几何效验后的匹配结果输出:三维点云、摄像机位姿1: 计算对应点的轨迹(Tracks)𝑡2: 计算连通图 𝐺(节点代表图片,边代表其之间有足够的匹配点)3: 在 𝐺 中选取一条边 𝑒4: 鲁棒估计 𝑒 所对应的本质矩阵 𝑬5: 分解本质矩阵 𝑬 ,得到两张图片摄像机的位姿(即外参数)6: 三角化 𝑡 ∩ 𝑒 的点,作为初始的重建结果7: 删除 𝐺 中的边 𝑒8: 如果 𝐺 中还有边:1)原创 2023-08-19 17:32:35 · 326 阅读 · 0 评论 -
专利_一种基于激光传感器的移动机器人长期定位系统及方法
本发明提供了一种基于激光传感器的移动机器人长期定位系统及方法,系统包括:长期系统模块,通过历史数据和当前观测数据建立地图栅格的动态因子,区分动态障碍物和半动态障碍物在地图更新中的影响;地图更新模块,通过激光传感器的观测信息与地图环境特征建立匹配度,结合地图信息定位能力衡量地图不同位置处观测信息可信度来建立地图更新机制,将其作为动态栅格地图更新的触发条件,并采用动态栅格模型进行状态更新;原创 2023-07-02 12:04:50 · 819 阅读 · 0 评论 -
论文笔记_2018_IV_户外环境中高效Long-Term视觉定位的地图管理
针对户外资源受限环境下的多车辆长期作业( multi-vehicle longterm operations ),提出了一套完整的地图管理流程。户外视觉定位产生大量的数据,为了在任何时间和任何外观条件下进行定位,需要将这些数据合并到终身视觉地图( lifelong visual map)中。处理这些大量数据并非易事,因为它受到车辆和映射后端有限的计算和存储能力的限制。本文用一种双重地图更新范式来解决这个问题,既可以向地图添加新的视觉线索,也可以更新共同观察统计量。原创 2023-06-23 19:27:28 · 1166 阅读 · 2 评论 -
论文笔记_2021_IROS_一种变化环境下的lifelong定位与建图框架
商场、超市等大多数现实场景的环境随时都在变化。不考虑这些变化的预建地图很容易变得过时。因此,有必要拥有一个最新的环境模型,以促进机器人的长期运行。为此,本文提出了一个通用的终身同步定位和映射 (SLAM) 框架。我们的框架使用多会话地图表示,并利用有效的地图更新策略,包括地图构建、位姿图细化和稀疏化。为了缓解内存使用量的无限制增加,我们提出了一种基于 Chow-Liu 最大互信息生成树的 maptrimming 方法。所提出的 SLAM 框架已经通过在真实超市环境中机器人部署一个多月的全面验证。原创 2023-06-11 21:53:39 · 1276 阅读 · 0 评论 -
论文笔记_2011_RAS_使用特征稳定性直方图FSH的移动机器人的建图和定位(下)
用于移动机器人的基于外观的映射模型的优势在于它们能够通过高级图像特征来表示环境并提供人类可读的信息。然而,使用这些模型开发映射和定位方法非常具有挑战性,尤其是当机器人必须处理长期映射、定位、导航、遮挡和动态环境时。换句话说,移动机器人必须处理环境外观变化,这会修改其对环境的表示。本文提出了一种基于人类记忆模型的移动机器人室内外观建图和定位方法,用于在机器人拓扑图中的每个节点处构建特征稳定性直方图(Feature Stability Histogram, FSH)。原创 2023-06-07 17:53:10 · 850 阅读 · 1 评论 -
论文笔记_2011_RAS_使用特征稳定性直方图FSH的移动机器人的建图和定位(上)
用于移动机器人的基于外观的映射模型的优势在于它们能够通过高级图像特征来表示环境并提供人类可读的信息。然而,使用这些模型开发映射和定位方法非常具有挑战性,尤其是当机器人必须处理长期映射、定位、导航、遮挡和动态环境时。换句话说,移动机器人必须处理环境外观变化,这会修改其对环境的表示。本文提出了一种基于人类记忆模型的移动机器人室内外观建图和定位方法,用于在机器人拓扑图中的每个节点处构建特征稳定性直方图(FSH)。原创 2023-05-21 17:18:44 · 772 阅读 · 0 评论 -
论文笔记_2020_TPAMI_Long-Term视觉定位综述
视觉定位使自动驾驶汽车能够在周围环境中导航,增强现实应用程序能够将虚拟世界与现实世界联系起来。实用的视觉定位方法需要对各种观察条件具有鲁棒性,包括昼夜变化以及天气和季节变化,同时提供高度准确的六自由度 (6DOF) 相机姿态估计。在本文中,我们扩展了三个公开可用的数据集,其中包含在各种观察条件下捕获的图像,但缺少相机姿态信息,具有地面真实姿态信息,使得评估各种因素对 6DOF 相机姿态估计精度的影响成为可能。我们还讨论了这些数据集上最先进的本地化方法的性能。原创 2023-05-15 07:40:01 · 455 阅读 · 0 评论 -
论文笔记_2018_IEEE Access_评估地图用于车辆定位能力的因素
最近,由于高精地图的可用性以及光检测和测距技术的价格下降,基于激光扫描仪数据与高清(HD)地图匹配的自动驾驶汽车的自我定位变得越来越流行。前人已经进行了许多类型的研究以实现本地和全球准确的高清地图以进行准确定位。然而,地图的全局精度并不能保证地图内的准确自定位。为了实现准确的自定位,地图应该满足一些要求。在本文中,重点放在地图上,地图是定位错误的高潜在来源之一。通过调查地图中的错误场景并比较它们的特征,我们为地图的自定位能力引入了四个标准。这些标准是地图的特征充分性、布局、局部相似性和。原创 2023-05-09 23:30:00 · 757 阅读 · 0 评论 -
NDT_正态分布变换_算法原理
无人车激光SLAM系统简单可以分为建图和定位两部分,无人车的定位问题,实际上就是要找出无人车当前在地图的那个位置(并且要求精度在厘米级别)。其中有一类方法被称为即时定位与地图构建(simultaneous localization and mapping,SLAM),它能够实现导航定位而不需要地图,然而,真正实现无人车的SLAM是非常困难的,作为交通工具,远距离的行驶会使得实时构建地图的偏差变大。所以,在已经拥有高精度地图的前提下去做无人车的定位,是更加现实,简单的。原创 2023-05-05 22:15:00 · 676 阅读 · 0 评论 -
Ubuntu20.04安装CloudCompare及简单使用说明
open:打开save:保存Global Shift settings:设置最大绝对坐标,最大实体对角线Primitive Factory:对点云进行原始加工,改变原始点云的形状3D mouse:对3D鼠标(如3Dconnexion)的支持Close all:关闭所有打开的实体Quit:退出。原创 2023-04-23 15:19:44 · 2355 阅读 · 0 评论 -
论文笔记_BEV-Locator:一个端到端的采用多视角图像的视觉语义定位网络
准确的定位能力是自动驾驶的基础。传统的视觉定位框架通过几何模型来解决语义地图匹配问题,几何模型依赖于复杂的参数调整,从而阻碍了大规模部署。本文提出了BEV定位器:一种使用多目相机图像的端到端视觉语义定位神经网络。具体地,视觉BEV(鸟瞰图)编码器提取多目图像并将其展平到BEV空间中。而语义地图特征在结构上嵌入为地图查询序列。然后,采用跨模态的转换器(cross-model transformer)将BEV特征和语义图查询关联起来。通过交叉注意力模块递归地查询自车的定位信息。原创 2023-03-16 10:15:07 · 932 阅读 · 0 评论 -
常见的数值积分方法_欧拉积分/中值积分/龙格-库塔积分
如果解的光滑性差,那么,使用四阶龙格-库塔方法求得的数值解,其精度可能反而不如改进的欧拉方法。欧拉积分与中值积分都是一阶近似并没有本质不同,二者只是一阶导数所取位置不同,他们的性能也有差别,如下图所示,作为一阶积分近似方法来讲,中点积分有时会稍好一些(带来更快的收敛速度)。龙格-库塔法的示意图如下,它也是一种更高阶的逼近方法,通常也具有更好的逼近效果,总累计误差为 Δt4 阶。欧拉方法假设导数在区间内是恒定的,作为一般的RK方法,这对应于单阶段方法,计算初始点的导数,并用它来计算终点的积分值。转载 2023-03-15 11:37:14 · 2934 阅读 · 0 评论 -
概率统计_协方差的传播 Covariance Propagation
是指分析在形如的关系中,对的影响有多大。误差的传播与函数的微分紧密相关,本质是在利用当Δ x 不大时,。方差计算公式:X为变量,为总体均值,N为总体例数。求变量X与均值的差的平方再求平均值,即得到方差。方差一般用来衡量这组数据的波动大小是通过的不确定度, 分析y的不确定度。该问题有时也称为方差的合成。原创 2023-03-14 23:09:45 · 894 阅读 · 0 评论 -
Linux 动态库 undefined symbol 原因定位与解决方法
linux下没有直接依赖关系,所有的B/C的依赖都会转到到A下,可以用LDD命令验证,此时A只依赖于B, 不见C, 当B中的函数调用C中的函数时,因为没有加载C, 所以报找不到符号错误。第三方已经编译好的库,在引入了对应的头文件,使用了其中的某个方法,最终链接的时候出现 undefined symbol,这种情况有可能是库的开发者并没有导出这个方法的符号。Gcc 对 c++ 的新特性是一步一步的增加的,如果实现了新的特性,就可能会修改 c++ 的 abi,并且会升级 glibc 的版本。原创 2023-03-01 12:54:21 · 5678 阅读 · 0 评论 -
数学_SVD(Singular Value Decomposition)奇异值分解的理解
由公式可以看出如果原始矩阵A是m行n列,那么分解成的三个矩阵U,Σ,V依次是m行m列,m行n列,n行n列。矩阵sigma(即图1 U和V中间的矩阵)除了对角元素,其他元素都为0,并且对角元素是从大到小排列的,前面的元素比较大,后面的很多元素接近0。当然在实际应用中,我们仅需保留着三个比较小的矩阵,就能表示A,不仅节省存储量,在计算的时候更是减少了计算量。携带了数据集中的大部分信息,而其他信息要么是噪声,要么就是毫不相关的信息。矩阵分解可将原始矩阵表示成新的易于处理的形式,新形式是两个或多个矩阵的乘积。转载 2022-12-11 22:37:19 · 676 阅读 · 0 评论 -
BA_重投影误差e对于相机的位姿ξ和对空间点的坐标P的雅可比矩阵的推导
重投影误差表示为, 相机的位姿表示为(或者表示为T=(R,t)), 空间点表示为, 则空间点投影到相机坐标系下的空间坐标点的相机坐标表示为, 则重投影误差e对于相机的位姿ξ的雅克比矩阵表示为分别求等式右侧的两半部分(误差对空间点的相机坐标的导数,和 空间点的相机坐标对相机位姿的导数),然后相乘即可。同理, 重投影误差e对于空间点的坐标P的雅可比矩阵,可以表示为分别求等式右侧的两半部分(误差对空间点的相机坐标的导数,和 空间点的相机坐标对空间点视觉坐标的导数),然后相乘即可。最终结果。原创 2022-12-11 21:57:49 · 1244 阅读 · 0 评论 -
数学_使用舒尔补简化矩阵求逆
使用舒尔补简化矩阵求逆,1.将待求逆矩阵M,拆分成2x2的分块矩阵。2.将2x2的分块矩阵,利用舒尔补,拆成3个对角矩阵。3.求解矩阵M的逆,就等于3个对角矩阵的逆的乘积。原创 2022-11-22 08:23:24 · 3930 阅读 · 0 评论 -
期望E与高斯分布的期望
目录1. 期望定义2. 期望性质2.1 用期望定义方差 / 标准差方差定义标准差定义 方差的表示——离散型:方差的表示——连续型:方差的性质3. (一元)高斯分布定义4. (一元)高斯分布的性质参考 其中,第2条性质: E(EX) = EX:对变量X的期望再求期望,等于X的期望;同理,对 的期望再求期望,依然还是X的期望。期望有时还用 表示,即 或表示为 。设X为随机变量,若 (变量X减去自己的期望后的平方,再求期望)存在, 则称为随机变量X的方差,记作DX 或Var(X),即: 或者 或者表示为 ,原创 2022-11-19 12:42:13 · 1887 阅读 · 0 评论 -
PL-VINS:实时基于点线的单目惯导SLAM系统
利用线特征来提高基于点特征的视觉惯性SLAM(VINS)的定位精度越来越重要,因为它们提供了结构化场景中规则性的额外约束,然而,实时性能一直没有得到关注。本文介绍了PL-VINS,一种基于实时优化的具有点和线的单目VINS方法,它是在最新的基于点的VINS Mono的基础上发展起来的。观察到目前的工作是使用LSD算法来提取直线,但是LSD是为场景的形状结构表示而设计的,而不是针对特定的姿态估计问题,由于其昂贵的成本成为实时性能的瓶颈。本文通过对隐参数调整和长度抑制策略的研究,提出了一种改进的LSD算法。转载 2022-10-08 15:00:28 · 2708 阅读 · 0 评论 -
数学_四元数的求导详细推导
设设单位时间内,四元数发生了一个微小的变化,记作 . 因为采用单位四元数可表达任意三维旋转,且无奇异性;另外,四元数还可以用角轴两个变量进行表示,设角轴为 ω 和 θ,四元数和角轴的转换关系为: (6)所以,设初始旋转为 q = [s, v],那么 q 相对该旋转的导数为:TODO向量的点积, 向量的叉积,三角求导lim 近似公式原创 2022-10-02 09:24:12 · 3204 阅读 · 0 评论 -
SLAM算法-因子图建模
SLAM或者计算机视觉的问题目标是利用观察到的数据(图像,点云)来推理现实世界中的某些事情(全局状态),比如通过连续的视频帧推理相机的运动,比如通过3D点云数据推理机器人的移动状态(位置和姿态)。SLAM和计算机视觉都尝试描述一个用来解决此类问题的数学框架模型。解决此类问题需要三个要素:模型: 在数学上将数据和全局状态关联起来推理:根据数据,利用模型计算全局状态的后验概率学习:利用成对样本和状态,来学习模型参数。转载 2022-09-20 08:13:38 · 2536 阅读 · 0 评论 -
数学_矩阵的泰勒展开公式
从一元函数 到 矩阵的泰勒展开公式转载 2022-09-12 07:06:16 · 7017 阅读 · 0 评论 -
IMU标定_随机误差的标定
IMU标定 随机游走误差原创 2022-07-18 21:30:55 · 536 阅读 · 0 评论 -
SLAM_旋转运动学_两个坐标系速度v和加速度a的关系
惯性系(静止的那个)与body坐标系(运动的那个)之间的旋转矩阵记为 R_IB,则,两个坐标系下的速度,不是相差一个矩阵R_IB,而是还要加一个项 w x r_I, r_I为惯性系下的运动快的坐标。两个坐标系下的加速度,也不是相差一个矩阵R_IB,还有科氏力、欧拉力、离心力的影响。其中科氏力是制造加速度计的理论基础。...原创 2022-07-13 21:17:14 · 2829 阅读 · 0 评论 -
SLAM中常用的雅克比矩阵J
1. 知识背景1.1 李群SE(3) 与 李代 SO(3)的转换关系2.常用的雅克比矩阵J2.1 旋转点的左扰动雅可比2.2旋转点的右扰动雅可比2.3旋转连乘的雅可比2.4旋转连乘的雅可比原创 2022-06-25 22:45:39 · 1455 阅读 · 0 评论 -
用向量表示两个坐标系的变换
用向量表示两个坐标系的变换原创 2022-06-23 22:48:09 · 1169 阅读 · 0 评论 -
VINS-Mono 代码详细解读4——feature_manager.cpp
vins-mono SLAM中estimator.cpp中关键函数为processImage(),里面包含了IMU预积分、图像处理特征点跟踪等一系列流程,上一节中对processIMU()以及预积分的integrationBase类进行解读,本节继续做基础储备,对与estimator.cpp中的feature_manager.cpp进行详细介绍,主要是对特征点管理。特征点管理器主要就是FeatureManager类......转载 2022-06-22 09:22:01 · 1166 阅读 · 0 评论 -
DBoW2库介绍
BoW(Bag of Words,词袋模型),是自然语言处理领域经常使用的一个概念。以文本为例,一篇文章可能有一万个词,其中可能只有500个不同的单词,每个词出现的次数各不相同。词袋就像一个个袋子,每个袋子里装着同样的词。这构成了一种文本的表示方式。这种表示方式不考虑文法以及词的顺序。在计算机视觉领域,图像通常以特征点及其特征描述来表达。如果把特征描述看做单词,那么就能构建出相应的词袋模型。这就是本文介绍的DBoW2库所做的工作。利用DBoW2库,图像可以方便地转化为一个低维的向量表示。比较两个图像的相似转载 2022-06-10 09:53:19 · 1901 阅读 · 1 评论 -
ORB-SLAM3中的双目稀疏立体匹配
来源: 计算机视觉lifeGitHub链接:GitHub - electech6/ORB_SLAM3_detailed_comments: Detailed comments for ORB-SLAM3整体思路:目的:两帧图像稀疏立体匹配(即:ORB特征点匹配,非逐像素的密集匹配,但依然满足行对齐)输入:两帧立体矫正后的图像img_left 和 img_right 对应的orb特征点集输出:稀疏特征点视差图/深度图(亚像素精度)mvDepth 匹配结果 mvuRight过程:1.原创 2022-05-30 14:48:22 · 1490 阅读 · 0 评论 -
SLAM_BA中重投影误差e 关于相机位姿扰动量δξ 的雅克比矩阵J 公式推导
1. 问题定义在SLAM中,为了使用重投影误差 e 对相机的位姿 ξ (李代表示形式)进行优化,需要求重投影误差e关于相机位姿扰动量δξ (本文使用左乘扰动,参考SLAM十四讲7.7.3节)的雅克比矩阵J=。该公式在代码中(如G2O中)进行使用进行相机位姿的优化计算。结果如下,其中 表示相机坐标系下的三维坐标点。2. 推导过程当我们知道了一个3D空间点坐标和其对应的2D图像坐标时,重投影误差e,表示...原创 2022-04-28 16:45:47 · 2967 阅读 · 0 评论