自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(76)
  • 问答 (2)
  • 收藏
  • 关注

原创 快速上手大模型:深度学习13(文本预处理、语言模型、RNN、GRU、LSTM、seq2seq)

本文摘要介绍了文本预处理和语言模型的基础知识,以及RNN、GRU、LSTM等神经网络模型。主要内容包括:1)文本预处理步骤(读取数据、词元化、构建词表);2)语言模型定义与实现(n元语法模型、困惑度评估);3)RNN及其变体GRU、LSTM的原理;4)编码器-解码器架构及其在seq2seq任务中的应用。重点强调了文本预处理和语言模型的重要性,而RNN系列模型仅需了解。文中提供了完整的代码实现,包括数据处理、模型构建和评估方法。这些内容是构建大语言模型的基础知识。

2025-11-24 22:08:21 263

原创 快速上手大模型:深度学习12(目标检测、语义分割、序列模型)

本文介绍了计算机视觉中的目标检测、语义分割和序列模型三大任务。目标检测部分详细讲解了边界框表示方法及代码实现,并概述了R-CNN系列、SSD、YOLO等经典算法的发展历程和特点。语义分割部分简要说明其像素级分类的特性。序列模型部分则介绍了时间序列数据的建模方法,包括马尔科夫假设和潜变量模型等自回归模型计算方法。文章还指出当前主流算法已转向YOLOv8/v9、DINOv2、SAM等更先进的模型。

2025-11-24 11:13:50 577

原创 快速上手大模型:深度学习11(数据增强、微调、目标检测)

本文介绍了深度学习中的三种关键技术:数据增强、微调和目标检测。数据增强部分阐述了翻转、切割、颜色变换等方法,并提供了相关代码实现。微调部分讲解了预训练模型的应用方式,包括冻结层训练和完全微调,并以热狗识别为例演示代码实现。目标检测部分重点介绍了锚框生成、交并比计算和非极大值抑制算法,详细说明了边界框标注和预测的完整流程,并提供了完整的代码示例。这些技术能有效提升模型性能,特别是在数据量有限的情况下。

2025-11-23 13:59:25 696 1

原创 快速上手大模型:深度学习9(池化层、卷积神经网络1)

本文介绍了卷积神经网络的关键技术和经典模型。主要内容包括:1)池化层的作用与实现(最大/平均池化);2)经典CNN模型(LeNet、AlexNet、VGG、NiN)的原理与代码实现,重点分析了AlexNet的架构改进(ReLU、Dropout、数据增强)和VGG的深层结构;3)计算机硬件配置查询方法(CPU、内存、GPU等),为模型训练提供硬件支持。文章提供了详细的PyTorch代码示例,涵盖网络构建、数据预处理和训练过程,并针对训练中的OOM问题给出了解决方案建议。

2025-11-20 20:45:11 1108

原创 快速上手大模型:深度学习10(卷积神经网络2、模型训练实践、批量归一化)

本文介绍了大模型训练的优化技巧和经典卷积网络实现方法。针对GPU显存不足问题,提出9种解决方案:减小batch size、降低输入分辨率、简化模型结构等,并给出CPU训练的代码示例。详细解析了GoogLeNet的Inception块设计和ResNet残差连接机制,包括网络架构和PyTorch实现代码。最后阐述了批量归一化(BN)的原理及实现,通过标准化层输入加速训练过程。文中还推荐了Kaggle等免费云GPU资源的使用方法,为计算资源有限的开发者提供了实用建议。

2025-11-20 20:43:05 416

原创 快速上手大模型:深度学习8(卷积层填充和步幅、多输入输出通道、池化层)

摘要:本文介绍了卷积神经网络中填充(Padding)和步幅(Strides)的作用及实现方法。Padding通过在输入边缘填充行列来保持特征图尺寸,避免卷积后尺寸过小;Strides通过调整滑动步长来控制输出尺寸和计算量。文中提供了PyTorch实现代码,并讨论了多输入/输出通道的处理方式,包括1×1卷积层的特殊应用。此外,还介绍了计算资源(CPU/GPU)性能的查询方法和卷积层计算复杂度的估算方法,为神经网络的实际应用提供了技术参考。

2025-11-17 20:10:12 345

原创 快速上手大模型:深度学习6(通用训练框架、训练芯片、多GPU训练)

