_base_ = ['../_base_/default_runtime.py'] custom_imports = dict( imports=['models.cooperative'], allow_failed_imports=False) vis_backends = [dict(type='LocalVisBackend')] visualizer = dict( type='Det3DLocalVisualizer', vis_backends=vis_backends, name='visualizer') voxel_size = [0.4, 0.4, 4] point_cloud_range = [-140.8, -40, -3, 140.8, 40, 1] gt_range = [-140, -40, -10, 140, 40, 10] model_args = dict( max_cav=5, lidar_range=point_cloud_range, voxel_size=voxel_size, anchor_number=2, backbone_fix=False, compression=32, pillar_vfe=dict( num_filters=[64], use_absolute_xyz=True, use_norm=True, with_distance=False), point_pillar_scatter=dict( num_features=64, grid_size=[704, 200, 1]), base_bev_backbone=dict( layer_nums=[3, 5, 8], layer_strides=[2, 2, 2], num_filters=[64, 128, 256], num_upsample_filter=[128, 128, 128], upsample_strides=[1, 2, 4]), shrink_header=dict( kernal_size=[3], stride=[2], padding=[1], dim=[256], input_dim=384), ) anchor_args = dict( D=1, H=200, W=704, l=3.9, w=1.6, h=1.56, num=2, r=[0, 90], cav_lidar_range=point_cloud_range, feature_stride=4, vd=4, vh=0.4, vw=0.4, ) postprocess_args = dict( max_num=100, nms_thresh=0.15, target_args=dict( pos_threshold=0.6, neg_threshold=0.45, score_threshold=0.20, ), ) loss_args = dict( cls_weight=1.0, reg=2.0, ) model = dict( type='CooperativeDetector', arch='v2vam', max_cav=5, model_args=model_args, anchor_args=anchor_args, postprocess_args=postprocess_args, loss_args=loss_args, data_preprocessor=dict( type='SpVoxelCoopDet3DDataPreprocessor', voxel=True, voxel_layer=dict( max_num_points=32, point_cloud_range=point_cloud_range, voxel_size=voxel_size, max_voxels=(32000, 70000)), cav_lidar_range=point_cloud_range, voxel_size=voxel_size, max_points_per_voxel=32, max_voxel_train=32000, max_voxel_test=70000), bbox_head=dict( type='DetHead', in_channels=256, anchor_number=2, anchor_size=[3.9, 1.6, 1.56], anchor_rotations=[0, 90], anchor_z=-1.0, point_cloud_range=point_cloud_range, voxel_size=voxel_size, feature_stride=4, pos_threshold=0.6, neg_threshold=0.45, score_threshold=0.20, nms_threshold=0.15, max_num=100, cls_weight=1.0, reg_weight=2.0), train_cfg=None, test_cfg=None) dataset_type = 'CoopDataset' data_root = 'data/cooperscene' train_pipeline = [ dict(type='LoadCooperativePointCloud', coord_type='LIDAR', load_dim=4, use_dim=[0, 1, 2, 3], max_cav=5, proj_first=True, point_cloud_range=point_cloud_range), dict(type='LoadAnnotations3D', with_bbox_3d=True, with_label_3d=True), dict(type='ObjectRangeFilter', point_cloud_range=point_cloud_range), dict(type='PackCooperative3DDetInputs', keys=['gt_bboxes_3d', 'gt_labels_3d']), ] test_pipeline = [ dict(type='LoadCooperativePointCloud', coord_type='LIDAR', load_dim=4, use_dim=[0, 1, 2, 3], max_cav=5, proj_first=True, point_cloud_range=point_cloud_range), dict(type='PackCooperative3DDetInputs', keys=[]), ] train_dataloader = dict( batch_size=4, collate_fn=dict(type='cooperative_collate'), num_workers=4, sampler=dict(type='DefaultSampler', shuffle=True), dataset=dict( type=dataset_type, data_root=data_root, ann_file='cooperscene_coop_infos_train.pkl', data_prefix=dict(pts=''), pipeline=train_pipeline, pcd_limit_range=point_cloud_range, max_cav=5, com_range=70)) val_dataloader = dict( batch_size=4, collate_fn=dict(type='cooperative_collate'), num_workers=4, sampler=dict(type='DefaultSampler', shuffle=False), dataset=dict( type=dataset_type, data_root=data_root, ann_file='cooperscene_coop_infos_val.pkl', data_prefix=dict(pts=''), pipeline=test_pipeline, test_mode=True, pcd_limit_range=gt_range, max_cav=5, com_range=70)) test_dataloader = dict( batch_size=4, collate_fn=dict(type='cooperative_collate'), num_workers=4, sampler=dict(type='DefaultSampler', shuffle=False), dataset=dict( type=dataset_type, data_root=data_root, ann_file='cooperscene_coop_infos_test.pkl', data_prefix=dict(pts=''), pipeline=test_pipeline, test_mode=True, pcd_limit_range=gt_range, max_cav=5, com_range=70)) val_evaluator = dict(type='EvalMetric') test_evaluator = dict(type='EvalMetric') load_from = None optim_wrapper = dict( type='OptimWrapper', optimizer=dict(type='Adam', lr=1e-4, eps=1e-10, weight_decay=1e-4)) param_scheduler = [ dict(type='LinearLR', start_factor=0.2, by_epoch=True, begin=0, end=3), dict(type='CosineAnnealingLR', by_epoch=True, begin=3, end=30, eta_min=1e-6), ] train_cfg = dict(by_epoch=True, max_epochs=30, val_interval=1) val_cfg = dict() test_cfg = dict() default_hooks = dict( checkpoint=dict(type='CheckpointHook', interval=1))