KPConv: Flexible and Deformable Convolution for Point Clouds

news2024/10/1 19:16:02

Abstract

Kernel Point Convolution(KPConv)是一种点云卷积方法,它可以直接在点云数据上进行操作,无需任何中间的表示形式。方法的核心在于使用核点来定义卷积权重,核点位于欧几里得空间中,并仅对靠近它们的输入点应用卷积。KPConv还很灵活,能够根据需要使用任意数量的核点。

此外,KPConv的核点位置是连续的,并且可以在空间中学习,且适应不同的局部几何形状。KPConv能够学习如何根据局部几何形状调整核点的位置。

本文介绍了两种KPConv的方法,分别是rigid和deformable。无论是在复杂的任务中使用可变形KPConv,还是在简单的任务中使用刚性KPConv,在多个数据集上都显示出很好的性能。

Introduction

对现有研究的一个简单介绍,以及KPConv的描述。

深度学习中离散卷积是其基本构建块,这一操作结合了2D网格上局部邻域的数据。由于这种规则结构,可以在现代硬件上高效计算。随着3D扫描技术的兴起,许多依赖于不规则数据的场景逐渐增多。例如,3D点云分割或3DSLAM依赖于非网格结构数据:点云。

点云是一组在3D(或更高维度)空间中的点。在许多应用中,这些点与相应的特征(如颜色)相结合。本文中,始终将点云视为两个元素:点P ∈ RN×3和特征F ∈ RN×D。这样的点云是稀疏结构,具有无序的特性,与网格截然不同。在网格中,特征通过矩阵中的索引进行局部化,而在点云中,它们通过相应的点坐标进行局部化。

对于相关的工作,一些方法属于基于网格(grid)的类别,原理是将稀疏的3D数据投影到一个规则结构上,以便更容易定义卷积操作。其他方法使用多层感知机(MLP)直接处理点云,遵循之前提出的思路。最近,也有一些尝试直接在点上进行操作的卷积的方法,这些方法利用点云的空间局部化特性,定义具有空间核的点卷积。

引入了核点卷积(KPConv),是一种新型的点卷积算子,克服了之前方法的局限性。KPConv通过使用核点而非核像素来定义卷积区域。包括可变形卷积版本,能够适应输入点云的几何形状,特别是在较复杂的任务中。结果表明,KPConv在分类和分割任务中都在多个数据集上超过了SOTA算法。

Related Work

讲一下dl领域点云配准的相关工作

Projection networks

讨论了投影网络在处理点云数据时的不同方法。许多方法将点投影到中间的网格结构上,例如基于图像的多视图网络使用从不同视角渲染的2D图像进行场景分割,但这些方法容易受到遮挡和密度变化的影响。体素方法则将点投影到欧几里得空间的3D网格上,尽管使用稀疏结构(如八叉树或哈希映射)可以提升性能,但这些网络的灵活性不足。但是KPConv允许使用任意数量的核点,避免了中间结构。

Graph convolution networks

讨论了图卷积网络(GCN)中的卷积算子的定义和计算方式。图卷积主要在于边缘关系上学习滤波器,而不是点的相对位置。具体来说,图卷积在局部表面片段上组合特征,对这些片段在欧几里得空间中的变形具有不变性。与此不同,KPConv根据3D几何结构组合特征,从而捕捉表面的变形。

Pointwise MLP networks

介绍了PointNet在点云深度学习中的地位。此后,出现了一些分层架构来聚合局部邻域信息。文中提到,点卷积的核可以通过多层感知器(MLP)实现,但这种表示使卷积算子变得更复杂且收敛困难。KPConv则定义了显式卷积核,直接学习权重,并提供简单的可变形版本。与其他点卷积网络相比,KPConv在设计上独特,例如在处理稀疏性和计算成本上表现出色,且其权重在空间中的位置使其结果不受点顺序影响。此外,KPConv的设计更具可扩展性,相较于PCNN等方法,能够在多个实验中表现优异,且是首次实验空间可变形点卷积的工作。

Kernel Point Convolution

A Kernel Function Defined by Points

描述了KPConv(核点卷积)的数学定义及其构造过程。首先,KPConv基于图像卷积的概念,定义了点云中点的卷积操作。具体来说,对于点云中的每个点和其对应的特征,卷积操作被定义为在半径r内的邻居点的特征加权和。

