KSS-ICP: 基于形状分析技术的点云配准方法

news2024/11/25 14:45:52

目录

1. 概述

2. 算法实现

3. 实验结果

总结

Reference

三维点云配准是三维视觉领域一个经典问题,涉及三维重建,定位,SLAM等具体应用问题。传统的配准可以被分为两条技术路线,即基于全局姿态匹配的方法以及基于特征点对应的方法。全局姿态匹配通过在全局范围查找变换矩阵,使得满足预先定义的配准条件,代表方法包括ICP及其变种[1],PointNetLK[2]等。基于特征点对应的方法试图在点云中找到一些具有显著几何特征的keypoints,并按照这些keypoints建立点云之间的对应关系,进而推导出配准结果,代表方法包括FPFH[3],3D SHIFT[4]等。全局方法对点云小范围的缺损不敏感,算法复杂度也相对较低。但是对于局部对全局或局部对局部的配准任务,尤其是低覆盖度点云配准任务,全局方法的性能往往会显著下降。基于特征点对应的方法能够建立针对低覆盖度以及局部对局部的配准算法,但是类似方法对于点云的质量敏感,鲁棒性相对较差。最近,南洋理工大学的研究人员提出一种新的点云配准方法KSS-ICP[5],结合了形状分析与传统ICP算法,有效的改善了配准算法的性能。今天,我在这篇博客里就来介绍一下这篇论文。论文发表于IEEE TIP,链接如下:

arvix:https://arxiv.53yu.com/pdf/2211.02807.pdf

project: GitHub - vvvwo/KSS-ICP


1. 概述

前边已经介绍过了,全局的方法和局部的方法各有优缺点。考虑到目前使用手持扫描设备获取的点云都会携带随机噪声,这使得基于局部几何特征寻找特征点对应的方案不能满足实际需求。因为随机噪声会显著的干扰局部区域的特征提取。因此,针对手持扫描设备获取的点云数据,基于全局方法实现配准,是一个更可行的技术路线。KSS-ICP基于该思路,提供了一个有效的解决方案。

KSS-ICP基于Kendall离散形状空间理论[6],将点云模型进行一种保形的归一化。经过归一化后,点云能够在形状空间中被度量,并通过对度量结果的优化,以获得最优匹配变换,进而退出配准结果。相比传统方法,KSS-ICP的归一化与形状度量有几个好处:1)充分考虑了尺度统一;2)不依赖于点距离;3)对局部区域的噪声鲁棒。KSS-ICP使用中心归一化,将点云视为一组共享源点(中心)的向量组。通过计算向量组的模长,实现尺度统一:

x bar表示的是点云的中心,通过模长计算与归一化,点云a被归一化为Ks(a),实现了对尺度和位移的归一化。通过归一化后,结合形状度量,KSS-ICP能够基于形状相似性建立点云之间的量化分析,该过程不依赖于点距离,因此最大程度避免了局部最优的结果。

基于形状相似性的量化分析,相当于在旋转群SO3中找到一个变换,使得参与度量的两个点云a和b对应一个全度最优的度量结果,即用于配准的变换矩阵。最后,由于形状相似性本身是基于统计形状分析的思想,对于每一个点的随机扰动,其对最终相似性评价的结果影响是相对较小的,因此KSS-ICP的形状度量对噪声是鲁棒的。结合以上三个特点,KSS-ICP给出了一个有效的实现。


2. 算法实现

在介绍算法实现之前,我们需要注意一个小问题。如果我们希望利用概述中所介绍的思路,实现点云配准的话,我们需要首先保证参与配准的点云拥有相同的点数且密度均匀,否则无法实现归一化。因为公式Ks(a)需要计算x bar和进行尺度归一。如果密度不均匀,那么x bar的位置将会有误差;如果点数不相同,那么基于模长实现的尺度归一也会有误差。这里,论文作者引用了自己先前的点云简化工作[7],在实现密度均匀的前提下,保证了点数的统一,如下图所示: 

这时,我们就可以利用概述中的方法来进行配准了:

