【论文笔记】LION: Linear Group RNN for 3D Object Detection in Point Clouds
原文链接: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=0∑CFij
随后,选择前 m = r ∗ L m=r*L m=r∗L个体素作为前景( 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=Fi⊕F[−1,−1,0]⊕F[1,1,0]⊕F[1,−1,0]⊕F[−1,1,0]Fp′=Block(Fp)
相关文章:
【论文笔记】LION: Linear Group RNN for 3D Object Detection in Point Clouds
原文链接:https://arxiv.org/abs/2407.18232 简介:Transformer在3D点云感知任务中有二次复杂度,难以进行长距离关系建模。线性RNN则计算复杂度较低,适合进行长距离关系建模。本文提出基于窗口的网络线性组RNN(即对分组…...
打造高可用集群的基石:深度解析Keepalived实践与优化
高可用集群 集群类型 集群类型主要分为负载均衡集群(LB)、高可用集群(HA)和高性能计算集群(HPC)三大类。每种集群类型都有其特定的应用场景和优势。 1. 负载均衡集群(LB) 负载均衡集…...
Web大学生网页作业成品——环保主题介绍网页网站设计与实现(HTML+CSS)(5个页面)
🎉🎉🎉 常见网页设计作业题材有**汽车、环保、明星、文化、国家、抗疫、景点、人物、体育、植物、公益、图书、节日、游戏、商城、旅游、家乡、学校、电影、动漫、非遗、动物、个人、企业、美食、婚纱、其他**等网页设计题目, 可满足大学生网…...
Qt登录窗口设计
widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QIcon> //图标类 #include <QPushButton> #include <QLineEdit> //行编辑 #include <QLabel> #include <QTextEdit> #include <QMovie>class Widge…...
探索数据矿藏:我的AI大模型与数据挖掘实战经验分享
🚀 探索数据矿藏:我的AI大模型与数据挖掘实战经验分享 💖 前言:数据的金矿,AI的翅膀 在人工智能的浪潮中,我有幸作为项目负责人,带领团队深入挖掘数据的潜力,利用AI大模型的力量&am…...
linux C语言strcat函数及相关函数
讯飞星火 strcat函数是C语言中的一个字符串处理函数,用于将一个字符串追加到另一个字符串的末尾。它的原型如下: char *strcat(char *dest, const char *src);参数说明: dest:目标字符串,即要将src字符串追加到这个字符串的末尾。src:源字符串,即要追加到dest字符串末…...
使用 sort 进行文本文件处理
sort 使用经验笔记 一、简介 sort 是一个命令行工具,用于对文本文件中的行进行排序。它广泛应用于 Unix/Linux 系统中,可以用来对文件的内容进行简单的排序操作,也可以与其他命令结合使用来完成更复杂的任务。 二、基本用法 排序文件: sor…...
HarmonyOS笔记4:从云数据库获取数据
移动应用获取数据的方式主要有: 1.从网络中获取数据接口API。 2.从华为云数据库获取云数据库的资源。 3.从移动终端直接获取本地的数据 在HarmonyOS笔记3中已经完成了方式一从网络中获取数据接口API的方式。在本篇笔记中,将讨论从云数据库中获取数据。 因…...
QT5生成独立运行的exe文件
目录 1 生成独立运行的exe文件1.1 设置工程Release版本可执行文件存储路径1.2 将工程编译成Release版本 2 使用QT5自带的windeployqt拷贝软件运行依赖项3 将程序打包成一个独立的可执行软件exe4 解决QT5 This application failed to start because no Qt platform plugin could…...
LabVIEW光纤水听器闭环系统
开发了一种利用LabVIEW软件开发的干涉型光纤水听器闭环工作点控制系统。该系统通过调节光源频率和非平衡干涉仪的光程差,实现了工作点的精确控制,从而提高系统的稳定性和检测精度,避免了使用压电陶瓷,使操作更加简便。 项目背景 …...
Shell——流程控制语句(if、case、for、while等)
在 Shell 编程中,流程控制语句用于控制脚本的执行顺序和逻辑。这些语句包括 if、case、for、while 等,它们的使用可以使脚本实现更复杂的逻辑。以下是它们的详细说明和语法结构: 1. if 语句 if 语句用于条件判断,执行符合条件的…...
【redis的大key问题】
在使用 Redis 的过程中,如果未能及时发现并处理 Big keys(下文称为“大Key”),可能会导致服务性能下降、用户体验变差,甚至引发大面积故障。 本文将介绍大Key产生的原因、其可能引发的问题及如何快速找出大Key并将其优…...
HighPoint SSD7749M2:128TB NVMe 存储卡实现28 GB/s高速传输
HighPoint Technologies推出了一款全新的SSD7749M2 RAID卡,能够在标准的桌面工作站中安装多达16个M.2 SSD,实现高达128TB的闪存存储。该卡通过PCIe Gen4 x16接口提供高达28 GB/s的顺序读写性能。这些令人瞩目的性能规格伴随着高昂的价格标签。 #### 技术…...
ARM 裸机与 Linux 驱动对比及 Linux 内核入门
目录 ARM裸机代码和驱动的区别 Linux系统组成 内核五大功能 设备驱动分类 内核类型 驱动模块 驱动模块示例 Makefile配置 命令 编码辅助工具 内核中的打印函数 printk 函数 修改打印级别 编辑 打印级别含义 驱动多文件编译 示例 模块传递参数 命令行传递参数…...
0101DNS TCP fallback on UDP query timeout disabled-redission-中间件
文章目录 1.问题描述2.临时解决方案 结语 1.问题描述 Springcloud 项目,微服务模块使用redission,启动报错 DNS TCP fallback on UDP query timeout disabled. Upgrade Netty to 4.1.105 or higher.相关软件版本如下 软件版本描述springboot2.7.18spr…...
位运算
x1010 原码:000...1010 (一共32位) 反码:111...0101 (~x) 补码:111...0110 (反码1)(-x) 1、n 的二进制表示中第 k 位是几 #include<iost…...
MemFire Cloud是否真的可以取代后端
近年来,随着前端技术的迅速发展,前端工程师们越来越多地开始思考一个问题:“我还能不能不依赖后端?” 这种想法并非空穴来风,尤其是随着像MemFire Cloud这样的工具出现,它不仅能让开发者在没有后端的情况下…...
数据结构(邓俊辉)学习笔记】优先级队列 06——完全二叉堆:批量建堆
文章目录 1. 自上而下的上滤:算法2. 自上而下的上滤:效率3. 自下而上的下滤:算法4. 自下而上的下滤:实例5. 自下而上的下滤:效率 1. 自上而下的上滤:算法 在介绍过完全二叉堆标准的静态和动态操作接口之后…...
Java | Leetcode Java题解之第344题反转字符串
题目: 题解: class Solution {public void reverseString(char[] s) {int n s.length;for (int left 0, right n - 1; left < right; left, --right) {char tmp s[left];s[left] s[right];s[right] tmp;}} }...
定制开发AI智能名片O2O商城小程序:基于限量策略与个性化追求的营销创新
摘要:随着科技的飞速发展和消费者需求的日益多元化,传统商业模式正经历着前所未有的变革。在数字化转型的大潮中,定制开发AI智能名片O2O商城小程序作为一种新兴的商业模式,凭借其独特的个性化定制能力、高效的线上线下融合(O2O&am…...
网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...
【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器
一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...
【Java学习笔记】Arrays类
Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...
JVM垃圾回收机制全解析
Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...
蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
【磁盘】每天掌握一个Linux命令 - iostat
目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...
相机从app启动流程
一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)
宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...
智能AI电话机器人系统的识别能力现状与发展水平
一、引言 随着人工智能技术的飞速发展,AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术,在客户服务、营销推广、信息查询等领域发挥着越来越重要…...
区块链技术概述
区块链技术是一种去中心化、分布式账本技术,通过密码学、共识机制和智能合约等核心组件,实现数据不可篡改、透明可追溯的系统。 一、核心技术 1. 去中心化 特点:数据存储在网络中的多个节点(计算机),而非…...


