自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LOAM 代码解读

试想一下,你在得到第一帧点云时你的lidar就扫到了数万个点,此时Lidar的位置我们把它作为(0,0,0),在不考虑测量噪声的情况下这数万个点都是相对精确的,我们把这数万个点所构成的环境作为此时的地图。而后Lidar运动了一小段,我们通过Lidar里程计的方法估算了它的相对运动,于是就可以将此时的Lidar位姿及此时的点按照我们估计的相对运动情况,转换到上一时刻(建立地图时的坐标系)的坐标系下。与特征线类似,先找最近点j,在j周围找l,在j周围找m,将(j,l,m)称为点i在t时刻点云中的对应。

2024-04-26 19:46:50 332

原创 Pytorch第一部分数据模块

dataloader分为sampler(索引)和dataset(标签)从数据集中将数据划分为训练集,测试集,验证集。

2024-04-17 11:31:11 242

原创 pytorch框架下的逻辑回归代码解读

迭代器中,设置了掩码,即误差小于0.5置为true,然后统计分类正确的个数,然后根据正确率达到0.99,结束流程。注:代码过程分为数据,模型,损失函数,优化器以及迭代过程。迭代过程:前向传播,损失函数计算,反向传播,更新参数。模型:nn.Module来构建逻辑回归模型类。损失函数:二分类交叉熵函数。优化器:随机梯度下降法。

2024-04-15 22:11:56 602

原创 全排列核心代码转acm

【代码】全排列核心代码转acm。

2023-10-12 21:49:20 173

原创 机器学习第十四课--神经网络

数据和算力由于神经网络是深度学习的基础,学习神经网络本身是非常必要的。神经网络中所涉及到的前向传播、反向传播等技术以及梯度消失等现象都会出现在其他深度学习模型如深度神经网络、卷积神经网络、RNN、LSTM中。我们强烈先学好神经网络再去接触深度学习相关的技术,这样会事半功倍。神经网络,首先是线性变换,然后通过激活函数非线性化。

2023-09-24 22:57:37 598 1

原创 机器学习第十三课--主成分分析PCA

除了图片、文本数据,我们在实际工作中也会面临更多高维的数据。比如在评分卡模型构建过程中,我们通常会试着衍生出很多的特征,最后就得到上千维、甚至上完维特征;在广告点击率预测应用中,拥有几个亿特征也是常见的事情;在脑科学或者基因研究中,特征数甚至可能更多;所以,如何更有效地处理这些高维的特征就变成了一个非常重要的问题。

2023-09-22 23:39:55 307

原创 机器学习第十二课--营销中的用户分层项目

在营销场景中,我们经常会遇到这样的一个问题:哪些用户的价值高?我们如何根据客户价值给用户分群?对于这个问题,RFM就是一种答案。那具体什么是RFM模型呢?如何应用RFM做用户分群呢?RFM里的每个字符代表什么意思呢?

2023-09-22 23:13:10 236

原创 机器学习第十一课--K-Means聚类

K-Means算法是最经典的聚类算法,几乎所有的聚类分析场景,你都可以使用K-Means,而且在营销场景上,它就是"King",所以不管从事数据分析师甚至是AI工程师,不知道K-Means是”不可原谅“的一件事情。在面试中,面试官也经常问关于K-Means的问题。虽然算法简单,但也有一些需要深入理解的点,这些都会在本章节所涉及到。

2023-09-22 17:21:10 552

原创 机器学习第十课--提升树

在上一章里我们学习了一个集成模型叫作随机森林,而且也了解到随机森林属于Bagging的成员。本节我们重点来学习一下另外一种集成模型叫作Boosting。首先回顾一下什么叫Bagging?比如在随机森林里,针对于样本数据,我们同时训练了多棵决策树,然后让这些决策树通过投票的方式来参与预测。这种方式的好处也讲过,可以很好地提升模型的稳定性。其实任意的集成模型只要训练得合理都具备这种特性的,Boosting也不例外。

2023-09-21 13:58:46 400

原创 机器学习第九课--随机森林

