自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 左雅可比和右雅可比

SO(3) 中,旋转矩阵可以表示为:R=exp⁡(ϕ∧)\boldsymbol R=\exp(\boldsymbol\phi^\wedge)R=exp(ϕ∧)假设旋转向量随时间变化:ϕ=ϕ(t)\boldsymbol\phi=\boldsymbol\phi(t)ϕ=ϕ(t)那么:R(t)=exp⁡(ϕ(t)∧)\boldsymbol R(t)=\exp(\boldsymbol\phi(t)^\wedge)R(t)=exp(ϕ(t)∧)我们想求:R˙=ddtexp⁡(ϕ∧)\dot{\bolds

2026-11-05 18:02:00 204

原创 【共轭变换与伴随算子等价公式】

e−sABesA=e−sadA(B)e^{-sA}Be^{sA}=e^{-s\mathrm{ad}_A}(B)e−sABesA=e−sadA​(B)第一步:展开左右两个指数根据泰勒展开:e−sA=I−sA+s2A22!−⋯e^{-sA}=I-sA+\frac{s^2A^2}{2!}-\cdotse−sA=I−sA+2!s2A2​−⋯esA=I+sA+s2A22!+⋯e^{sA}=I+sA+\frac{s^2A^2}{2!}+\cdotsesA=I+sA+2!s2A2​+⋯代入:e−sABe

2026-11-04 20:05:36 219

原创 矩阵指数求导

FteAteAIA2!A2​3!A3​⋯FtIAt2!At2​3!At3​⋯现在对它逐项求导, 前几项分别是:dtdI​0dtdA​A˙dtdA2​A˙AAA˙这里要特别注意!1​A˙AAA˙3!1​A˙A2AA˙。

2026-11-04 15:30:32 195

原创 【slam公式】

F:状态转移矩阵H:观测矩阵R: 观测噪声协方差。

2026-11-04 14:41:28 259

原创 GTSAM VS CERES

GTSAM和ceres本质一致都是因子图优化。

2026-07-14 18:04:12 214

原创 企业级agent设计流程

真正可落地的 agent 通常是 4 层:② Agent Orchestration Layer(核心逻辑)③ Tool Layer(能力接口)④ Data Layer(企业数据)

2026-07-01 10:21:26 247

原创 【噪声处理方式 imu重力方向确定 粒子滤波】

一、如果完全不处理噪声,会怎样?比如:ΔR,Δv,ΔpRk1​Rk​exp((ω−bg​Δtvk1​vk​Ra−ba​ΔtgΔt这叫:Deterministic Integration(确定性积分)问题:imu噪声会被连续积分陀螺噪声 → 姿态漂移加速度噪声 → 速度漂移二次积分 → 位置爆炸而优化器:根本不知道哪些误差来自噪声。

2026-05-09 14:00:25 341

原创 LLM学习

├── Full Fine-tuning(全参数更新)├── Additive methods(添加参数)│ ├── Prompt Tuning(输入层加 soft prompt)│ └── Prefix Tuning(每层加可学习 KV 前缀)├── Selective methods(选择部分参数训练)└── Reparameterization methods(低秩近似)├── LoRA。

2026-03-31 20:58:35 494

原创 【occupancy 框架】

将这N个来自不同视角的2D特征聚合起来(常用方法:求和、求平均、注意力加权、Transformer等),形成一个融合后的特征。如果是隐式形式,可以输入一个MLP来预测该点的占用值​ 或符号距离场​值,最终通过提取占用等值面​ 来得到重建的3D表面。隐式形式是更为先进的做法。对于每一个 3D Query(一个3D点):利用相机参数(内参、外参),将这个3D点投影到N个不同的2D图像平面上,得到N个对应的2D像素坐标。从之前提取好的N个视角对应的2D特征图中,通过双线性插值,取出这N个2D坐标位置的特征值。

2026-03-24 14:53:24 486

原创 彻底理解因子图优化

在这个 SLAM 实例中,H Δx = -b就是利用当前的位姿和路标点估计,以及传感器观测(图像、里程计),计算出一个最优的“微调方案” Δx,使得机器人的运动轨迹和地图更加准确。r(x)是一个广义的误差项,它编码了“观测到的实际值”与“基于当前状态估计预测出来的值”之间的差异。闭环检测误差:当识别出当前场景是之前访问过的地方,就产生一个位姿约束,其残差是“当前估计的位姿”与“通过闭环匹配计算出的位姿”之间的差。平面约束:假设地面是平的,那么机器人的高度、姿态就要受到这个平面模型的约束。

2026-03-10 17:25:41 750

原创 BEVFormer

BEVFormer 相比 Lift-Splat-Shoot 的核心创新,本质是把 “从图像构造 BEV” 的方式从显式几何投影,改为 Query-based Transformer 表达。这带来了三个关键改变:BEV 表达方式改变(Query-based BEV)图像 → BEV 的信息提取方式改变(Cross Attention vs Lift)引入时序 BEV 状态(Temporal Self Attention)如何理解这三点呢?

2026-03-06 18:15:22 476

原创 lift splat shoot

在透视相机模型中,图像上的一个像素​ (u, v)并不对应一个具体的3D点,而是对应一条从相机光心出发、穿过该像素的3D射线。这条射线上的所有点,在图像上都投影到同一个像素 (u, v)。关键问题:我们不知道这个像素对应的真实3D点到底在这条射线上的哪个位置(即深度 d未知)。,离散出D个深度bin,那么每个像素(u,v)会生成D个3D点。它是:某个像素在某个深度假设下的语义特征向量。它是“像素语义特征 × 这个深度假设的置信度”这就是所谓的 视锥体特征体积。再通过外参变换到车体坐标系。

2026-03-04 15:49:32 213

原创 DETR3D学习内容总结

初始化少量object query→ 预测3D中心点→ 投影到各相机→ 双线性采样图像特征→ 自注意力交互(多视角特征融合)→ 更新query→ 回归完整box。类似于 Object DGCNN,我们的方法无需后处理(如逐图像或全局 NMS),在性能上可与依赖 NMS 的方法相媲美,并在摄像头重叠区域取得显著优势。传统方法先做2D检测,再做3D回归,2D->3D必须依赖深度估计+几何约束+统计先验,是自底向上的方法。2D检测 → 深度估计 → 重建点云 → 3D检测 → NMS。

2026-03-03 15:38:02 108

原创 yolo26 阅读笔记

本文总结了YOLO-26目标检测模型的创新点及相关技术。创新点包括:1)移除分布焦点损失(DFL);2)实现NMS-free检测;3)更新C3k2模块;4)提出渐进损失平衡(ProgLoss)和小目标感知标签分配(STAL);5)采用MuSGD优化器。关键技术包括解耦检测头设计、无锚框预测方法、DFL损失函数原理及其局限性、NMS-free实现机制,以及改进的C3k2模块结构。特别地,C3k2模块将PSA注意力机制与Bottleneck分支并行处理,实现局部几何与全局语义特征的有效解耦,提升了模型性能。这些