本文介绍了基于Ubuntu20.04和PyTorch的深度学习通用训练框架。主要内容包括:1)完整的训练流程框架,涵盖数据加载、模型构建、参数初始化等核心环节;2)硬件配置部分,详细说明了GPU驱动的安装过程(推荐nvidia-driver-570版本)和验证方法;3)PyTorch中GPU调用的具体实现,包括设备检测、张量运算和神经网络部署。文中提供了可直接运行的代码示例,实现了从数据准备到模型保存的完整训练过程,并特别强调了自动检测GPU设备的功能实现。

2025-11-17 20:09:42 330

原创 快速上手大模型:深度学习5(实践:过、欠拟合)

本文介绍了多项式回归中的模型拟合问题及其解决方法。主要内容包括:1) 生成多项式数据集并进行格式转换;2) 构建模型训练框架,评估损失函数;3) 分析正常拟合、欠拟合和过拟合三种情况;4) 提出两种解决过拟合的方法:权重衰减(L2正则化)和Dropout。文章详细展示了从数据准备到模型评估的完整流程,并通过PyTorch实现演示了如何通过正则化技术控制模型复杂度,从而提高泛化能力。实验结果表明,适当的正则化能有效缓解过拟合问题。

2025-11-15 10:14:14 1038

原创 快速上手大模型:深度学习7(实践:卷积层)

摘要:本文系统介绍了全连接层和卷积层的基本概念及差异。全连接层将输入图像所有像素与输出相连,而卷积层通过局部连接实现平移不变性和局部性特征提取。详细阐述了二维交叉相关运算和卷积运算的区别,并给出数学表达式。在实现部分,展示了基于PyTorch的二维卷积运算代码实现,以及边缘检测的实例应用。通过构建特定卷积核检测图像垂直边缘,并演示了使用梯度下降学习卷积核参数的过程。最后通过实验验证了卷积层在图像特征提取中的有效性。

2025-11-15 10:13:18 837 2

原创 快速上手大模型:深度学习4(实践:多层感知机)

本文介绍了多层感知机(MLP)的实现方法。首先对比了单层感知机和MLP的区别,指出MLP通过隐藏层和激活函数(如Sigmoid、Tanh、ReLU)能够解决非线性分类问题。然后详细给出了MLP从零实现的步骤:包括模型定义、参数初始化、损失函数(交叉熵)选择和训练过程。实验在Fashion-MNIST数据集上进行,10轮训练后测试准确率达到85.38%。文章还提供了MLP的简洁实现方式,并解决了d2l包版本兼容性问题,建议安装d2l 1.0.3版本。通过修改训练函数和添加设备参数,确保了代码在新版本中的可运行

2025-11-01 16:38:30 617

原创 快速上手大模型:深度学习3(实践:线性神经网络Softmax)

本文详细介绍了Softmax回归在图像分类任务中的应用,主要包括:1) 理论回顾部分解释Softmax操作将输出转化为概率分布的过程;2) 实现步骤包含参数初始化、模型定义、交叉熵损失函数构建和分类精度评估;3) 使用Fashion-MNIST数据集进行训练和预测的完整流程。文章提供了完整的PyTorch实现代码,包括数据预处理、模型训练和评估方法。通过Softmax回归可将线性模型输出转化为多类别概率预测,是解决图像分类问题的基础方法。

2025-11-01 16:37:52 755

原创 快速上手大模型:深度学习2(实践:深度学习基础、线性神经网络)

本文介绍了深度学习实践环境的配置与线性回归模型实现的全过程。首先详细说明了在Ubuntu20.04系统下安装Miniconda、创建Python3.8虚拟环境,并安装PyTorch、Jupyter和d2l库的步骤。其次展示了数据操作和处理方法,包括广播机制、数据预处理(缺失值处理和转换为张量)以及线性代数运算。最后重点讲解了线性回归模型的构建与训练过程,包括人工数据生成、小批量处理、损失函数定义、优化算法实现等核心步骤,并提供了简洁实现方案。全流程采用PyTorch框架,适合深度学习初学者实践参考。

2025-10-27 22:43:55 719

原创 快速上手大模型:深度学习1(初识、神经网络基础)

