【三维目标检测】【自动驾驶】IA-BEV:基于结构先验和自增强学习的实例感知三维目标检测(AAAI 2024)

news2025/2/2 12:49:36

系列文章目录

论文:Instance-aware Multi-Camera 3D Object Detection with Structural Priors Mining and Self-Boosting Learning
地址:https://arxiv.org/pdf/2312.08004.pdf
来源:复旦大学 英特尔Shanghai Key Lab /美团


文章目录

  • 系列文章目录
  • 摘要
  • 一、前言
  • 二、提出解决方案
  • 三、主要方法
    • 3.1 特征编码器
    • 3.2 结构先验挖掘
      • 01.基于类别的深度解码器
      • 02.基于实例的监督
    • 3.3 Self-Boosting 学习
      • 01.稀疏的Cost Volume构建
      • 02.迭代立体匹配
    • 3.4 BEV特征处理器
  • 四、实验效果
  • 总结


摘要

  多相机三维目标检测是自动驾驶领域的一个重要研究方向,常用方法是将多视图图像特征转换到统一的鸟瞰图(BEV)空间进行感知。我们提出了一种实例感知的鸟瞰图检测器(IA-BEV),它在深度估计过程中引入了图像平面上的实例感知信息。在nuScenes数据集上,方法在使用两个关键帧的情况下达到了最先进的结果


一、前言

  近年来,多相机三维目标检测在自动驾驶领域受到了广泛的关注。与激光雷达相比,其摄像头能够更好地捕获物体的语义信息,并且具有更低的成本优势。这个领域的最新趋势是将多视图图像特征转换到统一的BEV空间进行后续的感知任务。这种表示方式有利于在BEV空间中对来自多个传感器和时间戳的信号进行对齐,从而为下游的任务(如检测、地图分割和运动规划)提供了一种通用的表示形式。

  在基于BEV的感知流程中,深度估计是从图像视图到BEV的透视投影的关键环节。早期的方法从单目图像中隐式或显式地估计深度。受到多视立体匹配技术的启发,后续的方法利用连续的摄像机帧构建cost volumn进行立体匹配。由于深度估计的提升,这些方法获得了高质量的BEV特征,从而明显提高了检测性能。

  尽管已经取得了明显的进展,但由于现有的方法将每个像素都看得同等重要,因此忽略了前景物体中的固有属性。事实上,前景物体可以表现出类内一致性和实例间的差异性,我们认为这可以用来改善深度估计。 一方面,相同语义类别的物体具有相似的结构先验 ,这体现为两点:

1)图像中物体的尺度与其真实深度有一定的相关性,这种相关性通常对相同语义类别的物体是一致的,而对不同类别的物体是不同的。例如,图像中汽车的尺度与其真实深度成反比,但即使在相同的深度下,汽车和行人的尺度也有明显的差异。

2)相同语义类别的物体具有一致的内部几何结构。如图1(b)所示,当从图像平面上分离观察时,相同类别(汽车)的物体具有相似的相对深度分布。

   另一方面,对于不同的实例物体,即使在同一类别中,由于分辨率和遮挡状态的不同,它们的视觉外观也有很大的差异 。因此,对不同实例物体的深度估计难度也是不同的。如图1所示,左侧汽车图像包含更多的纹理和形状细节,从而降低了深度估计的不确定性。虽然一些方法探索了二维物体先验用于三维物体检测,但它们主要利用透视投影后的检测到的二维物体,从而忽略了它们改进深度估计以增强BEV特征构建的潜力。

在这里插入图片描述

二、提出解决方案

  基于上述观察,提出了一种 利用二维实例感知增强基于BEV检测器的深度估计算法,即IA-BEV。如图1(d)所示,我们的IA-BEV首先将场景分解为各个物体,然后利用这些物体的固有属性,通过两个新颖的模块分别有效地辅助单目和立体深度估计:

