【论文笔记】LION: Linear Group RNN for 3D Object Detection in Point Clouds

news2024/11/14 4:06:58

原文链接:https://arxiv.org/abs/2407.18232

简介:Transformer在3D点云感知任务中有二次复杂度,难以进行长距离关系建模。线性RNN则计算复杂度较低,适合进行长距离关系建模。本文提出基于窗口的网络线性组RNN(即对分组的特征使用线性RNN;简称LION),用于3D目标检测,可实现在比Transformer网络更大的分组下进行充分的特征交互。为了解决线性组RNN处理空间建模的缺陷,本文引入3D空间特征描述器,整合到线性组RNN中,增强空间特征,而非增加体素序列的排序数。为进一步处理稀疏体素,本文提出3D体素生成策略,将线性组RNN用于自回归,以密集化前景特征。实验表明,LION在不同的线性组RNN(如Mamba、RWKV、RetNet)下均有效,且LION-Mamba能在多个数据集上达到SotA性能。

与组内体素数量有限的DSVT不同,LION可在数千个体素特征构成的组内进行特征交互,以建立长距离关系。

DSVT

在这里插入图片描述

LION

在这里插入图片描述

1. 概述

在这里插入图片描述
LION的流程如图所示。LION包含3D主干、BEV主干和检测头,其中3D主干基于线性组RNN,包含 N N N个用于长距离特征交互的LION块, N N N个增强稀疏点云特征表达的体素生成操作和 N N N个用于高度下采样的体素融合操作。

3D稀疏窗口分割:将输入点云体素化得到 L L L个非空体素后,按照X或Y坐标排序体素,并将排序的体素分割为大小为 K K K的组。由于线性组RNN的线性复杂度,组的大小 K K K可以比基于Transformer的方法大很多。

2. LION块

LION块包括用于长距离特征交互的LION层、用于捕捉3D空间信息的3D空间特征描述器、用于下采样的体素融合操作和用于上采样的体素扩张操作。此外,LION有提取多尺度特征的层次结构。
在这里插入图片描述
LION层:LION层包括两个线性组RNN,前者基于X轴窗口分割,后者基于Y轴窗口分割。两种窗口分割可使特征进行更充分的交互。

3D空间特征描述器:由于体素排序过程会丢失空间信息(如图所示,实际很近的体素在排序后变得很远),一些方法增加排序方式,但其属于手工设计的方法,且复杂度会随着排序方式的增多而增加。本文使用3D空间特征描述器,包括3D子流形卷积、层归一化和GELU激活函数,为LION层提供丰富的3D局部位置感知的信息。此外,将3D空间特征描述器放置于体素融合前,以减小体素融合过程中的空间信息损失。
在这里插入图片描述
体素融合和体素扩张:为获取多尺度特征,LION使用层次特征提取结构。本文使用体素融合和体素扩张进行下采样和上采样。体素融合过程中会计算索引映射,而体素扩张会根据逆索引映射上采样体素。

3. 体素生成

为处理高度稀疏点云特征提取的挑战和体素融合中的信息损失,本文利用RNN的自回归能力,提出体素生成策略。

无监督的前景体素区分:首先需要确定体素生成的区域。有工作使用监督方法获取BEV下的前景区域,但本文注意到,主干中特征在通道维度上的响应较高的位置通常为前景。因此本文计算第 i i i个LION块的特征响应 F i ∗ F_i^* Fi
F i ∗ = 1 C ∑ j = 0 C F i j F^*_i=\frac1C\sum_{j=0}^CF_i^j Fi=C1j=0CFij

随后,选择前 m = r ∗ L m=r*L m=rL个体素作为前景( r r r为前景比例):
F m = Top m ( F i ∗ ) F_m=\text{Top}_m(F_i^*) Fm=Topm(Fi)

其中, F m F_m Fm为选择的前景特征,会用于后续的体素生成。