2026-01-30 18:45:30 758

原创 综述笔记1

然而,在现实应用中,行人、车辆等动态物体广泛存在,会破坏几何一致性假设,导致特征匹配错误或光度误差失效,从而影响位姿估计与地图构建的稳定性。随着 SLAM 技术在移动设备和嵌入式系统中的应用需求不断增加,如何在有限计算资源下实现高精度、低延迟的定位与建图,成为一项重要挑战。在长期运行场景中,环境可能发生结构性变化,如家具移动或道路施工等,这会导致已有地图逐渐失效。除精度指标外,系统的运行帧率、CPU/GPU 占用以及内存消耗也是衡量 SLAM 算法工程可用性的重要指标,特别是在嵌入式平台和移动设备上。

2026-01-05 20:24:11 533

原创 多线程入门(待优化)

多线程 = 在同一个进程里,让多个执行流“看起来同时”运行,并共享同一份内存和资源。如果没有多线程,一个程序只有一种执行方式:读传感器 → 处理 → 保存 → 再读传感器,任何一步慢了,整个程序都卡住。多线程的目的就是:把“互不依赖 or 可并行的工作”拆开,同时推进。线程是 CPU 调度的最小单位,每个线程有:独立的栈、独立的寄存器、但共享进程的地址空间。

2025-12-26 18:29:41 816

原创 【卡尔曼滤波公式】

2025-12-07 11:05:24 142

原创 户外重复/低纹理场景 描述子词袋匹配

Aa1a2a256Aa1​a2​a256​Bb1b2b256Bb1​b2​b256​汉明距离定义为:逐位比较 A 与 B,有多少位不同,就算多少分。

2025-11-27 11:31:00 957

原创 cv::reprojectImageTo3D和cv::stereoRectify