深度学习是一种基于多层神经网络的机器学习方法,通过反向传播和梯度下降算法自动学习特征。其核心训练步骤包括:数据输入、计算损失函数、反向传播和权重更新。相比传统机器学习,深度学习能更好处理模型复杂度问题。训练攻略要点:1)合理划分训练/验证/测试集;2)临界点判别和处理(局部最小/鞍点);3)批次大小影响训练效率和质量;4)动量方法加速收敛;5)自适应调整学习率(如RMSProp、Adam);6)根据任务选择损失函数(MSE用于回归,交叉熵用于分类)。实践表明,小批次训练配合动量优化能取得更好效果。

2025-10-27 22:42:11 1737

原创 快速上手大模型:机器学习6(模型选择、过/欠拟合、正则化)

本文讨论了机器学习中的过拟合问题及其解决方法。以房价预测为例,分析了欠拟合、良好拟合和过拟合三种情况,指出过拟合会导致高方差和模型泛化性差。提出了三种解决方法:增加训练数据、减少特征数量和使用正则化技术。重点介绍了正则化的原理和应用,包括线性回归和逻辑回归的正则化实现,并提供了计算正则化损失函数和梯度的核心代码。正则化通过调整参数权重来平衡模型复杂度,避免过拟合或欠拟合,从而提高模型的实际应用性能。

2025-10-22 19:02:56 417

原创 快速上手大模型:机器学习5(逻辑回归及其代价函数、数值稳定、模型初始化)

本文介绍了逻辑回归的基本原理及应用。首先通过肿瘤分类示例说明线性回归不适用于分类问题,并引入逻辑函数(sigmoid函数)构建逻辑回归模型。模型通过概率输出(0-1)实现分类预测,并给出了Python代码实现。其次讨论了决策边界的定义和推导过程,包括线性和非线性情况。最后阐述了逻辑回归的代价函数构建原理,为避免非凸优化问题,采用特定损失函数,并介绍了梯度下降优化方法。本文内容涵盖了逻辑回归的核心概念、数学推导和代码实现。

2025-10-22 19:02:12 469 1

原创 快速上手大模型:机器学习4(特征缩放、学习率选择、特征工程、多项式回归)

结论:通过缩放w1*x1、w2*x2使其数值差接近,使用转换后的数据运行梯度下降算法,等高线类似于圆,梯度下降可以找到一条更直接的路径到达全局最小值。分别是x1、x2在训练集上的均值,然后用每个x1、x2算放缩后的值,找出放缩后的范围。除以区间最大值,使缩放后的点落在一个近圆上。缩放后使x1、x2在-1~1之间分布。分别是x1、x2在训练集上的均值;

2025-10-19 22:28:46 226

原创 快速上手大模型:机器学习3(多元线性回归及梯度、向量化、正规方程)

本文介绍了提升线性回归效率和性能的方法,重点讲解了多元线性回归的向量化实现。主要内容包括:1)多元线性回归模型定义;2)使用NumPy进行向量化编程,展示数组创建、索引规则和切片操作;3)详细说明向量点积运算和矩阵创建;4)演示矩阵索引方法。通过向量化实现,可以使代码更简洁高效,适用于处理多特征数据集,提升机器学习模型的运行效率。

2025-10-18 22:33:02 245

原创 ORB_SLAM2原理及代码解析:Viewer 线程——Viewer::Run()

本文介绍了ORB-SLAM2系统中可视化模块的核心实现。该模块通过Pangolin库创建交互式3D窗口,主要功能包括:初始化OpenGL环境(启用深度测试、混合等),设置虚拟相机参数,创建控制面板(含相机跟随、关键帧显示等交互选项),并在主循环中实时渲染地图点、关键帧和相机位姿。系统支持定位模式切换、视角跟随和系统重置等功能,同时通过OpenCV窗口显示当前帧图像。可视化模块通过多线程管理,能响应停止和结束信号,为SLAM系统提供了直观的调试和监控界面。

2025-10-18 18:12:29 276

原创 快速上手大模型:机器学习2(一元线性回归、代价函数、梯度下降法)

本文介绍了机器学习中一元线性回归的基本概念与应用。首先定义了一元线性回归模型f=wx+b,通过房产价格预测案例说明其作用。随后重点讲解了代价函数J(w,b)的数学表达式及其最小化的意义。最后详细阐述了梯度下降算法的实现原理,包括学习率选择、参数更新公式和批量梯度下降方法,并配以图像直观展示参数优化过程。全文通过数学公式和实例说明,系统性地构建了一元线性回归从理论到实践的知识框架。

2025-10-15 22:17:15 361