自回归属性的体素生成:传统方法使用KNN的方式,基于KNN特征生成体素特征,但这一方法是次优的,因其存在冗余特征和有限的感受野。本文利用线性RNN的自回归能力,通过与组内其它体素特征交互,生成新的体素特征。具体来说,本文定义前景特征 F m F_m Fm相应的位置为 P m P_m Pm。首先以4个不同的偏移量( [ − 1 , − 1 , 0 ] , [ 1 , 1 , 0 ] , [ − 1 , 1 , 0 ] , [ 1 , − 1 , 0 ] [-1,-1,0],[1,1,0],[-1,1,0],[1,-1,0] [1,1,0],[1,1,0],[1,1,0],[1,1,0])扩散体素,然后初始化扩散的体素为0。将第 i i i个LION块的输出特征 F i F_i Fi与上述初始化特征一起输入到第 i + 1 i+1 i+1个LION块,从而生成扩散的体素。
在这里插入图片描述
上述过程可表示如下:
F p = F i ⊕ F [ − 1 , − 1 , 0 ] ⊕ F [ 1 , 1 , 0 ] ⊕ F [ 1 , − 1 , 0 ] ⊕ F [ − 1 , 1 , 0 ] F p ′ = Block ( F p ) F_p=F_i\oplus F_{[-1,-1,0]}\oplus F_{[1,1,0]}\oplus F_{[1,-1,0]}\oplus F_{[-1,1,0]}\\ F'_p=\text{Block}(F_p) Fp=FiF[1,1,0]F[1,1,0]F[1,1,0]F[1,1,0]Fp=Block(Fp)

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

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

相关文章

Android 上下滑隐藏显示状态栏

