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

NeurIPS 2023 | AD-PT:首个大规模点云自动驾驶预训练方案

概要

自动驾驶领域的一个长期愿景是,感知模型能够从大规模点云数据集中学习获得统一的表征,从而在不同任务或基准数据集中取得令人满意的结果。之前自监督预训练的工作遵循的范式是,在同一基准数据集上进行预训练和微调,这很难实现预训练权重的性能可扩展性和跨数据集应用。在本文中,作者提出要解决预训练网络的泛化性问题,需要从数据层面和算法层面分别考虑。为此,作者将点云预训练任务表述为一个半监督问题,利用少量有标签和大量无标签的的点云数据来生成统一的骨干表征。首先,作者通过类别感知的伪标签生成器基于多样性的数据处理器构建了一个具有多样化数据分布的大规模预训练点云数据集;同时,将预训练和下游微调阶段关注类别不同的问题看做一个开集问题并提出了未知实例学习头,使网络从构建的多样化的预训练数据集中学习可泛化的表征。

作者利用AD-PT预训练好的权重初始化多种检测器包括PV-RCNN++,PV-RCNN,CenterPoint,SECOND,并在多个数据集(Waymo,nuScenes,KITTI)上进行微调。实验结果表明,AD-PT解耦了与自动驾驶的预训练过程和下游微调任务,在多个下游数据集上都取得了明显的性能提升。

image.png

论文题目:
AD-PT: Autonomous Driving Pre-Training with Large-scale Point Cloud Dataset
论文地址:
https://arxiv.org/abs/2306.00612
代码地址:
https://github.com/PJLab-ADG/3DTrans

动机

虽然3D检测器可以帮助自动驾驶汽车识别周围环境,但现有的基准模型很难推广到新的域(如不同的传感器设置或未见过的城市)。自动驾驶领域的长期愿景是训练出场景通用的预训练模型,该模型可泛化到不同的下游数据集。为实现这一目标,研究人员开始研究自监督预训练(SS-PT)。

但是,如图所示,应该指出的是,上述 SS-PT 与所需的自动驾驶预训练(AD-PT)范式之间存在重要区别。SS-PT 旨在从单个无标注数据集中学习,为同一数据集生成合适的表征。而 AD-PT 则希望从尽可能多并有多样性的数据中学习统一的表征,以便将学习到的特征提取能力更好地转移到各种下游数据集中。因此,SS-PT 通常只有在测试数据和预训练数据取样于同一数据集时才会表现出色,而 AD-PT 在不同数据集上具有更好的泛化性能。并且随着预训练数据集数量的增加,性能也会不断提高。

image.png
图1:不同训练范式的对比

因此,本文的重点是实现 AD 预训练,这种预训练可以很容易地应用于不同的基线模型和基准数据集。通过大量实验,作者认为要实现真正的 AD-PT,需要解决两个关键问题:1)如何建立一个统一的、数据分布多样的 AD 数据集;以及 2) 如何通过设计有效的预训练方法,从这样一个多样化的数据集中学习可泛化的表征

基于上述分析,为了实现 AD-PT 模式,作者提出了基于多样性的预训练数据准备程序和未知感知实例学习的预训练过程,以加强提取特征的代表性。相比于过去的预训练方法,AD-PT提供了一种更加统一的方法,即一旦生成预训练的权重,就可以直接加载到多个感知基线和基准中。

image.png
图2 AD-PT框架图

AD-PT框架如图2所示,主要包括大规模点云数据集准备程序和以自动驾驶为重点的统一表示学习程序。作者首先设计了一个类感知伪标签生成器来生成伪标签。之后,为了获得更多样化的样本,提出了一种基于多样性的预训练数据处理器。最后,为了在这些伪标签数据上进行预训练,以学习它们的通用表征,作者设计了一种带有一致性损失的未知感知实例学习方法。

方法

大规模点云数据集准备

