gitextract_232uyltz/ ├── .gitignore ├── LICENSE ├── MANIFEST.in ├── README.md ├── README_zh-CN.md ├── configs/ │ ├── 3dssd/ │ │ ├── 3dssd_kitti-3d-car.py │ │ └── README.md │ ├── _base_/ │ │ ├── datasets/ │ │ │ ├── coco_instance.py │ │ │ ├── kitti-3d-3class.py │ │ │ ├── kitti-3d-car.py │ │ │ ├── lyft-3d.py │ │ │ ├── nuim_instance.py │ │ │ ├── nus-3d.py │ │ │ ├── range100_lyft-3d.py │ │ │ ├── scannet-3d-18class.py │ │ │ ├── sunrgbd-3d-10class.py │ │ │ ├── waymoD5-3d-3class.py │ │ │ └── waymoD5-3d-car.py │ │ ├── default_runtime.py │ │ ├── models/ │ │ │ ├── 3dssd.py │ │ │ ├── cascade_mask_rcnn_r50_fpn.py │ │ │ ├── centerpoint_01voxel_second_secfpn_nus.py │ │ │ ├── centerpoint_02pillar_second_secfpn_nus.py │ │ │ ├── h3dnet.py │ │ │ ├── hv_pointpillars_fpn_lyft.py │ │ │ ├── hv_pointpillars_fpn_nus.py │ │ │ ├── hv_pointpillars_fpn_range100_lyft.py │ │ │ ├── hv_pointpillars_secfpn_kitti.py │ │ │ ├── hv_pointpillars_secfpn_waymo.py │ │ │ ├── hv_second_secfpn_kitti.py │ │ │ ├── hv_second_secfpn_waymo.py │ │ │ ├── imvotenet_image.py │ │ │ ├── mask_rcnn_r50_fpn.py │ │ │ └── votenet.py │ │ └── schedules/ │ │ ├── cyclic_20e.py │ │ ├── cyclic_40e.py │ │ ├── mmdet_schedule_1x.py │ │ ├── schedule_2x.py │ │ └── schedule_3x.py │ ├── benchmark/ │ │ ├── hv_PartA2_secfpn_4x8_cyclic_80e_pcdet_kitti-3d-3class.py │ │ ├── hv_pointpillars_secfpn_3x8_100e_det3d_kitti-3d-car.py │ │ ├── hv_pointpillars_secfpn_4x8_80e_pcdet_kitti-3d-3class.py │ │ └── hv_second_secfpn_4x8_80e_pcdet_kitti-3d-3class.py │ ├── centerpoint/ │ │ ├── README.md │ │ ├── centerpoint_0075voxel_second_secfpn_4x8_cyclic_20e_nus.py │ │ ├── centerpoint_0075voxel_second_secfpn_circlenms_4x8_cyclic_20e_nus.py │ │ ├── centerpoint_0075voxel_second_secfpn_dcn_4x8_cyclic_20e_nus.py │ │ ├── centerpoint_0075voxel_second_secfpn_dcn_4x8_cyclic_flip-tta_20e_nus.py │ │ ├── centerpoint_0075voxel_second_secfpn_dcn_4x8_cyclic_tta_20e_nus.py │ │ ├── centerpoint_0075voxel_second_secfpn_dcn_circlenms_4x8_cyclic_20e_nus.py │ │ ├── centerpoint_0075voxel_second_secfpn_dcn_circlenms_4x8_cyclic_flip-tta_20e_nus.py │ │ ├── centerpoint_01voxel_second_secfpn_4x8_cyclic_20e_nus.py │ │ ├── centerpoint_01voxel_second_secfpn_circlenms_4x8_cyclic_20e_nus.py │ │ ├── centerpoint_01voxel_second_secfpn_dcn_4x8_cyclic_20e_nus.py │ │ ├── centerpoint_01voxel_second_secfpn_dcn_circlenms_4x8_cyclic_20e_nus.py │ │ ├── centerpoint_02pillar_second_secfpn_4x8_cyclic_20e_nus.py │ │ ├── centerpoint_02pillar_second_secfpn_circlenms_4x8_cyclic_20e_nus.py │ │ ├── centerpoint_02pillar_second_secfpn_dcn_4x8_cyclic_20e_nus.py │ │ └── centerpoint_02pillar_second_secfpn_dcn_circlenms_4x8_cyclic_20e_nus.py │ ├── dynamic_voxelization/ │ │ ├── README.md │ │ ├── dv_pointpillars_secfpn_6x8_160e_kitti-3d-car.py │ │ ├── dv_second_secfpn_2x8_cosine_80e_kitti-3d-3class.py │ │ └── dv_second_secfpn_6x8_80e_kitti-3d-car.py │ ├── fp16/ │ │ ├── README.md │ │ ├── hv_pointpillars_fpn_sbn-all_fp16_2x8_2x_nus-3d.py │ │ ├── hv_pointpillars_regnet-400mf_fpn_sbn-all_fp16_2x8_2x_nus-3d.py │ │ ├── hv_pointpillars_secfpn_sbn-all_fp16_2x8_2x_nus-3d.py │ │ ├── hv_second_secfpn_fp16_6x8_80e_kitti-3d-3class.py │ │ └── hv_second_secfpn_fp16_6x8_80e_kitti-3d-car.py │ ├── free_anchor/ │ │ ├── README.md │ │ ├── hv_pointpillars_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-1.6gf_fpn_sbn-all_free-anchor_strong-aug_4x8_3x_nus-3d.py │ │ ├── hv_pointpillars_regnet-3.2gf_fpn_sbn-all_free-anchor_4x8_2x_nus-3d.py │ │ ├── hv_pointpillars_regnet-3.2gf_fpn_sbn-all_free-anchor_strong-aug_4x8_3x_nus-3d.py │ │ └── hv_pointpillars_regnet-400mf_fpn_sbn-all_free-anchor_4x8_2x_nus-3d.py │ ├── h3dnet/ │ │ ├── README.md │ │ └── h3dnet_3x8_scannet-3d-18class.py │ ├── imvotenet/ │ │ ├── README.md │ │ ├── imvotenet_faster_rcnn_r50_fpn_2x4_sunrgbd-3d-10class.py │ │ └── imvotenet_stage2_16x8_sunrgbd-3d-10class.py │ ├── mvxnet/ │ │ ├── README.md │ │ └── dv_mvx-fpn_second_secfpn_adamw_2x8_80e_kitti-3d-3class.py │ ├── nuimages/ │ │ ├── README.md │ │ ├── cascade_mask_rcnn_r101_fpn_1x_nuim.py │ │ ├── cascade_mask_rcnn_r50_fpn_1x_nuim.py │ │ ├── cascade_mask_rcnn_r50_fpn_coco-20e_1x_nuim.py │ │ ├── cascade_mask_rcnn_r50_fpn_coco-20e_20e_nuim.py │ │ ├── cascade_mask_rcnn_x101_32x4d_fpn_1x_nuim.py │ │ ├── htc_r50_fpn_1x_nuim.py │ │ ├── htc_r50_fpn_coco-20e_1x_nuim.py │ │ ├── htc_r50_fpn_coco-20e_20e_nuim.py │ │ ├── htc_without_semantic_r50_fpn_1x_nuim.py │ │ ├── htc_x101_64x4d_fpn_dconv_c3-c5_coco-20e_16x1_20e_nuim.py │ │ ├── mask_rcnn_r101_fpn_1x_nuim.py │ │ ├── mask_rcnn_r50_caffe_fpn_1x_nuim.py │ │ ├── mask_rcnn_r50_caffe_fpn_coco-3x_1x_nuim.py │ │ ├── mask_rcnn_r50_caffe_fpn_coco-3x_20e_nuim.py │ │ ├── mask_rcnn_r50_fpn_1x_nuim.py │ │ ├── mask_rcnn_r50_fpn_coco-2x_1x_nuim.py │ │ ├── mask_rcnn_r50_fpn_coco-2x_1x_nus-2d.py │ │ ├── mask_rcnn_swinT_coco-2x_1x_nuim.py │ │ └── mask_rcnn_x101_32x4d_fpn_1x_nuim.py │ ├── nuscenes.md │ ├── parta2/ │ │ ├── README.md │ │ ├── hv_PartA2_secfpn_2x8_cyclic_80e_kitti-3d-3class.py │ │ └── hv_PartA2_secfpn_2x8_cyclic_80e_kitti-3d-car.py │ ├── pointpillars/ │ │ ├── README.md │ │ ├── hv_pointpillars_fpn_sbn-all_2x8_2x_lyft-3d.py │ │ ├── hv_pointpillars_fpn_sbn-all_4x8_2x_nus-3d.py │ │ ├── hv_pointpillars_fpn_sbn-all_range100_2x8_2x_lyft-3d.py │ │ ├── hv_pointpillars_secfpn_6x8_160e_kitti-3d-3class.py │ │ ├── hv_pointpillars_secfpn_6x8_160e_kitti-3d-car.py │ │ ├── hv_pointpillars_secfpn_sbn-all_2x8_2x_lyft-3d.py │ │ ├── hv_pointpillars_secfpn_sbn-all_4x8_2x_nus-3d.py │ │ ├── hv_pointpillars_secfpn_sbn-all_range100_2x8_2x_lyft-3d.py │ │ ├── hv_pointpillars_secfpn_sbn_2x16_2x_waymo-3d-3class.py │ │ ├── hv_pointpillars_secfpn_sbn_2x16_2x_waymo-3d-car.py │ │ ├── hv_pointpillars_secfpn_sbn_2x16_2x_waymoD5-3d-3class.py │ │ └── hv_pointpillars_secfpn_sbn_2x16_2x_waymoD5-3d-car.py │ ├── regnet/ │ │ ├── README.md │ │ ├── hv_pointpillars_regnet-1.6gf_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_4x8_2x_nus-3d.py │ │ ├── hv_pointpillars_regnet-400mf_fpn_sbn-all_range100_2x8_2x_lyft-3d.py │ │ ├── hv_pointpillars_regnet-400mf_secfpn_sbn-all_2x8_2x_lyft-3d.py │ │ ├── hv_pointpillars_regnet-400mf_secfpn_sbn-all_4x8_2x_nus-3d.py │ │ └── hv_pointpillars_regnet-400mf_secfpn_sbn-all_range100_2x8_2x_lyft-3d.py │ ├── second/ │ │ ├── README.md │ │ ├── hv_second_secfpn_6x8_80e_kitti-3d-3class.py │ │ ├── hv_second_secfpn_6x8_80e_kitti-3d-car.py │ │ └── hv_second_secfpn_sbn_2x16_2x_waymoD5-3d-3class.py │ ├── sparsefusion_nusc_voxel_LC_SwinT.py │ ├── sparsefusion_nusc_voxel_LC_r50.py │ ├── ssn/ │ │ ├── README.md │ │ ├── hv_ssn_regnet-400mf_secfpn_sbn-all_1x16_2x_lyft-3d.py │ │ ├── hv_ssn_regnet-400mf_secfpn_sbn-all_2x16_2x_nus-3d.py │ │ ├── hv_ssn_secfpn_sbn-all_2x16_2x_lyft-3d.py │ │ └── hv_ssn_secfpn_sbn-all_2x16_2x_nus-3d.py │ ├── transfusion_nusc_pillar_L.py │ ├── transfusion_nusc_pillar_LC.py │ ├── transfusion_nusc_voxel_L.py │ ├── transfusion_nusc_voxel_LC.py │ ├── transfusion_waymo_voxel_L.py │ ├── transfusion_waymo_voxel_LC.py │ ├── votenet/ │ │ ├── README.md │ │ ├── votenet_16x8_sunrgbd-3d-10class.py │ │ ├── votenet_8x8_scannet-3d-18class.py │ │ └── votenet_iouloss_8x8_scannet-3d-18class.py │ └── waymo.md ├── demo/ │ └── pcd_demo.py ├── docker/ │ └── Dockerfile ├── mmdet3d/ │ ├── __init__.py │ ├── apis/ │ │ ├── __init__.py │ │ ├── inference.py │ │ └── test.py │ ├── core/ │ │ ├── __init__.py │ │ ├── anchor/ │ │ │ ├── __init__.py │ │ │ └── anchor_3d_generator.py │ │ ├── bbox/ │ │ │ ├── __init__.py │ │ │ ├── assigners/ │ │ │ │ ├── __init__.py │ │ │ │ └── hungarian_assigner.py │ │ │ ├── box_np_ops.py │ │ │ ├── coders/ │ │ │ │ ├── __init__.py │ │ │ │ ├── anchor_free_bbox_coder.py │ │ │ │ ├── camera_bbox_coder.py │ │ │ │ ├── centerpoint_bbox_coders.py │ │ │ │ ├── delta_xyzwhlr_bbox_coder.py │ │ │ │ ├── partial_bin_based_bbox_coder.py │ │ │ │ └── transfusion_bbox_coder.py │ │ │ ├── iou_calculators/ │ │ │ │ ├── __init__.py │ │ │ │ └── iou3d_calculator.py │ │ │ ├── samplers/ │ │ │ │ ├── __init__.py │ │ │ │ └── iou_neg_piecewise_sampler.py │ │ │ ├── structures/ │ │ │ │ ├── __init__.py │ │ │ │ ├── base_box3d.py │ │ │ │ ├── box_3d_mode.py │ │ │ │ ├── cam_box3d.py │ │ │ │ ├── coord_3d_mode.py │ │ │ │ ├── depth_box3d.py │ │ │ │ ├── lidar_box3d.py │ │ │ │ └── utils.py │ │ │ └── transforms.py │ │ ├── evaluation/ │ │ │ ├── __init__.py │ │ │ ├── indoor_eval.py │ │ │ ├── kitti_utils/ │ │ │ │ ├── __init__.py │ │ │ │ ├── eval.py │ │ │ │ └── rotate_iou.py │ │ │ ├── lyft_eval.py │ │ │ ├── seg_eval.py │ │ │ └── waymo_utils/ │ │ │ └── prediction_kitti_to_waymo.py │ │ ├── points/ │ │ │ ├── __init__.py │ │ │ ├── base_points.py │ │ │ ├── cam_points.py │ │ │ ├── depth_points.py │ │ │ └── lidar_points.py │ │ ├── post_processing/ │ │ │ ├── __init__.py │ │ │ ├── box3d_nms.py │ │ │ └── merge_augs.py │ │ ├── utils/ │ │ │ ├── __init__.py │ │ │ └── gaussian.py │ │ ├── visualizer/ │ │ │ ├── __init__.py │ │ │ ├── open3d_vis.py │ │ │ └── show_result.py │ │ └── voxel/ │ │ ├── __init__.py │ │ ├── builder.py │ │ └── voxel_generator.py │ ├── datasets/ │ │ ├── __init__.py │ │ ├── builder.py │ │ ├── custom_3d.py │ │ ├── dataset_wrappers.py │ │ ├── kitti2d_dataset.py │ │ ├── kitti_dataset.py │ │ ├── lyft_dataset.py │ │ ├── nuscenes_dataset.py │ │ ├── nuscenes_dataset_viewInfo.py │ │ ├── pipelines/ │ │ │ ├── __init__.py │ │ │ ├── data_augment_utils.py │ │ │ ├── dbsampler.py │ │ │ ├── formating.py │ │ │ ├── loading.py │ │ │ ├── test_time_aug.py │ │ │ ├── transforms_2d.py │ │ │ └── transforms_3d.py │ │ ├── registry.py │ │ ├── scannet_dataset.py │ │ ├── semantickitti_dataset.py │ │ ├── sunrgbd_dataset.py │ │ └── waymo_dataset.py │ ├── models/ │ │ ├── __init__.py │ │ ├── backbones/ │ │ │ ├── DLA.py │ │ │ ├── __init__.py │ │ │ ├── base_pointnet.py │ │ │ ├── multi_backbone.py │ │ │ ├── nostem_regnet.py │ │ │ ├── pointnet2_sa_msg.py │ │ │ ├── pointnet2_sa_ssg.py │ │ │ ├── second.py │ │ │ └── swin.py │ │ ├── builder.py │ │ ├── dense_heads/ │ │ │ ├── __init__.py │ │ │ ├── anchor3d_head.py │ │ │ ├── base_conv_bbox_head.py │ │ │ ├── centerpoint_head.py │ │ │ ├── free_anchor3d_head.py │ │ │ ├── parta2_rpn_head.py │ │ │ ├── shape_aware_head.py │ │ │ ├── sparsefusion_head_deform.py │ │ │ ├── ssd_3d_head.py │ │ │ ├── train_mixins.py │ │ │ ├── transfusion_head.py │ │ │ └── vote_head.py │ │ ├── detectors/ │ │ │ ├── __init__.py │ │ │ ├── base.py │ │ │ ├── centerpoint.py │ │ │ ├── dynamic_voxelnet.py │ │ │ ├── h3dnet.py │ │ │ ├── imvotenet.py │ │ │ ├── mvx_faster_rcnn.py │ │ │ ├── mvx_two_stage.py │ │ │ ├── parta2.py │ │ │ ├── single_stage.py │ │ │ ├── sparsefusion.py │ │ │ ├── ssd3dnet.py │ │ │ ├── transfusion.py │ │ │ ├── two_stage.py │ │ │ ├── votenet.py │ │ │ └── voxelnet.py │ │ ├── fusion_layers/ │ │ │ ├── __init__.py │ │ │ ├── coord_transform.py │ │ │ ├── point_fusion.py │ │ │ └── vote_fusion.py │ │ ├── losses/ │ │ │ ├── __init__.py │ │ │ ├── axis_aligned_iou_loss.py │ │ │ ├── chamfer_distance.py │ │ │ └── uncertainty_loss.py │ │ ├── middle_encoders/ │ │ │ ├── __init__.py │ │ │ ├── pillar_scatter.py │ │ │ ├── sparse_encoder.py │ │ │ └── sparse_unet.py │ │ ├── model_utils/ │ │ │ ├── __init__.py │ │ │ └── vote_module.py │ │ ├── necks/ │ │ │ ├── __init__.py │ │ │ └── second_fpn.py │ │ ├── registry.py │ │ ├── roi_heads/ │ │ │ ├── __init__.py │ │ │ ├── base_3droi_head.py │ │ │ ├── bbox_heads/ │ │ │ │ ├── __init__.py │ │ │ │ ├── h3d_bbox_head.py │ │ │ │ └── parta2_bbox_head.py │ │ │ ├── h3d_roi_head.py │ │ │ ├── mask_heads/ │ │ │ │ ├── __init__.py │ │ │ │ ├── pointwise_semantic_head.py │ │ │ │ └── primitive_head.py │ │ │ ├── part_aggregation_roi_head.py │ │ │ └── roi_extractors/ │ │ │ ├── __init__.py │ │ │ └── single_roiaware_extractor.py │ │ ├── utils/ │ │ │ ├── __init__.py │ │ │ ├── clip_sigmoid.py │ │ │ ├── deformable_decoder.py │ │ │ ├── depth_encoder.py │ │ │ ├── drop.py │ │ │ ├── ffn.py │ │ │ ├── inverse_sigmoid.py │ │ │ ├── mlp.py │ │ │ ├── network_modules.py │ │ │ ├── ops/ │ │ │ │ ├── functions/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── ms_deform_attn_func.py │ │ │ │ ├── make.sh │ │ │ │ ├── modules/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── ms_deform_attn.py │ │ │ │ ├── setup.py │ │ │ │ ├── src/ │ │ │ │ │ ├── cpu/ │ │ │ │ │ │ ├── ms_deform_attn_cpu.cpp │ │ │ │ │ │ └── ms_deform_attn_cpu.h │ │ │ │ │ ├── cuda/ │ │ │ │ │ │ ├── ms_deform_attn_cuda.cu │ │ │ │ │ │ ├── ms_deform_attn_cuda.h │ │ │ │ │ │ └── ms_deform_im2col_cuda.cuh │ │ │ │ │ ├── ms_deform_attn.h │ │ │ │ │ └── vision.cpp │ │ │ │ └── test.py │ │ │ ├── projection.py │ │ │ ├── sparsefusion_models.py │ │ │ ├── transformer.py │ │ │ └── transformerdecoder.py │ │ └── voxel_encoders/ │ │ ├── __init__.py │ │ ├── pillar_encoder.py │ │ ├── utils.py │ │ └── voxel_encoder.py │ ├── ops/ │ │ ├── __init__.py │ │ ├── ball_query/ │ │ │ ├── __init__.py │ │ │ ├── ball_query.py │ │ │ └── src/ │ │ │ ├── ball_query.cpp │ │ │ └── ball_query_cuda.cu │ │ ├── furthest_point_sample/ │ │ │ ├── __init__.py │ │ │ ├── furthest_point_sample.py │ │ │ ├── points_sampler.py │ │ │ ├── src/ │ │ │ │ ├── furthest_point_sample.cpp │ │ │ │ └── furthest_point_sample_cuda.cu │ │ │ └── utils.py │ │ ├── gather_points/ │ │ │ ├── __init__.py │ │ │ ├── gather_points.py │ │ │ └── src/ │ │ │ ├── gather_points.cpp │ │ │ └── gather_points_cuda.cu │ │ ├── group_points/ │ │ │ ├── __init__.py │ │ │ ├── group_points.py │ │ │ └── src/ │ │ │ ├── group_points.cpp │ │ │ └── group_points_cuda.cu │ │ ├── interpolate/ │ │ │ ├── __init__.py │ │ │ ├── src/ │ │ │ │ ├── interpolate.cpp │ │ │ │ ├── three_interpolate_cuda.cu │ │ │ │ └── three_nn_cuda.cu │ │ │ ├── three_interpolate.py │ │ │ └── three_nn.py │ │ ├── iou3d/ │ │ │ ├── __init__.py │ │ │ ├── iou3d_utils.py │ │ │ └── src/ │ │ │ ├── iou3d.cpp │ │ │ └── iou3d_kernel.cu │ │ ├── knn/ │ │ │ ├── __init__.py │ │ │ ├── knn.py │ │ │ └── src/ │ │ │ ├── knn.cpp │ │ │ └── knn_cuda.cu │ │ ├── norm.py │ │ ├── pointnet_modules/ │ │ │ ├── __init__.py │ │ │ ├── builder.py │ │ │ ├── point_fp_module.py │ │ │ ├── point_sa_module.py │ │ │ └── registry.py │ │ ├── roiaware_pool3d/ │ │ │ ├── __init__.py │ │ │ ├── points_in_boxes.py │ │ │ ├── roiaware_pool3d.py │ │ │ └── src/ │ │ │ ├── points_in_boxes_cpu.cpp │ │ │ ├── points_in_boxes_cuda.cu │ │ │ ├── roiaware_pool3d.cpp │ │ │ └── roiaware_pool3d_kernel.cu │ │ ├── sparse_block.py │ │ ├── spconv/ │ │ │ ├── __init__.py │ │ │ ├── conv.py │ │ │ ├── functional.py │ │ │ ├── include/ │ │ │ │ ├── paramsgrid.h │ │ │ │ ├── prettyprint.h │ │ │ │ ├── pybind11_utils.h │ │ │ │ ├── spconv/ │ │ │ │ │ ├── fused_spconv_ops.h │ │ │ │ │ ├── geometry.h │ │ │ │ │ ├── indice.cu.h │ │ │ │ │ ├── indice.h │ │ │ │ │ ├── maxpool.h │ │ │ │ │ ├── mp_helper.h │ │ │ │ │ ├── point2voxel.h │ │ │ │ │ ├── pool_ops.h │ │ │ │ │ ├── reordering.cu.h │ │ │ │ │ ├── reordering.h │ │ │ │ │ └── spconv_ops.h │ │ │ │ ├── tensorview/ │ │ │ │ │ ├── helper_kernel.cu.h │ │ │ │ │ ├── helper_launch.h │ │ │ │ │ └── tensorview.h │ │ │ │ ├── torch_utils.h │ │ │ │ └── utility/ │ │ │ │ └── timer.h │ │ │ ├── modules.py │ │ │ ├── ops.py │ │ │ ├── overwrite_spconv/ │ │ │ │ └── write_spconv2.py │ │ │ ├── pool.py │ │ │ ├── src/ │ │ │ │ ├── all.cc │ │ │ │ ├── indice.cc │ │ │ │ ├── indice_cuda.cu │ │ │ │ ├── maxpool.cc │ │ │ │ ├── maxpool_cuda.cu │ │ │ │ ├── reordering.cc │ │ │ │ └── reordering_cuda.cu │ │ │ ├── structure.py │ │ │ └── test_utils.py │ │ └── voxel/ │ │ ├── __init__.py │ │ ├── scatter_points.py │ │ ├── src/ │ │ │ ├── scatter_points_cpu.cpp │ │ │ ├── scatter_points_cuda.cu │ │ │ ├── voxelization.cpp │ │ │ ├── voxelization.h │ │ │ ├── voxelization_cpu.cpp │ │ │ └── voxelization_cuda.cu │ │ └── voxelize.py │ ├── utils/ │ │ ├── __init__.py │ │ └── collect_env.py │ └── version.py ├── requirements/ │ ├── build.txt │ ├── docs.txt │ ├── optional.txt │ ├── readthedocs.txt │ ├── runtime.txt │ └── tests.txt ├── requirements.txt ├── setup.cfg ├── setup.py ├── tests/ │ ├── test_data/ │ │ ├── test_datasets/ │ │ │ ├── test_dataset_wrappers.py │ │ │ ├── test_kitti_dataset.py │ │ │ ├── test_lyft_dataset.py │ │ │ ├── test_nuscene_dataset.py │ │ │ ├── test_scannet_dataset.py │ │ │ ├── test_semantickitti_dataset.py │ │ │ └── test_sunrgbd_dataset.py │ │ └── test_pipelines/ │ │ ├── test_augmentations/ │ │ │ ├── test_data_augment_utils.py │ │ │ ├── test_test_augment_utils.py │ │ │ └── test_transforms_3d.py │ │ ├── test_indoor_pipeline.py │ │ ├── test_indoor_sample.py │ │ ├── test_loadings/ │ │ │ ├── test_load_points_from_multi_sweeps.py │ │ │ └── test_loading.py │ │ └── test_outdoor_pipeline.py │ ├── test_metrics/ │ │ ├── test_indoor_eval.py │ │ ├── test_kitti_eval.py │ │ ├── test_losses.py │ │ └── test_seg_eval.py │ ├── test_models/ │ │ ├── test_backbones.py │ │ ├── test_common_modules/ │ │ │ ├── test_middle_encoders.py │ │ │ ├── test_pointnet_modules.py │ │ │ ├── test_pointnet_ops.py │ │ │ ├── test_roiaware_pool3d.py │ │ │ ├── test_sparse_unet.py │ │ │ └── test_vote_module.py │ │ ├── test_detectors.py │ │ ├── test_forward.py │ │ ├── test_fusion/ │ │ │ ├── test_fusion_coord_trans.py │ │ │ ├── test_point_fusion.py │ │ │ └── test_vote_fusion.py │ │ ├── test_heads/ │ │ │ ├── test_heads.py │ │ │ ├── test_parta2_bbox_head.py │ │ │ ├── test_roi_extractors.py │ │ │ └── test_semantic_heads.py │ │ ├── test_necks/ │ │ │ ├── test_fpn.py │ │ │ └── test_necks.py │ │ └── test_voxel_encoder/ │ │ ├── test_dynamic_scatter.py │ │ ├── test_voxel_encoders.py │ │ ├── test_voxel_generator.py │ │ └── test_voxelize.py │ ├── test_runtime/ │ │ ├── test_apis.py │ │ └── test_config.py │ ├── test_samples/ │ │ └── parta2_roihead_inputs.npz │ └── test_utils/ │ ├── test_anchors.py │ ├── test_assigners.py │ ├── test_bbox_coders.py │ ├── test_box3d.py │ ├── test_box_np_ops.py │ ├── test_coord_3d_mode.py │ ├── test_merge_augs.py │ ├── test_nms.py │ ├── test_points.py │ ├── test_samplers.py │ └── test_utils.py ├── tools/ │ ├── analysis_tools/ │ │ ├── analyze_logs.py │ │ ├── benchmark.py │ │ └── get_flops.py │ ├── combine_view_info.py │ ├── create_data.py │ ├── create_data.sh │ ├── data_converter/ │ │ ├── __init__.py │ │ ├── create_gt_database.py │ │ ├── indoor_converter.py │ │ ├── kitti_converter.py │ │ ├── kitti_data_utils.py │ │ ├── lyft_converter.py │ │ ├── nuimage_converter.py │ │ ├── nuscenes_converter.py │ │ ├── scannet_data_utils.py │ │ ├── sunrgbd_data_utils.py │ │ └── waymo_converter.py │ ├── dist_test.sh │ ├── dist_train.sh │ ├── misc/ │ │ ├── fuse_conv_bn.py │ │ ├── print_config.py │ │ └── visualize_results.py │ ├── model_converters/ │ │ ├── convert_votenet_checkpoints.py │ │ ├── publish_model.py │ │ └── regnet2mmdet.py │ ├── slurm_test.sh │ ├── slurm_train.sh │ ├── test.py │ └── train.py └── train.sh