【论文笔记】点云配准网络 3DRegNet: A Deep Neural Network for 3D Point Registration 2020

本文主要是介绍【论文笔记】点云配准网络 3DRegNet: A Deep Neural Network for 3D Point Registration 2020,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Instituto Superior T ́ecnico, Lisboa; Google;印度科学研究所,班加罗尔;马里兰大学帕克分校
代码链接:https://github.com/3DVisionISR/3DRegNet

本文提出了一种基于深度学习的点云配准方法3DRegNet,超越了现有RANSAC和ICP的精度,同时在CPU上也达到了25倍RANSAC的速度。

注意3DRegNet假设两个点云之间的对应关系是给定的,3DRegNet只负责剔除噪声点,生成位姿变换矩阵这两个任务。

实验部分对现有的旋转量的各种表示方法、位姿损失的度量方法进行了结果对比。
此外,还对SVD分解和DNN回归两种位姿解算方法进行了对比。

3DRegNet

在这里插入图片描述

a: 使用DNN进行位姿回归的网络结构
b: 使用SVD进行位姿解算的模型结构
ab是本文提出的两种模型,实验部分对其性能进行了对比。
c: 分类网络,对给定的对应关系进行内点、噪声点的分类。
d: 使用DNN进行位姿解算的配准模块

分类block

网络层结构如上图所示,主要是FC+ResNet级联
输入N个对应关系(两个对应点坐标)N X 6,输出 N X 1,即每个对应关系的置信度(权重)。

DNN 配准网络:

该网络将分类网络中的输入和每一层输出进行最大池化后进行context normalization,然后作为输入进行配准。最后输出旋转量预测值和平移量预测值。

SVD配准模块:

使用预测的对应关系的权重将噪声点去除,然后再内点中进行中心化操作,使用SVD分解求解变换矩阵和平移向量:
M = ∑ i ∈ I w i p i q i T \mathbf{M}=\sum_{i \in \mathcal{I}} w_{i} \mathbf{p}_{i} \mathbf{q}_{i}^{T} M=iIwipiqiT
R = U diag ⁡ ( 1 , 1 , det ⁡ ( U V T ) ) V T \mathbf{R}=\mathbf{U} \operatorname{diag}\left(1,1, \operatorname{det}\left(\mathbf{U V}^{T}\right)\right) \mathbf{V}^{T} R=Udiag(1,1,det(UVT))VT
t = 1 N I ( ∑ i ∈ I p i − R ∑ i ∈ I q i ) \mathbf{t}=\frac{1}{N_{\mathcal{I}}}\left(\sum_{i \in \mathcal{I}} \mathbf{p}_{i}-\mathbf{R} \sum_{i \in \mathcal{I}} \mathbf{q}_{i}\right) t=NI1(iIpiRiIqi)

损失函数:

L = α L c + β L r 其 中 : L c = 1 K ∑ k = 1 K L c k 以及  L r = 1 K ∑ k = 1 K L r k L c k = 1 N ∑ i = 1 N γ i k H ( y i k , σ ( o i k ) ) L r k = 1 N ∑ i = 1 N ρ ( q i k , R k p i k + t k ) L = \alpha L_c + \beta L_r\\ 其中: \mathcal{L}_{c}=\frac{1}{K} \sum_{k=1}^{K} \mathcal{L}_{c}^{k} \text { 以及 } \mathcal{L}_{r}=\frac{1}{K} \sum_{k=1}^{K} \mathcal{L}_{r}^{k}\\ \mathcal{L}_{c}^{k}=\frac{1}{N} \sum_{i=1}^{N} \gamma_{i}^{k} H\left(y_{i}^{k}, \sigma\left(o_{i}^{k}\right)\right)\\ \mathcal{L}_{r}^{k}=\frac{1}{N} \sum_{i=1}^{N} \rho\left(\mathbf{q}_{i}^{k}, \mathbf{R}^{k} \mathbf{p}_{i}^{k}+\mathbf{t}^{k}\right) L=αLc+βLrLc=K1k=1KLck 以及 Lr=K1k=1KLrkLck=N1i=1NγikH(yik,σ(oik))Lrk=N1i=1Nρ(qik,Rkpik+tk)
第一项是分类损失,H为交叉熵函数,y是label,0或1
第二项是配准损失,衡量配准后的点对之间的距离,距离度量可以选择是L1,weighted leastsquares,L2, 或者Geman-McClure等。

3DRegNet 细化

其实是迭代配准的方法,将两个3DRegNet级联在一起进行配准。
第二个3DRegNet用于细化较小的旋转平移。
结构图:
在这里插入图片描述