1. 类别感知伪标签生成器

  • 类别感知伪标签生成。作者发现,不同基线模型对不同类别具有不同的感知能力。例如,基于中心的倾向于更好地检测小范围目标(如行人),而基于锚点的方法则在其他类别中表现更好。最终,作者利用不同模型标注不同类别。

  • 半监督学习。作者进一步利用半监督学习方法来提高伪标签的准确性。在文章中,作者使用 MeanTeacher 来进一步提高分类检测能力。最终,在 ONCE 验证集上的准确率大大超越了Benchmark上的记录。

  • 伪标签阈值。为避免标注大量假阳性实例,作者设置了一个相对较高的阈值。这样也带了了一个问题,即与 ONCE 标注数据相比,一些预测分数相对较低的困难样本没有被标注。

最终的性能如下表所示:

image.png

2. 基于多样性的预训练数据处理器

  • 数据线束多样化。为了获得线束多样化的数据,作者使用range image作为中间变量,对点云数据进行上采样和下采样。具体来说,给定一个有 n 个线束的激光雷达点云(如 ONCE 数据集有 40 个线束),每个环有 m 个点,range image 可通过下式求得:

image.png

  • 具有更多 RoI 多样性: 不同地点采集的物体大小的分布不一致。为了克服这一问题,作者通过随机重缩放每个物体的长度、宽度和高度来获得多样性更强的实例帮助预训练。

在大规模点云数据集下学习统一表征

通过使用上述方法获得统一的预训练数据集,可以提高场景级和实例级的多样性。然而,伪标注数据集只有有限的类别标签,此外,如之前所述,为了获得准确的伪标注,作者设置了较高的置信度阈值,这可能会不可避免地忽略一些较难的实例。这些被忽略的实例在预训练数据集中可能并不重要,但在下游数据集中可能被视为感兴趣的类别(例如,nuScenes 数据集中的 “barrier”),在预训练过程中会被抑制。

为了缓解这一问题,作者将预训练视为一个开集学习问题,将对象性得分相对较高的背景区域视为未知实例。这些实例在预训练阶段被忽略,但可能对下游任务至关重要。对象性得分是从区域建议网络(RPN)中获得的。然而,由于这些未知实例包含大量的背景区域,因此在预训练阶段直接将这些实例作为前景实例处理是不合适的,会导致主干网络激活大量的背景区域。

为了克服这一问题,作者利用双分支头作为委员会来发现哪些区域可以有效地作为前景实例。具体来说,通过对双分支对象性分数大于一定阈值的bounding boxes进行基于距离的匹配,并将一致性强的区域在训练过程中当做前景。双分支一致性特征可以由下面公式获得:

实验

实验设置

  • 预训练数据集。我们利用ONCE数据集,ONCE由大量无标注数据和少量代标注数据组成,包含许多场景和天气条件。在进行预训练时,我们将Car,Pedestrian和Cyclist合并为一个统一的类别。我们的主要结果是基于 ONCE 的100K数据进行,并使用更大量的数据(500K,1M)来验证预训练的可扩展性。

  • 微调数据集。我们在Waymo,nuScenes和KITTI上进行了少量数据以及全量数据的实验。

实验结果

这里只展示了主要实验结果,更多结果请参考我们的论文。

image.png
Waymo上的实验结果

image.png
在nuScenes上的实验结果

image.png
在KITTI上的结果

image.png
增加预训练数据量的结果

总结

在这项工作中,作者提出了 AD-PT 范式,旨在在统一的数据集上进行预训练,训练出泛化性强且表征能力强的骨干网络,从而提升在多个下游数据集上的性能。通过所提出的数据准备流程以及未知实例学习头,分别从数据集算法层面提升模型的泛化能力。在多个基准数据集上的实验表明,AD-PT的预训练权重可以加载到多种检测器中,并且取得性能的提升。


  关于TechBeat人工智能社区

TechBeat(www.techbeat.net)隶属于将门创投,是一个荟聚全球华人AI精英的成长社区。

我们希望为AI人才打造更专业的服务和体验,加速并陪伴其学习成长。

期待这里可以成为你学习AI前沿知识的高地,分享自己最新工作的沃土,在AI进阶之路上的升级打怪的根据地!

更多详细介绍>>TechBeat,一个荟聚全球华人AI精英的学习成长社区

相关文章:

NeurIPS 2023 | AD-PT:首个大规模点云自动驾驶预训练方案

