# Copyright (c) OpenMMLab. All rights reserved. from mmdet3d.models import Cylinder3D from mmdet3d.models.backbones import Asymm3DSpconv from mmdet3d.models.data_preprocessors import Det3DDataPreprocessor from mmdet3d.models.decode_heads.cylinder3d_head import Cylinder3DHead from mmdet3d.models.losses import LovaszLoss from mmdet3d.models.voxel_encoders import SegVFE grid_shape = [480, 360, 32] model = dict( type=Cylinder3D, data_preprocessor=dict( type=Det3DDataPreprocessor, voxel=True, voxel_type='cylindrical', voxel_layer=dict( grid_shape=grid_shape, point_cloud_range=[0, -3.14159265359, -4, 50, 3.14159265359, 2], max_num_points=-1, max_voxels=-1, ), ), voxel_encoder=dict( type=SegVFE, feat_channels=[64, 128, 256, 256], in_channels=6, with_voxel_center=True, feat_compression=16, return_point_feats=False), backbone=dict( type=Asymm3DSpconv, grid_size=grid_shape, input_channels=16, base_channels=32, norm_cfg=dict(type='BN1d', eps=1e-5, momentum=0.1)), decode_head=dict( type=Cylinder3DHead, channels=128, num_classes=20, loss_ce=dict( type='mmdet.CrossEntropyLoss', use_sigmoid=False, class_weight=None, loss_weight=1.0), loss_lovasz=dict(type=LovaszLoss, loss_weight=1.0, reduction='none'), ), train_cfg=None, test_cfg=dict(mode='whole'), )