网站建设鼠标点击变色怎么弄minty wordpress
2026/3/16 6:50:51 网站建设 项目流程
网站建设鼠标点击变色怎么弄,minty wordpress,中山网约车资格证报名地点,网站建设的初步预算引言什么是点云配准呢#xff0c;我们分别看下点云和配准点云#xff1a;你可以想象成 “3D 世界的像素”—— 比如用激光雷达扫描一个桌子#xff0c;会得到成千上万的 3D 坐标点#xff08;每个点有 X、Y、Z 位置信息#xff09;#xff0c;这些点凑在一起就形成了桌子…引言什么是点云配准呢我们分别看下点云和配准点云你可以想象成 “3D 世界的像素”—— 比如用激光雷达扫描一个桌子会得到成千上万的 3D 坐标点每个点有 X、Y、Z 位置信息这些点凑在一起就形成了桌子的 “点云”能完整还原桌子的 3D 形状。配准简单说就是 “把两个不同角度 / 时间扫到的同个物体的点云对齐成一个完整的 3D 模型”。比如你先扫了桌子的正面点云 A再绕到侧面扫了一次点云 B这两个点云在电脑里是 “错位” 的配准的目标就是找到一个 “变换规则”比如把点云 B 平移 旋转一下让 A 和 B 完美重合最终得到整个桌子的完整 3D 点云。还有一个就是刚性变换它其实就是平移加变换不改变形状详细一点的解释如下刚性变换 只做平移前后左右移和旋转转角度不会让点云拉伸、压缩或变形比如桌子的点云不会被拉成长方形这是 3D 配准里最常用的变换方式因为现实中物体不会轻易变形。刚性点云配准刚性点云配准的主要流程如下1输入源点云和目标点云2寻找源点云和目标点云的对应关系3寻找源点云与目标点云之间的最佳变换4得到最终的变换矩阵。其中对应关系的求解与变换矩阵的求解两部分较为重要接下来进行分别讲述。对应关系求解这里以Y为源点云X为目标点云他们的最佳对齐可以表示为image-20251101221035065g是刚体变换函数它由一个旋转矩阵R和一个平移变量t组成g(Y)等同于R * Y t其中R∈SO(3)指的意思是三维特殊正交群这个条件保证了 R 必须是一个合法的旋转矩阵RRt1det(R)1它只改变方向不改变形状和大小d是误差函数表示变换后的g(Y)和X的差异d通常指的是对应点之间的欧氏距离最后的||||2²是L2范数的平方,其目标就是让这个总的平方误差最小。最终再使用argmin函数得到一组使得误差最小的参数也就是最优的旋转矩阵 R 和平移向量 t。求解两刚性点云的关系有很多种方法例如基于迭代的方法、提取特征的方法与匹配对应的方法。迭代求解方法刚性点云配准问题中迭代求解方法主要为ICP算法、NDT算法和CPD算法。ICP算法ICP(Iterative Closest Point)即迭代最近点算法它的算法流程如下1、目前并不知道哪种变换方式可以使得源点云的点对应目标点云的点这里就找最近的建立一个对应关系2、基于猜出的关系计算出最优的变换3、应用变换源点云就离目标点云更为接近4、进行阈值检测满足时停止迭代5、在新的位置上继续进行最近点的关系建立然后再变换也就是迭代1-3的行为。具体步骤示例如下这里我们设置源点云P{Pi}目标点云Q{Qi}接下来执行ICP算法一、初始化选择一个初始的变换估计{R0t0}通常没有任何信息的时候给R0设置单位矩阵t00二、迭代1寻找最近关系最近邻搜索对于变换后的PkRk * P tk中的每一个点Pi在目标点云Q中找到欧氏距离最近的点qi作为其对应点此时就建立了临时对应点对集合Ck{Piqi}2剔除无效点对为了增加鲁棒性通常会剔除一些不好的点对例如距离超过一定阈值的点对可能是错误的匹配和互相不是最近邻的点对双向一致性检查。3计算最优变换这里将上一步得到的点对集合 Ck 视为已知的、正确的对应关系。接着使用封闭解来计算一个使这些对应点对之间距离平方和最小的新变换。什么是封闭解呢他它指的是通过一套精确的、有限的数学公式直接计算出问题的最优解。比如计算二元一次方程可以用求根公式直接求解。这里也是一样的我们在得到了一组临时的对应点对后求解最优变换 (R, t) 的问题就存在一个漂亮的封闭解。我们要找到一个旋转矩阵R和一个平移向量t最小化均方误差image-20251102120149565基于SVD的封闭解求解步骤计算质心质心就是点云在空间的中心位置image-20251102120752659接下来计算去中心化的点集image-20251102120919528现在两个新的点集 {xi}和 {yi} 的质心都在坐标原点将平移分量 t 从问题中分离了出来因为这个时候只需要考虑旋转对齐而不需要考虑平移的事情。接下来计算最优旋转矩阵R步骤1构造协方差矩阵H3*3矩阵这个矩阵捕获了两个去中心化点集之间的相关性image-20251102121410371步骤2对矩阵进行奇异值分解其中U和V是3*3的正交矩阵Σ是3*3的对角矩阵对角线上的元素非负image-20251102121520545步骤3计算最优旋转矩阵R这个解保证了 R 是正交矩阵但不能保证其行列式为 1一个合法的旋转矩阵行列式必须为1image-20251102121654325步骤4反射校正计算detR的值如果为1就按上述公式求出R即可如果是-1则需要将 V矩阵的最后一列取相反数得到 V‘再乘上UT得到R接下来就是最后一个求出最优平移向量t已经有了最佳矩阵我们求t就很简单了。最优的平移就是把源点云的质心旋转后刚好移动到目标点云质心上所需要的那段位移。image-20251102121937977为什么是最优的平移证明如下image-20251106172023911image-20251106172049688NDT算法NDTNormal Distributions Transform正态分布变换是一种广泛使用的点云配准算法它的核心思想与ICP截然不同NDT不直接计算点与点之间的对应关系而是通过概率模型来描述和匹配点云的表面结构。NDT算法的基本流程如下1、目标点云预处理将目标点云划分为体素网格并为每个网格计算正态分布参数2、初始化变换设置初始变换估计通常为单位变换或粗略对齐3、 迭代优化计算梯度与海森矩阵求解更新量更新变换4、收敛判断 检查梯度大小、参数变化或迭代次数满足则停止5、输出结果返回最优变换矩阵算法具体步骤如下步骤一预处理目标点云构建NDT表示这步操作使得目标点云将不再被当作离散的点而是被描述为一个概率场。1体素网格划分首先将目标点云所在的空间划分为一个个均匀的体素实际上就是立方体网格2计算概率分布对于每一个网络搜集在其内部的所有目标点假设这些点都服从一个三维正态分布计算均值向量μ其用于描述点的平均位置image-20251102155544105计算协方差矩阵 Σ它用于描述点的分散情况形状、朝向image-20251102155638888这样每个体素就可以用一个正态分布N(μ,Σ) 来进行拟合。步骤二定义优化目标函数现在我们要找一个变换T包含旋转和平移将其应用于源点云P使得变换后的源点“落入”目标点云概率场的可能性最大。其实也就是PT(P)1计算似然对于一个变换后的源点PT(P)我们找到它所在的网格然后计算它在这个网格的正态分布下的概率密度image-202511021605507012构建目标函数NDT的目标是最大化所有变换后的源点概率密度的乘积。image-20251103171716992为了计算方便我们通常最大化其对数似然最终的评分函数是所有点得分的总和image-20251103203712061步骤三优化变换函数目标是找到变换 T 使得评分函数 E(T) 最小化这是一个标准的非线性优化问题。通常采用牛顿法进行迭代优化需要计算评分函数对变换参数 T 的梯度和海森矩阵 。在3D空间中T通常由6个参数表示image-20251103204322943通常使用牛顿法进行优化通过迭代逼近最优解image-20251103203848310H是Hessian矩阵二阶导数∇E是梯度一阶导数1计算梯度image-20251103204113944以X为例的话进行计算如下image-202511032044207162计算海森矩阵image-202511032044428303求解线性系统每次迭代需要求解image-20251103204528989通过这个来算出来更新量Δx。CPD算法CPD算法是基于概率模型的点云配准方法。它通过计算点云之间的概率密度函数来估计它们的对应关系。算法的基本流程如下初始化选择两个点云并计算它们的概率密度函数迭代在每一迭代中根据概率密度函数计算两个点云之间的对应关系更新根据对应关系更新点云的位置重复迭代直到满足终止条件。具体步骤如下CPD算法将点集配准问题转换为概率密度估计问题其将点集M的分布表示成混合高斯模型当点集M与点集S完成配准后对应的似然函数达到最大。一、分布模型表示将点集M中每个点mi作为混合高斯模型中每个成分的中心并且假设每个成分概率相等那么其分布模型可以表示为img其中img考虑噪声的影响在分布模型中又加入了均匀分布函数其权重为w这样上式分布模型可以进一步表示为img混合高斯模型的中心在配准过程中与变换参数θ相关为了求得模型参数需要极小化负对数似然函数img二、求解θ和σ2过程可以使用期望最大算法算法包含两步1E-Step通过旧的分布模型参数计算后验概率分布Pold(i|sj)imgM-Step极小化损失函数来得到新的模型参数θ和σ2img特性 ICP NDT CPD全名 Iterative Closest Point Normal Distributions Transform Coherent Point Drift核心思想 最近邻点对匹配 SVD求解 概率分布匹配 牛顿法优化 高斯混合模型 EM算法理论基础 几何优化 概率密度估计 统计概率模型对应关系 硬对应一对一 隐式对应分布匹配 软对应概率分配收敛速度 快 中等 慢优点 • 实现简单 • 计算高效 • 内存消耗小 • 收敛快 • 鲁棒性强 • 不需要点对点对应 • 收敛域较大 • 效率较高 • 最强的鲁棒性 • 概率对应关系 • 支持非刚性变换 • 全局收敛性缺点 • 对初始位置敏感 • 对噪声敏感 • 需要高重叠度 • 对应关系脆弱 • 网格大小敏感 • 分布假设限制 • 对空旷区域敏感 • 数学复杂 • 计算复杂度高 • 收敛速度慢 • 参数调节复杂 • 内存消耗大适用场景 • 刚体变换 • 良好初始位置 • 高重叠度 • 实时应用 • 激光SLAM • 自动驾驶 • 室外大场景 • 噪声较多情况 • 医学图像 • 生物特征识别 • 非刚性配准 • 高精度要求场景时间复杂度 O(NlogN) O(N) O(NM)内存消耗 低 中 高鲁棒性 低 中 高实现难度 简单 中等 困难特征提取方法点线面基于点的采样方法随机采样法其核心就是随机性他的思想是纯粹通过随机性从原始点云中抽取一个子集而不考虑任何几何信息。其流程可以简单的描述为以下确定采样数量用户指定希望保留的点数 M或者指定一个采样比率如 10%。随机选择从原始点云的 N 个点中无放回地随机选取 M 个点。形成新点云将这 M 个被选中的点组成一个新的点云。因为这个方法是没有考虑几何信息可能位置分布十分不均匀所以这里接着提出了最远点采样的方法保证分布均匀。最远点采样是一种旨在最大化点云空间覆盖的采样方法它的核心思想是每次选择的点都距离当前已选点集最远从而保证采样点在空间中尽可能均匀分布。其算法流程如下1、初始化假定要取M个点的子集从点云中随机选定一个点加入采样集合S初始化一个距离数组D长度为N记录每个点到采样集合S的最近距离。初始时S 中只有一个点所以 D 记录每个点到这个起始点的距离。2、迭代采样对于接下来的M-1次迭代每次都进行以下操作1寻找最近点在距离数组D中找到值最大的点这个点就是当前距离已选点集 S 最远的点。2更新集合将该点加入采样集合 S。3计算所有点到这个新加入点的距离并更新距离数组 D其中D[i] min(D[i], 点 i 到新加入点的距离)但是它们都无法保证两个点云中提取的关键点也无法保证有更多相似的位置即保证检测的可重复性。比如检测一个小猫它没有办法保证能检测到鼻子眼睛这些具有特征的点从不同视角检测也无法提取出相同的关键点。基于线的采样方法核心思想是通过降维3D→2D和图像处理的方法来简化三维线特征提取的复杂性。其流程大致如下1、将三维点云投影到重力方向变为二维点云2、通过密度约束获得高密度部分使用密度聚类算法如DBSCAN或计算点的局部密度来识别出这些2D平面上的高密度区域比如那些对应着墙边、门窗边缘等线性结构的地方点的密度会显著高于空旷区域如地板中间、房间中央。3、执行区域生长算法得到线特征具体步骤是先选定一个高密度中的点然后选择其他的点可以与它形成一条合理的直线方向将其归为一组。接下来迭代重复此操作直至没有新的点可以加入最终就形成了一条线段。最后将2D线段进行反向映射重新回到3D点云中的3D线段基于RANSAC的平面提取方法RANSAC是一种鲁棒的模型拟合算法其核心思想与“少数服从多数”的投票原则类似。它不试图去拟合所有数据点而是致力于寻找一个被足够多内点支持的模型从而对异常值具有极强的免疫力。具体算法流程如下1、随机采样从点云中随机选取3个点这里假设点云是平面3个不共线的点确定一个平面2、模型拟合通过计算三个点定义的两个向量的叉积来得到法向量得到(A,B,C)在代入一个点得到D从而得到平面方程AxByCzD03、共识验证计算每个点距离平面的距离小于阈值的为内点否则为外点统计该模型获得的内点数量4、迭代重复步骤1-3 K次选择那个获得最多内点支持的平面模型作为当前最佳模型。其中K的计算方式为image-202511051226080075、模型精炼找到最佳模型后使用所有被识别为内点的点通过更精确的方法如最小二乘法重新拟合一个更精确的平面方程。这一步旨在消除初始随机采样可能带来的误差。6、点云更新首先从原始点云中移除已提取出的平面的所有内点接着在剩余的点云上重复上述整个过程以提取下一个平面直到找不到足够大的平面即内点数量小于某个阈值为止。旋转不变性旋转不变性特征是指一种在旋转变换下保持不变的特征。常见的有Pointnet网络。匹配对应方法特征匹配用于找到源点云的特征之间的正确对应关系从而计算出变换矩阵。常见的方法有最近邻搜索、软匹配等接下来分别进行讲解。最近邻搜素最近邻搜索是一种常见的匹配对应的方法主 要 方 法 包 括 K 近 邻K-nearest neighborKNN、KD-tree和Octree等。K近邻方法简单粗暴可以理解为我们设定一个查询点P然后在点云中依次遍历每一个点计算与P点的距离然后选出前K个值最小的。KD-tree方法稍显复杂一点比如当前点云的点是三维即(x,y,z)它首先按照x对所有点进行排序找出中位数作为根节点接下来在中位数左边的为左子树右边则为右子树。接下来就到了第二层我们对左子树的节点按y进行排序找出中位数然后再拆分成左子树和右子树接下来对第一层拆分下来的右子树进行相同操作第三层则是按z不再赘述。具体示例如下image-20251106112611961Octree这个方法则是把所有点云涵盖在方框内然后选定大小比如一个框内只能涵盖2个点如果超过就进行四份划然后一直划到最后找K近邻的时候就从他这个区域的先找不够的话则按照动态设置的半径画圆找圆圈内的作为K近邻。示例如下image-20251106120555385image-20251106120545989image-20251106120608189软匹配软匹配不再是一对一的而是一对多的其流程可以简单理解如下1假设源点云有 M 个点目标点云有 N 个点。2我们定义一个大小为 M x N 的矩阵 W。3矩阵中的每一个元素 W_{i,j} 表示 源点 i 与目标点 j 对应的概率或权重。变换矩阵求解对应关系求解这部分就是找到源点云和目标点云的对应关系而矩阵求解部分就是实现刚刚找到的对应关系完成转换。常见的刚性变换如上面提到的平移、旋转和可能的缩放等它们通过最小化点云之间的差异确定最佳的变换参数。这些变换参数可以通过不同的方法求解例如RANSAC方法、SVD方法和深度学习的方法。接下来进行依次介绍。RANSAC方法RANSAC方法即随机抽样一致算法简单来说它就是根据点云的形状拟合出图像比如点云是线段就两点拟合出直线是平面就三点拟合平面是圆也用三个点来拟合一个圆这里的点是随机从点云中抽取的然后计算点云到直线的距离小于设定的阈值则为内点否则为外点记录内点数量然后循环K次K是按照给定的公式计算得出的然后选择内点数量最多的作为最佳模型。具体可以看上文特征提取方法的点线面部分有对RANSAC的详细介绍。SVD方法SVD方法在之前ICP算法中就已经进行过解释详细的可以回看ICP部分它主要是寻找到一个最佳旋转矩阵R和平移t实现PiR*qit这里的R可以通过SVD分解得出我们是已知矩阵H的H是去中心化后的源点云和目标点云之间的协方差矩阵其实就是减去质心的x和y转置相乘再整体相加然后通过这个H我们经过SVD分解可以得到矩阵U和VT而R就等于U * VT所以R就解出来了t也随之代入公式就可以解得。深度学习方法传统方法如 ICP、SVD是通过迭代或代数计算求解最优变换 R,t而深度学习方法旨在从数据中学习一个映射函数直接根据两个点云的特征预测变换参数。基本流程如下特征提取使用神经网络如 PointNet、CNN、图网络从源点云 P和目标点云 Q中提取全局特征或局部特征特征融合/匹配将两个点云的特征进行交互找到对应关系变换预测基于融合后的特征通过回归网络直接输出 6 自由度参数3 个旋转3 个平移或完整的 4×4 变换矩阵迭代细化可选很多网络会采用由粗到精的策略逐步优化变换估计。比如3DRegNet网络模型其流程如下1特征提取使用 PointNet 类网络 或 3D 稀疏卷积 提取每个点的局部特征生成原始点云和目标点云的特征矩阵Fp和Fq2配准块将两个点云的特征进行组合常用方法包括特征拼接、特征差值、注意力机制加权融合。然后通过全连接层回归变换参数输出旋转矩阵R和平移向量t3细化网络将R和t用于源点云P R*Pt4重复步骤2-3不过后面是慢慢修正是残差旋转矩阵R和平移向量t直至满足要求。非刚性点云配准刚性点云是寻找一个旋转矩阵R和平移向量T使得源点云移动后可以与目标点云对应。而非刚性点云则是通过变形场进行映射直接将源点云映射到源点云非刚性点云的配准可以用如下公式描述其中F(Pi)是变形场函数。image-20251107120522214变形场的表示逐点位置变量表示法逐点位置表示法可以这样理解我们现在有一张面具我们需要将其从面无表情改为微笑的样子这个时候我们如果手动去进行我们就需要一个点一个点进行变换但这其中可能因为一个点的变换其他点没变化而导致撕扯力度过大直接扯坏面具这个就被称为冗余的自由度所以我们需要保证点A移动的同时邻居点B也在移动这就是正则化。具体来说分为如下几个步骤1逐点位置变量表示法将形变后网格的顶点坐标直接作为优化变量image-202511071655211682拟合和正则化image-202511071656205403能量最小化框架该方法通过构建并最小化一个总能量函数来求解最优形变image-20251107165544769逐点仿射变换表示法这里不对点进行直接变换而是对每一个点都类似刚性点云配准的方法为其配置一个旋转矩阵A和一个平移向量T然后对其进行优化不同的是这里是对每一个点都有不同的A和T而刚性里则视为一个整体。其步骤如下1为每个点猜测一个初始的仿射变换image-202511071708471932应用当前变换使用当前每个点的仿射变换 (A_i, t_i)计算变换后的源点云进行拟合和正则化使用能量最小化框架求解image-202511071708075293迭代步骤2直至收敛。变形图表示法由于之前的方法需要计算每一个点内存消耗和计算量过大所以这里引进了变形图表示法变形图选定一部分具有代表性的节点为每个节点分配仿射变换。一个节点的移动直接导致身边其他点的变形。具体如下1从源点云或网格中通过均匀采样或体素化下采样等方式选取一组有代表性的点作为变形图的节点2将空间上相邻的节点用边连接起来形成一个图结构。这定义了节点之间的邻域关系用于后续的正则化。3通过加权平均用少数节点的变换来驱动整个密集表面的平滑形变。image-20251107172749794非刚性配准的求解匹配对应目标函数可以表示为image-20251107211238985接着就是这两个E的计算了对于对齐项的计算思路主要有三种1点到点的距离这个最为直观直接最小化变形后源点TPi与其在目标点云对应点Qi的欧式距离image-20251107211419463优点计算简单。缺点收敛较慢对初始位置敏感容易陷入局部最优。对噪声和异常值鲁棒性差。后续改进后为每个点引进权重以降低离群点的影响image-202511072114555682点到平面距离最小化变形后源点 T(pi)到目标点云中对应点 Qj 的切平面的距离。这允许源点在目标表面上“滑动”收敛更快。image-20251107211546454优点收敛速度显著快于点到点是当前许多主流方法的首选。缺点需要准确计算目标点云的法向量。3概率方法将目标点云看作一个概率分布由多个高斯函数混合而成然后寻找一个形变使得变形后的源点云在这个概率分布下的似然概率最大。然后是正则化学Ereg的选择大概有以下几种1平滑性正则化主要目的是保证形变场是光滑的相邻点的运动是连续的不会出现突兀的撕裂或褶皱。image-202511072118002222 局部刚性正则化虽然整体是非刚性形变但物体的每一个小局部区域应尽可能地做刚性运动只包含旋转和平移避免非物理的拉伸和剪切。image-20251107211837035基于深度学习的求解方法使用的方法有CNN、图卷积神经网络、MLP和Transfrom。CNN中的PR-Net网络模型大致思想如下1创建2D网格空间2将源点云和目标点云进行映射到2D网格上源点云和目标点云分别被编码成了两个具有相同空间结构的2D特征图。3将源点云和目标点云对应的2D特征图进行拼接形成一个融合的特征图。4将上一步得到的融合2D特征图输入到一个标准的2D卷积神经网络中然后全连接层输出参数前四个维度是矩阵R后三个是平移变量t5应用变换image-20251107213340307Transfrom中的NrtRet模型如下1输入源点云和目标点云2使用DGCNN提取特征3 特征融合与变换估计

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询