CVPR 2023 | 南大王利民团队提出LinK:用线性核实现3D激光雷达感知任务中的large kernel...

news2024/11/19 13:25:25

点击下方卡片,关注“CVer”公众号

AI/CV重磅干货,第一时间送达

点击进入—>【Transformer】微信交流群

【CVPR 2023】LinK:用线性核实现3D激光雷达感知任务中的large kernel

本文介绍我们媒体计算研究组(MCG)在3D激光雷达感知领域提出的新型网络设计。针对点云数据的稀疏性,使用线性核(LinK)来扩大模型的有效感受野,提升3D检测、分割等任务的性能。

9c21e9491b30d25c1a9fb7cf5949c240.png

LinK: Linear Kernel for LiDAR-based 3D Perception

论文链接:https://arxiv.org/abs/2303.16094

代码链接:https://github.com/MCG-NJU/LinK

研究动机

在2D计算机视觉任务中,更大的感受野使得模型在语义分割、目标检测等下游任务上的性能获得显著的提升。此前,一些方法(RepLKNet[1]等)探究了2D图像处理领域中使用更大的卷积核来获得更大范围的感知能力。

由于3D数据模态的稀疏性,将大卷积核的设计引入3D存在两方面的障碍。一是效率问题:3D任务中,开销随尺寸立方增长,若将卷积核大小从3×3×3简单地扩张到7×7×7,模型大小会是原来的10倍,扩展到21×21×21则会变为343倍。另一方面是优化问题:由于点云在空间中分布较为稀疏,如果卷积核的每个位置都被赋予一定的权重,那么3D数据的稀疏性会导致大量空闲位置的权重在网络迭代中并没有参与更新,导致参数更新缓慢。此前有人尝试使用局部块内元素共享参数的方式来缓解这两个问题,提出了大小为7×7×7的空间共享权重卷积核(LargeKernel3D[2])。该设计成功地在3D语义分割和目标检测任务上提升了小卷积核的性能,但感受野的扩张幅度仍然有限。

为了解决这些问题,我们提出线性核LinK,以类卷积的方式实现更大的感知范围。该方法有两处核心设计:一是用线性核生成器替换静态的卷积权重,仅为非空区域的点云提供权重。同时,该模块是逐层共享的,避免了稀疏分布的权重在某次迭代中没有被优化的情况,改善了优化问题。二是在不同滑动窗口的重叠区域复用预先计算的聚合结果,使整体计算复杂度进一步降低,甚至最终计算量为常量,与实际感受范围无关。换句话说,我们可以基于LinK以一致的开销实现任意大小的线性核。

我们的方法

  • 核生成器

前文中讨论了大卷积核下稀疏卷积的两大缺陷:开销大以及优化困难。我们首先采用神经网络模块 来在线生成权重,取代静态卷积核 ,使得网络参数量与不随卷积核尺寸增长而增长,与之前方法对比如下:

86fa7d479bffba5e4df8cbb91a04d7f4.png

线性核生成器解决了参数量增长的问题,然后,并没有解决计算量的问题。于是我们考虑,能否将不同卷积窗口的重叠区域的特征聚合结果进行复用,这样有可能降低计算量。

为此,我们以一个toy case为例。假设两个相邻窗口中的元素集合分别为

其中每个元素表示一个体素。这两个窗口的重叠区域为

我们分别将 中的元素特征聚合到 和 ,聚合过程为

可以发现,每个重叠区域中的元素对 和 采用不同的local offset来获得权重。因此,基于local offset的方式难以复用重叠区域的聚合结果,如下图所示:

2acc57ce84d6187de87c4944af7602bd.png

  • 基于global coordinate的预聚合

为了解决这个问题,考虑到每个位置的global coordinate是唯一的,我们提出,将local offset拆分为global coordinate的组合。对于区域 ,我们使用如下公式计算这三个元素的预聚合结果:

也是kernel generator。然后,若要得到 在区域 上的聚合特征,我们用如下方式生成基于local offset的结果:

这样,不管有多少个元素要来复用区域 上的聚合特征,都不需要再重新计算 。

那么问题来了,上式成立的前提是

为了使其成立,我们参考APP-Net[3],使用线性映射 来实现 和 。我们将这过程称为线性核生成器,也即LinK方法名字的由来(Linear Kernel Generator)。这两个函数可以用三角函数、指数函数等不同的形式进行激活,正文中主要采用了余弦函数的方式。此时两个窗口A、B的聚合过程如下图所示:

6596649665b135c8b886a5dc15f96281.png

  • 基于LinK的类卷积核设计

基于上述设计,我们将整体点云划分为不重叠的块,每个块的大小为 ,对每个块进行特征预聚合。为每个块查询其周围 个近邻块,生成一个感受范围为 的大块的预聚合特征 。对 使用上述合成local offset的操作,即可为每个聚合中心算得最终的特征。这部分的具体公式可见论文原文。在实验中,设 ,即可得到 21×21×21 的感知范围。整体过程如下图所示:

162e1fee3a93c77e7fd4845de66592cb.png

网络结构

