点云
文章平均质量分 54
QUST-Learn3D
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
CUDA实现的点云MLS滤波
本文介绍了一个基于CUDA的高效移动最小二乘法(MLS)点云平滑处理实现。该系统通过GPU加速实现了点云的二次多项式拟合,主要包含以下优化: 核心算法采用双阶段处理:先计算加权质心和协方差,再构建二次方程组求解 使用空间分块策略加速邻域搜索,通过thrust库实现高效的分块排序和统计 采用优化的数学运算: 改进的Jacobi特征值分解 Cholesky分解求解线性系统 稳定的局部坐标系构造 添加数值稳定性增强: 对角岭回归正则化 条件数检查 退化情况处理 该实现通过CUDA并行计算显著提升了处理速度。原创 2025-10-27 22:34:41 · 318 阅读 · 0 评论 -
2D点云中的ϵ-sampling (基于距离控制的、保形状的点云简化)
摘要: ϵ-sampling是一种基于距离控制的2D点云简化方法,通过设定最大允许误差ϵ(小圆盘半径),从原始密集点云中选取最少采样点,使采样点与原始点之间的双向距离均不超过ϵ。核心思想类似用最少数量的"灯塔"(采样点)覆盖所有"船只"(原始点),每个灯塔的照明范围为ϵ。这种方法能显著减少数据量,同时保留原始形状的关键特征(如尖角、凹陷),并可通过调整ϵ值精确控制采样精度。ϵ越小精度越高,采样点越多;ϵ越大简化程度越高,但可能丢失细节。相比随机采样,ϵ-samplin原创 2025-10-01 22:06:18 · 523 阅读 · 0 评论 -
FEC 快速欧式聚类代码详细解读
该代码实现了一个基于点云数据的快速欧式聚类算法(FEC)。主要功能包括:1) 使用KdTree进行邻域搜索,通过半径查询找到邻近点;2) 采用标记传播算法对点云进行聚类,通过比较和统一标签值来实现;3) 对聚类结果进行排序和筛选,只保留大于最小聚类尺寸(min_component_size)的簇;4) 最终返回满足条件的聚类索引集合。算法参数包括:邻域搜索半径(tolorance)、最大邻域点数(max_n)和最小聚类尺寸。该实现适用于PCL点云库,可用于3D点云分割任务。原创 2025-09-17 22:41:51 · 1115 阅读 · 0 评论 -
Blender模拟结构光3D Scanner(三)获取相机观测点云的真值
本文介绍了一个Blender插件,用于通过光线追踪技术将相机视角下的3D场景转换为点云数据。该插件从相机光心向每个像素发射射线,与场景物体求交后将交点坐标导出为ASC或NPZ格式的点云文件。核心功能包括:1)支持设置分辨率、采样步长等参数;2)可选择场景中的任意相机;3)提供点云数据可视化和导出功能。代码实现了射线投射计算、数据存储和用户界面交互,适用于3D扫描、计算机视觉等需要将3D场景转换为点云数据的应用场景。插件安装后可在Blender的3D视图侧边栏中调用。原创 2025-08-29 15:00:56 · 746 阅读 · 0 评论 -
PCL提取平面上的圆形凸台特征
本文提出了一种基于点云数据的凸台几何参数测量方法。首先通过点云转深度图像提取圆心并匹配三维点;然后以指定半径取邻域点,提取最大平面作为参考平面;接着删除平面附近点得到凸台点云,并提取顶面平面;将点云转换到顶面平面坐标系后,进行2D边缘点识别和圆拟合;最后计算圆心到参考平面的距离作为凸台高度。关键代码展示了点云加载、平面提取、坐标变换和圆拟合等核心处理步骤。该方法实现了凸台几何参数的自动化测量,包括圆心定位、半径计算和高度测量等功能。原创 2025-08-07 15:53:21 · 293 阅读 · 0 评论 -
PCL统计点云Volume
该文提出了一种基于参考平面的点云体积计算方法。方法首先通过RANSAC算法拟合参考平面,将原始点云变换到以该平面为xOy平面的坐标系下;然后对投影后的2D点云进行Delaunay三角剖分,计算每个三角形对应三棱柱体积(面积×平均高度);最后累加所有三棱柱体积得到总体积。实现中使用了PCL库处理点云数据,CGAL进行三角剖分,并采用哈希表优化高度值查询。实验表明该方法能有效计算点云体积,适用于不规则物体的体积测量。原创 2025-08-04 22:53:02 · 318 阅读 · 0 评论 -
QOpenGLWidget自定义控件— 2D点云显示(支持平移、放缩、绘制网格)
摘要:该代码实现了一个基于Qt和OpenGL的点云可视化工具PointCloudViewer。主要功能包括:1) 支持三维点云的加载和显示;2) 提供网格背景和坐标轴辅助观察;3) 实现鼠标交互(平移、缩放)操作;4) 支持点大小和颜色的自定义设置。关键技术点包括:使用OpenGL着色器绘制点云和网格,正交投影实现2D视图,鼠标事件处理实现视图变换,以及动态调整网格间距的智能算法。该工具可用于点云数据的快速可视化检查和分析。原创 2025-07-16 16:24:52 · 415 阅读 · 0 评论 -
SimLOD代码精读(六) Rendering—DrawNodes
【摘要】SimLOD是一种基于相似性的多层次细节算法,用于大规模3D点云/网格数据的动态简化。其核心是通过分析数据相似性自适应调整细节层次,在保持视觉质量的同时提升渲染效率。算法采用八叉树结构组织数据,通过CUDA并行实现高效渲染,主要特点包括:1) 基于视锥剔除和像素尺寸的节点可见性判定;2) 针对边缘区域的特殊LOD处理;3) 双重渲染流程(先深度后颜色)确保正确性;4) 支持两种可见性计算方法(DISJUNCT和ADDING模式);5) 采用持久线程模式和工作窃取策略优化GPU利用率。原创 2025-07-15 15:26:54 · 991 阅读 · 0 评论 -
SimLOD代码精读(五)Rendering——Node可见性判定 Disjunct VS Additive
SimLOD是一种基于相似性的多层次细节算法,用于大规模3D点云的高效渲染。其核心区别在于Additive和Disjunct两种可见性策略:Additive允许父子节点同时可见,保留更多细节但增加渲染负载;Disjunct则互斥显示父子节点,降低负载但可能丢失细节。代码实现中采用Disjunct策略的并行计算,通过八叉树节点筛选和统计可见节点数量,确保在减少渲染负载的同时维持视觉质量。该算法通过动态调整细节层次,有效平衡了渲染效率和视觉保真度。原创 2025-07-10 14:14:19 · 399 阅读 · 0 评论 -
SimLOD代码精读(四)Allocate Chunks + Insert Points & Voxels
SimLOD是一种创新的3D数据简化算法,通过建立八叉树结构实现动态LOD管理。算法流程包含:1)八叉树构建(计数与分裂阶段);2)体素采样确定节点对应数据;3)内存分配(为叶节点分配点数据块,为内部节点分配体素数据块);4)数据填充(处理新批次点集和溢出数据)。该技术通过相似性分析平衡渲染质量与效率,适用于大规模点云/网格处理。相关代码实现位于progressive_octree_voxels.cu文件,包含详细注释。原创 2025-07-07 15:13:03 · 674 阅读 · 0 评论 -
SimLOD代码精读(三)Voxel Sampling 体素采样
SimLOD是一种基于相似性的多层次细节算法,用于大规模3D点云或网格数据的高效渲染。该算法通过构建八叉树结构实现动态数据简化,在Voxel采样阶段将每个内部节点划分为128³体素网格,使用位掩码标记占用状态。计算点云在各层级节点的局部体素坐标,通过原子操作确保线程安全,并生成简化后的点云数据。算法在保持视觉质量的同时显著提升渲染性能,适用于海量3D数据的实时处理。代码实现包含坐标转换、体素索引计算等核心步骤,通过GPU并行处理优化计算效率。原创 2025-07-03 15:45:44 · 511 阅读 · 0 评论 -
SimLOD代码精读(二)建立Octree之Splitting Pass分裂阶段
SimLOD是一种基于相似性的多层次细节算法,用于大规模3D点云数据的动态简化。其核心是通过分析数据相似性自适应调整细节层次,在保持视觉效果的同时提升渲染效率。算法实现包含Octree构建的CountingPass和SplittingPass两个关键阶段:CountingPass负责统计节点数据量并标记需要分裂的节点;SplittingPass则处理节点分裂,包括创建8个子节点、初始化节点属性、建立继承关系、回收点数据和分配占用网格等操作。这些操作通过并行计算高效执行,最终实现点云数据的层次化组织与管理。原创 2025-06-30 23:39:56 · 508 阅读 · 0 评论 -
SimLOD代码精读(一)建立Octree之Counting Pass计数阶段
SimLOD提出了一种GPU并行八叉树点云处理算法,通过原子操作和线程协作优化计算效率。算法采用八叉树结构组织点云数据,使用Warp-Level Reduction技术减少原子操作调用,降低GPU全局内存访问竞争。关键步骤包括:1) 量化坐标并定位叶节点;2) 通过分组原子操作高效计数;3) 处理溢出节点并重新分配数据。当溢出节点数为0时,算法结束Expanding阶段进入Voxel Sampling阶段。该方法实现了高效的点云统计与管理,适合大规模3D数据处理。原创 2025-06-29 23:43:27 · 584 阅读 · 0 评论 -
CUDA使用coalesced_threads配合labeled_partition减少原子操作提升并行效率
摘要: 本文介绍了CUDA的两个线程协作函数cg::coalesced_threads()和cg::labeled_partition()在点云计数优化中的应用。前者获取当前活跃线程(如Warp中实际运行的线程),后者按叶节点地址分组,使访问同一节点的线程合并操作。通过每组仅执行1次原子操作(如atomicAdd),而非每个线程1次,显著减少竞争。例如,8个线程访问同一叶节点时,只需1次+8而非8次+1。该方法适用于八叉树、哈希表等场景,有效提升GPU并行效率。原创 2025-06-29 11:34:03 · 936 阅读 · 0 评论 -
2D曲线点云平滑去噪
本文提出了一种二维曲线点云平滑去噪方法,采用移动最小二乘法(MLS)分段拟合抛物线并投影,将宽曲线点云细化为单条曲线。针对曲线方向与Y轴不同偏差情况(偏离较远或较近),分别采用不同投影策略:当偏离较远时使用y=ax²+bx+c拟合,较近时用x=ay²+by+c表示。该方法通过局部曲率估计和PCA分析自适应调整平滑参数,避免二阶多项式过拟合问题。文中给出了基于Eigen库的C++实现代码,包括邻域搜索、曲率计算、抛物线拟合和投影等核心步骤,并指出考虑距离和曲率权重的优化方向。原创 2025-06-21 22:43:17 · 387 阅读 · 0 评论 -
PCL点云按指定方向进行聚类(指定类的宽度)
点云按指定方向进行聚类(滑动窗口分割),需指定方向和类的宽度。原创 2025-05-08 14:39:25 · 525 阅读 · 0 评论 -
固定尺寸矩形覆盖2D点云 + PCL可视化
在研究结构光传感器测量路径规划算法时遇到的问题:有一组2D点,如何用最少数量的固定尺寸的矩形框,覆盖所有点。通过DeepSeek,实现了一种解决方法并用PCL进行了结果的可视化。2)迭代多次,若查询到矩形框内无点,则删掉矩形框;若相邻矩形框的点可以用单个矩形框覆盖,则用单个矩形框代替两个矩形框;1)2D点按照矩形框尺寸,均匀划分网格;原创 2025-04-29 13:27:38 · 327 阅读 · 0 评论 -
求解有序2D曲线点曲率并可视化
计算有序2D点集曲率并可视化。使用PCL版本 1.15.0。原创 2025-04-28 15:11:35 · 290 阅读 · 0 评论 -
2D无序点集曲线重建(沿曲线重新排序)
从队首的点出发,沿着第二个点到第一个点的方向,在允许角度偏差范围内寻找最近点。:从队尾的点出发,沿着前一点到当前点的方向,在允许角度偏差范围内寻找最近点。当两个方向都无法找到符合条件的点时,算法终止。可以通过构造函数调整这个参数来适应不同曲线。:控制搜索方向的角度偏差阈值(弧度)从任意点开始(代码中选择第一个点)找到它的最近邻作为第二个点。原创 2025-04-27 16:06:17 · 264 阅读 · 0 评论 -
PCL绘制点云+法线
读取的点云ASCII码文件,每行6个数据,3维坐标+3维法向。原创 2025-04-27 00:09:38 · 646 阅读 · 0 评论 -
高精度3D圆弧拟合 (C++)
本文的目的是C++实现高精度的3D圆弧拟合,基本思路为:1)RANSAC拟合平面,得到平面模型,去掉离群点;2)根据平面模型,构建新的坐标系:将源点云投影至此坐标系XOY平面,得到2D圆弧点云;3)拟合2D圆弧点云,得到圆心点和半径;4)将圆心点结合2)中的坐标系,反变换至源点云坐标系中,得到3D圆弧圆心,3D圆半径与3)半径结果一致。原创 2025-04-26 22:26:31 · 1200 阅读 · 0 评论 -
高精度并行2D圆弧拟合(C++)
PCL库拟合圆弧的问题:PCL中坐标值默认使用float类型,在某些高精度场景中不适用。Step 2:使用ceres非线性优化的方法,拟合inliers点,得到圆心和半径;Step 1: RANSAC找到圆弧,保留inliers点;原创 2025-04-24 22:53:50 · 555 阅读 · 0 评论 -
并行RANSAC平面拟合(C++)
1)Eigen2)GLMStep 1:源点云随机采样3个点;Step 2:3个点拟合平面,统计符合该平面模型的点,为inlier点;Step 3:判断inlier点比例是否达到阈值,更新最佳模型和最佳模型对应的inlier点集。若inlier比例不到阈值,则继续Step 1;若已满足阈值或达到最大迭代次数,转Step 4;Step 4:针对最佳模型的inlier点集,使用最小二乘法,重新拟合平面;原创 2025-04-23 14:09:36 · 387 阅读 · 0 评论 -
点云多项式拟合(Z拟合为X和Y的二元n阶多项式)
点云多项式拟合,支持n阶多项式Z拟合为X和Y的二元n阶多项式原创 2025-04-09 14:19:00 · 188 阅读 · 0 评论 -
PCL拟合空间3D圆周 fit3DCircle
PCL 拟合空间3D圆周 得到圆心 法向量和半径原创 2025-04-08 16:58:32 · 530 阅读 · 0 评论 -
C++高效读取大规模文本格式点云(windows)
C++高效读取大规模文本格式点云(windows)执行效率明显优于ifstream + stof原创 2025-04-03 15:50:16 · 239 阅读 · 0 评论 -
PCL点云处理——球面点云提取+拟合
(3)点云聚类,忽略点数较少的簇,剩余较大的簇拟合球,计算球-平面距离。一平板上沾有多个球,使用激光扫描仪获取点云,包括平板点云+多个球冠点云;(2)剔除距离平面一定距离范围内的点,余下所有球冠点;提取各球点云,拟合球面参数,求取球到平板距离。(1)求平板平面:降采样,提取最大平面;原创 2025-02-20 08:19:17 · 509 阅读 · 0 评论 -
双归一化(Dual Normalization)在点云匹配任务中的应用
dual_normalization的含义 在点云匹配中,dual_normalization(双重归一化)是一种用于优化匹配过程的技术,旨在通过两次归一化操作来提高匹配的鲁棒性和准确性。它主要用于处理点云特征之间的相似性矩阵,通过归一化操作平衡不同特征之间的匹配得分原创 2025-02-07 11:01:43 · 700 阅读 · 0 评论 -
PPFStructualEmbedding & GeometricStructureEmbedding 模块实现源码精读
PPFStructureEmbedding 是一种基于 Point Pair Features (PPF) 的几何结构嵌入方法,通常用于点云处理任务中。PPF 是一种描述点云中局部几何关系的特征表示方法,广泛应用于点云配准、物体识别和姿态估计等任务。 GeometricStructureEmbedding 类是一个 PyTorch 模块,旨在将点云中的几何结构嵌入到高维空间中。该嵌入捕捉了点之间的成对距离和角度关系,这对于许多 3D 视觉任务(如点云分类、分割或目标检测)至关重要。原创 2025-02-06 00:00:40 · 560 阅读 · 0 评论 -
基于曲率的点云降采样_曲率降采样(PCL+GPU)
基于曲率的点云降采样 pcl+cuda实现可实现尽可能保持细节特征的前提下,减少点云规模。使用CUDA加速,执行效率高。原创 2024-12-13 13:36:43 · 800 阅读 · 0 评论 -
RIMLS点云滤波算法——具有锐利边缘的点云平滑
是一种用于点云去噪和表面重建的算法。它特别适用于处理具有锐利边缘的点云数据,因为它能够在去噪的同时保留这些边缘特征。RIMLS算法的核心思想是将点云中的每个点投影到一个分段光滑的表面上,这个表面是通过局部拟合点云数据得到的。RIMLS算法能够有效地处理具有锐利边缘的点云数据,同时减少噪声的影响。这使得它在许多应用中非常有用,如三维建模、计算机视觉和几何处理。资源中给出了一种C++实现,基于Github代码。原创 2024-10-23 10:15:31 · 1583 阅读 · 0 评论
分享