当前位置: 首页 > news >正文

论文阅读RangeDet: In Defense of Range View for LiDAR-based 3D Object Detection

文章目录

  • RangeDet: In Defense of Range View for LiDAR-based 3D Object Detection
    • 问题
    • 笛卡尔坐标
    • 结构图
    • Meta-Kernel Convolution

RangeDet: In Defense of Range View for LiDAR-based 3D Object Detection

在这里插入图片描述
论文:https://arxiv.org/pdf/2103.10039.pdf
代码:https://github.com/tusen-ai/RangeDet

问题

提出了一个名为RangeDet的新型3D物体检测技术,利用激光雷达数据。
RangeDet的核心在于使用了一种紧凑的表示方法,称为范围视图,与其他常用方法相比,它避免了计算误差。

在这里插入图片描述
根据论文中的讨论,使用范围视图(range view)表示法面临几个挑战:

  1. 尺寸变化问题: 范围视图的一个主要问题是,它继承了传统2D图像检测中的一个典型问题,即物体因距离不同而呈现出的“近大远小”现象,这导致物体尺寸变化多端,给物体检测带来挑战。相比之下,鸟瞰图(Bird’s Eye View, BEV)表示法不会遇到这种问题,但BEV的主要问题在于数据稀疏性和量化损失。

  2. 处理难度: 第二个挑战是不能简单地采用传统的2D卷积网络处理范围图像。因为在范围图像中,每个像素点都有一个明确的距离值,使得相邻像素之间的实际空间距离各不相同。这一特性要求在处理时必须考虑到像素间的这种空间距离差异。

  3. 稠密特征的利用: 尽管范围图像相比点云和BEV视图具有更稠密的特征,这理论上可以使得特征学习更加高效,但如何有效地利用这些稠密特征来提高检测精度是一个问题。稠密特征提供了更丰富的信息,但同时也需要更复杂的方法来正确地解析这些信息,并转化为对物体检测有利的形式。

笛卡尔坐标

在论文中提到,对于一个扫描周期内包含m个光束和n次测量的激光雷达,其一次扫描返回的数据构成了一个m乘以n的矩阵,被称为测距仪图像。此测距图像的每一列对应一个方位角,每一行对应一个倾角,这些角度代表了返回点与激光雷达原点之间的相对垂直和水平位置。测距图像中的像素值不仅包括了相应点的距离(深度)、返回激光脉冲的强度(即强度值)等信息,还可能包含其他辅助信息。在测距图像中,每个像素至少囊括了三个几何参数:测距(r)、方位角(θ)和倾角(φ)。
在这里插入图片描述

结构图

在这里插入图片描述
这个过程针对处理激光雷达的范围图像(Range Image)采用了一种特殊的框架,其中范围图像被看作是一个具有8个通道的2D图像。这些通道分别代表不同的测量和几何特性,包括距离、反射率、伸长率、X、Y、Z坐标、方位角和倾角。这样的多维表示富含了环境的详细信息,对于后续的处理至关重要。

接下来,这个8通道的2D图像会依次经过两个基础块(BasicBlock),这是何凯明等人在ResNet架构中提出的一种结构单元。第一个BasicBlock按照原始设计进行处理,而第二个BasicBlock则采用了一种被称为Meta-Kernel的特殊卷积核,旨在捕获和提炼更丰富的特征信息,生成所谓的特征图(Featuremap)

在第二个BasicBlock中,作者还引入了特征金字塔网络(FPN)的结构,通过不同尺度的特征图上采样和聚合,进一步丰富了特征表示。这一步骤在处理深度学习任务中常见,特别是在需要捕获多尺度信息的视觉任务中。

文章中的另一大创新点是范围条件金字塔分配(Range Conditioned Pyramid Assignment),这个方法根据物体距离的远近,将标签分配到不同尺度的特征图中。这种策略使得模型能够针对不同距离范围的目标,更加精准地处理信息,尤其是对近距离和远距离的目标进行了优化处理。