LinK模块结构

LinK模块由两个分支组成:一个分支为使用线性投影+三角核函数实现的大核分支,另一分支为 3×3×3 的稀疏卷积小核旁路,结构图如下所示。

e417ecfc0abed7cff39d22de0ced921d.png

下游任务应用

应用到下游任务(检测和分割)中时,我们分别选取CenterPoint和MinkUnet作为基础架构,并使用基于LinK的backbone替代了原本基于稀疏卷积实现的backbone,保留了原始的检测头和分割头不变,具体结构如下图所示。

79c7cf9eb6b517cca36212691ca59ffd.png

实验

我们在nuScenes上评估了目标检测的结果,在SemanticKITTI上评估了语义分割的结果。结果分别如下所示:

nuScenes

55e29c6357efdbbca91e111233f15960.png

截止论文发表,我们的方法在nuScenes数据集上取得了SOTA(73.4 NDS)。得益于超大的感受野,与baseline CenterPoint相比,我们的方法在大尺寸的物体(例如bus、con-veh等)上提升显著。

SemanticKITTI

9b41f1c59b21407011c39beb3a1ae896.png

在SemanticKITTI上,我们的方法相较baseline MinkUNet获得了2.7 mIoU的提升。更多可视化分析见原始论文。

总结

在本文中,我们提出了一个线性核生成器LinK,能够以不变的计算量任意扩大模型感受野,大幅提升现有模型在下游任务(检测、分割)上的性能。我们通过实验证明了LinK对下游任务性能提升的有效性与通用性。LinK在nuScenes(LiDAR only)上达到了SOTA性能,希望可以让大家对大感受野的新方法以及其在3D感知任务上的应用有更多关注。

引用

[1] Ding, Xiaohan, et al. "Scaling up your kernels to 31x31: Revisiting large kernel design in cnns."Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2022.

[2] Chen, Yukang, et al. "Scaling up kernels in 3d cnns."arXiv preprint arXiv:2206.10555(2022).

[3] Lu, Tao, et al. "APP-Net: Auxiliary-point-based Push and Pull Operations for Efficient Point Cloud Classification."arXiv preprint arXiv:2205.00847(2022).

点击进入—>【Transformer】微信交流群

最新CVPR 2023论文和代码下载

 
 

后台回复:CVPR2023,即可下载CVPR 2023论文和代码开源的论文合集

后台回复:Transformer综述,即可下载最新的3篇Transformer综述PDF

Transformer交流群成立
扫描下方二维码,或者添加微信:CVer333,即可添加CVer小助手微信,便可申请加入CVer-扩散模型或者Transformer 微信交流群。另外其他垂直方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、PyTorch、TensorFlow和Transformer等。
一定要备注:研究方向+地点+学校/公司+昵称(如Transformer+上海+上交+卡卡),根据格式备注,可更快被通过且邀请进群

▲扫码或加微信号: CVer333,进交流群
CVer计算机视觉(知识星球)来了!想要了解最新最快最好的CV/DL/AI论文速递、优质实战项目、AI行业前沿、从入门到精通学习教程等资料,欢迎扫描下方二维码,加入CVer计算机视觉,已汇集数千人!

▲扫码进星球
▲点击上方卡片,关注CVer公众号

整理不易,请点赞和在看72b13c64423529e1701bf0c6d5583b25.gif

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

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

相关文章

chatgpt赋能python:Python中的提取函数——数据清洗中必不可少的利器

Python中的提取函数——数据清洗中必不可少的利器 数据清洗是数据分析过程中不可或缺的一步,而Python中的提取函数则是数据清洗中必不可少的利器。本文将重点介绍一些Python中常用的提取函数,以帮助数据分析师更好地应对实际问题。 什么是提取函数&…

react antd Modal里Form设置值不起作用

问题描述: react antd Modal里Form设置值不起作用,即使用form的api。比如:编辑时带出原有的值。 造成的原因:一般设置值都是在声明周期里设置,比如:componentDidMounted里设置,hook则在useEff…

云网络安全与数据中心安全

近年来,许多云架构师宣称随着公共云的采用,网络安全性将消亡。然而,网络安全仍然是最大的安全市场之一,并且是每个主要云服务提供商 (CSP) 在过去几年中推出重要新产品的领域。 网络对安全仍然至关重要,即使在云中也是…

【软考系统规划与管理师笔记】第4篇 信息技术服务知识

目录 1 产品、服务和信息技术服务 1.1 产品 1.2 服务 1.3 信息技术服务 2运维、运营和经营 2.1运维 2.2运营 2.3经营 3 IT治理 4 IT服务管理 4.1传统管理方式 4.2体系化管理方式 5项目管理 6质量管理理论 6.1质量管理发展历史 6.2质量管理常见理论方法 6.3质…

【公网远程Jellyfin】——本地部署Jellyfin影音服务器

文章目录 1. 前言2. Jellyfin服务网站搭建2.1. Jellyfin下载和安装2.2. Jellyfin网页测试 3.本地网页发布3.1 cpolar的安装和注册3.2 Cpolar云端设置3.3 Cpolar本地设置 4.公网访问测试5. 结语 1. 前言 随着移动智能设备的普及,各种各样的使用需求也被开发出来&…