对于几乎所有的分类问题(图像识别除外,因为对于图像识别问题,目前深度学习是标配),集成模型很多时候是我们的首选。比如构建一个评分卡系统,业界的标配是GBDT或者XGBoost等集成模型,主要因为它的效果确实好,而且稳定。还有一点是这些模型的可解释性也很好,不像深度学习模型就像个黑盒子。那为什么集成模型的可解释性好呢?这个其实不难理解,因为随机森林或者提升树模型其实是基于决策树的,而且我们知道决策树模型的可解释性本来就很好。集成模型可以简单理解成决策树的集合!

2023-09-20 23:00:26 534

原创 机器学习第八课--决策树

举个例子,“明天如果下雨我就不出门了。” 在这里我们用了一个决策条件:是否下雨,然后基于这个条件会有不同的结果:出门和不出门。这就是一个经典的决策树!决策树的核心组成部分---节点 边最后的结论就是第一个决策树要优于第二个决策树,因为它的准确率更高。由于这个问题本身及其简单,所以我们甚至都可以罗列出所有可能的决策树,然后再判断哪一个最好。但实际上,稍微复杂点的问题就不太可能这么做了,因为所有可能的决策树数量太多,不可能一一罗列。

2023-09-18 22:31:19 238

原创 机器学习第七课--情感分析系统

分词是最基本的第一步。无论对于英文文本,还是中文文本都离不开分词。英文的分词相对比较简单,因为一般的英文写法里通过空格来隔开不同单词的。但对于中文,我们不得不采用一些算法去做分词。

2023-09-18 21:25:18 1179

原创 ORB-SLAM3跟踪线程与局部建图线程

1.承上启下,接受跟踪线程输入的关键帧并进行局部地图优化,删除冗余关键帧等,将优化后的关键帧发送给闭环线程。2.实现中期数据关联。

2023-09-18 11:25:41 300

原创 机器学习第六课--朴素贝叶斯

朴素贝叶斯广泛地应用在文本分类任务中,其中最为经典的场景为垃圾文本分类(如垃圾邮件分类:给定一个邮件,把它自动分类为垃圾或者正常邮件)。这个任务本身是属于文本分析任务,因为对应的数据均为文本类型,所以对于此类任务我们首先需要把文本转换成向量的形式,然后再带入到模型当中。

2023-09-16 22:55:01 239

原创 机器学习第五课--广告点击率预测项目以及特征选择的介绍

这个项目的主要的目的是通过给定的广告信息和用户信息来预测一个广告被点击与否。如果广告有很大概率被点击就展示广告,如果概率低,就不展示。因为如果广告没有被点击,对双方(广告主、平台)来讲都没有好处。所以预测这个概率非常重要,也是此项目的目标。在这个项目中,你需要完成以下的任务:1.数据的读取和理解: 把给定的.csv文件读入到内存,并通过pandas做数据方面的统计以及可视化来更深入地理解数据。2.特征构造: 从原始特征中衍生出一些新的特征,这部分在机器学习领域也是很重要的工作。

2023-09-16 17:04:37 716 1

原创 对IMU的认识

参数标定:良率检测。

2023-09-12 22:47:34 116

原创 ORB-SLAM3---imu相关

3.旋转向量到旋转矩阵。2.反对称矩阵反过来。

2023-09-11 23:46:27 55

原创 ROS1和ROS2的区别以及ros的topic话题

ROS

2023-09-11 17:25:54 898

原创 ORB-SLAM2第六节---局部建图线程

通过词袋对两个关键帧之间为匹配的特征点进行快速匹配,用极线约束抑制离群点,得到新的匹配点对。(关键帧特征点对应的词袋向量、对于当前关键帧有效地图点,更新平均观测方向,观测距离范围等,更新当前关键帧和她的共视关键帧的连接关系)3.4 确定是合格的三维点,将其构造为地图点,并添加观测关系和地图点的各种属性。条件一:跟踪到该地图点的帧数比预计可观测到的该地图点的帧数比例小于25%3.1 在当前关键帧的共视关键帧中找到共视程度最高的前n帧相邻关键帧。共视关键帧之间重新进行特征匹配,三角化,生成新的地图点。

2023-09-10 16:01:51 114

原创 不就是G2O嘛

