SECOND:Sparsely Embedded Convolutional Detection

news2024/12/23 17:58:14

论文背景

为了克服图像单独提供空间信息的不足,点云数据在三维应用中变得越来越重要。点云数据包含精确的深度信息,可以由LiDAR或RGB-D相机生成。

VoxelNet:首先将点云数据分组成体素,然后在将体素转换成密集的3D张量用于区域提议网络(RPN)之前,逐体素应用线性网络。

在处理点云激光雷达数据时,基于体素的三维卷积网络已经被用于增强信息的保留,然而推理速度慢和方位估计性能低。

论文工作

1.将稀疏卷积算法应用于激光雷达目标检测中,大大提高了训练和推理的速度。
2.提出了一种改进的稀疏卷积方法,使其运行速度更快。
3.提出了一种新颖的角度损失回归方法,比其他方法更好的方向回归性能。
4.介绍了一种新的数据增强方法,可大大提高激光雷达学习问题的收敛速度和性能 。

论文结构

在这里插入图片描述SECOND detector 包括三个部分:
1.一个体素特征提取器;
2.一个稀疏卷积中间层;
3.一个 RPN。
SECOND detector 以原始点云为输入,将其转换为体素特征和坐标,并应用两个 VFE(voxel feature encoding) 层和一个线性层。 然后,应用稀疏CNN。 最后,RPN产生检测。

点云分组(体素化)

这里,遵循 VoxelNet 中描述的简单过程来获得点云数据的体素表示 :首先根据指定的体素数量限制预分配缓冲区; 然后,迭代点云,将点分配给它们相关联的体素,并保存体素坐标和每个体素的点数。
在迭代过程中,基于哈希表检查体素的存在性。 如果与一个点相关的体素还不存在,在哈希表中设置相应的值。否则,将体素的数量增加 1。 一旦体素数量达到指定的限制,迭代过程将停止。
最后,得到所有的体素,它们的坐标和每个体素的点数为实际的体素数。

对car每个体素网格最多对应35个点,对人每个网格最多对应45个点(由于行人和骑自行车的人相对较少,因此需要更多的点来进行体素特征提取)。

体素特征提取器

使用体素特征编码(VFE)层,来提取体素特征。 VFE层将同一体素中的所有点作为输入,并使用由线性层、批归一化(BatchNorm)层和校正线性单元(RELU)层组成的全连接网络(FCN)来提取逐点特征。然后,利用元素最大池化(max pooling)获取每个体素的局部聚集特征。 最后,对得到的特征进行平铺,并将平铺后的特征与逐点特征连接在一起。

使用 V F E ( C o u t ) VFE(C_{out}) VFE(Cout)来表示将输入特征转换为 c o u t c_{out} cout维输出特征的 VFE 层。 类似地, F C N ( c o u t ) FCN(c_{out}) FCN(cout) 表示一个 Linear-BatchNorm-Relu 层,它将输入特征转换为 c o u t c_{out} cout维的输出特征。 作为一个整体,体素特征提取器由多个VFE层和一个FCN层组成。

稀疏卷积中间提取器

稀疏卷积算法