最后,模型通过四个3x3的卷积层分别构造了分类和回归的头部(head),并采用了Varifocal lossSmooth L1 Loss作为损失函数来优化模型。这些设计和优化策略共同提高了模型对于3D物体检测的性能,特别是在处理复杂的激光雷达数据时的准确性和鲁棒性。

Varifocal loss
在这里插入图片描述
Smooth L1 Loss
在这里插入图片描述
IoU target calculation
在这里插入图片描述

  • 左图: 描述的是一个方法,其中对于模型考虑的每一个点,都将以该点为中心,而且该点的x轴被定义为局部x轴。这种方法简单地将每个点自身作为坐标系的起点,而不考虑任何外部的方向信息或者点的方位角。

  • 右图: 在这个方法中,每个点的方位角方向被定义为局部x轴。这意味着,与左图的方法相比,局部坐标系的定义考虑到了每个点的方位,使得局部x轴的定义更加动态,依赖于每个点相对于全局坐标系的方向。

在模型处理回归任务,特别是在计算回归损失之前,将采用左图的目标方式转换成右图的目标方式。这样的转换是为了利用方位角信息,从而更精确地定义局部坐标系,提高模型对于物体位置和方向的估计精度。

Meta-Kernel Convolution

在这里插入图片描述
在这个过程中,首先通过一个3x3的采样网格,我们确定了九个邻近点的位置,这些位置的坐标被转换成相对于中心点的直角坐标系统下的位置。这一步骤的目的是获取空间上邻近点的布局信息。

接着,使用一个共享的多层感知器_MLP对这些相对坐标进行处理。MLP是一种简单的神经网络,它可以从输入数据中学习复杂的函数映射。在这里,它被用来根据邻近中心的相对坐标生成九个不同的权重向量(w1到w9)。这些权重向量反映了每个邻近点相对于中心点的空间重要性或贡献度。

然后,对应于这九个位置的输入特征向量f1到f9)被采样。这些特征向量可能包含了那些位置上的物体的形状、纹理等信息。

最后,通过一个特殊的操作,将这九个邻域的输出(oi)组合起来。这通常通过连接(concatenating)这些输出并应用一个1x1的卷积来实现。1x1卷积在这里的作用是将来自不同通道和不同采样位置的信息汇总,生成一个输出特征向量。这个输出特征向量综合了周围邻域的信息。

总结来说,这个过程通过分析邻近点的空间布局和特征信息,以及它们相对于中心点的重要性,有效地生成了融合了局部信息的输出特征向量。这种方法可以增强模型对于空间信息的理解和利用,从而提高其性能。

参考

https://zhuanlan.zhihu.com/p/526985263

相关文章:

论文阅读RangeDet: In Defense of Range View for LiDAR-based 3D Object Detection

文章目录 RangeDet: In Defense of Range View for LiDAR-based 3D Object Detection问题笛卡尔坐标结构图Meta-Kernel Convolution RangeDet: In Defense of Range View for LiDAR-based 3D Object Detection 论文:https://arxiv.org/pdf/2103.10039.pdf 代码&…...

3D模型格式转换工具HOOPS Exchange如何将3D文件加载到PRC数据结构中?

HOOPS Exchange是一款高效的数据访问工具,专为开发人员设计,用于在不同的CAD(计算机辅助设计)系统之间进行高保真的数据转换和交换。由Tech Soft 3D公司开发,它支持广泛的CAD文件格式,包括但不限于AutoCAD的…...

c# wpf Template ContentTemplate

1.概要 1.1 定义内容的外观 2.2 要点分析 2.代码 <Window x:Class"WpfApp2.Window1"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://schem…...

空和null是两回事

文章目录 前言 StringUtils1. 空&#xff08;empty&#xff09;&#xff1a;字符串&#xff1a;集合&#xff1a; 2. null&#xff1a;引用类型变量&#xff1a;基本类型变量&#xff1a; 3. isBlank总结&#xff1a; 前言 StringUtils 提示&#xff1a;这里可以添加本文要记录…...

UNIAPP(小程序)每十个文章中间一个广告

