CVPR2023 | 3D Data Augmentation for Driving Scenes on Camera

3D Data Augmentation for Driving Scenes on Camera

摄像机驾驶场景的 3D 数据增强

摘要翻译

驾驶场景极其多样和复杂,仅靠人力不可能收集到所有情况。虽然数据扩增是丰富训练数据的有效技术,但自动驾驶应用中现有的摄像头数据扩增方法仅限于二维图像平面,在三维真实世界场景中可能无法最佳地增加数据多样性。为此,我们提出了一种名为 Drive-3DAug 的三维数据增强方法,旨在增强三维空间中摄像头拍摄的驾驶场景。我们首先利用神经辐射场(NeRF)重建背景和前景物体的三维模型。然后,将位置和方向经过调整的三维物体放置在预定义的背景有效区域,就可以获得增强的驾驶场景。因此,可以有效地扩大训练数据库。然而,三维物体建模受限于图像质量和有限的视角。为了克服这些问题,我们对原始 NeRF 进行了修改,引入了几何矫正损失和对称感知训练策略。我们在 Waymo 和 nuScences 数据集上评估了我们的方法在仅摄像头的单目 3D 检测任务中的应用。在 Waymo 和 nuScences 数据集上,我们提出的数据增强方法分别提高了 1.7% 和 1.4% 的检测准确率。此外,构建的三维模型可作为数字驾驶资产,并可用于不同的检测器或其他三维感知任务。

论文总结

论文《3D Data Augmentation for Driving Scenes on Camera》提出了一种名为Drive-3DAug的3D数据增强方法,用于丰富自动驾驶应用中的训练数据。该方法利用神经辐射场(NeRF)重建背景和前景对象的3D模型,然后将这些对象放置在背景的预定义有效区域中,以创建增强的驾驶场景。作者通过引入几何校正损失和对称感知训练策略来解决3D对象建模的挑战。所提出的方法在Waymo和nuScenes数据集上进行了摄像头仅用单目3D检测的评估,显示出在检测准确性上的显著提升。构建的3D模型也可以用于不同的检测器或其他3D感知任务。

主要要点和关键论点包括

  • 驾驶场景多样化,手动收集所有案例是不可能的。
  • 自动驾驶中现有的针对摄像头数据的数据增强方法限于2D图像平面。
  • 提出的Drive-3DAug方法使用NeRF重建背景和前景对象的3D模型,在3D空间中增强驾驶场景。
  • 该方法通过引入几何校正损失和对称感知训练策略,改进了训练数据库并克服了3D对象建模的限制。
  • Drive-3DAug在Waymo和nuScenes数据集上的摄像头仅用单目3D检测中实现了检测准确性的提升。
  • 构建的3D模型可以用于不同的检测器或其他3D感知任务。

架构

图 2. 用于三维数据增强的 Drive-3DAug 概览。驾驶场景被分解为多个背景和物体。对于每个背景和物体,我们使用多帧视图,通过基于体素的 NeRF [41],分别对其进行重建。为了进一步提高重建质量,我们在 NeRF 中引入了对称约束、几何矫正和深度监控。我们利用训练有素的三维模型在三维空间中编辑场景,并通过渲染组成的新场景生成图像,以完成以下三维感知任务。

架构说明

以下是该架构说明的具体含义:

  1. 驾驶场景分解:Drive-3DAug首先将驾驶场景分解为多个背景和对象。这意味着场景中的每个元素(如车辆、行人、道路、建筑等)被单独识别和处理,以便独立重建。

  2. 基于体素的NeRF重建:对于每个背景和对象,Drive-3DAug使用多帧视图通过基于体素的NeRF(神经辐射场)技术分别进行重建。这种方法允许从一组稀疏的2D图像中重建出每个元素的3D模型。

  3. 重建质量改进:为了进一步提高重建质量,Drive-3DAug引入了对称性约束、几何校正和深度监督。这些技术帮助确保重建的3D模型在形状、结构和深度上更加准确和真实。

    • 对称性约束:假设对象在某些方向上是对称的,以帮助改进形状的重建。
    • 几何校正:调整重建过程,以纠正可能的几何畸变,确保3D模型的正确比例和定位。
    • 深度监督:使用深度信息作为额外的监督信号,以提高重建的深度准确性。
  4. 3D空间中的场景编辑:通过对训练好的3D模型进行操作,Drive-3DAug在3D空间中编辑场景。这可能包括移动、旋转或添加新的对象到场景中,以创造新的训练数据。

  5. 新场景的图像生成:编辑后的新场景通过渲染生成2D图像,这些图像可用于后续的3D感知任务。渲染过程考虑了新组合场景的光照、视角和其他视觉效果,以生成逼真的图像。

