Unverified Commit 6c03a971 authored by Tai-Wang's avatar Tai-Wang Committed by GitHub
Browse files

Release v1.1.0rc1

Release v1.1.0rc1
parents 9611c2d0 ca42c312
...@@ -36,8 +36,6 @@ jobs: ...@@ -36,8 +36,6 @@ jobs:
type: string type: string
torchvision: torchvision:
type: string type: string
mmcv:
type: string
docker: docker:
- image: cimg/python:<< parameters.python >> - image: cimg/python:<< parameters.python >>
resource_class: large resource_class: large
...@@ -62,7 +60,8 @@ jobs: ...@@ -62,7 +60,8 @@ jobs:
name: Install mmdet3d dependencies name: Install mmdet3d dependencies
command: | command: |
python -m pip install git+ssh://git@github.com/open-mmlab/mmengine.git@main python -m pip install git+ssh://git@github.com/open-mmlab/mmengine.git@main
python -m pip install << parameters.mmcv >> python -m pip install -U openmim
python -m mim install 'mmcv >= 2.0.0rc1'
python -m pip install git+ssh://git@github.com/open-mmlab/mmdetection.git@dev-3.x python -m pip install git+ssh://git@github.com/open-mmlab/mmdetection.git@dev-3.x
python -m pip install -r requirements.txt python -m pip install -r requirements.txt
- run: - run:
...@@ -85,8 +84,6 @@ jobs: ...@@ -85,8 +84,6 @@ jobs:
cudnn: cudnn:
type: integer type: integer
default: 7 default: 7
mmcv:
type: string
machine: machine:
image: ubuntu-2004-cuda-11.4:202110-01 image: ubuntu-2004-cuda-11.4:202110-01
# docker_layer_caching: true # docker_layer_caching: true
...@@ -108,7 +105,8 @@ jobs: ...@@ -108,7 +105,8 @@ jobs:
name: Install mmdet3d dependencies name: Install mmdet3d dependencies
command: | command: |
docker exec mmdet3d pip install -e /mmengine docker exec mmdet3d pip install -e /mmengine
docker exec mmdet3d pip install << parameters.mmcv >> docker exec mmdet3d pip install -U openmim
docker exec mmdet3d mim install 'mmcv >= 2.0.0rc1'
docker exec mmdet3d pip install -e /mmdetection docker exec mmdet3d pip install -e /mmdetection
docker exec mmdet3d pip install -r requirements.txt docker exec mmdet3d pip install -r requirements.txt
- run: - run:
...@@ -144,8 +142,7 @@ workflows: ...@@ -144,8 +142,7 @@ workflows:
name: minimum_version_cpu name: minimum_version_cpu
torch: 1.6.0 torch: 1.6.0
torchvision: 0.7.0 torchvision: 0.7.0
python: 3.6.9 # The lowest python 3.6.x version available on CircleCI images python: 3.7.4
mmcv: https://download.openmmlab.com/mmcv/dev-2.x/cpu/torch1.6.0/mmcv_full-2.0.0rc0-cp36-cp36m-manylinux1_x86_64.whl
requires: requires:
- lint - lint
- build_cpu: - build_cpu:
...@@ -153,7 +150,6 @@ workflows: ...@@ -153,7 +150,6 @@ workflows:
torch: 1.9.0 torch: 1.9.0
torchvision: 0.10.0 torchvision: 0.10.0
python: 3.9.0 python: 3.9.0
mmcv: https://download.openmmlab.com/mmcv/dev-2.x/cpu/torch1.9.0/mmcv_full-2.0.0rc0-cp39-cp39-manylinux1_x86_64.whl
requires: requires:
- minimum_version_cpu - minimum_version_cpu
- hold: - hold:
...@@ -166,7 +162,6 @@ workflows: ...@@ -166,7 +162,6 @@ workflows:
# Use double quotation mark to explicitly specify its type # Use double quotation mark to explicitly specify its type
# as string instead of number # as string instead of number
cuda: "10.2" cuda: "10.2"
mmcv: https://download.openmmlab.com/mmcv/dev-2.x/cu102/torch1.8.0/mmcv_full-2.0.0rc0-cp37-cp37m-manylinux1_x86_64.whl
requires: requires:
- hold - hold
merge_stage_test: merge_stage_test:
...@@ -179,7 +174,6 @@ workflows: ...@@ -179,7 +174,6 @@ workflows:
torch: 1.6.0 torch: 1.6.0
# Use double quotation mark to explicitly specify its type # Use double quotation mark to explicitly specify its type
# as string instead of number # as string instead of number
mmcv: https://download.openmmlab.com/mmcv/dev-2.x/cu101/torch1.6.0/mmcv_full-2.0.0rc0-cp37-cp37m-manylinux1_x86_64.whl
cuda: "10.1" cuda: "10.1"
filters: filters:
branches: branches:
......
...@@ -133,3 +133,4 @@ data/sunrgbd/OFFICIAL_SUNRGBD/ ...@@ -133,3 +133,4 @@ data/sunrgbd/OFFICIAL_SUNRGBD/
# Waymo evaluation # Waymo evaluation
mmdet3d/core/evaluation/waymo_utils/compute_detection_metrics_main mmdet3d/core/evaluation/waymo_utils/compute_detection_metrics_main
mmdet3d/core/evaluation/waymo_utils/compute_detection_let_metrics_main
repos: repos:
- repo: https://github.com/PyCQA/flake8 - repo: https://github.com/PyCQA/flake8
rev: 3.8.3 rev: 5.0.4
hooks: hooks:
- id: flake8 - id: flake8
- repo: https://github.com/PyCQA/isort - repo: https://github.com/PyCQA/isort
...@@ -8,11 +8,11 @@ repos: ...@@ -8,11 +8,11 @@ repos:
hooks: hooks:
- id: isort - id: isort
- repo: https://github.com/pre-commit/mirrors-yapf - repo: https://github.com/pre-commit/mirrors-yapf
rev: v0.30.0 rev: v0.32.0
hooks: hooks:
- id: yapf - id: yapf
- repo: https://github.com/pre-commit/pre-commit-hooks - repo: https://github.com/pre-commit/pre-commit-hooks
rev: v3.1.0 rev: v4.3.0
hooks: hooks:
- id: trailing-whitespace - id: trailing-whitespace
- id: check-yaml - id: check-yaml
...@@ -25,7 +25,7 @@ repos: ...@@ -25,7 +25,7 @@ repos:
- id: mixed-line-ending - id: mixed-line-ending
args: ["--fix=lf"] args: ["--fix=lf"]
- repo: https://github.com/codespell-project/codespell - repo: https://github.com/codespell-project/codespell
rev: v2.1.0 rev: v2.2.1
hooks: hooks:
- id: codespell - id: codespell
- repo: https://github.com/executablebooks/mdformat - repo: https://github.com/executablebooks/mdformat
......
...@@ -82,9 +82,7 @@ This project is released under the [Apache 2.0 license](LICENSE). ...@@ -82,9 +82,7 @@ This project is released under the [Apache 2.0 license](LICENSE).
## Changelog ## Changelog
We are excited to announce the release of MMDetection3D 1.1.0rc0. **1.1.0rc1** was released in 11/10/2022.
MMDet3D 1.1 unifies the interfaces of dataset, models, evaluation, and visualization with faster training and testing speed.
Please refer to [changelog.md](docs/en/notes/changelog.md) for details and release history. Please refer to [changelog.md](docs/en/notes/changelog.md) for details and release history.
......
...@@ -82,7 +82,7 @@ MMDetection3D 是一个基于 PyTorch 的目标检测开源工具箱, 下一代 ...@@ -82,7 +82,7 @@ MMDetection3D 是一个基于 PyTorch 的目标检测开源工具箱, 下一代
## 更新日志 ## 更新日志
MMDetection3D 1.1.0rc0,MMDet3D 在 OpenMMLab 2.0 项目中的首个版本发布。 我们在 2022.10.11 发布了 **1.1.0rc1** 版本.
更多细节和版本发布历史可以参考[changelog.md](docs/en/notes/changelog.md). 更多细节和版本发布历史可以参考[changelog.md](docs/en/notes/changelog.md).
......
...@@ -67,7 +67,7 @@ test_pipeline = [ ...@@ -67,7 +67,7 @@ test_pipeline = [
# please keep its loading function consistent with test_pipeline (e.g. client) # please keep its loading function consistent with test_pipeline (e.g. client)
eval_pipeline = [ eval_pipeline = [
dict(type='LoadPointsFromFile', coord_type='LIDAR', load_dim=4, use_dim=4), dict(type='LoadPointsFromFile', coord_type='LIDAR', load_dim=4, use_dim=4),
dict(type='Pack3DDetInputs', keys=['points']), dict(type='Pack3DDetInputs', keys=['points'])
] ]
train_dataloader = dict( train_dataloader = dict(
batch_size=6, batch_size=6,
...@@ -126,3 +126,7 @@ val_evaluator = dict( ...@@ -126,3 +126,7 @@ val_evaluator = dict(
ann_file=data_root + 'kitti_infos_val.pkl', ann_file=data_root + 'kitti_infos_val.pkl',
metric='bbox') metric='bbox')
test_evaluator = val_evaluator test_evaluator = val_evaluator
vis_backends = [dict(type='LocalVisBackend')]
visualizer = dict(
type='Det3DLocalVisualizer', vis_backends=vis_backends, name='visualizer')
...@@ -124,3 +124,7 @@ val_evaluator = dict( ...@@ -124,3 +124,7 @@ val_evaluator = dict(
ann_file=data_root + 'kitti_infos_val.pkl', ann_file=data_root + 'kitti_infos_val.pkl',
metric='bbox') metric='bbox')
test_evaluator = val_evaluator test_evaluator = val_evaluator
vis_backends = [dict(type='LocalVisBackend')]
visualizer = dict(
type='Det3DLocalVisualizer', vis_backends=vis_backends, name='visualizer')
...@@ -35,6 +35,10 @@ test_pipeline = [ ...@@ -35,6 +35,10 @@ test_pipeline = [
dict(type='Resize', scale=(1242, 375), keep_ratio=True), dict(type='Resize', scale=(1242, 375), keep_ratio=True),
dict(type='Pack3DDetInputs', keys=['img']) dict(type='Pack3DDetInputs', keys=['img'])
] ]
eval_pipeline = [
dict(type='LoadImageFromFileMono3D'),
dict(type='Pack3DDetInputs', keys=['img'])
]
train_dataloader = dict( train_dataloader = dict(
batch_size=2, batch_size=2,
...@@ -78,3 +82,7 @@ val_evaluator = dict( ...@@ -78,3 +82,7 @@ val_evaluator = dict(
pred_box_type_3d='Camera') pred_box_type_3d='Camera')
test_evaluator = val_evaluator test_evaluator = val_evaluator
vis_backends = [dict(type='LocalVisBackend')]
visualizer = dict(
type='Det3DLocalVisualizer', vis_backends=vis_backends, name='visualizer')
...@@ -124,3 +124,7 @@ test_evaluator = dict( ...@@ -124,3 +124,7 @@ test_evaluator = dict(
type='LyftMetric', type='LyftMetric',
ann_file=data_root + 'lyft_infos_val.pkl', ann_file=data_root + 'lyft_infos_val.pkl',
metric='bbox') metric='bbox')
vis_backends = [dict(type='LocalVisBackend')]
visualizer = dict(
type='Det3DLocalVisualizer', vis_backends=vis_backends, name='visualizer')
...@@ -126,3 +126,7 @@ val_evaluator = dict( ...@@ -126,3 +126,7 @@ val_evaluator = dict(
ann_file=data_root + 'nuscenes_infos_val.pkl', ann_file=data_root + 'nuscenes_infos_val.pkl',
metric='bbox') metric='bbox')
test_evaluator = val_evaluator test_evaluator = val_evaluator
vis_backends = [dict(type='LocalVisBackend')]
visualizer = dict(
type='Det3DLocalVisualizer', vis_backends=vis_backends, name='visualizer')
...@@ -65,7 +65,7 @@ train_dataloader = dict( ...@@ -65,7 +65,7 @@ train_dataloader = dict(
CAM_BACK_RIGHT='samples/CAM_BACK_RIGHT', CAM_BACK_RIGHT='samples/CAM_BACK_RIGHT',
CAM_BACK_LEFT='samples/CAM_BACK_LEFT'), CAM_BACK_LEFT='samples/CAM_BACK_LEFT'),
ann_file='nuscenes_infos_train.pkl', ann_file='nuscenes_infos_train.pkl',
task='mono3d', task='mono_det',
pipeline=train_pipeline, pipeline=train_pipeline,
metainfo=metainfo, metainfo=metainfo,
modality=input_modality, modality=input_modality,
...@@ -92,7 +92,7 @@ val_dataloader = dict( ...@@ -92,7 +92,7 @@ val_dataloader = dict(
CAM_BACK_RIGHT='samples/CAM_BACK_RIGHT', CAM_BACK_RIGHT='samples/CAM_BACK_RIGHT',
CAM_BACK_LEFT='samples/CAM_BACK_LEFT'), CAM_BACK_LEFT='samples/CAM_BACK_LEFT'),
ann_file='nuscenes_infos_val.pkl', ann_file='nuscenes_infos_val.pkl',
task='mono3d', task='mono_det',
pipeline=test_pipeline, pipeline=test_pipeline,
modality=input_modality, modality=input_modality,
metainfo=metainfo, metainfo=metainfo,
...@@ -108,3 +108,7 @@ val_evaluator = dict( ...@@ -108,3 +108,7 @@ val_evaluator = dict(
metric='bbox') metric='bbox')
test_evaluator = val_evaluator test_evaluator = val_evaluator
vis_backends = [dict(type='LocalVisBackend')]
visualizer = dict(
type='Det3DLocalVisualizer', vis_backends=vis_backends, name='visualizer')
...@@ -142,3 +142,7 @@ val_dataloader = test_dataloader ...@@ -142,3 +142,7 @@ val_dataloader = test_dataloader
val_evaluator = dict(type='SegMetric') val_evaluator = dict(type='SegMetric')
test_evaluator = val_evaluator test_evaluator = val_evaluator
vis_backends = [dict(type='LocalVisBackend')]
visualizer = dict(
type='Det3DLocalVisualizer', vis_backends=vis_backends, name='visualizer')
...@@ -125,3 +125,7 @@ test_dataloader = dict( ...@@ -125,3 +125,7 @@ test_dataloader = dict(
box_type_3d='Depth')) box_type_3d='Depth'))
val_evaluator = dict(type='IndoorMetric') val_evaluator = dict(type='IndoorMetric')
test_evaluator = val_evaluator test_evaluator = val_evaluator
vis_backends = [dict(type='LocalVisBackend')]
visualizer = dict(
type='Det3DLocalVisualizer', vis_backends=vis_backends, name='visualizer')
...@@ -137,3 +137,7 @@ val_dataloader = test_dataloader ...@@ -137,3 +137,7 @@ val_dataloader = test_dataloader
val_evaluator = dict(type='SegMetric') val_evaluator = dict(type='SegMetric')
test_evaluator = val_evaluator test_evaluator = val_evaluator
vis_backends = [dict(type='LocalVisBackend')]
visualizer = dict(
type='Det3DLocalVisualizer', vis_backends=vis_backends, name='visualizer')
...@@ -111,3 +111,7 @@ test_dataloader = dict( ...@@ -111,3 +111,7 @@ test_dataloader = dict(
box_type_3d='Depth')) box_type_3d='Depth'))
val_evaluator = dict(type='IndoorMetric') val_evaluator = dict(type='IndoorMetric')
test_evaluator = val_evaluator test_evaluator = val_evaluator
vis_backends = [dict(type='LocalVisBackend')]
visualizer = dict(
type='Det3DLocalVisualizer', vis_backends=vis_backends, name='visualizer')
...@@ -2,13 +2,18 @@ ...@@ -2,13 +2,18 @@
# D5 in the config name means the whole dataset is divided into 5 folds # D5 in the config name means the whole dataset is divided into 5 folds
# We only use one fold for efficient experiments # We only use one fold for efficient experiments
dataset_type = 'WaymoDataset' dataset_type = 'WaymoDataset'
# data_root = 's3://openmmlab/datasets/detection3d/waymo/kitti_format/'
data_root = 'data/waymo/kitti_format/' data_root = 'data/waymo/kitti_format/'
file_client_args = dict(backend='disk') file_client_args = dict(backend='disk')
# Uncomment the following if use ceph or other file clients. # Uncomment the following if use ceph or other file clients.
# See https://mmcv.readthedocs.io/en/latest/api.html#mmcv.fileio.FileClient # See https://mmcv.readthedocs.io/en/latest/api.html#mmcv.fileio.FileClient
# for more details. # for more details.
# file_client_args = dict( # file_client_args = dict(
# backend='petrel', path_mapping=dict(data='s3://waymo_data/')) # backend='petrel',
# path_mapping={
# './data/waymo': 's3://openmmlab/datasets/detection3d/waymo',
# 'data/waymo': 's3://openmmlab/datasets/detection3d/waymo'
# })
class_names = ['Car', 'Pedestrian', 'Cyclist'] class_names = ['Car', 'Pedestrian', 'Cyclist']
metainfo = dict(CLASSES=class_names) metainfo = dict(CLASSES=class_names)
...@@ -33,7 +38,7 @@ db_sampler = dict( ...@@ -33,7 +38,7 @@ db_sampler = dict(
train_pipeline = [ train_pipeline = [
dict(type='LoadPointsFromFile', coord_type='LIDAR', load_dim=6, use_dim=5), dict(type='LoadPointsFromFile', coord_type='LIDAR', load_dim=6, use_dim=5),
dict(type='LoadAnnotations3D', with_bbox_3d=True, with_label_3d=True), dict(type='LoadAnnotations3D', with_bbox_3d=True, with_label_3d=True),
dict(type='ObjectSample', db_sampler=db_sampler), # dict(type='ObjectSample', db_sampler=db_sampler),
dict( dict(
type='RandomFlip3D', type='RandomFlip3D',
sync_2d=False, sync_2d=False,
...@@ -51,7 +56,12 @@ train_pipeline = [ ...@@ -51,7 +56,12 @@ train_pipeline = [
keys=['points', 'gt_bboxes_3d', 'gt_labels_3d']) keys=['points', 'gt_bboxes_3d', 'gt_labels_3d'])
] ]
test_pipeline = [ test_pipeline = [
dict(type='LoadPointsFromFile', coord_type='LIDAR', load_dim=6, use_dim=5), dict(
type='LoadPointsFromFile',
coord_type='LIDAR',
load_dim=6,
use_dim=5,
file_client_args=file_client_args),
dict( dict(
type='MultiScaleFlipAug3D', type='MultiScaleFlipAug3D',
img_scale=(1333, 800), img_scale=(1333, 800),
...@@ -88,7 +98,8 @@ train_dataloader = dict( ...@@ -88,7 +98,8 @@ train_dataloader = dict(
type=dataset_type, type=dataset_type,
data_root=data_root, data_root=data_root,
ann_file='waymo_infos_train.pkl', ann_file='waymo_infos_train.pkl',
data_prefix=dict(pts='training/velodyne'), data_prefix=dict(
pts='training/velodyne', sweeps='training/velodyne'),
pipeline=train_pipeline, pipeline=train_pipeline,
modality=input_modality, modality=input_modality,
test_mode=False, test_mode=False,
...@@ -97,7 +108,8 @@ train_dataloader = dict( ...@@ -97,7 +108,8 @@ train_dataloader = dict(
# and box_type_3d='Depth' in sunrgbd and scannet dataset. # and box_type_3d='Depth' in sunrgbd and scannet dataset.
box_type_3d='LiDAR', box_type_3d='LiDAR',
# load one frame every five frames # load one frame every five frames
load_interval=5))) load_interval=5,
file_client_args=file_client_args)))
val_dataloader = dict( val_dataloader = dict(
batch_size=1, batch_size=1,
num_workers=1, num_workers=1,
...@@ -107,13 +119,14 @@ val_dataloader = dict( ...@@ -107,13 +119,14 @@ val_dataloader = dict(
dataset=dict( dataset=dict(
type=dataset_type, type=dataset_type,
data_root=data_root, data_root=data_root,
data_prefix=dict(pts='training/velodyne'), data_prefix=dict(pts='training/velodyne', sweeps='training/velodyne'),
ann_file='waymo_infos_val.pkl', ann_file='waymo_infos_val.pkl',
pipeline=eval_pipeline, pipeline=eval_pipeline,
modality=input_modality, modality=input_modality,
test_mode=True, test_mode=True,
metainfo=metainfo, metainfo=metainfo,
box_type_3d='LiDAR')) box_type_3d='LiDAR',
file_client_args=file_client_args))
test_dataloader = dict( test_dataloader = dict(
batch_size=1, batch_size=1,
...@@ -124,17 +137,23 @@ test_dataloader = dict( ...@@ -124,17 +137,23 @@ test_dataloader = dict(
dataset=dict( dataset=dict(
type=dataset_type, type=dataset_type,
data_root=data_root, data_root=data_root,
data_prefix=dict(pts='training/velodyne'), data_prefix=dict(pts='training/velodyne', sweeps='training/velodyne'),
ann_file='waymo_infos_val.pkl', ann_file='waymo_infos_val.pkl',
pipeline=eval_pipeline, pipeline=eval_pipeline,
modality=input_modality, modality=input_modality,
test_mode=True, test_mode=True,
metainfo=metainfo, metainfo=metainfo,
box_type_3d='LiDAR')) box_type_3d='LiDAR',
file_client_args=file_client_args))
val_evaluator = dict( val_evaluator = dict(
type='WaymoMetric', type='WaymoMetric',
ann_file='./data/waymo/kitti_format/waymo_infos_val.pkl', ann_file='./data/waymo/kitti_format/waymo_infos_val.pkl',
waymo_bin_file='./data/waymo/waymo_format/gt.bin', waymo_bin_file='./data/waymo/waymo_format/gt.bin',
data_root='./data/waymo/waymo_format') data_root='./data/waymo/waymo_format',
file_client_args=file_client_args)
test_evaluator = val_evaluator test_evaluator = val_evaluator
vis_backends = [dict(type='LocalVisBackend')]
visualizer = dict(
type='Det3DLocalVisualizer', vis_backends=vis_backends, name='visualizer')
...@@ -86,7 +86,8 @@ train_dataloader = dict( ...@@ -86,7 +86,8 @@ train_dataloader = dict(
type=dataset_type, type=dataset_type,
data_root=data_root, data_root=data_root,
ann_file='waymo_infos_train.pkl', ann_file='waymo_infos_train.pkl',
data_prefix=dict(pts='training/velodyne'), data_prefix=dict(
pts='training/velodyne', sweeps='training/velodyne'),
pipeline=train_pipeline, pipeline=train_pipeline,
modality=input_modality, modality=input_modality,
test_mode=False, test_mode=False,
...@@ -105,7 +106,7 @@ val_dataloader = dict( ...@@ -105,7 +106,7 @@ val_dataloader = dict(
dataset=dict( dataset=dict(
type=dataset_type, type=dataset_type,
data_root=data_root, data_root=data_root,
data_prefix=dict(pts='training/velodyne'), data_prefix=dict(pts='training/velodyne', sweeps='training/velodyne'),
ann_file='waymo_infos_val.pkl', ann_file='waymo_infos_val.pkl',
pipeline=eval_pipeline, pipeline=eval_pipeline,
modality=input_modality, modality=input_modality,
...@@ -122,7 +123,7 @@ test_dataloader = dict( ...@@ -122,7 +123,7 @@ test_dataloader = dict(
dataset=dict( dataset=dict(
type=dataset_type, type=dataset_type,
data_root=data_root, data_root=data_root,
data_prefix=dict(pts='training/velodyne'), data_prefix=dict(pts='training/velodyne', sweeps='training/velodyne'),
ann_file='waymo_infos_val.pkl', ann_file='waymo_infos_val.pkl',
pipeline=eval_pipeline, pipeline=eval_pipeline,
modality=input_modality, modality=input_modality,
...@@ -136,3 +137,7 @@ val_evaluator = dict( ...@@ -136,3 +137,7 @@ val_evaluator = dict(
waymo_bin_file='./data/waymo/waymo_format/gt.bin', waymo_bin_file='./data/waymo/waymo_format/gt.bin',
data_root='./data/waymo/waymo_format') data_root='./data/waymo/waymo_format')
test_evaluator = val_evaluator test_evaluator = val_evaluator
vis_backends = [dict(type='LocalVisBackend')]
visualizer = dict(
type='Det3DLocalVisualizer', vis_backends=vis_backends, name='visualizer')
# dataset settings
# D3 in the config name means the whole dataset is divided into 3 folds
# We only use one fold for efficient experiments
dataset_type = 'WaymoDataset'
data_root = 'data/waymo/kitti_format/'
class_names = ['Car', 'Pedestrian', 'Cyclist']
input_modality = dict(use_lidar=False, use_camera=True)
file_client_args = dict(backend='disk')
# Uncomment the following if use ceph or other file clients.
# See https://mmcv.readthedocs.io/en/latest/api.html#mmcv.fileio.FileClient
# for more details.
train_pipeline = [
dict(type='LoadImageFromFileMono3D'),
dict(
type='LoadAnnotations3D',
with_bbox=True,
with_label=True,
with_attr_label=False,
with_bbox_3d=True,
with_label_3d=True,
with_bbox_depth=True),
# base shape (1248, 832), scale (0.95, 1.05)
dict(
type='RandomResize3D',
scale=(1284, 832),
ratio_range=(0.95, 1.05),
keep_ratio=True,
),
dict(type='RandomFlip3D', flip_ratio_bev_horizontal=0.5),
dict(
type='Pack3DDetInputs',
keys=[
'img', 'gt_bboxes', 'gt_bboxes_labels', 'gt_bboxes_3d',
'gt_labels_3d', 'centers_2d', 'depths'
]),
]
test_pipeline = [
dict(type='LoadImageFromFileMono3D'),
dict(
type='RandomResize3D',
scale=(1248, 832),
ratio_range=(1., 1.),
keep_ratio=True),
dict(type='Pack3DDetInputs', keys=['img']),
]
# construct a pipeline for data and gt loading in show function
# please keep its loading function consistent with test_pipeline (e.g. client)
eval_pipeline = [
dict(type='LoadImageFromFileMono3D'),
dict(
type='RandomResize3D',
scale=(1248, 832),
ratio_range=(1., 1.),
keep_ratio=True),
dict(type='Pack3DDetInputs', keys=['img']),
]
metainfo = dict(CLASSES=class_names)
train_dataloader = dict(
batch_size=3,
num_workers=3,
persistent_workers=True,
sampler=dict(type='DefaultSampler', shuffle=True),
dataset=dict(
type=dataset_type,
data_root=data_root,
ann_file='waymo_infos_train.pkl',
data_prefix=dict(
pts='training/velodyne',
CAM_FRONT='training/image_0',
CAM_FRONT_RIGHT='training/image_1',
CAM_FRONT_LEFT='training/image_2',
CAM_SIDE_RIGHT='training/image_3',
CAM_SIDE_LEFT='training/image_4'),
pipeline=train_pipeline,
modality=input_modality,
test_mode=False,
metainfo=metainfo,
# we use box_type_3d='LiDAR' in kitti and nuscenes dataset
# and box_type_3d='Depth' in sunrgbd and scannet dataset.
box_type_3d='Camera',
task='mono3d',
# load one frame every three frames
load_interval=5))
val_dataloader = dict(
batch_size=1,
num_workers=1,
persistent_workers=True,
drop_last=False,
sampler=dict(type='DefaultSampler', shuffle=False),
dataset=dict(
type=dataset_type,
data_root=data_root,
data_prefix=dict(
pts='training/velodyne',
CAM_FRONT='training/image_0',
CAM_FRONT_RIGHT='training/image_1',
CAM_FRONT_LEFT='training/image_2',
CAM_SIDE_RIGHT='training/image_3',
CAM_SIDE_LEFT='training/image_4'),
ann_file='waymo_infos_val.pkl',
pipeline=eval_pipeline,
modality=input_modality,
test_mode=True,
metainfo=metainfo,
# we use box_type_3d='LiDAR' in kitti and nuscenes dataset
# and box_type_3d='Depth' in sunrgbd and scannet dataset.
box_type_3d='Camera',
task='mono3d',
))
test_dataloader = dict(
batch_size=1,
num_workers=1,
persistent_workers=True,
drop_last=False,
sampler=dict(type='DefaultSampler', shuffle=False),
dataset=dict(
type=dataset_type,
data_root=data_root,
data_prefix=dict(
pts='training/velodyne',
CAM_FRONT='training/image_0',
CAM_FRONT_RIGHT='training/image_1',
CAM_FRONT_LEFT='training/image_2',
CAM_SIDE_RIGHT='training/image_3',
CAM_SIDE_LEFT='training/image_4'),
ann_file='waymo_infos_val.pkl',
pipeline=eval_pipeline,
modality=input_modality,
test_mode=True,
metainfo=metainfo,
# we use box_type_3d='LiDAR' in kitti and nuscenes dataset
# and box_type_3d='Depth' in sunrgbd and scannet dataset.
box_type_3d='Camera',
task='mono3d',
))
val_evaluator = dict(
type='WaymoMetric',
ann_file='./data/waymo/kitti_format/waymo_infos_val.pkl',
waymo_bin_file='./data/waymo/waymo_format/cam_gt.bin',
data_root='./data/waymo/waymo_format',
metric='LET_mAP',
task='mono3d')
test_evaluator = val_evaluator
# dataset settings
# D3 in the config name means the whole dataset is divided into 3 folds
# We only use one fold for efficient experiments
dataset_type = 'WaymoDataset'
data_root = 'data/waymo/kitti_format/'
file_client_args = dict(backend='disk')
# Uncomment the following if use ceph or other file clients.
# See https://mmcv.readthedocs.io/en/latest/api.html#mmcv.fileio.FileClient
# for more details.
class_names = ['Car', 'Pedestrian', 'Cyclist']
input_modality = dict(use_lidar=False, use_camera=True)
point_cloud_range = [-35.0, -75.0, -2, 75.0, 75.0, 4]
train_transforms = [
dict(type='PhotoMetricDistortion3D'),
dict(
type='RandomResize3D',
scale=(1248, 832),
ratio_range=(0.95, 1.05),
keep_ratio=True),
dict(type='RandomCrop3D', crop_size=(720, 1080)),
dict(type='RandomFlip3D', flip_ratio_bev_horizontal=0.5, flip_box3d=False),
]
train_pipeline = [
dict(type='LoadMultiViewImageFromFiles', to_float32=True),
dict(
type='LoadAnnotations3D',
with_bbox=True,
with_label=True,
with_attr_label=False,
with_bbox_3d=True,
with_label_3d=True,
with_bbox_depth=True),
dict(type='MultiViewWrapper', transforms=train_transforms),
dict(type='ObjectRangeFilter', point_cloud_range=point_cloud_range),
dict(type='ObjectNameFilter', classes=class_names),
dict(
type='Pack3DDetInputs', keys=[
'img',
'gt_bboxes_3d',
'gt_labels_3d',
]),
]
test_transforms = [
dict(
type='RandomResize3D',
scale=(1248, 832),
ratio_range=(1., 1.),
keep_ratio=True)
]
test_pipeline = [
dict(type='LoadMultiViewImageFromFiles', to_float32=True),
dict(type='MultiViewWrapper', transforms=test_transforms),
dict(type='Pack3DDetInputs', keys=['img'])
]
# construct a pipeline for data and gt loading in show function
# please keep its loading function consistent with test_pipeline (e.g. client)
eval_pipeline = [
dict(type='LoadMultiViewImageFromFiles', to_float32=True),
dict(type='MultiViewWrapper', transforms=test_transforms),
dict(type='Pack3DDetInputs', keys=['img'])
]
metainfo = dict(CLASSES=class_names)
train_dataloader = dict(
batch_size=2,
num_workers=2,
persistent_workers=True,
sampler=dict(type='DefaultSampler', shuffle=True),
dataset=dict(
type=dataset_type,
data_root=data_root,
ann_file='waymo_infos_train.pkl',
data_prefix=dict(
pts='training/velodyne',
CAM_FRONT='training/image_0',
CAM_FRONT_RIGHT='training/image_1',
CAM_FRONT_LEFT='training/image_2',
CAM_SIDE_RIGHT='training/image_3',
CAM_SIDE_LEFT='training/image_4',
),
pipeline=train_pipeline,
modality=input_modality,
test_mode=False,
metainfo=metainfo,
box_type_3d='Lidar',
load_interval=5,
))
val_dataloader = dict(
batch_size=1,
num_workers=1,
persistent_workers=True,
drop_last=False,
sampler=dict(type='DefaultSampler', shuffle=False),
dataset=dict(
type=dataset_type,
data_root=data_root,
ann_file='waymo_infos_val.pkl',
data_prefix=dict(
pts='training/velodyne',
CAM_FRONT='training/image_0',
CAM_FRONT_RIGHT='training/image_1',
CAM_FRONT_LEFT='training/image_2',
CAM_SIDE_RIGHT='training/image_3',
CAM_SIDE_LEFT='training/image_4',
),
pipeline=eval_pipeline,
modality=input_modality,
test_mode=True,
metainfo=metainfo,
box_type_3d='Lidar',
))
test_dataloader = dict(
batch_size=1,
num_workers=1,
persistent_workers=True,
drop_last=False,
sampler=dict(type='DefaultSampler', shuffle=False),
dataset=dict(
type=dataset_type,
data_root=data_root,
ann_file='waymo_infos_val.pkl',
data_prefix=dict(
pts='training/velodyne',
CAM_FRONT='training/image_0',
CAM_FRONT_RIGHT='training/image_1',
CAM_FRONT_LEFT='training/image_2',
CAM_SIDE_RIGHT='training/image_3',
CAM_SIDE_LEFT='training/image_4',
),
pipeline=eval_pipeline,
modality=input_modality,
test_mode=True,
metainfo=metainfo,
box_type_3d='Lidar',
))
val_evaluator = dict(
type='WaymoMetric',
ann_file='./data/waymo/kitti_format/waymo_infos_val.pkl',
waymo_bin_file='./data/waymo/waymo_format/cam_gt.bin',
data_root='./data/waymo/waymo_format',
metric='LET_mAP')
test_evaluator = val_evaluator
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment