PaQiuQiu
作为一个热衷于技术的从业者,我在这里与大家分享最新的科技动态、独到的技术观点和实践经验。
展开
-
3D,从无知到无畏
根据自己学习3D一路走来的心路历程,以及在工作和学习过程中对3D的不断思考和总结,详细阐述了3D的学习路线图,并以图文并茂的方式来**普及3D的算法原理、实际使用过程中的经验总结,并教会大家如何根据需求查找并阅读相关论文,以及拿到源码之后如何精准解析**,适合基础进阶和想不断勇攀高峰的3D开发人员!原创 2024-08-04 16:04:20 · 418 阅读 · 2 评论 -
PCL移动最小二乘平滑——源码解析
在PCL中集成了一个非常经典的点云平滑算法,这个算法也在3D,点云平滑法线估计这篇博客中讲解了。该文章只介绍了mls算法的原理及接口调用。那么它的内部具体是如何实现的呢?如果知道了它的具体实现,那么在某些情况下,就可以直接在它的源码基础上做一些小的改动,就能够更好地适应不同的需求了。原创 2024-12-15 13:46:36 · 105 阅读 · 0 评论 -
3D,点云平滑法线估计
以下是高斯加权平滑和移动最小二乘(MLS)平滑特性高斯加权平滑移动最小二乘(MLS)平滑基本原理根据高斯函数对邻域点加权计算加权质心,调整点的位置。使用局部拟合的低阶多项式模型重建表面,然后调整点的位置。权重计算使用高斯函数wexp−d22δ2wexp−2δ2d2,权重与距离平方成反比。在局部平面拟合过程中,通常也可结合高斯权重。平滑方式通过质心调整直接平滑点云,减少噪声。通过局部曲面重建,将点投影到拟合曲面上,生成平滑表面。数学模型。原创 2024-12-15 13:40:32 · 377 阅读 · 0 评论 -
使用PCL库为什么要开启高级矢量扩展
开启高级矢量扩展是为了更高效地处理 PCL 中。原创 2024-12-15 13:15:39 · 78 阅读 · 0 评论 -
椭圆距离计算的简单方法
事实证明,接近最优的错误猜测将需要额外的迭代才能以随机方式远离初始猜测,最佳的错误猜测将会陷入困境。我已经证明,出于相当详细的原因,只要您不从最佳错误猜测开始,算法就会收敛。无需详细说明,较紧的曲线将导致较小的曲率半径,而较浅的曲线将导致较大的曲率半径。事实证明,这是一个足够好的近似值,但它在椭圆的顶点(尖端)处确实受到影响。但是,在极端的偏心上,算法最终将失败。提供了非常好的估计,因此论文声称该算法稳健且收敛速度快的说法是非常可信的。该论文的前提是,一个超大的圆将与椭圆相交至少两次。原创 2024-09-28 17:22:33 · 242 阅读 · 0 评论 -
PCL区域生长分割
该算法的目的是合并在平滑度约束方面足够接近的点。因此,该算法的输出是簇的集合,其中每个簇被认为是同一光滑表面的一部分的一组点。该算法基于点法线之间的角度的比较。首先,让我们看看该算法是如何工作的。如果各点法线之间的偏差小于平滑度阈值,则建议将它们归入同一簇(新点–被测试点–将被添加到簇中)。算法在内部结构中需要K最近邻搜索,所以这里是提供搜索方法并设置邻域数量的地方。直到点云中没有未标记的点,算法会选取曲率值最小的点并开始区域的增长。如果该值小于曲率阈值,那么算法将使用新添加的点继续聚类。原创 2024-08-25 07:55:04 · 192 阅读 · 0 评论 -
二维凸包算法
凸多边形是指所有内角大小都在0π[0, π]0π范围内的简单多边形。Andrew算法是Graham算法的改良版,好写一点,据说比Graham快一点。Andrew并不难,就两步:第一步: 首先将所有点排个序,以x坐标为第一关键字,以y坐标为第二关键字。第二步: 从左至右维护上半部分的边界,从右至左维护下半部分的边界。那么问题的关键就是如何维护来找到这个边界呢?原创 2024-08-09 20:03:16 · 193 阅读 · 0 评论 -
CloudCompare—点云切片
主要通过设置距离阈值(包围盒厚度)、基准平面(有界或无界)参数分割出点云数据,然后将分割的点云数据投影到平面上,投影数据即为生成的截面数据,并输出截面数据的数量、包围盒、中心位置或将截面数据连接为多义线等结果,工具的算法原理如图所示。类型很可能是自定义的,用于存储二维点的坐标,并可能包含一些额外的索引信息。的函数,其目的是将一组三维点投影到一个二维平面上,并将这些投影后的二维点存储在传入的。类型的向量)中提取并构建一个二维凸包,并将这个凸包的点以指针的形式存储在。原创 2024-08-09 19:59:39 · 776 阅读 · 0 评论 -
深度图进行运算检测物体表面粗糙度
除法运算:将两幅图像的像素值相除,得到新的像素值。**除法也可以用于图像差异的检测,这种差异的检测不同于图像的减法,该差异更多的体现像素值变化的比率。图像运算指的是对图像进行各种数学运算的过程,常见的图像运算包括加、减、乘、除、取反、逻辑运算等。加法运算:将两幅图像的像素值相加,得到新的像素值。所以为了能准确地测量物体表面粗糙度信息,需要通过图像运算的方式,增强这些特征,从而进行进一步的测量。减法运算:将两幅图像的像素值相减,得到新的像素值。乘法运算:将两幅图像的像素值相乘,得到新的像素值。原创 2024-08-04 15:38:05 · 188 阅读 · 0 评论 -
3D,那些你需要知道的硬件知识(2)
常见的三维视觉技术,包含双目、ToF、激光三角、结构光等,如下图: 双目、ToF、结构光(散斑)的精度为 mm 级,多见于消费领域,如:导航避障,VR/AR,刷脸支付等 线激光、结构光(编码)的精度是 um 级,主要应用在工业领域,如:表面缺陷检测、三维测量等 另外,还有 nm 级精度的光谱共焦技术,可用于透明材质物体的三维测量 按照激光投射的不同模式,激光三角法有点激光、线激光、多线激光、激光网格等 为了直观的了解激光三角法,用点激光位移传感器,演示原创 2024-08-04 09:50:23 · 1191 阅读 · 0 评论 -
3D,点云拼接2
由于错误的对应关系对于最终的刚体变换矩阵的估算会产生负面的影响,所以必须去除它们,于是我们使用随机采样一致性( Random Sample Consensus , RANSAC )估算或者其他方法剔除错误对应关系,最终只保留一定比例的对应关系,这样即能提高变换矩阵的估算精度也可以提高配准速度。另外,您也可以将每个点或子集作为关键点。辅助标志点:通过在被测物体表面粘贴标签,将这些标签作为标志点,对多次测量得到的点云数据进行配准时,对这些有显著特征的标签进行识别配准,代替了对整体点云的配准,提高效率,精确度。原创 2024-08-04 10:15:44 · 203 阅读 · 0 评论 -
PCL common中常见的基础功能函数
这里主要介绍一下基本的常见的功能函数,这些函数其实用C++也可以自行实现,在PCL中提供了更多的重载接口,方便使用。对于各种点,特征的类型的数据结构在这里就不再一一举例说明,这需要根据实际情况而定。标准的C以及C++类,是其他common 函数的父类。定义了所有PCL实现的点云的数据结构的类型。定义了中心点的估算以及协方差矩阵的计算。定义了标准的C方法计算矩阵的正则化。定义了标准的C接口的角度计算函数。定义一些基本的几何功能的函数。定义一些随机点云生成的函数。定义线与线相交的函数。定义了时间计算的函数。原创 2024-06-22 09:09:23 · 414 阅读 · 0 评论 -
一种快速高效的点云表面重建算法
贪婪投影算法()是M. Gopi等人[1]于2003年提出的点云表面重建算法。该算法从一个数据点RRR开始,找到与RRR相邻的一组数据点CRC_RCR,连接RRR与CRC_RCR,就可得到数据点RRR的所有邻接三角形(顶点中包含RRR的三角形)。然后以广度优先搜索的形式,遍历CRC_RCR中的数据点,找到这些数据点的邻接三角形,直到遍历完所有数据点。该算法的重点在于如何连接数据点RRR和CRC_RCR以生成高质量三角形(避免小角度)原创 2024-06-22 09:07:11 · 562 阅读 · 0 评论 -
CloudCompare中CCCoreLib模块介绍
是一个3D点云(和三角化网格)处理软件,它最初设计用于在两个3D点云之间(例如通过激光扫描仪获得的点云)或点云和三角化网格之间进行对比,它依赖于一个八叉树结构,该结构针对这个特定用例进行了高度优化,它还用于处理超大的点云(通常超过1000万个点,使用2GB内存最多可达1.2亿个点)。其核心的算法库CCLib库,这个库提供用于处理三维点云数据的数据结构和算法。它是存储库的一部分(称为“CCLib”),也就是源码中CC文件下的内容。原创 2024-06-10 09:47:39 · 257 阅读 · 0 评论 -
PCL点云边界提取——源码解析
在PCL中集成了一个非常经典的点云边缘检测算法,这个算法也在PCL点云边界提取这篇博客中讲解了。该文章只介绍了AC算法的原理及接口调用。那么它的内部具体是如何实现的呢?如果知道了它的具体实现,那么在某些情况下,就可以直接在它的源码基础上做一些小的改动,就能够更好地适应不同的需求了。这里只对AC边缘检测算法做个源码解析及修改后调用的过程记录,若以后需要解析其他PCL功能,也可以借鉴一下。原创 2024-05-24 21:10:29 · 741 阅读 · 0 评论 -
PCL 常用小知识
其思想就是:将原始数据插入到flann的kdtree中,寻找keypoints的最近邻,如果距离等于0,则说明是同一点,提取索引即可。如果删除的点太多建议用上面的方法拷贝到新点云,再赋值给原点云,如果要添加很多点,建议先resize,然后用循环向点云里的添加。pcl中计算程序运行时间有很多函数,其中利用。就可以以秒输出“程序段”的运行时间。中的无效点是指:点的某一坐标值为。原创 2024-05-24 17:09:37 · 133 阅读 · 0 评论 -
3D,点云平面拟合
计算所有数据点到拟合模型的距离,并将距离小于阈值的点标记为内点。以上就是点云平面拟合的算法原理介绍,若有不当之处,欢迎指出。为输入的三维点坐标。利用正规方程组的解公式,即可求得。:利用随机选择的数据点拟合模型,这里是平面模型。:使用所有内点重新拟合最佳模型,以提高模型精度。:重复上述步骤多次,选择内点数目最大的模型。,使得数据点到该平面的总距离最小。:从数据集中随机选择最少数量的数据点()作为模型参数的初始估计。最小二乘拟合平面是一种通过。来估计平面参数的方法。,我们要找到一个平面。原创 2024-05-14 21:26:20 · 385 阅读 · 0 评论 -
3D,点云下采样
每隔固定的点数采样一次。相比于体素的采样方法,点云均匀采样后的点数是固定可控的,而体素采样后的点云数量是不可控的。最远点采样是较为简单的一种,首先需要选取一个种子点,并设置一个内点集合,每次从点云中不属于内点的集合找出一点距离内点最远的点,如下图,这里的距离计算方式为该点至内点所有点的最小距离。同样需要将点云空间划分,不同的是,在均匀采样中是以半径为r的球体。选取距离球体中心最近的点作为采样点替代落在球体中的点集,此时,采样点的坐标为源点云中一点的坐标,不同于体素下采样中使用质心进行替代而产生新的点坐标。原创 2024-05-14 21:22:09 · 290 阅读 · 0 评论 -
3D,kd-tree算法原理
作为三维领域中一个重要的数据来源,点云主要是表征目标表面的海量点的集合,并不具备传统网格数据的几何拓扑信息,所以点云数据处理中最为核心的问题就是,实现。几何拓扑是计算几何学中的一个重要概念,指的是描述几何形状的空间结构和连接关系的数学模型。在几何拓扑中,主要考虑的是几何对象的形状、边界、顶点以及它们之间的关系,而不涉及具体的度量或尺寸。几何拓扑可以帮助我们理解和描述各种几何形状之间的关系,以及它们如何相互作用和变换。它在计算机图形学、CAD(计算机辅助设计)、几何建模等领域都有重要应用。原创 2024-04-30 18:40:36 · 411 阅读 · 1 评论 -
CloudCompare—点云几何体分割
通常的做法是,在判断点是否在多边形内部之前,先检查点是否在多边形的边界上。需要注意的是,这段代码似乎是基于一个特定的算法(可能是由W. Randolph Franklin提出的)来判断点是否在多边形内部。对于在多边形上的点,判断方法稍微有些不同。因为多边形的边界上的点可能被计算为与多边形内部的点具有相同的交点数量,这会导致误判。它首先检查一个多边形是否完全在视口内,然后遍历点云中的每个点,检查其是否在多边形内,并根据。通过这种方法,可以在不需要检查多边形的所有顶点的情况下快速判断点是否在多边形内部。原创 2024-04-17 18:50:00 · 646 阅读 · 0 评论 -
CloudCompare 整体架构
上面这些主要模块中,带有 “Q” 开头的说明这个模块依赖 QT。下面自底向上逐个介绍这些模块。原创 2024-04-17 11:07:45 · 259 阅读 · 0 评论 -
EasyCloud软件简介
运行环境:Win10 + PCL1.9 + VTK8.1 + Qt5.12 + VS2017基于PCL点云库的三维点云数据处理软件本软件的用户界面主要包括以下几个部分(如图1):[1]菜单栏,将软件功能模块划分为不同菜单,包括文件、视图、显示,点云简化、特征提取、三维重建以及帮助等;[2]工具栏,常用工具按钮,如打开,保存,更改点云颜色等;[3]点云文件管理窗口,用资源树的形式组织管理当前的点云文件;[4]属性窗口,记录点云文件个数、点得个数,颜色等常用属性;原创 2024-03-22 10:33:37 · 264 阅读 · 0 评论 -
Windows10系统下CGAL的安装编译
在工具栏中打开Qt VS Tools–>Qt Options–>Add添加msvc_2017_64 = .\Qt5.12\5.12.0\msvc2017_64。(2)安装完成后,重启VS,点集文件->新建->项目->Qt就可以关于Qt的信息;(1)打开VS2022,扩展–>管理扩展–>联机–>搜索Qt–>安装Qt Visual Studio Tools。若提示环境变量设置失败,要让我们自行设置环境变量:PATH = .\CGAL-5.6\auxiliary\gmp。如果一切顺利,运行后可以看到如下结果。原创 2023-12-26 21:05:40 · 318 阅读 · 0 评论 -
PCL 点云边界提取
目前PCL中应该只集成了AC,因为这个方法确实比HdC好,已经够用了。这两种方法的思路都非常简单,但是却非常有效,而往往流传下来的经典方法都是这种简单有效的方法。目前,在点云的边界特征检测(网格模型的边界特征检测已经是一个确定性问题了,见网格模型边界检测)方面,PCL中有一个针对点云边界的可以称作为是。这些问题在点云边界提取的研究和应用中是需要重点关注和解决的。通过改进算法和数据预处理方法,可以提高点云边界提取的准确性和效率。如图所示,第一行为非边界点邻域经过投影后,近邻点与当前点。的方法,这个方法出自。原创 2023-12-09 15:55:28 · 1149 阅读 · 0 评论 -
3D点云处理软件CloudCompare
开源项目推荐:3D点云处理软件CloudCompare,基于Qt和OpenGL。转载 2023-12-06 21:28:03 · 285 阅读 · 0 评论 -
一文详解手眼标定公式推导
这种,当然手眼标定还是有很多细节在里面的,比如怎么摆位置,相机的选型及机械臂的选型,希望大家一起探讨,文中若有任何不当之处也欢迎斧正。是我们要求得的转换矩阵,里面有6个线性无关的变量,其中旋转3个自由度,平移3个自由度。:机械臂末端坐标系(点)到机械臂基底坐标系(点)的旋转矩阵。:机械臂末端坐标系(点)到机械臂基底坐标系(点)的平移矩阵。为此,我们引入了一种新的东西——齐次变换矩阵。:机械臂末端坐标系到机械臂基底坐标系变换矩阵。求解目标:基底坐标系到相机的变换矩阵。求解目标:基底坐标系到相机的变换矩阵。原创 2023-10-26 09:16:41 · 607 阅读 · 0 评论 -
点云平面拟合新国标怎么应对?
切比雪夫平面拟合的目标是找到平面模型参数 (A, B, C, D) 使得点云中的每个点到拟合平面的距离的最大值最小。原创 2023-10-20 20:51:13 · 702 阅读 · 0 评论 -
PCL 大规模点云显示
是一种在计算机图形学中用于优化渲染性能的技术,主要应用于三维模型、地形等复杂几何数据的渲染中。LOD通过在不同的距离和尺寸下使用不同的模型细节级别,使得在近处显示高细节的模型,而在远处则只显示简化的模型。这样可以减少需要渲染的数据量,提高渲染性能。LOD将一个复杂的模型分成多个不同的细节层次,每个层次都有一个相应的模型表示。随着视点的移动,系统会根据视点与模型的距离和大小,自动切换显示不同的细节层次,从而在不影响视觉效果的前提下,提高渲染性能。在点云可视化中,LOD技术也可以应用于优化点云的渲染性能。原创 2023-08-09 06:08:44 · 443 阅读 · 0 评论 -
PCL 点云表面法线计算
给定一个几何表面,通常很难将表面某个点的法线方向推断为垂直于该点表面的向量。但是,由于我们获取的点云数据集是真实表面上的一组点样本,因此有两种可能性:我们将使用后者,即给定点云数据集,直接计算云中每个点的表面法线。尽管有许多不同的法线估计方法,我们先了解其中最简单也是最常见的一个,确定表面一点法线的问题近似于估计表面的一个相切面法线的问题,因此转换过来以后就变成一个最小二乘法平面拟合估计问题。我们将平面表示为一个点 ccc 和一个法向量 n⃗\vec{n}n,则从一个点 pi∈Pkp_i∈P^kpi∈Pk原创 2023-07-27 18:53:13 · 785 阅读 · 0 评论 -
一文教你读懂3D目标检测
本文共4593字,预计需要20分钟,可以先收藏再看哦1 简介目标检测是计算机视觉领域的传统任务,与图像识别不同,目标检测不仅需要识别出图像上存在的物体,给出对应的类别,还需要将该物体的位置通过最小包围框(Bounding box)的方式给出。根据目标检测需要输出结果的不同,一般将使用RGB图像进行目标检测,输出物体类别和在图像上的最小包围框的方式称为2D目标检测,而将使用RGB图像、RGB-D深度...原创 2019-05-06 15:57:54 · 21286 阅读 · 3 评论 -
PCL 点云配准——模型点云和实际点云
这是PCL官网提供的一个教程,该教程提供了一个示例,将先前捕获的对象模型与一些新捕获的点云数据进行配准。在这个具体的例子中,我们将拍摄一张包含一个人的深度图像,并尝试拟合一些之前捕获的面部模板;使我们能够确定场景中面部的位置和方向。原创 2023-07-03 18:29:48 · 582 阅读 · 0 评论 -
【6D位姿估计】Point Pair Feature (PPF)
论文名字用 4 个词高度总结了 PPF 算法的精髓:“整体建模,局部匹配下面这张图反应了论文的基本思想(原创 2023-05-06 14:54:46 · 747 阅读 · 0 评论 -
PCL 点云变换
欧氏变换要求旋转矩阵是正交阵。原创 2023-04-24 17:12:18 · 705 阅读 · 0 评论 -
3D,点云拼接2
由于错误的对应关系对于最终的刚体变换矩阵的估算会产生负面的影响,所以必须去除它们,于是我们使用随机采样一致性( Random Sample Consensus , RANSAC )估算或者其他方法剔除错误对应关系,最终只保留一定比例的对应关系,这样即能提高变换矩阵的估算精度也可以提高配准速度。辅助标志点:通过在被测物体表面粘贴标签,将这些标签作为标志点,对多次测量得到的点云数据进行配准时,对这些有显著特征的标签进行识别配准,代替了对整体点云的配准,提高效率,精确度。基于找到的关键点,我们必须。原创 2023-03-03 18:53:39 · 931 阅读 · 0 评论 -
PCL 欧氏聚类分割
点云数据虽然可以确定3D对象的形状,大小和一些其他属性,但是3D点云通常由于传感器的限制,数据是嘈杂稀疏且无序的,比如激光雷达线性和角速率的变化,点的采集密度也是不均匀的,此外点云数据的表面形状可以是任意的,是没有数据统计分布呈现出来的。所以这就给点云的分割带来一系列的问题。3)分割算法应该能适用于不同的扫描器,即便是相同的场景在不同的扫描仪生成出的点云也是具有不同的属性的,并且产生点云的质量以及稀疏性的也是不一样的。的点 $p_{11} $, $p_{12} $,找到一点,重复1,找到。原创 2023-02-20 18:04:04 · 551 阅读 · 0 评论 -
PCL 最小包围盒
包围体(包容盒)是一个简单的几何空间,里面包含着复杂形状的物体。为物体添加包围体的目的是快速的进行碰撞检测或者进行精确的碰撞检测之前进行过滤(即当包围体碰撞,才进行精确碰撞检测和处理)。包围体类型包括球体、轴对齐包围盒(AABB)、有向包围盒(OBB)、8-DOP以及凸壳(CONVEX HULL)。原创 2023-02-27 21:52:01 · 926 阅读 · 0 评论 -
PCL 平面拟合——最小二乘
最小二乘法无法处理异常值,当数据中存在异常值时,最小二乘可能会产生不正确的结果;最小二乘法的最大优点在于,它可以求解出最优参数;最小二乘是一种基于数据的模型,要求较大量的数据。对于线性不可分的数据,最小二乘无法处理;法则,得出最小二乘法平面拟合参数。5、使用最小二乘法平面拟合参数。受误差的影响可以小到最小。原创 2023-02-17 11:23:20 · 781 阅读 · 0 评论 -
PCL 平面拟合——RANSAC
根据 ransac 的思想,当一次随机样本子集中全部都为内点时,此时拟合的模型比较好。的方法,从一系列包含有离群值的数据中计算数学模型参数的方法。通常都是未知的,因此我们可以通过计算距离时获得的(估计)内点数量来更新迭代阈值。个,就保存下这个平面,并将处在这个平面上的点都标记为已匹配。这个过程重复多次,选出包含点最多的模型即得到最后的结果。3、计算所有其他点到该平面的距离,如果小于阈值。4、终止的条件是迭代N次后找到的平面小于。个点,或者找不到三个未标记的点。,就认为是处在同一个平面的点。原创 2023-02-14 16:36:56 · 1271 阅读 · 0 评论 -
PCL OcTree(二)——点云压缩
提供针对这种数据的压缩方法就变得十分有用。PCL库提供了点云压缩功能,它允许编码压缩所有类型的点云,包括“无序”点云,它具有无参考点和变化的点尺寸、分辨率、分布密度和点顺序等结构特征。而且,底层的octree数据结构允许。点云由庞大的数据集组成,这些数据集通过距离、颜色、法线等附加信息来描述空间三维点。此外,点云能以非常高的速率被创建出来,因此需要占用相当大的存储资源,一旦。是一种多媒体与平台直接的标准传输API接口,用于将硬件数据导入到计算机中。原创 2023-01-26 16:42:42 · 1091 阅读 · 0 评论 -
PCL OcTree(一)——空间变化检测
Octree是一种管理稀疏3D数据的树状结构,利用Octree实现多个无序点云之间的空间变化检测,这些点云可能在尺寸、分辨率、 密度和点顺序等方面有所差异,通过递归的比较Octree的树结构,可以鉴定出由Octree产生的体素组成的区别所代表的空间变化,并且通过Octree的“双缓冲”技术,可以实时的探测多个点云之间的空间组成的差异。对无序点云在空间变化上的检测,其实是对前后两幅点云在八叉树结构下的差异检测。因此我们要首先载入一个原始点云,并生成第一个八叉树结构;原创 2022-12-29 17:50:24 · 333 阅读 · 0 评论