在这里插入图片描述
图2|我们提出方法的详细设计。给定从多视角摄像头收集的图像,我们首先使用现成的二维场景解析器解析前景物体。然后,这些物体及其图像特征被并行地输入到我们提出的SPM和SBL中,通过从类别和实例两个角度探索物体属性来进行有效的深度估计。最后,SPM和SBL的输出被合并,得到最终的图像深度,并用于常规的视图变换和基于BEV的检测。T帧和T-1帧被分别输入到SPM中,而它们被同时输入到SBL中,因为这里的立体匹配需要多帧时间信息

   第一个模块是基于类别的结构先验挖掘(SPM),它将属于相同或 相似语义类别的物体分组,由各自的轻量级深度解码器进行处理,以更好地利用结构先验。然而,仅仅通过分组输入来期望这些并行解码器主动学习类别特定的模式是非常困难的,导致性能不佳。为了解决这个问题,我们 显式地将物体尺度属性编码为额外的输入,并应用两个基于实例的损失函数来监督粗略的实例绝对深度和细致的内部物体相对深度预测。

   第二个模块是自增强学习(SBL),它以与类别无关的方式运行,侧重于迭代地区分和强化较难的物体。每次迭代,首先根据立体匹配的不确定性将物体划分为两个组。然后,不确定性较高的组(表示估计不准确)在后续的迭代中得到进一步的强化。由于后期迭代中需要处理的前景区域逐渐变得稀疏,我们可以在不确定性范围内为选定的有挑战性的样本设置更密集的深度假设,以便对它们进行更全面的立体匹配。最后,在SPM和SBL的结合深度估计的基础上,进行常规的视图变换过程,构建BEV特征用于最终检测。

  


三、主要方法

  IA-BEV包含四个关键组成部分:特征编码器,负责提取图像特征和解析前景物体;结构先验挖掘方法(SPM),通过利用相同类别物体的结构一致性来增强单目深度估计;自增强学习策略(SBL),在立体深度估计中强化模糊的物体;BEV特征编码器,用于渲染特征和在BEV空间中检测物体。

3.1 特征编码器

  多视角摄像头收集的图像,使用主干网络(如ResNet-50或ConvNeXt)提取图像特征。同时,我们使用成熟的实例分割器解析前景物体,这里我们保留了物体所有像素的特征,而不是汇总成一个向量,因为我们的目标是为整个物体区域密集地预测深度。随后使用 SPM 和 SBL ,发挥物体固有属性在深度估计中的潜力

3.2 结构先验挖掘

01.基于类别的深度解码器

  从单目图像估计深度具有挑战性,因为它需要理解不同语义物体尺度与深度值之间的关系。 现有基于BEV的方法采用流行的图像主干网络作为特征编码器,以赋予模型强大的语义捕获能力,但是它们依赖单个深度解码器同时学习多个语义类别的尺度到深度映射模式,增加了优化的负担

  为了简化不同语义类别的学习过程,设计了 多个并行的轻量级深度解码器,其中每个解码器负责处理属于同一类别的物体,如图2所示。具体地,我们首先将所有前景物体划分成若干不重叠的语义组。然后,以从语义组中提取的物体特征,我们将物体特征和框参数(即标准化的框高和宽)同时输入轻量级深度解码器。在每个深度解码器中,框参数通过线性映射进行编码,然后使用SE模块与物体特征进行融合。最后,输出将通过卷积层预测当前物体区域的深度。最后,通过合并所有实例预测的深度,就可以获得单目估计的深度。

02.基于实例的监督

  在典型的基于BEV的感知流程中,深度预测通过像素级交叉熵损失进行监督,这无法捕获细粒度的实例级提示,从而增加了上述类别特定深度解码器学习语义结构先验的难度。因此,我们设计了两个新的损失函数来鼓励学习 粗略的实例绝对深度 细致的实例内部的相对深度首先,我们将物体离散的深度预测转换为连续的深度值。然后,我们将激光雷达点投影到图像平面上以获得GroundTruth深度,并保留那些与前景物体相交的部分来构建监督信号

  此时,我们同时拥有预测值和GroundTruth 深度值。为了明确监督实例级深度预测,对于每个物体,我们提取一个绝对深度值 Dgt 作为回归目标值得注意的是,由于传感器存在误差,在GroundTruth 深度中存在一些离群值,这给我们的监督模型带来了巨大挑战。因此,我们首先将所有的深度值散点到预定义的深度bins中,然后仅对在投票数最大的深度仓中的值取平均数,作为计算绝对深度损失 dgt另外,我们还计算相对深度损失以鼓励特定解码器学习细粒度的物体几何模式