概要 自动驾驶领域的一个长期愿景是,感知模型能够从大规模点云数据集中学习获得统一的表征,从而在不同任务或基准数据集中取得令人满意的结果。之前自监督预训练的工作遵循的范式是,在同一基准数据集上进行预训练和微调,这很难实…...

设计模式-结构型模式

文章目录 一、代理模式1.静态代理2.JDK动态代理3.CGLib动态代理4.三种代理对比 二、适配器模式1.类适配器模式2.对象适配器模式 三、装饰者模式静态代理和装饰者的区别 四、桥接模式五、外观模式六、组合模式七、享元模式 结构性模式描述如何将类或对象按某种布局组成更大的结构…...

BUUCTF学习(7): 随便注,固网杯

1、介绍 2、解题 11;show tables;# select * from 1919810931114514 concat(sel,ect from 1919810931114514 ) PEREPARE y from sql; ECCUTE y; -1; sEt sql CONCAt(se,lect * from 1919810931114514;); prePare stmt from sql; EXECUTE stmt; # 结束...

【文末福利】巧用Chat GPT快速提升职场能力:数据分析与新媒体运营

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。关…...

院内导航系统厂商分析

随着医疗技术的不断发展和医院规模的不断扩大,院内导航系统成为了现代化医院不可或缺的一部分。患者就医时,一个高效便捷的导航系统可以帮助他们快速找到目标科室,同时也能提高医院的整体运营效率。本文将推荐五家在院内导航市场具有竞争力的…...

MES系统作业调度

一、MES系统作业调度的概念和功能 作业调度是指在制造过程中,根据生产计划和实际情况,合理安排和调度各项任务和资源,以达到最佳的生产效率和资源利用率。MES系统作业调度功能涉及以下方面: 1. 任务计划与分配:MES系…...

C++入门-引用

C入门-引用 前置知识点:函数栈帧的复用前置知识点:类型转换时产生的临时变量1.含义2.代码形式3.引用的价值1.传参数传参效率测试补充:C与Java中引用的区别 2.引用做返回值(前置知识:栈帧复用)1.传值返回2.传引用返回传引用返回并用引用接收3.静态变量传引用返回4.引用做返回值真…...

问题:Qt中软件移植到笔记本中界面出现塌缩

