├── mmdet3d ├── .mim │ ├── configs │ ├── tools │ └── model-index.yml ├── ops │ ├── bev_pool_v2 │ │ ├── __init__.py │ │ ├── __pycache__ │ │ │ ├── __init__.cpython-38.pyc │ │ │ └── bev_pool.cpython-38.pyc │ │ └── bev_pool_v2_ext.cpython-38-x86_64-linux-gnu.so │ ├── __pycache__ │ │ ├── norm.cpython-38.pyc │ │ ├── __init__.cpython-38.pyc │ │ └── sparse_block.cpython-38.pyc │ ├── paconv │ │ ├── __pycache__ │ │ │ ├── paconv.cpython-38.pyc │ │ │ ├── utils.cpython-38.pyc │ │ │ └── __init__.cpython-38.pyc │ │ └── __init__.py │ ├── spconv │ │ ├── __pycache__ │ │ │ └── __init__.cpython-38.pyc │ │ ├── overwrite_spconv │ │ │ ├── __init__.py │ │ │ └── __pycache__ │ │ │ │ ├── __init__.cpython-38.pyc │ │ │ │ └── write_spconv2.cpython-38.pyc │ │ └── __init__.py │ ├── dgcnn_modules │ │ ├── __pycache__ │ │ │ ├── __init__.cpython-38.pyc │ │ │ ├── dgcnn_fa_module.cpython-38.pyc │ │ │ ├── dgcnn_fp_module.cpython-38.pyc │ │ │ └── dgcnn_gf_module.cpython-38.pyc │ │ └── __init__.py │ └── pointnet_modules │ │ ├── __pycache__ │ │ ├── __init__.cpython-38.pyc │ │ ├── builder.cpython-38.pyc │ │ ├── paconv_sa_module.cpython-38.pyc │ │ ├── point_fp_module.cpython-38.pyc │ │ └── point_sa_module.cpython-38.pyc │ │ └── __init__.py ├── __pycache__ │ ├── version.cpython-37.pyc │ ├── version.cpython-38.pyc │ ├── __init__.cpython-37.pyc │ └── __init__.cpython-38.pyc ├── apis │ ├── __pycache__ │ │ ├── test.cpython-38.pyc │ │ ├── train.cpython-38.pyc │ │ ├── __init__.cpython-38.pyc │ │ └── inference.cpython-38.pyc │ └── __init__.py ├── utils │ ├── __pycache__ │ │ ├── logger.cpython-38.pyc │ │ ├── misc.cpython-38.pyc │ │ ├── __init__.cpython-38.pyc │ │ ├── collect_env.cpython-38.pyc │ │ ├── compat_cfg.cpython-38.pyc │ │ └── setup_env.cpython-38.pyc │ ├── __init__.py │ ├── collect_env.py │ └── logger.py ├── core │ ├── __pycache__ │ │ └── __init__.cpython-38.pyc │ ├── hook │ │ ├── __pycache__ │ │ │ ├── ema.cpython-38.pyc │ │ │ ├── utils.cpython-38.pyc │ │ │ ├── __init__.cpython-38.pyc │ │ │ └── sequentialsontrol.cpython-38.pyc │ │ ├── __init__.py │ │ ├── utils.py │ │ └── sequentialsontrol.py │ ├── bbox │ │ ├── __pycache__ │ │ │ ├── __init__.cpython-38.pyc │ │ │ ├── box_np_ops.cpython-38.pyc │ │ │ └── transforms.cpython-38.pyc │ │ ├── coders │ │ │ ├── __pycache__ │ │ │ │ ├── __init__.cpython-38.pyc │ │ │ │ ├── pgd_bbox_coder.cpython-38.pyc │ │ │ │ ├── fcos3d_bbox_coder.cpython-38.pyc │ │ │ │ ├── smoke_bbox_coder.cpython-38.pyc │ │ │ │ ├── monoflex_bbox_coder.cpython-38.pyc │ │ │ │ ├── anchor_free_bbox_coder.cpython-38.pyc │ │ │ │ ├── groupfree3d_bbox_coder.cpython-38.pyc │ │ │ │ ├── centerpoint_bbox_coders.cpython-38.pyc │ │ │ │ ├── delta_xyzwhlr_bbox_coder.cpython-38.pyc │ │ │ │ ├── point_xyzwhlr_bbox_coder.cpython-38.pyc │ │ │ │ └── partial_bin_based_bbox_coder.cpython-38.pyc │ │ │ └── __init__.py │ │ ├── samplers │ │ │ ├── __pycache__ │ │ │ │ ├── __init__.cpython-38.pyc │ │ │ │ └── iou_neg_piecewise_sampler.cpython-38.pyc │ │ │ └── __init__.py │ │ ├── structures │ │ │ ├── __pycache__ │ │ │ │ ├── utils.cpython-38.pyc │ │ │ │ ├── __init__.cpython-38.pyc │ │ │ │ ├── base_box3d.cpython-38.pyc │ │ │ │ ├── box_3d_mode.cpython-38.pyc │ │ │ │ ├── cam_box3d.cpython-38.pyc │ │ │ │ ├── depth_box3d.cpython-38.pyc │ │ │ │ ├── lidar_box3d.cpython-38.pyc │ │ │ │ └── coord_3d_mode.cpython-38.pyc │ │ │ └── __init__.py │ │ ├── assigners │ │ │ ├── __pycache__ │ │ │ │ └── __init__.cpython-38.pyc │ │ │ └── __init__.py │ │ └── iou_calculators │ │ │ ├── __pycache__ │ │ │ ├── __init__.cpython-38.pyc │ │ │ └── iou3d_calculator.cpython-38.pyc │ │ │ └── __init__.py │ ├── utils │ │ ├── __pycache__ │ │ │ ├── __init__.cpython-38.pyc │ │ │ ├── gaussian.cpython-38.pyc │ │ │ └── array_converter.cpython-38.pyc │ │ └── __init__.py │ ├── voxel │ │ ├── __pycache__ │ │ │ ├── __init__.cpython-38.pyc │ │ │ ├── builder.cpython-38.pyc │ │ │ └── voxel_generator.cpython-38.pyc │ │ ├── __init__.py │ │ └── builder.py │ ├── anchor │ │ ├── __pycache__ │ │ │ ├── __init__.cpython-38.pyc │ │ │ └── anchor_3d_generator.cpython-38.pyc │ │ └── __init__.py │ ├── points │ │ ├── __pycache__ │ │ │ ├── __init__.cpython-38.pyc │ │ │ ├── cam_points.cpython-38.pyc │ │ │ ├── base_points.cpython-38.pyc │ │ │ ├── depth_points.cpython-38.pyc │ │ │ └── lidar_points.cpython-38.pyc │ │ └── __init__.py │ ├── evaluation │ │ ├── __pycache__ │ │ │ ├── __init__.cpython-38.pyc │ │ │ ├── seg_eval.cpython-38.pyc │ │ │ ├── indoor_eval.cpython-38.pyc │ │ │ ├── lyft_eval.cpython-38.pyc │ │ │ └── instance_seg_eval.cpython-38.pyc │ │ ├── kitti_utils │ │ │ ├── __pycache__ │ │ │ │ ├── eval.cpython-38.pyc │ │ │ │ └── __init__.cpython-38.pyc │ │ │ └── __init__.py │ │ ├── waymo_utils │ │ │ └── __init__.py │ │ ├── scannet_utils │ │ │ ├── __pycache__ │ │ │ │ ├── util_3d.cpython-38.pyc │ │ │ │ ├── __init__.cpython-38.pyc │ │ │ │ └── evaluate_semantic_instance.cpython-38.pyc │ │ │ └── __init__.py │ │ └── __init__.py │ ├── visualizer │ │ ├── __pycache__ │ │ │ ├── __init__.cpython-38.pyc │ │ │ ├── image_vis.cpython-38.pyc │ │ │ └── show_result.cpython-38.pyc │ │ └── __init__.py │ ├── post_processing │ │ ├── __pycache__ │ │ │ ├── __init__.cpython-38.pyc │ │ │ ├── box3d_nms.cpython-38.pyc │ │ │ └── merge_augs.cpython-38.pyc │ │ └── __init__.py │ └── __init__.py ├── datasets │ ├── __pycache__ │ │ ├── utils.cpython-38.pyc │ │ ├── __init__.cpython-38.pyc │ │ ├── builder.cpython-38.pyc │ │ ├── custom_3d.cpython-38.pyc │ │ ├── custom_3d_seg.cpython-38.pyc │ │ ├── kitti_dataset.cpython-38.pyc │ │ ├── lyft_dataset.cpython-38.pyc │ │ ├── s3dis_dataset.cpython-38.pyc │ │ ├── waymo_dataset.cpython-38.pyc │ │ ├── scannet_dataset.cpython-38.pyc │ │ ├── sunrgbd_dataset.cpython-38.pyc │ │ ├── dataset_wrappers.cpython-38.pyc │ │ ├── kitti_mono_dataset.cpython-38.pyc │ │ ├── nuscenes_dataset.cpython-38.pyc │ │ ├── nuscenes_mono_dataset.cpython-38.pyc │ │ └── semantickitti_dataset.cpython-38.pyc │ └── pipelines │ │ └── __pycache__ │ │ ├── __init__.cpython-38.pyc │ │ ├── compose.cpython-38.pyc │ │ ├── loading.cpython-38.pyc │ │ ├── dbsampler.cpython-38.pyc │ │ ├── formating.cpython-38.pyc │ │ ├── test_time_aug.cpython-38.pyc │ │ ├── transforms_3d.cpython-38.pyc │ │ └── data_augment_utils.cpython-38.pyc ├── models │ ├── __pycache__ │ │ ├── builder.cpython-38.pyc │ │ └── __init__.cpython-38.pyc │ ├── necks │ │ ├── __pycache__ │ │ │ ├── fpn.cpython-38.pyc │ │ │ ├── __init__.cpython-38.pyc │ │ │ ├── dla_neck.cpython-38.pyc │ │ │ ├── lss_fpn.cpython-38.pyc │ │ │ ├── second_fpn.cpython-38.pyc │ │ │ ├── imvoxel_neck.cpython-38.pyc │ │ │ ├── view_transformer.cpython-38.pyc │ │ │ └── pointnet2_fp_neck.cpython-38.pyc │ │ └── __init__.py │ ├── utils │ │ ├── __pycache__ │ │ │ ├── mlp.cpython-38.pyc │ │ │ ├── __init__.cpython-38.pyc │ │ │ ├── handle_objs.cpython-38.pyc │ │ │ ├── clip_sigmoid.cpython-38.pyc │ │ │ ├── edge_indices.cpython-38.pyc │ │ │ └── gen_keypoints.cpython-38.pyc │ │ ├── __init__.py │ │ └── clip_sigmoid.py │ ├── backbones │ │ ├── __pycache__ │ │ │ ├── dgcnn.cpython-38.pyc │ │ │ ├── dla.cpython-38.pyc │ │ │ ├── resnet.cpython-38.pyc │ │ │ ├── second.cpython-38.pyc │ │ │ ├── __init__.cpython-38.pyc │ │ │ ├── mink_resnet.cpython-38.pyc │ │ │ ├── base_pointnet.cpython-38.pyc │ │ │ ├── multi_backbone.cpython-38.pyc │ │ │ ├── nostem_regnet.cpython-38.pyc │ │ │ ├── pointnet2_sa_msg.cpython-38.pyc │ │ │ └── pointnet2_sa_ssg.cpython-38.pyc │ │ └── __init__.py │ ├── detectors │ │ ├── __pycache__ │ │ │ ├── base.cpython-38.pyc │ │ │ ├── sassd.cpython-38.pyc │ │ │ ├── bevdet.cpython-38.pyc │ │ │ ├── exnerf.cpython-38.pyc │ │ │ ├── h3dnet.cpython-38.pyc │ │ │ ├── parta2.cpython-38.pyc │ │ │ ├── votenet.cpython-38.pyc │ │ │ ├── __init__.cpython-38.pyc │ │ │ ├── imvotenet.cpython-38.pyc │ │ │ ├── imvoxelnet.cpython-38.pyc │ │ │ ├── point_rcnn.cpython-38.pyc │ │ │ ├── ssd3dnet.cpython-38.pyc │ │ │ ├── two_stage.cpython-38.pyc │ │ │ ├── voxelnet.cpython-38.pyc │ │ │ ├── centerpoint.cpython-38.pyc │ │ │ ├── fcos_mono3d.cpython-38.pyc │ │ │ ├── kaolin_utils.cpython-38.pyc │ │ │ ├── single_stage.cpython-38.pyc │ │ │ ├── smoke_mono3d.cpython-38.pyc │ │ │ ├── groupfree3dnet.cpython-38.pyc │ │ │ ├── mvx_faster_rcnn.cpython-38.pyc │ │ │ ├── mvx_two_stage.cpython-38.pyc │ │ │ ├── dynamic_voxelnet.cpython-38.pyc │ │ │ ├── mink_single_stage.cpython-38.pyc │ │ │ └── single_stage_mono3d.cpython-38.pyc │ │ ├── smoke_mono3d.py │ │ ├── ssd3dnet.py │ │ └── fcos_mono3d.py │ ├── losses │ │ ├── __pycache__ │ │ │ ├── __init__.cpython-38.pyc │ │ │ ├── multibin_loss.cpython-38.pyc │ │ │ ├── chamfer_distance.cpython-38.pyc │ │ │ ├── rotated_iou_loss.cpython-38.pyc │ │ │ ├── axis_aligned_iou_loss.cpython-38.pyc │ │ │ ├── uncertain_smooth_l1_loss.cpython-38.pyc │ │ │ └── paconv_regularization_loss.cpython-38.pyc │ │ └── __init__.py │ ├── segmentors │ │ ├── __pycache__ │ │ │ ├── base.cpython-38.pyc │ │ │ ├── __init__.cpython-38.pyc │ │ │ └── encoder_decoder.cpython-38.pyc │ │ └── __init__.py │ ├── dense_heads │ │ ├── __pycache__ │ │ │ ├── __init__.cpython-38.pyc │ │ │ ├── pgd_head.cpython-38.pyc │ │ │ ├── vote_head.cpython-38.pyc │ │ │ ├── anchor3d_head.cpython-38.pyc │ │ │ ├── fcaf3d_head.cpython-38.pyc │ │ │ ├── monoflex_head.cpython-38.pyc │ │ │ ├── ssd_3d_head.cpython-38.pyc │ │ │ ├── train_mixins.cpython-38.pyc │ │ │ ├── parta2_rpn_head.cpython-38.pyc │ │ │ ├── point_rpn_head.cpython-38.pyc │ │ │ ├── centerpoint_head.cpython-38.pyc │ │ │ ├── fcos_mono3d_head.cpython-38.pyc │ │ │ ├── free_anchor3d_head.cpython-38.pyc │ │ │ ├── groupfree3d_head.cpython-38.pyc │ │ │ ├── shape_aware_head.cpython-38.pyc │ │ │ ├── smoke_mono3d_head.cpython-38.pyc │ │ │ ├── base_conv_bbox_head.cpython-38.pyc │ │ │ ├── anchor_free_mono3d_head.cpython-38.pyc │ │ │ └── base_mono3d_dense_head.cpython-38.pyc │ │ └── __init__.py │ ├── model_utils │ │ ├── __pycache__ │ │ │ ├── __init__.cpython-38.pyc │ │ │ ├── transformer.cpython-38.pyc │ │ │ ├── vote_module.cpython-38.pyc │ │ │ └── edge_fusion_module.cpython-38.pyc │ │ └── __init__.py │ ├── roi_heads │ │ ├── __pycache__ │ │ │ ├── __init__.cpython-38.pyc │ │ │ ├── h3d_roi_head.cpython-38.pyc │ │ │ ├── base_3droi_head.cpython-38.pyc │ │ │ ├── point_rcnn_roi_head.cpython-38.pyc │ │ │ └── part_aggregation_roi_head.cpython-38.pyc │ │ ├── bbox_heads │ │ │ ├── __pycache__ │ │ │ │ ├── __init__.cpython-38.pyc │ │ │ │ ├── h3d_bbox_head.cpython-38.pyc │ │ │ │ ├── parta2_bbox_head.cpython-38.pyc │ │ │ │ └── point_rcnn_bbox_head.cpython-38.pyc │ │ │ └── __init__.py │ │ ├── mask_heads │ │ │ ├── __pycache__ │ │ │ │ ├── __init__.cpython-38.pyc │ │ │ │ ├── primitive_head.cpython-38.pyc │ │ │ │ └── pointwise_semantic_head.cpython-38.pyc │ │ │ └── __init__.py │ │ ├── roi_extractors │ │ │ ├── __pycache__ │ │ │ │ ├── __init__.cpython-38.pyc │ │ │ │ ├── single_roiaware_extractor.cpython-38.pyc │ │ │ │ └── single_roipoint_extractor.cpython-38.pyc │ │ │ └── __init__.py │ │ └── __init__.py │ ├── voxel_encoders │ │ ├── __pycache__ │ │ │ ├── utils.cpython-38.pyc │ │ │ ├── __init__.cpython-38.pyc │ │ │ ├── pillar_encoder.cpython-38.pyc │ │ │ └── voxel_encoder.cpython-38.pyc │ │ └── __init__.py │ ├── decode_heads │ │ ├── __pycache__ │ │ │ ├── __init__.cpython-38.pyc │ │ │ ├── decode_head.cpython-38.pyc │ │ │ ├── dgcnn_head.cpython-38.pyc │ │ │ ├── paconv_head.cpython-38.pyc │ │ │ └── pointnet2_head.cpython-38.pyc │ │ └── __init__.py │ ├── fusion_layers │ │ ├── __pycache__ │ │ │ ├── __init__.cpython-38.pyc │ │ │ ├── vote_fusion.cpython-38.pyc │ │ │ ├── point_fusion.cpython-38.pyc │ │ │ └── coord_transform.cpython-38.pyc │ │ └── __init__.py │ └── middle_encoders │ │ ├── __pycache__ │ │ ├── __init__.cpython-38.pyc │ │ ├── sparse_unet.cpython-38.pyc │ │ ├── pillar_scatter.cpython-38.pyc │ │ └── sparse_encoder.cpython-38.pyc │ │ └── __init__.py └── version.py ├── docs ├── zh_cn │ ├── changelog.md │ ├── compatibility.md │ ├── _static │ │ ├── image │ │ │ └── mmdet3d-logo.png │ │ └── css │ │ │ └── readthedocs.css │ ├── supported_tasks │ │ └── index.rst │ ├── switch_language.md │ ├── datasets │ │ └── index.rst │ ├── tutorials │ │ └── index.rst │ ├── Makefile │ └── make.bat ├── en │ ├── _static │ │ ├── image │ │ │ └── mmdet3d-logo.png │ │ └── css │ │ │ └── readthedocs.css │ ├── supported_tasks │ │ └── index.rst │ ├── switch_language.md │ ├── datasets │ │ └── index.rst │ ├── tutorials │ │ └── index.rst │ ├── Makefile │ └── make.bat └── networks │ ├── __pycache__ │ ├── layers.cpython-38.pyc │ ├── __init__.cpython-37.pyc │ ├── __init__.cpython-38.pyc │ ├── pose_cnn.cpython-37.pyc │ ├── pose_cnn.cpython-38.pyc │ ├── transformer.cpython-37.pyc │ ├── transformer.cpython-38.pyc │ ├── depth_decoder.cpython-37.pyc │ ├── depth_decoder.cpython-38.pyc │ ├── pose_decoder.cpython-37.pyc │ ├── pose_decoder.cpython-38.pyc │ ├── resnet_encoder.cpython-37.pyc │ └── resnet_encoder.cpython-38.pyc │ └── __init__.py ├── tests ├── data │ ├── lyft │ │ ├── val.txt │ │ ├── lyft_infos.pkl │ │ ├── lyft_infos_val.pkl │ │ ├── sample_results.pkl │ │ ├── v1.01-train │ │ │ ├── maps │ │ │ │ └── map_raster_palo_alto.png │ │ │ └── v1.01-train │ │ │ │ ├── log.json │ │ │ │ ├── map.json │ │ │ │ ├── sample.json │ │ │ │ ├── visibility.json │ │ │ │ ├── scene.json │ │ │ │ ├── category.json │ │ │ │ └── sensor.json │ │ └── lidar │ │ │ ├── host-a017_lidar1_1236118886501000046.bin │ │ │ ├── host-a017_lidar1_1236118886701083686.bin │ │ │ └── host-a017_lidar1_1236118886901125926.bin │ ├── kitti │ │ ├── a.bin │ │ ├── kitti_infos_mono3d.pkl │ │ ├── kitti_infos_train.pkl │ │ ├── kitti_dbinfos_train.pkl │ │ ├── mono3d_sample_results.pkl │ │ ├── mono3d_sample_results2d.pkl │ │ ├── training │ │ │ ├── image_2 │ │ │ │ ├── 000000.png │ │ │ │ └── 000007.png │ │ │ ├── velodyne │ │ │ │ └── 000000.bin │ │ │ └── velodyne_reduced │ │ │ │ └── 000000.bin │ │ └── kitti_gt_database │ │ │ └── 0_Pedestrian_0.bin │ ├── ops │ │ ├── fps_idx.npy │ │ └── features_for_fps_distance.npy │ ├── nuscenes │ │ ├── nus_info.pkl │ │ ├── mono3d_sample_results.pkl │ │ ├── samples │ │ │ ├── LIDAR_TOP │ │ │ │ └── n015-2018-08-02-17-16-37+0800__LIDAR_TOP__1533201470948018.pcd.bin │ │ │ └── CAM_BACK_LEFT │ │ │ │ └── n015-2018-07-18-11-07-57+0800__CAM_BACK_LEFT__1531883530447423.jpg │ │ └── sweeps │ │ │ └── LIDAR_TOP │ │ │ ├── n008-2018-09-18-12-07-26-0400__LIDAR_TOP__1537287083900561.pcd.bin │ │ │ └── n015-2018-08-02-17-16-37+0800__LIDAR_TOP__1533201470898274.pcd.bin │ ├── s3dis │ │ ├── s3dis_infos.pkl │ │ ├── points │ │ │ └── Area_1_office_2.bin │ │ ├── instance_mask │ │ │ └── Area_1_office_2.bin │ │ └── semantic_mask │ │ │ └── Area_1_office_2.bin │ ├── scannet │ │ ├── scannet_infos.pkl │ │ ├── points │ │ │ └── scene0000_00.bin │ │ ├── semantic_mask │ │ │ └── scene0000_00.bin │ │ └── instance_mask │ │ │ └── scene0000_00.bin │ ├── sunrgbd │ │ ├── points │ │ │ └── 000001.bin │ │ ├── sunrgbd_infos.pkl │ │ └── sunrgbd_trainval │ │ │ └── image │ │ │ └── 000001.jpg │ ├── waymo │ │ ├── waymo_format │ │ │ ├── gt.bin │ │ │ └── validation │ │ │ │ └── val.tfrecord │ │ └── kitti_format │ │ │ ├── waymo_infos_val.pkl │ │ │ ├── waymo_infos_train.pkl │ │ │ ├── waymo_dbinfos_train.pkl │ │ │ ├── training │ │ │ ├── image_0 │ │ │ │ ├── 0000000.png │ │ │ │ └── 1000000.png │ │ │ └── velodyne │ │ │ │ ├── 0000000.bin │ │ │ │ └── 1000000.bin │ │ │ └── waymo_gt_database │ │ │ └── 0_Car_0.bin │ └── semantickitti │ │ ├── semantickitti_infos.pkl │ │ └── sequences │ │ └── 00 │ │ ├── velodyne │ │ └── 000000.bin │ │ └── labels │ │ └── 000000.label ├── test_samples │ └── parta2_roihead_inputs.npz ├── test_models │ ├── test_voxel_encoder │ │ ├── test_voxel_generator.py │ │ └── test_voxel_encoders.py │ └── test_necks │ │ └── test_fpn.py └── test_metrics │ └── test_seg_eval.py ├── tools ├── data_converter │ ├── __init__.py │ └── __pycache__ │ │ ├── __init__.cpython-38.pyc │ │ ├── s3dis_data_utils.cpython-38.pyc │ │ ├── nuscenes_converter.cpython-38.pyc │ │ ├── scannet_data_utils.cpython-38.pyc │ │ └── sunrgbd_data_utils.cpython-38.pyc ├── misc │ ├── __pycache__ │ │ ├── fuse_conv_bn.cpython-37.pyc │ │ └── fuse_conv_bn.cpython-38.pyc │ └── print_config.py ├── dist_train.sh ├── dist_command.sh ├── dist_test.sh ├── dist_attk.sh ├── dist_attk_target.sh ├── dist_attk_semantic.sh ├── dist_attk_transfer.sh ├── update_data_coords.sh ├── create_data.sh ├── slurm_test.sh ├── slurm_train.sh └── model_converters │ └── publish_model.py ├── requirements.txt ├── configs ├── nuimages │ ├── mask_rcnn_r101_fpn_1x_nuim.py │ ├── cascade_mask_rcnn_r101_fpn_1x_nuim.py │ ├── htc_r50_fpn_coco-20e_20e_nuim.py │ ├── htc_r50_fpn_coco-20e_1x_nuim.py │ ├── cascade_mask_rcnn_r50_fpn_coco-20e_1x_nuim.py │ ├── mask_rcnn_r50_fpn_1x_nuim.py │ ├── cascade_mask_rcnn_r50_fpn_coco-20e_20e_nuim.py │ ├── mask_rcnn_x101_32x4d_fpn_1x_nuim.py │ ├── cascade_mask_rcnn_x101_32x4d_fpn_1x_nuim.py │ ├── mask_rcnn_r50_fpn_coco-2x_1x_nuim.py │ └── htc_x101_64x4d_fpn_dconv_c3-c5_coco-20e_16x1_20e_nuim.py ├── second │ ├── hv_second_secfpn_fp16_6x8_80e_kitti-3d-car.py │ ├── hv_second_secfpn_fp16_6x8_80e_kitti-3d-3class.py │ ├── hv_second_secfpn_6x8_80e_kitti-3d-3class.py │ └── hv_second_secfpn_6x8_80e_kitti-3d-car.py ├── centerpoint │ ├── centerpoint_01voxel_second_secfpn_circlenms_4x8_cyclic_20e_nus.py │ ├── centerpoint_02pillar_second_secfpn_circlenms_4x8_cyclic_20e_nus.py │ ├── centerpoint_0075voxel_second_secfpn_circlenms_4x8_cyclic_20e_nus.py │ ├── centerpoint_01voxel_second_secfpn_dcn_4x8_cyclic_20e_nus.py │ ├── centerpoint_02pillar_second_secfpn_dcn_4x8_cyclic_20e_nus.py │ ├── centerpoint_0075voxel_second_secfpn_dcn_4x8_cyclic_20e_nus.py │ ├── centerpoint_01voxel_second_secfpn_dcn_circlenms_4x8_cyclic_20e_nus.py │ ├── centerpoint_0075voxel_second_secfpn_dcn_circlenms_4x8_cyclic_20e_nus.py │ └── centerpoint_02pillar_second_secfpn_dcn_circlenms_4x8_cyclic_20e_nus.py ├── _base_ │ ├── models │ │ ├── paconv_cuda_ssg.py │ │ ├── fcaf3d.py │ │ ├── hv_pointpillars_fpn_lyft.py │ │ ├── hv_pointpillars_fpn_range100_lyft.py │ │ ├── dgcnn.py │ │ └── pointnet2_msg.py │ ├── schedules │ │ ├── seg_cosine_100e.py │ │ ├── mmdet_schedule_1x.py │ │ ├── seg_cosine_200e.py │ │ ├── seg_cosine_50e.py │ │ ├── seg_cosine_150e.py │ │ ├── schedule_3x.py │ │ ├── schedule_2x.py │ │ ├── cosine.py │ │ └── cyclic_20e.py │ └── default_runtime.py ├── pgd │ ├── pgd_r101_caffe_fpn_gn-head_2x16_2x_nus-mono3d.py │ ├── pgd_r101_caffe_fpn_gn-head_2x16_1x_nus-mono3d_finetune.py │ └── pgd_r101_caffe_fpn_gn-head_2x16_2x_nus-mono3d_finetune.py ├── pointpillars │ ├── hv_pointpillars_fpn_sbn-all_4x8_2x_nus-3d.py │ ├── hv_pointpillars_fpn_sbn-all_2x8_2x_lyft-3d.py │ ├── hv_pointpillars_fpn_sbn-all_range100_2x8_2x_lyft-3d.py │ ├── hv_pointpillars_fpn_sbn-all_fp16_2x8_2x_nus-3d.py │ ├── hv_pointpillars_secfpn_sbn-all_fp16_2x8_2x_nus-3d.py │ ├── hv_pointpillars_secfpn_sbn_2x16_2x_waymoD5-3d-3class.py │ ├── hv_pointpillars_secfpn_sbn_2x16_2x_waymo-3d-3class.py │ └── hv_pointpillars_secfpn_sbn_2x16_2x_waymoD5-3d-car.py ├── regnet │ ├── hv_pointpillars_regnet-400mf_fpn_sbn-all_fp16_2x8_2x_nus-3d.py │ ├── hv_pointpillars_regnet-1.6gf_fpn_sbn-all_4x8_2x_nus-3d.py │ ├── hv_pointpillars_regnet-400mf_fpn_sbn-all_4x8_2x_nus-3d.py │ ├── hv_pointpillars_regnet-400mf_fpn_sbn-all_2x8_2x_lyft-3d.py │ └── hv_pointpillars_regnet-400mf_fpn_sbn-all_range100_2x8_2x_lyft-3d.py ├── votenet │ ├── votenet_iouloss_8x8_scannet-3d-18class.py │ └── votenet_16x8_sunrgbd-3d-10class.py ├── fcos3d │ └── fcos3d_r101_caffe_fpn_gn-head_dcn_2x8_1x_nus-mono3d_finetune.py ├── dynamic_voxelization │ ├── dv_second_secfpn_6x8_80e_kitti-3d-car.py │ ├── dv_pointpillars_secfpn_6x8_160e_kitti-3d-car.py │ └── dv_second_secfpn_2x8_cosine_80e_kitti-3d-3class.py ├── free_anchor │ ├── hv_pointpillars_regnet-400mf_fpn_sbn-all_free-anchor_4x8_2x_nus-3d.py │ ├── hv_pointpillars_regnet-1.6gf_fpn_sbn-all_free-anchor_4x8_2x_nus-3d.py │ └── hv_pointpillars_regnet-3.2gf_fpn_sbn-all_free-anchor_4x8_2x_nus-3d.py ├── ssn │ ├── hv_ssn_regnet-400mf_secfpn_sbn-all_2x16_2x_nus-3d.py │ └── hv_ssn_regnet-400mf_secfpn_sbn-all_1x16_2x_lyft-3d.py ├── dgcnn │ ├── dgcnn_32x4_cosine_100e_s3dis_seg-3d-13class-area5.py │ └── metafile.yml ├── pointnet2 │ ├── pointnet2_ssg_16x2_cosine_50e_s3dis_seg-3d-13class.py │ └── pointnet2_msg_16x2_cosine_80e_s3dis_seg-3d-13class.py ├── 3dssd │ └── metafile.yml ├── point_rcnn │ └── metafile.yml ├── h3dnet │ └── metafile.yml ├── imvoxelnet │ └── metafile.yml ├── smoke │ └── metafile.yml ├── monoflex │ └── metafile.yml ├── paconv │ └── metafile.yml └── mvxnet │ └── metafile.yml └── setup.cfg /mmdet3d/.mim/configs: -------------------------------------------------------------------------------- 1 | ../../configs -------------------------------------------------------------------------------- /mmdet3d/.mim/tools: -------------------------------------------------------------------------------- 1 | ../../tools -------------------------------------------------------------------------------- /docs/zh_cn/changelog.md: -------------------------------------------------------------------------------- 1 | # 变更日志 2 | -------------------------------------------------------------------------------- /docs/zh_cn/compatibility.md: -------------------------------------------------------------------------------- 1 | ## 0.16.0 2 | -------------------------------------------------------------------------------- /mmdet3d/.mim/model-index.yml: -------------------------------------------------------------------------------- 1 | ../../model-index.yml -------------------------------------------------------------------------------- /tests/data/lyft/val.txt: -------------------------------------------------------------------------------- 1 | host-a101-lidar0-1240710366399037786-1240710391298976894 2 | -------------------------------------------------------------------------------- /tools/data_converter/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | -------------------------------------------------------------------------------- /mmdet3d/ops/bev_pool_v2/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Phigent Robotics. All rights reserved. 2 | -------------------------------------------------------------------------------- /tests/data/kitti/a.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tests/data/kitti/a.bin -------------------------------------------------------------------------------- /tests/data/ops/fps_idx.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tests/data/ops/fps_idx.npy -------------------------------------------------------------------------------- /tests/data/lyft/lyft_infos.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tests/data/lyft/lyft_infos.pkl -------------------------------------------------------------------------------- /tests/data/nuscenes/nus_info.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tests/data/nuscenes/nus_info.pkl -------------------------------------------------------------------------------- /tests/data/s3dis/s3dis_infos.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tests/data/s3dis/s3dis_infos.pkl -------------------------------------------------------------------------------- /tests/data/lyft/lyft_infos_val.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tests/data/lyft/lyft_infos_val.pkl -------------------------------------------------------------------------------- /tests/data/lyft/sample_results.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tests/data/lyft/sample_results.pkl -------------------------------------------------------------------------------- /tests/data/scannet/scannet_infos.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tests/data/scannet/scannet_infos.pkl -------------------------------------------------------------------------------- /tests/data/sunrgbd/points/000001.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tests/data/sunrgbd/points/000001.bin -------------------------------------------------------------------------------- /tests/data/sunrgbd/sunrgbd_infos.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tests/data/sunrgbd/sunrgbd_infos.pkl -------------------------------------------------------------------------------- /tests/data/waymo/waymo_format/gt.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tests/data/waymo/waymo_format/gt.bin -------------------------------------------------------------------------------- /docs/en/_static/image/mmdet3d-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/docs/en/_static/image/mmdet3d-logo.png -------------------------------------------------------------------------------- /tests/data/kitti/kitti_infos_mono3d.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tests/data/kitti/kitti_infos_mono3d.pkl -------------------------------------------------------------------------------- /tests/data/kitti/kitti_infos_train.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tests/data/kitti/kitti_infos_train.pkl -------------------------------------------------------------------------------- /docs/zh_cn/_static/image/mmdet3d-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/docs/zh_cn/_static/image/mmdet3d-logo.png -------------------------------------------------------------------------------- /mmdet3d/__pycache__/version.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/__pycache__/version.cpython-37.pyc -------------------------------------------------------------------------------- /mmdet3d/__pycache__/version.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/__pycache__/version.cpython-38.pyc -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | -r requirements/build.txt 2 | -r requirements/optional.txt 3 | -r requirements/runtime.txt 4 | -r requirements/tests.txt 5 | -------------------------------------------------------------------------------- /tests/data/kitti/kitti_dbinfos_train.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tests/data/kitti/kitti_dbinfos_train.pkl -------------------------------------------------------------------------------- /tests/data/kitti/mono3d_sample_results.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tests/data/kitti/mono3d_sample_results.pkl -------------------------------------------------------------------------------- /tests/data/scannet/points/scene0000_00.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tests/data/scannet/points/scene0000_00.bin -------------------------------------------------------------------------------- /docs/en/supported_tasks/index.rst: -------------------------------------------------------------------------------- 1 | .. toctree:: 2 | :maxdepth: 2 3 | 4 | lidar_det3d.md 5 | vision_det3d.md 6 | lidar_sem_seg3d.md 7 | -------------------------------------------------------------------------------- /mmdet3d/__pycache__/__init__.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/__pycache__/__init__.cpython-37.pyc -------------------------------------------------------------------------------- /mmdet3d/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/apis/__pycache__/test.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/apis/__pycache__/test.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/ops/__pycache__/norm.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/ops/__pycache__/norm.cpython-38.pyc -------------------------------------------------------------------------------- /tests/data/kitti/mono3d_sample_results2d.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tests/data/kitti/mono3d_sample_results2d.pkl -------------------------------------------------------------------------------- /tests/data/kitti/training/image_2/000000.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tests/data/kitti/training/image_2/000000.png -------------------------------------------------------------------------------- /tests/data/kitti/training/image_2/000007.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tests/data/kitti/training/image_2/000007.png -------------------------------------------------------------------------------- /tests/data/ops/features_for_fps_distance.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tests/data/ops/features_for_fps_distance.npy -------------------------------------------------------------------------------- /tests/data/s3dis/points/Area_1_office_2.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tests/data/s3dis/points/Area_1_office_2.bin -------------------------------------------------------------------------------- /tests/test_samples/parta2_roihead_inputs.npz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tests/test_samples/parta2_roihead_inputs.npz -------------------------------------------------------------------------------- /docs/networks/__pycache__/layers.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/docs/networks/__pycache__/layers.cpython-38.pyc -------------------------------------------------------------------------------- /docs/zh_cn/supported_tasks/index.rst: -------------------------------------------------------------------------------- 1 | .. toctree:: 2 | :maxdepth: 2 3 | 4 | lidar_det3d.md 5 | vision_det3d.md 6 | lidar_sem_seg3d.md 7 | -------------------------------------------------------------------------------- /mmdet3d/apis/__pycache__/train.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/apis/__pycache__/train.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/ops/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/ops/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/utils/__pycache__/logger.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/utils/__pycache__/logger.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/utils/__pycache__/misc.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/utils/__pycache__/misc.cpython-38.pyc -------------------------------------------------------------------------------- /tests/data/kitti/training/velodyne/000000.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tests/data/kitti/training/velodyne/000000.bin -------------------------------------------------------------------------------- /tests/data/nuscenes/mono3d_sample_results.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tests/data/nuscenes/mono3d_sample_results.pkl -------------------------------------------------------------------------------- /docs/networks/__pycache__/__init__.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/docs/networks/__pycache__/__init__.cpython-37.pyc -------------------------------------------------------------------------------- /docs/networks/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/docs/networks/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /docs/networks/__pycache__/pose_cnn.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/docs/networks/__pycache__/pose_cnn.cpython-37.pyc -------------------------------------------------------------------------------- /docs/networks/__pycache__/pose_cnn.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/docs/networks/__pycache__/pose_cnn.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/apis/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/apis/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/apis/__pycache__/inference.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/apis/__pycache__/inference.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/hook/__pycache__/ema.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/hook/__pycache__/ema.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/datasets/__pycache__/utils.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/datasets/__pycache__/utils.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/__pycache__/builder.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/__pycache__/builder.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/utils/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/utils/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /tests/data/semantickitti/semantickitti_infos.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tests/data/semantickitti/semantickitti_infos.pkl -------------------------------------------------------------------------------- /tests/data/waymo/kitti_format/waymo_infos_val.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tests/data/waymo/kitti_format/waymo_infos_val.pkl -------------------------------------------------------------------------------- /docs/networks/__pycache__/transformer.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/docs/networks/__pycache__/transformer.cpython-37.pyc -------------------------------------------------------------------------------- /docs/networks/__pycache__/transformer.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/docs/networks/__pycache__/transformer.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/hook/__pycache__/utils.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/hook/__pycache__/utils.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/datasets/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/datasets/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/datasets/__pycache__/builder.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/datasets/__pycache__/builder.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/necks/__pycache__/fpn.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/necks/__pycache__/fpn.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/utils/__pycache__/mlp.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/utils/__pycache__/mlp.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/ops/__pycache__/sparse_block.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/ops/__pycache__/sparse_block.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/ops/paconv/__pycache__/paconv.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/ops/paconv/__pycache__/paconv.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/ops/paconv/__pycache__/utils.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/ops/paconv/__pycache__/utils.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/utils/__pycache__/collect_env.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/utils/__pycache__/collect_env.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/utils/__pycache__/compat_cfg.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/utils/__pycache__/compat_cfg.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/utils/__pycache__/setup_env.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/utils/__pycache__/setup_env.cpython-38.pyc -------------------------------------------------------------------------------- /tests/data/sunrgbd/sunrgbd_trainval/image/000001.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tests/data/sunrgbd/sunrgbd_trainval/image/000001.jpg -------------------------------------------------------------------------------- /tests/data/waymo/kitti_format/waymo_infos_train.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tests/data/waymo/kitti_format/waymo_infos_train.pkl -------------------------------------------------------------------------------- /tools/misc/__pycache__/fuse_conv_bn.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tools/misc/__pycache__/fuse_conv_bn.cpython-37.pyc -------------------------------------------------------------------------------- /tools/misc/__pycache__/fuse_conv_bn.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tools/misc/__pycache__/fuse_conv_bn.cpython-38.pyc -------------------------------------------------------------------------------- /docs/networks/__pycache__/depth_decoder.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/docs/networks/__pycache__/depth_decoder.cpython-37.pyc -------------------------------------------------------------------------------- /docs/networks/__pycache__/depth_decoder.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/docs/networks/__pycache__/depth_decoder.cpython-38.pyc -------------------------------------------------------------------------------- /docs/networks/__pycache__/pose_decoder.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/docs/networks/__pycache__/pose_decoder.cpython-37.pyc -------------------------------------------------------------------------------- /docs/networks/__pycache__/pose_decoder.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/docs/networks/__pycache__/pose_decoder.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/bbox/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/bbox/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/hook/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/hook/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/utils/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/utils/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/utils/__pycache__/gaussian.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/utils/__pycache__/gaussian.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/voxel/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/voxel/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/voxel/__pycache__/builder.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/voxel/__pycache__/builder.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/datasets/__pycache__/custom_3d.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/datasets/__pycache__/custom_3d.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/ops/paconv/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/ops/paconv/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/ops/spconv/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/ops/spconv/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /tests/data/kitti/kitti_gt_database/0_Pedestrian_0.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tests/data/kitti/kitti_gt_database/0_Pedestrian_0.bin -------------------------------------------------------------------------------- /tests/data/kitti/training/velodyne_reduced/000000.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tests/data/kitti/training/velodyne_reduced/000000.bin -------------------------------------------------------------------------------- /tests/data/waymo/kitti_format/waymo_dbinfos_train.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tests/data/waymo/kitti_format/waymo_dbinfos_train.pkl -------------------------------------------------------------------------------- /tests/data/waymo/waymo_format/validation/val.tfrecord: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tests/data/waymo/waymo_format/validation/val.tfrecord -------------------------------------------------------------------------------- /configs/nuimages/mask_rcnn_r101_fpn_1x_nuim.py: -------------------------------------------------------------------------------- 1 | _base_ = './mask_rcnn_r50_fpn_1x_nuim.py' 2 | model = dict(pretrained='torchvision://resnet101', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/second/hv_second_secfpn_fp16_6x8_80e_kitti-3d-car.py: -------------------------------------------------------------------------------- 1 | _base_ = './hv_second_secfpn_6x8_80e_kitti-3d-car.py' 2 | # fp16 settings 3 | fp16 = dict(loss_scale=512.) 4 | -------------------------------------------------------------------------------- /docs/networks/__pycache__/resnet_encoder.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/docs/networks/__pycache__/resnet_encoder.cpython-37.pyc -------------------------------------------------------------------------------- /docs/networks/__pycache__/resnet_encoder.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/docs/networks/__pycache__/resnet_encoder.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/anchor/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/anchor/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/bbox/__pycache__/box_np_ops.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/bbox/__pycache__/box_np_ops.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/bbox/__pycache__/transforms.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/bbox/__pycache__/transforms.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/points/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/points/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/points/__pycache__/cam_points.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/points/__pycache__/cam_points.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/datasets/__pycache__/custom_3d_seg.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/datasets/__pycache__/custom_3d_seg.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/datasets/__pycache__/kitti_dataset.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/datasets/__pycache__/kitti_dataset.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/datasets/__pycache__/lyft_dataset.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/datasets/__pycache__/lyft_dataset.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/datasets/__pycache__/s3dis_dataset.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/datasets/__pycache__/s3dis_dataset.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/datasets/__pycache__/waymo_dataset.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/datasets/__pycache__/waymo_dataset.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/backbones/__pycache__/dgcnn.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/backbones/__pycache__/dgcnn.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/backbones/__pycache__/dla.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/backbones/__pycache__/dla.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/detectors/__pycache__/base.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/detectors/__pycache__/base.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/detectors/__pycache__/sassd.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/detectors/__pycache__/sassd.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/losses/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/losses/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/necks/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/necks/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/necks/__pycache__/dla_neck.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/necks/__pycache__/dla_neck.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/necks/__pycache__/lss_fpn.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/necks/__pycache__/lss_fpn.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/segmentors/__pycache__/base.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/segmentors/__pycache__/base.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/utils/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/utils/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/ops/paconv/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .paconv import PAConv, PAConvCUDA 3 | 4 | __all__ = ['PAConv', 'PAConvCUDA'] 5 | -------------------------------------------------------------------------------- /tests/data/lyft/v1.01-train/maps/map_raster_palo_alto.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tests/data/lyft/v1.01-train/maps/map_raster_palo_alto.png -------------------------------------------------------------------------------- /tests/data/semantickitti/sequences/00/velodyne/000000.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tests/data/semantickitti/sequences/00/velodyne/000000.bin -------------------------------------------------------------------------------- /tools/data_converter/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tools/data_converter/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /configs/second/hv_second_secfpn_fp16_6x8_80e_kitti-3d-3class.py: -------------------------------------------------------------------------------- 1 | _base_ = './hv_second_secfpn_6x8_80e_kitti-3d-3class.py' 2 | # fp16 settings 3 | fp16 = dict(loss_scale=512.) 4 | -------------------------------------------------------------------------------- /mmdet3d/core/evaluation/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/evaluation/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/evaluation/__pycache__/seg_eval.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/evaluation/__pycache__/seg_eval.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/points/__pycache__/base_points.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/points/__pycache__/base_points.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/points/__pycache__/depth_points.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/points/__pycache__/depth_points.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/points/__pycache__/lidar_points.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/points/__pycache__/lidar_points.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/visualizer/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/visualizer/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/datasets/__pycache__/scannet_dataset.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/datasets/__pycache__/scannet_dataset.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/datasets/__pycache__/sunrgbd_dataset.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/datasets/__pycache__/sunrgbd_dataset.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/backbones/__pycache__/resnet.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/backbones/__pycache__/resnet.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/backbones/__pycache__/second.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/backbones/__pycache__/second.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/detectors/__pycache__/bevdet.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/detectors/__pycache__/bevdet.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/detectors/__pycache__/exnerf.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/detectors/__pycache__/exnerf.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/detectors/__pycache__/h3dnet.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/detectors/__pycache__/h3dnet.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/detectors/__pycache__/parta2.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/detectors/__pycache__/parta2.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/detectors/__pycache__/votenet.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/detectors/__pycache__/votenet.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/necks/__pycache__/second_fpn.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/necks/__pycache__/second_fpn.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/utils/__pycache__/handle_objs.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/utils/__pycache__/handle_objs.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/ops/bev_pool_v2/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/ops/bev_pool_v2/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/ops/bev_pool_v2/__pycache__/bev_pool.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/ops/bev_pool_v2/__pycache__/bev_pool.cpython-38.pyc -------------------------------------------------------------------------------- /tests/data/waymo/kitti_format/training/image_0/0000000.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tests/data/waymo/kitti_format/training/image_0/0000000.png -------------------------------------------------------------------------------- /tests/data/waymo/kitti_format/training/image_0/1000000.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tests/data/waymo/kitti_format/training/image_0/1000000.png -------------------------------------------------------------------------------- /tests/data/waymo/kitti_format/training/velodyne/0000000.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tests/data/waymo/kitti_format/training/velodyne/0000000.bin -------------------------------------------------------------------------------- /tests/data/waymo/kitti_format/training/velodyne/1000000.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tests/data/waymo/kitti_format/training/velodyne/1000000.bin -------------------------------------------------------------------------------- /tests/data/waymo/kitti_format/waymo_gt_database/0_Car_0.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tests/data/waymo/kitti_format/waymo_gt_database/0_Car_0.bin -------------------------------------------------------------------------------- /mmdet3d/core/bbox/coders/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/bbox/coders/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/bbox/samplers/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/bbox/samplers/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/bbox/structures/__pycache__/utils.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/bbox/structures/__pycache__/utils.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/evaluation/__pycache__/indoor_eval.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/evaluation/__pycache__/indoor_eval.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/evaluation/__pycache__/lyft_eval.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/evaluation/__pycache__/lyft_eval.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/hook/__pycache__/sequentialsontrol.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/hook/__pycache__/sequentialsontrol.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/utils/__pycache__/array_converter.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/utils/__pycache__/array_converter.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/visualizer/__pycache__/image_vis.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/visualizer/__pycache__/image_vis.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/visualizer/__pycache__/show_result.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/visualizer/__pycache__/show_result.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/voxel/__pycache__/voxel_generator.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/voxel/__pycache__/voxel_generator.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/datasets/__pycache__/dataset_wrappers.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/datasets/__pycache__/dataset_wrappers.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/datasets/__pycache__/kitti_mono_dataset.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/datasets/__pycache__/kitti_mono_dataset.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/datasets/__pycache__/nuscenes_dataset.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/datasets/__pycache__/nuscenes_dataset.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/datasets/pipelines/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/datasets/pipelines/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/datasets/pipelines/__pycache__/compose.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/datasets/pipelines/__pycache__/compose.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/datasets/pipelines/__pycache__/loading.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/datasets/pipelines/__pycache__/loading.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/backbones/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/backbones/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/dense_heads/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/dense_heads/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/dense_heads/__pycache__/pgd_head.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/dense_heads/__pycache__/pgd_head.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/detectors/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/detectors/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/detectors/__pycache__/imvotenet.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/detectors/__pycache__/imvotenet.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/detectors/__pycache__/imvoxelnet.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/detectors/__pycache__/imvoxelnet.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/detectors/__pycache__/point_rcnn.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/detectors/__pycache__/point_rcnn.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/detectors/__pycache__/ssd3dnet.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/detectors/__pycache__/ssd3dnet.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/detectors/__pycache__/two_stage.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/detectors/__pycache__/two_stage.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/detectors/__pycache__/voxelnet.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/detectors/__pycache__/voxelnet.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/losses/__pycache__/multibin_loss.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/losses/__pycache__/multibin_loss.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/model_utils/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/model_utils/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/necks/__pycache__/imvoxel_neck.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/necks/__pycache__/imvoxel_neck.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/roi_heads/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/roi_heads/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/segmentors/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/segmentors/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/utils/__pycache__/clip_sigmoid.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/utils/__pycache__/clip_sigmoid.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/utils/__pycache__/edge_indices.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/utils/__pycache__/edge_indices.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/utils/__pycache__/gen_keypoints.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/utils/__pycache__/gen_keypoints.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/voxel_encoders/__pycache__/utils.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/voxel_encoders/__pycache__/utils.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/ops/dgcnn_modules/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/ops/dgcnn_modules/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /tests/data/lyft/lidar/host-a017_lidar1_1236118886501000046.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tests/data/lyft/lidar/host-a017_lidar1_1236118886501000046.bin -------------------------------------------------------------------------------- /tests/data/lyft/lidar/host-a017_lidar1_1236118886701083686.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tests/data/lyft/lidar/host-a017_lidar1_1236118886701083686.bin -------------------------------------------------------------------------------- /tests/data/lyft/lidar/host-a017_lidar1_1236118886901125926.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tests/data/lyft/lidar/host-a017_lidar1_1236118886901125926.bin -------------------------------------------------------------------------------- /docs/en/switch_language.md: -------------------------------------------------------------------------------- 1 | ## English 2 | 3 | ## 简体中文 4 | -------------------------------------------------------------------------------- /docs/zh_cn/switch_language.md: -------------------------------------------------------------------------------- 1 | ## English 2 | 3 | ## 简体中文 4 | -------------------------------------------------------------------------------- /mmdet3d/core/bbox/assigners/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/bbox/assigners/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/bbox/structures/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/bbox/structures/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/post_processing/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/post_processing/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/datasets/pipelines/__pycache__/dbsampler.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/datasets/pipelines/__pycache__/dbsampler.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/datasets/pipelines/__pycache__/formating.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/datasets/pipelines/__pycache__/formating.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/backbones/__pycache__/mink_resnet.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/backbones/__pycache__/mink_resnet.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/decode_heads/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/decode_heads/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/dense_heads/__pycache__/vote_head.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/dense_heads/__pycache__/vote_head.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/detectors/__pycache__/centerpoint.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/detectors/__pycache__/centerpoint.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/detectors/__pycache__/fcos_mono3d.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/detectors/__pycache__/fcos_mono3d.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/detectors/__pycache__/kaolin_utils.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/detectors/__pycache__/kaolin_utils.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/detectors/__pycache__/single_stage.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/detectors/__pycache__/single_stage.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/detectors/__pycache__/smoke_mono3d.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/detectors/__pycache__/smoke_mono3d.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/fusion_layers/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/fusion_layers/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/necks/__pycache__/view_transformer.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/necks/__pycache__/view_transformer.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/roi_heads/__pycache__/h3d_roi_head.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/roi_heads/__pycache__/h3d_roi_head.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/ops/pointnet_modules/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/ops/pointnet_modules/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/ops/pointnet_modules/__pycache__/builder.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/ops/pointnet_modules/__pycache__/builder.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/ops/spconv/overwrite_spconv/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .write_spconv2 import register_spconv2 3 | 4 | __all__ = ['register_spconv2'] 5 | -------------------------------------------------------------------------------- /tools/data_converter/__pycache__/s3dis_data_utils.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tools/data_converter/__pycache__/s3dis_data_utils.cpython-38.pyc -------------------------------------------------------------------------------- /configs/nuimages/cascade_mask_rcnn_r101_fpn_1x_nuim.py: -------------------------------------------------------------------------------- 1 | _base_ = './cascade_mask_rcnn_r50_fpn_1x_nuim.py' 2 | model = dict(pretrained='torchvision://resnet101', backbone=dict(depth=101)) 3 | -------------------------------------------------------------------------------- /configs/nuimages/htc_r50_fpn_coco-20e_20e_nuim.py: -------------------------------------------------------------------------------- 1 | _base_ = './htc_r50_fpn_coco-20e_1x_nuim.py' 2 | # learning policy 3 | lr_config = dict(step=[16, 19]) 4 | runner = dict(max_epochs=20) 5 | -------------------------------------------------------------------------------- /mmdet3d/core/anchor/__pycache__/anchor_3d_generator.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/anchor/__pycache__/anchor_3d_generator.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/bbox/coders/__pycache__/pgd_bbox_coder.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/bbox/coders/__pycache__/pgd_bbox_coder.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/bbox/structures/__pycache__/base_box3d.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/bbox/structures/__pycache__/base_box3d.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/bbox/structures/__pycache__/box_3d_mode.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/bbox/structures/__pycache__/box_3d_mode.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/bbox/structures/__pycache__/cam_box3d.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/bbox/structures/__pycache__/cam_box3d.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/bbox/structures/__pycache__/depth_box3d.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/bbox/structures/__pycache__/depth_box3d.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/bbox/structures/__pycache__/lidar_box3d.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/bbox/structures/__pycache__/lidar_box3d.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/evaluation/kitti_utils/__pycache__/eval.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/evaluation/kitti_utils/__pycache__/eval.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/evaluation/waymo_utils/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .prediction_kitti_to_waymo import KITTI2Waymo 3 | 4 | __all__ = ['KITTI2Waymo'] 5 | -------------------------------------------------------------------------------- /mmdet3d/core/post_processing/__pycache__/box3d_nms.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/post_processing/__pycache__/box3d_nms.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/post_processing/__pycache__/merge_augs.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/post_processing/__pycache__/merge_augs.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/datasets/__pycache__/nuscenes_mono_dataset.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/datasets/__pycache__/nuscenes_mono_dataset.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/datasets/__pycache__/semantickitti_dataset.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/datasets/__pycache__/semantickitti_dataset.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/datasets/pipelines/__pycache__/test_time_aug.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/datasets/pipelines/__pycache__/test_time_aug.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/datasets/pipelines/__pycache__/transforms_3d.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/datasets/pipelines/__pycache__/transforms_3d.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/backbones/__pycache__/base_pointnet.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/backbones/__pycache__/base_pointnet.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/backbones/__pycache__/multi_backbone.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/backbones/__pycache__/multi_backbone.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/backbones/__pycache__/nostem_regnet.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/backbones/__pycache__/nostem_regnet.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/decode_heads/__pycache__/decode_head.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/decode_heads/__pycache__/decode_head.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/decode_heads/__pycache__/dgcnn_head.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/decode_heads/__pycache__/dgcnn_head.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/decode_heads/__pycache__/paconv_head.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/decode_heads/__pycache__/paconv_head.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/dense_heads/__pycache__/anchor3d_head.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/dense_heads/__pycache__/anchor3d_head.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/dense_heads/__pycache__/fcaf3d_head.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/dense_heads/__pycache__/fcaf3d_head.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/dense_heads/__pycache__/monoflex_head.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/dense_heads/__pycache__/monoflex_head.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/dense_heads/__pycache__/ssd_3d_head.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/dense_heads/__pycache__/ssd_3d_head.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/dense_heads/__pycache__/train_mixins.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/dense_heads/__pycache__/train_mixins.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/detectors/__pycache__/groupfree3dnet.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/detectors/__pycache__/groupfree3dnet.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/detectors/__pycache__/mvx_faster_rcnn.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/detectors/__pycache__/mvx_faster_rcnn.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/detectors/__pycache__/mvx_two_stage.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/detectors/__pycache__/mvx_two_stage.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/fusion_layers/__pycache__/vote_fusion.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/fusion_layers/__pycache__/vote_fusion.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/losses/__pycache__/chamfer_distance.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/losses/__pycache__/chamfer_distance.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/losses/__pycache__/rotated_iou_loss.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/losses/__pycache__/rotated_iou_loss.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/middle_encoders/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/middle_encoders/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/model_utils/__pycache__/transformer.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/model_utils/__pycache__/transformer.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/model_utils/__pycache__/vote_module.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/model_utils/__pycache__/vote_module.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/necks/__pycache__/pointnet2_fp_neck.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/necks/__pycache__/pointnet2_fp_neck.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/roi_heads/__pycache__/base_3droi_head.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/roi_heads/__pycache__/base_3droi_head.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/voxel_encoders/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/voxel_encoders/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /tools/data_converter/__pycache__/nuscenes_converter.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tools/data_converter/__pycache__/nuscenes_converter.cpython-38.pyc -------------------------------------------------------------------------------- /tools/data_converter/__pycache__/scannet_data_utils.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tools/data_converter/__pycache__/scannet_data_utils.cpython-38.pyc -------------------------------------------------------------------------------- /tools/data_converter/__pycache__/sunrgbd_data_utils.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tools/data_converter/__pycache__/sunrgbd_data_utils.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/bbox/coders/__pycache__/fcos3d_bbox_coder.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/bbox/coders/__pycache__/fcos3d_bbox_coder.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/bbox/coders/__pycache__/smoke_bbox_coder.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/bbox/coders/__pycache__/smoke_bbox_coder.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/bbox/iou_calculators/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/bbox/iou_calculators/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/bbox/structures/__pycache__/coord_3d_mode.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/bbox/structures/__pycache__/coord_3d_mode.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/evaluation/__pycache__/instance_seg_eval.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/evaluation/__pycache__/instance_seg_eval.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/backbones/__pycache__/pointnet2_sa_msg.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/backbones/__pycache__/pointnet2_sa_msg.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/backbones/__pycache__/pointnet2_sa_ssg.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/backbones/__pycache__/pointnet2_sa_ssg.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/decode_heads/__pycache__/pointnet2_head.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/decode_heads/__pycache__/pointnet2_head.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/dense_heads/__pycache__/parta2_rpn_head.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/dense_heads/__pycache__/parta2_rpn_head.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/dense_heads/__pycache__/point_rpn_head.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/dense_heads/__pycache__/point_rpn_head.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/detectors/__pycache__/dynamic_voxelnet.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/detectors/__pycache__/dynamic_voxelnet.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/detectors/__pycache__/mink_single_stage.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/detectors/__pycache__/mink_single_stage.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/fusion_layers/__pycache__/point_fusion.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/fusion_layers/__pycache__/point_fusion.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/middle_encoders/__pycache__/sparse_unet.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/middle_encoders/__pycache__/sparse_unet.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/segmentors/__pycache__/encoder_decoder.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/segmentors/__pycache__/encoder_decoder.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/ops/dgcnn_modules/__pycache__/dgcnn_fa_module.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/ops/dgcnn_modules/__pycache__/dgcnn_fa_module.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/ops/dgcnn_modules/__pycache__/dgcnn_fp_module.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/ops/dgcnn_modules/__pycache__/dgcnn_fp_module.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/ops/dgcnn_modules/__pycache__/dgcnn_gf_module.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/ops/dgcnn_modules/__pycache__/dgcnn_gf_module.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/bbox/coders/__pycache__/monoflex_bbox_coder.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/bbox/coders/__pycache__/monoflex_bbox_coder.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/evaluation/kitti_utils/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/evaluation/kitti_utils/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/evaluation/scannet_utils/__pycache__/util_3d.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/evaluation/scannet_utils/__pycache__/util_3d.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/datasets/pipelines/__pycache__/data_augment_utils.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/datasets/pipelines/__pycache__/data_augment_utils.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/dense_heads/__pycache__/centerpoint_head.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/dense_heads/__pycache__/centerpoint_head.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/dense_heads/__pycache__/fcos_mono3d_head.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/dense_heads/__pycache__/fcos_mono3d_head.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/dense_heads/__pycache__/free_anchor3d_head.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/dense_heads/__pycache__/free_anchor3d_head.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/dense_heads/__pycache__/groupfree3d_head.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/dense_heads/__pycache__/groupfree3d_head.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/dense_heads/__pycache__/shape_aware_head.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/dense_heads/__pycache__/shape_aware_head.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/dense_heads/__pycache__/smoke_mono3d_head.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/dense_heads/__pycache__/smoke_mono3d_head.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/detectors/__pycache__/single_stage_mono3d.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/detectors/__pycache__/single_stage_mono3d.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/fusion_layers/__pycache__/coord_transform.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/fusion_layers/__pycache__/coord_transform.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/losses/__pycache__/axis_aligned_iou_loss.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/losses/__pycache__/axis_aligned_iou_loss.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/middle_encoders/__pycache__/pillar_scatter.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/middle_encoders/__pycache__/pillar_scatter.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/middle_encoders/__pycache__/sparse_encoder.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/middle_encoders/__pycache__/sparse_encoder.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/model_utils/__pycache__/edge_fusion_module.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/model_utils/__pycache__/edge_fusion_module.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/roi_heads/__pycache__/point_rcnn_roi_head.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/roi_heads/__pycache__/point_rcnn_roi_head.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/roi_heads/bbox_heads/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/roi_heads/bbox_heads/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/roi_heads/mask_heads/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/roi_heads/mask_heads/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/voxel_encoders/__pycache__/pillar_encoder.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/voxel_encoders/__pycache__/pillar_encoder.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/voxel_encoders/__pycache__/voxel_encoder.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/voxel_encoders/__pycache__/voxel_encoder.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/ops/bev_pool_v2/bev_pool_v2_ext.cpython-38-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/ops/bev_pool_v2/bev_pool_v2_ext.cpython-38-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /mmdet3d/ops/pointnet_modules/__pycache__/paconv_sa_module.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/ops/pointnet_modules/__pycache__/paconv_sa_module.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/ops/pointnet_modules/__pycache__/point_fp_module.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/ops/pointnet_modules/__pycache__/point_fp_module.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/ops/pointnet_modules/__pycache__/point_sa_module.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/ops/pointnet_modules/__pycache__/point_sa_module.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/ops/spconv/overwrite_spconv/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/ops/spconv/overwrite_spconv/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /docs/en/_static/css/readthedocs.css: -------------------------------------------------------------------------------- 1 | .header-logo { 2 | background-image: url("../image/mmdet3d-logo.png"); 3 | background-size: 182.5px 40px; 4 | height: 40px; 5 | width: 182.5px; 6 | } 7 | -------------------------------------------------------------------------------- /docs/zh_cn/_static/css/readthedocs.css: -------------------------------------------------------------------------------- 1 | .header-logo { 2 | background-image: url("../image/mmdet3d-logo.png"); 3 | background-size: 182.5px 40px; 4 | height: 40px; 5 | width: 182.5px; 6 | } 7 | -------------------------------------------------------------------------------- /mmdet3d/core/bbox/coders/__pycache__/anchor_free_bbox_coder.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/bbox/coders/__pycache__/anchor_free_bbox_coder.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/bbox/coders/__pycache__/groupfree3d_bbox_coder.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/bbox/coders/__pycache__/groupfree3d_bbox_coder.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/evaluation/scannet_utils/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/evaluation/scannet_utils/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/dense_heads/__pycache__/base_conv_bbox_head.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/dense_heads/__pycache__/base_conv_bbox_head.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/losses/__pycache__/uncertain_smooth_l1_loss.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/losses/__pycache__/uncertain_smooth_l1_loss.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/bbox/coders/__pycache__/centerpoint_bbox_coders.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/bbox/coders/__pycache__/centerpoint_bbox_coders.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/bbox/coders/__pycache__/delta_xyzwhlr_bbox_coder.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/bbox/coders/__pycache__/delta_xyzwhlr_bbox_coder.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/bbox/coders/__pycache__/point_xyzwhlr_bbox_coder.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/bbox/coders/__pycache__/point_xyzwhlr_bbox_coder.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/bbox/iou_calculators/__pycache__/iou3d_calculator.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/bbox/iou_calculators/__pycache__/iou3d_calculator.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/dense_heads/__pycache__/anchor_free_mono3d_head.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/dense_heads/__pycache__/anchor_free_mono3d_head.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/dense_heads/__pycache__/base_mono3d_dense_head.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/dense_heads/__pycache__/base_mono3d_dense_head.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/losses/__pycache__/paconv_regularization_loss.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/losses/__pycache__/paconv_regularization_loss.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/roi_heads/__pycache__/part_aggregation_roi_head.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/roi_heads/__pycache__/part_aggregation_roi_head.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/roi_heads/bbox_heads/__pycache__/h3d_bbox_head.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/roi_heads/bbox_heads/__pycache__/h3d_bbox_head.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/roi_heads/mask_heads/__pycache__/primitive_head.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/roi_heads/mask_heads/__pycache__/primitive_head.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/roi_heads/roi_extractors/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/roi_heads/roi_extractors/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/ops/spconv/overwrite_spconv/__pycache__/write_spconv2.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/ops/spconv/overwrite_spconv/__pycache__/write_spconv2.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/bbox/samplers/__pycache__/iou_neg_piecewise_sampler.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/bbox/samplers/__pycache__/iou_neg_piecewise_sampler.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/evaluation/kitti_utils/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .eval import kitti_eval, kitti_eval_coco_style 3 | 4 | __all__ = ['kitti_eval', 'kitti_eval_coco_style'] 5 | -------------------------------------------------------------------------------- /mmdet3d/models/roi_heads/bbox_heads/__pycache__/parta2_bbox_head.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/roi_heads/bbox_heads/__pycache__/parta2_bbox_head.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/bbox/coders/__pycache__/partial_bin_based_bbox_coder.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/bbox/coders/__pycache__/partial_bin_based_bbox_coder.cpython-38.pyc -------------------------------------------------------------------------------- /tests/data/lyft/v1.01-train/v1.01-train/log.json: -------------------------------------------------------------------------------- 1 | [{"date_captured": "2019-05-01", "location": "Palo Alto", "token": "9d0166ccd4af9c089738587f6e3d21cd9c8b6102787427da8c3b4f64161160c5", "vehicle": "a101", "logfile": ""}] 2 | -------------------------------------------------------------------------------- /configs/centerpoint/centerpoint_01voxel_second_secfpn_circlenms_4x8_cyclic_20e_nus.py: -------------------------------------------------------------------------------- 1 | _base_ = ['./centerpoint_01voxel_second_secfpn_4x8_cyclic_20e_nus.py'] 2 | 3 | model = dict(test_cfg=dict(pts=dict(nms_type='circle'))) 4 | -------------------------------------------------------------------------------- /configs/centerpoint/centerpoint_02pillar_second_secfpn_circlenms_4x8_cyclic_20e_nus.py: -------------------------------------------------------------------------------- 1 | _base_ = ['./centerpoint_02pillar_second_secfpn_4x8_cyclic_20e_nus.py'] 2 | 3 | model = dict(test_cfg=dict(pts=dict(nms_type='circle'))) 4 | -------------------------------------------------------------------------------- /mmdet3d/models/roi_heads/bbox_heads/__pycache__/point_rcnn_bbox_head.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/roi_heads/bbox_heads/__pycache__/point_rcnn_bbox_head.cpython-38.pyc -------------------------------------------------------------------------------- /configs/centerpoint/centerpoint_0075voxel_second_secfpn_circlenms_4x8_cyclic_20e_nus.py: -------------------------------------------------------------------------------- 1 | _base_ = ['./centerpoint_0075voxel_second_secfpn_4x8_cyclic_20e_nus.py'] 2 | 3 | model = dict(test_cfg=dict(pts=dict(nms_type='circle'))) 4 | -------------------------------------------------------------------------------- /mmdet3d/core/evaluation/scannet_utils/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .evaluate_semantic_instance import evaluate_matches, scannet_eval 3 | 4 | __all__ = ['scannet_eval', 'evaluate_matches'] 5 | -------------------------------------------------------------------------------- /mmdet3d/models/roi_heads/mask_heads/__pycache__/pointwise_semantic_head.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/roi_heads/mask_heads/__pycache__/pointwise_semantic_head.cpython-38.pyc -------------------------------------------------------------------------------- /configs/nuimages/htc_r50_fpn_coco-20e_1x_nuim.py: -------------------------------------------------------------------------------- 1 | _base_ = './htc_r50_fpn_1x_nuim.py' 2 | 3 | load_from = 'http://download.openmmlab.com/mmdetection/v2.0/htc/htc_r50_fpn_20e_coco/htc_r50_fpn_20e_coco_20200319-fe28c577.pth' # noqa 4 | -------------------------------------------------------------------------------- /mmdet3d/core/bbox/assigners/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmdet.core.bbox import AssignResult, BaseAssigner, MaxIoUAssigner 3 | 4 | __all__ = ['BaseAssigner', 'MaxIoUAssigner', 'AssignResult'] 5 | -------------------------------------------------------------------------------- /mmdet3d/models/segmentors/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .base import Base3DSegmentor 3 | from .encoder_decoder import EncoderDecoder3D 4 | 5 | __all__ = ['Base3DSegmentor', 'EncoderDecoder3D'] 6 | -------------------------------------------------------------------------------- /mmdet3d/core/evaluation/scannet_utils/__pycache__/evaluate_semantic_instance.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/core/evaluation/scannet_utils/__pycache__/evaluate_semantic_instance.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/core/voxel/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .builder import build_voxel_generator 3 | from .voxel_generator import VoxelGenerator 4 | 5 | __all__ = ['build_voxel_generator', 'VoxelGenerator'] 6 | -------------------------------------------------------------------------------- /mmdet3d/models/roi_heads/roi_extractors/__pycache__/single_roiaware_extractor.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/roi_heads/roi_extractors/__pycache__/single_roiaware_extractor.cpython-38.pyc -------------------------------------------------------------------------------- /mmdet3d/models/roi_heads/roi_extractors/__pycache__/single_roipoint_extractor.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/mmdet3d/models/roi_heads/roi_extractors/__pycache__/single_roipoint_extractor.cpython-38.pyc -------------------------------------------------------------------------------- /configs/_base_/models/paconv_cuda_ssg.py: -------------------------------------------------------------------------------- 1 | _base_ = './paconv_ssg.py' 2 | 3 | model = dict( 4 | backbone=dict( 5 | sa_cfg=dict( 6 | type='PAConvCUDASAModule', 7 | scorenet_cfg=dict(mlp_channels=[8, 16, 16])))) 8 | -------------------------------------------------------------------------------- /docs/networks/__init__.py: -------------------------------------------------------------------------------- 1 | from .resnet_encoder import ResnetEncoder 2 | from .depth_decoder import DepthDecoder 3 | from .pose_decoder import PoseDecoder 4 | from .pose_cnn import PoseCNN 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /configs/pgd/pgd_r101_caffe_fpn_gn-head_2x16_2x_nus-mono3d.py: -------------------------------------------------------------------------------- 1 | _base_ = './pgd_r101_caffe_fpn_gn-head_2x16_1x_nus-mono3d.py' 2 | # learning policy 3 | lr_config = dict(step=[16, 22]) 4 | total_epochs = 24 5 | runner = dict(max_epochs=total_epochs) 6 | -------------------------------------------------------------------------------- /configs/pointpillars/hv_pointpillars_fpn_sbn-all_4x8_2x_nus-3d.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/hv_pointpillars_fpn_nus.py', 3 | '../_base_/datasets/nus-3d.py', '../_base_/schedules/schedule_2x.py', 4 | '../_base_/default_runtime.py' 5 | ] 6 | -------------------------------------------------------------------------------- /configs/second/hv_second_secfpn_6x8_80e_kitti-3d-3class.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/hv_second_secfpn_kitti.py', 3 | '../_base_/datasets/kitti-3d-3class.py', 4 | '../_base_/schedules/cyclic_40e.py', '../_base_/default_runtime.py' 5 | ] 6 | -------------------------------------------------------------------------------- /docs/en/datasets/index.rst: -------------------------------------------------------------------------------- 1 | .. toctree:: 2 | :maxdepth: 2 3 | 4 | kitti_det.md 5 | nuscenes_det.md 6 | lyft_det.md 7 | waymo_det.md 8 | sunrgbd_det.md 9 | scannet_det.md 10 | scannet_sem_seg.md 11 | s3dis_sem_seg.md 12 | -------------------------------------------------------------------------------- /tests/data/semantickitti/sequences/00/labels/000000.label: -------------------------------------------------------------------------------- 1 | 222FF22F22FG4F222222222F2G2FFP2FFFGF22F2PF2F2FF2 -------------------------------------------------------------------------------- /configs/pointpillars/hv_pointpillars_fpn_sbn-all_2x8_2x_lyft-3d.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/hv_pointpillars_fpn_lyft.py', 3 | '../_base_/datasets/lyft-3d.py', '../_base_/schedules/schedule_2x.py', 4 | '../_base_/default_runtime.py' 5 | ] 6 | -------------------------------------------------------------------------------- /docs/zh_cn/datasets/index.rst: -------------------------------------------------------------------------------- 1 | .. toctree:: 2 | :maxdepth: 2 3 | 4 | kitti_det.md 5 | nuscenes_det.md 6 | lyft_det.md 7 | waymo_det.md 8 | sunrgbd_det.md 9 | scannet_det.md 10 | scannet_sem_seg.md 11 | s3dis_sem_seg.md 12 | -------------------------------------------------------------------------------- /docs/zh_cn/tutorials/index.rst: -------------------------------------------------------------------------------- 1 | .. toctree:: 2 | :maxdepth: 2 3 | 4 | config.md 5 | customize_dataset.md 6 | data_pipeline.md 7 | customize_models.md 8 | customize_runtime.md 9 | coord_sys_tutorial.md 10 | backends_support.md 11 | -------------------------------------------------------------------------------- /tests/data/lyft/v1.01-train/v1.01-train/map.json: -------------------------------------------------------------------------------- 1 | [{"log_tokens": ["9d0166ccd4af9c089738587f6e3d21cd9c8b6102787427da8c3b4f64161160c5"], "token": "53992ee3023e5494b90c316c183be829", "filename": "maps/map_raster_palo_alto.png", "category": "semantic_prior"}] 2 | -------------------------------------------------------------------------------- /tests/data/nuscenes/samples/LIDAR_TOP/n015-2018-08-02-17-16-37+0800__LIDAR_TOP__1533201470948018.pcd.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tests/data/nuscenes/samples/LIDAR_TOP/n015-2018-08-02-17-16-37+0800__LIDAR_TOP__1533201470948018.pcd.bin -------------------------------------------------------------------------------- /tests/data/nuscenes/sweeps/LIDAR_TOP/n008-2018-09-18-12-07-26-0400__LIDAR_TOP__1537287083900561.pcd.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tests/data/nuscenes/sweeps/LIDAR_TOP/n008-2018-09-18-12-07-26-0400__LIDAR_TOP__1537287083900561.pcd.bin -------------------------------------------------------------------------------- /tests/data/nuscenes/sweeps/LIDAR_TOP/n015-2018-08-02-17-16-37+0800__LIDAR_TOP__1533201470898274.pcd.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tests/data/nuscenes/sweeps/LIDAR_TOP/n015-2018-08-02-17-16-37+0800__LIDAR_TOP__1533201470898274.pcd.bin -------------------------------------------------------------------------------- /mmdet3d/models/roi_heads/mask_heads/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .pointwise_semantic_head import PointwiseSemanticHead 3 | from .primitive_head import PrimitiveHead 4 | 5 | __all__ = ['PointwiseSemanticHead', 'PrimitiveHead'] 6 | -------------------------------------------------------------------------------- /tests/data/nuscenes/samples/CAM_BACK_LEFT/n015-2018-07-18-11-07-57+0800__CAM_BACK_LEFT__1531883530447423.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnVision-Research/Adv3D/HEAD/tests/data/nuscenes/samples/CAM_BACK_LEFT/n015-2018-07-18-11-07-57+0800__CAM_BACK_LEFT__1531883530447423.jpg -------------------------------------------------------------------------------- /mmdet3d/models/decode_heads/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .dgcnn_head import DGCNNHead 3 | from .paconv_head import PAConvHead 4 | from .pointnet2_head import PointNet2Head 5 | 6 | __all__ = ['PointNet2Head', 'DGCNNHead', 'PAConvHead'] 7 | -------------------------------------------------------------------------------- /configs/pointpillars/hv_pointpillars_fpn_sbn-all_range100_2x8_2x_lyft-3d.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/hv_pointpillars_fpn_range100_lyft.py', 3 | '../_base_/datasets/range100_lyft-3d.py', 4 | '../_base_/schedules/schedule_2x.py', '../_base_/default_runtime.py' 5 | ] 6 | -------------------------------------------------------------------------------- /mmdet3d/core/hook/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .ema import MEGVIIEMAHook 3 | from .utils import is_parallel 4 | from .sequentialsontrol import SequentialControlHook 5 | 6 | __all__ = ['MEGVIIEMAHook', 'is_parallel', 'SequentialControlHook'] 7 | -------------------------------------------------------------------------------- /configs/pointpillars/hv_pointpillars_fpn_sbn-all_fp16_2x8_2x_nus-3d.py: -------------------------------------------------------------------------------- 1 | _base_ = './hv_pointpillars_fpn_sbn-all_4x8_2x_nus-3d.py' 2 | data = dict(samples_per_gpu=2, workers_per_gpu=2) 3 | # fp16 settings, the loss scale is specifically tuned to avoid Nan 4 | fp16 = dict(loss_scale=32.) 5 | -------------------------------------------------------------------------------- /mmdet3d/core/visualizer/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .show_result import (show_multi_modality_result, show_result, 3 | show_seg_result) 4 | 5 | __all__ = ['show_result', 'show_seg_result', 'show_multi_modality_result'] 6 | -------------------------------------------------------------------------------- /configs/pointpillars/hv_pointpillars_secfpn_sbn-all_fp16_2x8_2x_nus-3d.py: -------------------------------------------------------------------------------- 1 | _base_ = './hv_pointpillars_secfpn_sbn-all_4x8_2x_nus-3d.py' 2 | data = dict(samples_per_gpu=2, workers_per_gpu=2) 3 | # fp16 settings, the loss scale is specifically tuned to avoid Nan 4 | fp16 = dict(loss_scale=32.) 5 | -------------------------------------------------------------------------------- /configs/pointpillars/hv_pointpillars_secfpn_sbn_2x16_2x_waymoD5-3d-3class.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/hv_pointpillars_secfpn_waymo.py', 3 | '../_base_/datasets/waymoD5-3d-3class.py', 4 | '../_base_/schedules/schedule_2x.py', 5 | '../_base_/default_runtime.py', 6 | ] 7 | -------------------------------------------------------------------------------- /mmdet3d/models/model_utils/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .edge_fusion_module import EdgeFusionModule 3 | from .transformer import GroupFree3DMHA 4 | from .vote_module import VoteModule 5 | 6 | __all__ = ['VoteModule', 'GroupFree3DMHA', 'EdgeFusionModule'] 7 | -------------------------------------------------------------------------------- /mmdet3d/ops/dgcnn_modules/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .dgcnn_fa_module import DGCNNFAModule 3 | from .dgcnn_fp_module import DGCNNFPModule 4 | from .dgcnn_gf_module import DGCNNGFModule 5 | 6 | __all__ = ['DGCNNFAModule', 'DGCNNFPModule', 'DGCNNGFModule'] 7 | -------------------------------------------------------------------------------- /configs/regnet/hv_pointpillars_regnet-400mf_fpn_sbn-all_fp16_2x8_2x_nus-3d.py: -------------------------------------------------------------------------------- 1 | _base_ = './hv_pointpillars_regnet-400mf_fpn_sbn-all_4x8_2x_nus-3d.py' 2 | data = dict(samples_per_gpu=2, workers_per_gpu=2) 3 | # fp16 settings, the loss scale is specifically tuned to avoid Nan 4 | fp16 = dict(loss_scale=32.) 5 | -------------------------------------------------------------------------------- /configs/votenet/votenet_iouloss_8x8_scannet-3d-18class.py: -------------------------------------------------------------------------------- 1 | _base_ = ['./votenet_8x8_scannet-3d-18class.py'] 2 | 3 | # model settings, add iou loss 4 | model = dict( 5 | bbox_head=dict( 6 | iou_loss=dict( 7 | type='AxisAlignedIoULoss', reduction='sum', loss_weight=10.0 / 8 | 3.0))) 9 | -------------------------------------------------------------------------------- /docs/en/tutorials/index.rst: -------------------------------------------------------------------------------- 1 | .. toctree:: 2 | :maxdepth: 2 3 | 4 | config.md 5 | customize_dataset.md 6 | data_pipeline.md 7 | customize_models.md 8 | customize_runtime.md 9 | coord_sys_tutorial.md 10 | backends_support.md 11 | model_deployment.md 12 | pure_point_cloud_dataset.md 13 | -------------------------------------------------------------------------------- /configs/nuimages/cascade_mask_rcnn_r50_fpn_coco-20e_1x_nuim.py: -------------------------------------------------------------------------------- 1 | _base_ = './cascade_mask_rcnn_r50_fpn_1x_nuim.py' 2 | 3 | load_from = 'http://download.openmmlab.com/mmdetection/v2.0/cascade_rcnn/cascade_mask_rcnn_r50_fpn_20e_coco/cascade_mask_rcnn_r50_fpn_20e_coco_bbox_mAP-0.419__segm_mAP-0.365_20200504_174711-4af8e66e.pth' # noqa 4 | -------------------------------------------------------------------------------- /configs/nuimages/mask_rcnn_r50_fpn_1x_nuim.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/mask_rcnn_r50_fpn.py', 3 | '../_base_/datasets/nuim_instance.py', 4 | '../_base_/schedules/mmdet_schedule_1x.py', '../_base_/default_runtime.py' 5 | ] 6 | model = dict( 7 | roi_head=dict( 8 | bbox_head=dict(num_classes=10), mask_head=dict(num_classes=10))) 9 | -------------------------------------------------------------------------------- /mmdet3d/models/middle_encoders/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .pillar_scatter import PointPillarsScatter 3 | from .sparse_encoder import SparseEncoder, SparseEncoderSASSD 4 | from .sparse_unet import SparseUNet 5 | 6 | __all__ = [ 7 | 'PointPillarsScatter', 'SparseEncoder', 'SparseEncoderSASSD', 'SparseUNet' 8 | ] 9 | -------------------------------------------------------------------------------- /configs/fcos3d/fcos3d_r101_caffe_fpn_gn-head_dcn_2x8_1x_nus-mono3d_finetune.py: -------------------------------------------------------------------------------- 1 | _base_ = './fcos3d_r101_caffe_fpn_gn-head_dcn_2x8_1x_nus-mono3d.py' 2 | # model settings 3 | model = dict( 4 | train_cfg=dict( 5 | code_weight=[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.05, 0.05])) 6 | # optimizer 7 | optimizer = dict(lr=0.001) 8 | load_from = 'work_dirs/fcos3d_nus/latest.pth' 9 | -------------------------------------------------------------------------------- /configs/pointpillars/hv_pointpillars_secfpn_sbn_2x16_2x_waymo-3d-3class.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/hv_pointpillars_secfpn_waymo.py', 3 | '../_base_/datasets/waymoD5-3d-3class.py', 4 | '../_base_/schedules/schedule_2x.py', 5 | '../_base_/default_runtime.py', 6 | ] 7 | 8 | # data settings 9 | data = dict(train=dict(dataset=dict(load_interval=1))) 10 | -------------------------------------------------------------------------------- /mmdet3d/models/voxel_encoders/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .pillar_encoder import DynamicPillarFeatureNet, PillarFeatureNet 3 | from .voxel_encoder import DynamicSimpleVFE, DynamicVFE, HardSimpleVFE, HardVFE 4 | 5 | __all__ = [ 6 | 'PillarFeatureNet', 'DynamicPillarFeatureNet', 'HardVFE', 'DynamicVFE', 7 | 'HardSimpleVFE', 'DynamicSimpleVFE' 8 | ] 9 | -------------------------------------------------------------------------------- /tests/data/lyft/v1.01-train/v1.01-train/sample.json: -------------------------------------------------------------------------------- 1 | [{"next": "b8625b49ee4b7679cb81c50895bb918c98800c274e1bca22cd3208770bd3aaa1", "prev": "da683bff4f51b8073ef139476f5ad745711527a7bc7d83b20fcb871f32f9eda6", "token": "199e3146d98e6a2047bafbc222b92f5b67c4640a69b0d1d35b710242de816679", "scene_token": "9d0166ccd4af9c089738587f6e3d21cd9c8b6102787427da8c3b4f64161160c5", "timestamp": 1556675185903083.2}] 2 | -------------------------------------------------------------------------------- /configs/_base_/schedules/seg_cosine_100e.py: -------------------------------------------------------------------------------- 1 | # optimizer 2 | # This schedule is mainly used on S3DIS dataset in segmentation task 3 | optimizer = dict(type='SGD', lr=0.1, momentum=0.9, weight_decay=0.0001) 4 | optimizer_config = dict(grad_clip=None) 5 | lr_config = dict(policy='CosineAnnealing', warmup=None, min_lr=1e-5) 6 | 7 | # runtime settings 8 | runner = dict(type='EpochBasedRunner', max_epochs=100) 9 | -------------------------------------------------------------------------------- /mmdet3d/core/hook/utils.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from torch import nn 3 | 4 | __all__ = ['is_parallel'] 5 | 6 | 7 | def is_parallel(model): 8 | """check if model is in parallel mode.""" 9 | parallel_type = ( 10 | nn.parallel.DataParallel, 11 | nn.parallel.DistributedDataParallel, 12 | ) 13 | return isinstance(model, parallel_type) 14 | -------------------------------------------------------------------------------- /configs/pgd/pgd_r101_caffe_fpn_gn-head_2x16_1x_nus-mono3d_finetune.py: -------------------------------------------------------------------------------- 1 | _base_ = './pgd_r101_caffe_fpn_gn-head_2x16_1x_nus-mono3d.py' 2 | # model settings 3 | model = dict( 4 | train_cfg=dict(code_weight=[ 5 | 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.05, 0.05, 0.2, 0.2, 0.2, 0.2 6 | ])) 7 | # optimizer 8 | optimizer = dict(lr=0.002) 9 | load_from = 'work_dirs/pgd_nus_benchmark_1x/latest.pth' 10 | -------------------------------------------------------------------------------- /configs/pgd/pgd_r101_caffe_fpn_gn-head_2x16_2x_nus-mono3d_finetune.py: -------------------------------------------------------------------------------- 1 | _base_ = './pgd_r101_caffe_fpn_gn-head_2x16_2x_nus-mono3d.py' 2 | # model settings 3 | model = dict( 4 | train_cfg=dict(code_weight=[ 5 | 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.05, 0.05, 0.2, 0.2, 0.2, 0.2 6 | ])) 7 | # optimizer 8 | optimizer = dict(lr=0.002) 9 | load_from = 'work_dirs/pgd_nus_benchmark_2x/latest.pth' 10 | -------------------------------------------------------------------------------- /configs/_base_/schedules/mmdet_schedule_1x.py: -------------------------------------------------------------------------------- 1 | # optimizer 2 | optimizer = dict(type='SGD', lr=0.02, momentum=0.9, weight_decay=0.0001) 3 | optimizer_config = dict(grad_clip=None) 4 | # learning policy 5 | lr_config = dict( 6 | policy='step', 7 | warmup='linear', 8 | warmup_iters=500, 9 | warmup_ratio=0.001, 10 | step=[8, 11]) 11 | runner = dict(type='EpochBasedRunner', max_epochs=12) 12 | -------------------------------------------------------------------------------- /configs/_base_/schedules/seg_cosine_200e.py: -------------------------------------------------------------------------------- 1 | # optimizer 2 | # This schedule is mainly used on ScanNet dataset in segmentation task 3 | optimizer = dict(type='Adam', lr=0.001, weight_decay=0.01) 4 | optimizer_config = dict(grad_clip=None) 5 | lr_config = dict(policy='CosineAnnealing', warmup=None, min_lr=1e-5) 6 | momentum_config = None 7 | 8 | # runtime settings 9 | runner = dict(type='EpochBasedRunner', max_epochs=200) 10 | -------------------------------------------------------------------------------- /configs/_base_/schedules/seg_cosine_50e.py: -------------------------------------------------------------------------------- 1 | # optimizer 2 | # This schedule is mainly used on S3DIS dataset in segmentation task 3 | optimizer = dict(type='Adam', lr=0.001, weight_decay=0.001) 4 | optimizer_config = dict(grad_clip=None) 5 | lr_config = dict(policy='CosineAnnealing', warmup=None, min_lr=1e-5) 6 | momentum_config = None 7 | 8 | # runtime settings 9 | runner = dict(type='EpochBasedRunner', max_epochs=50) 10 | -------------------------------------------------------------------------------- /configs/nuimages/cascade_mask_rcnn_r50_fpn_coco-20e_20e_nuim.py: -------------------------------------------------------------------------------- 1 | _base_ = './cascade_mask_rcnn_r50_fpn_1x_nuim.py' 2 | 3 | # learning policy 4 | lr_config = dict(step=[16, 19]) 5 | runner = dict(max_epochs=20) 6 | 7 | load_from = 'http://download.openmmlab.com/mmdetection/v2.0/cascade_rcnn/cascade_mask_rcnn_r50_fpn_20e_coco/cascade_mask_rcnn_r50_fpn_20e_coco_bbox_mAP-0.419__segm_mAP-0.365_20200504_174711-4af8e66e.pth' # noqa 8 | -------------------------------------------------------------------------------- /mmdet3d/models/roi_heads/roi_extractors/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmdet.models.roi_heads.roi_extractors import SingleRoIExtractor 3 | from .single_roiaware_extractor import Single3DRoIAwareExtractor 4 | from .single_roipoint_extractor import Single3DRoIPointExtractor 5 | 6 | __all__ = [ 7 | 'SingleRoIExtractor', 'Single3DRoIAwareExtractor', 8 | 'Single3DRoIPointExtractor' 9 | ] 10 | -------------------------------------------------------------------------------- /configs/_base_/schedules/seg_cosine_150e.py: -------------------------------------------------------------------------------- 1 | # optimizer 2 | # This schedule is mainly used on S3DIS dataset in segmentation task 3 | optimizer = dict(type='SGD', lr=0.2, weight_decay=0.0001, momentum=0.9) 4 | optimizer_config = dict(grad_clip=None) 5 | lr_config = dict(policy='CosineAnnealing', warmup=None, min_lr=0.002) 6 | momentum_config = None 7 | 8 | # runtime settings 9 | runner = dict(type='EpochBasedRunner', max_epochs=150) 10 | -------------------------------------------------------------------------------- /mmdet3d/models/fusion_layers/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .coord_transform import (apply_3d_transformation, bbox_2d_transform, 3 | coord_2d_transform) 4 | from .point_fusion import PointFusion 5 | from .vote_fusion import VoteFusion 6 | 7 | __all__ = [ 8 | 'PointFusion', 'VoteFusion', 'apply_3d_transformation', 9 | 'bbox_2d_transform', 'coord_2d_transform' 10 | ] 11 | -------------------------------------------------------------------------------- /mmdet3d/models/utils/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .clip_sigmoid import clip_sigmoid 3 | from .edge_indices import get_edge_indices 4 | from .gen_keypoints import get_keypoints 5 | from .handle_objs import filter_outside_objs, handle_proj_objs 6 | from .mlp import MLP 7 | 8 | __all__ = [ 9 | 'clip_sigmoid', 'MLP', 'get_edge_indices', 'filter_outside_objs', 10 | 'handle_proj_objs', 'get_keypoints' 11 | ] 12 | -------------------------------------------------------------------------------- /tests/data/lyft/v1.01-train/v1.01-train/visibility.json: -------------------------------------------------------------------------------- 1 | [{"level": "v60-80", "description": "visibility of whole object is between 60 and 80%", "token": "3"}, {"level": "v0-40", "description": "visibility of whole object is between 0 and 40%", "token": "1"}, {"level": "v40-60", "description": "visibility of whole object is between 40 and 60%", "token": "2"}, {"level": "v80-100", "description": "visibility of whole object is between 80 and 100%", "token": "4"}] 2 | -------------------------------------------------------------------------------- /mmdet3d/core/evaluation/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .indoor_eval import indoor_eval 3 | from .instance_seg_eval import instance_seg_eval 4 | from .kitti_utils import kitti_eval, kitti_eval_coco_style 5 | from .lyft_eval import lyft_eval 6 | from .seg_eval import seg_eval 7 | 8 | __all__ = [ 9 | 'kitti_eval_coco_style', 'kitti_eval', 'indoor_eval', 'lyft_eval', 10 | 'seg_eval', 'instance_seg_eval' 11 | ] 12 | -------------------------------------------------------------------------------- /configs/_base_/schedules/schedule_3x.py: -------------------------------------------------------------------------------- 1 | # optimizer 2 | # This schedule is mainly used by models on indoor dataset, 3 | # e.g., VoteNet on SUNRGBD and ScanNet 4 | lr = 0.008 # max learning rate 5 | optimizer = dict(type='AdamW', lr=lr, weight_decay=0.01) 6 | optimizer_config = dict(grad_clip=dict(max_norm=10, norm_type=2)) 7 | lr_config = dict(policy='step', warmup=None, step=[24, 32]) 8 | # runtime settings 9 | runner = dict(type='EpochBasedRunner', max_epochs=36) 10 | -------------------------------------------------------------------------------- /configs/nuimages/mask_rcnn_x101_32x4d_fpn_1x_nuim.py: -------------------------------------------------------------------------------- 1 | _base_ = './mask_rcnn_r50_fpn_1x_nuim.py' 2 | model = dict( 3 | pretrained='open-mmlab://resnext101_32x4d', 4 | backbone=dict( 5 | type='ResNeXt', 6 | depth=101, 7 | groups=32, 8 | base_width=4, 9 | num_stages=4, 10 | out_indices=(0, 1, 2, 3), 11 | frozen_stages=1, 12 | norm_cfg=dict(type='BN', requires_grad=True), 13 | style='pytorch')) 14 | -------------------------------------------------------------------------------- /mmdet3d/core/utils/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .array_converter import ArrayConverter, array_converter 3 | from .gaussian import (draw_heatmap_gaussian, ellip_gaussian2D, gaussian_2d, 4 | gaussian_radius, get_ellip_gaussian_2D) 5 | 6 | __all__ = [ 7 | 'gaussian_2d', 'gaussian_radius', 'draw_heatmap_gaussian', 8 | 'ArrayConverter', 'array_converter', 'ellip_gaussian2D', 9 | 'get_ellip_gaussian_2D' 10 | ] 11 | -------------------------------------------------------------------------------- /configs/nuimages/cascade_mask_rcnn_x101_32x4d_fpn_1x_nuim.py: -------------------------------------------------------------------------------- 1 | _base_ = './cascade_mask_rcnn_r50_fpn_1x_nuim.py' 2 | model = dict( 3 | pretrained='open-mmlab://resnext101_32x4d', 4 | backbone=dict( 5 | type='ResNeXt', 6 | depth=101, 7 | groups=32, 8 | base_width=4, 9 | num_stages=4, 10 | out_indices=(0, 1, 2, 3), 11 | frozen_stages=1, 12 | norm_cfg=dict(type='BN', requires_grad=True), 13 | style='pytorch')) 14 | -------------------------------------------------------------------------------- /mmdet3d/ops/spconv/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .overwrite_spconv.write_spconv2 import register_spconv2 3 | 4 | try: 5 | import spconv 6 | except ImportError: 7 | IS_SPCONV2_AVAILABLE = False 8 | else: 9 | if hasattr(spconv, '__version__') and spconv.__version__ >= '2.0.0': 10 | IS_SPCONV2_AVAILABLE = register_spconv2() 11 | else: 12 | IS_SPCONV2_AVAILABLE = False 13 | 14 | __all__ = ['IS_SPCONV2_AVAILABLE'] 15 | -------------------------------------------------------------------------------- /tests/data/lyft/v1.01-train/v1.01-train/scene.json: -------------------------------------------------------------------------------- 1 | [{"description": "", "log_token": "9d0166ccd4af9c089738587f6e3d21cd9c8b6102787427da8c3b4f64161160c5", "name": "host-a101-lidar0-1240710366399037786-1240710391298976894", "first_sample_token": "0ebe3320a4049a1efe2af53c2094d102971a6269b70a72e127eaeabcbff9445d", "last_sample_token": "154956ad6f00a7c5e7058da67cca30b130ba0f3ea27dab72cd2ee802fa1f58cb", "nbr_samples": 126, "token": "9d0166ccd4af9c089738587f6e3d21cd9c8b6102787427da8c3b4f64161160c5"}] 2 | -------------------------------------------------------------------------------- /mmdet3d/core/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .anchor import * # noqa: F401, F403 3 | from .bbox import * # noqa: F401, F403 4 | from .evaluation import * # noqa: F401, F403 5 | from .hook import * # noqa: F401, F403 6 | from .points import * # noqa: F401, F403 7 | from .post_processing import * # noqa: F401, F403 8 | from .utils import * # noqa: F401, F403 9 | from .visualizer import * # noqa: F401, F403 10 | from .voxel import * # noqa: F401, F403 11 | -------------------------------------------------------------------------------- /mmdet3d/core/anchor/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmdet.core.anchor import build_prior_generator 3 | from .anchor_3d_generator import (AlignedAnchor3DRangeGenerator, 4 | AlignedAnchor3DRangeGeneratorPerCls, 5 | Anchor3DRangeGenerator) 6 | 7 | __all__ = [ 8 | 'AlignedAnchor3DRangeGenerator', 'Anchor3DRangeGenerator', 9 | 'build_prior_generator', 'AlignedAnchor3DRangeGeneratorPerCls' 10 | ] 11 | -------------------------------------------------------------------------------- /mmdet3d/utils/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmcv.utils import Registry, build_from_cfg, print_log 3 | 4 | from .collect_env import collect_env 5 | from .compat_cfg import compat_cfg 6 | from .logger import get_root_logger 7 | from .misc import find_latest_checkpoint 8 | from .setup_env import setup_multi_processes 9 | 10 | __all__ = [ 11 | 'Registry', 'build_from_cfg', 'get_root_logger', 'collect_env', 12 | 'print_log', 'setup_multi_processes', 'find_latest_checkpoint', 13 | 'compat_cfg' 14 | ] 15 | -------------------------------------------------------------------------------- /tools/dist_train.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | CONFIG=$1 4 | GPUS=$2 5 | NNODES=${NNODES:-1} 6 | NODE_RANK=${NODE_RANK:-0} 7 | PORT=$3 8 | MASTER_ADDR=${MASTER_ADDR:-"127.0.0.1"} 9 | 10 | PYTHONPATH="$(dirname $0)/..":$PYTHONPATH \ 11 | python -m torch.distributed.launch \ 12 | --nnodes=$NNODES \ 13 | --node_rank=$NODE_RANK \ 14 | --master_addr=$MASTER_ADDR \ 15 | --nproc_per_node=$GPUS \ 16 | --master_port=1278 \ 17 | $(dirname "$0")/train.py \ 18 | $CONFIG \ 19 | --seed 0 \ 20 | --launcher pytorch ${@:3} 21 | -------------------------------------------------------------------------------- /configs/_base_/schedules/schedule_2x.py: -------------------------------------------------------------------------------- 1 | # optimizer 2 | # This schedule is mainly used by models on nuScenes dataset 3 | optimizer = dict(type='AdamW', lr=0.001, weight_decay=0.01) 4 | # max_norm=10 is better for SECOND 5 | optimizer_config = dict(grad_clip=dict(max_norm=35, norm_type=2)) 6 | lr_config = dict( 7 | policy='step', 8 | warmup='linear', 9 | warmup_iters=1000, 10 | warmup_ratio=1.0 / 1000, 11 | step=[20, 23]) 12 | momentum_config = None 13 | # runtime settings 14 | runner = dict(type='EpochBasedRunner', max_epochs=24) 15 | -------------------------------------------------------------------------------- /configs/nuimages/mask_rcnn_r50_fpn_coco-2x_1x_nuim.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/mask_rcnn_r50_fpn.py', 3 | '../_base_/datasets/nuim_instance.py', 4 | '../_base_/schedules/mmdet_schedule_1x.py', '../_base_/default_runtime.py' 5 | ] 6 | model = dict( 7 | roi_head=dict( 8 | bbox_head=dict(num_classes=10), mask_head=dict(num_classes=10))) 9 | load_from = 'https://download.openmmlab.com/mmdetection/v2.0/mask_rcnn/mask_rcnn_r50_fpn_2x_coco/mask_rcnn_r50_fpn_2x_coco_bbox_mAP-0.392__segm_mAP-0.354_20200505_003907-3e542a40.pth' # noqa 10 | -------------------------------------------------------------------------------- /mmdet3d/core/bbox/iou_calculators/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .iou3d_calculator import (AxisAlignedBboxOverlaps3D, BboxOverlaps3D, 3 | BboxOverlapsNearest3D, 4 | axis_aligned_bbox_overlaps_3d, bbox_overlaps_3d, 5 | bbox_overlaps_nearest_3d) 6 | 7 | __all__ = [ 8 | 'BboxOverlapsNearest3D', 'BboxOverlaps3D', 'bbox_overlaps_nearest_3d', 9 | 'bbox_overlaps_3d', 'AxisAlignedBboxOverlaps3D', 10 | 'axis_aligned_bbox_overlaps_3d' 11 | ] 12 | -------------------------------------------------------------------------------- /mmdet3d/models/utils/clip_sigmoid.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | import torch 3 | 4 | 5 | def clip_sigmoid(x, eps=1e-4): 6 | """Sigmoid function for input feature. 7 | 8 | Args: 9 | x (torch.Tensor): Input feature map with the shape of [B, N, H, W]. 10 | eps (float, optional): Lower bound of the range to be clamped to. 11 | Defaults to 1e-4. 12 | 13 | Returns: 14 | torch.Tensor: Feature map after sigmoid. 15 | """ 16 | y = torch.clamp(x.sigmoid_(), min=eps, max=1 - eps) 17 | return y 18 | -------------------------------------------------------------------------------- /configs/centerpoint/centerpoint_01voxel_second_secfpn_dcn_4x8_cyclic_20e_nus.py: -------------------------------------------------------------------------------- 1 | _base_ = ['./centerpoint_01voxel_second_secfpn_4x8_cyclic_20e_nus.py'] 2 | 3 | model = dict( 4 | pts_bbox_head=dict( 5 | separate_head=dict( 6 | type='DCNSeparateHead', 7 | dcn_config=dict( 8 | type='DCN', 9 | in_channels=64, 10 | out_channels=64, 11 | kernel_size=3, 12 | padding=1, 13 | groups=4), 14 | init_bias=-2.19, 15 | final_kernel=3))) 16 | -------------------------------------------------------------------------------- /configs/centerpoint/centerpoint_02pillar_second_secfpn_dcn_4x8_cyclic_20e_nus.py: -------------------------------------------------------------------------------- 1 | _base_ = ['./centerpoint_02pillar_second_secfpn_4x8_cyclic_20e_nus.py'] 2 | 3 | model = dict( 4 | pts_bbox_head=dict( 5 | separate_head=dict( 6 | type='DCNSeparateHead', 7 | dcn_config=dict( 8 | type='DCN', 9 | in_channels=64, 10 | out_channels=64, 11 | kernel_size=3, 12 | padding=1, 13 | groups=4), 14 | init_bias=-2.19, 15 | final_kernel=3))) 16 | -------------------------------------------------------------------------------- /mmdet3d/core/voxel/builder.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | import mmcv 3 | 4 | from . import voxel_generator 5 | 6 | 7 | def build_voxel_generator(cfg, **kwargs): 8 | """Builder of voxel generator.""" 9 | if isinstance(cfg, voxel_generator.VoxelGenerator): 10 | return cfg 11 | elif isinstance(cfg, dict): 12 | return mmcv.runner.obj_from_dict( 13 | cfg, voxel_generator, default_args=kwargs) 14 | else: 15 | raise TypeError('Invalid type {} for building a sampler'.format( 16 | type(cfg))) 17 | -------------------------------------------------------------------------------- /configs/centerpoint/centerpoint_0075voxel_second_secfpn_dcn_4x8_cyclic_20e_nus.py: -------------------------------------------------------------------------------- 1 | _base_ = ['./centerpoint_0075voxel_second_secfpn_4x8_cyclic_20e_nus.py'] 2 | 3 | model = dict( 4 | pts_bbox_head=dict( 5 | separate_head=dict( 6 | type='DCNSeparateHead', 7 | dcn_config=dict( 8 | type='DCN', 9 | in_channels=64, 10 | out_channels=64, 11 | kernel_size=3, 12 | padding=1, 13 | groups=4), 14 | init_bias=-2.19, 15 | final_kernel=3))) 16 | -------------------------------------------------------------------------------- /tools/dist_command.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | CONFIG=$1 4 | CHECKPOINT=$2 5 | GPUS=$3 6 | FILES=$4 7 | NNODES=${NNODES:-1} 8 | NODE_RANK=${NODE_RANK:-0} 9 | PORT=${PORT:-29500} 10 | MASTER_ADDR=${MASTER_ADDR:-"127.0.0.1"} 11 | 12 | PYTHONPATH="$(dirname $0)/..":$PYTHONPATH \ 13 | python -m torch.distributed.launch \ 14 | --nnodes=$NNODES \ 15 | --node_rank=$NODE_RANK \ 16 | --master_addr=$MASTER_ADDR \ 17 | --nproc_per_node=$GPUS \ 18 | --master_port=5516 \ 19 | $FILES \ 20 | $CONFIG \ 21 | $CHECKPOINT \ 22 | --launcher pytorch \ 23 | ${@:5} 24 | -------------------------------------------------------------------------------- /tools/dist_test.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | CONFIG=$1 4 | CHECKPOINT=$2 5 | GPUS=$3 6 | NNODES=${NNODES:-1} 7 | NODE_RANK=${NODE_RANK:-0} 8 | PORT=${PORT:-29500} 9 | MASTER_ADDR=${MASTER_ADDR:-"127.0.0.1"} 10 | 11 | PYTHONPATH="$(dirname $0)/..":$PYTHONPATH \ 12 | python -m torch.distributed.launch \ 13 | --nnodes=$NNODES \ 14 | --node_rank=$NODE_RANK \ 15 | --master_addr=$MASTER_ADDR \ 16 | --nproc_per_node=$GPUS \ 17 | --master_port=3473 \ 18 | $(dirname "$0")/test.py \ 19 | $CONFIG \ 20 | $CHECKPOINT \ 21 | --launcher pytorch \ 22 | ${@:4} 23 | -------------------------------------------------------------------------------- /configs/_base_/models/fcaf3d.py: -------------------------------------------------------------------------------- 1 | model = dict( 2 | type='MinkSingleStage3DDetector', 3 | voxel_size=.01, 4 | backbone=dict(type='MinkResNet', in_channels=3, depth=34), 5 | head=dict( 6 | type='FCAF3DHead', 7 | in_channels=(64, 128, 256, 512), 8 | out_channels=128, 9 | voxel_size=.01, 10 | pts_prune_threshold=100000, 11 | pts_assign_threshold=27, 12 | pts_center_threshold=18, 13 | n_classes=18, 14 | n_reg_outs=6), 15 | train_cfg=dict(), 16 | test_cfg=dict(nms_pre=1000, iou_thr=.5, score_thr=.01)) 17 | -------------------------------------------------------------------------------- /tools/dist_attk.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | CONFIG=$1 4 | CHECKPOINT=$2 5 | GPUS=$3 6 | NNODES=${NNODES:-1} 7 | NODE_RANK=${NODE_RANK:-0} 8 | PORT=${PORT:-29500} 9 | MASTER_ADDR=${MASTER_ADDR:-"127.0.0.1"} 10 | 11 | PYTHONPATH="$(dirname $0)/..":$PYTHONPATH \ 12 | python -m torch.distributed.launch \ 13 | --nnodes=$NNODES \ 14 | --node_rank=$NODE_RANK \ 15 | --master_addr=$MASTER_ADDR \ 16 | --nproc_per_node=$GPUS \ 17 | --master_port=943 \ 18 | $(dirname "$0")/attk_r50.py \ 19 | $CONFIG \ 20 | $CHECKPOINT \ 21 | --launcher pytorch \ 22 | ${@:4} 23 | -------------------------------------------------------------------------------- /mmdet3d/ops/pointnet_modules/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .builder import build_sa_module 3 | from .paconv_sa_module import (PAConvCUDASAModule, PAConvCUDASAModuleMSG, 4 | PAConvSAModule, PAConvSAModuleMSG) 5 | from .point_fp_module import PointFPModule 6 | from .point_sa_module import PointSAModule, PointSAModuleMSG 7 | 8 | __all__ = [ 9 | 'build_sa_module', 'PointSAModuleMSG', 'PointSAModule', 'PointFPModule', 10 | 'PAConvSAModule', 'PAConvSAModuleMSG', 'PAConvCUDASAModule', 11 | 'PAConvCUDASAModuleMSG' 12 | ] 13 | -------------------------------------------------------------------------------- /tools/dist_attk_target.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | CONFIG=$1 4 | CHECKPOINT=$2 5 | GPUS=$3 6 | NNODES=${NNODES:-1} 7 | NODE_RANK=${NODE_RANK:-0} 8 | PORT=${PORT:-29500} 9 | MASTER_ADDR=${MASTER_ADDR:-"127.0.0.1"} 10 | 11 | PYTHONPATH="$(dirname $0)/..":$PYTHONPATH \ 12 | python -m torch.distributed.launch \ 13 | --nnodes=$NNODES \ 14 | --node_rank=$NODE_RANK \ 15 | --master_addr=$MASTER_ADDR \ 16 | --nproc_per_node=$GPUS \ 17 | --master_port=943 \ 18 | $(dirname "$0")/attk_target.py \ 19 | $CONFIG \ 20 | $CHECKPOINT \ 21 | --launcher pytorch \ 22 | ${@:4} 23 | -------------------------------------------------------------------------------- /tools/dist_attk_semantic.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | CONFIG=$1 4 | CHECKPOINT=$2 5 | GPUS=$3 6 | NNODES=${NNODES:-1} 7 | NODE_RANK=${NODE_RANK:-0} 8 | PORT=${PORT:-29500} 9 | MASTER_ADDR=${MASTER_ADDR:-"127.0.0.1"} 10 | 11 | PYTHONPATH="$(dirname $0)/..":$PYTHONPATH \ 12 | python -m torch.distributed.launch \ 13 | --nnodes=$NNODES \ 14 | --node_rank=$NODE_RANK \ 15 | --master_addr=$MASTER_ADDR \ 16 | --nproc_per_node=$GPUS \ 17 | --master_port=3423 \ 18 | $(dirname "$0")/attk_semantic.py \ 19 | $CONFIG \ 20 | $CHECKPOINT \ 21 | --launcher pytorch \ 22 | ${@:4} 23 | -------------------------------------------------------------------------------- /tools/dist_attk_transfer.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | CONFIG=$1 4 | CHECKPOINT=$2 5 | GPUS=$3 6 | NNODES=${NNODES:-1} 7 | NODE_RANK=${NODE_RANK:-0} 8 | PORT=${PORT:-29500} 9 | MASTER_ADDR=${MASTER_ADDR:-"127.0.0.1"} 10 | 11 | PYTHONPATH="$(dirname $0)/..":$PYTHONPATH \ 12 | python -m torch.distributed.launch \ 13 | --nnodes=$NNODES \ 14 | --node_rank=$NODE_RANK \ 15 | --master_addr=$MASTER_ADDR \ 16 | --nproc_per_node=$GPUS \ 17 | --master_port=943 \ 18 | $(dirname "$0")/attk_transfer.py \ 19 | $CONFIG \ 20 | $CHECKPOINT \ 21 | --launcher pytorch \ 22 | ${@:4} 23 | -------------------------------------------------------------------------------- /mmdet3d/models/necks/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmdet.models.necks.fpn import FPN 3 | from .dla_neck import DLANeck 4 | from .fpn import CustomFPN 5 | from .imvoxel_neck import OutdoorImVoxelNeck 6 | from .lss_fpn import FPN_LSS 7 | from .pointnet2_fp_neck import PointNetFPNeck 8 | from .second_fpn import SECONDFPN 9 | from .view_transformer import LSSViewTransformer, LSSViewTransformerBEVDepth 10 | 11 | __all__ = [ 12 | 'FPN', 'SECONDFPN', 'OutdoorImVoxelNeck', 'PointNetFPNeck', 'DLANeck', 13 | 'LSSViewTransformer', 'CustomFPN', 'FPN_LSS', 'LSSViewTransformerBEVDepth' 14 | ] 15 | -------------------------------------------------------------------------------- /mmdet3d/version.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Open-MMLab. All rights reserved. 2 | 3 | __version__ = '1.0.0rc4' 4 | short_version = __version__ 5 | 6 | 7 | def parse_version_info(version_str): 8 | version_info = [] 9 | for x in version_str.split('.'): 10 | if x.isdigit(): 11 | version_info.append(int(x)) 12 | elif x.find('rc') != -1: 13 | patch_version = x.split('rc') 14 | version_info.append(int(patch_version[0])) 15 | version_info.append(f'rc{patch_version[1]}') 16 | return tuple(version_info) 17 | 18 | 19 | version_info = parse_version_info(__version__) 20 | -------------------------------------------------------------------------------- /configs/centerpoint/centerpoint_01voxel_second_secfpn_dcn_circlenms_4x8_cyclic_20e_nus.py: -------------------------------------------------------------------------------- 1 | _base_ = ['./centerpoint_01voxel_second_secfpn_4x8_cyclic_20e_nus.py'] 2 | 3 | model = dict( 4 | pts_bbox_head=dict( 5 | separate_head=dict( 6 | type='DCNSeparateHead', 7 | dcn_config=dict( 8 | type='DCN', 9 | in_channels=64, 10 | out_channels=64, 11 | kernel_size=3, 12 | padding=1, 13 | groups=4), 14 | init_bias=-2.19, 15 | final_kernel=3)), 16 | test_cfg=dict(pts=dict(nms_type='circle'))) 17 | -------------------------------------------------------------------------------- /configs/centerpoint/centerpoint_0075voxel_second_secfpn_dcn_circlenms_4x8_cyclic_20e_nus.py: -------------------------------------------------------------------------------- 1 | _base_ = ['./centerpoint_0075voxel_second_secfpn_4x8_cyclic_20e_nus.py'] 2 | 3 | model = dict( 4 | pts_bbox_head=dict( 5 | separate_head=dict( 6 | type='DCNSeparateHead', 7 | dcn_config=dict( 8 | type='DCN', 9 | in_channels=64, 10 | out_channels=64, 11 | kernel_size=3, 12 | padding=1, 13 | groups=4), 14 | init_bias=-2.19, 15 | final_kernel=3)), 16 | test_cfg=dict(pts=dict(nms_type='circle'))) 17 | -------------------------------------------------------------------------------- /configs/centerpoint/centerpoint_02pillar_second_secfpn_dcn_circlenms_4x8_cyclic_20e_nus.py: -------------------------------------------------------------------------------- 1 | _base_ = ['./centerpoint_02pillar_second_secfpn_4x8_cyclic_20e_nus.py'] 2 | 3 | model = dict( 4 | pts_bbox_head=dict( 5 | separate_head=dict( 6 | type='DCNSeparateHead', 7 | dcn_config=dict( 8 | type='DCN', 9 | in_channels=64, 10 | out_channels=64, 11 | kernel_size=3, 12 | padding=1, 13 | groups=4), 14 | init_bias=-2.19, 15 | final_kernel=3)), 16 | test_cfg=dict(pts=dict(nms_type='circle'))) 17 | -------------------------------------------------------------------------------- /tools/update_data_coords.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -x 4 | export PYTHONPATH=`pwd`:$PYTHONPATH 5 | 6 | PARTITION=$1 7 | DATASET=$2 8 | GPUS=${GPUS:-1} 9 | GPUS_PER_NODE=${GPUS_PER_NODE:-1} 10 | SRUN_ARGS=${SRUN_ARGS:-""} 11 | JOB_NAME=update_data_coords 12 | 13 | srun -p ${PARTITION} \ 14 | --job-name=${JOB_NAME} \ 15 | --gres=gpu:${GPUS_PER_NODE} \ 16 | --ntasks=${GPUS} \ 17 | --ntasks-per-node=${GPUS_PER_NODE} \ 18 | --kill-on-bad-exit=1 \ 19 | ${SRUN_ARGS} \ 20 | python -u tools/update_data_coords.py ${DATASET} \ 21 | --root-dir ./data/${DATASET} \ 22 | --out-dir ./data/${DATASET} 23 | -------------------------------------------------------------------------------- /configs/_base_/schedules/cosine.py: -------------------------------------------------------------------------------- 1 | # This schedule is mainly used by models with dynamic voxelization 2 | # optimizer 3 | lr = 0.003 # max learning rate 4 | optimizer = dict( 5 | type='AdamW', 6 | lr=lr, 7 | betas=(0.95, 0.99), # the momentum is change during training 8 | weight_decay=0.001) 9 | optimizer_config = dict(grad_clip=dict(max_norm=10, norm_type=2)) 10 | 11 | lr_config = dict( 12 | policy='CosineAnnealing', 13 | warmup='linear', 14 | warmup_iters=1000, 15 | warmup_ratio=1.0 / 10, 16 | min_lr_ratio=1e-5) 17 | 18 | momentum_config = None 19 | 20 | runner = dict(type='EpochBasedRunner', max_epochs=40) 21 | -------------------------------------------------------------------------------- /configs/dynamic_voxelization/dv_second_secfpn_6x8_80e_kitti-3d-car.py: -------------------------------------------------------------------------------- 1 | _base_ = '../second/hv_second_secfpn_6x8_80e_kitti-3d-car.py' 2 | 3 | point_cloud_range = [0, -40, -3, 70.4, 40, 1] 4 | voxel_size = [0.05, 0.05, 0.1] 5 | 6 | model = dict( 7 | type='DynamicVoxelNet', 8 | voxel_layer=dict( 9 | _delete_=True, 10 | max_num_points=-1, 11 | point_cloud_range=point_cloud_range, 12 | voxel_size=voxel_size, 13 | max_voxels=(-1, -1)), 14 | voxel_encoder=dict( 15 | _delete_=True, 16 | type='DynamicSimpleVFE', 17 | voxel_size=voxel_size, 18 | point_cloud_range=point_cloud_range)) 19 | -------------------------------------------------------------------------------- /tools/create_data.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -x 4 | export PYTHONPATH=`pwd`:$PYTHONPATH 5 | 6 | PARTITION=$1 7 | JOB_NAME=$2 8 | DATASET=$3 9 | GPUS=${GPUS:-1} 10 | GPUS_PER_NODE=${GPUS_PER_NODE:-1} 11 | SRUN_ARGS=${SRUN_ARGS:-""} 12 | JOB_NAME=create_data 13 | 14 | srun -p ${PARTITION} \ 15 | --job-name=${JOB_NAME} \ 16 | --gres=gpu:${GPUS_PER_NODE} \ 17 | --ntasks=${GPUS} \ 18 | --ntasks-per-node=${GPUS_PER_NODE} \ 19 | --kill-on-bad-exit=1 \ 20 | ${SRUN_ARGS} \ 21 | python -u tools/create_data.py ${DATASET} \ 22 | --root-path ./data/${DATASET} \ 23 | --out-dir ./data/${DATASET} \ 24 | --extra-tag ${DATASET} 25 | -------------------------------------------------------------------------------- /tools/slurm_test.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -x 4 | 5 | PARTITION=$1 6 | JOB_NAME=$2 7 | CONFIG=$3 8 | CHECKPOINT=$4 9 | GPUS=${GPUS:-8} 10 | GPUS_PER_NODE=${GPUS_PER_NODE:-8} 11 | CPUS_PER_TASK=${CPUS_PER_TASK:-5} 12 | PY_ARGS=${@:5} 13 | SRUN_ARGS=${SRUN_ARGS:-""} 14 | 15 | PYTHONPATH="$(dirname $0)/..":$PYTHONPATH \ 16 | srun -p ${PARTITION} \ 17 | --job-name=${JOB_NAME} \ 18 | --gres=gpu:${GPUS_PER_NODE} \ 19 | --ntasks=${GPUS} \ 20 | --ntasks-per-node=${GPUS_PER_NODE} \ 21 | --cpus-per-task=${CPUS_PER_TASK} \ 22 | --kill-on-bad-exit=1 \ 23 | ${SRUN_ARGS} \ 24 | python -u tools/test.py ${CONFIG} ${CHECKPOINT} --launcher="slurm" ${PY_ARGS} 25 | -------------------------------------------------------------------------------- /tools/slurm_train.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -x 4 | 5 | PARTITION=$1 6 | JOB_NAME=$2 7 | CONFIG=$3 8 | WORK_DIR=$4 9 | GPUS=${GPUS:-8} 10 | GPUS_PER_NODE=${GPUS_PER_NODE:-8} 11 | CPUS_PER_TASK=${CPUS_PER_TASK:-5} 12 | SRUN_ARGS=${SRUN_ARGS:-""} 13 | PY_ARGS=${@:5} 14 | 15 | PYTHONPATH="$(dirname $0)/..":$PYTHONPATH \ 16 | srun -p ${PARTITION} \ 17 | --job-name=${JOB_NAME} \ 18 | --gres=gpu:${GPUS_PER_NODE} \ 19 | --ntasks=${GPUS} \ 20 | --ntasks-per-node=${GPUS_PER_NODE} \ 21 | --cpus-per-task=${CPUS_PER_TASK} \ 22 | --kill-on-bad-exit=1 \ 23 | ${SRUN_ARGS} \ 24 | python -u tools/train.py ${CONFIG} --work-dir=${WORK_DIR} --launcher="slurm" ${PY_ARGS} 25 | -------------------------------------------------------------------------------- /mmdet3d/apis/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .inference import (convert_SyncBN, inference_detector, 3 | inference_mono_3d_detector, 4 | inference_multi_modality_detector, inference_segmentor, 5 | init_model, show_result_meshlab) 6 | from .test import single_gpu_test 7 | from .train import init_random_seed, train_model 8 | 9 | __all__ = [ 10 | 'inference_detector', 'init_model', 'single_gpu_test', 11 | 'inference_mono_3d_detector', 'show_result_meshlab', 'convert_SyncBN', 12 | 'train_model', 'inference_multi_modality_detector', 'inference_segmentor', 13 | 'init_random_seed' 14 | ] 15 | -------------------------------------------------------------------------------- /configs/dynamic_voxelization/dv_pointpillars_secfpn_6x8_160e_kitti-3d-car.py: -------------------------------------------------------------------------------- 1 | _base_ = '../pointpillars/hv_pointpillars_secfpn_6x8_160e_kitti-3d-car.py' 2 | 3 | voxel_size = [0.16, 0.16, 4] 4 | point_cloud_range = [0, -39.68, -3, 69.12, 39.68, 1] 5 | 6 | model = dict( 7 | type='DynamicVoxelNet', 8 | voxel_layer=dict( 9 | max_num_points=-1, 10 | point_cloud_range=point_cloud_range, 11 | voxel_size=voxel_size, 12 | max_voxels=(-1, -1)), 13 | voxel_encoder=dict( 14 | type='DynamicPillarFeatureNet', 15 | in_channels=4, 16 | feat_channels=[64], 17 | with_distance=False, 18 | voxel_size=voxel_size, 19 | point_cloud_range=point_cloud_range)) 20 | -------------------------------------------------------------------------------- /docs/en/Makefile: -------------------------------------------------------------------------------- 1 | # Minimal makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line, and also 5 | # from the environment for the first two. 6 | SPHINXOPTS ?= 7 | SPHINXBUILD ?= sphinx-build 8 | SOURCEDIR = . 9 | BUILDDIR = _build 10 | 11 | # Put it first so that "make" without argument is like "make help". 12 | help: 13 | @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 14 | 15 | .PHONY: help Makefile 16 | 17 | # Catch-all target: route all unknown targets to Sphinx using the new 18 | # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). 19 | %: Makefile 20 | @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 21 | -------------------------------------------------------------------------------- /mmdet3d/core/bbox/samplers/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmdet.core.bbox.samplers import (BaseSampler, CombinedSampler, 3 | InstanceBalancedPosSampler, 4 | IoUBalancedNegSampler, OHEMSampler, 5 | PseudoSampler, RandomSampler, 6 | SamplingResult) 7 | from .iou_neg_piecewise_sampler import IoUNegPiecewiseSampler 8 | 9 | __all__ = [ 10 | 'BaseSampler', 'PseudoSampler', 'RandomSampler', 11 | 'InstanceBalancedPosSampler', 'IoUBalancedNegSampler', 'CombinedSampler', 12 | 'OHEMSampler', 'SamplingResult', 'IoUNegPiecewiseSampler' 13 | ] 14 | -------------------------------------------------------------------------------- /docs/zh_cn/Makefile: -------------------------------------------------------------------------------- 1 | # Minimal makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line, and also 5 | # from the environment for the first two. 6 | SPHINXOPTS ?= 7 | SPHINXBUILD ?= sphinx-build 8 | SOURCEDIR = . 9 | BUILDDIR = _build 10 | 11 | # Put it first so that "make" without argument is like "make help". 12 | help: 13 | @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 14 | 15 | .PHONY: help Makefile 16 | 17 | # Catch-all target: route all unknown targets to Sphinx using the new 18 | # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). 19 | %: Makefile 20 | @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 21 | -------------------------------------------------------------------------------- /mmdet3d/models/roi_heads/bbox_heads/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmdet.models.roi_heads.bbox_heads import (BBoxHead, ConvFCBBoxHead, 3 | DoubleConvFCBBoxHead, 4 | Shared2FCBBoxHead, 5 | Shared4Conv1FCBBoxHead) 6 | from .h3d_bbox_head import H3DBboxHead 7 | from .parta2_bbox_head import PartA2BboxHead 8 | from .point_rcnn_bbox_head import PointRCNNBboxHead 9 | 10 | __all__ = [ 11 | 'BBoxHead', 'ConvFCBBoxHead', 'Shared2FCBBoxHead', 12 | 'Shared4Conv1FCBBoxHead', 'DoubleConvFCBBoxHead', 'PartA2BboxHead', 13 | 'H3DBboxHead', 'PointRCNNBboxHead' 14 | ] 15 | -------------------------------------------------------------------------------- /configs/free_anchor/hv_pointpillars_regnet-400mf_fpn_sbn-all_free-anchor_4x8_2x_nus-3d.py: -------------------------------------------------------------------------------- 1 | _base_ = './hv_pointpillars_fpn_sbn-all_free-anchor_4x8_2x_nus-3d.py' 2 | 3 | model = dict( 4 | pts_backbone=dict( 5 | _delete_=True, 6 | type='NoStemRegNet', 7 | arch='regnetx_400mf', 8 | init_cfg=dict( 9 | type='Pretrained', checkpoint='open-mmlab://regnetx_400mf'), 10 | out_indices=(1, 2, 3), 11 | frozen_stages=-1, 12 | strides=(1, 2, 2, 2), 13 | base_channels=64, 14 | stem_channels=64, 15 | norm_cfg=dict(type='naiveSyncBN2d', eps=1e-3, momentum=0.01), 16 | norm_eval=False, 17 | style='pytorch'), 18 | pts_neck=dict(in_channels=[64, 160, 384])) 19 | -------------------------------------------------------------------------------- /configs/free_anchor/hv_pointpillars_regnet-1.6gf_fpn_sbn-all_free-anchor_4x8_2x_nus-3d.py: -------------------------------------------------------------------------------- 1 | _base_ = './hv_pointpillars_fpn_sbn-all_free-anchor_4x8_2x_nus-3d.py' 2 | 3 | model = dict( 4 | pts_backbone=dict( 5 | _delete_=True, 6 | type='NoStemRegNet', 7 | arch='regnetx_1.6gf', 8 | init_cfg=dict( 9 | type='Pretrained', checkpoint='open-mmlab://regnetx_1.6gf'), 10 | out_indices=(1, 2, 3), 11 | frozen_stages=-1, 12 | strides=(1, 2, 2, 2), 13 | base_channels=64, 14 | stem_channels=64, 15 | norm_cfg=dict(type='naiveSyncBN2d', eps=1e-3, momentum=0.01), 16 | norm_eval=False, 17 | style='pytorch'), 18 | pts_neck=dict(in_channels=[168, 408, 912])) 19 | -------------------------------------------------------------------------------- /configs/free_anchor/hv_pointpillars_regnet-3.2gf_fpn_sbn-all_free-anchor_4x8_2x_nus-3d.py: -------------------------------------------------------------------------------- 1 | _base_ = './hv_pointpillars_fpn_sbn-all_free-anchor_4x8_2x_nus-3d.py' 2 | 3 | model = dict( 4 | pts_backbone=dict( 5 | _delete_=True, 6 | type='NoStemRegNet', 7 | arch='regnetx_3.2gf', 8 | init_cfg=dict( 9 | type='Pretrained', checkpoint='open-mmlab://regnetx_3.2gf'), 10 | out_indices=(1, 2, 3), 11 | frozen_stages=-1, 12 | strides=(1, 2, 2, 2), 13 | base_channels=64, 14 | stem_channels=64, 15 | norm_cfg=dict(type='naiveSyncBN2d', eps=1e-3, momentum=0.01), 16 | norm_eval=False, 17 | style='pytorch'), 18 | pts_neck=dict(in_channels=[192, 432, 1008])) 19 | -------------------------------------------------------------------------------- /mmdet3d/core/post_processing/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmdet.core.post_processing import (merge_aug_bboxes, merge_aug_masks, 3 | merge_aug_proposals, merge_aug_scores, 4 | multiclass_nms) 5 | from .box3d_nms import (aligned_3d_nms, box3d_multiclass_nms, circle_nms, 6 | nms_bev, nms_normal_bev) 7 | from .merge_augs import merge_aug_bboxes_3d 8 | 9 | __all__ = [ 10 | 'multiclass_nms', 'merge_aug_proposals', 'merge_aug_bboxes', 11 | 'merge_aug_scores', 'merge_aug_masks', 'box3d_multiclass_nms', 12 | 'aligned_3d_nms', 'merge_aug_bboxes_3d', 'circle_nms', 'nms_bev', 13 | 'nms_normal_bev' 14 | ] 15 | -------------------------------------------------------------------------------- /mmdet3d/models/backbones/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmdet.models.backbones import SSDVGG, HRNet, ResNet, ResNetV1d, ResNeXt 3 | from .dgcnn import DGCNNBackbone 4 | from .dla import DLANet 5 | from .mink_resnet import MinkResNet 6 | from .multi_backbone import MultiBackbone 7 | from .nostem_regnet import NoStemRegNet 8 | from .pointnet2_sa_msg import PointNet2SAMSG 9 | from .pointnet2_sa_ssg import PointNet2SASSG 10 | from .resnet import CustomResNet 11 | from .second import SECOND 12 | 13 | __all__ = [ 14 | 'ResNet', 'ResNetV1d', 'ResNeXt', 'SSDVGG', 'HRNet', 'NoStemRegNet', 15 | 'SECOND', 'DGCNNBackbone', 'PointNet2SASSG', 'PointNet2SAMSG', 16 | 'MultiBackbone', 'DLANet', 'MinkResNet', 'CustomResNet' 17 | ] 18 | -------------------------------------------------------------------------------- /tools/misc/print_config.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | import argparse 3 | 4 | from mmcv import Config, DictAction 5 | 6 | 7 | def parse_args(): 8 | parser = argparse.ArgumentParser(description='Print the whole config') 9 | parser.add_argument('config', help='config file path') 10 | parser.add_argument( 11 | '--options', nargs='+', action=DictAction, help='arguments in dict') 12 | args = parser.parse_args() 13 | 14 | return args 15 | 16 | 17 | def main(): 18 | args = parse_args() 19 | 20 | cfg = Config.fromfile(args.config) 21 | if args.options is not None: 22 | cfg.merge_from_dict(args.options) 23 | print(f'Config:\n{cfg.pretty_text}') 24 | 25 | 26 | if __name__ == '__main__': 27 | main() 28 | -------------------------------------------------------------------------------- /mmdet3d/models/detectors/smoke_mono3d.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from ..builder import DETECTORS 3 | from .single_stage_mono3d import SingleStageMono3DDetector 4 | 5 | 6 | @DETECTORS.register_module() 7 | class SMOKEMono3D(SingleStageMono3DDetector): 8 | r"""SMOKE `_ for monocular 3D object 9 | detection. 10 | 11 | """ 12 | 13 | def __init__(self, 14 | backbone, 15 | neck, 16 | bbox_head, 17 | train_cfg=None, 18 | test_cfg=None, 19 | pretrained=None): 20 | super(SMOKEMono3D, self).__init__(backbone, neck, bbox_head, train_cfg, 21 | test_cfg, pretrained) 22 | -------------------------------------------------------------------------------- /configs/_base_/default_runtime.py: -------------------------------------------------------------------------------- 1 | checkpoint_config = dict(interval=1) 2 | # yapf:disable push 3 | # By default we use textlogger hook and tensorboard 4 | # For more loggers see 5 | # https://mmcv.readthedocs.io/en/latest/api.html#mmcv.runner.LoggerHook 6 | log_config = dict( 7 | interval=50, 8 | hooks=[ 9 | dict(type='TextLoggerHook'), 10 | dict(type='TensorboardLoggerHook') 11 | ]) 12 | # yapf:enable 13 | dist_params = dict(backend='nccl') 14 | log_level = 'INFO' 15 | work_dir = None 16 | load_from = None 17 | resume_from = None 18 | workflow = [('train', 1)] 19 | 20 | # disable opencv multithreading to avoid system being overloaded 21 | opencv_num_threads = 0 22 | # set multi-process start method as `fork` to speed up the training 23 | mp_start_method = 'fork' 24 | -------------------------------------------------------------------------------- /configs/dynamic_voxelization/dv_second_secfpn_2x8_cosine_80e_kitti-3d-3class.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/hv_second_secfpn_kitti.py', 3 | '../_base_/datasets/kitti-3d-3class.py', '../_base_/schedules/cosine.py', 4 | '../_base_/default_runtime.py' 5 | ] 6 | 7 | point_cloud_range = [0, -40, -3, 70.4, 40, 1] 8 | voxel_size = [0.05, 0.05, 0.1] 9 | 10 | model = dict( 11 | type='DynamicVoxelNet', 12 | voxel_layer=dict( 13 | _delete_=True, 14 | max_num_points=-1, 15 | point_cloud_range=point_cloud_range, 16 | voxel_size=voxel_size, 17 | max_voxels=(-1, -1)), 18 | voxel_encoder=dict( 19 | _delete_=True, 20 | type='DynamicSimpleVFE', 21 | voxel_size=voxel_size, 22 | point_cloud_range=point_cloud_range)) 23 | -------------------------------------------------------------------------------- /configs/ssn/hv_ssn_regnet-400mf_secfpn_sbn-all_2x16_2x_nus-3d.py: -------------------------------------------------------------------------------- 1 | _base_ = './hv_ssn_secfpn_sbn-all_2x16_2x_nus-3d.py' 2 | # model settings 3 | model = dict( 4 | type='MVXFasterRCNN', 5 | pts_backbone=dict( 6 | _delete_=True, 7 | type='NoStemRegNet', 8 | arch=dict(w0=24, wa=24.48, wm=2.54, group_w=16, depth=22, bot_mul=1.0), 9 | init_cfg=dict( 10 | type='Pretrained', checkpoint='open-mmlab://regnetx_400mf'), 11 | out_indices=(1, 2, 3), 12 | frozen_stages=-1, 13 | strides=(1, 2, 2, 2), 14 | base_channels=64, 15 | stem_channels=64, 16 | norm_cfg=dict(type='naiveSyncBN2d', eps=1e-3, momentum=0.01), 17 | norm_eval=False, 18 | style='pytorch'), 19 | pts_neck=dict(in_channels=[64, 160, 384])) 20 | -------------------------------------------------------------------------------- /setup.cfg: -------------------------------------------------------------------------------- 1 | [yapf] 2 | BASED_ON_STYLE = pep8 3 | BLANK_LINE_BEFORE_NESTED_CLASS_OR_DEF = true 4 | SPLIT_BEFORE_EXPRESSION_AFTER_OPENING_PAREN = true 5 | 6 | [isort] 7 | line_length = 79 8 | multi_line_output = 0 9 | extra_standard_library = setuptools 10 | known_first_party = mmdet,mmseg,mmdet3d 11 | known_third_party = cv2,imageio,indoor3d_util,load_scannet_data,lyft_dataset_sdk,m2r,matplotlib,mmcv,nuimages,numba,numpy,nuscenes,pandas,plyfile,pycocotools,pyquaternion,pytest,pytorch_sphinx_theme,recommonmark,requests,scannet_utils,scipy,seaborn,shapely,skimage,sphinx,tensorflow,terminaltables,torch,trimesh,ts,waymo_open_dataset 12 | no_lines_before = STDLIB,LOCALFOLDER 13 | default_section = THIRDPARTY 14 | 15 | [codespell] 16 | ignore-words-list = ans,refridgerator,crate,hist,formating,dout,wan,nd,fo,avod,AVOD 17 | -------------------------------------------------------------------------------- /mmdet3d/utils/collect_env.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmcv.utils import collect_env as collect_base_env 3 | from mmcv.utils import get_git_hash 4 | 5 | import mmdet 6 | import mmdet3d 7 | import mmseg 8 | from mmdet3d.ops.spconv import IS_SPCONV2_AVAILABLE 9 | 10 | 11 | def collect_env(): 12 | """Collect the information of the running environments.""" 13 | env_info = collect_base_env() 14 | env_info['MMDetection'] = mmdet.__version__ 15 | env_info['MMSegmentation'] = mmseg.__version__ 16 | env_info['MMDetection3D'] = mmdet3d.__version__ + '+' + get_git_hash()[:7] 17 | env_info['spconv2.0'] = IS_SPCONV2_AVAILABLE 18 | return env_info 19 | 20 | 21 | if __name__ == '__main__': 22 | for name, val in collect_env().items(): 23 | print(f'{name}: {val}') 24 | -------------------------------------------------------------------------------- /tests/data/scannet/semantic_mask/scene0000_00.bin: -------------------------------------------------------------------------------- 1 | &(&!&((!((& -------------------------------------------------------------------------------- /mmdet3d/models/detectors/ssd3dnet.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from ..builder import DETECTORS 3 | from .votenet import VoteNet 4 | 5 | 6 | @DETECTORS.register_module() 7 | class SSD3DNet(VoteNet): 8 | """3DSSDNet model. 9 | 10 | https://arxiv.org/abs/2002.10187.pdf 11 | """ 12 | 13 | def __init__(self, 14 | backbone, 15 | bbox_head=None, 16 | train_cfg=None, 17 | test_cfg=None, 18 | init_cfg=None, 19 | pretrained=None): 20 | super(SSD3DNet, self).__init__( 21 | backbone=backbone, 22 | bbox_head=bbox_head, 23 | train_cfg=train_cfg, 24 | test_cfg=test_cfg, 25 | init_cfg=init_cfg, 26 | pretrained=pretrained) 27 | -------------------------------------------------------------------------------- /tests/data/s3dis/instance_mask/Area_1_office_2.bin: -------------------------------------------------------------------------------- 1 |   2 |  3 |   4 |      -------------------------------------------------------------------------------- /tests/data/s3dis/semantic_mask/Area_1_office_2.bin: -------------------------------------------------------------------------------- 1 |   2 |     3 |  4 |    -------------------------------------------------------------------------------- /configs/dgcnn/dgcnn_32x4_cosine_100e_s3dis_seg-3d-13class-area5.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/datasets/s3dis_seg-3d-13class.py', '../_base_/models/dgcnn.py', 3 | '../_base_/schedules/seg_cosine_100e.py', '../_base_/default_runtime.py' 4 | ] 5 | 6 | # data settings 7 | data = dict(samples_per_gpu=32) 8 | evaluation = dict(interval=2) 9 | 10 | # model settings 11 | model = dict( 12 | backbone=dict(in_channels=9), # [xyz, rgb, normalized_xyz] 13 | decode_head=dict( 14 | num_classes=13, ignore_index=13, 15 | loss_decode=dict(class_weight=None)), # S3DIS doesn't use class_weight 16 | test_cfg=dict( 17 | num_points=4096, 18 | block_size=1.0, 19 | sample_rate=0.5, 20 | use_normalized_coord=True, 21 | batch_size=24)) 22 | 23 | # runtime settings 24 | checkpoint_config = dict(interval=2) 25 | -------------------------------------------------------------------------------- /mmdet3d/models/losses/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmdet.models.losses import FocalLoss, SmoothL1Loss, binary_cross_entropy 3 | from .axis_aligned_iou_loss import AxisAlignedIoULoss, axis_aligned_iou_loss 4 | from .chamfer_distance import ChamferDistance, chamfer_distance 5 | from .multibin_loss import MultiBinLoss 6 | from .paconv_regularization_loss import PAConvRegularizationLoss 7 | from .rotated_iou_loss import RotatedIoU3DLoss 8 | from .uncertain_smooth_l1_loss import UncertainL1Loss, UncertainSmoothL1Loss 9 | 10 | __all__ = [ 11 | 'FocalLoss', 'SmoothL1Loss', 'binary_cross_entropy', 'ChamferDistance', 12 | 'chamfer_distance', 'axis_aligned_iou_loss', 'AxisAlignedIoULoss', 13 | 'PAConvRegularizationLoss', 'UncertainL1Loss', 'UncertainSmoothL1Loss', 14 | 'MultiBinLoss', 'RotatedIoU3DLoss' 15 | ] 16 | -------------------------------------------------------------------------------- /configs/pointnet2/pointnet2_ssg_16x2_cosine_50e_s3dis_seg-3d-13class.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/datasets/s3dis_seg-3d-13class.py', 3 | '../_base_/models/pointnet2_ssg.py', 4 | '../_base_/schedules/seg_cosine_50e.py', '../_base_/default_runtime.py' 5 | ] 6 | 7 | # data settings 8 | data = dict(samples_per_gpu=16) 9 | evaluation = dict(interval=2) 10 | 11 | # model settings 12 | model = dict( 13 | backbone=dict(in_channels=9), # [xyz, rgb, normalized_xyz] 14 | decode_head=dict( 15 | num_classes=13, ignore_index=13, 16 | loss_decode=dict(class_weight=None)), # S3DIS doesn't use class_weight 17 | test_cfg=dict( 18 | num_points=4096, 19 | block_size=1.0, 20 | sample_rate=0.5, 21 | use_normalized_coord=True, 22 | batch_size=24)) 23 | 24 | # runtime settings 25 | checkpoint_config = dict(interval=2) 26 | -------------------------------------------------------------------------------- /mmdet3d/models/roi_heads/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .base_3droi_head import Base3DRoIHead 3 | from .bbox_heads import H3DBboxHead, PartA2BboxHead, PointRCNNBboxHead 4 | from .h3d_roi_head import H3DRoIHead 5 | from .mask_heads import PointwiseSemanticHead, PrimitiveHead 6 | from .part_aggregation_roi_head import PartAggregationROIHead 7 | from .point_rcnn_roi_head import PointRCNNRoIHead 8 | from .roi_extractors import (Single3DRoIAwareExtractor, 9 | Single3DRoIPointExtractor, SingleRoIExtractor) 10 | 11 | __all__ = [ 12 | 'Base3DRoIHead', 'PartAggregationROIHead', 'PointwiseSemanticHead', 13 | 'Single3DRoIAwareExtractor', 'PartA2BboxHead', 'SingleRoIExtractor', 14 | 'H3DRoIHead', 'PrimitiveHead', 'PointRCNNRoIHead', 'H3DBboxHead', 15 | 'PointRCNNBboxHead', 'Single3DRoIPointExtractor' 16 | ] 17 | -------------------------------------------------------------------------------- /configs/ssn/hv_ssn_regnet-400mf_secfpn_sbn-all_1x16_2x_lyft-3d.py: -------------------------------------------------------------------------------- 1 | _base_ = './hv_ssn_secfpn_sbn-all_2x16_2x_lyft-3d.py' 2 | # model settings 3 | model = dict( 4 | type='MVXFasterRCNN', 5 | pts_backbone=dict( 6 | _delete_=True, 7 | type='NoStemRegNet', 8 | arch=dict(w0=24, wa=24.48, wm=2.54, group_w=16, depth=22, bot_mul=1.0), 9 | init_cfg=dict( 10 | type='Pretrained', checkpoint='open-mmlab://regnetx_400mf'), 11 | out_indices=(1, 2, 3), 12 | frozen_stages=-1, 13 | strides=(1, 2, 2, 2), 14 | base_channels=64, 15 | stem_channels=64, 16 | norm_cfg=dict(type='naiveSyncBN2d', eps=1e-3, momentum=0.01), 17 | norm_eval=False, 18 | style='pytorch'), 19 | pts_neck=dict(in_channels=[64, 160, 384])) 20 | # dataset settings 21 | data = dict(samples_per_gpu=1, workers_per_gpu=2) 22 | -------------------------------------------------------------------------------- /tests/data/scannet/instance_mask/scene0000_00.bin: -------------------------------------------------------------------------------- 1 | 8 2 | #+ 3 | (!8  4 | ,5 %!! 5 | @9. 6 | % 7 | 8 | 9 |  8&89" 10 | 0 11 | 7 ! !9&!  12 | 9!& 13 | ( 14 | -------------------------------------------------------------------------------- /configs/regnet/hv_pointpillars_regnet-1.6gf_fpn_sbn-all_4x8_2x_nus-3d.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/hv_pointpillars_fpn_nus.py', 3 | '../_base_/datasets/nus-3d.py', 4 | '../_base_/schedules/schedule_2x.py', 5 | '../_base_/default_runtime.py', 6 | ] 7 | # model settings 8 | model = dict( 9 | type='MVXFasterRCNN', 10 | pts_backbone=dict( 11 | _delete_=True, 12 | type='NoStemRegNet', 13 | arch='regnetx_1.6gf', 14 | init_cfg=dict( 15 | type='Pretrained', checkpoint='open-mmlab://regnetx_1.6gf'), 16 | out_indices=(1, 2, 3), 17 | frozen_stages=-1, 18 | strides=(1, 2, 2, 2), 19 | base_channels=64, 20 | stem_channels=64, 21 | norm_cfg=dict(type='naiveSyncBN2d', eps=1e-3, momentum=0.01), 22 | norm_eval=False, 23 | style='pytorch'), 24 | pts_neck=dict(in_channels=[168, 408, 912])) 25 | -------------------------------------------------------------------------------- /configs/dgcnn/metafile.yml: -------------------------------------------------------------------------------- 1 | Collections: 2 | - Name: DGCNN 3 | Metadata: 4 | Training Techniques: 5 | - SGD 6 | Training Resources: 4x Titan XP GPUs 7 | Architecture: 8 | - DGCNN 9 | Paper: https://arxiv.org/abs/1801.07829 10 | README: configs/dgcnn/README.md 11 | 12 | Models: 13 | - Name: dgcnn_32x4_cosine_100e_s3dis_seg-3d-13class.py 14 | In Collection: DGCNN 15 | Config: configs/dgcnn/dgcnn_32x4_cosine_100e_s3dis_seg-3d-13class.py 16 | Metadata: 17 | Training Data: S3DIS 18 | Training Memory (GB): 13.3 19 | Results: 20 | - Task: 3D Semantic Segmentation 21 | Dataset: S3DIS 22 | Metrics: 23 | mIoU: 50.59 24 | Weights: https://download.openmmlab.com/mmdetection3d/v0.17.0_models/dgcnn/dgcnn_32x4_cosine_100e_s3dis_seg-3d-13class/area5/dgcnn_32x4_cosine_100e_s3dis_seg-3d-13class_20210730_235824-f277e0c5.pth 25 | -------------------------------------------------------------------------------- /mmdet3d/core/bbox/structures/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .base_box3d import BaseInstance3DBoxes 3 | from .box_3d_mode import Box3DMode 4 | from .cam_box3d import CameraInstance3DBoxes 5 | from .coord_3d_mode import Coord3DMode 6 | from .depth_box3d import DepthInstance3DBoxes 7 | from .lidar_box3d import LiDARInstance3DBoxes 8 | from .utils import (get_box_type, get_proj_mat_by_coord_type, limit_period, 9 | mono_cam_box2vis, points_cam2img, points_img2cam, 10 | rotation_3d_in_axis, xywhr2xyxyr) 11 | 12 | __all__ = [ 13 | 'Box3DMode', 'BaseInstance3DBoxes', 'LiDARInstance3DBoxes', 14 | 'CameraInstance3DBoxes', 'DepthInstance3DBoxes', 'xywhr2xyxyr', 15 | 'get_box_type', 'rotation_3d_in_axis', 'limit_period', 'points_cam2img', 16 | 'points_img2cam', 'Coord3DMode', 'mono_cam_box2vis', 17 | 'get_proj_mat_by_coord_type' 18 | ] 19 | -------------------------------------------------------------------------------- /docs/en/make.bat: -------------------------------------------------------------------------------- 1 | @ECHO OFF 2 | 3 | pushd %~dp0 4 | 5 | REM Command file for Sphinx documentation 6 | 7 | if "%SPHINXBUILD%" == "" ( 8 | set SPHINXBUILD=sphinx-build 9 | ) 10 | set SOURCEDIR=. 11 | set BUILDDIR=_build 12 | 13 | if "%1" == "" goto help 14 | 15 | %SPHINXBUILD% >NUL 2>NUL 16 | if errorlevel 9009 ( 17 | echo. 18 | echo.The 'sphinx-build' command was not found. Make sure you have Sphinx 19 | echo.installed, then set the SPHINXBUILD environment variable to point 20 | echo.to the full path of the 'sphinx-build' executable. Alternatively you 21 | echo.may add the Sphinx directory to PATH. 22 | echo. 23 | echo.If you don't have Sphinx installed, grab it from 24 | echo.http://sphinx-doc.org/ 25 | exit /b 1 26 | ) 27 | 28 | %SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% 29 | goto end 30 | 31 | :help 32 | %SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% 33 | 34 | :end 35 | popd 36 | -------------------------------------------------------------------------------- /configs/_base_/schedules/cyclic_20e.py: -------------------------------------------------------------------------------- 1 | # For nuScenes dataset, we usually evaluate the model at the end of training. 2 | # Since the models are trained by 24 epochs by default, we set evaluation 3 | # interval to be 20. Please change the interval accordingly if you do not 4 | # use a default schedule. 5 | # optimizer 6 | # This schedule is mainly used by models on nuScenes dataset 7 | optimizer = dict(type='AdamW', lr=1e-4, weight_decay=0.01) 8 | # max_norm=10 is better for SECOND 9 | optimizer_config = dict(grad_clip=dict(max_norm=35, norm_type=2)) 10 | lr_config = dict( 11 | policy='cyclic', 12 | target_ratio=(10, 1e-4), 13 | cyclic_times=1, 14 | step_ratio_up=0.4, 15 | ) 16 | momentum_config = dict( 17 | policy='cyclic', 18 | target_ratio=(0.85 / 0.95, 1), 19 | cyclic_times=1, 20 | step_ratio_up=0.4, 21 | ) 22 | 23 | # runtime settings 24 | runner = dict(type='EpochBasedRunner', max_epochs=20) 25 | -------------------------------------------------------------------------------- /docs/zh_cn/make.bat: -------------------------------------------------------------------------------- 1 | @ECHO OFF 2 | 3 | pushd %~dp0 4 | 5 | REM Command file for Sphinx documentation 6 | 7 | if "%SPHINXBUILD%" == "" ( 8 | set SPHINXBUILD=sphinx-build 9 | ) 10 | set SOURCEDIR=. 11 | set BUILDDIR=_build 12 | 13 | if "%1" == "" goto help 14 | 15 | %SPHINXBUILD% >NUL 2>NUL 16 | if errorlevel 9009 ( 17 | echo. 18 | echo.The 'sphinx-build' command was not found. Make sure you have Sphinx 19 | echo.installed, then set the SPHINXBUILD environment variable to point 20 | echo.to the full path of the 'sphinx-build' executable. Alternatively you 21 | echo.may add the Sphinx directory to PATH. 22 | echo. 23 | echo.If you don't have Sphinx installed, grab it from 24 | echo.http://sphinx-doc.org/ 25 | exit /b 1 26 | ) 27 | 28 | %SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% 29 | goto end 30 | 31 | :help 32 | %SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% 33 | 34 | :end 35 | popd 36 | -------------------------------------------------------------------------------- /mmdet3d/models/detectors/fcos_mono3d.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from ..builder import DETECTORS 3 | from .single_stage_mono3d import SingleStageMono3DDetector 4 | 5 | 6 | @DETECTORS.register_module() 7 | class FCOSMono3D(SingleStageMono3DDetector): 8 | r"""`FCOS3D `_ for monocular 3D object detection. 9 | 10 | Currently please refer to our entry on the 11 | `leaderboard `_. 12 | """ # noqa: E501 13 | 14 | def __init__(self, 15 | backbone, 16 | neck, 17 | bbox_head, 18 | train_cfg=None, 19 | test_cfg=None, 20 | pretrained=None): 21 | super(FCOSMono3D, self).__init__(backbone, neck, bbox_head, train_cfg, 22 | test_cfg, pretrained) 23 | -------------------------------------------------------------------------------- /configs/regnet/hv_pointpillars_regnet-400mf_fpn_sbn-all_4x8_2x_nus-3d.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/hv_pointpillars_fpn_nus.py', 3 | '../_base_/datasets/nus-3d.py', 4 | '../_base_/schedules/schedule_2x.py', 5 | '../_base_/default_runtime.py', 6 | ] 7 | # model settings 8 | model = dict( 9 | type='MVXFasterRCNN', 10 | pts_backbone=dict( 11 | _delete_=True, 12 | type='NoStemRegNet', 13 | arch=dict(w0=24, wa=24.48, wm=2.54, group_w=16, depth=22, bot_mul=1.0), 14 | init_cfg=dict( 15 | type='Pretrained', checkpoint='open-mmlab://regnetx_400mf'), 16 | out_indices=(1, 2, 3), 17 | frozen_stages=-1, 18 | strides=(1, 2, 2, 2), 19 | base_channels=64, 20 | stem_channels=64, 21 | norm_cfg=dict(type='naiveSyncBN2d', eps=1e-3, momentum=0.01), 22 | norm_eval=False, 23 | style='pytorch'), 24 | pts_neck=dict(in_channels=[64, 160, 384])) 25 | -------------------------------------------------------------------------------- /mmdet3d/core/hook/sequentialsontrol.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmcv.runner.hooks import HOOKS, Hook 3 | from mmdet3d.core.hook.utils import is_parallel 4 | 5 | __all__ = ['SequentialControlHook'] 6 | 7 | 8 | @HOOKS.register_module() 9 | class SequentialControlHook(Hook): 10 | """ """ 11 | 12 | def __init__(self, temporal_start_epoch=1): 13 | super().__init__() 14 | self.temporal_start_epoch=temporal_start_epoch 15 | 16 | def set_temporal_flag(self, runner, flag): 17 | if is_parallel(runner.model.module): 18 | runner.model.module.module.with_prev=flag 19 | else: 20 | runner.model.module.with_prev = flag 21 | 22 | def before_run(self, runner): 23 | self.set_temporal_flag(runner, False) 24 | 25 | def before_train_epoch(self, runner): 26 | if runner.epoch > self.temporal_start_epoch: 27 | self.set_temporal_flag(runner, True) -------------------------------------------------------------------------------- /configs/regnet/hv_pointpillars_regnet-400mf_fpn_sbn-all_2x8_2x_lyft-3d.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/hv_pointpillars_fpn_lyft.py', 3 | '../_base_/datasets/lyft-3d.py', 4 | '../_base_/schedules/schedule_2x.py', 5 | '../_base_/default_runtime.py', 6 | ] 7 | # model settings 8 | model = dict( 9 | type='MVXFasterRCNN', 10 | pts_backbone=dict( 11 | _delete_=True, 12 | type='NoStemRegNet', 13 | arch=dict(w0=24, wa=24.48, wm=2.54, group_w=16, depth=22, bot_mul=1.0), 14 | init_cfg=dict( 15 | type='Pretrained', checkpoint='open-mmlab://regnetx_400mf'), 16 | out_indices=(1, 2, 3), 17 | frozen_stages=-1, 18 | strides=(1, 2, 2, 2), 19 | base_channels=64, 20 | stem_channels=64, 21 | norm_cfg=dict(type='naiveSyncBN2d', eps=1e-3, momentum=0.01), 22 | norm_eval=False, 23 | style='pytorch'), 24 | pts_neck=dict(in_channels=[64, 160, 384])) 25 | -------------------------------------------------------------------------------- /configs/votenet/votenet_16x8_sunrgbd-3d-10class.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/datasets/sunrgbd-3d-10class.py', '../_base_/models/votenet.py', 3 | '../_base_/schedules/schedule_3x.py', '../_base_/default_runtime.py' 4 | ] 5 | # model settings 6 | model = dict( 7 | bbox_head=dict( 8 | num_classes=10, 9 | bbox_coder=dict( 10 | type='PartialBinBasedBBoxCoder', 11 | num_sizes=10, 12 | num_dir_bins=12, 13 | with_rot=True, 14 | mean_sizes=[ 15 | [2.114256, 1.620300, 0.927272], [0.791118, 1.279516, 0.718182], 16 | [0.923508, 1.867419, 0.845495], [0.591958, 0.552978, 0.827272], 17 | [0.699104, 0.454178, 0.75625], [0.69519, 1.346299, 0.736364], 18 | [0.528526, 1.002642, 1.172878], [0.500618, 0.632163, 0.683424], 19 | [0.404671, 1.071108, 1.688889], [0.76584, 1.398258, 0.472728] 20 | ]), 21 | )) 22 | -------------------------------------------------------------------------------- /configs/regnet/hv_pointpillars_regnet-400mf_fpn_sbn-all_range100_2x8_2x_lyft-3d.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/hv_pointpillars_fpn_range100_lyft.py', 3 | '../_base_/datasets/range100_lyft-3d.py', 4 | '../_base_/schedules/schedule_2x.py', 5 | '../_base_/default_runtime.py', 6 | ] 7 | # model settings 8 | model = dict( 9 | type='MVXFasterRCNN', 10 | pts_backbone=dict( 11 | _delete_=True, 12 | type='NoStemRegNet', 13 | arch=dict(w0=24, wa=24.48, wm=2.54, group_w=16, depth=22, bot_mul=1.0), 14 | init_cfg=dict( 15 | type='Pretrained', checkpoint='open-mmlab://regnetx_400mf'), 16 | out_indices=(1, 2, 3), 17 | frozen_stages=-1, 18 | strides=(1, 2, 2, 2), 19 | base_channels=64, 20 | stem_channels=64, 21 | norm_cfg=dict(type='naiveSyncBN2d', eps=1e-3, momentum=0.01), 22 | norm_eval=False, 23 | style='pytorch'), 24 | pts_neck=dict(in_channels=[64, 160, 384])) 25 | -------------------------------------------------------------------------------- /mmdet3d/core/bbox/coders/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmdet.core.bbox import build_bbox_coder 3 | from .anchor_free_bbox_coder import AnchorFreeBBoxCoder 4 | from .centerpoint_bbox_coders import CenterPointBBoxCoder 5 | from .delta_xyzwhlr_bbox_coder import DeltaXYZWLHRBBoxCoder 6 | from .fcos3d_bbox_coder import FCOS3DBBoxCoder 7 | from .groupfree3d_bbox_coder import GroupFree3DBBoxCoder 8 | from .monoflex_bbox_coder import MonoFlexCoder 9 | from .partial_bin_based_bbox_coder import PartialBinBasedBBoxCoder 10 | from .pgd_bbox_coder import PGDBBoxCoder 11 | from .point_xyzwhlr_bbox_coder import PointXYZWHLRBBoxCoder 12 | from .smoke_bbox_coder import SMOKECoder 13 | 14 | __all__ = [ 15 | 'build_bbox_coder', 'DeltaXYZWLHRBBoxCoder', 'PartialBinBasedBBoxCoder', 16 | 'CenterPointBBoxCoder', 'AnchorFreeBBoxCoder', 'GroupFree3DBBoxCoder', 17 | 'PointXYZWHLRBBoxCoder', 'FCOS3DBBoxCoder', 'PGDBBoxCoder', 'SMOKECoder', 18 | 'MonoFlexCoder' 19 | ] 20 | -------------------------------------------------------------------------------- /configs/pointnet2/pointnet2_msg_16x2_cosine_80e_s3dis_seg-3d-13class.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/datasets/s3dis_seg-3d-13class.py', 3 | '../_base_/models/pointnet2_msg.py', 4 | '../_base_/schedules/seg_cosine_50e.py', '../_base_/default_runtime.py' 5 | ] 6 | 7 | # data settings 8 | data = dict(samples_per_gpu=16) 9 | evaluation = dict(interval=2) 10 | 11 | # model settings 12 | model = dict( 13 | backbone=dict(in_channels=9), # [xyz, rgb, normalized_xyz] 14 | decode_head=dict( 15 | num_classes=13, ignore_index=13, 16 | loss_decode=dict(class_weight=None)), # S3DIS doesn't use class_weight 17 | test_cfg=dict( 18 | num_points=4096, 19 | block_size=1.0, 20 | sample_rate=0.5, 21 | use_normalized_coord=True, 22 | batch_size=24)) 23 | 24 | # runtime settings 25 | checkpoint_config = dict(interval=2) 26 | # PointNet2-MSG needs longer training time than PointNet2-SSG 27 | runner = dict(type='EpochBasedRunner', max_epochs=80) 28 | -------------------------------------------------------------------------------- /configs/nuimages/htc_x101_64x4d_fpn_dconv_c3-c5_coco-20e_16x1_20e_nuim.py: -------------------------------------------------------------------------------- 1 | _base_ = './htc_r50_fpn_1x_nuim.py' 2 | model = dict( 3 | pretrained='open-mmlab://resnext101_64x4d', 4 | backbone=dict( 5 | type='ResNeXt', 6 | depth=101, 7 | groups=64, 8 | base_width=4, 9 | num_stages=4, 10 | out_indices=(0, 1, 2, 3), 11 | frozen_stages=1, 12 | norm_cfg=dict(type='BN', requires_grad=True), 13 | norm_eval=True, 14 | style='pytorch', 15 | dcn=dict(type='DCN', deform_groups=1, fallback_on_stride=False), 16 | stage_with_dcn=(False, True, True, True))) 17 | 18 | data = dict(samples_per_gpu=1, workers_per_gpu=1) 19 | # learning policy 20 | lr_config = dict(step=[16, 19]) 21 | runner = dict(max_epochs=20) 22 | 23 | load_from = 'http://download.openmmlab.com/mmdetection/v2.0/htc/htc_x101_64x4d_fpn_dconv_c3-c5_mstrain_400_1400_16x1_20e_coco/htc_x101_64x4d_fpn_dconv_c3-c5_mstrain_400_1400_16x1_20e_coco_20200312-946fd751.pth' # noqa 24 | -------------------------------------------------------------------------------- /tests/test_models/test_voxel_encoder/test_voxel_generator.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | import numpy as np 3 | 4 | from mmdet3d.core.voxel.voxel_generator import VoxelGenerator 5 | 6 | 7 | def test_voxel_generator(): 8 | np.random.seed(0) 9 | voxel_size = [0.5, 0.5, 0.5] 10 | point_cloud_range = [0, -40, -3, 70.4, 40, 1] 11 | max_num_points = 1000 12 | self = VoxelGenerator(voxel_size, point_cloud_range, max_num_points) 13 | points = np.random.rand(1000, 4) 14 | voxels = self.generate(points) 15 | voxels, coors, num_points_per_voxel = voxels 16 | expected_coors = np.array([[7, 81, 1], [6, 81, 0], [7, 80, 1], [6, 81, 1], 17 | [7, 81, 0], [6, 80, 1], [7, 80, 0], [6, 80, 0]]) 18 | expected_num_points_per_voxel = np.array( 19 | [120, 121, 127, 134, 115, 127, 125, 131]) 20 | assert voxels.shape == (8, 1000, 4) 21 | assert np.all(coors == expected_coors) 22 | assert np.all(num_points_per_voxel == expected_num_points_per_voxel) 23 | -------------------------------------------------------------------------------- /configs/3dssd/metafile.yml: -------------------------------------------------------------------------------- 1 | Collections: 2 | - Name: 3DSSD 3 | Metadata: 4 | Training Data: KITTI 5 | Training Techniques: 6 | - AdamW 7 | Training Resources: 4x TITAN X 8 | Architecture: 9 | - PointNet++ 10 | Paper: 11 | URL: https://arxiv.org/abs/2002.10187 12 | Title: '3DSSD: Point-based 3D Single Stage Object Detector' 13 | README: configs/3dssd/README.md 14 | Code: 15 | URL: https://github.com/open-mmlab/mmdetection3d/blob/master/mmdet3d/models/detectors/ssd3dnet.py#L7 16 | Version: v0.6.0 17 | 18 | Models: 19 | - Name: 3dssd_4x4_kitti-3d-car 20 | In Collection: 3DSSD 21 | Config: configs/3dssd/3dssd_4x4_kitti-3d-car.py 22 | Metadata: 23 | Training Memory (GB): 4.7 24 | Results: 25 | - Task: 3D Object Detection 26 | Dataset: KITTI 27 | Metrics: 28 | mAP: 78.58 29 | Weights: https://download.openmmlab.com/mmdetection3d/v1.0.0_models/3dssd/3dssd_4x4_kitti-3d-car/3dssd_4x4_kitti-3d-car_20210818_203828-b89c8fc4.pth 30 | -------------------------------------------------------------------------------- /mmdet3d/core/points/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .base_points import BasePoints 3 | from .cam_points import CameraPoints 4 | from .depth_points import DepthPoints 5 | from .lidar_points import LiDARPoints 6 | 7 | __all__ = ['BasePoints', 'CameraPoints', 'DepthPoints', 'LiDARPoints'] 8 | 9 | 10 | def get_points_type(points_type): 11 | """Get the class of points according to coordinate type. 12 | 13 | Args: 14 | points_type (str): The type of points coordinate. 15 | The valid value are "CAMERA", "LIDAR", or "DEPTH". 16 | 17 | Returns: 18 | class: Points type. 19 | """ 20 | if points_type == 'CAMERA': 21 | points_cls = CameraPoints 22 | elif points_type == 'LIDAR': 23 | points_cls = LiDARPoints 24 | elif points_type == 'DEPTH': 25 | points_cls = DepthPoints 26 | else: 27 | raise ValueError('Only "points_type" of "CAMERA", "LIDAR", or "DEPTH"' 28 | f' are supported, got {points_type}') 29 | 30 | return points_cls 31 | -------------------------------------------------------------------------------- /configs/_base_/models/hv_pointpillars_fpn_lyft.py: -------------------------------------------------------------------------------- 1 | _base_ = './hv_pointpillars_fpn_nus.py' 2 | 3 | # model settings (based on nuScenes model settings) 4 | # Voxel size for voxel encoder 5 | # Usually voxel size is changed consistently with the point cloud range 6 | # If point cloud range is modified, do remember to change all related 7 | # keys in the config. 8 | model = dict( 9 | pts_voxel_layer=dict( 10 | max_num_points=20, 11 | point_cloud_range=[-80, -80, -5, 80, 80, 3], 12 | max_voxels=(60000, 60000)), 13 | pts_voxel_encoder=dict( 14 | feat_channels=[64], point_cloud_range=[-80, -80, -5, 80, 80, 3]), 15 | pts_middle_encoder=dict(output_shape=[640, 640]), 16 | pts_bbox_head=dict( 17 | num_classes=9, 18 | anchor_generator=dict( 19 | ranges=[[-80, -80, -1.8, 80, 80, -1.8]], custom_values=[]), 20 | bbox_coder=dict(type='DeltaXYZWLHRBBoxCoder', code_size=7)), 21 | # model training settings (based on nuScenes model settings) 22 | train_cfg=dict(pts=dict(code_weight=[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]))) 23 | -------------------------------------------------------------------------------- /tests/data/lyft/v1.01-train/v1.01-train/category.json: -------------------------------------------------------------------------------- 1 | [{"description": "", "token": "8eccddb83fa7f8f992b2500f2ad658f65c9095588f3bc0ae338d97aff2dbcb9c", "name": "car"}, {"description": "", "token": "73e8de69959eb9f5b4cd2859e74bec4b5491417336cad63f27e8edb8530ffbf8", "name": "pedestrian"}, {"description": "", "token": "f81f51e1897311b55c0c6247c3db825466733e08df687c0ea830b026316a1c12", "name": "animal"}, {"description": "", "token": "a8619a81f5acc7da2a2f034420db2b2f43a015c8c689822e5295b5d6f7a5d8d6", "name": "other_vehicle"}, {"description": "", "token": "7ea5868735dc408109bfa74fd139bd8c5aa3767b52e054b8e792cabcf309c6f4", "name": "bus"}, {"description": "", "token": "1248d937c7a1a2eb1022ba9e806ebd5183b6c20c7f5703d8a7320600f1caad27", "name": "motorcycle"}, {"description": "", "token": "8af78d27e148a8f544f4c86b2a3f4bd6192b975d1065dd932ebdb8879778e275", "name": "truck"}, {"token": "c4e92c2b854fb03382838643c36d01a349f5624a11f184042d91d916d19acdbd", "description": "", "name": "emergency_vehicle"}, {"description": "", "token": "8c07dfa7af0da0191d59a2db50dc26ad1528be1fad483f17e2586309482d81bd", "name": "bicycle"}] 2 | -------------------------------------------------------------------------------- /configs/_base_/models/hv_pointpillars_fpn_range100_lyft.py: -------------------------------------------------------------------------------- 1 | _base_ = './hv_pointpillars_fpn_nus.py' 2 | 3 | # model settings (based on nuScenes model settings) 4 | # Voxel size for voxel encoder 5 | # Usually voxel size is changed consistently with the point cloud range 6 | # If point cloud range is modified, do remember to change all related 7 | # keys in the config. 8 | model = dict( 9 | pts_voxel_layer=dict( 10 | max_num_points=20, 11 | point_cloud_range=[-100, -100, -5, 100, 100, 3], 12 | max_voxels=(60000, 60000)), 13 | pts_voxel_encoder=dict( 14 | feat_channels=[64], point_cloud_range=[-100, -100, -5, 100, 100, 3]), 15 | pts_middle_encoder=dict(output_shape=[800, 800]), 16 | pts_bbox_head=dict( 17 | num_classes=9, 18 | anchor_generator=dict( 19 | ranges=[[-100, -100, -1.8, 100, 100, -1.8]], custom_values=[]), 20 | bbox_coder=dict(type='DeltaXYZWLHRBBoxCoder', code_size=7)), 21 | # model training settings (based on nuScenes model settings) 22 | train_cfg=dict(pts=dict(code_weight=[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]))) 23 | -------------------------------------------------------------------------------- /configs/point_rcnn/metafile.yml: -------------------------------------------------------------------------------- 1 | Collections: 2 | - Name: PointRCNN 3 | Metadata: 4 | Training Data: KITTI 5 | Training Techniques: 6 | - AdamW 7 | Training Resources: 8x Titan XP GPUs 8 | Architecture: 9 | - PointNet++ 10 | Paper: 11 | URL: https://arxiv.org/abs/1812.04244 12 | Title: 'PointRCNN: 3D Object Proposal Generation and Detection from Point Cloud' 13 | README: configs/point_rcnn/README.md 14 | Code: 15 | URL: https://github.com/open-mmlab/mmdetection3d/blob/v1.0.0.dev0/mmdet3d/models/detectors/point_rcnn.py#L8 16 | Version: v1.0.0 17 | 18 | Models: 19 | - Name: point_rcnn_2x8_kitti-3d-3classes.py 20 | In Collection: PointRCNN 21 | Config: configs/point_rcnn/point_rcnn_2x8_kitti-3d-3classes.py 22 | Metadata: 23 | Training Memory (GB): 4.6 24 | Results: 25 | - Task: 3D Object Detection 26 | Dataset: KITTI 27 | Metrics: 28 | mAP: 70.83 29 | Weights: https://download.openmmlab.com/mmdetection3d/v1.0.0_models/point_rcnn/point_rcnn_2x8_kitti-3d-3classes_20211208_151344.pth 30 | -------------------------------------------------------------------------------- /configs/_base_/models/dgcnn.py: -------------------------------------------------------------------------------- 1 | # model settings 2 | model = dict( 3 | type='EncoderDecoder3D', 4 | backbone=dict( 5 | type='DGCNNBackbone', 6 | in_channels=9, # [xyz, rgb, normal_xyz], modified with dataset 7 | num_samples=(20, 20, 20), 8 | knn_modes=('D-KNN', 'F-KNN', 'F-KNN'), 9 | radius=(None, None, None), 10 | gf_channels=((64, 64), (64, 64), (64, )), 11 | fa_channels=(1024, ), 12 | act_cfg=dict(type='LeakyReLU', negative_slope=0.2)), 13 | decode_head=dict( 14 | type='DGCNNHead', 15 | fp_channels=(1216, 512), 16 | channels=256, 17 | dropout_ratio=0.5, 18 | conv_cfg=dict(type='Conv1d'), 19 | norm_cfg=dict(type='BN1d'), 20 | act_cfg=dict(type='LeakyReLU', negative_slope=0.2), 21 | loss_decode=dict( 22 | type='CrossEntropyLoss', 23 | use_sigmoid=False, 24 | class_weight=None, # modified with dataset 25 | loss_weight=1.0)), 26 | # model training and testing settings 27 | train_cfg=dict(), 28 | test_cfg=dict(mode='slide')) 29 | -------------------------------------------------------------------------------- /configs/h3dnet/metafile.yml: -------------------------------------------------------------------------------- 1 | Collections: 2 | - Name: H3DNet 3 | Metadata: 4 | Training Data: ScanNet 5 | Training Techniques: 6 | - AdamW 7 | Training Resources: 8x GeForce GTX 1080 Ti 8 | Architecture: 9 | Paper: 10 | URL: https://arxiv.org/abs/2006.05682 11 | Title: 'H3DNet: 3D Object Detection Using Hybrid Geometric Primitives' 12 | README: configs/h3dnet/README.md 13 | Code: 14 | URL: https://github.com/open-mmlab/mmdetection3d/blob/master/mmdet3d/models/detectors/h3dnet.py#L10 15 | Version: v0.6.0 16 | 17 | Models: 18 | - Name: h3dnet_3x8_scannet-3d-18class 19 | In Collection: H3DNet 20 | Config: configs/h3dnet/h3dnet_3x8_scannet-3d-18class.py 21 | Metadata: 22 | Training Memory (GB): 7.9 23 | Results: 24 | - Task: 3D Object Detection 25 | Dataset: ScanNet 26 | Metrics: 27 | AP@0.25: 66.07 28 | AP@0.5: 47.68 29 | Weights: https://download.openmmlab.com/mmdetection3d/v1.0.0_models/h3dnet/h3dnet_3x8_scannet-3d-18class/h3dnet_3x8_scannet-3d-18class_20210824_003149-414bd304.pth 30 | -------------------------------------------------------------------------------- /configs/second/hv_second_secfpn_6x8_80e_kitti-3d-car.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/hv_second_secfpn_kitti.py', 3 | '../_base_/datasets/kitti-3d-car.py', '../_base_/schedules/cyclic_40e.py', 4 | '../_base_/default_runtime.py' 5 | ] 6 | point_cloud_range = [0, -40, -3, 70.4, 40, 1] 7 | model = dict( 8 | bbox_head=dict( 9 | type='Anchor3DHead', 10 | num_classes=1, 11 | anchor_generator=dict( 12 | _delete_=True, 13 | type='Anchor3DRangeGenerator', 14 | ranges=[[0, -40.0, -1.78, 70.4, 40.0, -1.78]], 15 | sizes=[[3.9, 1.6, 1.56]], 16 | rotations=[0, 1.57], 17 | reshape_out=True)), 18 | # model training and testing settings 19 | train_cfg=dict( 20 | _delete_=True, 21 | assigner=dict( 22 | type='MaxIoUAssigner', 23 | iou_calculator=dict(type='BboxOverlapsNearest3D'), 24 | pos_iou_thr=0.6, 25 | neg_iou_thr=0.45, 26 | min_pos_iou=0.45, 27 | ignore_iof_thr=-1), 28 | allowed_border=0, 29 | pos_weight=-1, 30 | debug=False)) 31 | -------------------------------------------------------------------------------- /configs/imvoxelnet/metafile.yml: -------------------------------------------------------------------------------- 1 | Collections: 2 | - Name: ImVoxelNet 3 | Metadata: 4 | Training Data: KITTI 5 | Training Techniques: 6 | - AdamW 7 | Training Resources: 8x Tesla P40 8 | Architecture: 9 | - Anchor3DHead 10 | Paper: 11 | URL: https://arxiv.org/abs/2106.01178 12 | Title: 'ImVoxelNet: Image to Voxels Projection for Monocular and Multi-View General-Purpose 3D Object Detection' 13 | README: configs/imvoxelnet/README.md 14 | Code: 15 | URL: https://github.com/open-mmlab/mmdetection3d/blob/master/mmdet3d/models/detectors/imvoxelnet.py#L11 16 | Version: v0.15.0 17 | 18 | Models: 19 | - Name: imvoxelnet_4x8_kitti-3d-car 20 | In Collection: ImVoxelNet 21 | Config: configs/imvoxelnet/imvoxelnet_4x8_kitti-3d-car.py 22 | Metadata: 23 | Training Memory (GB): 15.0 24 | Results: 25 | - Task: 3D Object Detection 26 | Dataset: KITTI 27 | Metrics: 28 | mAP: 17.26 29 | Weights: https://download.openmmlab.com/mmdetection3d/v1.0.0_models/imvoxelnet/imvoxelnet_4x8_kitti-3d-car/imvoxelnet_4x8_kitti-3d-car_20210830_003014-3d0ffdf4.pth 30 | -------------------------------------------------------------------------------- /configs/smoke/metafile.yml: -------------------------------------------------------------------------------- 1 | Collections: 2 | - Name: SMOKE 3 | Metadata: 4 | Training Data: KITTI 5 | Training Techniques: 6 | - Adam 7 | Training Resources: 4x V100 GPUS 8 | Architecture: 9 | - SMOKEMono3DHead 10 | - DLA 11 | Paper: 12 | URL: https://arxiv.org/abs/2002.10111 13 | Title: 'SMOKE: Single-Stage Monocular 3D Object Detection via Keypoint Estimation' 14 | README: configs/smoke/README.md 15 | Code: 16 | URL: https://github.com/open-mmlab/mmdetection3d/blob/v1.0.0.dev0/mmdet3d/models/detectors/smoke_mono3d.py#L7 17 | Version: v1.0.0 18 | 19 | Models: 20 | - Name: smoke_dla34_pytorch_dlaneck_gn-all_8x4_6x_kitti-mono3d 21 | In Collection: SMOKE 22 | Config: configs/smoke/smoke_dla34_pytorch_dlaneck_gn-all_8x4_6x_kitti-mono3d.py 23 | Metadata: 24 | Training Memory (GB): 9.6 25 | Results: 26 | - Task: 3D Object Detection 27 | Dataset: KITTI 28 | Metrics: 29 | mAP: 13.8 30 | Weights: https://download.openmmlab.com/mmdetection3d/v0.1.0_models/smoke/smoke_dla34_pytorch_dlaneck_gn-all_8x4_6x_kitti-mono3d_20210929_015553-d46d9bb0.pth 31 | -------------------------------------------------------------------------------- /configs/monoflex/metafile.yml: -------------------------------------------------------------------------------- 1 | Collections: 2 | - Name: MonoFlex 3 | Metadata: 4 | Training Data: KITTI 5 | Training Techniques: 6 | - Adam 7 | Training Resources: 2x V100 GPUS 8 | Architecture: 9 | - MonoFlexHead 10 | - DLA 11 | Paper: 12 | URL: https://arxiv.org/abs/2104.02323 13 | Title: 'Objects are Different: Flexible Monocular 3D Object Detection' 14 | README: configs/monoflex/README.md 15 | Code: 16 | URL: https://github.com/open-mmlab/mmdetection3d/blob/v1.0.0.dev0/mmdet3d/models/detectors/monoflex.py#L7 17 | Version: v1.0.0 18 | 19 | Models: 20 | - Name: monoflex_dla34_pytorch_dlaneck_gn-all_2x4_6x_kitti-mono3d 21 | In Collection: MonoFlex 22 | Config: configs/monoflex/monoflex_dla34_pytorch_dlaneck_gn-all_2x4_6x_kitti-mono3d.py 23 | Metadata: 24 | Training Memory (GB): 9.64 25 | Results: 26 | - Task: 3D Object Detection 27 | Dataset: KITTI 28 | Metrics: 29 | mAP: 21.98 30 | Weights: https://download.openmmlab.com/mmdetection3d/v0.1.0_models/monoflex/monoflex_dla34_pytorch_dlaneck_gn-all_2x4_6x_kitti-mono3d_20211228_027553-d46d9bb0.pth 31 | -------------------------------------------------------------------------------- /configs/paconv/metafile.yml: -------------------------------------------------------------------------------- 1 | Collections: 2 | - Name: PAConv 3 | Metadata: 4 | Training Techniques: 5 | - SGD 6 | Training Resources: 8x Titan XP GPUs 7 | Architecture: 8 | - PAConv 9 | Paper: 10 | URL: https://arxiv.org/abs/2103.14635 11 | Title: 'PAConv: Position Adaptive Convolution with Dynamic Kernel Assembling on Point Clouds' 12 | README: configs/paconv/README.md 13 | Code: 14 | URL: https://github.com/open-mmlab/mmdetection3d/blob/master/mmdet3d/ops/paconv/paconv.py#L106 15 | Version: v0.16.0 16 | 17 | Models: 18 | - Name: paconv_ssg_8x8_cosine_150e_s3dis_seg-3d-13class.py 19 | In Collection: PAConv 20 | Config: configs/paconv/paconv_ssg_8x8_cosine_150e_s3dis_seg-3d-13class.py 21 | Metadata: 22 | Training Data: S3DIS 23 | Training Memory (GB): 5.8 24 | Results: 25 | - Task: 3D Semantic Segmentation 26 | Dataset: S3DIS 27 | Metrics: 28 | mIoU: 66.65 29 | Weights: https://download.openmmlab.com/mmdetection3d/v0.1.0_models/paconv/paconv_ssg_8x8_cosine_150e_s3dis_seg-3d-13class/paconv_ssg_8x8_cosine_150e_s3dis_seg-3d-13class_20210729_200615-2147b2d1.pth 30 | -------------------------------------------------------------------------------- /mmdet3d/models/dense_heads/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .anchor3d_head import Anchor3DHead 3 | from .anchor_free_mono3d_head import AnchorFreeMono3DHead 4 | from .base_conv_bbox_head import BaseConvBboxHead 5 | from .base_mono3d_dense_head import BaseMono3DDenseHead 6 | from .centerpoint_head import CenterHead 7 | from .fcaf3d_head import FCAF3DHead 8 | from .fcos_mono3d_head import FCOSMono3DHead 9 | from .free_anchor3d_head import FreeAnchor3DHead 10 | from .groupfree3d_head import GroupFree3DHead 11 | from .monoflex_head import MonoFlexHead 12 | from .parta2_rpn_head import PartA2RPNHead 13 | from .pgd_head import PGDHead 14 | from .point_rpn_head import PointRPNHead 15 | from .shape_aware_head import ShapeAwareHead 16 | from .smoke_mono3d_head import SMOKEMono3DHead 17 | from .ssd_3d_head import SSD3DHead 18 | from .vote_head import VoteHead 19 | 20 | __all__ = [ 21 | 'Anchor3DHead', 'FreeAnchor3DHead', 'PartA2RPNHead', 'VoteHead', 22 | 'SSD3DHead', 'BaseConvBboxHead', 'CenterHead', 'ShapeAwareHead', 23 | 'BaseMono3DDenseHead', 'AnchorFreeMono3DHead', 'FCOSMono3DHead', 24 | 'GroupFree3DHead', 'PointRPNHead', 'SMOKEMono3DHead', 'PGDHead', 25 | 'MonoFlexHead', 'FCAF3DHead' 26 | ] 27 | -------------------------------------------------------------------------------- /mmdet3d/utils/logger.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | import logging 3 | 4 | from mmcv.utils import get_logger 5 | 6 | 7 | def get_root_logger(log_file=None, log_level=logging.INFO, name='mmdet3d'): 8 | """Get root logger and add a keyword filter to it. 9 | 10 | The logger will be initialized if it has not been initialized. By default a 11 | StreamHandler will be added. If `log_file` is specified, a FileHandler will 12 | also be added. The name of the root logger is the top-level package name, 13 | e.g., "mmdet3d". 14 | 15 | Args: 16 | log_file (str, optional): File path of log. Defaults to None. 17 | log_level (int, optional): The level of logger. 18 | Defaults to logging.INFO. 19 | name (str, optional): The name of the root logger, also used as a 20 | filter keyword. Defaults to 'mmdet3d'. 21 | 22 | Returns: 23 | :obj:`logging.Logger`: The obtained logger 24 | """ 25 | logger = get_logger(name=name, log_file=log_file, log_level=log_level) 26 | 27 | # add a logging filter 28 | logging_filter = logging.Filter(name) 29 | logging_filter.filter = lambda record: record.find(name) != -1 30 | 31 | return logger 32 | -------------------------------------------------------------------------------- /configs/mvxnet/metafile.yml: -------------------------------------------------------------------------------- 1 | Collections: 2 | - Name: MVX-Net 3 | Metadata: 4 | Training Data: KITTI 5 | Training Techniques: 6 | - AdamW 7 | Training Resources: 8x V100 GPUs 8 | Architecture: 9 | - Feature Pyramid Network 10 | - Dynamic Voxelization 11 | Paper: 12 | URL: https://arxiv.org/abs/1904.01649 13 | Title: 'MVX-Net: Multimodal VoxelNet for 3D Object Detection' 14 | README: configs/mvxnet/README.md 15 | Code: 16 | URL: https://github.com/open-mmlab/mmdetection3d/blob/master/mmdet3d/models/detectors/mvx_two_stage.py#L20 17 | Version: v0.5.0 18 | 19 | Models: 20 | - Name: dv_mvx-fpn_second_secfpn_adamw_2x8_80e_kitti-3d-3class 21 | In Collection: MVX-Net 22 | Config: configs/mvxnet/dv_mvx-fpn_second_secfpn_adamw_2x8_80e_kitti-3d-3class.py 23 | Metadata: 24 | Training Memory (GB): 6.7 25 | Results: 26 | - Task: 3D Object Detection 27 | Dataset: KITTI 28 | Metrics: 29 | mAP: 63.22 30 | Weights: https://download.openmmlab.com/mmdetection3d/v1.0.0_models/mvxnet/dv_mvx-fpn_second_secfpn_adamw_2x8_80e_kitti-3d-3class/dv_mvx-fpn_second_secfpn_adamw_2x8_80e_kitti-3d-3class_20210831_060805-83442923.pth 31 | -------------------------------------------------------------------------------- /tests/test_models/test_necks/test_fpn.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | import pytest 3 | 4 | 5 | def test_secfpn(): 6 | neck_cfg = dict( 7 | type='SECONDFPN', 8 | in_channels=[2, 3], 9 | upsample_strides=[1, 2], 10 | out_channels=[4, 6], 11 | ) 12 | from mmdet3d.models.builder import build_neck 13 | neck = build_neck(neck_cfg) 14 | assert neck.deblocks[0][0].in_channels == 2 15 | assert neck.deblocks[1][0].in_channels == 3 16 | assert neck.deblocks[0][0].out_channels == 4 17 | assert neck.deblocks[1][0].out_channels == 6 18 | assert neck.deblocks[0][0].stride == (1, 1) 19 | assert neck.deblocks[1][0].stride == (2, 2) 20 | assert neck is not None 21 | 22 | neck_cfg = dict( 23 | type='SECONDFPN', 24 | in_channels=[2, 2], 25 | upsample_strides=[1, 2, 4], 26 | out_channels=[2, 2], 27 | ) 28 | with pytest.raises(AssertionError): 29 | build_neck(neck_cfg) 30 | 31 | neck_cfg = dict( 32 | type='SECONDFPN', 33 | in_channels=[2, 2, 4], 34 | upsample_strides=[1, 2, 4], 35 | out_channels=[2, 2], 36 | ) 37 | with pytest.raises(AssertionError): 38 | build_neck(neck_cfg) 39 | -------------------------------------------------------------------------------- /tools/model_converters/publish_model.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | import argparse 3 | import subprocess 4 | 5 | import torch 6 | 7 | 8 | def parse_args(): 9 | parser = argparse.ArgumentParser( 10 | description='Process a checkpoint to be published') 11 | parser.add_argument('in_file', help='input checkpoint filename') 12 | parser.add_argument('out_file', help='output checkpoint filename') 13 | args = parser.parse_args() 14 | return args 15 | 16 | 17 | def process_checkpoint(in_file, out_file): 18 | checkpoint = torch.load(in_file, map_location='cpu') 19 | # remove optimizer for smaller file size 20 | if 'optimizer' in checkpoint: 21 | del checkpoint['optimizer'] 22 | # if it is necessary to remove some sensitive data in checkpoint['meta'], 23 | # add the code here. 24 | torch.save(checkpoint, out_file) 25 | sha = subprocess.check_output(['sha256sum', out_file]).decode() 26 | final_file = out_file.rstrip('.pth') + '-{}.pth'.format(sha[:8]) 27 | subprocess.Popen(['mv', out_file, final_file]) 28 | 29 | 30 | def main(): 31 | args = parse_args() 32 | process_checkpoint(args.in_file, args.out_file) 33 | 34 | 35 | if __name__ == '__main__': 36 | main() 37 | -------------------------------------------------------------------------------- /tests/test_metrics/test_seg_eval.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | import numpy as np 3 | import pytest 4 | import torch 5 | 6 | from mmdet3d.core.evaluation.seg_eval import seg_eval 7 | 8 | 9 | def test_indoor_eval(): 10 | if not torch.cuda.is_available(): 11 | pytest.skip() 12 | seg_preds = [ 13 | torch.Tensor([ 14 | 0, 0, 1, 0, 0, 2, 1, 3, 1, 2, 1, 0, 2, 2, 2, 2, 1, 3, 0, 3, 3, 3, 3 15 | ]) 16 | ] 17 | gt_labels = [ 18 | torch.Tensor([ 19 | 0, 0, 0, 255, 0, 0, 1, 1, 1, 255, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 20 | 3, 255 21 | ]) 22 | ] 23 | 24 | label2cat = { 25 | 0: 'car', 26 | 1: 'bicycle', 27 | 2: 'motorcycle', 28 | 3: 'truck', 29 | } 30 | ret_value = seg_eval(gt_labels, seg_preds, label2cat, ignore_index=255) 31 | 32 | assert np.isclose(ret_value['car'], 0.428571429) 33 | assert np.isclose(ret_value['bicycle'], 0.428571429) 34 | assert np.isclose(ret_value['motorcycle'], 0.6666667) 35 | assert np.isclose(ret_value['truck'], 0.6666667) 36 | 37 | assert np.isclose(ret_value['acc'], 0.7) 38 | assert np.isclose(ret_value['acc_cls'], 0.7) 39 | assert np.isclose(ret_value['miou'], 0.547619048) 40 | -------------------------------------------------------------------------------- /configs/pointpillars/hv_pointpillars_secfpn_sbn_2x16_2x_waymoD5-3d-car.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/hv_pointpillars_secfpn_waymo.py', 3 | '../_base_/datasets/waymoD5-3d-car.py', 4 | '../_base_/schedules/schedule_2x.py', 5 | '../_base_/default_runtime.py', 6 | ] 7 | 8 | # model settings 9 | model = dict( 10 | type='MVXFasterRCNN', 11 | pts_bbox_head=dict( 12 | type='Anchor3DHead', 13 | num_classes=1, 14 | anchor_generator=dict( 15 | type='AlignedAnchor3DRangeGenerator', 16 | ranges=[[-74.88, -74.88, -0.0345, 74.88, 74.88, -0.0345]], 17 | sizes=[[4.73, 2.08, 1.77]], 18 | rotations=[0, 1.57], 19 | reshape_out=True)), 20 | # model training and testing settings 21 | train_cfg=dict( 22 | _delete_=True, 23 | pts=dict( 24 | assigner=dict( 25 | type='MaxIoUAssigner', 26 | iou_calculator=dict(type='BboxOverlapsNearest3D'), 27 | pos_iou_thr=0.55, 28 | neg_iou_thr=0.4, 29 | min_pos_iou=0.4, 30 | ignore_iof_thr=-1), 31 | allowed_border=0, 32 | code_weight=[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 33 | pos_weight=-1, 34 | debug=False))) 35 | -------------------------------------------------------------------------------- /tests/data/lyft/v1.01-train/v1.01-train/sensor.json: -------------------------------------------------------------------------------- 1 | [{"modality": "camera", "channel": "CAM_FRONT_LEFT", "token": "f7dad6bb70cb8e6245f96e5537e382848335872e6e259218b0a80cc071d162c4"}, {"modality": "lidar", "channel": "LIDAR_FRONT_LEFT", "token": "629da739ea3a0814b9d79ffc3b99cdbc8bdbb6f97abf139f1ad33bd12f8fa94d"}, {"modality": "camera", "channel": "CAM_FRONT", "token": "eb9e8f60a3d6e3328d7512b9f8e6800127fe91f4d62bc8e48a0e6a7cb116cc60"}, {"modality": "lidar", "channel": "LIDAR_TOP", "token": "25bf751d7e35f295393d8a418731474b21c1f702e878c4553f112397caa48c08"}, {"modality": "camera", "channel": "CAM_BACK_LEFT", "token": "c84592e22beb2c0f14d5159245ce8d6678431b879e940eed580651c09cc7d2f1"}, {"modality": "lidar", "channel": "LIDAR_FRONT_RIGHT", "token": "953faed96fd3d2fae3ec03cd2838b312b8c1a9bb7a0629481982870cb28acb67"}, {"modality": "camera", "channel": "CAM_BACK", "token": "172a55e2b50f18a6b6d545369a457003c2f3b438d0180b2b4c7819ca29b3f6ab"}, {"modality": "camera", "channel": "CAM_BACK_RIGHT", "token": "8e0259a868ddbfe589c2ce9c8bfb34a9e6c19c108b882c45433c76b70a2491a2"}, {"modality": "camera", "channel": "CAM_FRONT_ZOOMED", "token": "286718e1fbc8c8f0ca441969d91c36a8a809666e049e54ce121636100b520946"}, {"modality": "camera", "channel": "CAM_FRONT_RIGHT", "token": "de29f3ebb9d96988ac2c5913022c3102a51134e950284aac2e8511f83aff9a81"}] 2 | -------------------------------------------------------------------------------- /tests/test_models/test_voxel_encoder/test_voxel_encoders.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | import torch 3 | 4 | from mmdet3d.models.builder import build_voxel_encoder 5 | 6 | 7 | def test_pillar_feature_net(): 8 | pillar_feature_net_cfg = dict( 9 | type='PillarFeatureNet', 10 | in_channels=5, 11 | feat_channels=[64], 12 | with_distance=False, 13 | voxel_size=(0.2, 0.2, 8), 14 | point_cloud_range=(-51.2, -51.2, -5.0, 51.2, 51.2, 3.0), 15 | norm_cfg=dict(type='BN1d', eps=1e-3, momentum=0.01)) 16 | 17 | pillar_feature_net = build_voxel_encoder(pillar_feature_net_cfg) 18 | 19 | features = torch.rand([97297, 20, 5]) 20 | num_voxels = torch.randint(1, 100, [97297]) 21 | coors = torch.randint(0, 100, [97297, 4]) 22 | 23 | features = pillar_feature_net(features, num_voxels, coors) 24 | assert features.shape == torch.Size([97297, 64]) 25 | 26 | 27 | def test_hard_simple_VFE(): 28 | hard_simple_VFE_cfg = dict(type='HardSimpleVFE', num_features=5) 29 | hard_simple_VFE = build_voxel_encoder(hard_simple_VFE_cfg) 30 | features = torch.rand([240000, 10, 5]) 31 | num_voxels = torch.randint(1, 10, [240000]) 32 | 33 | outputs = hard_simple_VFE(features, num_voxels, None) 34 | assert outputs.shape == torch.Size([240000, 5]) 35 | -------------------------------------------------------------------------------- /configs/_base_/models/pointnet2_msg.py: -------------------------------------------------------------------------------- 1 | _base_ = './pointnet2_ssg.py' 2 | 3 | # model settings 4 | model = dict( 5 | backbone=dict( 6 | _delete_=True, 7 | type='PointNet2SAMSG', 8 | in_channels=6, # [xyz, rgb], should be modified with dataset 9 | num_points=(1024, 256, 64, 16), 10 | radii=((0.05, 0.1), (0.1, 0.2), (0.2, 0.4), (0.4, 0.8)), 11 | num_samples=((16, 32), (16, 32), (16, 32), (16, 32)), 12 | sa_channels=(((16, 16, 32), (32, 32, 64)), ((64, 64, 128), (64, 96, 13 | 128)), 14 | ((128, 196, 256), (128, 196, 256)), ((256, 256, 512), 15 | (256, 384, 512))), 16 | aggregation_channels=(None, None, None, None), 17 | fps_mods=(('D-FPS'), ('D-FPS'), ('D-FPS'), ('D-FPS')), 18 | fps_sample_range_lists=((-1), (-1), (-1), (-1)), 19 | dilated_group=(False, False, False, False), 20 | out_indices=(0, 1, 2, 3), 21 | sa_cfg=dict( 22 | type='PointSAModuleMSG', 23 | pool_mod='max', 24 | use_xyz=True, 25 | normalize_xyz=False)), 26 | decode_head=dict( 27 | fp_channels=((1536, 256, 256), (512, 256, 256), (352, 256, 128), 28 | (128, 128, 128, 128)))) 29 | --------------------------------------------------------------------------------