在这里插入图片描述

3.3 Self-Boosting 学习

   基于时间的立体匹配技术依赖于时间维度上的几何一致性,进行深度估计。具体地,对于T帧中的每个像素,我们最初沿深度通道提出几个深度假设。然后,这些假设通过在T帧和(T-1)帧之间的单应变换投影到(T-1)帧中,以构建成本体积并学习它们之间的最佳匹配。在上述过程中,主要障碍在于为大量高分辨率图像特征中的像素和密集的假设构建三维成本体积带来的巨大内存开销。但是,在我们的场景中,图像区域不应该一视同仁。

  首先,与背景区域相比,前景物体更重要。其次,视觉清晰度较低的物体的深度估计更具挑战性,应该给予更多关注。因此,我们设计了一种自增强策略,迭代地关注较难的物体区域,这进一步允许根据不同区域自适应地调整成本体积构建的粒度,从而在成本和效果之间实现更好的权衡。

01.稀疏的Cost Volume构建

  为了提高效率,我们主要关注探索T帧中前景物体的立体匹配行为,这打破了传统的密集Cost Volume 构建范式。因此,我们将这样的过程改写为如下介绍的稀疏格式。我们使用T帧和(T-1)帧之间的单应变换对其进行变换以获取对应的投影位置,对于不同深度假设的每个像素,我们在(T-1)帧中建立其对应的像素,然后组合它们的特征生成稀疏Cost Volume。随后,使用三维稀疏卷积计算匹配分数。

以坐标(u, u) 以及对应的深度假设 dh为例,对第T帧和第T-1帧之间的 homography warping来获得相应投影:
在这里插入图片描述
式中,K为摄像机的固有参数,MT→T-1 为从第T 到 T-1帧的变换矩阵。按照上述过程,对于每一个具有不同深度假设的目标像素,我们建立其与(T-1)帧像素的对应关系,然后与特征组合,生成稀疏代Cost Volume V E RNpxNaxCf
,其中Np和Nd 分别为前景像素个数和深度假设个数,Cf 为特征通道维数。随后,使用3D稀疏卷积计算匹配分数。

02.迭代立体匹配

  在第一轮中,为了有效识别视觉细节丰富的物体,我们为前景物体中的所有像素均匀采样稀疏深度假设。然后构建稀疏Cost Volume,计算匹配分数。我们沿像素深度通道计算均值和标准差。当均值和标准差很小时,深度假设已经被成功验证来找到最佳匹配。相反,较大的均值和标准差,意味着多个深度假设被优先考虑,因此应该进一步得到增强。因此,我们将匹配分数标准差小于预定义阈值的像素视为满意的结果,并在下一迭代中对其进行过滤。对于剩余的像素,它们的均值和标准差可以提供更准确的搜索范围,这有助于为下一迭代更有效地提出深度假设。根据均值和标准差,我们更新下一迭代的深度采样范围。

  我们进一步为剩余像素均匀采样多个深度假设。深度假设将在下一迭代中用于构建稀疏Cost Volume 和类似的计算均值和标准差。由于不同迭代的深度假设数量不同,我们采用插值操作填充所有预定义的深度bin进行对齐。如图4所示,所提出的自增强学习策略可以在早期迭代中区分主要清晰的物体区域,从而节省资源强化模糊的物体。

在这里插入图片描述

SBL中过滤和剩余patch的可视化。灰色斑块表示背景区域,蓝色和橙色斑块分别表示过滤后的斑块和剩余的斑块。我们使用红色和蓝色虚线圆圈分别突出显示模糊和清晰的对象

