本文将为大家介绍上海人工智能实验室交通平台组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/