One Million Scenes for Autonomous Driving

Overview

ONCE Benchmark

This is a reproduced benchmark for 3D object detection on the ONCE (One Million Scenes) dataset.

The code is mainly based on OpenPCDet.

Introduction

We provide the dataset API and some reproduced models on the ONCE dataset.

Installation

The repo is based on OpenPCDet. If you have already installed OpenPCDet (version >= v0.3.0), you can skip this part and use the existing environment, but remember to re-compile CUDA operators by

python setup.py develop
cd pcdet/ops/dcn
python setup.py develop

If you haven't installed OpenPCDet, please refer to INSTALL.md for the installation.

Getting Started

Please refer to GETTING_STARTED.md to learn more usage about this project.

Benchmark

Please refer to this page for detailed benchmark results. We cannot release the training checkpoints, but it's easy to reproduce the results with provided configurations.

Detection Models

We provide 1 fusion-based and 5 point cloud based 3D detectors. The training configurations are at tools/cfgs/once_models/sup_models/*.yaml

For PointPainting, you have to first produce segmentation results yourself. We used HRNet trained on CityScapes to generate segmentation masks.

Reproduced results on the validation split (trained on the training split):

Method Vehicle Pedestrian Cyclist mAP
PointRCNN 52.09 4.28 29.84 28.74
PointPillars 68.57 17.63 46.81 44.34
SECOND 71.19 26.44 58.04 51.89
PV-RCNN 77.77 23.50 59.37 53.55
CenterPoints 66.79 49.90 63.45 60.05
PointPainting 66.17 44.84 62.34 57.78

Semi-supervised Learning

We provide 5 semi-supervised methods based on the SECOND detector. The training configurations are at tools/cfgs/once_models/semi_learning_models/*.yaml

It is worth noting that all the methods are implemented by ourselves, and some are modified to attain better performance. Thus our implementations may be quite different from the original versions.

Reproduced results on the validation split (semi-supervised learning on the 100k raw_small subset):

Method Vehicle Pedestrian Cyclist mAP
baseline (SECOND) 71.19 26.44 58.04 51.89
Pseudo Label 72.80 25.50 55.37 51.22
Noisy Student 73.69 28.81 54.67 52.39
Mean Teacher 74.46 30.54 61.02 55.34
SESS 73.33 27.31 59.52 53.39
3DIoUMatch 73.81 30.86 56.77 53.81

Unsupervised Domain Adaptation

This part of the codes is based on ST3D. Please copy the configurations at tools/cfgs/once_models/uda_models/* and tools/cfgs/dataset_configs/da_once_dataset.yaml, as well as the dataset file pcdet/datasets/once/once_target_dataset.py to the ST3D repo. The results can be easily reproduced following their instructions.

Task Waymo_to_ONCE nuScenes_to_ONCE ONCE_to_KITTI
Method AP_BEV/AP_3D AP_BEV/AP_3D AP_BEV/AP_3D
Source Only 65.55/32.88 46.85/23.74 42.01/12.11
SN 67.97/38.25 62.47/29.53 48.12/21.12
ST3D 68.05/48.34 42.53/17.52 86.89/41.42
Oracle 89.00/77.50 89.00/77.50 83.29/73.45

Citation

If you find this project useful in your research, please consider cite:

@article{mao2021one,
  title={One Million Scenes for Autonomous Driving: ONCE Dataset},
  author={Mao, Jiageng and Niu, Minzhe and Jiang, Chenhan and Liang, Hanxue and Liang, Xiaodan and Li, Yamin and Ye, Chaoqiang and Zhang, Wei and Li, Zhenguo and Yu, Jie and others},
  journal={arXiv preprint arXiv:2106.11037},
  year={2021}
}
Comments
  • Merge request with OpenPCDet

    Merge request with OpenPCDet

    Hi,

    I've been working on a merge of your codebase with the official OpenPCDet from OpenMMLab for the supervised part. The purpose would be that OpenPCDet would support supervised training on ONCE directly.

    I would like to make a PR of my merge on OpenPCDet when it's ready, but I will wait for your agreement on that. Also if you have specific requirements on License, citation or parts of the code I should not include, don't hesitate to tell me, and we can see with OpenMMLab what can be done.

    opened by CSautier 10
  • some question about semi-supervised learning

    some question about semi-supervised learning

    Hi, @PointsCoder , thanks for sharing the source code, I have one question about the code after reading, for 3dioumatch, why you use cls_score as nms_score ? does't it give better result? as now many detector use iou score as nms score

    opened by AndyYuan96 9
  • When will the permanent phase start?

    When will the permanent phase start?

    @PointsCoder Thank you for the excellent ONCE dataset and baseline. Now the 'ICCV 2021 Workshop SSLAD Track 2 - 3D Object Detection' competition is over. When will the permanent phase start, and when will the results of the test set be available? Thanks a lot.

    opened by Michael-Shaw 5
  • semi-supervised learning with gtaug?

    semi-supervised learning with gtaug?

    Hi, after reading the semi-supervised config file, I find for all semi-supervised method, you didn't use gt-aug augmentation method for labeled data, did you already do experiment and find gt-aug didn't give improvement in semi-supervised learning, or just for convenient。

    opened by AndyYuan96 5
  • Doubts on Noisy Student

    Doubts on Noisy Student

    Hi,

    First of all, thank you for the great work of putting different semi-supervised methods on lidar point clouds into a single repo.

    I have a question on the Noisy Student training. From the Noisy Student config https://github.com/PointsCoder/ONCE_Benchmark/blob/master/tools/cfgs/once_models/semi_learning_models/noisy_student_second_large.yaml, it does not seem to add dropout DP_RATIO into the model. But the Noisy Student paper suggests to add it. Not sure if I am missing something?

    Also, the Noisy Student training seems to be for only 1-cycle, instead of 3-cycles as originally done in the paper. Could you please let me know if the multiple cycle experiment lowered the performance compared to only 1-cycle?

    On comparing Noisy Student to Pseudo Labels config, it appears the only difference between the 2 being random augmentations of random_world_flip and random_world_rotation are not applied to Student model in Pseudo Labels. Could you please confirm if that's the only difference between these?

    Looking forward to your reply.

    Thank You !! Anuj

    opened by anuj-sharma-19 4
  • About the results of ONCE Benchmark

    About the results of ONCE Benchmark

    How can I continue to obtain the results of the ONCE test split data after the 'ICCV 2021 Workshop SSLAD Track 2 - 3D Object Detection' competition is over? Thanks!

    opened by Michael-Shaw 4
  • About Imageset files

    About Imageset files

    I have downloaded and unpacked the whole ONCE Dataset and have cloned this repo, but I still can't find the ImageSets folder and any description or information about it. How can I get the ImageSets folder? Thanks a lot!

    opened by Poley97 2
  • About SHIFT_COOR parameter in waymo-to-once setting

    About SHIFT_COOR parameter in waymo-to-once setting

    In tools/cfgs/once_models/uda_models/waymo_to_once/secondiou_waymo_origin.yaml, the SHIFT_COOR parameter is set to [0,0,0] and [0,0,1.6] is noted. However, the origin of corrdinates in Waymo point cloud is on the ground while that in ONCE point cloud is the LiDAR sensor. Thus, there exists origin shift between two datasets and why you use [0,0,0]. Thanks!

    opened by weiyithu 2
  • EMA for 3D IoU Match

    EMA for 3D IoU Match

    Hi, I was reading this project recently and I found that there is something different from the original implementation of the 3D IoU Match. In the paper of 3D IoU Match, the EMA was applied for updating the teacher model which was not used in your project. I also realized that in your paper ONCE, the description of the 3D IoU Match also missed the EMA part in figure3. I was wondering whether this is the reason for the less competitive performance of the 3D IoU Match as mentioned in the paper ONCE. Anyway, thanks for this awesome work.

    opened by wyddmw 2
  • About DistributedDataParallel model encapsulation

    About DistributedDataParallel model encapsulation

    Hello~I'm wondering why do you encapsulate the DistributedDataParallel model as follows? https://github.com/PointsCoder/ONCE_Benchmark/blob/3bc1f3ab2f5715ea9e54ee10250a829876abf563/tools/semi_train.py#L57-L74

    opened by qiaozhijian 2
  • Where the code to transform the original ONCE lidar point clouds to unified normative coordinate?

    Where the code to transform the original ONCE lidar point clouds to unified normative coordinate?

    Hi

    The coordinate of original ONCE lidar point clouds is x pointing left, y pointing backwards. However, I can't find the code to explicitly transform the once lidar coordinate to the unified normative coordinate as the openpcdet documentation states.

    The getitem method of once https://github.com/PointsCoder/ONCE_Benchmark/blob/aebe9dc8ceefb198719aa6938a97115f55add794/pcdet/datasets/once/once_dataset.py#L126-L153

    The get_lidar method of once https://github.com/PointsCoder/ONCE_Benchmark/blob/aebe9dc8ceefb198719aa6938a97115f55add794/pcdet/datasets/once/once_dataset.py#L73-L74

    The load_point_cloud method of once

    def load_point_cloud(self, seq_id, frame_id):
        bin_path = osp.join(self.data_root, seq_id, 'lidar_roof', '{}.bin'.format(frame_id))
        points = np.fromfile(bin_path, dtype=np.float32).reshape(-1, 4)
        return points
    
    opened by ideasplus 1
  • mean teacher's ap is lower than paper

    mean teacher's ap is lower than paper

    mean teacher result ,which test on validation set and train on small unlabel set. |AP@50 |overall |0-30m |30-50m |50m-inf | |Vehicle |73.31 |84.82 |68.15 |52.92 | |Pedestrian |31.88 |36.56 |27.27 |18.93 | |Cyclist |61.41 |73.01 |54.92 |37.50 | |mAP |55.53 |64.80 |50.12 |36.45 |

    the ap is lower than the paper, especially the distance is 0-30m

    opened by KaoJZhu 1
  • 激光雷达的安装高度是多少?

    激光雷达的安装高度是多少?

    Hi, what a great dataset!

    Could you plz tell me what is the relative distance of the LIDAR coordinate system's origin to the ground? I have searched the official website and paper but didn't find this information. I look forward to your reply. 请问是否可以告知激光雷达坐标系原点距离地面的相对高度为多少?查找了官网和paper都没有找到这个信息。 期待您的回复。

    #27

    opened by jishumiao95 0
  • Lidar to road extrinsics information

    Lidar to road extrinsics information

    Hello,

    Thank you so much for your work and for making this data freely accessible. It is very impressive and awesome. But I have a question, do you have the calibration information of the lidar ? ex. the calibration of lidar to road information, the calibration of lidar to earth information.

    best regards, L

    opened by luluenen 0
  • Annotation File

    Annotation File

    Hi All, Thank you for this great repo! To make this discussion easier lets take for example file 000080.json which lies under <PATH TO DATA>/data/once/data/000080. When loading this file it contains 3 keys and under frames we can find the annotations. As far as I can see every 2nd entry does not contain annos field, does it suppose to be like that? If not how should I handle it?

    Cheers, A

    opened by AvivSham 0
  • Organising the dataset & MM benchmark

    Organising the dataset & MM benchmark

    Hi All, Thank you for your excellent work! I have 2 questions:

    1. You request to organize the dataset as follow:
    ONCE_Benchmark
    ├── data
    │   ├── once
    │   │   │── ImageSets
    |   |   |   ├──train.txt
    |   |   |   ├──val.txt
    |   |   |   ├──test.txt
    |   |   |   ├──raw_small.txt (100k unlabeled)
    |   |   |   ├──raw_medium.txt (500k unlabeled)
    |   |   |   ├──raw_large.txt (1M unlabeled)
    │   │   │── data
    │   │   │   ├──000000
    |   |   |   |   |──000000.json (infos)
    |   |   |   |   |──lidar_roof (point clouds)
    |   |   |   |   |   |──frame_timestamp_1.bin
    |   |   |   |   |  ...
    |   |   |   |   |──cam0[1-9] (images)
    |   |   |   |   |   |──frame_timestamp_1.jpg
    |   |   |   |   |  ...
    |   |   |   |  ...
    ├── pcdet
    ├── tools
    

    But on the dataset website it does not look like that. In addition, I extracted the train annotation tar file and did not find any .txt file. Can you please check it out or update the "getting started" file + Dataset object?

    1. Did you perform a benchmark on multimodal model? if so, which model did you use?

    Cheers, A

    opened by AvivSham 1
Owner
null
Official Repo for Ground-aware Monocular 3D Object Detection for Autonomous Driving

Visual 3D Detection Package: This repo aims to provide flexible and reproducible visual 3D detection on KITTI dataset. We expect scripts starting from

Yuxuan Liu 305 Dec 19, 2022
RTS3D: Real-time Stereo 3D Detection from 4D Feature-Consistency Embedding Space for Autonomous Driving

RTS3D: Real-time Stereo 3D Detection from 4D Feature-Consistency Embedding Space for Autonomous Driving (AAAI2021). RTS3D is efficiency and accuracy s

null 71 Nov 29, 2022
[arXiv] What-If Motion Prediction for Autonomous Driving ❓🚗💨

WIMP - What If Motion Predictor Reference PyTorch Implementation for What If Motion Prediction [PDF] [Dynamic Visualizations] Setup Requirements The W

William Qi 96 Dec 29, 2022
[CVPR'21] Multi-Modal Fusion Transformer for End-to-End Autonomous Driving

TransFuser This repository contains the code for the CVPR 2021 paper Multi-Modal Fusion Transformer for End-to-End Autonomous Driving. If you find our

null 695 Jan 5, 2023
Uncertainty-aware Semantic Segmentation of LiDAR Point Clouds for Autonomous Driving

SalsaNext: Fast, Uncertainty-aware Semantic Segmentation of LiDAR Point Clouds for Autonomous Driving Abstract In this paper, we introduce SalsaNext f

null 308 Jan 4, 2023
[ICCV'21] NEAT: Neural Attention Fields for End-to-End Autonomous Driving

NEAT: Neural Attention Fields for End-to-End Autonomous Driving Paper | Supplementary | Video | Poster | Blog This repository is for the ICCV 2021 pap

null 254 Jan 2, 2023
This solves the autonomous driving issue which is supported by deep learning technology. Given a video, it splits into images and predicts the angle of turning for each frame.

Self Driving Car An autonomous car (also known as a driverless car, self-driving car, and robotic car) is a vehicle that is capable of sensing its env

Sagor Saha 4 Sep 4, 2021
Self-Supervised Pillar Motion Learning for Autonomous Driving (CVPR 2021)

Self-Supervised Pillar Motion Learning for Autonomous Driving Chenxu Luo, Xiaodong Yang, Alan Yuille Self-Supervised Pillar Motion Learning for Autono

QCraft 101 Dec 5, 2022
Code repository for Semantic Terrain Classification for Off-Road Autonomous Driving

BEVNet Datasets Datasets should be put inside data/. For example, data/semantic_kitti_4class_100x100. Training BEVNet-S Example: cd experiments bash t

(Brian) JoonHo Lee 24 Dec 12, 2022
An unofficial personal implementation of UM-Adapt, specifically to tackle joint estimation of panoptic segmentation and depth prediction for autonomous driving datasets.

Semisupervised Multitask Learning This repository is an unofficial and slightly modified implementation of UM-Adapt[1] using PyTorch. This code primar

Abhinav Atrishi 11 Nov 25, 2022
Unofficial PyTorch implementation of "RTM3D: Real-time Monocular 3D Detection from Object Keypoints for Autonomous Driving" (ECCV 2020)

RTM3D-PyTorch The PyTorch Implementation of the paper: RTM3D: Real-time Monocular 3D Detection from Object Keypoints for Autonomous Driving (ECCV 2020

Nguyen Mau Dzung 271 Nov 29, 2022
Graph Self-Attention Network for Learning Spatial-Temporal Interaction Representation in Autonomous Driving

GSAN Introduction Code for paper GSAN: Graph Self-Attention Network for Learning Spatial-Temporal Interaction Representation in Autonomous Driving, wh

YE Luyao 6 Oct 27, 2022
A 1.3B text-to-image generation model trained on 14 million image-text pairs

minDALL-E on Conceptual Captions minDALL-E, named after minGPT, is a 1.3B text-to-image generation model trained on 14 million image-text pairs for no

Kakao Brain 604 Dec 14, 2022
Code for the paper One Thing One Click: A Self-Training Approach for Weakly Supervised 3D Semantic Segmentation, CVPR 2021.

One Thing One Click One Thing One Click: A Self-Training Approach for Weakly Supervised 3D Semantic Segmentation (CVPR2021) Code for the paper One Thi

null 44 Dec 12, 2022
People log into different sites every day to get information and browse through these sites one by one

HyperLink People log into different sites every day to get information and browse through these sites one by one. And they are exposed to advertisemen

null 0 Feb 17, 2022
PyTorch implementation of paper "Neural Scene Flow Fields for Space-Time View Synthesis of Dynamic Scenes", CVPR 2021

Neural Scene Flow Fields PyTorch implementation of paper "Neural Scene Flow Fields for Space-Time View Synthesis of Dynamic Scenes", CVPR 20

Zhengqi Li 585 Jan 4, 2023
Towards Rolling Shutter Correction and Deblurring in Dynamic Scenes (CVPR2021)

RSCD (BS-RSCD & JCD) Towards Rolling Shutter Correction and Deblurring in Dynamic Scenes (CVPR2021) by Zhihang Zhong, Yinqiang Zheng, Imari Sato We co

null 81 Dec 15, 2022
Generate indoor scenes with Transformers

SceneFormer: Indoor Scene Generation with Transformers Initial code release for the Sceneformer paper, contains models, train and test scripts for the

Chandan Yeshwanth 110 Dec 6, 2022
Populating 3D Scenes by Learning Human-Scene Interaction https://posa.is.tue.mpg.de/

Populating 3D Scenes by Learning Human-Scene Interaction [Project Page] [Paper] License Software Copyright License for non-commercial scientific resea

Mohamed Hassan 81 Nov 8, 2022