总之,Drive-3DAug为驾驶场景的3D数据增强提供了一个全面的框架,通过分解、独立重建和编辑场景中的各个元素,并引入先进的技术改进重建质量,最终生成用于3D感知任务的高质量训练数据。

Drive-3DAug中的NeRF应用

在Drive-3DAug中,使用NeRF来重建背景和前景对象的3D模型具体涉及以下几个步骤:

  1. 3D场景重建:首先,使用NeRF技术从自动驾驶场景的2D图像中重建整个场景的3D模型。这包括场景中的静态背景以及动态的前景对象。

  2. 背景和前景分离:通过适当的方法将重建的3D场景中的背景和前景对象分离开来。这可能涉及到使用额外的信息或技术来识别和区分场景中的不同组成部分。

  3. 数据增强:一旦背景和前景对象被成功重建和分离,就可以在3D空间中对它们进行各种操作,如移动前景对象、改变它们的位置或向场景中添加新的对象。这样做可以生成新的、多样化的训练数据,增强自动驾驶系统的3D感知能力。

        通过这种方式,Drive-3DAug能够在3D空间中灵活地增强驾驶场景,提供更丰富和多样化的数据,以训练和改进自动驾驶系统的性能。这种基于NeRF的3D数据增强方法,相比传统的基于2D图像的增强方法,能够更好地模拟和理解复杂的3D场景和对象间的相互作用,从而提高3D目标检测和场景理解的准确性。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[蓝桥杯]-最大的通过数-CPP-二分查找、前缀和

目录 一、题目描述: 二、整体思路: 三、代码: 一、题目描述: 二、整体思路: 首先要知道不是他们同时选择序号一样的关卡通关,而是两人同时进行两个入口闯关。就是说两条通道存在相同关卡编号的的关卡被通…

PlantUML Integration 编写短信服务类图

PlantUML Integration 写一个类图,主要功能为 1、编写一个serviceSms短信服务类; 2、需要用到短信的地方统一调用基建层的服务即可; 3、可以随意切换、增加短信厂商,不需要更改场景代码,只需要更改application.yml 里面…

SQLiteC/C++接口详细介绍之sqlite3类(七)

上一篇:SQLiteC/C接口详细介绍之sqlite3类(六) 下一篇: SQLiteC/C接口详细介绍之sqlite3类(八)(未发表) 22.sqlite3_create_collation、sqlite3_create_collation16和sqlite3_creat…

JavaEE--小Demo

目录 下载包 配置 修改文件 pom.xml application.properties 创建文件 HelloApi.java GreetingController.java Greeting.java DemoApplication.java 运行包 运行命令 mvn package cd target dir java -jar demo-0.0.1-SNAPSHOT.jar 浏览器测试结果 下载包 …

网络安全专题第一篇:网络安全的来源

目录 一.网络安全的由来。 二.网络安全漏洞在哪里 三.网络安全规范操作 1.从业务入手 2.从安全体系入手 3.从管理入手 四.可能遇到的网络攻击 1.DDOS 2.勒索攻击 3.单包攻击 4.员工删库跑路 5.熊猫烧香 五.应对方法 1.清洗 2.提高服务器的承受能力 3.防火墙 4…

证券公司如何应对大数据调度系统的高负载挑战

​在金融行业,数据处理和任务调度是日常运营的重要组成部分。随着业务量的激增,日益增长的任务量和复杂的资源管理需求,要求该系统不仅要稳如磐石,还需灵活高效。 本文将探讨某证券公司在应对这些挑战时所采用的策略,并…

tomcat的webapp文件中发布web应用

一、Web服务器 1.什么是Web 概述: web(World Wide Web)即全球广域网,也称为万维网,它是一种基于超文本和HTTP的、全球性的、动态交百的、跨平台的分布式图形信息系统。是建立在internet上的一种网络服务,为浏览者在Intern…

笔记80:在 Ubuntu 中安装显卡驱动

一、关于显卡的两个基本概念 -- 显卡驱动 / 显卡BIOS (1)什么是BIOS BIOS的作用:BIOS是电脑上电开机时加载进内存的第一个程序,CPU会执行他进行系统自检,然后通过其中的指令加载操作系统;例如主板BIOS&am…