KPConv使用半径邻域而非k最近邻(KNN),以增强对不同点云密度的鲁棒性。通过定义半径r形成的球体,卷积核函数接收邻居点的相对位置(相对于某些点的偏移)作为输入。

卷积核的核心在于定义函数g,它根据邻居点在球体内的位置,对特征加权。作者引入了一组核点和相应的权重矩阵,将特征从输入维度映射到输出维度。核函数的定义基于核点与邻居点之间的相关性,使用线性相关性来计算,简化了梯度反向传播过程。

最后,作者指出,使用线性相关性比高斯相关性更简单,有助于在学习核变形时的梯度反向传播。

Rigid or Deformable Kernel

讨论了KPConv中核点位置对卷积操作的重要性,特别是在刚性核的情况下,核点需要有规律地排列以提高效率。作者通过解决优化问题来安排核点位置,确保它们在一个球体内,并且其中一个核点固定在中心。周围的点会被重新缩放到平均半径1.5σ,以确保各核点影响区域之间的重叠最小,同时覆盖良好的空间。

作者提到,虽然刚性KPConv在使用足够的核点时效率极高,但通过学习核点位置可以进一步提高其能力。核函数是关于核点位置的可微分函数,因此核点可以作为可学习参数。相较于为每个卷积层学习一个全局的核点集合,作者选择为每个卷积位置生成一组偏移量 Δ(x)\Delta(x)Δ(x),并定义可变形KPConv。

在训练过程中,网络同时学习刚性核和可变形核,其中刚性核的学习率设置为网络全局学习率的0.1倍。然而,简单地将图像的可变形卷积适应于点云并不奏效,因为核点可能会远离输入点。为了应对这种现象,作者提出了一种“拟合”正则化损失,以惩罚核点与输入邻居中最近邻之间的距离。此外,还引入了“排斥”正则化损失,以防止核点的影响区域重叠而聚集在一起。

最终,正则化损失的总和包括拟合损失和排斥损失,使网络生成的偏移量能够适应输入点云的局部几何形状。

Kernel Point Network Layers

描述了如何将KPConv理论应用于实际操作。首先,提到使用网格子采样策略来处理输入点的不同密度,以确保点采样位置的空间一致性。每层的支持点作为所有非空网格单元中原始输入点的重心进行选择。

在池化层方面,为了构建多层尺度的架构,逐步减少点的数量。在每个池化层中,作者通过将网格单元大小加倍来增加接收域,同时使用“步幅KPConv”替代最大池化,类似于图像中的步幅卷积。

KPConv层接收输入点及其对应特征和邻域索引矩阵,邻域矩阵的大小由最大邻域数量决定,虽然许多邻域的邻居数量少于该值,因此存在未使用的“阴影邻居”,在卷积计算中被忽略。

关于网络参数,每层的单元大小决定其他参数。刚性KPConv的卷积半径自动设定为2.5σ。所有实验中使用的参数经过交叉验证选择,包括核点数量、比例系数。首个子采样单元的大小取决于数据集。

Kernel Point Network Architectures

描述了为分类和分割任务设计的两种网络架构,基于图像网络和实证研究。KP-CNN是一个五层的分类卷积网络,每层包含两个卷积块,第一个卷积块为步幅卷积,除了第一层。其卷积块设计类似于瓶颈ResNet块,使用KPConv替代图像卷积,并结合批归一化和leakReLU激活。最后,通过全局平均池化和全连接层处理特征,与图像CNN相似。对于可变形KPConv的结果,仅在最后五个KPConv块中使用可变形核。

KP-FCNN是一个全卷积网络用于分割,编码器部分与KP-CNN相同,解码器部分使用最近邻上采样获取最终的逐点特征。通过跳跃链接将编码器和解码器中间层的特征传递,并将这些特征与上采样后的特征连接,经过一维卷积处理,这相当于图像中的1×1卷积或PointNet中的共享MLP。

Experiment

分别在不同数据集上验证了分类和分割任务,同时进行了消融实验。

使用了ModelNet40和ShapenetPart两个常见数据集。ModelNet40包含12,311个来自40个类别的CAD模型,而ShapenetPart包含16,681个点云,每个点云有2-6个部分标签。为了标准化测试,数据进行了单位球的缩放,并忽略了法线信息。

结果是KPConv的效果非常好。