面向Java开发者的ChatGPT提示词工程(5)

GPT 的局限性 在探讨开发大型语言模型应用程序时,我们必须认识到 GPT 存在一些局限性。这些限制对于我们保持清醒的头脑至关重要。 尽管在 GP T的训练过程中融入了大量知识,但它并非能够完美地记住所见之物,并且对这些知识的边界了解有限。…

玩转用户旅程地图

图:史江鸿 从事需求分析和产品设计工作已经有几个年头了,我很享受这个职业。因为在这段职业历程中,我学到了很多有意思的方法和工具,用户旅程地图就是其中一个。 如今在国内外许多IT公司,用户旅程地图已经成为需求分析…

ElasticSearch安装部署

ElasticSearch安装部署 简介 全文搜索属于最常见的需求,开源的 Elasticsearch (以下简称 es)是目前全文搜索引擎的首选。 它可以快速地储存、搜索和分析海量数据。维基百科、Stack Overflow、Github 都采用它。 Elasticsearch简称es&…

C++【实现红黑树(核心插入)】

文章目录 一、红黑树概念介绍二、红黑树模拟实现(1)红黑树节点(2)红黑树插入分析(核心)(3)插入代码思路(如何快速写插入算法)(4)判断平衡函数(5)查找函数&…

01_java基础语法

1. Java概述 1.1 Java语言背景介绍(了解) 语言:人与人交流沟通的表达方式 计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言 Java语言是美国Sun公司(Stanford University Network)在1995年推出的…

【软硬件测试】测试经验:软硬件结合测试要点

目录 一、应用行业 二、测试要点 三、硬件测试 (1)测试含义 (2)测试方法 (3)相关链接 四、结合测试 (1)测试含义 (2)测试工具 (3&am…

NIO之SocketChannel,SocketChannel ,DatagramChannel解读

目录 基本概述 ServerSocketChannel 打开 ServerSocketChannel 关闭 ServerSocketChannel 监听新的连接 阻塞模式 非阻塞模式 SocketChannel SocketChannel 介绍 SocketChannel 特征 创建 SocketChannel 连接校验 读写模式 读写 DatagramChannel 打开 Datagr…

chatgpt赋能python:Python中的开方指令:介绍和使用

Python中的开方指令:介绍和使用 Python是一种流行的编程语言,广泛用于数据科学、机器学习、Web开发和其他领域。在许多情况下,需要对数值进行数学计算,其中包括开方运算。Python中有多种方法可以执行开方运算,本文将介…

chatgpt赋能python:Python中的“或”语句:使用方法和示例

Python中的“或”语句:使用方法和示例 在Python编程中,“或"语句表示为"or”,它是逻辑运算符的一种形式。"或"语句可以用于组合两个或多个条件,只要其中一个条件成立,整个语句就会返回True。在本…

Rust每日一练(Leetday0016) 全排列I\II、旋转图像

目录 46. 全排列 Permutations 🌟🌟 47. 全排列 II Permutations II 🌟🌟 48. 旋转图像 Rotate Image 🌟🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专…

Golang每日一练(leetDay0082) 用队列实现栈、用栈实现队列

目录 225. 用队列实现栈 Implement Stack Using Queues 🌟 232. 用栈实现队列 Implement Queue Using Stacks 🌟 🌟 每日一练刷题专栏 🌟 Rust每日一练 专栏 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 …

C#,码海拾贝(29)——求解“大型稀疏方程组”的“全选主元高斯-约去消去法”之C#源代码,《C#数值计算算法编程》源代码升级改进版

大型稀疏矩阵线性化方程组的数值求解问题 广泛存在于工程实践尤其是计算机仿真领域 如水力管网计算,电力系统的大型导纳矩阵计算,高阶偏微分方程的数值求解,以及铸件充型过程与凝固过程的数值模拟等。 经常出现在科学和工程计算中, 因此寻找稀…

chatgpt赋能python:Python中的平均值及其计算方式

Python中的平均值及其计算方式 Python是广泛使用的编程语言之一,它拥有强大而且易于使用的数据处理和分析功能。在数据分析领域,计算平均值是非常常见的操作之一。Python中有多种方法可以计算平均值,包括使用内置的函数和使用第三方库。本文…

MySQL数据库 1.概述

数据库相关概念: 数据库(Database):数据库是指一组有组织的数据的集合,通过计算机程序进行管理和访问。数据库管理系统:操纵和管理数据库的大型软件SQL:操作关系型数据库的编程语言,定义了一套操作关系型数…

Linux之模拟shell命令行解释器

文章目录 前言一、输出提示符1.实际2.模拟 二、输入指令、获取指令1.实际2.模拟 三、fork创建子进程四、内建命令五、代码实现总结 前言 本文是基于前面介绍过的关于进程创建、进程终止、进程等待、进程替换等知识,尝试做的一个简单的shell命令解释器。 一、输出提…