BlockSolver 内部包含 LinearSolver,用上面我们定义的线性求解器LinearSolver来初始化。你点进去会发现 BlockSolver有两种定义方式,一种是指定的固定变量的solver,我们来看一下定义其中p代表pose的维度(注意一定是流形manifold下的最小表示),l表示landmark的维度另一种是可变尺寸的solver,定义如下BlockSolver_6_3 :表示pose 是6维,观测点是3维。用于3D SLAM中的BA。

2023-09-07 17:27:11 101

原创 cmakelist里链接库

在cmakelist文件中,配置pcl、eigen、opencv、yaml-cpp、openmp库_eigen3_include_dir_chennuo0125-HIT的博客-CSDN博客

2023-08-29 15:41:33 123

原创 Linux下gdb调试

开发和使用Unix程序时,有时程序莫名其妙的down了,却没有任何的提示(有时候会提示core dumped),这时候可以查看一下有没有形如core.进程号的文件生成,这个文件便是操作系统把程序down掉时的内存内容扔出来生成的, 它可以做为调试程序的参考,能够很大程序帮助我们定位问题。产生coredump的条件,首先需要确认当前会话的ulimit –c,若为0,则不会产生对应的coredump,需要进行修改和设置。注意到了没有,如果使用上面的方式打印指针指向的内容,那么打印出来的只是指针地址而已。

2023-08-17 18:47:26 593

原创 视觉slam十四讲---第一弹三维空间刚体运动

视觉slam十四讲

2023-08-17 11:33:58 101

原创 SLAM能用的传感器

传感器

2023-08-16 14:17:41 44

原创 ORB-SLAM2第五节---局部地图跟踪(阶段二)

orb-slam2系列

2023-08-14 23:14:26 162

原创 ORB-SLAM2第四节---跟踪线程(阶段一)

orb-slam2系列

2023-08-14 22:19:14 150

原创 ORB-SLAM2第三节---地图点、关键帧、图结构

平均观测方向向量:同一个地图点可能同时被多帧观察到,所以把每个能观测到该地图点的帧所在的光心和该地图点连成一个向量并归一化为单位向量,然后将所有归一化向量累加并求平均。

2023-08-14 16:06:54 291

原创 ORB-SLAM2第二节---双目地图初始化

orb-slam2系列

2023-08-13 22:58:51 259

原创 矩阵求导、几种重要的矩阵及常用的矩阵求导公式

矩阵求导、几种重要的矩阵及常用的矩阵求导公式_Norstc的博客-CSDN博客

2023-08-13 22:08:31 63

原创 ORB-SLAM2第一节---单目地图初始化

orb-slam2系列

2023-08-13 15:50:11 593

原创 C++八股文 第3弹

快速排序(Quick Sort):选择一个基准元素,将比基准小的元素放在左侧,比基准大的元素放在右侧,然后对左右两个部分递归地进行快速排序。希尔排序(Shell Sort):先将待排序序列分割成多个子序列,分别进行插入排序,然后逐步缩小子序列的间隔,最终进行一次完整的插入排序。归并排序(Merge Sort):将待排序序列分成两个子序列,分别进行排序,然后将两个有序的子序列合并成一个有序序列。桶排序(Bucket Sort):将元素分配到不同的桶中,对每个桶进行排序,最后合并各个桶的元素得到有序序列。

2023-06-30 17:16:58 574

原创 C++八股文 第2弹

C++

2023-06-27 16:59:57 51

原创 Permission denied

python

2023-06-10 09:41:34 1005

原创 opencv库集成的常用的函数

opencv

2023-04-19 15:26:12 120 1

原创 基于icp的帧间匹配

icp

2023-04-12 22:34:47 188

原创 Gazebo及ros使用经验

ros/gazebo

2023-04-12 16:32:27 379

原创 SLAM面试题总结之计算机视觉life---第1弹

面试题

2023-03-06 16:20:24 673

原创 gazebo仿真

gazebo

2023-02-01 18:14:43 1164 2

原创 使用realsensed455修改分辨率问题

调分辨率啦

2023-01-09 19:58:43 1092

原创 ubuntu18.04安装ceres1.14

ceres

2023-01-06 10:05:08 646

空空如也

空空如也

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

TA关注的人

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