三十秒刷新一次广告 ad-intervals"30" <template><view style"margin: 30rpx;"><view class"" v-for"(item,index) in 100"><!-- 广告 --><view style"margin-bottom: 20rpx;" v-if"(inde…...

pip包安装用国内镜像源

一&#xff1a;临时用国内源 可以在使用pip的时候加参数-i https://pypi.tuna.tsinghua.edu.cn/simple 例如&#xff1a;pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyspider&#xff0c;这样就会从清华这边的镜像去安装pyspider库 清华&#xff1a;https://py…...

uniapp:小程序腾讯地图程序文件qqmap-wx-jssdk.js 文件一直找不到无法导入

先看问题&#xff1a; 在使用腾讯地图api时无法导入到qqmap-wx-jssdk.js文件 解决方法&#xff1a;1、打开qqmap-wx-jssdk.js最后一行 然后导入&#xff1a;这里是我的路径位置&#xff0c;可以根据自己的路径位置进行更改导入 最后在生命周期函数中输出&#xff1a; 运行效果…...

如何物理控制另一台电脑以及无网络用作副屏(现成设备和使用)

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 控制另一台电脑有很多方法&…...

Aurora8b10b(1)IP核介绍并基于IP核进行设计

文章目录 前言一、IP核设置二、基于IP核进行设计2.1、设计框图2.2、aurora_8b10b_0模块2.3、aurora_8b10b_0_CLOCK_MODULE2.4、aurora_8b10b_0_SUPPORT_RESET_LOGIC2.5、aurora8b10b_channel模块2.6、IBUFDS_GTE2模块2.7、aurora_8b10b_0_gt_common_wrapper模块2.8、aurora8b10…...

基于Springboot的美发管理系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的美发管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&…...

最新测试技术

在软件测试领域,随着技术的不断进步和行业需求的变化,新的测试技术和方法不断涌现。以下是一些最新的测试技术,它们正在塑造着软件测试的未来: 人工智能和机器学习(AI/ML)在测试中的应用 人工智能和机器学习正在被集成到软件测试中,以提高测试的自动化水平和效率。AI可…...

【算法】初识算法

尽量不说废话 算法 一、数据结构二、排序算法三、检索算法四、字符算类型算法五、递归算法六、贪心算法七、动态规划八、归一化算法后记 我们这里指的算法&#xff0c;是作为程序员在计算机编程时运用到的算法。 算法是一个庞大的体系&#xff0c;主要包括以下内容&#xff1a;…...

HomeBrew 安装与应用

目录 前言一、安装 HomeBrew二、使用 HomeBrew1、使用 brew 查看已安装的软件包2、使用 brew 安装软件包3、使用 brew 升级已安装的软件包4、brew 还有哪些命令呢&#xff1f; 前言 在 macOS&#xff08;或Linux&#xff09;系统里&#xff0c;默认是没有软件包的管理器的&…...

JS详解-设计模式

工厂模式&#xff1a; 单例模式&#xff1a; // 1、定义一个类class SingleTon{// 2、添加私有静态属性static #instance// 3、添加静态方法static getInstance(){// 4、判断实例是否存在if(!this.#instance){// 5、实例不存在&#xff0c;创建实例this.#instance new Single…...

探寻马来西亚服务器托管的优势与魅力

随着全球跨境业务的不断增加&#xff0c;境外服务器成为越来越受欢迎的选择。在这其中&#xff0c;马来西亚服务器备受关注&#xff0c;其机房通常位于马来西亚首都吉隆坡。对于客户群体主要分布在东南亚、澳大利亚和新西兰等地区的用户来说&#xff0c;马来西亚服务器是一个理…...

虚幻UE5数字孪生蓝图开发教程

一、背景 这几年&#xff0c;智慧城市/智慧交通/智慧水利等飞速发展&#xff0c;骑士特意为大家做了一个这块的学习路线。 二、这是学习大纲 1.给虚幻UE5初学者准备的智慧城市/数字孪生蓝图开发教程 https://www.bilibili.com/video/BV1894y1u78G 2.UE5数字孪生蓝图开发教学…...

七、Mybatis-缓存