原创 快速上手大模型:机器学习1(机器学习概要、Jupyter Notebooks使用)

本文介绍了机器学习基础概念与开发环境搭建。首先定义机器学习为计算机通过经验自主提升任务表现的能力,并举例说明。其次将学习算法分为监督学习(回归/分类)、无监督学习(聚类/异常检测)及其他类型。最后详细讲解在VSCode中配置Python虚拟环境并安装Jupyter Notebook的步骤,包括Python版本确认、依赖安装、环境激活及解释器设置等操作指南,为后续机器学习实践提供开发环境支持。全文以跳棋游戏和肿瘤分类为例,帮助读者快速理解机器学习核心概念。

2025-10-15 13:32:18 956

原创 ORB_SLAM2原理及代码解析:LoopClosing 线程——LoopClosing::Run()

摘要 本文详细解析了ORB-SLAM2系统中的闭环检测模块(LoopClosing)的实现流程。该模块通过持续检查关键帧队列,执行三阶段闭环处理:1) 使用BoW词袋模型检测闭环候选帧(DetectLoop);2) 通过RANSAC计算Sim3相似变换(ComputeSim3);3) 进行位姿图优化和地图点融合(CorrectLoop)。重点阐述了特征匹配策略、共视一致性验证、Sim3变换求解等核心算法,并分析了多线程协同机制。实验表明,该系统能有效识别闭环并实现全局位姿优化,显著提升SLAM系统的长期一致

2025-10-12 19:51:54 439

原创 ORB_SLAM2原理及代码解析:LocalMapping 线程——LocalMapping::Run()

本文介绍了ORB-SLAM2中局部建图线程(LocalMapping)的核心功能与运行逻辑。该线程持续处理跟踪线程(Tracking)插入的新关键帧,主要完成以下工作:1)将关键帧插入地图并更新局部结构;2)通过三角化生成新地图点;3)执行局部BA优化;4)清理冗余地图点和关键帧。文章详细解析了线程的主循环流程,包括关键帧处理、地图点筛选、邻近关键帧搜索融合等关键步骤的实现细节,并说明其与闭环检测线程的协同工作机制,最终构成完整的SLAM处理流程。

2025-10-12 17:17:05 1344

原创 ORB_SLAM2原理及代码解析:Optimizer::LocalBundleAdjustment

(2)定义:SparseOptimizer.cpp。通俗理解:重投影误差小于阀值,好点;(1)声明:SparseOptimizer.h。只用于提供约束关系,防止优化时整体漂移。但这些关键帧也能观测到本地地图点;没有被选为局部关键帧;它们的位姿保持不动;

2025-10-11 22:24:53 331

原创 ORB_SLAM2原理及代码解析:LocalMapping::CreateNewMapPoints() 函数

从当前关键帧与其共视的邻居关键帧之间,通过特征点匹配 + 三角化,生成新的 3D 地图点。并返回其中的第 1/q​ 分位的深度值。计算当前关键帧看到的所有地图点的。(3)定义:KeyFrame.cc。(2)声明:KeyFrame.h。

2025-10-11 16:32:30 466

原创 ORB_SLAM2原理及代码解析:KeyFrame::UpdateConnections() 函数

根据当前关键帧与其它关键帧共享的地图点数量,建立“关键帧共视图(Covisibility Graph)”的连边。返回当前地图点被哪些关键帧观测到了,以及每个关键帧中对应的特征索引。(3)定义:KeyFrame.cc。(2)声明:KeyFrame.h。

2025-10-09 20:15:58 187

原创 ORB_SLAM2原理及代码解析:Tracking 线程——Tracking::Track()

摘要:本文详细解析了ORB-SLAM2跟踪线程(Tracking)的核心流程及代码实现。主要内容包括:1)初始化检查与单目/双目/RGB-D初始化;2)相机位姿估计(运动模型/关键帧匹配/重定位);3)局部地图跟踪与关键帧管理;4)状态更新机制。重点分析了Track()函数的执行逻辑,涵盖初始化判断、位姿估计、局部地图优化、关键帧插入条件等关键步骤,并详细说明了各子函数的作用及参数含义。该跟踪系统通过多策略融合实现鲁棒定位,同时保持对地图点和关键帧的有效管理,为后续建图提供可靠数据。

2025-10-08 16:35:27 1622

原创 ORB_SLAM2原理及代码解析:Tracking::NeedNewKeyFrame() && Tracking::CreateNewKeyFrame()函数