同时探讨了KPConv网络的学习机制,尤其是学习到的特征和有效感受野(ERF)。首先,作者通过训练KP-CNN在ModelNet40上可视化了网络学习到的特征,使用随机旋转增强输入形状的多样性。通过对点云按激活水平上色,结果显示网络在第一层学习到低级特征,如垂直/水平平面和线性结构;在后续层,网络则识别出更复杂的形状,如小支柱和锥体。

其次,作者计算了不同位置的有效感受野,以比较刚性和可变形KPConv的表示能力。结果显示,刚性KPConv的ERF在各种物体上的范围较为一致,而可变形KPConv的ERF则根据物体大小而变化,能够更好地集中在特定物体上。这种自适应行为表明可变形KPConv提升了网络对场景几何的适应能力,进一步解释了其在室内数据集上的优越表现。

Conclusion

KPConv是一种针对点云的卷积操作,它通过半径邻域作为输入,并利用一小组核点在空间中定位权重。此外,作者提出了一种可变形版本的卷积操作,能够有效学习局部位移,从而使卷积核适应点云的几何形状。根据数据集的多样性和网络配置的不同,刚性和可变形的KPConv都展现了其价值,且在几乎所有测试的数据集上都达到了新的最先进性能。

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

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

相关文章

Spring DI 笔记

目录 1.什么是DI? 2.依赖注入的三种⽅式 2.1属性注⼊ 2.2构造⽅法注⼊ 2.3Setter 注⼊ 2.4三种注⼊优缺点分析 3.Autowired存在问题 1.什么是DI? DI: 依赖注⼊ 依赖注⼊是⼀个过程,是指IoC容器在创建Bean时, 去提供运⾏时所依赖的资源,⽽资源指的…

(JAVA)浅尝关于 “栈” 数据结构

1. 栈的概述: 1.1 生活中的栈 存储货物或供旅客住宿的地方,可引申为仓库、中转站。例如酒店,在古时候叫客栈,是供旅客休息的地方,旅客可以进客栈休息,休息完毕后就离开客栈 1.2计算机中的栈 将生活中的…

第1 章 第一节:基础语法

第1 章 第一节:基础语法 1.1书写规则 1.1.1关键字 在Java语言中,已经定义好的,具有一定的功能和作用的英文单词。所有的关键字都是小写的 在Java中总共有51个关键字,还有两个保留字const\goto. 常见的关键字: if…

User-Agent在WebMagic爬虫中的重要性

对于需要从网站上抓取数据的开发者来说,WebMagic是一个强大的工具。它是一个简单灵活的Java爬虫框架,用于抓取网页数据。在爬虫技术中,User-Agent(用户代理)是一个关键的HTTP请求头,它告诉服务器关于客户端…

中九无科研无竞赛保研经验帖——上交软院、中科大计算机、复旦工程硕、南大工程硕、浙大软件

本人bg: 学校:中九软件工程rk:夏令营5%,预推免3%(都是写的预估排名)六级:480, 四级:540科研:无竞赛:美赛M,以及水赛国三、省二若干 保研前期没有…

jenkins项目发布基础

随着软件开发需求及复杂度的不断提高,团队开发成员之间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题。Jenkins 自动化部署可以解决集成、测试、部署等重复性的工作,工具集成的效率明显高于人工操作;并且持续集成可以更早的获取代码变更的信息,…

向日葵远程控制怎么下载?推荐4个远程控制工具网站。

从官网下载的软件质量有保障,安全性和可信度也比较好。所以不管需要使用什么样的软件,最好是到官网下载。如果是有远程控制的需求,我可以推荐几个安全可靠的网站给大家。 1、向日葵远程控制大师 直达链接:https://dow…

【STM32单片机_(HAL库)】4-3【定时器TIM】定时器输出PWM实现呼吸灯实验

1.硬件 STM32单片机最小系统LED灯模块 2.软件 pwm驱动文件添加定时器HAL驱动层文件添加GPIO常用函数定时器输出PWM配置步骤main.c程序 #include "sys.h" #include "delay.h" #include "led.h" #include "pwm.h"int main(void) {HA…

运用循环单链表实现约瑟夫问题

代码&#xff1a; #include <iostream> using namespace std; struct node {int id;node *next; }; int len0; //存现在链表的长度int main() {node*head,*temp,*tail;headnew node;head->next head;tailhead;int A,B;cin>>A>>B;lenA;int num1;while…

