点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

标题: Voxelized GICP for Fast and Accurate 3D Point Cloud Registration

作者:  Kenji Koide, Masashi Yokozuka, Shuji Oishi, and Atsuhiko Banno

机构:National Institute of Advanced Industrial Science and Technology, Tsukuba, Japan

来源: arXiv

编译: 周朋伟

审核:  杨杨,wyc

Code: github: https://github.com/SMRT-AIST/fast_gicp

摘要

本文提出了一种用于快速准确的三维点云配准算法体素泛化ICP。该方法将体素化思想扩展到广义迭代最近邻GICP中,以避免高昂的最近邻搜索,同时达到较高精度。与通过空间点位置计算体素分布的正态分布变换NDT方法相比。该方法聚合每个点的分布来估计体素分布。这样做的目的是便于并行处理优化,该方法可以在CPU中以30Hz或GPU中以120Hz的频率处理包含15,000数量的点云数据。通过对模拟数据和真实环境的测试,所提出的方法与GICP的精度相当,但速度优于现有方法。这使得开发实时的,极快位姿估计变换的3D LiDAR应用成为可能。

背景与贡献

三维点云配准是标定、定位、建图和环境重建的等任务中的关键任务。有两种主流的点云配准方法: 广义迭代最近邻方法GICP和正态分布变换NDT方法。GICP算法扩展了经典的ICP算法,通过计算分布到分布的形式提高了配准精度。NDT利用体素化方法避免高昂的最近邻搜索,提高处理速度。由于GICP和其他ICP算法的变种均依赖于最近邻搜索,这使得很难在计算资源受限的计算机中实时的处理大量点云数据。而NDT通常对体素的分辨率大小非常敏感。最佳的体素分辨率取决于环境和传感器属性,如果选择不当的分辨率,则NDT的精度将大幅降低。本文的通过聚合每个体素内所有点的分布,使得体素化的过程更为鲁棒。相比于NDT从点的空间位置估计体素的分布,本文的体素化方法即使体素中有很少的点,也能够产生有效的体素分布。这也使得算法对体素分辨率的改变更加鲁棒。本文的主要贡献如下:

  • 我们提出了一种多点分布聚合方法,使得估计较少数量点的体素分布更为鲁棒。

  • 我们提出了VGICP算法达到了GICP的精度,但是比现有方法速度更快。

  • 我们开源了新提出的VGICP算法,其可以像GCIP算法的一样可以并行处理。

方法

GICP算法

我们首先回顾一下GICP算法,记源点云为,其中每个点服从高斯分布。目标点云为,其中每个点同样服从高斯分布。因此,我们可以通过变换矩阵两个集合之间对应点的误差为

的分布可以通过高斯分布的变换性质的得出如下GICP算法通过最大化似然概率求解变换通过使用替换协方差矩阵的特征值完成正则化,这使得GICP算法可以看做成plane-to-plane ICP。

VGICP算法

为了能够推到出VGICP算法,我们首先对式1进行扩展,使得其可以计算点到其邻近点集$\left\{b_{j} \mid\left\|a_{i}-b_{j}\right\|<r\right\}$的距离, 如下:< p>

上式可以解释为平滑目标点的分布,的分布如下:

为了能够估计变换,同样需要求解式7的最大化似然概率

为了能够高效的计算上式,将其修改成:其中是临近点的数量。通过临近点集均值分布,上述损失函数可以高效的完成计算。我们可以通过存储每个体素的使得上式可以直接完成体素级的计算。

图2给出了对应点距离计算的示意图,红色圆表示源点云,蓝色表示目标点云。GICP计算单分布到单分布的差异,NDT计算点到分布的差异。VGICP计算单分布到多分布的差异。即使体素中仅包含很少数量点,VGICP的模型也可会产生有效的分布。

算法的主要流程如下

实验对比

图3 利用模拟器和Microsoft AirSim生成的点云数据。

图4 展示了不同算法的绝对误差和相对误差。

图5 作者实验的不同算法和PCL库中不同算法的运行时间对比

图6 室外实验中不同算法的精度对比

点击阅读原文, 即可获取本文下载链接。

本文仅做学术分享,如有侵权,请联系删文。

下载1

在「3D视觉工坊」公众号后台回复:3D视觉即可下载 3D视觉相关资料干货,涉及相机标定、三维重建、立体视觉、SLAM、深度学习、点云后处理、多视图几何等方向。

下载2

在「3D视觉工坊」公众号后台回复:3D视觉github资源汇总即可下载包括结构光、标定源码、缺陷检测源码、深度估计与深度补全源码、点云处理相关源码、立体匹配源码、单目、双目3D检测、基于点云的3D检测、6D姿态估计源码汇总等。

下载3

在「3D视觉工坊」公众号后台回复:相机标定即可下载独家相机标定学习课件与视频网址;后台回复:立体匹配即可下载独家立体匹配学习课件与视频网址。

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。

