Density-invariant Features for Distant Point Cloud Registration

2023 ICCV

*Quan Liu, Hongzi Zhu, Yunsong Zhou, Hongyang Li, Shan Chang, Minyi Guo*; Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV), 2023, pp. 18215-18225

Idea

面向outdoor LiDAR点云,利用multiple point clouds sample set(in the same spatial location), 基于Group-wise Contrastive Learning方法,应用dense feature extractor(FCGF, KPConv……),提取density-invariant geometric features,解决远距离激光雷达点云配准(distant outdoor LiDAR point cloud registration)任务。

distant outdoor LiDAR point cloud registration的难点在于随着与LiDAR间隔距离的扩大,不同空间位置的点云密度会程二次曲线性质下降。这会造成不同点云重叠区域点云密度不同,深度学习方法对于该特性比较敏感,其配准性能会发生下降,也就是density-mismatch problem。

回顾以前的feature-based对比学习配准方法,每一个batch都是一对正样本待配准点云 ,然后取推理出各关键点正样本对的similar feature descriptor。根据文献[1] ,这么做能够收敛的前提是重叠区域点云样本独立同分布 ,简单来说就是密度和形状近似一致。但是显然这样训练出来的模型无法解决density-mismatch problem 。实验表明,无论是密度相关方法(e.g. voxelization) or 密度自适应方法都不能很好的配准distant outdoor point cloud.

作者提出的方法简单来说就是:既然训练时一对正样本达不到,那我就多用些正样本,用一组高overlap的正样本待配准点云来进group contrastive learning,通过这样数据增广的方式来实现density-invariant feature提取,使得模型能够克服density-mismatch问题。

原文:A large enough positive group can better approximate the underlying feature distribution .

Contribution

  1. 从理论上分析了distant point clouds registration 的困难,提出构建更多的 i.i.d (independently and identically distributed) positive samples 是训练出density-invariant feature descriptor的关键;
  2. 基于group-wise contrastive learning,提出有效的density-invariant feature descriptor 训练方案和相应的loss;
  3. 在KITTI和nuScenes的远距离点云配准样本下刷SOTA(KITTI:+40.9%; nuScenes: +26.9% -> reigistration recall)

论文中说对比学习方案设计更多考虑怎么提取更加困难的负样本,很少研究怎么提升正样本带来的训练效果 (A noticeable trend is that sampling more and harder negative samples will improve feature quality due to elevated stability and informativeness, but improvements on positive samples are scarce.),虽然group contrastive learning不是什么新概念,但是据我浅薄的学识来看,确实是第一次用在本文的任务上。

Description

pipline还是比较清晰的四个步骤:

  1. 以 \(C\) frame为中心,在 \([-60m, 60m]\) 区域内选择N个segment,并对segment进行均匀采样得到点云(对于这个选择segment方式我还没有理清楚)。
  2. 使用fully convolutional features descriptor (FCGF、KPConv)为点云中每个点提取feature;
  3. 使用nearest neighbor search 以 \(C\) 点云每个点寻找在其他点云下的对应正样本点,并丢弃找不到多余1个对应点的参考点,称为positive group search;
  4. 之后计算Group-wise Loss:
\[L = \lambda_1 L_{PV} + \lambda_2 L_{F} + \lambda_3 L_{HN}
\]

  • \(L_{PV}\) : positive variance loss( \(\mu(·)\) is the average of all feature descriptors \(f_x^i\) of \(g_x\) correspondence group)
  • \(L_F\) : Finest loss( \(\mathcal{F}(·)\) is the finest feature for \(g_x\) correspondence group)
  • \(L_{HN}\) : the hardest negative loss

Experiment

实话说,确实厉害,这个提点

Ablation

对于multi positive point cloud set中point cloud的数目:

可以看到很明显,增多了正样本点云数量确实对于提取density-invariant feature很有帮助。


  1. Saunshi, Nikunj, et al. "A theoretical analysis of contrastive unsupervised representation learning." International Conference on Machine Learning. PMLR, 2019.