一、DisplayPolicy类中监听滑动事件,然后发送广播事件 Android12类路径: frameworks/base/services/core/java/com/android/server/wm/DisplayPolicy.javamSystemGestures new SystemGesturesPointerEventListener(mUiContext, mHandler,new SystemGest…

《机器学习》周志华-CH1(绪论)

1.1引言 机器学习(Matchine-Learning)所研究的主要内容是关于在计算机上从数据中产生“模型”(model)的算法,即“学习算法”(learning algorithm)。可以说机器学习(Matchine-Learni…

2024最新最全面一线大厂面试Tips丨接口测试面试题

面试Tips# 面试是求职过程中至关重要的环节。在如今竞争激烈的就业市场,拥有优秀的面试技巧和良好的面试礼仪显得尤为重要,同样掌握这个的行业面试题也不可或缺。 01 你们公司的接口测试流程 是怎样的? (有没有感觉熟悉&#…

[Linux][OS][信号的捕捉] 可重入函数 | volatile | SIGCHLD信号

回顾:[Linux][OS][信号的保存和处理] 信号捕捉 1.sigaction int sigaction(int signo, const struct sigaction *act, struct sigaction *oact); 参数: signo:指定信号的编号act:输入型参数,根据act修改该信号的处…

水果甜度个人手持设备检测-(题外:为啥会选型这个课题)

系列:水果甜度个人手持设备检测 -- 题外:为啥会选型这个课题 写在前面的话 这段时间一直也在思考,在主业之外哪些方向和产业成熟度较高、技术复杂度又不是很离谱,比较容易出成果的方向,能够有空去试着做一做。这几年AI智能化正…

Java方法02:方法的定义和调用

本节内容视频链接:Java方法03:方法的重载_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV12J41137hu?p47&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5 在Java中,‌‌方法的定义是创建一段可重复使用的代码块的过程‌。‌它…

Java 开发者 LLM 实战:利用 LangChain4j 打造高效本地 RAG 系统

1、引言 由于目前比较火的chatGPT是预训练模型,而训练一个大模型是需要较长时间(参数越多学习时间越长,保守估计一般是几个月,不差钱的可以多用点GPU缩短这个时间),这就导致了它所学习的知识不会是最新的&…

代码随想录DAY17 - 二叉树 - 08/16

最大二叉树 题干 题目:给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点,其值为 nums 中的最大值。 递归地在最大值 左边 的 子数组前缀上 构建左子树。 递归地在最大值 右边 的 子数组…

Linux下载卸载MySql

一. 安装Mysql 1.下载mysql --- 密钥 rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 rpm -ivh http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm yum -y --enablerepomysql57-community install mysql-community-server 2.启动mysql sy…

如何选择最佳智能排班系统?9款工具全解析

本文介绍的自助排班管理工具有Moka、红圈排班、工作易排班、泛微e-office、Udesk、畅捷通T、Zenefits、Homebase、Deputy。 在管理团队时,手动排班不仅耗时,还容易出错,影响工作效率,相信很多管理者也有同样的困扰。为了解决这个痛…

【Spring Boot】定时任务

目录 前言 定时任务注解Scheduled 设计一个定时任务 1.启用定时任务 2.创建定时任务 Cron 表达式详解 多线程定时任务 总结 定时任务框架xxl-job SpringBoot继承定时任务框架 1.搭建调度中心xxl-job-admin 1.1下载项目 1.2修改配置文件端口和数据库代码 1.3连接到…

Linux进程间通信学习记录(无名管道)

0.Linux进程间通信的方式 (1).从UNIX继承过来的通信方式 无名管道(pipe) 有名管道(fifo) 信号(signal) (2).System V IPC 共享内存 消息队列 信号灯集 &am…

Java方法03:方法的重载

本节内容视频链接:https://www.bilibili.com/video/BV12J41137hu?p47&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5https://www.bilibili.com/video/BV12J41137hu?p47&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5 在Java中,‌方法的重载&#x…

AI编程系列一1小时完成链家房价爬虫程序

背景 AI编程实在太火,写了很多年的Java,现在Python 和Go 简单好用,今天结合智谱清言快速完成一个程序爬虫程序,没有任何Python 编程经验,只需要会提问,熟悉简单HTML结构即可。未来一定是有业务能力者的福…

Anylogic设置颜色

三维对象的颜色修改 以detector智能体为例,颜色修改代码为: detector.setColor(“Material_(4)_Surf”,blue); 二维对象的颜色修改 house智能体为例,对组件内的_ps282填充的颜色进行修改,level_是该智能体已有的参数或者称之为变…

CLRerNet推理详解及部署实现(下)

目录 前言一、CLRerNet推理(Python)1. CLRerNet预测2. CLRerNet预处理3. CLRerNet后处理4. CLRerNet推理 二、CLRerNet推理(C)1. ONNX 导出2. CLRerNet预处理3. CLRerNet后处理4. CLRerNet推理 三、CLRerNet部署1. 源码下载2. 环境配置2.1 配置CMakeLists.txt2.2 配置Makefile …

python:画由抛物线: y^2=2x 与直线 y=x-4 所围成的图形

《高等数学》同济大学版 P339 编写 test_diff_3_area.py 如下 # -*- coding: utf-8 -*- """ 画由抛物线: y^22x 与直线 yx-4 所围成的图形 """ import numpy as np import matplotlib.pyplot as plt from matplotlib.patches import Polygon…

11结构型设计模式——外观模式

一、外观模式简介 外观模式(Facade Pattern)是一种结构型设计模式,它提供了一个统一的接口来访问子系统中的一组接口,使得子系统的使用更加简单和方便。通过外观模式,可以将复杂的子系统封装在一个外观类(…

​​数据结构-树

n = 度数之和 + 1 n + x + y + z = x +2y +3z + 1

增加练习(修改获取练习的基本信息接口)

文章目录 1.sun-club-practice-api1.enums1.CompleteStatusEnum.java 2.req1.GetPracticeSubjectsReq.java 3.vo1.PracticeSubjectListVO.java 2.sun-club-practice-server1.PracticeSetController.java2.service1.PracticeSetServiceImpl.java 3.dao1.PracticeDao.java2.Pract…