注意:许多算子(StereoSGBM/StereoBM)输出的视差被放大(例如 SGBM 输出是 disparity = real_disp * 16)。必须来自 stereoRectify 输出,结构含义可把 (u,v,d,1) 映射到齐次 (X,Y,Z,W)。含义:_3dImage.at(v,u) = {X, Y, Z}(注意访问顺序是 y,x)。语义:每像素的视差 d = x_left - x_right(以像素为单位)。类型:单通道(CV_8U,CV_16S,CV_32F 等均可)。

2025-11-26 11:00:54 329

原创 ros保存图片

若需格式转换,需手动指定 encoding 参数(如 sensor_msgs::image_encodings::BGR8),但转换时仍可能依赖原始数据的内存布局。即使原始 ROS 消息被销毁(如超出作用域),转换后的 cv::Mat 仍可正常使用,且其生命周期由 OpenCV 管理(自动释放内存)。必须保证原始 ROS 消息在 cv::Mat 使用期间始终有效(即未被销毁),否则 cv::Mat 会访问无效内存,导致程序崩溃(悬空指针问题)。一、核心区别:是否 “拷贝数据”

2025-11-25 20:34:23 298

原创 Ubuntu 20.04 系统库管理详细教程

Ubuntu的库管理系统通过包管理器、环境变量、配置文件等多种机制协同工作。正确安装和使用第三方库解决编译和运行时的库依赖问题管理多版本库的共存创建可重现的开发环境每次安装软件需要设置环境变量的根本原因是Linux系统需要知道在哪里找到这些库和可执行文件,而环境变量就是告诉系统这些信息的标准方式。

2025-11-04 17:53:34 917

原创 VINS-Fusion代码解读-小白友好版

​​偏置补偿​​:递推过程中使用的加速度和角速度,都会​​减去当前估计的偏置值​​(acc - Bas[j]和 gyr - Bgs[j])。​​重力向量细化 (RefineGravity)​​:初始求解时,重力向量被当作一个自由的3维向量来估计,这可能会引入误差,因为其模长应是固定的(约9.8 m/s²)。​​坐标系转换​​:加速度测量值会​​从IMU本体坐标系转换到世界坐标系​​(通常是第一帧的IMU坐标系)再进行积分。​​重力处理​​:在世界坐标系下积分速度时,需要​​加上重力加速度 g​​。

2025-10-25 18:08:55 985

原创 ros命令

打开图形化界面后,你可以在上方下拉菜单中选择 /cam0/image_raw、/cam1/image_raw 等话题;如果是图像话题 /cam0/image_raw,直接 echo 输出的数据会非常多,不建议这样做。要查看系统中有哪些正在发布的话题(topics),可以用以下几个命令 👇。适合检查相机是否发布图像、是否同步、画面是否正常。哪个节点发布 /cam0/image_raw。六、查看话题的消息结构(定义)三、实时查看某个话题的数据流。二、查看某个话题的数据类型。五、查看某个话题的发布频率。

2025-10-22 15:37:16 401

原创 一个旋转计算

VINS-Fusion中IMU用的是惯导坐标系:前x,右y,下z,重力向量G{0.0, 0.0, 9.8},相机使用的坐标系是,右x,下y,前z公司同事标定好的数据,将坐标系统一为相机坐标系,鄙人觉得这不甚优雅,所以要给他算回来,顺手记录一下运算过程。

2025-10-17 17:31:52 269

原创 Slam重定位(一)

摘要 重定位是SLAM系统在跟踪失败或漂移过大时恢复位姿的关键技术。当跟踪特征点不足(如VINS-Fusion中<30点)或光流残差过大(>3px)时触发。主要方法包括:基于特征的PnP匹配(ORB-SLAM)和点云配准(LiDAR-SLAM),通过重投影误差、匹配数量和一致性等指标评估定位质量。系统需维持特征点数量(约150个)并处理视野变化导致的特征丢失。重定位成功后通过图优化融合位姿,当结果不一致时优先选择误差小、置信度高的解。

2025-10-17 14:34:52 1407

原创 VINS-Fuson+ROS1-noetic 仿真

本文介绍了ROS noetic和VINS-Fusion的完整安装配置流程。首先详细说明了ROS noetic的安装步骤,包括添加软件源、安装依赖、设置环境变量等,并通过小乌龟示例验证安装。然后详细指导了VINS-Fusion的编译过程,包括安装依赖库、修改源代码适配ROS noetic、编译及运行测试。重点说明了需要修改的5处代码内容,特别是OpenCV版本兼容性和C++标准调整。最后提供了运行数据集的命令,可通过RViz可视化验证安装结果。整个过程涵盖了从基础环境搭建到SLAM系统部署的完整流程。