本文摘要: 文章详细解析了ORB-SLAM2系统中关键帧管理相关的两个核心函数:NeedNewKeyFrame()和CreateNewKeyFrame()。NeedNewKeyFrame()通过多重条件判断(如时间间隔、局部建图状态、跟踪质量、特征点匹配比例等)决定是否生成新关键帧,包含针对单目/双目/RGB-D传感器的差异化处理逻辑。CreateNewKeyFrame()则负责实际创建关键帧,包括设置局部建图状态、构建关键帧对象、处理近距离地图点(双目/RGB-D)、更新观测数据等。文中还深入剖析了支撑函

2025-10-08 15:01:07 199

原创 ORB_SLAM2原理及代码解析:Tracking::TrackLocalMap() 函数

在已有相机初始位姿的基础上,利用局部地图中的点进一步匹配、优化相机姿态,并判断跟踪是否成功。

2025-10-07 20:42:31 218

原创 ORB_SLAM2原理及代码解析:Tracking::Relocalization() 函数

ORB-SLAM2重定位机制在跟踪失败时,通过关键帧数据库重新确定相机位姿。其流程包括:1)构建当前帧词袋向量;2)从数据库检索相似候选关键帧;3)对每个候选帧进行BoW匹配,筛选匹配点≥15的关键帧;4)建立PnP求解器,通过RANSAC迭代计算位姿;5)优化位姿后若内点不足,则通过投影搜索补充匹配;6)最终需≥50个内点才判定重定位成功。该机制采用分层策略,结合词袋匹配、PnP-RANSAC和投影搜索,确保在复杂环境中仍能恢复定位。

2025-10-07 18:53:57 838

原创 ORB_SLAM2原理及代码解析:Tracking::TrackWithMotionModel() 函数

本文介绍了基于运动模型的视觉跟踪方法。该方法首先通过ORB匹配器预测当前帧位姿,并利用投影匹配跟踪上一帧的地图点。具体步骤包括:1)初始化ORB匹配器;2)更新上一帧位姿信息;3)利用运动模型预测当前帧位姿;4)清空当前帧地图点;5)通过投影匹配搜索特征点;6)在匹配数不足时扩大搜索范围;7)优化位姿并剔除外点。系统根据匹配点数量判断跟踪状态:在仅定位模式下,匹配数>20为成功;在建图模式下,匹配数≥10为成功。该方法通过分层搜索和旋转一致性检查提高了匹配效率。

2025-10-06 20:52:33 1104

原创 ORB_SLAM2原理及代码解析:Tracking::TrackReferenceKeyFrame() 函数

本文描述了基于ORB-SLAM2的跟踪模块中参考关键帧匹配方法。该方法首先计算当前帧的词袋向量(BoW),然后与参考关键帧进行特征匹配,若匹配点数超过15则进行位姿优化。优化过程使用g2o库构建图优化,通过4轮迭代(含外点剔除)最小化重投影误差,最终更新当前帧位姿并统计有效地图点数量。完整流程包括:词袋向量转换、特征匹配、PnP位姿估计、Bundle Adjustment优化、外点剔除等步骤。该方法通过词袋快速匹配和鲁棒优化,实现了高效准确的帧间位姿估计。

2025-10-06 15:22:41 579

原创 ORB_SLAM2原理及代码解析:单应矩阵H、基础矩阵F求解

用于评估给定单应矩阵 H21(Frame1 → Frame2)是否正确,通过检查匹配点的重投影误差,计算一个评分,并标记每个匹配点是否为内点。vPn1, vPn2(归一化后匹配点集合) ← Normalize() → T1, T2。└─ 若得分更高 → 更新 H21, vbMatchesInliers, score。├─ 从 mvSets[it] 抽取 8 对匹配点。mvKeys1, mvKeys2 (去畸变关键点)mvMatches12 (匹配点索引集合)

2025-10-04 14:53:42 648

原创 ORB_SLAM2原理及代码解析:Tracking::CreateInitialMapMonocular() 函数

该代码实现了单目SLAM系统的初始地图创建,主要功能包括:1.创建初始关键帧和当前关键帧,计算词袋表示;2.根据匹配关系建立地图点与关键帧的双向观测关系;3.执行全局Bundle Adjustment优化相机位姿和地图点;4.进行尺度归一化处理(因单目无法直接获取绝对尺度);5.更新关键帧连接关系,并将地图数据传递给LocalMapping线程。代码通过计算场景中值深度进行尺度归一化,确保初始地图具有合理的尺度,并设置了跟踪状态为OK,为后续SLAM流程奠定基础。整个过程包含了特征匹配、位姿估计、三维重建和