我们针对已经实现归一化的点云,在SO3群中寻找使得形状相似度最小化的变换。这里可以引用一种经典的优化方法来实现,但是作者选择了一个不是很严谨的离散对准方法,即按照旋转方向建立一组离散候选集,然后从候选集中找到最优的结果,最后使用ICP做校正,得到配准结果:

这里作者使用了一个替换函数H,来代替概述中的度量。原因是,原始的形状度量需要点数相同,且一一对应。一一对应显然是不能满足的,因此使用了豪斯多夫距离H来替换形状度量,以描述全局的形状相似性。离散候选集{O}包含了一组旋转变换,KSS-ICP从这样一组旋转变换中找到一个最优结果,然后使用ICP进行二次对齐,进而实现配准的全过程。

这里有一个显而易见的问题,离散候选集{O}的规模直接决定了算法的精度。对于一些具有对称结构的三维点云,如果离散候选集{O}过小的话,仍然会以很大概率产生局部最优结果。为了弥补该缺陷,作者在配准过程中,加入了一步附加搜索。即第一次的最优结果不是直接输出,而是输出一组结果。这组结果在基于SO3群表示的一个相临区域,能够得到对应的局部最优。作者把所有的局部最优旋转都进行ICP,这样就能进一步降低全局局部最优的概率,如下图所示:

绿色标号的图片表示基于SO3群搜索获取的局部最优结果,黄色表示使用ICP,对局部最优进行二次对准的结果。可以看到,最终我们能够从局部最优结果中选出全局最优解。这个方案在数学上未必严谨,但是在工程上却十分有效,因为点云已经被简化,所有的计算均能使用并行结构进行加速,这就使得整个的查找过程效率很高,且实现了对姿态的全局搜索。

看到这里,细心的朋友一定会提出一个问题,如果是局部对全局的话,那么中心对齐肯定会产生偏差,那么上面的实现就都会失效了,怎么解决这个问题呢?实际上,这里是可以考虑融合局部特征来提供一个解决方案的,但是作者自始至终不想引入局部特征。作者最终给了一个粗暴的解决方案,即引入一些随机的中心候选,在更大的候选集来查找最优匹配:

由上图可以看到,点云存在缺失,必然会导致中心的偏移。KSS-ICP在目前查找的中心附近,建立一个中心位移的搜索区域,将所有可能因缺失产生的中心位移全都考虑进去,这样就能在不适用局部特征的前提下,解决中心对齐问题:

上面公式同时考虑了中心位移和旋转两个参数,最终使得KSS-ICP能够在不改变自身基本结构的前提下,实现局部到全局的配准。这样增加了搜索区域,无疑提高了计算量。幸运的是,所有的计算均是离散解耦的,所以可以利用并行结构实现加速:


3. 实验结果

ModelNet40的配准结果:

室内场景RGB3D配准结果:

带有噪声的点云配准结果: 

带有缺损区域的点云配准结果: 


总结

整体来说,KSS-ICP引入了基于流形空间的形状分析工具来建立配准算法的实现,具有一定的启发意义。整个算法的可复现性,鲁棒性,相比于传统方法,均有一定的提升。未来基于该技术路线,有两个可以进一步完善的点:第一,豪斯多夫距离是对形状度量的一种模拟,显然不是评价姿态对应质量的一个很好的选择;第二,为了解决局部到全局的配准,KSS-ICP做了较多的搜索,虽然可以使用并行计算进行加速,但是整个算法的效率还有受到影响。


Reference

[1] J. Yang, H. Li, D. Campbell, et al. Go-ICP: A globally optimal solution to 3D ICP point-set registration[J]. IEEE transactions on pattern analysis and machine intelligence, 2015, 38(11): 2241-2254.

[2] Y. Aoki, H. Goforth, RA. Srivatsan, et al. Pointnetlk: Robust & efficient point cloud registration using pointnet[C]. Proceedings of the IEEE/CVF conference on computer vision and pattern recognition. 2019: 7163-7172.

[3] RB. Rusu, N. Blodow, M. Beetz. Fast point feature histograms (FPFH) for 3D registration[C]. 2009 IEEE international conference on robotics and automation. IEEE, 2009: 3212-3217.