2025-10-14 20:35:06 956

原创 自适应滑动窗口优化

在非线性优化的后端(Bundle Adjustment / 非线性最小二乘),为了保证计算可实时,不能无限保留所有历史关键帧和观测。在 processImage() 里,当新关键帧加入时,不再直接判断 frame_count == WINDOW_SIZE,每次边缘化后,会形成先验因子。如果发现先验信息过弱(如协方差过大,估计不稳定),则延缓边缘化,扩大窗口。窗口扩展:新关键帧加入窗口时,如果运动大/观测少,可以暂时允许窗口超过固定大小。如果先验信息较强(信息矩阵数值大),则可以大胆边缘化,缩小窗口。

2025-09-29 14:47:33 1042

原创 梯度下降法、牛顿法、GN、LM,推导、优缺点

在实际应用中,LM算法因其卓越的稳健性和效率,通常是解决中小规模非线性最小二乘问题(如计算机视觉中的Bundle Adjustment、曲线拟合)的首选方法。牛顿法 (Newton) 二阶近似,使用完整Hessian 收敛速度极快(二阶) 计算存储开销巨大,需H正定 中小规模、Hessian易求的问题。梯度下降 (GD) 一阶近似,沿负梯度方向 实现简单,内存开销小 收敛慢,对步长敏感 大规模问题,深度学习。,在梯度下降和高斯-牛顿法之间自适应平滑切换,解决了 GN 法的不稳定问题。

2025-09-15 13:22:52 996

原创 左值引用与右值引用

省去了搬运的体力活!noexcept关键字向标准库承诺这个操作不会抛出异常,这很重要,因为标准库容器(如std::vector)在重新分配内存时会优先使用noexcept的移动操作而不是拷贝操作来转移元素,性能更高。“通常”这个词的含义:在现代编译器中,对于这种简单的返回局部对象的场景,RVO优化非常强大且几乎总是会发生(尤其是在Release模式下)。没有优化(C++03时代):你得先在A城找个仓库(函数栈帧)放家具,然后雇辆卡车,把家具一件件搬上卡车(拷贝),运到B城后,再一件件卸下来放到新家。

2025-09-09 22:15:14 770

原创 SLAM处理流程

​​IMU误差项的整合方式​​:在紧耦合优化中,IMU预积分误差并非在BA之后计算并用作修正,而是作为BA优化目标函数中的一个​​组成部分(约束项)​​,与重投影误差​​同时​​被最小化。​​BA的规模​​:“对pnp获取到的位姿和3D点进行矫正”更准确地说是​​局部BA​​,它优化一个窗口内的帧和点。​​优化变量​​:通常是一个滑动窗口内的​​多个关键帧的位姿​​以及​​这些关键帧观测到的所有地图点​​。​​闭环约束​​:一旦检测到回环,会计算当前帧与回环关键帧之间的​​相对位姿约束​​。

2025-09-05 12:40:21 694

原创 算法面试题(上)

设计这个窗口就在于,把新得到的 f(n) 加进窗口,把最旧的 f(n−m) 移出窗口,计算窗口内m个f值的和,我们可以用循环数组或者双端队列实现。比如计算 f(5) 需要算 f(4) 和 f(3),而计算 f(4) 又需要算 f(3) 和 f(2)。DP是“自底向上”:我们从已知的 f(0)=1 开始,一步一步、从小到大地计算出所有台阶的方法数,直到算出我们想要的 f(n)。, f[i-m])。按 x 排序:(1,5), (2,3), (4,7), (5,4), (7,2), (8,1), (9,6)

2025-09-01 15:14:15 1047

原创 yolov1-yolov11进化史

neck:YOLOv2 没有 FPN,但使用了一个轻量级特征融合模块:将中间层(如 26×26×512)的特征映射通过 reshape(空间压缩 + 通道扩展)连接到最终层(13×13)。Head(预测模块):在三个尺度(13×13, 26×26, 52×52)分别进行检测,并预测 bounding box、objectness、class 置信度。yolov3之后就不是yolo原作者了,v4没有什么原创的设计,但是做了相当多的对比实验,把很多当时有效果的模块或是创新都用上了。

2025-07-28 20:27:55 1029

原创 yolo位置损失中的权重项的作用是什么