文章目录 缓存一级缓存二级缓存1.概念2.二级缓存开启的条件:3.使二级缓存失效的情况&#xff1a;4.在mapper配置文件中添加的cache标签可以设置一些属性:5.MyBatis缓存查询的顺序 缓存 一级缓存 级别为sqlSession&#xff0c;Mybatis默认开启一级缓存。 使一级缓存失效的四种…...

数据结构(六)——图的应用

6.4 图的应用 6.4.1 最小生成树 对于⼀个带权连通⽆向图G (V, E)&#xff0c;⽣成树不同&#xff0c;每棵树的权&#xff08;即树中所有边上的权值之和&#xff09;也可能不同。设R为G的所有⽣成树的集合&#xff0c;若T为R中边的权值之和最小的生成树&#xff0c;则T称为G的…...

java自动化测试学习-03-06java基础之运算符

运算符 算术运算符 运算符含义举例加法&#xff0c;运算符两侧的值相加ab等于10-减法&#xff0c;运算符左侧减右侧的值a-b等于6*乘法&#xff0c;运算符左侧的值乘以右侧的值a*b等于16/除法&#xff0c;运算符左侧的值除以右侧的值a/b等于4%取余&#xff0c;运算符左侧的值除…...

【VASP学习】在Ubuntu系统安装vasp.5.4.4的全过程(包括VASP官方学习资料、安装过程中相关编辑器的配置、VASP的编译及VASP的测试)

在Ubuntu系统安装vasp.5.4.4的全过程 VASP的简介与相关学习资料安装前的准备工作及说明安装过程intel编译器的安装VASP的编译VASP的测试 参考来源 VASP的简介与相关学习资料 VASP(Vienna Ab initio Simulation Package)是基于第一性原理对原子尺度的材料进行模拟计算的软件。比…...

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段&#xff1a; 构建阶段&#xff08;Build Stage&#xff09;&#xff1a…...

stm32G473的flash模式是单bank还是双bank?

今天突然有人stm32G473的flash模式是单bank还是双bank&#xff1f;由于时间太久&#xff0c;我真忘记了。搜搜发现&#xff0c;还真有人和我一样。见下面的链接&#xff1a;https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

对WWDC 2025 Keynote 内容的预测

借助我们以往对苹果公司发展路径的深入研究经验&#xff0c;以及大语言模型的分析能力&#xff0c;我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际&#xff0c;我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测&#xff0c;聊作存档。等到明…...

令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍

文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结&#xff1a; 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析&#xff1a; 实际业务去理解体会统一注…...

c#开发AI模型对话

AI模型 前面已经介绍了一般AI模型本地部署&#xff0c;直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型&#xff0c;但是目前国内可能使用不多&#xff0c;至少实践例子很少看见。开发训练模型就不介绍了&am…...

Xen Server服务器释放磁盘空间

disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...

JS设计模式(4):观察者模式

JS设计模式(4):观察者模式 一、引入 在开发中&#xff0c;我们经常会遇到这样的场景&#xff1a;一个对象的状态变化需要自动通知其他对象&#xff0c;比如&#xff1a; 电商平台中&#xff0c;商品库存变化时需要通知所有订阅该商品的用户&#xff1b;新闻网站中&#xff0…...

MinIO Docker 部署:仅开放一个端口

MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...

在树莓派上添加音频输入设备的几种方法

在树莓派上添加音频输入设备可以通过以下步骤完成&#xff0c;具体方法取决于设备类型&#xff08;如USB麦克风、3.5mm接口麦克风或HDMI音频输入&#xff09;。以下是详细指南&#xff1a; 1. 连接音频输入设备 USB麦克风/声卡&#xff1a;直接插入树莓派的USB接口。3.5mm麦克…...

MyBatis中关于缓存的理解

MyBatis缓存 MyBatis系统当中默认定义两级缓存&#xff1a;一级缓存、二级缓存 默认情况下&#xff0c;只有一级缓存开启&#xff08;sqlSession级别的缓存&#xff09;二级缓存需要手动开启配置&#xff0c;需要局域namespace级别的缓存 一级缓存&#xff08;本地缓存&#…...