[4] IH. Ferencz, I. Shimshoni. Registration of 3d point clouds using mean shift clustering on rotations and translations[C]. 2017 International Conference on 3D Vision (3DV). IEEE, 2017: 374-382.

[5] C. Lv, W. Lin, B. Zhao. KSS-ICP: Point Cloud Registration based on Kendall Shape Space[J]. IEEE Transactions on Image Processing, 2023.

[6] DG. Kendall. Shape manifolds, procrustean metrics, and complex projective spaces[J]. Bulletin of the London mathematical society, 1984, 16(2): 81-121.

[7] C. Lv, W. Lin, B. Zhao. Approximate intrinsic voxel structure for point cloud simplification[J]. IEEE Transactions on Image Processing, 2021, 30: 7241-7255.

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

疫情下社区管理系统的设计与实现(论文+源码)_kaic

疫情下社区管理系统 摘 要:新冠疫情下的社区人员管理系统是基于SpringBoot搭建的一套前后端分离系统。面向疫情下的社区管理人员和社区用户,主要用于进行社区服务,进行高效的社区人员管理。具有一定的经济效益和社会效益。本文分析了新冠疫情…

计算机网络第三章(数据链路层)【湖科大教书匠】

1. 概述 物理层发出去的信号需要通过数据链路层才知道是否到达目的地;才知道比特流的分界线 链路(Link):从一个结点到相邻结点的一段物理线路,中间没有任何其他交换结点数据链路(Data Link):把实现通信协议的硬件和软件加到链路…

【ROS实操2话题订阅输出乌龟位姿】

需求描述 已知turtlesim中的乌龟显示节点,会发布当前乌龟的位姿(窗体中乌龟的坐标以及朝向),要求控制乌龟运动,并时时打印当前乌龟的位姿。 实现分析 1.首先,需要启动乌龟显示以及运动控制节点并控制乌龟运动。 2.要通过ROS命令…

网络原理TCP协议

hi,我们又见面了,今天为大家带来TCP协议,一共为大家介绍TCP协议的十个核心特性 1.确认应答 2.超时重传 3连接管理 4滑动窗口 5流量控制 6拥塞控制 7延迟应答 8捎带应答 9面向字节流(粘包问题) 10异常情况(心跳包) 11基于TCP应用层协议 TCP协议位于传输层,我们知道T…

微信小程序开发 | API应用案例(上)

API应用案例(上)5.1【案例1】用户登录5.1.1 案例分析5.1.2 前导知识5.1.3 搭建开发者服务器5.1.4 实现用户登录5.1.5 检查用户是否已经登录5.1.6 获取用户信息5.1.7 开放数据校验与解密5.2【案例2】个人中心5.2.1 案例分析5.2.2 前导知识5.2.3 实现底部标…

BE-SSL:基于边界增强自监督学习的脑结构分割

