Unverified Commit 86f6183d authored by ChaimZhu's avatar ChaimZhu Committed by GitHub
Browse files

[Refactor] move voxelization to data_preprocessor and fix new ut bugs (#1671)

* mv voxelization

* update

* update full

* fix configs

* improve docstring of data_preprocessor

* fix dynamic voxel config

* remove default voxel_type in config

* fix typos

* add docstring

* fix ut

* update

* fix docstring
parent a50c71dd
voxel_size = [0.1, 0.1, 0.2] voxel_size = [0.1, 0.1, 0.2]
model = dict( model = dict(
type='CenterPoint', type='CenterPoint',
data_preprocessor=dict(type='Det3DDataPreprocessor'), data_preprocessor=dict(
pts_voxel_layer=dict( type='Det3DDataPreprocessor',
max_num_points=10, voxel_size=voxel_size, max_voxels=(90000, 120000)), voxel=True,
voxel_layer=dict(
max_num_points=10,
voxel_size=voxel_size,
max_voxels=(90000, 120000))),
pts_voxel_encoder=dict(type='HardSimpleVFE', num_features=5), pts_voxel_encoder=dict(type='HardSimpleVFE', num_features=5),
pts_middle_encoder=dict( pts_middle_encoder=dict(
type='SparseEncoder', type='SparseEncoder',
......
voxel_size = [0.2, 0.2, 8] voxel_size = [0.2, 0.2, 8]
model = dict( model = dict(
type='CenterPoint', type='CenterPoint',
data_preprocessor=dict(type='Det3DDataPreprocessor'), data_preprocessor=dict(
pts_voxel_layer=dict( type='Det3DDataPreprocessor',
max_num_points=20, voxel_size=voxel_size, max_voxels=(30000, 40000)), voxel=True,
voxel_layer=dict(
max_num_points=20,
voxel_size=voxel_size,
max_voxels=(30000, 40000))),
pts_voxel_encoder=dict( pts_voxel_encoder=dict(
type='PillarFeatureNet', type='PillarFeatureNet',
in_channels=5, in_channels=5,
......
...@@ -6,10 +6,11 @@ _base_ = './hv_pointpillars_fpn_nus.py' ...@@ -6,10 +6,11 @@ _base_ = './hv_pointpillars_fpn_nus.py'
# If point cloud range is modified, do remember to change all related # If point cloud range is modified, do remember to change all related
# keys in the config. # keys in the config.
model = dict( model = dict(
pts_voxel_layer=dict( data_preprocessor=dict(
max_num_points=20, voxel_layer=dict(
point_cloud_range=[-80, -80, -5, 80, 80, 3], max_num_points=20,
max_voxels=(60000, 60000)), point_cloud_range=[-80, -80, -5, 80, 80, 3],
max_voxels=(60000, 60000))),
pts_voxel_encoder=dict( pts_voxel_encoder=dict(
feat_channels=[64], point_cloud_range=[-80, -80, -5, 80, 80, 3]), feat_channels=[64], point_cloud_range=[-80, -80, -5, 80, 80, 3]),
pts_middle_encoder=dict(output_shape=[640, 640]), pts_middle_encoder=dict(output_shape=[640, 640]),
......
...@@ -6,12 +6,14 @@ ...@@ -6,12 +6,14 @@
voxel_size = [0.25, 0.25, 8] voxel_size = [0.25, 0.25, 8]
model = dict( model = dict(
type='MVXFasterRCNN', type='MVXFasterRCNN',
data_preprocessor=dict(type='Det3DDataPreprocessor'), data_preprocessor=dict(
pts_voxel_layer=dict( type='Det3DDataPreprocessor',
max_num_points=64, voxel=True,
point_cloud_range=[-50, -50, -5, 50, 50, 3], voxel_layer=dict(
voxel_size=voxel_size, max_num_points=64,
max_voxels=(30000, 40000)), point_cloud_range=[-50, -50, -5, 50, 50, 3],
voxel_size=voxel_size,
max_voxels=(30000, 40000))),
pts_voxel_encoder=dict( pts_voxel_encoder=dict(
type='HardVFE', type='HardVFE',
in_channels=4, in_channels=4,
......
...@@ -6,10 +6,11 @@ _base_ = './hv_pointpillars_fpn_nus.py' ...@@ -6,10 +6,11 @@ _base_ = './hv_pointpillars_fpn_nus.py'
# If point cloud range is modified, do remember to change all related # If point cloud range is modified, do remember to change all related
# keys in the config. # keys in the config.
model = dict( model = dict(
pts_voxel_layer=dict( data_preprocessor=dict(
max_num_points=20, voxel_layer=dict(
point_cloud_range=[-100, -100, -5, 100, 100, 3], max_num_points=20,
max_voxels=(60000, 60000)), point_cloud_range=[-100, -100, -5, 100, 100, 3],
max_voxels=(60000, 60000))),
pts_voxel_encoder=dict( pts_voxel_encoder=dict(
feat_channels=[64], point_cloud_range=[-100, -100, -5, 100, 100, 3]), feat_channels=[64], point_cloud_range=[-100, -100, -5, 100, 100, 3]),
pts_middle_encoder=dict(output_shape=[800, 800]), pts_middle_encoder=dict(output_shape=[800, 800]),
......
...@@ -2,13 +2,14 @@ voxel_size = [0.16, 0.16, 4] ...@@ -2,13 +2,14 @@ voxel_size = [0.16, 0.16, 4]
model = dict( model = dict(
type='VoxelNet', type='VoxelNet',
data_preprocessor=dict(type='Det3DDataPreprocessor'), data_preprocessor=dict(
voxel_layer=dict( type='Det3DDataPreprocessor',
max_num_points=32, # max_points_per_voxel voxel=True,
point_cloud_range=[0, -39.68, -3, 69.12, 39.68, 1], voxel_layer=dict(
voxel_size=voxel_size, max_num_points=32, # max_points_per_voxel
max_voxels=(16000, 40000) # (training, testing) max_voxels point_cloud_range=[0, -39.68, -3, 69.12, 39.68, 1],
), voxel_size=voxel_size,
max_voxels=(16000, 40000))),
voxel_encoder=dict( voxel_encoder=dict(
type='PillarFeatureNet', type='PillarFeatureNet',
in_channels=4, in_channels=4,
......
...@@ -6,12 +6,14 @@ ...@@ -6,12 +6,14 @@
voxel_size = [0.32, 0.32, 6] voxel_size = [0.32, 0.32, 6]
model = dict( model = dict(
type='MVXFasterRCNN', type='MVXFasterRCNN',
data_preprocessor=dict(type='Det3DDataPreprocessor'), data_preprocessor=dict(
pts_voxel_layer=dict( type='Det3DDataPreprocessor',
max_num_points=20, voxel=True,
point_cloud_range=[-74.88, -74.88, -2, 74.88, 74.88, 4], voxel_layer=dict(
voxel_size=voxel_size, max_num_points=20,
max_voxels=(32000, 32000)), point_cloud_range=[-74.88, -74.88, -2, 74.88, 74.88, 4],
voxel_size=voxel_size,
max_voxels=(32000, 32000))),
pts_voxel_encoder=dict( pts_voxel_encoder=dict(
type='HardVFE', type='HardVFE',
in_channels=5, in_channels=5,
......
...@@ -2,12 +2,14 @@ voxel_size = [0.05, 0.05, 0.1] ...@@ -2,12 +2,14 @@ voxel_size = [0.05, 0.05, 0.1]
model = dict( model = dict(
type='VoxelNet', type='VoxelNet',
data_preprocessor=dict(type='Det3DDataPreprocessor'), data_preprocessor=dict(
voxel_layer=dict( type='Det3DDataPreprocessor',
max_num_points=5, voxel=True,
point_cloud_range=[0, -40, -3, 70.4, 40, 1], voxel_layer=dict(
voxel_size=voxel_size, max_num_points=5,
max_voxels=(16000, 40000)), point_cloud_range=[0, -40, -3, 70.4, 40, 1],
voxel_size=voxel_size,
max_voxels=(16000, 40000))),
voxel_encoder=dict(type='HardSimpleVFE'), voxel_encoder=dict(type='HardSimpleVFE'),
middle_encoder=dict( middle_encoder=dict(
type='SparseEncoder', type='SparseEncoder',
......
...@@ -6,12 +6,14 @@ ...@@ -6,12 +6,14 @@
voxel_size = [0.08, 0.08, 0.1] voxel_size = [0.08, 0.08, 0.1]
model = dict( model = dict(
type='MVXFasterRCNN', type='MVXFasterRCNN',
data_preprocessor=dict(type='Det3DDataPreprocessor'), data_preprocessor=dict(
pts_voxel_layer=dict( type='Det3DDataPreprocessor',
max_num_points=20, voxel=True,
point_cloud_range=[-76.8, -51.2, -2, 76.8, 51.2, 4], voxel_layer=dict(
voxel_size=voxel_size, max_num_points=20,
max_voxels=(80000, 90000)), point_cloud_range=[-76.8, -51.2, -2, 76.8, 51.2, 4],
voxel_size=voxel_size,
max_voxels=(80000, 90000))),
pts_voxel_encoder=dict(type='HardSimpleVFE', num_features=5), pts_voxel_encoder=dict(type='HardSimpleVFE', num_features=5),
pts_middle_encoder=dict( pts_middle_encoder=dict(
type='SparseEncoder', type='SparseEncoder',
......
...@@ -4,13 +4,14 @@ point_cloud_range = [0, -40, -3, 70.4, 40, 1] ...@@ -4,13 +4,14 @@ point_cloud_range = [0, -40, -3, 70.4, 40, 1]
model = dict( model = dict(
type='PartA2', type='PartA2',
data_preprocessor=dict(type='Det3DDataPreprocessor'), data_preprocessor=dict(
voxel_layer=dict( type='Det3DDataPreprocessor',
max_num_points=5, # max_points_per_voxel voxel=True,
point_cloud_range=point_cloud_range, voxel_layer=dict(
voxel_size=voxel_size, max_num_points=5, # max_points_per_voxel
max_voxels=(16000, 40000) # (training, testing) max_voxels point_cloud_range=point_cloud_range,
), voxel_size=voxel_size,
max_voxels=(16000, 40000))),
voxel_encoder=dict(type='HardSimpleVFE'), voxel_encoder=dict(type='HardSimpleVFE'),
middle_encoder=dict( middle_encoder=dict(
type='SparseUNet', type='SparseUNet',
......
...@@ -4,12 +4,14 @@ point_cloud_range = [0, -40, -3, 70.4, 40, 1] # velodyne coordinates, x, y, z ...@@ -4,12 +4,14 @@ point_cloud_range = [0, -40, -3, 70.4, 40, 1] # velodyne coordinates, x, y, z
model = dict( model = dict(
type='PartA2', type='PartA2',
voxel_layer=dict( data_preprocessor=dict(
max_num_points=5, # max_points_per_voxel type='Det3DDataPreprocessor',
point_cloud_range=point_cloud_range, voxel=True,
voxel_size=voxel_size, voxel_layer=dict(
max_voxels=(16000, 40000) # (training, testing) max_coxels max_num_points=5, # max_points_per_voxel
), point_cloud_range=point_cloud_range,
voxel_size=voxel_size,
max_voxels=(16000, 40000))),
voxel_encoder=dict(type='HardSimpleVFE'), voxel_encoder=dict(type='HardSimpleVFE'),
middle_encoder=dict( middle_encoder=dict(
type='SparseUNet', type='SparseUNet',
......
...@@ -3,11 +3,14 @@ voxel_size = [0.16, 0.16, 4] ...@@ -3,11 +3,14 @@ voxel_size = [0.16, 0.16, 4]
point_cloud_range = [0, -39.68, -3, 69.12, 39.68, 1] point_cloud_range = [0, -39.68, -3, 69.12, 39.68, 1]
model = dict( model = dict(
type='VoxelNet', type='VoxelNet',
voxel_layer=dict( data_preprocessor=dict(
max_num_points=64, type='Det3DDataPreprocessor',
point_cloud_range=point_cloud_range, voxel=True,
voxel_size=voxel_size, voxel_layer=dict(
max_voxels=(12000, 20000)), max_num_points=64,
point_cloud_range=point_cloud_range,
voxel_size=voxel_size,
max_voxels=(12000, 20000))),
voxel_encoder=dict( voxel_encoder=dict(
type='PillarFeatureNet', type='PillarFeatureNet',
in_channels=4, in_channels=4,
......
...@@ -3,12 +3,14 @@ point_cloud_range = [0, -39.68, -3, 69.12, 39.68, 1] ...@@ -3,12 +3,14 @@ point_cloud_range = [0, -39.68, -3, 69.12, 39.68, 1]
voxel_size = [0.16, 0.16, 4] voxel_size = [0.16, 0.16, 4]
model = dict( model = dict(
type='VoxelNet', type='VoxelNet',
voxel_layer=dict( data_preprocessor=dict(
max_num_points=32, # max_points_per_voxel type='Det3DDataPreprocessor',
point_cloud_range=point_cloud_range, voxel=True,
voxel_size=voxel_size, voxel_layer=dict(
max_voxels=(16000, 40000) # (training, testing) max_coxels max_num_points=32, # max_points_per_voxel
), point_cloud_range=point_cloud_range,
voxel_size=voxel_size,
max_voxels=(16000, 40000))),
voxel_encoder=dict( voxel_encoder=dict(
type='PillarFeatureNet', type='PillarFeatureNet',
in_channels=4, in_channels=4,
......
...@@ -4,11 +4,14 @@ point_cloud_range = [0, -40, -3, 70.4, 40, 1] ...@@ -4,11 +4,14 @@ point_cloud_range = [0, -40, -3, 70.4, 40, 1]
model = dict( model = dict(
type='VoxelNet', type='VoxelNet',
voxel_layer=dict( data_preprocessor=dict(
max_num_points=5, type='Det3DDataPreprocessor',
point_cloud_range=point_cloud_range, voxel=True,
voxel_size=voxel_size, voxel_layer=dict(
max_voxels=(16000, 40000)), max_num_points=5,
point_cloud_range=point_cloud_range,
voxel_size=voxel_size,
max_voxels=(16000, 40000))),
voxel_encoder=dict(type='HardSimpleVFE'), voxel_encoder=dict(type='HardSimpleVFE'),
middle_encoder=dict( middle_encoder=dict(
type='SparseEncoder', type='SparseEncoder',
......
...@@ -11,8 +11,9 @@ class_names = [ ...@@ -11,8 +11,9 @@ class_names = [
] ]
data_prefix = dict(pts='samples/LIDAR_TOP', img='') data_prefix = dict(pts='samples/LIDAR_TOP', img='')
model = dict( model = dict(
pts_voxel_layer=dict( data_preprocessor=dict(
voxel_size=voxel_size, point_cloud_range=point_cloud_range), voxel_layer=dict(
voxel_size=voxel_size, point_cloud_range=point_cloud_range)),
pts_middle_encoder=dict(sparse_shape=[41, 1440, 1440]), pts_middle_encoder=dict(sparse_shape=[41, 1440, 1440]),
pts_bbox_head=dict( pts_bbox_head=dict(
bbox_coder=dict( bbox_coder=dict(
......
...@@ -14,7 +14,8 @@ class_names = [ ...@@ -14,7 +14,8 @@ class_names = [
] ]
data_prefix = dict(pts='samples/LIDAR_TOP', img='') data_prefix = dict(pts='samples/LIDAR_TOP', img='')
model = dict( model = dict(
pts_voxel_layer=dict(point_cloud_range=point_cloud_range), data_preprocessor=dict(
voxel_layer=dict(point_cloud_range=point_cloud_range)),
pts_bbox_head=dict(bbox_coder=dict(pc_range=point_cloud_range[:2])), pts_bbox_head=dict(bbox_coder=dict(pc_range=point_cloud_range[:2])),
# model training and testing settings # model training and testing settings
train_cfg=dict(pts=dict(point_cloud_range=point_cloud_range)), train_cfg=dict(pts=dict(point_cloud_range=point_cloud_range)),
......
...@@ -14,7 +14,8 @@ class_names = [ ...@@ -14,7 +14,8 @@ class_names = [
] ]
data_prefix = dict(pts='samples/LIDAR_TOP', img='') data_prefix = dict(pts='samples/LIDAR_TOP', img='')
model = dict( model = dict(
pts_voxel_layer=dict(point_cloud_range=point_cloud_range), data_preprocessor=dict(
voxel_layer=dict(point_cloud_range=point_cloud_range)),
pts_voxel_encoder=dict(point_cloud_range=point_cloud_range), pts_voxel_encoder=dict(point_cloud_range=point_cloud_range),
pts_bbox_head=dict(bbox_coder=dict(pc_range=point_cloud_range[:2])), pts_bbox_head=dict(bbox_coder=dict(pc_range=point_cloud_range[:2])),
# model training and testing settings # model training and testing settings
......
...@@ -5,11 +5,13 @@ point_cloud_range = [0, -39.68, -3, 69.12, 39.68, 1] ...@@ -5,11 +5,13 @@ point_cloud_range = [0, -39.68, -3, 69.12, 39.68, 1]
model = dict( model = dict(
type='DynamicVoxelNet', type='DynamicVoxelNet',
voxel_layer=dict( data_preprocessor=dict(
max_num_points=-1, voxel_type='dynamic',
point_cloud_range=point_cloud_range, voxel_layer=dict(
voxel_size=voxel_size, max_num_points=-1,
max_voxels=(-1, -1)), point_cloud_range=point_cloud_range,
voxel_size=voxel_size,
max_voxels=(-1, -1))),
voxel_encoder=dict( voxel_encoder=dict(
type='DynamicPillarFeatureNet', type='DynamicPillarFeatureNet',
in_channels=4, in_channels=4,
......
...@@ -9,12 +9,14 @@ voxel_size = [0.05, 0.05, 0.1] ...@@ -9,12 +9,14 @@ voxel_size = [0.05, 0.05, 0.1]
model = dict( model = dict(
type='DynamicVoxelNet', type='DynamicVoxelNet',
voxel_layer=dict( data_preprocessor=dict(
_delete_=True, voxel_type='dynamic',
max_num_points=-1, voxel_layer=dict(
point_cloud_range=point_cloud_range, _delete_=True,
voxel_size=voxel_size, max_num_points=-1,
max_voxels=(-1, -1)), point_cloud_range=point_cloud_range,
voxel_size=voxel_size,
max_voxels=(-1, -1))),
voxel_encoder=dict( voxel_encoder=dict(
_delete_=True, _delete_=True,
type='DynamicSimpleVFE', type='DynamicSimpleVFE',
......
...@@ -5,12 +5,14 @@ voxel_size = [0.05, 0.05, 0.1] ...@@ -5,12 +5,14 @@ voxel_size = [0.05, 0.05, 0.1]
model = dict( model = dict(
type='DynamicVoxelNet', type='DynamicVoxelNet',
voxel_layer=dict( data_preprocessor=dict(
_delete_=True, voxel_type='dynamic',
max_num_points=-1, voxel_layer=dict(
point_cloud_range=point_cloud_range, _delete_=True,
voxel_size=voxel_size, max_num_points=-1,
max_voxels=(-1, -1)), point_cloud_range=point_cloud_range,
voxel_size=voxel_size,
max_voxels=(-1, -1))),
voxel_encoder=dict( voxel_encoder=dict(
_delete_=True, _delete_=True,
type='DynamicSimpleVFE', type='DynamicSimpleVFE',
......
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