Density-invariant Features for Distant Point Cloud Registration论文阅读的更多相关文章

  1. Computer Vision_18_Image Stitching:Automatic Panoramic Image Stitching using Invariant Features——2007

    此部分是计算机视觉部分,主要侧重在底层特征提取,视频分析,跟踪,目标检测和识别方面等方面.对于自己不太熟悉的领域比如摄像机标定和立体视觉,仅仅列出上google上引用次数比较多的文献.有一些刚刚出版的 ...

  2. Wasserstein CNN: Learning Invariant Features for NIR-VIS Face Recognition

    承接上上篇博客,在其基础上,加入了Wasserstein distance和correlation prior .其他相关工作.网络细节(maxout operator).训练方式和数据处理等基本和前 ...

  3. 论文阅读:Andromeda: Performance, Isolation, and Velocity at Scale in Cloud Network Virtualization (全文翻译用于资料整理和做PPT版本,之后会修改删除)

    Abstract: This paper presents our design and experience with Andromeda,  Google Cloud Platform’s net ...

  4. 【论文阅读】Deep Clustering for Unsupervised Learning of Visual Features

    文章:Deep Clustering for Unsupervised Learning of Visual Features 作者:Mathilde Caron, Piotr Bojanowski, ...

  5. 【论文阅读】HydraPlus-Net: Attentive Deep Features for Pedestrian Analysis

    转载请注明出处:https://www.cnblogs.com/White-xzx/ 原文地址:https://arxiv.org/abs/1709.09930 Github: https://git ...

  6. 论文阅读:Robust Visual SLAM with Point and Line Features

    本文提出了使用异构点线特征的slam系统,继承了ORB-SLAM,包括双目匹配.帧追踪.局部地图.回环检测以及基于点线的BA.使用最少的参数对线特征采用标准正交表示,推导了线特征重投影误差的雅克比矩阵 ...

  7. CVPR 2020 全部论文 分类汇总和打包下载

    CVPR 2020 共收录 1470篇文章,根据当前的公布情况,人工智能学社整理了以下约100篇,分享给读者. 代码开源情况:详见每篇注释,当前共15篇开源.(持续更新中,可关注了解). 算法主要领域 ...

  8. CVPR 2020论文收藏(转知乎:https://zhuanlan.zhihu.com/p/112337176)

    CVPR 2020 共收录 1470篇文章,根据当前的公布情况,人工智能学社整理了以下约100篇,分享给读者. 代码开源情况:详见每篇注释,当前共15篇开源.(持续更新中,可关注了解). 算法主要领域 ...

  9. CVPR2020文章汇总 | 点云处理、三维重建、姿态估计、SLAM、3D数据集等(12篇)

    作者:Tom Hardy Date:2020-04-15 来源:CVPR2020文章汇总 | 点云处理.三维重建.姿态估计.SLAM.3D数据集等(12篇) 1.PVN3D: A Deep Point ...

  10. 点云配准的端到端深度神经网络:ICCV2019论文解读

    点云配准的端到端深度神经网络:ICCV2019论文解读 DeepVCP: An End-to-End Deep Neural Network for Point Cloud Registration ...

随机推荐

  1. 10分钟掌握Python缓存

    全文速览 python的不同缓存组件的使用场景和使用样例 cachetools的使用 项目背景 代码检查项目,需要存储每一步检查的中间结果,最终把结果汇总并写入文件中 在中间结果的存储中 可以使用co ...

  2. ClickHouse介绍(二)MergeTree引擎

    MergeTree引擎 ClickHouse中有多种表引擎,包括MergeTree.外部存储.内存.文件.接口等,6大类,20多种表引擎.其中最强大的当属MergeTree(及其同一家族中)引擎.我们 ...

  3. C#算法求解最佳组队问题

    最佳组队问题 双人混合ACM程序设计竞赛即将开始,因为是双人混合赛,故每支队伍必须由1男1女组成.现在需要对n名男队员和n名女队员进行配对.由于不同队员之间的配合优势不一样,因此,如何组队成了大问题. ...

  4. 攻防世界——CRYPTO新手练习区解题总结<1>(1-4题)

    第一题base64: 下载附件,得到一个txt文件,打开 得到一串乱码,由题目可知,是base64,解码得到flag 第二题Caesar: 下载附件得到乱码 oknqdbqmoq{kag_tmhq_x ...

  5. 逆向通达信 x 逆向微信 x 逆向Qt

    本篇在博客园地址https://www.cnblogs.com/bbqzsl/p/18252961 本篇内容包括: win32窗口嵌入Qt UI.反斗玩转signal-slot.最后 通达信 x 微信 ...

  6. 网络化的控制系统简介(NCS)

    作为一个搞物联网应用的,最近才接触到NCS这个概念.有点东西,赶紧记录一下. NCS由通过网络连通的控制环路组成,控制信号和反馈信号会在控制器和本地系统间交换.典型的方块图如下: 其中,本地(Plan ...

  7. python3 json.dumps(OrderDict类型) 报错:TypeError: Object of type datetime is not JSON serializable

    chatgpt给出的解决方案, 在json.dumps()函数调用中传入default参数来指定如何处理datetime对象 import json from datetime import date ...

  8. Solo 开发者周刊 (第6期):仅需一个动作,秒变时间管理大师?

    这里会整合 Solo 社区每周推广内容.产品模块或活动投稿,每周五发布.在这期周刊中,我们将深入探讨开源软件产品的开发旅程,分享来自一线独立开发者的经验和见解.本杂志开源,欢迎投稿. 产品推荐 1. ...

  9. 轻松掌握useAsyncData获取异步数据

    title: 轻松掌握useAsyncData获取异步数据 date: 2024/7/12 updated: 2024/7/12 author: cmdragon excerpt: 摘要:本文详细介绍 ...

  10. Javascript克隆数据

    JS 复制数据 1 浅复制 具体方法 // 数组 Array.prototype.slice // 普通对象 Object.assign 思考 2 深复制 1) function deepClone( ...