本文将为大家介绍上海人工智能实验室交通平台组 ADLab 的 3DTrans 代码库 – 首个主动驾驶室外 3D 点云迁徙学习的代码库。此外 3DTrans 代码库还是 Uni3D(CVPR-2023)和 Bi3D(CVPR-2023)的官网实现代码库。
Code Link: https://github.com/PJLab-ADG/3DTrans
一、3DTrans– 首个反对多种迁徙学习工作的 3D 室外点云代码库
1.1 3DTrans 能够做什么?
疾速指标域自适应:
3DTrans 能够仅应用无标注数据来进步 3D 感知模型对 unseen domains 的适应性。例如,3DTrans 代码库反对 ST3D[1]等多个无监督畛域适配(UDA)办法。此外,3DTrans 开发了许多新的 UDA 技术来解决不同类型的域偏移(如激光雷达引起的域差别以及物体大小引起的域差别),其中包含 Post-SN、Pre-SN 和 Range-map Down-sampling/retraining 操作。
低成本指标域适应>:
3DTrans 能够从 unseen domains 中抉择出信息量最大的子集样本,并以最小的老本为其进行标注。例如,3DTrans 开发了 Bi3D,它抉择局部但重要的指标数据并以最小的老本对其进行人工标注,在高性能和低标注老本之间实现了良好的均衡。此外,3DTrans 曾经将几种典型的迁徙学习技术集成到 3D 指标检测框架中。例如,3DTrans 集成了 TQS[2]、CLUE[3]、SN[4]、ST3D[1]、伪标注[1]、SESS[5] 和 Mean Teacher[6]等办法,以反对主动驾驶相干的模型跨传感器、跨场景的迁徙。
多数据集的联结训练:
3DTrans 能够执行多数据集的 3D 指标检测工作。例如,3DTrans 首次研发了多数据集 3D 指标检测框架 –Uni3D,使以后的 3D 基线模型可能无效地从多个公开 3D 数据集中进行学习,进步了不同主动驾驶厂商、传感器、不同地点数据之间的复用性。
多数据集反对:
3DTrans 为 Waymo、nuScenes、ONCE、Lyft 和 KITTI 等多个公开数据集提供了对立的数据加载接口和数据加强形式,有利于钻研跨数据集的 3D 感知工作。此外,为了打消 3D 室外点云数据的域差别,并取得可泛化的示意,3DTrans 集成了一些经典的无标注预训练技术,来为目前 3D 基线检测模型提供更好的参数初始化。例如,咱们集成了 PointContrast[7]和 SESS[5]来反对基于室外点云的预训练任务。
多模型的可扩展性:
3DTrans 能够疾速实现新基线检测模型的 UDA、ADA、SSDA、MDF 等工作的反对。在不对代码和新基线检测模型构造进行重大更改的状况下,通过应用 3DTrans,单数据集 3D 基线检测模型能够胜利地迁徙到带有域差别的新畛域。
*3DTrans 代码库不同模块输入输出关系图
1.2 3DTrans 的每个模块介绍
3DTrans 是一个轻量级、简略、自蕴含的开源代码库,用于摸索面向主动驾驶的迁徙学习技术,目前次要由四个性能组成:
1) Unsupervised Domain Adaptation (UDA) for 3D Point Clouds
2) Active Domain Adaptation (ADA) for 3D Point Clouds
3) Semi-Supervised Domain Adaptation (SSDA) for 3D Point Clouds
4) Multi-dateset Domain Fusion (MDF) for 3D Point Clouds
接下来,给大家具体介绍一下每个模块:
1.2.1 3DTrans@UDA
● 入口链接:
https://github.com/PJLab-ADG/3DTrans/blob/master/docs/GETTING_STARTED_UDA.md
● 3DTrans 代码库 UDA 基线算法的构建:
3DTrans 是面向主动驾驶场景迁徙学习的代码库,最常见的迁徙学习工作是 UDA 工作。其假如:模型能够接触到全量带标注的源域数据和全量无标注的指标域数据。3DTrans 反对了 ST3D[1]等最新的 UDA 3D 办法。同样,咱们针对在 3D 主动驾驶场景下常见的两种畛域差别,即 LiDAR-beam variation 和 Object-size change,给出了 LiDAR down-sampling retraining 和 Post/Pre-SN 实现,来针对特定域差别来迁徙 3D 感知模型。
* 详情见:https://github.com/PJLab-ADG/3DTrans/blob/master/docs/GETTING_STARTED_UDA.md
● 3DTrans@UDA 试验后果
Waymo->KITTI:
1.2.2 3DTrans@ADA
● 入口链接:
https://github.com/PJLab-ADG/3DTrans/blob/master/docs/GETTING_STARTED_ADA.md
● 3DTrans 代码库 ADA 基线算法的构建:
3DTrans 代码库 首次 反对了多种经典的 ADA 算法,包含 TQS[2],CLUE[3]以及咱们的 Bi3D,同时,利用 TQS 中的代码,能够轻易地实现 query-by-committee、query-by-uncertainty 等办法。
TQS[2]由 transferable committee、transferable uncertainty 和基于图像级特色的 transferable domainness 组成。在咱们的复现中,咱们应用 CNN 从 BEV 特色中提取场景级特征描述,并应用三个分类器头来构建 committees。不同于以往应用熵来评估不确定度的工作,咱们计算了主观分数和 0.5 的标记,这种打分形式不同于原来的 TQS[2],这是因为咱们只关注繁多类别,不能应用最高分和第二高分的差。此外,咱们通过域鉴别器计算域得分,并设置为 \(\mu \)=0.75,\(\delta \)=0.4,这与 TQS 雷同。为了与 TQS 保持一致,咱们应用源域数据和抉择的指标数据来微调在源域上训练的检测器。
CLUE[3]应用不确定性加权聚类来抉择指标数据。依照这个思路,咱们首先通过计算 NMS 后的预测熵来取得每帧的不确定性,而后用熵的平均值来示意帧级的不确定性。此外,利用 CLUE[3]提出的加权 K -Means 和 K 个核心进行聚类,其中 K 示意以后采样时刻的标注估算。
● 3DTrans@ADA 试验后果
Waymo->KITTI:
1.2.3 3DTrans@SSDA
● 入口链接:
https://github.com/PJLab-ADG/3DTrans/blob/master/docs/GETTING_STARTED_SSDA.md
● 3DTrans 代码库 SSDA 基线算法的构建:
3DTrans 代码库同样反对了多种半监督算法,包含经典的 SESS[5]和 Pseudo-Label[5]算法。并且咱们给出了在 Domain Shifts 的状况下,该如何应用上述半监督办法来部署模型到指标域。SSDA 的技术路线是:源域预训练模型 -> 在 1%/5% 的带标注指标域数据下微调 -> 在半监督指标域数据下进行重训练。3DTrans 反对的半监督算法如下:
SESS[5]是一种在 Mean Teacher 范式下,疏导老师模型和学生模型对于输出数据的随机扰动来放弃预测一致性的算法。它设计了一个特定的基于点的数据扰动计划和三种一致性损失,可能使网络生成更精确的进行检测。咱们曾经在代码库中复现了 SESS 并将其利用在了跨域检测中。
Pseudo-Label[5]是针对无标签数据十分经典的一种办法,即由初始模型推理无标注数据,从而产生大量伪标签,通过设计的阈值过滤,最终的伪标注数据与带标注数据独特监督网络的训练。咱们在代码库中复现 Pseudo-Label 办法并将其与 Mean Teacher 框架联合,利用在跨域检测中。
● 3DTrans@SSDA 试验后果
Waymo->nuScenes:
1.2.4 3DTrans@MDF
● 入口链接:
https://github.com/PJLab-ADG/3DTrans/blob/master/docs/GETTING_STARTED_MDF.md
● 3DTrans 代码库 MDF 基线算法的构建:
3DTrans 代码 首次 反对的 3D 场景下的 MDF 工作设定。MDF 多域交融是指 3D 指标检测器在多个数据集上进行联结训练,并且须要尽可能同时在多个数据集实现较高的检测精度。须要留神,相比于 Domain Adaptation(DA)畛域中的 Multi-source Domain Adaptation, 这里所提出的 MDF 工作不要求不同域之间是 close-set 闭集关系,即来自于不同域 (或数据集) 的类别分布式是能够不统一的。相比于 Multi-source Domain Adaptation,MDF 工作设定弱化了对于不同域之间的数据分布和类别散布的条件限度。
在 3DTrans 代码库中,咱们构建了几种典型的 MDF 基线模型:
1)Single-dataset training:单数据集训练策略,难以部署到另外的数据集下。
2)Direct Merging:将不同数据集的数据间接合并,并且采纳 PV-RCNN or Voxel-RCNN 等基线模型进行训练,见脚本:slurm_train_multi_db_merge_loss.sh
3)Uni3D 训练:将不同数据集的数据间接合并,并采纳 Dataset-shared Backbones + Dataset-specific Heads 的形式进行训练,见脚本:slurm_train_multi_db.sh
● 3DTrans@MDF 试验后果(更多后果请参见代码库)
Waymo+nuScenes:
1.2.5 3DTrans@可视化介绍
● 入口链接:
https://github.com/PJLab-ADG/3DTrans/blob/master/docs/QUICK_SEQUENCE_DEMO.md
● 3DTrans 代码库 UDA 基线算法的构建:
目前现有的一些 3D 点云代码库的可视化模块都是单帧可视化,不足针对时序数据的解决。为此,咱们在 3DTrans 代码库中减少了 Sequence-level 时序级别的可视化 UI 工具,可视化成果十分直观。目前次要反对对 Waymo,ONCE 和 nuScenes 数据集的时序检测后果的可视化。用户能够给定的一个序列 ID,来产生对应的可视化内容。
二、Uni3D 和 Bi3D 简要介绍
2.1 Uni3D: CVPR-2023 收录
Uni3D 是咱们针对MDF 工作设定,提出的一个通用的解决方案。其能够容易地部署到 PV-RCNN、Voxel-RCNN 等模型中。另外,咱们近期发现其对 PV-RCNN++、Centerpoint 等基线模型同样有显著晋升。详情参考:Uni3D: 首个多数据集 3D 指标检测框架(已开源)
2.2 Bi3D:CVPR-2023 收录
Bi3D 是针对 ADA 工作设定,首次 提出的在主动驾驶场景下被动学习解决方案。同样其能够以较低的标注代价来让主动驾驶感知模型适配的没有见过的指标域下。详情参考:Bi3D: 首个被动畛域适配 3D 指标检测算法(已开源)
三、3DTrans 正在做什么?
最近炽热的 ChatGPT/GPT- 4 等大模型引发了咱们对主动驾驶大模型的思考。家喻户晓,全面、多样的语料库是构建弱小、通用的 NLP 或者跨模态大模型的基石。一些钻研表明,如果能够获取到代表力强、差异性强的预训练数据,根底模型的参数量的减少是能够带来预训练性能的晋升。
然而,在 3D LiDAR 主动驾驶场景下,因为不同厂商所提供的原始数据之间的差别很大,导致难以在主动驾驶畛域取得一个 unified dataset。因而,到目前阶段,咱们认为在主动驾驶畛域实现通用感知的一个必要路线是进行unified dataset 的构建,或者是设计一个 unified baseline model 使得其能够在带有差异化的数据集中学习到一个unified representations。当然,Uni3D 抉择了后者。与此同时,咱们也并没有放弃对前者的致力,Bi3D 就是在摸索如何从海量无标注的主动驾驶数据集中挑选出最优价值的数据,这个钻研工作的最终目标实际上是为了从目前已知的多个学术数据集中筛选有价值样本,以最小的存储代价构建一个 unified dataset。
近期,咱们正在摸索利用算法从海量主动驾驶数据中挑选出有价值的样本(多样性强、冗余度低),进一步设计无效的解决方案来让模型能够在多源数据中学习到通用表征。“路漫漫其修远矣, 吾将上下而求索”,摸索主动驾驶感知模型跨传感器、跨数据集、跨工作的通用表征的道路漫长。咱们欢送有雷同兴趣爱好的敌人交换、单干、退出咱们!(退出咱们!)
四、致谢与开发团队
感激闫翔超 (Shanghai AI Laboratory),袁家康(复旦大学),费奔(复旦大学),黄思渊(上海交通大学) 和周鸿斌 (Shanghai AI Laboratory) 对开发 3DTrans 所做出的奉献。
3DTrans 团队开发成员信息:
https://bobrown.github.io/Team_3DTrans.github.io/
此外,咱们的 3DTrans 代码库是基于 OpenPCDetv0.5.2(https://github.com/open-mmlab/OpenPCDet/tree/v0.5.2)进行开发,感激 OpenPCDet 开发团队的杰出代码库。
同时,咱们也想利用这个机会感激 ONCE 开发团队(https://once-for-auto-driving.github.io/),其公开的大规模数据集反对了 3DTrans 团队对 AD 场景下预训练任务的钻研。
参考文献:
[1] Jihan Yang, Shaoshuai Shi, Zhe Wang, Hongsheng Li, Xiaojuan Qi. ST3D: Self-training for Unsupervised Domain Adaptation on 3D Object Detection.
[2] Bo Fu, Zhangjie Cao, Jianmin Wang, and Mingsheng Long. Transferable Query Selection for Active Domain Adaptation.
[3] Viraj Prabhu, Arjun Chandrasekaran, Kate Saenko, Judy Hoffman. Active Domain Adaptation via Clustering Uncertainty-weighted Embeddings.
[4] Yan Wang, Xiangyu Chen, Yurong You, Li Erran, Bharath Hariharan, Mark Campbell, Kilian Q. Weinberger, Wei-Lun Chao. Train in Germany, Test in The USA: Making 3D Object Detectors Generalize.
[5] Na Zhao, Tat-Seng Chua, Gim Hee Lee. SESS: Self-Ensembling Semi-Supervised 3D Object Detection.
[6] Antti Tarvainen, Harri Valpola. Mean teachers are better role models: Weight-averaged consistency targets improve semi-supervised deep learning results.
[7] Saining Xie, Jiatao Gu, Demi Guo, Charles R. Qi, Leonidas J. Guibas, Or Litany. PointContrast: Unsupervised Pre-training for 3D Point Cloud Understanding
作者丨上海人工智能实验室智能交通平台组(ADLab)
更多主动驾驶数据集,欢送拜访 OpenDataLab 官网查看与下载 https://opendatalab.org.cn/