自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 多传感器标定——相机内参标定

之前写过一篇文章(相机内参、外参、畸变系数简介),感觉应该把这几个东西说的还算明白,但是里边并没有深究该如何进行标定,正好在这次学习中进行补充。我面试时的体验就是,如果你没有那种一眼吊的科研成果,那么项目中再大的创新也就那么样,不如把时间花在了解项目细节上,比如内参标定到底是怎么实现的,而不是面试官问起你这个问题,你只能跟我一样傻笑道我调了opencv的库。。。。。。接着面试官又问,函数的每个输入输出都是什么?对不起,沉默是今晚的康桥。。。。。。哥们都是现用现百度。

2024-03-31 22:50:05 992 1

原创 多传感器标定——概述

是对自动驾驶之心多传感器标定课程内容的记录,也是对一些被老师简单略过问题的自主学习。第一章是概述,将内容以问题的形式记录,并结合课上内容以及自己的项目经验给出回答。

2024-03-31 15:45:57 884

原创 BEV感知学习笔记——基于LSS的系列方法

上一篇文章中我们讨论了LSS的原理以及代码实现(BEV感知学习笔记——LSS)。简单总结,LSS的核心贡献点在于提供了一个将2D特征转换到BEV空间下的全新思路。这篇文章我们讲述几篇经典的文章,看看此类方法之后的发展。内容总结自深蓝学院BEV感知课程,欢迎交流。

2024-01-18 17:12:15 1395

原创 BEV感知学习笔记——LSS