首先考虑二维稠密卷积算法。用 W u , v , l , m W_{u,v,l,m} Wu,v,l,m 表示过滤元素, D u , v , l D_{u,v,l} Du,v,l 表示图像元素,其中 u , v u,v u,v 为空间位置指标, l l l 表示输入通道, m m m 表示输出通道。函数 P ( x , y ) P(x,y) P(x,y) 生成给定输出位置需要计算的输入位置。 因此, Y x , y , m Y_{x,y,m} Yx,y,m 的卷积输出由下式给出: Y x , y , m = ∑ w , v ∈ P ( x , y ) ∑ l W u − u 0 , v − v 0 , l , m D u , v , l (1) \tag 1 Y_{x,y,m} = \sum_{w,v \in P(x,y)}\sum_l W_{u-u_0,v-v_0,l,m}D_{u,v,l} Yx,y,m=w,vP(x,y)lWuu0,vv0,l,mDu,v,l(1) 其中 x x x y y y 是输出空间索引, u − u 0 u-u0 uu0 v − v 0 v-v0 vv0 表示内核偏移量 u u u v v v 坐标。 基于通用矩阵乘法(GEMM)的算法(也称为基于IM2COL的算法[30])可用于收集构造矩阵 D ˜ P ( x , y ) , l \~D_{P(x,y),l} D˜P(x,y),l,l所需的所有数据,然后执行GEMM本身: Y x , y , m = ∑ l W ∗ , l , m D ˜ P ( x , y ) , l (2) \tag2 Y_{x,y,m} = \sum_l W_{*,l,m}\~D_{P(x,y),l} Yx,y,m=lW,l,mD˜P(x,y),l(2) 这里 W ∗ , l , m W_{*,l,m} W,l,m 对应 W u − u 0 , v − v 0 , l , m W_{u-u_0,v-v_0,l,m} Wuu0,vv0,l,m 但是在GEMM形式下。对于稀疏数据 D i , j ′ D_{i,j}^{'} Di,j 和关联的输出 Y j , m ′ Y_{j,m}^{'} Yj,m,直接计算算法可写为: Y j , m ′ = ∑ i ∈ P ′ ( j ) ∑ l W k , l , m D i , l ′ (3) \tag3 Y_{j,m}^{'} = \sum_{i \in P^{'}(j)}\sum_l W_{k,l,m}D_{i,l}^{'} Yj,m=iP(j)lWk,l,mDi,l(3) P ′ ( j ) P^{'}(j) P(j) 是一个用于获取输入索引 i i i 和滤波器器偏移量的函数。下标 k k k 是对应于等式(1)中的 u − u 0 u-u0 uu0 v − v 0 v-v0 vv0 的1D核偏移量,下标 i i i 对应于等式(1)中的 u u u v v v。 式(3)基于gemm的版本为: Y j , m ′ = ∑ l W ∗ , l , m D ˜ P ′ ( j ) , l ′ (4) \tag4 Y_{j,m}^{'} = \sum_{l}W_{*,l,m}\~D_{P^{'}(j),l}^{'} Yj,m=lW,l,mD˜P(j),l(4)稀疏数据的聚合矩阵 D ˜ P ′ ( j ) , l ′ \~D_{P^{'}(j),l}^{'} D˜P(j),l 仍然有许多 不需要计算的 0。为了解决这个问题,将公式(3)重写为: Y j , m ′ = ∑ k ∑ l W k , l , m D R k , j , k , l ′ (5) \tag5 Y_{j,m}^{'} = \sum_{k}\sum_l W_{k,l,m}D_{R_{k,j},k,l}^{'} Yj,m=klWk,l,mDRk,j,k,l(5)其中 R k , j R_{k,j} Rk,j,也称为 RULE,是一个矩阵,它指定给定内核偏移量 k k k 和输出索引 j j j 的输入索引 i i i。 式(5)中的inner sum不能通过GEMM计算,所以需要收集必要的输入来构造矩阵,执行GEMM,然后将数据分散回来。在实际应用中,可以利用预先构造的输入输出索引规则矩阵直接从原始稀疏数据中收集数据。
这增加了速度。 具体来说,构造了一个规则矩阵表 R k , i , t = R [ k , i , t ] R_{k,i,t}=R[k,i,t] Rk,i,t=R[k,i,t],其维度为 K × N i n × 2 K×N_{in}×2 K×Nin×2,其中 K K K 为核大小(以体积表示), N i n N_in Nin 为输入特征数, t t t为输入/输出索引。 元素 R [ : , : , 0 ] R[:,:, 0] R[:,:,0]存储用于收集的输入索引,元素 R [ : , : , 1 ] R[:,:, 1] R[:,:,1]存储用于 scatter 的输出索引。

在这里插入图片描述 N i n N_{in} Nin 表示输入特征的数量, N o u t N_{out} Nout 表示输出特征的数量。 N N N 是收集到的特征个数。Rule为 rule 矩阵,其中 R u l e [ i , : , : ] Rule[i,:,:] Rule[i,:,:] 为卷积核中第 i i i 个核矩阵对应的第 i i i个rule。
除白色以外的颜色的方框表示数据稀疏的点,白色方框表示空点。

Rule 生成算法
常采用基于CPU的规则生成算法,该算法使用哈希表,但这种算法速度较慢,需要在CPU和GPU之间进行数据传输。规则生成的更直接方法是迭代处理输入点,查找与每个输入点相关的输出,然后将相应的索引存储到规则中。在迭代过程中,需要使用一个表来检查每个输出位置的存在,以决定是否使用全局输出索引计数器累积数据。这是阻碍算法中并行计算应用的主要挑战。

论文设计了一个基于GPU的规则生成算法(算法1),该算法在GPU上运行速度更快。图1的底部显示了我们提出的算法。首先,我们收集输入索引和相关的空间索引,而不是输出索引(算法1中的第1个循环)。在这个阶段获得了重复的输出位置。然后,对空间索引数据执行一个 unique parallel 算法,以获得输出索引及其相关的空间索引。
在这里插入图片描述
从先前的结果生成一个与稀疏数据具有相同空间尺寸的缓冲区,以便在下一步中进行表查找(算法1中的第2个循环)。最后,在规则上进行迭代,并使用存储的空间索引来获得每个输入索引的输出索引(算法1中的第3个循环)。

稀疏卷积中间提取器
中间提取器用于学习关于 z 轴的信息,并将稀疏的3D数据转换为2D BEV图像。它包括两个阶段的稀疏卷积。每个阶段包含多个子流形卷积层和一个普通的稀疏卷积,用于在z轴上进行降采样。在 z 维度降采样到一或两维后,稀疏数据被转换成密集的特征图。然后,数据被简单地重塑成类似图像的2D数据。
在这里插入图片描述
黄色框表示稀疏卷积,白色框表示子流形卷积,红色框表示稀疏到密集层。图的上半部分是稀疏数据的空间维数。

区域提议网络 RP

论文使用了一个 single shot multibox detecor(SSD) 来构建一个 RPN 架构。RPN 的输入由稀疏卷积中间提取器的特征映射组成。RPN体系结构由三个阶段组成。每个阶段从一个下采样卷积层开始,然后是几个卷积层。在每个卷积层之后,应用BatchNorm和ReLU层。然后,将每个阶段的输出采样到一个相同大小的特征图,并将这些特征图连接成一个特征图。最后,将三种1 × 1卷积用于类、回归偏移量和方向的预测。

锚点和目标

由于待检测对象的大小大约是固定的,所以使用固定大小的锚点,锚点是根据 KITTI 训练集中所有ground truth的大小和中心位置的平均值确定的,旋转0度和90度。
每个锚点都被分配了一个分类目标的一位 one-hot 向量、一个 box 回归目标的7维向量,以及一个方向分类目标的一位 one-hot 向量。不同类别对于匹配和不匹配具有不同的阈值。
对于回归目标,使用以下 box 编码函数: x t = x g − x a d a , y t = y g − y a d a , z t = z g − z a h a , w t = log ⁡ ( w g w a ) , l t = log ⁡ ( l g l a ) , h t = log ⁡ ( h g h a ) , θ t = θ g − θ a (6) \tag6x_t = \frac{x_g-x_a}{d_a},y_t=\frac{y_g-y_a}{d_a},z_t=\frac{z_g-z_a}{h_a},\\w_t=\log (\frac{w_g}{w_a}),l_t=\log(\frac{l_g}{l_a}),h_t=\log(\frac{h_g}{h_a}),\\ \theta_t=\theta_g-\theta_a xt=daxgxa,yt=daygya,zt=hazgza,wt=log(wawg),lt=log(lalg),ht=log(hahg),θt=θgθa(6)其中 x 、 y 、 z x、y、z xyz为中心坐标; w 、 l 、 h w、l、h wlh分别为宽、长、高; θ θ θ 是绕 z z z 轴的偏航旋转;下标 t 、 a 、 g t、a、g tag 分别表示编码后的值、锚点和基真值; d a = ( l a ) 2 + ( w a ) 2 d^a =\sqrt{(l^a)^2 + (w^a)^2} da=(la)2+(wa)2 是锚 box 底部的对角线。

训练与推理

Loss

角度回归的正弦误差损失
角度损失回归: L θ = SmoothL1 ( sin ⁡ ( θ p − θ t ) ) (7) \tag7 L_{\theta}=\text{SmoothL1}(\sin(\theta_p-\theta_t)) Lθ=SmoothL1(sin(θpθt))(7)其中下标 p p p 表示预测值。
这种角度损失的方法有两个优点:(1)它解决了 0 和 π 方向之间的对立例子问题;(2)它根据角度偏移函数自然地建模IOU。
为了解决,即将方向相反的 box 视为相同的这一问题,论文在RPN的输出中添加了一个简单的方向分类器。该方向分类器使用 softmax 损失函数。采用以下方法生成方向分类器目标:如果绕地面真值 z 轴的偏航旋转大于零,则结果为正;否则,它是负的。

分类的 Focal Loss
使用了 RetinaNet 中的一种称为 focal loss 的有效单期损失: F L ( p t ) = − α t ( 1 − p t ) γ log ⁡ ( p t ) (8) \tag 8 FL(p_t) = -\alpha_t(1-p_t)^{\gamma}\log(p_t) FL(pt)=αt(1pt)γlog(pt)(8)其中 p t p_t pt 为模型估计的概率, α α α γ γ γ 为 focal 参数。

Total Training Loss
通过组合上面讨论的损失,可以得到多任务损失的最终形式如下: L t o t a l = β 1 L c l s + β 2 ( L r e g − θ + L r e g − o t h e r ) + β 3 L d i r (9) \tag9 L_{total} = \beta_1L_{cls}+\beta_2(L_{reg-\theta}+L_{reg - other})+\beta_3L_{dir} Ltotal=β1Lcls+β2(Lregθ+Lregother)+β3Ldir(9)其中 L c l s L_{cls} Lcls 是分类损失, L r e g − o t h e r L_{reg-other} Lregother 是位置和维数的回归损失, L r e g − θ L_{reg-θ} Lregθ 是新角度损失, L d i r L_{dir} Ldir 是方向分类损失。 使用相对较小的β3值,以避免网络难以识别物体的方向的情况。

数据增强

在训练过程中遇到的主要问题是 ground truth 太少,这严重限制了网络的收敛速度和最终性能。
从训练数据集生成一个包含所有 ground truth 及其相关点云数据( ground truth 的3D包围框内的点)标签的数据库。然后,在训练过程中,从该数据库中随机选取几个ground truth,通过串联的方式将其引入到当前的训练点云中。
可以大大增加每个点云的地面真相的数量,并模拟存在于不同环境中的物体。

论文总结

现有的三维目标检测方法大多将点云数据转化为二维表示,如BEV和前视表示,从而丢失了原始点云中包含的大部分空间信息。 论文介绍了一种新的角度损失回归方法,并在基于 lidar 的网络中成功地应用了稀疏卷积,提出了一种新的数据增强方法,充分利用了点云的优势。

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

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

相关文章

C语言插入排序

前言: 本文主要讲解插入排序中的直接插入排序和希尔排序。 1、直接插入排序: 1.1基本思想 直接插入排序是一种简单的插入排序法,其基本思想是把待排序的数值按照大小顺序逐个插入到一个已经排好序的有序序列中,直到将所有记录…

骨传导和普通耳机哪个危害大?哪款更值得入手一些?

先说结论,普通耳机对人体的危害要比骨传导耳机大一些,区分方式也很简单,想要了解骨传导耳机和普通耳机哪个对人体的危害更大,首先就要了解它们的传声方式,普通耳机的传声原理很简单,利用空气传声&#xff0…

App自动化测试持续集成效率提高50%

持续集成是一种开发实践,它倡导团队成员需要频繁的集成他们的工作,每次集成都通过自动化构建(包括编译、构建、自动化测试)来验证,从而尽快地发现集成中的错误。让正在开发的软件始终处于可工作状态,让产品…

A6500-CC 9199-00120 基于时间或基于条件的工作流

A6500-CC 9199-00120 基于时间或基于条件的工作流 B-Scada宣布VoT(虚拟化事物),允许真实世界的对象和其他数据源在虚拟模型中表示,该模型可以从任意数量的不同来源检索实时数据。虚拟化支持在结构化环境中对这些对象进行实时监控和管理,该环境可以在任…

[杂谈]-快速了解LoRa和LoRaWAN

快速了解LoRa和LoRaWAN 文章目录 快速了解LoRa和LoRaWAN1、什么是LoRa2、什么是 LoRaWAN3、LoRa和LoRaWAN比较4、LoRa与其他无线技术比较5、为什么需要LoRaWAN6、LoRa的缺点7、LoRa联盟8、LoRaWAN标准9、LoRaWAN的应用 许多事物进一步推动工业物联网 (IIoT); 其中之…

Java 若依框架导出excel添加单表头标题

图示 若依框架通过Excel注解已经封装好导出的工具类了,目前是可以实现简单的单表表头标题添加 在exportExcel方法的后面直接添加一项参数就可以导出添加标题了~

ModaHub魔搭社区:星环科技向量数据库Hippo社区版来啦

大语言模型正在与企业应用迅速结合,并深刻改变企业的各个产业环节。而大模型训练所使用的数据包含了如文档、图片、音视频等各种类型的非结构化数据,传统关系型数据库能力有限。通过将这些非结构化数据转换为多维向量,可以结构化地在向量数据库中进行管理,实现高效的数据存…

DG232RL兼容FT232RL开发资料

芯片上处理的整个 usb 协议——不需要 usb 专用固件编程。 • uart 接口支持7或8个数据位、1或2个停止位和奇数/偶数/标记/空格/无奇偶校验。* 充分辅助的硬件或 x-on/x-off 软件握手。* 数据传输速率从300波特到3兆波特(RS422/RS485和 ttl 级) ,从300波特到1兆波特…

终于来啦!OpenDataLab 新增自主上传功能,升级CLI/SDK工具、数据集详情页……体验赠好礼~

9月,OpenDataLab 全新版本上线,支持用户自主发布原创数据集,同时升级了 CLI/SDK 工具、数据集详情页,让 AI 数据集开源更方便、展示更清晰。还有创作领好礼活动,快来看看吧! (注意!…

配电柜监控的真正标准,只有一个!

在现代社会中,电力是我们生活和工作不可或缺的一部分。大楼宾馆作为城市中繁忙生活的一部分,依赖于可靠的电力供应来支持各种设施和服务,从客房照明到电梯运行,无一不离电。然而,大楼宾馆电力分配系统的稳定性和安全性…

Java8新特性 - Lambda表达式

目录 一、Lambda表达式 1.1、为什么使用Lambda表达式? 1.2、Lambda的标准格式 Lambda的标准格式 无参无返回值的Lambda 有参有返回值的Lambda 1.3、Lambda的实现原理 1.4、Lambda省略模式 1.5、Lambda表达式的前提条件 1.6、Lambda与匿名内部类对比 1.7、…

AI智剪,批量剪辑视频的神器

在数字时代,视频剪辑已经成为各种行业中的重要工作。然而,传统的视频剪辑方式既耗时又费力,常常需要大量的时间和人力。幸运的是,随着人工智能技术的发展,我们有了新的解决方案——AI智剪软件。 AI智剪软件&#xff0c…

【gtpJavaScript】使用JavaScript实现套壳gtp与gtp打字输出效果

postman测试gtp接口 https://platform.openai.com/docs/api-reference/chat/create?langcurl 导入到postman中 记得弄一个gtp的key 然后请求测试gtp接口: 纯前端实现gtp请求页面 目录结构: 部分参考:GitHub - xxxjkk/chat-website: 简易版c…

德庄借助纷享销客CRM系统实现高效管理

德庄集团创于1999年,是一家集餐饮产业、食品产业、科技研发及文化研究为一体的现代化民营企业,下属9家子公司、2大现代化食品加工基地、1所研究所、1所培训学校、1个技术中心。拥有德庄、青一色、滟设、香漫谷、饭空等8大子品牌,呈现出良好的…

基于Python的大区域SPI标准降水指数自动批量化处理

1.引言 标准化降水指数(SPI)是一个广泛使用的指数,用于描述一系列时间尺度上的气象干旱的特征。但是经过研究发现,目前的处理方法基本都是单点进行计算,缺少多点(大区域)的批量计算过程。因此本…

嵌入式Linux开发实操(十六):Linux驱动模型driver model

嵌入式linux下驱动模型: 1、驱动的绑定 驱动程序绑定driver binding 驱动程序绑定是将设备device与可以控制它的设备驱动程序driver相关联的过程。总线驱动程序bus driver通常会处理,因为有特定于总线bus的结构来表示设备device和驱动程序driver。使用通用的设备device和设…

es倒排索引深入解读

文章目录 一. Lucene二.倒排索引算法2.1 Posting List压缩算法2.1.1 FOR2.1.2 RoaringBitmap压缩 2.3 FST压缩算法2.3.1 trie前缀树原理2.3.2 FST构建过程NFADFAFSMFSAFST:有限状态转换机构建原理FST在lucene中实现原理 1.什么是搜索引擎? 全文搜索引擎: 自然语言处理(NLP)、爬…

Full authentication is required to access this resource解决办法

我们在使用postman调接口时候,有的时候需要权限才可以访问,否则可能会报下面这个错误 {"timestamp": xxxxxx,"status": 401,"error": "Unauthorized","message": "Full authentication is requ…

Matlab信号处理1:模拟去除信号噪声

由于工作内容涉及信号系统、信号处理相关知识,本人本硕均为计算机相关专业,专业、研究方向均未涉及信号相关知识,因此需进行系统地学习。之前已将《信号与系统》快速过了一遍,但感觉较抽象且理解较浅显。在此系统地学习如何使用Ma…

PTA L1-011 A-B C++解法

我的答案 #include<iostream> #include <string> using namespace std;int main() {//先用数组去存储输入的A和B&#xff0c;然后遍历数组A&#xff0c;B&#xff0c;相同的字母去除&#xff0c;不同的字母留下&#xff0c;最后输出string A, B;getline(cin, A);g…