3.4 BEV特征处理器

  通过求和从SPM和SBL预测的单目和立体深度,可以得到用于从多相机图像渲染BEV特征的最终深度预测。之后,BEV特征将被输入到常规的检测头进行最终的三维检测。

四、实验效果

方法在nuScenes数据集上进行了大量的实验,与最先进方法的对比(验证集和测试集):
在这里插入图片描述
在这里插入图片描述

基线方法和IA-BEV之间的定性结果对比:
在这里插入图片描述

总结

提示:这里对文章进行总结:

  

  








d \sqrt{d} d 1 0.24 \frac {1}{0.24} 0.241 x ˉ \bar{x} xˉ x ^ \hat{x} x^ x ~ \tilde{x} x~ ϵ \epsilon ϵ

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

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

相关文章

Linux:查询当前进程或线程的资源使用情况

目录 一、/proc/[PID]/下的各个文件1、proc简介2、/proc/[PID]/详解 二、通过Linux API获取当前进程或线程的资源使用情况1、getrusage2、sysinfo3、times 在工作中,我们排除app出现的一些性能/资源问题时,通常要先知道当前app的资源使用情况&#xff0c…

一种改进的平衡生成对抗网络用于视网膜血管分割

A Refined Equilibrium Generative Adversarial Network for Retinal Vessel Segmentation 一种改进的平衡生成对抗网络用于视网膜血管分割背景贡献实验方法Symmetric equilibrium architecture(对称均衡架构)Multi-scale features refine block&#xf…

40G多模光模块QSFP-40G-SR4优势及应用领域介绍

QSFP-40G-SR4光模块是一种常用的光纤传输解决方案。传输速率40G,SR代表短距离多模光纤(Short Range Multimode Fiber),4表示有四个光纤通道。这种光模块采用MPO/MTP多模光纤连接器来实现高速传输,传输距离可以达到300米…

如何将语音版大模型AI接入自己的项目里(语音ChatGPT)

如何将语音版大模型AI接入自己的项目里语音ChatGPT 一、语音版大模型AI二、使用步骤1、接口2、请求参数3、请求参数示例4、接口 返回示例5、智能生成API代码 三、 如何获取appKey和uid1、申请appKey:2、获取appKey和uid 四、重要说明 一、语音版大模型AI 基于阿里通义千问、百…

WPF 消息日志打印帮助类:HandyControl+NLog+彩色控制台打印

文章目录 前言相关文章Nlog配置HandyControl配置简单使用显示效果文本内容 前言 我将简单的HandyControl的消息打印系统和Nlog搭配使用,简化我们的代码书写 相关文章 .NET 控制台NLog 使用 WPF-UI HandyControl 控件简单实战 C#更改控制台文字输出颜色 Nlog配置 …

Python中的用户交互函数详解,提升用户体验!

更多Python学习内容:ipengtao.com 大家好,我是彭涛,今天为大家分享 Python中的用户交互函数详解,提升用户体验!全文4200字,阅读大约12分钟 用户进行交互的Python应用程序,有许多常用的用户交互函…

linux开放tomcat 8080端口

1、查看8080是否开放 firewall-cmd --query-port8080/tcp查看已开启的端口 firewall-cmd --list-ports开启防火墙 systemctl start firewalld2、永久开放8080端口 firewall-cmd --zonepublic --add-port8080/tcp --permanent3、重加载(重启防火墙) …

设计模式-依赖注入模式

设计模式专栏 模式介绍模式特点应用场景依赖注入和控制反转的区别代码示例Java实现依赖注入模式Python实现依赖注入模式 依赖注入模式在spring中的应用 模式介绍 依赖注入(Dependency Injection,简称DI)是一种面向对象编程中的设计模式&…

基于SSM的教育管理系统

基于SSM的教育管理系统 一、系统介绍二、功能展示1.项目内容2.项目骨架3.管理员登录4.系统界面5.注册6.系统管理7.课程管理8.添加科目9.学员信息 四、其它1.其他系统实现五.获取源码 一、系统介绍 项目名称:基于ssm的教育管理系统 当前版本:V1.0.0版本…

android——自定义TextView