react 项目如何暴露 webpack配置文件

首先创建一个项目: // 全局安装 create-react-app 脚手架 npm install create-react-app -g// 创建项目 create-react-app demo 创建完成后,进到项目根目录,执行以下命令: npm run eject 出现以下命令: 选择yes即可…

【Unity】Transform、Rigidbody、CharacterController移动

前言 在使用Unity开发的时候,移动是最最基础的一个需求,我来给大家简单的讲一下Unity中的几种常见的移动方法。 1.Transform移动 Transform移动就是修改物体的position ①修改位置 这里要注意:坐标分为世界坐标和本地坐标 //将物体的世界坐…

import gdal 报错

1.下载gdal https://www.lfd.uci.edu/~gohlke/pythonlibs/#gdal 2.安装正确版本 (1)查看python版本 python -v我的版本Python 3.7.9 建议下载 GDAL-3.4.2-cp37-cp37m-win_amd64.whl (2)放到Scripts文件夹下 执行 pip install GD…

Unity Timeline学习笔记(2) - PlayableTrack

PlayableTrack 是可自定义播放的轨道。我们可以通过进入轨道后调用自己的函数方法,使用起来也是比较顺手的。 添加轨道 我们点击加号添加 这样就有一个空轨道了,然后我们创建两个测试脚本。 添加脚本 分别是Playable Behaviour和PlayableAsset脚本。…

吴恩达深度学习笔记:神经网络的编程基础2.9-2.14

目录 第一门课:神经网络和深度学习 (Neural Networks and Deep Learning)第二周:神经网络的编程基础 (Basics of Neural Network programming)2.9 逻辑回归中的梯度下降(Logistic Regression Gradient Descent) 第一门课&#xff…

vue 基于elementUI/antd-vue, h函数实现message中嵌套链接跳转到指定路由 (h函数点击事件的写法)

效果如图: 点击message 组件中的 工单管理, 跳转到工单管理页面。 以下是基于vue3 antd-vue 代码如下: import { message } from ant-design-vue; import { h, reactive, ref, watch } from vue; import { useRouter } from vue-router; c…

蓝桥杯单片机快速开发笔记——定时器

一、基本原理: 定时器的作用: 定时器是一种用于产生精确时间延时的模块,可以在程序中用来进行时间控制、计时等操作。 定时器的工作原理: 51单片机的定时器是通过内部的计数器来实现的,计数器每隔一个固定的时间周期自…

C#,数值计算,矩阵相乘的斯特拉森(Strassen’s Matrix Multiplication)分治算法与源代码

Volker Strassen 1 矩阵乘法 矩阵乘法是机器学习中最基本的运算之一,对其进行优化是多种优化的关键。通常,将两个大小为N X N的矩阵相乘需要N^3次运算。从那以后,我们在更好、更聪明的矩阵乘法算法方面取得了长足的进步。沃尔克斯特拉森于1969年首次发表了他的算法。这是第…

速卖通安全测评补单技术提升运营安全性

对于一个新品来说,最大的问题就是评论。没有评论,你的广告就不能打的很靠前,那样你的转化率就会非常低,数据也很差。新品运气不好的来两个一星差评,链接可能就此废掉,做不上去了。所以虽然平台管的非常的严…

从根到叶:深度理解哈希表

​​​​​​​ 一.哈希表的概念 关于查找元素时: 在顺序结构以及平衡树 中,元素关键码与其存储位置之间没有对应的关系,因此在 查找一个元素时,必须要经过关键 码的多次比较 。 顺序查找时间复杂度为 O(N) ,平衡树中…

MySQL 系统变量查看与设置(System Variables Configuration)

MySQL中有大量的系统变量控制服务器的行为,大部分的系统变量是不需要我们调整的,保持默认即可。但为了获得更高的性能和稳定性,有时需要适当对部分变量进行调整,本文总结了MySQL中系统变量的查看与设置方法。 目录 一、变量的类型…

学点Java打小工——Day2Day3一点作业

1 猜数字(10次机会) 随机生成[1,1000]的一个数,输入你猜的数程序会给出反馈,直到猜对或次数用尽(10次)。 //猜数字 10次机会Testpublic void guessNumber() {Random random new Random();// [0, 1000) 1// [1, 1000]int num ra…