【论文笔记】Instantaneous Perception of Moving Objects in 3D
原文链接:https://arxiv.org/abs/2405.02781
简介:本文主张自动驾驶中细微运动的瞬时检测和量化与一般的大型运动同等重要。具体来说,由于激光雷达点云缺乏帧间对应关系,静态物体可能看起来在运动(称为游泳效应),使得微小运动检测模糊而不精确。本文提出使用局部占用补全来密集化形状线索,以减小游泳效应的影响。占用补全是与运动物体检测和运动估计一起端到端学习的。实验表明本文方法与标准的3D运动估计方法相比性能更优,特别是在细微运动上。
1. 引言
运动相关的计算机视觉任务包括:3D场景流估计(低级任务;预测各点的运动)、运动分割或检测(中级任务;通常为序列标注而非瞬时标注)、3D目标跟踪(高级任务;精确定位困难)。但因为细微运动会与游泳效应混合在一起难以分辨,这些任务难以识别细微运动(即改变驾驶倾向或行为的运动,如起步、倒车等)。
本文首先进行形状补全,即将激光雷达点云体素化为占用网格,然后多帧积累以密集化体素,作为占用补全的监督。为避免不完美补全影响后续运动估计,本文仅对可见表面进行形状补全,这也是主要运动信号的所在位置。本文将每个物体的点云分别输入专为微小运动训练的网络,称为S’More(微小运动回归器)。此外,本文从Waymo数据集的标注中提取出微小运动,用于评估。
3. 方法
3.1 问题定义与挑战
本文的目标是使用连续帧点云识别运动物体(汽车)并估计运动,特别关注细微运动。预处理步骤会过滤快速运动物体,仅关注静态物体和慢速运动物体;可与3D目标跟踪任务结合进行(如下图)。

此外,本文假设自车运动可以通过ICP(GPS/INS)可靠估计。
游泳效应:源自激光雷达点云的稀疏性。如图所示为静态物体上的两帧点云(分别用红/蓝点表示),可见由于点分布的位置差异,该物体看上去是运动的。

3.2 本文方法
如图所示为本文的S’More。过滤快速运动物体后,本文为每个余下的物体估计微小运动。首先体素化点云,然后提取特征,进行占用补全,从而进行运动分割和瞬时流估计。

