1. 概述

NDT,全称 Normal Distributions Transform(正态分布变换),是一种广泛使用的点云配准算法,它的核心思想与ICP截然不同:NDT不直接计算点与点之间的对应关系,而是通过概率模型来描述和匹配点云的表面结构。

核心思想
NDT算法的基本流程可以概括为:

  • 建模:将目标点云(或参考点云) 所占的空间划分成一系列网格单元,对于每个包含足够数量点的单元格,计算其内部点云的统计特性——一个多维正态分布(高斯分布),这个分布可以很好地描述单元格内点的位置分布情况。
  • 匹配:将源点云(待配准的点云) 通过一个初始猜测的变换投射到这些网格单元中,对于变换后的源点云中的每一个点,它落到哪个单元格,就找到该单元格对应的正态分布模型。
  • 评分:根据正态分布的概率密度函数,可以计算该点“属于”这个分布的概率,点越靠近分布的均值(即单元格的中心),其概率得分越高。
  • 优化:算法的目标是找到一个最优的变换参数(旋转和平移),使得所有源点云的概率得分之和最大化,这是一个非线性优化问题,通常使用牛顿法等优化算法来求解。

2. 算法步骤

步骤一:划分网格并对目标点云进行NDT建模

将目标点云 Q 所在的空间划分为大小固定的网格单元格,对于每个单元格,检查其中包含的点数,如果点数太少(如小于3个),则忽略该单元格,视为无效单元格,对于有效的单元格,计算其内部所有点的均值 q 和协方差矩阵 Σ。
q=1n∑i=1nxiΣ=1n∑i=1n(xi−q)(xi−q)Tq=\frac1n\sum_{i=1}^nx_i\\Σ=\frac1n\sum_{i=1}^n(x_i-q)(x_i-q)^Tq=n1i=1nxiΣ=n1i=1n(xiq)(xiq)T

这定义了一个描述该单元格点分布的正态分布 N(q, Σ)。

步骤二:定义评分函数

对于给定的一个变换参数 T(包含旋转和平移),将源点云 P 变换后得到 P′=T(P)P' = T(P)P=T(P),对于 P’ 中的一个点 x_i’,它落在某个单元格中,该单元格的分布为 N(q, Σ)。该点的概率得分为:

p(xi′)=exp(−12(xi′−q)TΣ−1(xi′−q))p(x_i^{'})=exp(-\frac12(x_i^{'}-q)^TΣ^{-1}(x_i^{'}-q))p(xi)=exp(21(xiq)TΣ1(xiq))

(注:为了简化,省略了正态分布前面的常数项,因为它不影响优化结果)

最终的评分函数是所有点得分的总和:

s(T)=∑ip(T(xi))s(T)=\sum_ip(T(x_i))s(T)=ip(T(xi))

步骤三:优化变换参数

目标是找到变换 T 使得评分函数 s(T) 最大化,这是一个标准的非线性优化问题。通常采用牛顿法进行迭代优化,需要计算评分函数对变换参数 T 的梯度和海森矩阵 。
在每一步迭代中,根据当前梯度方向和海森矩阵提供的信息,计算一个变换参数的更新量 ΔT 更新变换:

Tnew=Told+ΔTT_{new} = T_{old} + ΔTTnew=Told+ΔT

重复迭代,直到收敛(如更新量 ΔT 小于阈值)。

3. NDT算法的优缺点

优点:

  • 无需最近邻搜索:这是相对于ICP最大的性能优势,ICP最耗时的步骤是为每个点找最近邻,而NDT只需在初始化时计算一次网格分布,后续优化过程非常高效。
  • 对初始值要求相对宽松:虽然也需要初始估计,但其平滑的概率表示使其收敛域通常比ICP更宽,对初始位姿的敏感度略低。
  • 天然抗噪:因为是用分布来描述一个区域,所以对离群点和噪声点不敏感,个别错误点不会像在ICP中那样严重破坏匹配过程。
  • 产生连续可微的评分函数:这使得可以使用更强大、更快的优化方法(如牛顿法)。

缺点:

  • 网格大小是超参数:网格单元的大小需要人为设定,太大会导致分辨率低,配准精度下降;太小会导致单元格内点太少,无法产生有效的分布,且计算量增加。
  • 在空旷或结构化程度低的场景中效果差:如果场景非常空旷(如一大片平地),很多单元格点很少,分布模型不具代表性,导致匹配困难。
  • 解析导数复杂:虽然可以使用牛顿法,但梯度向量和海森矩阵的推导和计算较为复杂。

4. 应用场景

a. 自动驾驶与高精地图定位

  • 实时定位:自动驾驶车辆通过激光雷达扫描周围环境,生成当前帧点云,NDT被用于将当前帧点云与预先制作好的高精地图(HD Map) 进行匹配,由于其计算效率高和对初始位姿相对鲁棒的特性(结合GPS/IMU提供初始位姿),NDT能实现实时、稳定、厘米级的车辆定位。

  • 原因:城市道路环境具有丰富的结构特征(如路灯、护栏、建筑墙面),非常适合用NDT的网格分布来建模,同时,对实时性的要求使得NDT“无需最近邻搜索”的优势极大。

b. 大规模室外环境SLAM

  • 激光SLAM中的扫描匹配:与ICP类似,NDT可用于激光SLAM中的帧间匹配(里程计计算)和回环检测,特别是在大规模室外场景中,点云数据量大且可能较为稀疏,NDT的效率优势明显。

  • 多激光雷达融合:对于装有多个激光雷达的机器人或车辆,NDT可用于将不同视角的点云快速配准到统一坐标系下。

c. 点云地图构建

  • 多帧点云融合:将机器人不同时间、不同地点采集的点云数据通过NDT配准后,融合成一个全局一致、更完整、更稠密的点云地图。

5. NDT与ICP对比

特性ICP (Iterative Closest Point)NDT (Normal Distributions Transform)
核心原理点到点或点到面的几何距离最小化点相对于概率分布的似然得分最大化
对应关系显式地为每个点寻找最近邻点作为对应点隐式地通过概率模型建立关联,无对应点概念
计算瓶颈最近邻搜索(NN Search),非常耗时网格化和分布计算(一次性的),优化过程很快
抗噪能力较差,离群点和噪声会严重干扰最近邻匹配较强,概率模型对局部噪声不敏感
初始值敏感性非常敏感,容易陷入局部最优相对不敏感,收敛域通常更宽
适用场景重叠度高、初始位姿好、需要高精度的场景(如机械臂、精密测量)大规模场景、自动驾驶定位、计算资源受限的场景
计算效率效率取决于点数量和最邻近搜索算法(KD-Tree等),通常较慢效率取决于网格数量和优化步数,通常更快,更稳定
超参数距离阈值、最大迭代次数等网格大小,对性能影响很大
输出精度在理想条件下(良好初值、高重叠),精度可以非常高精度受网格大小限制,理论上限低于ICP,但实际应用中足够

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/95214.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/95214.shtml
英文地址,请注明出处:http://en.pswp.cn/web/95214.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

艾体宝案例 | 数据驱动破局:DOMO 如何重塑宠物零售门店的生存法则

某连锁宠物店店长紧盯着电脑屏幕上的Excel表格,手指机械地在键盘上敲击出“CtrlC/V”的组合键——这是她第17次尝试将三个不同系统的数据拼凑到一起。门店POS机导出的销售记录、会员系统的消费偏好、库存管理的临期预警,这些本应串联起门店运营全貌的关键…

极飞科技AI智慧农业实践:3000亩棉田2人管理+产量提15%,精准灌溉与老农操作门槛引讨论

在新疆尉犁县的棉田里,两架农业无人机正沿着设定航线低空飞行,它们掠过之处,传感器实时传回土壤湿度和作物长势数据——这片3000亩的棉田,如今只需要两名90后新农人通过手机管理,产量却比传统种植模式提高了15%。这不是…

企业级-搭建CICD(持续集成持续交付)实验手册

搭建CI/CD(持续集成/持续交付)企业示例 为了让容器构建镜像并可以持续集成,可以自动上传到Harbor仓库;并且业务主机可以通过CD自动从仓库中下载镜像latest版本并实现业务更新。1.环境部署 1.1 环境搭建业务IP域名GitLab172.25.254.50gitlab.dhj.orgJenki…

吃透《数据结构》C 语言版:线性表的类型定义详解

作为数据结构的入门章节,线性表就像 “地基” 一样重要,而第二章 2.3 节的 “线性表的类型定义”,更是理解后续操作(插入、删除、查找等)的核心前提。今天就结合自己的学习笔记,用通俗的语言拆解这个知识点…

文件系统中的核心数据结构

宏观上文件系统在kernel的形态文件系统运作流程按照:vfs->磁盘缓存->实际磁盘文件系统->通用块设备层->io调度层->块设备驱动层->磁盘。具体流程的详细展现如下如如何理解文件系统中的数据结构?linux中文件系统还有几种核心数据结构分别是super_b…

TDengine与StarRocks在技术架构和适用场景上有哪些主要区别?

TDengine 与 StarRocks 作为国产数据库领域的代表性产品,分别专注于时序数据处理和高性能分析场景,在技术架构和适用场景上存在显著差异。以下从核心架构、数据模型、性能特点及典型应用场景等方面进行对比分析:🏗️ ​​一、技术…

Qt事件_xiaozuo

Qt事件Qt 的事件机制是其实现用户交互和系统响应的核心框架,基于事件驱动模型构建。以下从五个关键方面详细解释其工作原理和用法:1. 事件(QEvent)的定义与分类事件本质:事件是 QEvent 类或其子类的实例,用…

运动控制技术:自动化与智能驱动的核心

一、运动控制概述运动控制技术是自动化技术和电气拖动技术的融合,以工控机、PLC、DSP等为控制器的运动控制技术融合了微电子技术、计算机技术、检测技术、自动化技术以及伺服控制技术等学科的新成果,在工业生产中起着极为重要的作用。早期的运动控制技术…

链表实战指南:手动实现单链表与双链表的接口及OJ挑战(含完整源码)

文章目录一、链表的概念二、链表的分类三、手动实现单链表1.链表的初始化2.链表的打印3.申请新的节点大小空间4.链表的尾插5.链表的头插6.链表的尾删7.链表的头删8.链表的查找9.在指定位置之前插入数据10.在指定位置之后插入数据11.删除指定节点12.删除指定节点之后的数据13.销…

Spring 事件驱动编程初探:用 @EventListener 轻松处理业务通知

一、核心概念与模型Spring 的事件机制是观察者模式(也叫发布-订阅模型)的一种典型实现。它主要由三个核心部分组成:事件 (Event): 承载信息的对象,通常是某种状态变化的通知。可以是继承 ApplicationEvent 的类&#x…

无人机也能称重?电力巡检称重传感器安装与使用指南

在无人机电力巡检中,工程师们常常面临一个棘手难题:如何精确知道新架设或老旧缆线的实际负重? 传统依靠老师傅“肉眼估算”的方法不仅风险极高,而且数据极不准确,给电网安全埋下巨大隐患。难道没有更科学的方法吗&…

第二阶段WinForm-8:特性和反射,加密和解密,单例模式

1_预处理指令 (1)源代码指定了程序的定义,预处理指令(preprocessor directive)指示编译器如何处理源代码。例如,在某些情况下,我们希望编译器能够忽略一部分代码,而在其他情况下&am…

基于mac的智能语音处理与应用开发-环境部署

上一次写文章还是上一次,时隔一年再次开启学习之路。新机mac没有开发环境,在gpt老师的指导下开始学习之路。 mac开发环境的部署参考了b站程序员云谦和Clover-You的视频教程,然后结合自身及gpt老师的帮助现在开始部署。 g老师的&#x1f34e…

Java中使用正则表达式的正确打开方式

正则表达式基础语法Java正则表达式基于java.util.regex包,核心类是Pattern和Matcher。基本语法遵循标准正则规范:. 匹配任意单个字符(除换行符)\d 匹配数字,等价于 [0-9]\w 匹配单词字符,等价于 [a-zA-Z0-9…

Docker中Mysql容器忽略大小写

场景说明 在数据迁移场景中,从一个数据库中将数据迁移到另一个数据,经常会遇到,两个不同数据库之间,一个默认忽略大小写,一个默认不忽略大小写,导致实际业务层服务进行数据库访问时,切换数据库之…

神经网络激活函数:从ReLU到前沿SwiGLU

摘要 本文全面介绍了神经网络中常用的激活函数,包括Sigmoid、Tanh、ReLU等传统函数,以及2017年后出现的Swish、Mish、SwiGLU等新兴函数。每个函数均提供数学定义、优缺点分析、Python实现代码和可视化图像,并附有实际应用建议和性能对比数据,帮助读者根据具体任务选择合适…

线程池常见面试问答

好嘞 &#x1f44d;&#xff0c;我帮你把这些 线程池 并发编程八股文 整理成 问答对照表&#xff08;Q & A&#xff09;&#xff0c;你面试时可以直接用。&#x1f9fe; 线程池常见面试问答一、基础语法 & STLQ1&#xff1a;std::function<void()> 和函数指针的…

Flutter 开发技巧 AI 快速构建 json_annotation model 的提示词

将下面这段复制到AI GPT、DeepSeek 、文心快码 试过效果都可以&#xff0c;不用做任何更改。将 json 数据丢给 AI 就行了 我会提供一段 JSON 数据&#xff0c;请帮我生成 Dart 模型&#xff0c;要求严格如下&#xff1a;1. 使用 json_annotation 包&#xff0c;包含&#xff1a…

【秋招笔试】2025.08.30科大讯飞秋招笔试题

📌 点击直达笔试专栏 👉《大厂笔试突围》 💻 春秋招笔试突围在线OJ 👉 笔试突围在线刷题 bishipass.com 科大讯飞 题目一:物品种类统计 1️⃣:使用集合或哈希表统计不同物品编号的数量 2️⃣:利用数学公式 n - 不同种类数 计算最终答案 难度:简单 这道题目的关…

AI 智能体汇总,自动执行任务的“真 Agent”

AI Agent 正在掀起一场静默的效率革命&#xff1a;当 AI 遇上 RPA&#xff0c;真正的“数字员工”时代已经到来最近一段时间&#xff0c;我密集关注了多场 AI Agent&#xff08;智能体&#xff09;的发布会&#xff0c;覆盖了从消费级到企业级的各类产品。一个越来越清晰的趋势…