该网络的损失函数是将两个网络的损失平均了一下:
L c = 1 K ∑ k = 1 K 1 2 ∑ r = 1 2 L c k , r and  L r = 1 K ∑ k = 1 K 1 2 ∑ r = 1 2 L r k , r \mathcal{L}_{c}=\frac{1}{K} \sum_{k=1}^{K} \frac{1}{2} \sum_{r=1}^{2} \mathcal{L}_{c}^{k, r} \text { and } \mathcal{L}_{r}=\frac{1}{K} \sum_{k=1}^{K} \frac{1}{2} \sum_{r=1}^{2} \mathcal{L}_{r}^{k, r} Lc=K1k=1K21r=12Lck,r and Lr=K1k=1K21r=12Lrk,r

实验

作者使用FPFH方法提取对应关系,每对点云提取3000个对应关系。
在数据扩增阶段,作者使用了Curriculum learning 的方法对网络进行训练,将随机旋转平移的尺度逐渐增大。(后面逐渐减小尺度因为内殿数目也在减少)

距离度量实验

在这里插入图片描述

可以看出L1范数最好,精度最高,后续全部使用L1进行实验

旋转量的表示形式:

最小李代数表示、四元数、旋转矩阵、SVD解算
在这里插入图片描述

最小李代数精度最佳。后续全部使用其进行实验
同时可以看出sVD解算的精度低于使用DNN回归的精度,因此后续采用DNN方法进行实验。

对应点对数目的影响:

在这里插入图片描述
数目越少,配准精度越低,但是不影响分类的精度。

数据扩增的效果:

在这里插入图片描述

没有使用数据扩增训练的网络在应对大的旋转时误差越来越大。
使用了CL数据扩增的模型则很好的克服了这一点。
后续网络不进行数据扩充。

级联3DRegNet细化效果:

在这里插入图片描述

时间代价不是很大,但是各项指标都有提升,后续采用该级联方法进行评估

与ICP、RANSAC、FGR对比

在这里插入图片描述

3DRegNet+U 达到了SOTA的性能,其中U是指least square non-linear Umeyama refinement technique(《least-squares estimation of transformationparameters between two point patterns.》)
达到了与现有baseline相同的精度,但是其速度更快:

  • 8被FGR,25倍RANSAC

泛化性对比:

在未见数据集上的评估结果:
在这里插入图片描述

这篇关于【论文笔记】点云配准网络 3DRegNet: A Deep Neural Network for 3D Point Registration 2020的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/421487

相关文章

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

usaco 1.3 Mixing Milk (结构体排序 qsort) and hdu 2020(sort)

到了这题学会了结构体排序 于是回去修改了 1.2 milking cows 的算法~ 结构体排序核心: 1.结构体定义 struct Milk{int price;int milks;}milk[5000]; 2.自定义的比较函数,若返回值为正,qsort 函数判定a>b ;为负,a<b;为0,a==b; int milkcmp(const void *va,c

poj 2349 Arctic Network uva 10369(prim or kruscal最小生成树)

题目很麻烦,因为不熟悉最小生成树的算法调试了好久。 感觉网上的题目解释都没说得很清楚,不适合新手。自己写一个。 题意:给你点的坐标,然后两点间可以有两种方式来通信:第一种是卫星通信,第二种是无线电通信。 卫星通信:任何两个有卫星频道的点间都可以直接建立连接,与点间的距离无关; 无线电通信:两个点之间的距离不能超过D,无线电收发器的功率越大,D越大,越昂贵。 计算无线电收发器D

AI hospital 论文Idea

一、Benchmarking Large Language Models on Communicative Medical Coaching: A Dataset and a Novel System论文地址含代码 大多数现有模型和工具主要迎合以患者为中心的服务。这项工作深入探讨了LLMs在提高医疗专业人员的沟通能力。目标是构建一个模拟实践环境,人类医生(即医学学习者)可以在其中与患者代理进行医学

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

2、PF-Net点云补全

2、PF-Net 点云补全 PF-Net论文链接:PF-Net PF-Net (Point Fractal Network for 3D Point Cloud Completion)是一种专门为三维点云补全设计的深度学习模型。点云补全实际上和图片补全是一个逻辑,都是采用GAN模型的思想来进行补全,在图片补全中,将部分像素点删除并且标记,然后卷积特征提取预测、判别器判别,来训练模型,生成的像

poj 3181 网络流,建图。

题意: 农夫约翰为他的牛准备了F种食物和D种饮料。 每头牛都有各自喜欢的食物和饮料,而每种食物和饮料都只能分配给一头牛。 问最多能有多少头牛可以同时得到喜欢的食物和饮料。 解析: 由于要同时得到喜欢的食物和饮料,所以网络流建图的时候要把牛拆点了。 如下建图: s -> 食物 -> 牛1 -> 牛2 -> 饮料 -> t 所以分配一下点: s  =  0, 牛1= 1~