3.2.1 占用补全
输入体素化:将连续 T T T帧中的每一帧点云 X t ∈ R N × 3 X_t\in\mathbb R^{N\times3} Xt∈RN×3体素化为 [ W x , W y , W z ] [W_x,W_y,W_z] [Wx,Wy,Wz]大小的二值网格(0表示无点,1表示含点),形成大小为 [ T , W x , W y , W z ] [T,W_x,W_y,W_z] [T,Wx,Wy,Wz]的结果。该结果可视为不完整的占用网格,因其仅表示部分可视表面。
局部占用补全:该步骤中,不完美的补全会引入额外噪声,从而影响运动估计结果。由于完整形状真值难以获取、复杂且没有必要,本文仅对 T T T帧均可视的部分进行占用补全,以增强运动特征的关键信号,同时最小化引入的噪声。
占用监督:本文利用物体的真实运动和自车运动,将其余 T − 1 T-1 T−1帧的激光雷达点转化到当前帧下,并标记相应的网格为1,且视线方向上的网格为0,其余网格视为未知。该步骤利用快速体素遍历算法实现。
3.2.2 网络结构和损失
网络结构:占用补全和运动检测器/运动流估计器均使用编码器-解码器结构。运动检测器将物体分类为静态/动态物体,而流估计器为每个占用体素回归运动向量,作为体素内点的运动流。具体来说,本文将高度和时间维度均视为通道,以使用2D卷积分别处理每个物体。
总体损失:包括用于占用补全和动静态物体分类的二元交叉熵损失,用于运动物体运动流预测的L1损失、尺度感知损失 L r e l L_{rel} Lrel和角度损失 L a n g L_{ang} Lang。
占用损失:记占用体素和未占用体素的集合分别为 ϕ o , ϕ e \phi_o,\phi_e ϕo,ϕe,则占用损失为
L o c c = E v ∈ { ϕ o , ϕ e } [ O ^ v log ( O v ) + ( 1 − O ^ v ) log ( 1 − O v ) ] L_{occ}=\mathbb E_{v\in\{\phi_o,\phi_e\}}[\hat O_v\log(O_v)+(1-\hat O_v)\log(1-O_v)] Locc=Ev∈{ϕo,ϕe}[O^vlog(Ov)+(1−O^v)log(1−Ov)]
其中 O v , O ^ v O_v,\hat O_v Ov,O^v分别为体素 v v v的占用预测和真值。
流预测损失:本文定义体素真实流 f ^ v \hat f_v f^v为体素中点真实流的均值。相对流损失为
L r e l = E v ∈ ϕ o ∥ f ^ v − f v ∥ 2 ∥ f ^ v ∥ 2 + ϵ L_{rel}=\mathbb E_{v\in\phi_o}\frac{\|\hat f_v-f_v\|_2}{\|\hat f_v\|_2+\epsilon} Lrel=Ev∈ϕo∥f^v∥2+ϵ∥f^v−fv∥2
其中 ϵ \epsilon ϵ为小常数, f v f_v fv为预测流。该损失由流大小反向加权,以强调小运动的学习。角度损失为
L a n g = E v ∈ ϕ o arccos ( ⟨ f v , f ^ v ⟩ ∥ f v ∥ 2 ⋅ ∥ f ^ v ∥ 2 + ϵ ) L_{ang}=\mathbb E_{v\in\phi_o}\arccos(\frac{\langle f_v,\hat f_v\rangle}{\|f_v\|_2\cdot\|\hat f_v\|_2+\epsilon}) Lang=Ev∈ϕoarccos(∥fv∥2⋅∥f^v∥2+ϵ⟨fv,f^v⟩)
其中 ⟨ ⋅ , ⋅ ⟩ \langle\cdot,\cdot\rangle ⟨⋅,⋅⟩表示向量点积。
4. 实验
4.1 S’More的评估
评估基准。本文利用Waymo数据集生成微小运动真值。具体来说,取连续5帧点云 F i F_i Fi,利用3D边界框标注计算空间变换,从而计算 F 1 F_1 F1中每个点 x i x_i xi的场景流 f i f_i fi。当最小流的大小 f min = min x i ∈ F 1 ∥ f i ∥ f_{\min}=\min_{x_i\in F_1}\|f_i\| fmin=minxi∈F1∥fi∥小于0.2m的时候,视为样本有效。当 f min < f t h r e f_{\min}<f_{thre} fmin<fthre时,视为物体静止。
评估指标。使用标准的F1分数评估动静态物体分类;端点误差(EPE)和角度误差评估物体运动流误差。
相关文章:
【论文笔记】Instantaneous Perception of Moving Objects in 3D
原文链接:https://arxiv.org/abs/2405.02781 简介:本文主张自动驾驶中细微运动的瞬时检测和量化与一般的大型运动同等重要。具体来说,由于激光雷达点云缺乏帧间对应关系,静态物体可能看起来在运动(称为游泳效应&#x…...
Segugio:一款针对恶意软件的进程执行跟踪与安全分析工具
关于Segugio Segugio是一款功能强大的恶意软件安全分析工具,该工具允许我们轻松分析恶意软件执行的关键步骤,并对其进行跟踪分析和安全审计。 Segugio允许执行和跟踪恶意软件感染过程中的关键步骤,其中包括从点击第一阶段到提取恶意软件的最…...
互联网系统的微观与宏观架构
互联网系统的架构设计,通常会根据项目的体量、业务场景以及技术需求被划分为微观架构(Micro-Architecture)和宏观架构(Macro-Architecture)。这两者的概念与职责既独立又相互关联。本文将通过一些系统案例,…...
数据库、数据仓库、数据湖和数据中台有什么区别
很多企业在面对数据存储和管理时不知道如何选择合适的方式,数据库、数据仓库、数据湖和数据中台,这些方式都是什么?有什么样的区别?企业根据其业务类型该选择哪一种?本文就针对这些问题,来探讨下这些方式都…...
vscode配色主题与图标库推荐
vscode配色主题推荐:Andromedavsocde图标库: vscode-icons Andromeda Dark theme with a taste of the universe 仙女座:一套宇宙深空体验的哑暗色主题; 高对比度,色彩饱和; Easy Installation Open the extensions sidebar on Visual Studio CodeSear…...
深度学习模型入门教程:从基础到应用
深度学习模型入门教程:从基础到应用 前言 在人工智能的浪潮中,深度学习作为一种强大的技术,正在各行各业中发挥着越来越重要的作用。从图像识别到自然语言处理,深度学习正在改变我们的生活和工作方式。本文将带您深入了解深度学…...
数据结构 软考
算法具有5个特性 可行性,有限性,确定性,输入, 输出 图: 有向图 Kruskal(克鲁斯卡尔)算法 和 prim(普鲁姆)算法 都是贪心算法 是一种用来在加权连通图中寻找最小生成树的算法,其操作对象是边. 找最小的不形成环 1.哈夫曼树(也叫最优树)…...
colcon构建ros2功能包时,出现exited with code 2报错的解决方案(bug)
背景: 在学习ros2时,跟着别人的示例进行构建,手敲的代码难免有一些语法错误。 问题: 在colcon构建时,并不会直接输出语法报错。而是出现exited with code 2错误,并提示未能生成功能包,就算加入…...
【大模型LLM面试合集】大语言模型架构_位置编码
位置编码 1.位置编码 不同于RNN、CNN等模型,对于Transformer模型来说,位置编码的加入是必不可少的,因为纯粹的Attention模块是无法捕捉输入顺序的,即无法区分不同位置的Token。为此我们大体有两个选择: 想办法将位置…...
FLINK 分流
在Apache Flink中,分流(Stream Splitting)是指将一条数据流拆分成完全独立的两条或多条流的过程。这通常基于一定的筛选条件,将符合条件的数据拣选出来并放入对应的流中。以下是关于Flink分流的详细解释: 一、分流方式…...
从零开始:构建一个高效的开源管理系统——使用 React 和 Ruoyi-Vue-Plus 的实战指南
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...
windows下pycharm社区版2024下载与安装(包含新建第一个工程)
windows下pycharm社区版2024下载与安装 下载pycharm pycharm官网 安装pycharm 1.进入官网 pycharm官网 下载 点击Download–>右侧Other versions 下载对应的社区版(如下图):下载网址 2.点击运行下载好的安装包 点击下一步 3.更改pychar…...
重构案例:将纯HTML/JS项目迁移到Webpack
我们已经了解了许多关于 Webpack 的知识,但要完全熟练掌握它并非易事。一个很好的学习方法是通过实际项目练习。当我们对 Webpack 的配置有了足够的理解后,就可以尝试重构一些项目。本次我选择了一个纯HTML/JS的PC项目进行重构,项目位于 GitH…...
表格编辑demo
<el-form :model"form" :rules"status ? rules : {}" ref"form" class"form-container" :inline"true"><el-table :data"tableData"><el-table-column label"计算公式"><templat…...
企业自建邮件系统选U-Mail ,功能强大、安全稳定
在现代企业运营中,电子邮件扮演着至关重要的角色,随着企业规模的增长和业务的多样化,传统的租用第三方企业邮箱服务逐渐显现出其局限性。例如,存储空间受限、数据安全风险、缺乏灵活的管理和备份功能,以及无法与其他企…...
蓝桥杯题目理解
1. 一维差分 1.1. 小蓝的操作 1.1.1. 题目解析: 这道题提到了对于“区间”进行操作,而差分数列就是对于区间进行操作的好方法。 观察差分数列: 给定数列:1 3 5 2 7 1 差分数列:1 2 2 -3 5 6 题目要求把原数组全部…...
浪潮云启操作系统(InLinux)bcache缓存实践:理解OpenStack环境下虚拟机卷、Ceph OSD、bcache设备之间的映射关系
前言 在OpenStack平台上,采用bcache加速ceph分布式存储的方案被广泛用于企业和云环境。一方面,Ceph作为分布式存储系统,与虚拟机存储卷紧密结合,可以提供高可用和高性能的存储服务。另一方面,bcache作为混合存储方案&…...
通过ssh端口反向通道建立并实现linux系统的xrdp以及web访问
Content 1 问题描述2 原因分析3 解决办法3.1 安装x11以及gnome桌面环境查看是否安装x11否则使用下面指令安装x11组件查看是否安装gnome否则使用下面指令安装gnome桌面环境 3.2 安装xrdp使用下面指令安装xrdp(如果安装了则跳过)启动xrdp服务 3.3 远程服务…...
# 渗透测试#安全见闻8 量子物理面临的安全挑战
# 渗透测试#安全见闻8 量子物理面临的安全挑战 ##B站陇羽Sec## 量子计算原理与技术 量子计算是一种基于量子力学原理的计算方式,它利用量子位(qubits)来进行信息处理和计算…...
【rabbitmq】实现问答消息消费示例
目录 1. 说明2. 截图2.1 接口调用截图2.2 项目结构截图 3. 代码示例 1. 说明 1.实现的是一个简单的sse接口,单向的长连接,后端可以向前端不断输出数据。2.通过调用sse接口,触发rabbitmq向队列塞消息,向前端返回一个sseEmitter对象…...
synchronized 学习
学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...
【杂谈】-递归进化:人工智能的自我改进与监管挑战
递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...
Cinnamon修改面板小工具图标
Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...
Spring Boot面试题精选汇总
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...
Spring是如何解决Bean的循环依赖:三级缓存机制
1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间互相持有对方引用,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...
scikit-learn机器学习
# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...
STM32HAL库USART源代码解析及应用
STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...
Qemu arm操作系统开发环境
使用qemu虚拟arm硬件比较合适。 步骤如下: 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载,下载地址:https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...