2025-10-04 14:52:57 349

原创 ORB_SLAM2原理及代码解析:Tracking::MonocularInitialization() 函数

基于单目相机的SLAM初始化过程主要包括:1)选择特征点数量>200的参考帧和当前帧;2)通过ORB特征匹配寻找对应点,要求匹配数>100对;3)使用RANSAC算法估计相机位姿(R,t)和三角化生成初始3D点云;4)当满足条件时建立初始地图。关键步骤涉及特征匹配、RANSAC迭代优化和三角化计算,其中RANSAC通过随机采样和模型验证来剔除异常点,确保位姿估计的鲁棒性。整个过程通过严格的阈值控制来保证初始化的准确性。

2025-10-03 15:40:00 1181

原创 ORB_SLAM2原理及代码解析:Initializer::Initialize() 函数

摘要:本文介绍了基于双视角的单目视觉初始化方法,通过匹配点对估计相机位姿并重建3D点。关键步骤包括:1)使用RANSAC方法生成8点随机采样集;2)并行计算单应矩阵H和基础矩阵F;3)根据模型得分选择最优解(RH>0.40选H,否则选F);4)通过ReconstructH/F函数恢复相机位姿(R,t)和3D点结构。其中,ReconstructH利用SVD分解得到8种运动假设,通过检查三角化点数和视差选择最佳解;ReconstructF则从基础矩阵分解出4种运动假设进行验证。该方法实现了从二维匹配点到三

2025-10-03 15:26:21 267

原创 ORB_SLAM2原理及代码解析:ORBmatcher::SearchForInitialization() 函数

该代码实现了ORB特征点匹配功能,主要用于单目SLAM初始化阶段。核心流程包括:1)通过网格搜索在限定窗口范围内寻找候选匹配点;2)计算描述子距离并筛选最优/次优匹配;3)应用NN比率测试和双向一致性检查;4)利用旋转直方图剔除异常匹配(保留三个主方向)。算法通过多级筛选确保匹配质量,最终返回有效匹配数量并更新匹配关系。关键优化包括:分桶策略加速搜索、金字塔层级过滤、旋转一致性校验等,在保证精度的同时提升计算效率。

2025-10-03 15:17:38 151

原创 ORB_SLAM2原理及代码解析:InsertKeyFrame() 函数

(2)定义:LocalMapping.cc。(1)声明:LocalMapping.h。

2025-10-02 19:17:27 160

原创 ORB_SLAM2原理及代码解析:MapPoint::UpdateNormalAndDepth() 函数

以便后续在跟踪或重建中判断该点是否可见。即把地图点的方向和深度信息 重新计算一遍。将向量单位化,只考虑方向,忽略大小。(2)定义:MapPoint.cc。(2)定义:KeyFrame.cc。(1)声明:MapPoint.h。(1)声明:frame.h。

2025-10-02 18:49:41 347

原创 ORB_SLAM2原理及代码解析:MapPoint::ComputeDistinctiveDescriptors() 函数

每个地图点可能被多个关键帧观察到,每个关键帧有自己的 ORB 描述子。由于噪声、视角和光照变化,同一个地图点在不同关键帧的描述子可能略有差异。该函数为MapPoint选择一个最具代表性的描述子,用于之后的匹配。MapPoint → 关键帧 → 收集描述子 → 计算距离 → 选中代表性描述子 → 更新 mDescriptor。则observations里面存的是KF1 → 10,KF2 → 35。该 MapPoint 在该关键帧里的 ORB 描述子。存储的是地图点被哪些关键帧观测到了。的第 35 个特征点。

2025-10-02 17:16:12 405

原创 ORB_SLAM2原理及代码解析:AddMapPoint() 函数

在关键帧内部,把某个特征点和生成的地图点关联起来。(2)定义:KeyFrame.cc。(1)声明:KeyFrame.h。(2):定义:Map.cc。(1)声明:Map.h。

2025-10-01 17:01:10 233

快速上手大模型:机器学习部分学习代码

本资源仅供学习使用,侵权联系删除。

2025-10-14

空空如也

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

TA关注的人

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