论文阅读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)表示法面临几个挑战:
-
尺寸变化问题: 范围视图的一个主要问题是,它继承了传统2D图像检测中的一个典型问题,即物体因距离不同而呈现出的“近大远小”现象,这导致物体尺寸变化多端,给物体检测带来挑战。相比之下,鸟瞰图(Bird’s Eye View, BEV)表示法不会遇到这种问题,但BEV的主要问题在于数据稀疏性和量化损失。
-
处理难度: 第二个挑战是不能简单地采用传统的2D卷积网络处理范围图像。因为在范围图像中,每个像素点都有一个明确的距离值,使得相邻像素之间的实际空间距离各不相同。这一特性要求在处理时必须考虑到像素间的这种空间距离差异。
-
稠密特征的利用: 尽管范围图像相比点云和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 loss和Smooth 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. 空(empty):字符串:集合: 2. null:引用类型变量:基本类型变量: 3. isBlank总结: 前言 StringUtils 提示:这里可以添加本文要记录…...
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包安装用国内镜像源
一:临时用国内源 可以在使用pip的时候加参数-i https://pypi.tuna.tsinghua.edu.cn/simple 例如:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyspider,这样就会从清华这边的镜像去安装pyspider库 清华:https://py…...
uniapp:小程序腾讯地图程序文件qqmap-wx-jssdk.js 文件一直找不到无法导入
先看问题: 在使用腾讯地图api时无法导入到qqmap-wx-jssdk.js文件 解决方法:1、打开qqmap-wx-jssdk.js最后一行 然后导入:这里是我的路径位置,可以根据自己的路径位置进行更改导入 最后在生命周期函数中输出: 运行效果…...
如何物理控制另一台电脑以及无网络用作副屏(现成设备和使用)
初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 控制另一台电脑有很多方法&…...
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项目。
演示视频: 基于Springboot的美发管理系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构&…...
最新测试技术
在软件测试领域,随着技术的不断进步和行业需求的变化,新的测试技术和方法不断涌现。以下是一些最新的测试技术,它们正在塑造着软件测试的未来: 人工智能和机器学习(AI/ML)在测试中的应用 人工智能和机器学习正在被集成到软件测试中,以提高测试的自动化水平和效率。AI可…...
【算法】初识算法
尽量不说废话 算法 一、数据结构二、排序算法三、检索算法四、字符算类型算法五、递归算法六、贪心算法七、动态规划八、归一化算法后记 我们这里指的算法,是作为程序员在计算机编程时运用到的算法。 算法是一个庞大的体系,主要包括以下内容:…...
HomeBrew 安装与应用
目录 前言一、安装 HomeBrew二、使用 HomeBrew1、使用 brew 查看已安装的软件包2、使用 brew 安装软件包3、使用 brew 升级已安装的软件包4、brew 还有哪些命令呢? 前言 在 macOS(或Linux)系统里,默认是没有软件包的管理器的&…...
JS详解-设计模式
工厂模式: 单例模式: // 1、定义一个类class SingleTon{// 2、添加私有静态属性static #instance// 3、添加静态方法static getInstance(){// 4、判断实例是否存在if(!this.#instance){// 5、实例不存在,创建实例this.#instance new Single…...
探寻马来西亚服务器托管的优势与魅力
随着全球跨境业务的不断增加,境外服务器成为越来越受欢迎的选择。在这其中,马来西亚服务器备受关注,其机房通常位于马来西亚首都吉隆坡。对于客户群体主要分布在东南亚、澳大利亚和新西兰等地区的用户来说,马来西亚服务器是一个理…...
虚幻UE5数字孪生蓝图开发教程
一、背景 这几年,智慧城市/智慧交通/智慧水利等飞速发展,骑士特意为大家做了一个这块的学习路线。 二、这是学习大纲 1.给虚幻UE5初学者准备的智慧城市/数字孪生蓝图开发教程 https://www.bilibili.com/video/BV1894y1u78G 2.UE5数字孪生蓝图开发教学…...
七、Mybatis-缓存
文章目录 缓存一级缓存二级缓存1.概念2.二级缓存开启的条件:3.使二级缓存失效的情况:4.在mapper配置文件中添加的cache标签可以设置一些属性:5.MyBatis缓存查询的顺序 缓存 一级缓存 级别为sqlSession,Mybatis默认开启一级缓存。 使一级缓存失效的四种…...
数据结构(六)——图的应用
6.4 图的应用 6.4.1 最小生成树 对于⼀个带权连通⽆向图G (V, E),⽣成树不同,每棵树的权(即树中所有边上的权值之和)也可能不同。设R为G的所有⽣成树的集合,若T为R中边的权值之和最小的生成树,则T称为G的…...
java自动化测试学习-03-06java基础之运算符
运算符 算术运算符 运算符含义举例加法,运算符两侧的值相加ab等于10-减法,运算符左侧减右侧的值a-b等于6*乘法,运算符左侧的值乘以右侧的值a*b等于16/除法,运算符左侧的值除以右侧的值a/b等于4%取余,运算符左侧的值除…...
【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)是基于第一性原理对原子尺度的材料进行模拟计算的软件。比…...
3大核心模块:Steam成就管理开源工具从问题解决到效率提升的实战指南
3大核心模块:Steam成就管理开源工具从问题解决到效率提升的实战指南 【免费下载链接】SteamAchievementManager A manager for game achievements in Steam. 项目地址: https://gitcode.com/gh_mirrors/st/SteamAchievementManager 引言 在游戏玩家的日常体…...
从VCHA移除到成功升级:VMware VCSA6.5到6.7的完整实战记录
从VCHA移除到成功升级:VMware VCSA6.5到6.7的完整实战记录 在虚拟化运维领域,VMware vCenter Server Appliance(VCSA)的升级一直是技术团队面临的常规挑战。当环境配置了vCenter High Availability(VCHA)时…...
专业级视频对比分析工具:video-compare的技术架构深度解析
专业级视频对比分析工具:video-compare的技术架构深度解析 【免费下载链接】video-compare Split screen video comparison tool using FFmpeg and SDL2 项目地址: https://gitcode.com/gh_mirrors/vi/video-compare 在视频编码质量评估、算法效果验证和媒体…...
如何轻松实现QQ空间历史数据自动化备份:GetQzonehistory完整解决方案指南
如何轻松实现QQ空间历史数据自动化备份:GetQzonehistory完整解决方案指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 还在为QQ空间里的青春回忆可能丢失而担心吗&#x…...
Unsloth让AI触手可及:免费GPU+开源框架,训练自己的模型
Unsloth让AI触手可及:免费GPU开源框架,训练自己的模型 1. Unsloth简介:高效微调的开源利器 Unsloth是一个专为大型语言模型(LLM)优化的开源微调框架,它的核心使命是让AI训练变得高效且易于获取。通过创新的技术手段,…...
别再死记硬背了!动态规划解回文问题的填表顺序与状态定义保姆级图解
动态规划解回文问题:从填表顺序到状态定义的思维重塑 第一次接触回文串的动态规划解法时,我盯着那个双重循环的填表顺序发呆了半小时——为什么i要从n-1开始倒着遍历?为什么j又要从i开始正着遍历?更让我困惑的是,dp[i…...
4个强力技巧:Squirrel-RIFE开源工具视频增强全指南
4个强力技巧:Squirrel-RIFE开源工具视频增强全指南 【免费下载链接】Squirrel-RIFE 项目地址: https://gitcode.com/gh_mirrors/sq/Squirrel-RIFE Squirrel-RIFE(简称SVFI)是一款基于AI技术的开源视频补帧工具,通过在原始…...
注CO2驱替煤层气THM耦合模型与自定义PDE耦合固体力学
注co2驱替煤层气THM耦合模型 自定义pde耦合固体力学今天,我来分享一下关于CO2驱替煤层气的THM(热-水-力学)耦合模型的构建过程。这个模型听起来有点复杂,但其实拆开来理解,每一步都还挺有意思的。尤其是其中涉及的自定…...
YOLOE新手教程:如何用一行代码加载预训练模型
YOLOE新手教程:如何用一行代码加载预训练模型 1. 引言:为什么选择YOLOE? 在计算机视觉领域,目标检测一直是核心任务之一。传统检测模型需要预先定义好所有可能的类别,遇到新物体时往往束手无策。YOLOE(Yo…...
LeetCode 3548. 等和矩阵分割2 详细题解(前缀和+二分+连通性分析)
LeetCode 3548. 等和矩阵分割2 详细题解(前缀和二分连通性分析) 🏷️ 标签:前缀和、二分查找、连通性、哈希表、矩阵、周赛难题 📊 难度:中等 | 📝 题目编号:3548 | 🗂️…...