效果展示&#xff1a; 代码解析&#xff1a; 1、首先设置自定义属性&#xff08;res/values下新建一个attrs.xml文件&#xff09; <?xml version"1.0" encoding"utf-8"?> <resources><!-- name 自定义view的名字 CustomTextView--&…

flask文件夹列表改进版--Bug追踪

把当前文件夹下的所有文件夹和文件列出来&#xff0c;允许点击返回上层目录&#xff0c;允许点击文件夹进入下级目录并显示此文件夹内容 允许点击文件进行下载 from flask import Flask, render_template, send_file, request, redirect, url_for import osapp Flask(__name_…

51单片机(STC8)-- 串口配置及串口重定向(printf)

文章目录 STC8串口概述串口寄存器配置串口1控制寄存器SCON串口1数据寄存器SBUF串口1模式 1工作方式串口1波特率计算方式 串口注意事项串口1通信demo串口重定向 STC8串口概述 由下图可知STC8H3K64S4带有4个4个串行通信接口&#xff0c;芯片名后两位S所带的数字即代表这款芯片带…

Systemctl | 系统服务管理利器

功能介绍 systemctl 是用于管理系统服务的命令行工具&#xff0c;常用于 Linux 系统中。提供了对系统服务&#xff08;包括启动、停止、重启、启用、禁用等&#xff09;的控制&#xff0c;以及对系统单元&#xff08;units&#xff09;的操作。 语法结构 systemctl 的基本语…

burpsuite的安装与介绍

安装(挑一个你喜欢的版本安装就行) 编程环境安装指南:Java、Python 和 Burp Suite抓包工具_burpsuite和java-CSDN博客 简介 Burp Suite是一个用于攻击Web应用程序的集成平台。它集成了多种渗透测试组件,能够帮助我们更好地完成对Web应用的渗透测试和攻击,无论是自动化还…

记一次Mac端mysql重置密码

在执行mysql命令的时候&#xff0c;报如下的错误&#xff0c;表示不支持mysql命令&#xff1a; zsh: command not found: mysql 1. 先查看mysql服务是否存在 在系统偏好设置中查看&#xff1a; 2. 发现mysql服务已经在运行&#xff0c;可能因为/usr/local/bin目录下缺失mysq…

信号处理设计模式

问题 如何编写信号安全的应用程序&#xff1f; Linux 应用程序安全性讨论 场景一&#xff1a;不需要处理信号 应用程序实现单一功能&#xff0c;不需要关注信号 如&#xff1a;数据处理程序&#xff0c;文件加密程序&#xff0c;科学计算程序 场景二&#xff1a;需要处理信…

Xshell连接不上本地虚拟机中的linux处理

0、连接不上虚拟机的原因 1、本地电脑未启用VMware网络。 2、连接协议选择错误。 3、防火墙屏蔽IP。 4、虚拟机网络连接模式不是桥接模式。 1、查看本地是否启用VMware的网络 2、连接协议选择 我们在新建会话时&#xff0c;可选的协议有FTP和SFTP两种&#xff0c;其中FTP采用21…

uniapp 手持弹幕全端实现(微信/QQ小程序 + APP)

见下述效果图,本文话少纯干货 代码实现 <template><view class="main"

【RocketMQ笔记02】安装RocketMQ可视化工具rocketmq-dashboard

这篇文章&#xff0c;主要介绍如何安装RocketMQ可视化工具rocketmq-dashboard。 目录 一、RocketMQ可视化界面 1.1、下载rocketmq-dashboard 1.2、修改配置文件 1.3、打包工程 1.4、启动rocketmq-dashboard 一、RocketMQ可视化界面 1.1、下载rocketmq-dashboard rocketm…

NET中使用Identity+CodeFirst+Jwt实现登录、鉴权

目录 前言 一、创建上下文类 1.自定义MyContext上下文类继承IdentityDbContext 2.在Program中添加AddDbContext服务 二、使用Migration数据迁移 1.在控制台中 依次使用add-migration 、updatebase 命令 2.如何修改表名 3.如何自定义字段 三、使用Identity实现登录、修改密码 …