|
|
|
|
|
|
|
|
|
|
|
voxel_size = [0.32, 0.32, 6] |
|
model = dict( |
|
type='MVXFasterRCNN', |
|
data_preprocessor=dict( |
|
type='Det3DDataPreprocessor', |
|
voxel=True, |
|
voxel_layer=dict( |
|
max_num_points=20, |
|
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( |
|
type='HardVFE', |
|
in_channels=5, |
|
feat_channels=[64], |
|
with_distance=False, |
|
voxel_size=voxel_size, |
|
with_cluster_center=True, |
|
with_voxel_center=True, |
|
point_cloud_range=[-74.88, -74.88, -2, 74.88, 74.88, 4], |
|
norm_cfg=dict(type='naiveSyncBN1d', eps=1e-3, momentum=0.01)), |
|
pts_middle_encoder=dict( |
|
type='PointPillarsScatter', in_channels=64, output_shape=[468, 468]), |
|
pts_backbone=dict( |
|
type='SECOND', |
|
in_channels=64, |
|
norm_cfg=dict(type='naiveSyncBN2d', eps=1e-3, momentum=0.01), |
|
layer_nums=[3, 5, 5], |
|
layer_strides=[1, 2, 2], |
|
out_channels=[64, 128, 256]), |
|
pts_neck=dict( |
|
type='SECONDFPN', |
|
norm_cfg=dict(type='naiveSyncBN2d', eps=1e-3, momentum=0.01), |
|
in_channels=[64, 128, 256], |
|
upsample_strides=[1, 2, 4], |
|
out_channels=[128, 128, 128]), |
|
pts_bbox_head=dict( |
|
type='Anchor3DHead', |
|
num_classes=3, |
|
in_channels=384, |
|
feat_channels=384, |
|
use_direction_classifier=True, |
|
anchor_generator=dict( |
|
type='AlignedAnchor3DRangeGenerator', |
|
ranges=[[-74.88, -74.88, -0.0345, 74.88, 74.88, -0.0345], |
|
[-74.88, -74.88, 0, 74.88, 74.88, 0], |
|
[-74.88, -74.88, -0.1188, 74.88, 74.88, -0.1188]], |
|
sizes=[ |
|
[4.73, 2.08, 1.77], |
|
[0.91, 0.84, 1.74], |
|
[1.81, 0.84, 1.77] |
|
], |
|
rotations=[0, 1.57], |
|
reshape_out=False), |
|
diff_rad_by_sin=True, |
|
dir_offset=-0.7854, |
|
bbox_coder=dict(type='DeltaXYZWLHRBBoxCoder', code_size=7), |
|
loss_cls=dict( |
|
type='mmdet.FocalLoss', |
|
use_sigmoid=True, |
|
gamma=2.0, |
|
alpha=0.25, |
|
loss_weight=1.0), |
|
loss_bbox=dict( |
|
type='mmdet.SmoothL1Loss', beta=1.0 / 9.0, loss_weight=1.0), |
|
loss_dir=dict( |
|
type='mmdet.CrossEntropyLoss', use_sigmoid=False, |
|
loss_weight=0.2)), |
|
|
|
train_cfg=dict( |
|
pts=dict( |
|
assigner=[ |
|
dict( |
|
type='Max3DIoUAssigner', |
|
iou_calculator=dict(type='BboxOverlapsNearest3D'), |
|
pos_iou_thr=0.55, |
|
neg_iou_thr=0.4, |
|
min_pos_iou=0.4, |
|
ignore_iof_thr=-1), |
|
dict( |
|
type='Max3DIoUAssigner', |
|
iou_calculator=dict(type='BboxOverlapsNearest3D'), |
|
pos_iou_thr=0.5, |
|
neg_iou_thr=0.3, |
|
min_pos_iou=0.3, |
|
ignore_iof_thr=-1), |
|
dict( |
|
type='Max3DIoUAssigner', |
|
iou_calculator=dict(type='BboxOverlapsNearest3D'), |
|
pos_iou_thr=0.5, |
|
neg_iou_thr=0.3, |
|
min_pos_iou=0.3, |
|
ignore_iof_thr=-1), |
|
], |
|
allowed_border=0, |
|
code_weight=[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], |
|
pos_weight=-1, |
|
debug=False)), |
|
test_cfg=dict( |
|
pts=dict( |
|
use_rotate_nms=True, |
|
nms_across_levels=False, |
|
nms_pre=4096, |
|
nms_thr=0.25, |
|
score_thr=0.1, |
|
min_bbox_size=0, |
|
max_num=500))) |
|
|