一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列、三维点云系列、结构光系列、手眼标定、相机标定、orb-slam3等视频课程)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近2000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

圈里有高质量教程资料、可答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  

GICP:基于体素泛化ICP方式的准确快速点云配准方法相关推荐

  1. 基于“分布 —— 多分布” 的点云配准方法

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者:iceytan | 来源:知乎 https://zhuanlan.zhihu.com/p/135 ...

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

    目录 1. 概述 2. 算法实现 3. 实验结果 总结 Reference 三维点云配准是三维视觉领域一个经典问题,涉及三维重建,定位,SLAM等具体应用问题.传统的配准可以被分为两条技术路线,即基于 ...

  3. 视频+课件| PointDSC:基于特征匹配的点云配准方法(CVPR2021)

    写在前面 感谢「3D视觉从入门到精通」知识星球嘉宾白旭阳博士为我们带来的主题为PointDSC:基于特征匹配的点云配准方法(CVPR2021)视频讲解,星球成员可免费观看学习.备注:白旭阳,香港科技大 ...

  4. 点云配准方法:ICP与GICP

    ICP已经成为点云配准的主流算法,因此,这两天测试了PCL库中的两个ICP函数: pcl::GeneralizedIterativeClosestPoint< PointSource, Poin ...

  5. 点云配准方法原理(NDT、ICP)

    配准是点云处理中的一个基础问题,众多学者此问题进行了广泛而深入的研究,也出现了一系列优秀成熟的算法,在三维建模.自动驾驶等领域发挥着重要的作用. 本文主要介绍粗配准NDT (Normal Distri ...

  6. 重磅直播 | PointDSC:基于特征匹配的点云配准方法(CVPR2021)

    大家好,本公众号现已开启线上视频公开课,主讲人通过B站直播间,对3D视觉领域相关知识点进行讲解,并在微信群内完成答疑. 本期由香港科技大学计算机系白旭阳博士分享,分享的主题为<基于特征匹配的鲁棒 ...

  7. 点云配准的传统算法ICP与NDT概述

    公众号致力于分享点云处理,SLAM,三维视觉,高精地图相关的文章与技术,欢迎各位加入我们,一起交流一起进步,有兴趣的可联系微信:920177957.本文来自点云PCL博主的分享,未经作者允许请勿转载, ...

  8. CVPR 2022 | GeoTransformer:基于Transformer的点云配准网络

    ©作者 | 秦政 单位 | 国防科技大学 研究方向 | 三维视觉 本文提出了一种基于 Transformer 的点云配准网络.通过引入点云中的全局结构信息,GeoTransformer 能够显著提高 ...

  9. 快速精确的体素GICP三维点云配准算法

    标题:Voxelized GICP for Fast and Accurate 3D Point Cloud Registration 作者:Kenji Koide, Masashi Yokozuka ...

最新文章

  1. Jenkins实现SVN+Maven+Java项目的持续集成
  2. python 一个文本是否包含另一字符串 in find是区分大小写的
  3. Linux扫盲篇:CentOS、Ubuntu、Gento
  4. 我长了一条日本制的尾巴:智能配合身体运动,增强平衡感,把我变成“改造人”| SIGGRAPH...
  5. JVM字节码之整型入栈指令(iconst、bipush、sipush、ldc)
  6. WINCE下SOS驱动开发
  7. 想起温习一下JS中的this apply call arguments
  8. 代码注释(图案:女孩儿)
  9. 图像增强(一):randaugment
  10. 2020 年,你还在使用 Java 中的 SimpleDateFormat 吗?
  11. eclipse中svn检出项目,项目名上带有红色感叹号
  12. 17.3.10--关于C元的变量类型所占字节问题和类型转化
  13. ccf公共钥匙盒python_[Python]CCF——公共钥匙盒(201709-2)
  14. 区块链+电子档案解决方案
  15. 自己怎么制作搞笑动态表情包?小妙招分享给你
  16. 如何安装服务器操作系统 HP服务器系统安装
  17. AQSW公司OA系统需求分析
  18. [转]用友NC单据UI基本代码示例
  19. shell 知:ola
  20. 简单的禁止应用被双开的方法

热门文章

  1. vertical-align 和 img属性 和 鼠标样式
  2. 什么是动态DNS 动态DNS有什么用
  3. 谷歌又发钱了!给全员发1600美元,包括外包和实习生!还宣布将无限期居家办公!...
  4. 14 个经典的 Linux 终端命令行,这些工具堪称神器!
  5. 程序员到底为什么要掌握数据结构与算法?
  6. 分布式动态配置后浪推前浪 -- Nacos
  7. 分库分表就能无限扩容吗?
  8. 你可能不知道的 IDEA 高级调试技巧
  9. 如何快速采集分析平台日志,并进行展示监控?
  10. 41岁程序员被裁,北京有1500万房产,程序员:我该不该退休?