文章目录一、prologue二、Lift-Splat层原理2.1 Lift层2.2 Splat层三、LSS源码阅读3.1 准备工作3.2 推理部分3.1.1 参数配置3.1.2 compile_data()3.1.3 compile_model()3.1.3.1 get_geometry()3.1.3.2 get_cam_feats()3.1.3.3 voxel_pooling()3.3 训练部分一、prologue最近在学习BEV感知的内容,为了强化自己的学习效果,我会将自己的习得总结于此。(包含大量

2024-01-11 00:01:15 1474 3

原创 目标检测mAP评价指标

理解目标检测当中的mAP详解object detection中的mAP。虽然前人之述备矣,但我还是要做这篇笔记,按自己的思路讲解学到的东西,希望更能加深理解。

2024-01-10 20:17:04 875

原创 点云滤波(三)——EAR(边缘感知重采样)介绍

这是点云滤波系列的第三篇学习笔记,在之前我们学习了非常经典的MLS算法(点云滤波(一)——MLS(移动最小二乘)/PSS介绍),以及为解决MLS不具备保持边缘问题所提出的变体RMLS(点云滤波(二)——RMLS(鲁棒移动最小二乘)介绍)。RMLS由于没有找到相关的开源代码,并且我对方法也存在一些疑惑,害怕复现出来依托答辩,所以就没有花时间去复现。但是寻找能够保持边缘的边缘的点云平滑算法依然是我目前面对的问题,因此我会继续找一些相关的论文进行学习并形成笔记。

2023-11-14 15:23:46 357

原创 传统点云分割三部曲(三)——CPC(Constrained Planar Cuts)

传统方法进行点云分割也有很好的效果,这篇博客是本系列的第三篇,介绍的是发表于2015年CVPR上的CPC算法,CPC原文。CPC在LCCP的基础上继续深入,LCCP判断邻接超体素之间的凹凸性,将凹边视作无效边,最后沿着凸边对超体素做聚类,再滤除超体素个数少的类,即可实现对物体的分割,效果如下:第一幅图中的一个个白色正方形可以视作超体素,凸边凹边奇异边也用不同颜色标识了出来,可以看到这个阶梯状的物体在使用LCCP过后,从白色的桌面上被分离出来了。在某些场景下,这种程度的分割已经足够。

2023-11-12 22:40:19 208 1

原创 传统点云分割三部曲(一)——VCCS(Voxel Cloud Connectivity Segmentation)

我之前狭隘地以为只有点云深度学习才能处理分割问题,偶然发现传统方法的分割结果一样可以令我眼前一亮。VCCS原文LCCP原文CPC原文其中VCCS是分割前的准备工作,LCCP和CPC是分割的方法,二者论文中的效果图如下,有点出乎我的意料。。。。传统方法我认为最好的点在于通用性很强,并且可解释,应用起来比较友好。这三篇论文出自同一实验室,并且算法实现均已发布到PCL中,所以我准备学习这三篇论文的方法,并整理成笔记与大家交流。

2023-11-12 22:39:51 555

原创 传统点云分割三部曲(二)——LCCP(Locally Convex Connected Patches)

传统方法进行点云分割也有很好的效果,这篇博客是本系列的第二篇,介绍的是发表于2014年CVPR上的LCCP算法,LCCP原文。VCCS是使用LCCP进行分割前的预处理工作,该方法的介绍可以看上一篇博客,LCCP的效果如下,本文提出了一种高效的,无需学习的点云分割方法,避免了对数据集的需求。算法首先利用VCCS获得supervoxel的邻接图,然后判断邻接图的每条边是凸边还是凹边。以这种方式,邻接图被分成了一系列的可以用来代表物体的局部凸连接子图。

2023-11-12 22:38:48 218

原创 点云配准经典方法——ICP 原理推导及PCL实现

ICP算法需要输入两个点云,一个是目标点云,另一个是源点云,输出的是从源点云到目标点云的位姿变换。目标点云不会移动,而源点云则会在迭代的过程中不断接近目标点云,直到收敛。但是ICP算法很容易陷入局部最优解,通常需要目标点云和源点云在配准前有比较高的重合率,因此在执行ICP之前通常会用其他方法进行一次粗配准,来获得比较好的初值,然后再使用ICP进行精配准。

2023-11-05 12:01:01 1488 1

原创 VS2019 CCCoreLib源码编译

编译的结果就是如下几个文件如何配置库我就不多说了,无外乎那几个步骤,配置include路径,配置lib路径,添加附加依赖项,实在不会可以去看我之前配置PCL的文章,就是路径不一样,操作都是一样的。

2023-11-04 17:39:26 177 1

原创 点云PLY格式与PCD格式区别

PCD:PCL库的特有格式,专为存储点云数据而设计。PLY:一种多边形文件格式,由 Turk 等人在斯坦福大学开发。STL :3D Systems 创建的立体光刻 CAD 软件原生的文件格式OBJ : 一种几何定义文件格式,最初由 Wavefront Technologies 开发X3D : 用于表示 3D 计算机图形数据的基于 XML 的 ISO 标准文件格式等等这些文件格式因为不同目的再不同时间被创建,因此都存在各自的问题,需要根据应用场景选择不同格式。

2023-11-04 16:22:32 469 2

原创 PCLPointCloud2和PointCloud<T>记录

二者之间的转换非常方便,pcl中提供了相应的接口。

2023-10-30 11:59:43 231

原创 点云滤波(二)——RMLS(鲁棒移动最小二乘)介绍

在点云滤波(一)——MLS(移动最小二乘)/PSS介绍,我们讨论了MLS的基本原理,并给出了一个很直观的理解方式。虽然MLS可以显著的减少噪声,但我们也发现了其问题,即会将锐利边缘平滑掉。下图展示了我使用MLS在实际采集到数据上的处理结果,其中白色的点云是原始点云,红色的点云是经过MLS滤波之后的点云。其原因在于MLS假设整个邻域处处光滑,只拟合了一个表面来表征邻域。但对于锐利边缘,这显然不合理。所以RMLS[1]

2023-10-17 15:52:27 492

原创 点云滤波(一)——MLS(移动最小二乘)/PSS介绍

笔者最近在做的一个项目是要从点云中提取特征(边缘、角点)。点云的来源是双目结构光相机,尽管工业级的双目结构光相机已经有了比较高的精度(名义z轴精度为0.5mm),但实际测量误差有时甚至能到2mm,为了能获得更鲁棒和准确的结果还需要尽可能的减小噪声,因此对点云滤波方法进行学习。采集的平面点云,CloudCompare中的最小包围盒高度达到了2mm三维重建中为了能显示更加好看的模型,通常会把点云滤波方法作为前置步骤,效果如下:左图为噪声数据+泊松重建的结果,右图为滤波之后再泊松重建的结果。

2023-10-12 13:44:22 766 3

原创 Ubuntu20.04+Quadro RTX 5000,3D gaussian环境配置

2020年,NeRF的出现之际引起了轩然大波,出现了大量相关工作。3D gaussian算是新视角生成领域目前的SOTA,可以进行实时的渲染;最大训练速度上可以与Instant相当,且质量差不多;增加迭代次数后,可以显著提高重建质量,在训练时间51min的情况下,重建效果可以稍微超过Mip-NeRF(48h)。这种好东西谁不想学习下呢,所以我们先进行第一步:配置3D gaussian环境。我当前的环境为ubuntu 20.04+Quadro RTX 5000。

2023-09-10 20:24:48 4498 9

原创 PCL RANSAC 多平面提取

我猜测效果不好的原因如下,RANSAC随机选点其实随机的是点的序号,然后取出对应序号的点。对于有序点云,位于同一平面上的点序号都比较接近,想选出位于同一平面上的点概率相对较低,针对此问题我们可以将代码稍作修改,也就是添加上一节中的注释部分代码。上边使用的测试数据是无序点云,但在测试有序点云的时候,上边代码的效果很差,下边的点云也是类似与上边的三个平面,只不过是从仿真环境种生成的仿真点云。需要注意的是,本节的内容是我个人对感兴趣地方的阅读笔记,而不是详细的教程,如果大家感兴趣,还是推荐自己去看源码。

2023-09-06 16:40:03 671 1

原创 VScode下配置OpenCV

lib奇奇怪怪的,好像链接引入库或者直接链接动态库都能构建成功,-L后边的路径只是用于构建,而运行的时候还是会从默认路径中去搜索库,而不是从-L后边的路径搜索,要么将用到的.dll放在.exe的同级目录下,要么直接将bin路径设置成系统环境变量。c_cpp_properties.json里设置的include路径,与vscode里对路径的读取有关,这个路径设置出问题,include时候没法补全,并且编辑器内会显示找不到,但这时候调用task,是可以正常构建的。这里写的路径,代码补全的时候可以看见。

2023-09-05 11:06:58 1726

原创 pcl和windows.h冲突(max/min函数报错)

很明显,如果不定义NOMINMAX宏的话,max和min就会被重新define,因此和std中的max和min产生冲突,解决办法很简单,在代码前。运行之后会发现报了一大堆错误,点进去发现pcl中所有的max函数都报错了,这种情况一般就是冲突了。发现windows.h包含的minwindef.h中有这样一段代码。

2023-08-21 11:52:25 215 1

原创 手眼标定原理

手眼标定在很多应用场景中都是必须的,抓取场景中相机拍摄到的物品,怎么让机械臂能抓的到,这里边就需要用到手眼标定。博主当前的课题需要用到手眼标定,本以为这东西发展了这么多年,随便调几个opencv函数应该手拿把掐,结果精度却不太能让人满意,所以准备沉下心来看看各个环节的原理,找一下到底是哪里出了问题,这篇博客聚焦于Tsai法求解AX=XB的原理以及误差分析。

2023-06-13 09:49:00 458 1

原创 两平面/三平面求交线理论推导(附C++实现)

求解交点就是求方程(3)的解,当系数矩阵非奇异,也就是三个平面不平行的时候,方程组适定,可以求出唯一解。点需要同时位于两个平面上,也就是要同时满足两个平面方程,很明显公式(1)中的因为秩明显小于未知量个数而有无穷多个解,这种情况我们只能假设其中的一个未知量已知,比如令。既然两两不平行的三个平面可以唯一的确定一个角点,那在求解两平面交线所过点时,也可以人为引入第三个平面来辅助求解,已经求出交线的方向向量为。为法向量构建辅助平面,设原点距离辅助平面的距离为0。求解两平面的交线,两平面分别为。

2023-05-23 17:44:15 1403 1

原创 VS The breakpoint will not currently be hit. 解决

想要调试某段代码,却提示The breakpoint will not currently be hit.

2023-05-19 12:40:29 550 1

原创 Visual Studio+PCL环境配置及各步骤意义简介

介绍VS+PCL的配置步骤,希望可以给小白简介下要怎么配置以及为什么这样位置

2023-05-18 16:22:50 2839

原创 相机内参、外参、畸变系数简介

简单介绍了相机内外参和畸变模型的概念,可以快速了解相机

2023-04-27 23:15:26 5097

原创 pcl多视区显示——超方便

想要使用多个视区来显示,如果直接使用pcl的函数,还需要手动计算这几个方块的尺寸,感觉不是很方便。所以想要重新实现一个更便利的多视区创建方法。

2023-04-27 15:06:15 214 2

空空如也

空空如也

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

TA关注的人

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