文章目录Boundary-Enhanced Self-supervised Learning for Brain Structure Segmentation摘要本文方法Supervoxel BranchRegistration BranchAtlas Selection实验结果Boundary-Enhanced Self-supervised Learning for Brain Structure Segmentation 摘要 边界增强自监督学习(…

用Pytorch搭建一个房价预测模型

本文参加新星计划人工智能(Pytorch)赛道:https://bbs.csdn.net/topics/613989052 目录 一、项目介绍 二、准备工作 三、实验过程 3.1数据预处理 3.2拆分数据集 3.3构建PyTorch模型 3.3.1.数据转换 3.3.2定义模型架构 3.3.3定义损失准则和优化器 3.3.4创建…

Linux查看端口

目录 1.查看已知端口的使用情况 2.查看所有端口的占用情况 3.查看占用端口的程序的进程号 4.杀死进程号 1.查看已知端口的使用情况 #例:8080 可使用命令: netstat -anp | grep 8080 结果如下: 还可以使用这条命令: netstat -tln | grep 8080 结果如下: 区别:第一条命令后面显示…

评分卡模型(二)基于评分卡模型的用户付费预测

评分卡模型(二)基于评分卡模型的用户付费预测 小P:小H,这个评分卡是个好东西啊,那我这想要预测付费用户,能用它吗 小H:尽管用~ (本想继续薅流失预测的,但想了…

DevExpress WinForms电子表格控件,更快拥有现代办公体验!(二)

DevExpress WinForm Spreadsheet组件能读写XLSx、XLS、CSV、TXT文件、打印并导出为PDF等,为终端用户提供了当今流行的办公UI体验!在上文中(点击这里回顾>>),我们介绍了DevExpress WinForm中Excel启发式的电子表格…

【计算机网络-数据链路层】集线器、网桥、交换机

本文许多文字和图片使用了湖科大教书匠(高军老师)的 PPT,在此表示感谢。正是他让非科班的我能以奇妙的方式走进网络的世界。 文章目录1 【物理层】集线器(Hub)——共享式以太网1.1 为什么使用集线器?1.2 集…

救命,我好像发现了测试工程师面试通关秘籍

一、自我介绍 (自我介绍不局限于下面模板,灵活表达) 面试官你好,我叫xxx,今年xx岁,家乡是xx省xx市。20xx年毕业后一直从事软件测试工作,到现在已经x年了。 目前为止,经历过x家公司…

基于SpringBoot的大学生体质测试管理系统源码数据库论文

目录 目录 1 绪 论 1.1系统背景介绍 1.2课题研究的目的和意义 1.3系统的研究现状 1.4系统实现的功能 1.5系统的特点 2 开发工具和技术 2.1 B/S体系结构 2.2 Java语言简介 2.3 SpringBoot框架 2.4 MySQL简介 3 系统需求分析 3.1 系统可行性分析及目的…

JS数组reduce()方法详解及高级技巧

reduce()方法可以搞定的东西,for循环,或者forEach方法有时候也可以搞定,那为啥要用reduce()?这个问题,之前我也想过,要说原因还真找不到,唯一能找到的是:通往成功的道路有很多&#…

QtableWidget插入数据卡顿优化方法

最近要使用Qtablewidget保存4300多的数据,发现以下刷新4300条数据,界面会变得非常卡顿,于是想了优化一下;因为要对所有数据排序,想用一下Qtablewidget自动排序功能,而且数据量不多,不想采用动态…

【教学类-32-02】十二生肖2.0版(绘画+手工+排序+左右分类+玩牌)(中班:偏科学-数)

作品展示 2.0样式——动物头部方向随机向左、或者向右 背景需求 1.0样式——动物头部方向全部向右, 我希望孩子分类的时候还能够“判断生肖头部的方向做一个左右分类” 素材准备: 1、图片准备 office PPT2013里面有一个图标的功能,内置大量…

java继承类怎么写

继承类是通过把父类的方法和属性继承到一个类中,而子类的方法和属性是子类自己定义的。 Java中有一个很重要的概念叫做继承,这也是 Java语言的精髓所在。Java语言提供了一种机制,叫做派生类。在 Java中,如果没有实现了某个派生类方…

终端和文件运行python代码

如何创建python文件?新建一个txt,然后修改后缀名为 .py, 然后修改打开方式为记事本,写入一行代码,然后关闭 接下来如何运行呢?让他输出这一段代码 winR cmd 回车 ,然后输入python 文件地址 我…

ChatGPT 未来的前景以及发展趋势

当谈到ChatGPT的未来和发展趋势时,需要考虑人工智能技术以及文本生成和交互的迅速发展。在这方面,ChatGPT的前景非常有希望,因为它是一种迄今为止最先进的人工智能技术之一。 ChatGPT是一种基于机器学习的自然语言处理技术,它能够…

MyBatis学习总结(四) MyBatis 延迟加载策略MyBatis 一级缓存、二级缓存MyBatis注解开发

MyBatis学习总结(四) MyBatis 延迟加载策略/MyBatis 一级缓存、二级缓存/MyBatis注解开发 一、 MyBatis 延迟加载策略 通过前面的学习,我们已经掌握了 MyBatis 中一对一(多对一)、一对多、多对多关系的配置及实现&am…