这是由于软件之前运行的设备DPI较低,移植到笔记本中显示设备DPI较高,导致窗体显示进行了缩放。 解决方案,在main.cpp中加入以下代码: if(QT_VERSION>QT_VERSION_CHECK(5,6,0)) QCoreApplication::setAttribute(Qt::AA_EnableHi…...

NDK编译脚本:Android.mk or CMakeLists.txt

本文来自于:https://github.com/xufuji456/FFmpegAndroid/blob/master/doc/NDK_compile_shell.md 前言 Android NDK以前默认使用Android.mk与Application.mk进行构建,但是在Android Studio2.2之后推荐使用CMake进行编译。 CMake是跨平台编译工具&#…...

低代码提速应用开发

低代码介绍 低代码平台是指一种能够帮助企业快速交付业务应用的平台。自2000年以来,低代码市场一直充斥着40大大小小的各种玩家,比如国外的Appian、K2、Pega Systems、Salesforce和Ultimus,国内的H3 BPM。 2015年以后,这个市场更是…...

Hi3516DV500 SVP_NNN添加opencv库记录

默认没有带opencv库,但是实际项目中需要用到opencv库,因此添加一下此库; 1:编译opencv源码,这里具体可以参考 海思Hi3516移植opencv以及错误调试_海思hi3516摄像头开发-CSDN博客 2:在工程的根目录下新建…...

BIO实战、NIO编程与直接内存、零拷贝深入剖析

原生 JDK 网络编程 BIO BIO,意为 Blocking I/O,即阻塞的 I/O。   BIO 基本上就是我们上面所说的生活场景的朴素实现。在 BIO 中类 ServerSocket 负责绑定 IP 地址,启动监听端口,等待客户连接;客户端 Socket 类的实例…...

计网第六章(应用层)(四)(电子邮件)

电子邮件采用客户/服务器的方式。 1、三个构成 电子邮件系统的三个组成构件:用户代理、邮件服务器以及电子邮件所需的协议。 用户代理是用户与电子邮件系统的接口,又称为电子邮件客户端软件。 邮件服务器是电子邮件系统的基础设施。因特网上所有的服…...

Lua篇笔记

. 和 : 的区别 lua的面向对象 Lua数据类型 nil number bool table string userdata thread function Lua-字符串连接 C#与Lua交互过程及原理 Lua中的闭包 常见的一些Lua功能 热重载: function reload_module(module_name) local old_module _G[module_name] --取…...

一种更具破坏力的DDoS放大攻击新模式

近日,内容分发网络(CDN)运营商Akamai表示,一种使网站快速瘫痪的DDoS放大攻击新方法正在被不法分子所利用。这种方法是通过控制数量巨大的中间设备(middlebox,主要是指配置不当的服务器)&#xf…...

WordPress 常规设置页面调用媒体中心上传图片插入URL(新版可用)

首先,我们需要在主题或插件文件夹中创建一个 JavaScript 文件(如:media-uploader.js),该文件中包含如下代码。 /*** 媒体中心上传 js **/ jQuery(document).ready(function($){var mediaUploader;$(#upload_image_but…...

Elasticsearch实现检索词自动补全(检索词补全,自动纠错,拼音补全,繁简转换) 包含demo

Elasticsearch实现检索词自动补全 自动补全定义映射字段建立索引测试自动补全 自动纠错查询语句查询结果 拼音补全与繁简转换安装 elasticsearch-analysis-pinyin 插件定义索引与映射建立拼音自动补全索引测试拼音自动补全测试繁简转换自动补全 代码实现demo结构demo获取 自动补…...

LaunchView/启动页 的实现

1. 创建启动画板,LaunchScreen.storyboard 添加组件如图: 2. 项目中设置只支持竖屏,添加启动画板,如图: 3. 创建启动画面动画视图,LaunchView.swift import SwiftUI/// 启动视图 struct LaunchView: View {/// 字符串转换为字符串…...

windows安装npm教程

在安装和使用NPM之前,我们需要先了解一下,NPM 是什么,能干啥? 一、NPM介绍 NPM(Node Package Manager)是一个用于管理和共享JavaScript代码包的工具。它是Node.js生态系统的一部分,广泛用于构…...

网络端口验证

网络端口连通性验证 1、背景2、目标3、环境4、部署4.1、准备工作4.2、安装4.3、场景测试 1、背景 在日常运维过程中经常会遇到以下两种场景: 1、程序业务端口的开具及验证 2、业务程序访问异常网络排障 2、目标 1、验证端口的正确开具 2、网络策略的连通性 3、环…...

MongoDB 索引和常用命令

一、基本常用命令 1.1 案例需求 存放文章评论的数据存放到 MongoDB 中,数据结构参考如下,其中数据库为 articledb, 专栏文章评论 comment 字段名称 字段含义 字段类型 备注 _id ID ObjectId或String Mongo的主键的字段 articlei…...

【超详细】win10安装docker

win10安装docker 因为要在win10复现一个CVE漏洞,需要用到docker所以特地自己亲自安装了一下,其实在win10上安装docker与在Linux上面的原理一致,都是将docker安装在虚拟机里,不同的是win10是安装在Hyper-V虚拟机上的,需…...

JVM调优(一)

什么时候会有内存泄漏,怎么排查? 答: 首先内存泄漏是堆中的一些对象不会再被使用了,但是无法被垃圾收集器回收,如果不进行处理,最终会导致抛出 java.lang.OutOfMemoryError 异常。 内存泄露: …...

Parallels Desktop 19中文-- PD19最新安装

Parallels Desktop 19可以让我们在Mac电脑上运行Windows和其他操作系统,而无需重启计算机。这款软件的稳定性较高,能够在Mac上同时运行多个操作系统,如Windows、Linux等,而无需重启电脑。它可以让用户无缝地在不同操作系统之间切换…...

【c++】向webrtc学比较1:AheadOf、IsNewerTimestamp

webrtc源码分析-rtp序列号新旧比较 大神文章分析的非常到位。大神分析:AheadOrAt(a, b)是判断a是否比b新的核心,其原理是这样的:rfc1982规定了序列号递增间隔不能超过取值范围的1/2(这是自己理解的),那么要判断a是否比b新,只要判断b到a的递增是否在1/2即可,递增超过1/2,…...

华为云云耀云服务器L实例评测|企业项目最佳实践之docker部署及应用(七)

华为云云耀云服务器L实例评测|企业项目最佳实践系列: 华为云云耀云服务器L实例评测|企业项目最佳实践之云服务器介绍(一) 华为云云耀云服务器L实例评测|企业项目最佳实践之华为云介绍(二) 华为云云耀云服务器L实例评测&#xff5…...

MAC上使用Wireshark常见问题

文章目录 介绍正文启动异常-Permission denied解决方法 过滤协议和地址指定源地址和目的地址调整 time format 介绍 简单记录Wireshark在日常使用过程中的遇到的小case。 正文 Wireshark相较于tcpdump使用较为简单,交互也更为友好。 点击Start即可启动抓包 启动…...

在C++中++a和a++有什么区别?

2023年10月16日,周一中午 a和a在语义上的区别 a是先进行运算(增加1),然后返回新值。 a是先返回原值,然后进行运算(增加1)。 a和a在效率上的区别 a直接返回新值,不需要临时变量保存原值。 而a需要先返回原值,然后再进行增加1的操作。这需要使用一个临时变量来保存…...

NewStarCTF2023公开赛道-压缩包们

题目提示是压缩包 用010editor打开,不见PK头,补上50 4B 03 04 14 00 00 00 将文件改成.zip后缀,打开,解压出flag.zip 尝试解压,报错 发现一串base64编码 SSBsaWtlIHNpeC1kaWdpdCBudW1iZXJzIGJlY2F1c2UgdGhleSBhcmUgd…...

oracle数据库增加表空间数据文件

查询数据文件:select * from dba_data_files order by file_name; 增加:alter tablespace 数据库名 add datafile data size 34359721984;...

商城类网站建设方案/网络优化工程师工作内容

鸿蒙版瑞幸咖啡开发日记之咖啡详情页1.整体布局思路2.具体开发流程2.1 中间滑动内容2.1.1 顶部轮播图的开发2.1.2 收藏口味2.1.3 详情页咖啡名称2.1.4 口味和温度选择2.1.5 商品详情介绍2.2 底部结算栏2.2.1 整体布局方式2.2.2 具体开发3.整体布局文件这里我们首先看一下最终的…...

网站做下CDN防护/培训学校招生方案范文

裤子 36 2迟8 鞋子 42/43稍微有点大 上衣 XXXL(XXL略微有点小) 内裤 XXL就可以要不然腰太细转载于:https://www.cnblogs.com/zhangzs000/p/11007380.html...

女孩子做网站推广/网络营销的优缺点

新开了公众号,欢迎关注 epoll epoll是linux下的一种I/O多路复用的操作方式,是event poll的意思 I/O多路复用,举个栗子,在酒吧,一个服务员,10个顾客在喝酒,服务员有这么几种服务方式 服务员…...

服饰工厂网站建设/全球搜索引擎排名2021

通过nano或者vim更改~/.bashrc或/etc/bashrc,两者的区别,前者是针对单用户,后者针对全局用户。 在文件末尾插入一行alias namestring : 给命令起别名(可以先用type string检测这个名字是否被用过了) 例如: …...

湛江网站建设招聘/官网建站多少钱

这里写目录标题函数模板1.2.2 函数模板注意事项1.2.3 函数模板案例调用规则类模板与函数模板区别类模板与继承类模板成员函数类外实现#pragma once类模板与友元案例重新定义【】stl2.2 STL基本概念STL六大组件容器算法迭代器初识vectorvector容器嵌套容器string容器string赋值操…...

广西网站建设timkee/发布软文网站

MySQL命令行导出数据库1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录如我输入的命令行:cd C:\Program Files\MySQL\MySQL Server 4.1\bin(或者直接将windows的环境变量path中添加该目录)2,导出数据库:mys…...