![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
点云
文章平均质量分 76
xinxiangwangzhi_
这个作者很懒,什么都没留下…
展开
-
m估计及其c++简单实现
m估计理论与实现原创 2024-02-25 21:34:19 · 1159 阅读 · 3 评论 -
ERASOR:基于栅格占用差异的动态物体去除方法
定义经过slam生成的最终点云MmapMmapM⋃t∈TQWTt∗PtQ(1)Mt∈T⋃QWTt∗PtQ1WWWQQQttTtTt:query frame 到 world frame的变换矩阵。假设PtMPtM为MmapMmap在PtQPtQ坐标系的点云(即对MmapMmap乘以QWTtQWTt的逆矩阵)M。原创 2023-12-15 11:25:47 · 545 阅读 · 0 评论 -
b样条原理与测试
对于贝塞尔中的基函数而言,是确定的,全局唯一的,这导致了如果控制点发生变换将会对整个贝塞尔曲线产生影响。后续代码可能会放到GitHub。《计算几何算法与实现》原创 2023-12-08 17:16:35 · 474 阅读 · 0 评论 -
贝塞尔曲线和曲面原理
给出一系列点(一般称为控制点),贝塞尔曲线可以利用这些点得到一个平滑的曲线,贝塞尔曲线不是一个表达式,而是由一系列离散的点构成的(类似移动最小二乘法)。先由控制点得到的贝塞尔曲线的点P,对点P再进行贝塞尔曲线就得到了贝塞尔曲面。这种方法通过线性插值进行递归的方法求得贝塞尔曲线上的点。原创 2023-11-07 16:33:32 · 198 阅读 · 0 评论 -
点云配准--对称式ICP
针对于局部平面不完美的情况,提出了一种对称式ICP目标函数,相较于传统的ICP方法,增大了收敛域,提高了收敛速度。论文理论说明不甚清楚,实验较少,但代码开源。原创 2023-10-31 17:44:31 · 257 阅读 · 0 评论 -
点云滤波--一种点云异常值检测和稳健法线估计方法
论文针对激光点云提出了一种基于平面拟合的去噪算法,该去噪算法寻找邻域内最佳拟合的平面的点云,在此基础上提出了两个去噪算法:一种是基于稳健的z - score,另一种使用马氏类型的稳健距离,并在去噪的基础上提出了法线估计。结果表明:能很好地去除规则物体表面的噪点,并且相对于其他稳健性法线估计算法,文中的法线估计方法更加快,效果更好。文中算法对于非规则物体,或者远距离噪点效果不好(因为此时并不能取得一个理想的平面)。原创 2023-09-21 20:13:22 · 298 阅读 · 2 评论 -
点云滤波--LoOP Local Outlier Probabilities一种基于概率的异常值检测方法
为偏离平均值超过给定 λ 乘以标准差 σ 的对象(类似sor滤波)。根据3sigma法则:λ = 1 ⇔ φ ≈ 68%, λ = 2 ⇔ φ ≈ 95%, and λ = 3 ⇔ φ ≈ 99.7%。原创 2023-08-28 21:50:37 · 215 阅读 · 0 评论 -
点云滤波--lop和wlop
给定数据点集 P = {p j} j∈J,LOP 将任意点集X0X^{(0)}X0= {xi0xi0}i∈I投影到集合 P 上,其中 I, J表示索引集。我们通过最小化到 P 点的加权距离之和得到投影点集 Q = {qi}i∈I。此外,点Q不应彼此太靠近。该框架将所需点 Q 定义为方程(1)的不动点解QGQ(1)QGQ1GCargminXxii∈IE1XPCE2XCE1XPC∑i∈I∑j∈J∥x。原创 2023-07-30 21:16:22 · 741 阅读 · 1 评论 -
点云地面滤波--patchwork++
提出了自适应地面似然估计(adaptive ground likelihood estimation (A-GLE)) 和时序地面恢复(temporal ground revert (TGR))提出了两个新颖的异常值抑制模块,即反射噪声去除 (RNR) 和区域垂直平面拟合 (R-VPF)相比于patchwork主要提升的地方有三点:噪点、参数更新、特殊情况处理。两篇论文原文语句读着不是特别顺畅连贯,后面需要进一步分析和阅读代码才能更好理解论文的细节。原创 2023-06-11 17:23:35 · 1300 阅读 · 0 评论 -
地面分割--Patchwork
设所有点云为Pp1p2pkpNPp1p2pkpN设地面点为GGG,非地面点为GcG^cGcPG∪GcPG∪Gc设G\hat{G}G为算法估计的地面点,Gc\hat{G^c}Gc为估计的非地面点。原创 2023-05-28 23:03:04 · 1720 阅读 · 0 评论 -
地面分割--Fast Segmentation of 3D Point Clouds for Ground Vehicles论文阅读与源码分析
这篇文章属于地面分割领域非常经典的一篇论文,论文具有速度快,在一定程度能适应有坡度的地形,文章主要分为两个阶段:数据投影分块,在分块中寻找地面点。原创 2023-05-05 21:41:16 · 869 阅读 · 2 评论 -
点云配准--Fast Global Registration
目标函数1是很难直接进行优化的,我们利用Black -Rangaration对偶(对偶:即等价的)处理目标函数1,Black -Rangaration对偶是稳健估计和线性的。我们直接优化所有点云的全局位姿。如果F§和F(q)互为最近邻点,则通过互惠性检验,是一个对应关系对,将所有通过互惠性检验的对应关系集合记为。是由匹配点从P和Q中获得的对应集合,我们的目标是优化位姿T,使得对应点之间的距离最小化,同时拒绝。对于点p的F§,在F(Q)中找到p点的最近邻点,同样对于点q,在F§中找到q的最近邻点。原创 2023-03-22 22:23:12 · 364 阅读 · 0 评论 -
遮挡检测--基于角度的遮挡检测方法
遮挡检测原创 2023-03-01 21:26:57 · 968 阅读 · 0 评论 -
遮挡检测--基于高程的方法
遮挡检测--基于高程的方法原创 2023-02-26 21:12:49 · 243 阅读 · 0 评论 -
点云滤波--LOF(Local Outlier Factor)原理及c++实现
LOF(Local Outlier Factor)原创 2023-02-16 17:06:47 · 691 阅读 · 0 评论 -
一种利用棋盘格进行激光雷达与相机标定方法
激光雷达与相机联合标定原创 2023-01-09 20:28:50 · 674 阅读 · 0 评论 -
点云地面滤波小总结
地面滤波原创 2022-11-21 17:33:02 · 763 阅读 · 0 评论 -
基于SVM的点云分类--python实现
点云分类原创 2022-10-30 19:32:03 · 2439 阅读 · 6 评论 -
点云地面滤波--一种改进的渐进式不规则三角网加密地面滤波算法
点云地面滤波原创 2022-10-24 09:05:13 · 2705 阅读 · 4 评论 -
点云地面滤波--渐进式形态学滤波
点云渐进式形态学地面滤波原创 2022-10-16 11:56:06 · 3957 阅读 · 1 评论 -
点云地面滤波--渐进式不规则三角网加密(Progressive TIN Densification )--再探
点云地面滤波原创 2022-09-22 20:12:52 · 2397 阅读 · 4 评论 -
点云地面滤波--渐进式不规则三角网加密--初探
点云地面滤波原创 2022-09-18 20:14:07 · 2741 阅读 · 19 评论 -
点云地面滤波--布料模拟滤波(CSF)
点云地面点过滤原创 2022-09-12 21:12:09 · 7423 阅读 · 2 评论 -
点云配准--4PCS原理与应用
点云配准原创 2022-06-19 21:47:54 · 4314 阅读 · 0 评论 -
点云配准--gicp原理与其在pcl中的使用
在概率模型中假设存在配准中两个点集, A^={ai^}\hat{A}=\left\{\hat{a_{i}}\right\}A^={ai^} and B^={bi^}\hat{B}=\left\{\hat{b_{i}}\right\}B^={bi^},并且假设 AAA and BBB 分别服从 ai∼N(ai^,CiA)a_{i} \sim \mathcal{N}\left(\hat{a_{i}}, C_{i}^{A}\right)ai∼N(ai^,CiA)and bi∼N(b^i,CiB)b原创 2022-06-11 17:44:28 · 9034 阅读 · 5 评论 -
NDT配准原理
文章目录NDT预备知识正态分布高斯牛顿法求解非线性最小二乘NDT原理(1)目标函数(2)简化目标函数(3)数值求解(4)算法流程:(5)相比ICP的优势NDT源码解析与其在PCL应用参考资料NDT预备知识正态分布n维正态随机过程中,其概率密度函数为:p(x⃗)=1(2π)D/2∣Σ∣exp(−(x⃗−μ⃗)TΣ−1(x⃗−μ⃗)2)(1)p(\vec{x})=\frac{1}{(2 \pi)^{D / 2} \sqrt{|\boldsymbol{\Sigma}|}} \exp \left(-\f原创 2022-05-29 14:18:47 · 1903 阅读 · 1 评论 -
PCL配准中的对应关系估计与拒绝接口与实例
在之前的博客中系统地总结了PCL配准模块的主要功能和ICP算法的流程,今天讨论其中对应关系估计与拒绝,即matching 与rejection环节。1pcl中匹配对的表示方法pcl的单个匹配对可以用pcl::Correspondence表示,pcl::Correspondence是个结构体,其包含四个元素:struct pcl::Correspondence{ //query (source) point的索引 int index_query ; // the matching (target原创 2022-05-15 18:02:48 · 765 阅读 · 0 评论 -
icp配准流程总结与经典论文总结
文章目录1经典流程2opals流程3pcl流程4最终流程:情况A:情况B:1经典流程根据经典论文《Efficient variants of the ICP algorithm》的描述,icp分为以下6个过程:Selection :对点云进行处理,选择合适的点云进行配准Matching :对基准点云和待配准点云进行最近邻点匹配Weighting :对匹配对进行加权Rejecting :匹配对中存在一些错误匹配对,需要根据一定法则去除error metric:选择误差度量,如点到点,点到面度量原创 2022-05-15 16:53:36 · 1838 阅读 · 0 评论 -
efficient variants of the ICP algorithm论文
发表于03年ICP领域经典的一篇综述论文,主要贡献:将ICP论文总结为6个阶段,汇总了各个阶段的算法,并提出了法线空间采样(Normal space sampling),该论文大部分综述已经过时,这里转载一篇翻译:1 ICP 的六个阶段Selection: 在 target 和 source 的模型中下采样点来进行计算 (主要目的是为了增加运算速度)Matching: 将target和 source 中下采样的点进行配对,即找到对应关系Weighting: 给这些对应关系中增加相应的权重Reje转载 2022-05-09 21:59:20 · 322 阅读 · 0 评论 -
trimmed ICP及其在PCL代码解析与使用
文章目录1 基本原理2trimmed ICP在pcl中的实现3PCL中trimmedICP的使用1 基本原理定义data set(source set,待配准数据):P={pi}1Np\mathcal{P}=\left\{\mathbf{p}_{i}\right\}_{1}^{N_{p}}P={pi}1Np点云数量为NpN_pNp定义 model set (target set,基准数据):M={mi}1Nm\mathcal{M}=\left\{\mathbf{m}_{i}\right原创 2022-05-08 22:42:12 · 1766 阅读 · 0 评论 -
内旋外旋与矩阵左乘右乘
文章目录1矩阵左乘和右乘2内旋和外旋[3](https://zhuanlan.zhihu.com/p/144032401)3旋转矩阵为何左乘是相对固定坐标系,右乘是相对当前坐标系?1矩阵左乘和右乘从定义角度分析:标量乘符合交换律导致“乘”和“乘以”的概念混用的锅。对比除法,a÷b是a“除以”b或b除a。那么AB是A经过B过程转换后的结果,就该是A“(的)右(边)乘以”B,即A左乘B。同样:BA,称为A右乘B。1从几何角度理解:左乘结果是 向量旋转 之后相对于原坐标系的位置, 右乘是参考系旋转移动原创 2022-05-08 17:09:24 · 4435 阅读 · 2 评论 -
pcl分割模块汇总
文章目录1算法汇总1.1 渐进式形态学滤波1.2欧式条件聚类1.3超体素/图/超体素+图方法1.4有序点云分割1.5欧式聚类(官方示例)1.6欧式标签聚类1.7区域增长1.8几何模型分割(官方示例)1.9点云差异获取1.10二元分类1.11DON分割(官方示例)1.12获取2d多边形内的点云1算法汇总1.1 渐进式形态学滤波经典的地面滤波方法,经常与布料滤波相提并论。progressive_morphological_filter.happroximate_progressive_morpholo原创 2022-04-06 09:29:59 · 3938 阅读 · 0 评论 -
DON(Difference of Normals)分割
分割主要思想:对选取不同半径近邻,计算一个点的法线。这样会得到同一个点,对应两个法线,根据这两个法线的差异,判断这个点是不是分割的内点。该方法能分割一些规则的物体,例如平面,球面等。PCL官方文档是利用pcl::PointNormal的curvature的属性(field)构建一个条件滤波,从而完成don分割。pcl::PointNormal类型的field,共包括x,y,z,normal_x,normal_y,normal_z,curvature,7个字段。当然don分割也可以使用其他field 例如n翻译 2022-03-21 15:43:03 · 814 阅读 · 0 评论 -
利用laspy读取写入las文件
首先要了解las数据格式的基本构成,其次利用开源库计算,laspy提供了两种方式读取las文件import laspyimport numpy as np#参考链接:# 用Matlab处理LAS点云(1)——LAS文件概述--知乎# https://pythonhosted.org/laspy/tut_part_1.html# https://laspy.readthedocs.io/en/latest/examples.html# 按间距中的绿色按钮以运行脚本。"""Laspy can原创 2022-03-03 15:28:33 · 5295 阅读 · 2 评论 -
利用flann进行点云近邻搜索
有时间为了近邻搜索而引入pcl库是不必要的,pcl底层kdtree近邻搜索依赖于flann库,因此不使用pcl而单独使用flann进行近邻搜索是简洁可行的。下面是单独使用flann进行近邻搜索,并且与pcl近邻搜索对比的代码:// flann使用.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include <iostream>#include<pcl/io/pcd_io.h>#include<pcl/point_cloud.h&原创 2022-02-18 14:01:58 · 1401 阅读 · 0 评论 -
寻找两个点云重叠部分
目录方法1:方法1实验效果:方法2:方法2实验效果:结论:网上大部分寻找重叠区域都是对一个点云建立kdtree,然后在r半径内搜索另外一个点云的点。这种方法适合两个点云完全一样。一般的点云数据并不完全一样,例如两条航带的点云,并不完全相同,如果应用这方法会损失很多点,造成特征计算的不准确性。下面介绍两种方法:写在前面的结论:第二种方法速度和精度上均优于第一种方法(octree yyds!!!)方法1:(1)假设有两组点云A,B,计算A的OBB包围盒(2)寻找点云A的OBB包围盒内的点云B,这样就得原创 2022-01-16 00:25:47 · 7950 阅读 · 39 评论 -
alpha-shape计算二维点云边界--c++实现
alpha-shape原理看过很久了,今天花点时间实现一下:原理参考:博客平面点云边界提取算法研究[D].长沙理工大学,2017.《综合机载与车载LiDAR数据的建筑物三维重建》注意:个人原创,转载注明出处,如果感觉有帮助,点个赞,有疑问,欢迎留言交流。show the codes:// ashape.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include<pcl\common\common.h>#include <iostream原创 2022-01-14 21:12:09 · 2653 阅读 · 2 评论 -
pcl配准模块总结
按照pcl说明配准分为以下几个步骤:配准步骤:1寻找关键点(keypoint)2计算关键点的特征3估计特征的对应关系(1)对于直接使用坐标值的点间配准,一般使用kdtree查找对应关系(2)对于使用特征的配准,除了kdtree搜索外还可以使用直接估计,或者“Reciprocal” correspondence estimation。Direct correspondence estimation (default) searches for correspondences in cloud .原创 2022-01-05 18:07:32 · 4373 阅读 · 1 评论 -
基于法线的点云双边滤波
双边滤波具有一定的保留边缘特征的功能,本质上是一种平滑算法,算法原理:具体参考文献《The Bilateral Filter for Point Clouds》作者:Julie Digne, Carlo de Franchis代码:#include <iostream>#include<cmath>#include<pcl/io/pcd_io.h>#include<pcl/point_cloud.h>#include<pcl/kdtre原创 2021-11-16 14:53:50 · 5131 阅读 · 21 评论 -
点云引导滤波算法实现
引导滤波假设点云经过一个线性变换,具有很好的保留边缘信息功能。参考文献:韩先锋博士学位论文《三维点云去噪处理及特征描述的研究》伪代码:代码是这样的#include <iostream>#include<pcl/io/pcd_io.h>#include<pcl/point_cloud.h>#include<pcl/point_types.h>#include<pcl/kdtree/kdtree_flann.h>using poin原创 2021-11-13 10:49:10 · 3201 阅读 · 4 评论