在YOLO(尤其是YOLOv1到YOLOv3)的目标检测损失函数中,位置损失(Localization Loss)的权重项(通常记为λcoord​是一个关键的超参数,用于平衡不同损失分量(位置、置信度、分类)之间的贡献比例。

2025-07-17 17:44:42 401

原创 【图像成像原理】

RAW 图像是图像传感器(CMOS 或 CCD)直接输出的原始数据,它记录了每个像素点接收到的光强信息,通常是未经过任何颜色处理、降噪、锐化、白平衡等的“原始像素值”。通过聚焦光线,将物理世界的图像投影到图像传感器(CCD 或 CMOS)上,形成数字图像。CMOS(互补金属氧化物半导体)和 CCD(电荷耦合器件)是两种主流的图像传感器技术。镜头系统(多个透镜)将外部场景的光线聚焦到图像传感器(CMOS/CCD)上。每个像素只记录一个颜色(由前端 CFA (颜色滤光阵列)决定)。

2025-07-16 16:40:46 1034

原创 虚拟项目[3D物体测量]

学了很久的SLAM,决定做一个最简单的虚拟项目(假装我有个项目),3D物体测量,只需要用到最基础的立体匹配,重投影,ICP就可以。假设两个双目相机固定在物体的俯视位置和平视位置,背景为黑色幕布(后续无需分割)以下是gpt给我的方案,由于立体匹配一般摄像头厂家出厂就自带了(能输出深度信息),我们只需要求得两个摄像头之间的旋转与平移就能将两个局部点云转换到同一个世界坐标系,但是为了学习,我们还是看一下立体匹配和视差图计算部分。

2025-07-10 15:50:29 908

原创 论文阅读-单目视觉惯性系统时间标定(二)

误差对优化状态(如姿态、速度、位置、偏置)求导,得到雅可比矩阵J。我们主要关心偏置对预积分变量的影响(因为偏置通常在滑窗中参与优化):为什么不是expΔ𝑅⋅𝐽⋅𝛿𝑏𝑔?𝑅−1𝑅⊤𝑅^{−1}=𝑅^⊤R−1R⊤协方差:误差不确定性的量化 预积分的误差是随机过程积分后累积的,即: IMU 本身存在高频噪声。bias 也在缓慢随机漂移。通过误差状态模型(通常是线性化的随机过程模型),可以推导出误差协方差P。

2025-06-21 00:59:01 1220 1

原创 论文阅读-单目视觉惯性系统时间标定

本文提出了一种在线标定视觉-惯性系统中相机与 IMU 之间时间偏移的方法。该方法将时间偏移视作一个待估参数,联合优化相机状态、IMU 状态与特征点位置,以实现高精度的时间同步。该方法具备以下优势:通用性强,可嵌入多种基于优化的 VIO 框架中;无需额外标定图案,如棋盘格即可在线运行,适合实际部署;实验显示,其标定精度与 Kalibr 等离线工具相当,甚至在稳定性和实时性方面更具优势;在 EuRoC 与实际场景测试中表现出优异的鲁棒性与轨迹精度。

2025-06-14 17:13:33 1401 1

原创 从零开始学SLAM-Lidar+相机标定

采集图像+点云帧]↓[图像识别棋盘 → PnP → 得到 (o_c, n_c)]↓[点云提取平面 → RANSAC → 得到 (o_l, n_l)]↓[构造误差模型,优化 R 和 t]↓[验证结果 → 投影对齐 → 保存标定外参]这里给一个参考视频,是一个博主拿他采集的数据使用Matlab进行标定的操作视频。

2025-05-28 00:36:49 1284

原创 ios系统安装miniforge+vscode+pcl+opencv

Homebrew 最初是由 Max Howell 在 2009 年开发的。当时 macOS 系统缺乏一个像 Linux 上的 apt-get 或 yum 那样的包管理工具,用户在安装软件时往往需要手动下载、编译和配置,过程繁琐且容易出错。Homebrew 的出现填补了这一空白,它借鉴了 Linux 上的包管理理念,并针对 macOS 系统进行了优化。$(curl-fsSLbrew install+‘‘要安装的包’’

2025-05-26 11:39:51 1213

原创 ORB特征点检测算法

角点是图像中灰度变化在两个方向上都比较剧烈的点。与边缘(只有一个方向变化剧烈)或平坦区域(灰度变化很小)不同,角点具有方向性和稳定性。tips:像素梯度计算。

2025-05-12 22:03:24 1739

空空如也

空空如也

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

TA关注的人

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