unity一键注释日志和反注释日志

开发背景&#xff1a;游戏中日志也是很大的开销&#xff0c;虽然有些日志不打印但是毕竟有字符串的开销&#xff0c;甚至有字符串拼接的开销&#xff0c;有些还有装箱和拆箱的开销&#xff0c;比如Debug.Log(1) 这种 因此需要注释掉&#xff0c;当然还需要提供反注释的功能&am…

数据结构-链表笔记

移除节点 203. 移除链表元素 - 力扣&#xff08;LeetCode&#xff09; /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(int val, ListN…

windows上安装mingw教程及mingw64国内下载地址汇总

​ 首先进去官方官网地址&#xff1a;https://www.mingw-w64.org&#xff0c;注意如果下载不了或者下载慢可以使用下面提供国内下载地址&#xff0c;可以满速下载。 进入官网后&#xff0c;直接在左侧点击Downloads即可。 点击Sources选项   点击Downloads后&#xff0c;在右…

qfluentwidgets组件库的配置与使用

文章目录 前言一、安装1 安装conda环境2 配置designer和pyuic3 查看是否成功二、简单使用前言 这篇博客用来记录qfluentwidgets组件库的基本使用。 如果你愿意花200块钱去官网github地址买一份作者的组件库,添加到了designer中了。那么本博客前面的所有配置对你都是没有用的,…

Chromium 用户数据目录User Data 初始化过程c++

一、先说结论 User Data 路径优先级如下&#xff1a; 1、注册表中策略配置的路径。 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Chromium UserDataDir"xx_path" 2、命令行中的路径。 --user-data-dir"xx_path" 3、默认用户路径 %LOCALAPPDATA%/Chrom…

在使用visual studio 2022,运行程序时弹窗:“ 此任务要求应用程序具有提升的权限“

系列文章目录 文章目录 系列文章目录前言一、问题原因二、解决方法1.第一种解决方法2.第二种解决方法 前言 在使用visual studio 2022&#xff0c;运行程序时弹窗&#xff1a;" 此任务要求应用程序具有提升的权限"&#xff0c;每次都要再次点击“使用其他凭证重新启…

【LeetCode HOT 100】详细题解之二叉树篇

【LeetCode HOT 100】详细题解之二叉树篇 94 二叉树的中序遍历方法一&#xff1a;递归方法二&#xff1a;迭代 104 二叉树的最大深度方法一&#xff1a;递归方法二&#xff1a;迭代 226 翻转二叉树方法一&#xff1a;递归方法二&#xff1a;迭代 101 对称二叉树方法一&#xff…

麦克斯韦方程组的独立方程与辅助方程

第四个方程可以由第一个方程得到。注意哈密顿算符求散度是对空间求偏导&#xff0c;也就是xyz&#xff0c;而麦克斯韦方程组中的矢量除了xyz还有t也是自变量。 方程1推出方程4&#xff08;用到求微分的换顺序&#xff09; 方程2推出方程3&#xff0c;用到电流面密度和电荷体密…

python调用opencv报错“module ‘cv2‘ has no attribute ‘namedWindow‘”

之前电脑上使用pip install安装过opencv相关的python模块&#xff0c;不过后续学习opencv时主要使用OpenCVSharp在VS2022中创建项目测试。今天学习过程中突然想用python试试&#xff0c;不过运行下面代码时报错“module ‘cv2’ has no attribute namedWindow”。 import cv2c…

单调队列与单调栈<2>——单调栈

单调栈的定义 单调递增栈 栈中元素从栈底到栈顶是递增的。 单调递减栈 栈中元素从栈底到栈顶是递减的。 单调栈的核心内容 我们从左到右遍历元素&#xff0c;构造单调栈&#xff08;从栈顶到栈底递增或减&#xff09;&#xff1a;在 i 从左往右遍历的过程中&#xff0c;我…

【高频SQL基础50题】16-20

day by day. 目录 1.进店却未进行过交易的顾客 2.项目员工 I 3.销售分析III 4. 判断三角形 5. 电影评分 1.进店却未进行过交易的顾客 连接题。 思路&#xff1a;根据trans表中的visit_id号在 visits表中排除&#xff0c;再将剩下的合并相同客户&#xff08;累加visit…