gitextract_5bm2vozl/ ├── .gitignore ├── README.md ├── configs/ │ ├── _base_/ │ │ ├── datasets/ │ │ │ ├── coco_instance.py │ │ │ ├── kitti-3d-3class.py │ │ │ ├── kitti-3d-car.py │ │ │ ├── kitti-mono3d.py │ │ │ ├── lyft-3d.py │ │ │ ├── nuim_instance.py │ │ │ ├── nus-3d.py │ │ │ ├── nus-mono3d.py │ │ │ ├── range100_lyft-3d.py │ │ │ ├── s3dis-3d-5class.py │ │ │ ├── s3dis_seg-3d-13class.py │ │ │ ├── scannet-3d-18class.py │ │ │ ├── scannet_seg-3d-20class.py │ │ │ ├── sunrgbd-3d-10class.py │ │ │ ├── waymoD5-3d-3class.py │ │ │ └── waymoD5-3d-car.py │ │ ├── default_runtime.py │ │ ├── init.py │ │ ├── models/ │ │ │ ├── 3dssd.py │ │ │ ├── cascade_mask_rcnn_r50_fpn.py │ │ │ ├── centerpoint_01voxel_second_secfpn_nus.py │ │ │ ├── centerpoint_02pillar_second_secfpn_nus.py │ │ │ ├── dgcnn.py │ │ │ ├── fcaf3d.py │ │ │ ├── fcos3d.py │ │ │ ├── groupfree3d.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 │ │ │ ├── paconv_cuda_ssg.py │ │ │ ├── paconv_ssg.py │ │ │ ├── parta2.py │ │ │ ├── pgd.py │ │ │ ├── point_rcnn.py │ │ │ ├── pointnet2_msg.py │ │ │ ├── pointnet2_ssg.py │ │ │ ├── smoke.py │ │ │ └── votenet.py │ │ └── schedules/ │ │ ├── cosine.py │ │ ├── cyclic_20e.py │ │ ├── cyclic_40e.py │ │ ├── mmdet_schedule_1x.py │ │ ├── schedule_2x.py │ │ ├── schedule_3x.py │ │ ├── seg_cosine_100e.py │ │ ├── seg_cosine_150e.py │ │ ├── seg_cosine_200e.py │ │ └── seg_cosine_50e.py │ └── bev_next/ │ ├── bev_planner.py │ ├── bev_planner_plus.py │ ├── bev_planner_plus_plus.py │ ├── bev_planner_w_map.py │ ├── det_pretrain_320x800_vov_36ep.py │ ├── det_pretrain_640x1600_vov_36ep.py │ └── map_pretrain.py ├── mmdet3d/ │ ├── __init__.py │ ├── apis/ │ │ ├── __init__.py │ │ ├── inference.py │ │ ├── test.py │ │ └── train.py │ ├── core/ │ │ ├── __init__.py │ │ ├── anchor/ │ │ │ ├── __init__.py │ │ │ └── anchor_3d_generator.py │ │ ├── bbox/ │ │ │ ├── __init__.py │ │ │ ├── assigners/ │ │ │ │ └── __init__.py │ │ │ ├── box_np_ops.py │ │ │ ├── coders/ │ │ │ │ ├── __init__.py │ │ │ │ ├── anchor_free_bbox_coder.py │ │ │ │ ├── centerpoint_bbox_coders.py │ │ │ │ ├── delta_xyzwhlr_bbox_coder.py │ │ │ │ ├── fcos3d_bbox_coder.py │ │ │ │ ├── groupfree3d_bbox_coder.py │ │ │ │ ├── monoflex_bbox_coder.py │ │ │ │ ├── partial_bin_based_bbox_coder.py │ │ │ │ ├── pgd_bbox_coder.py │ │ │ │ ├── point_xyzwhlr_bbox_coder.py │ │ │ │ └── smoke_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 │ │ │ │ ├── custom_box.py │ │ │ │ ├── depth_box3d.py │ │ │ │ ├── lidar_box3d.py │ │ │ │ └── utils.py │ │ │ ├── transforms.py │ │ │ └── util.py │ │ ├── evaluation/ │ │ │ ├── __init__.py │ │ │ ├── indoor_eval.py │ │ │ ├── instance_seg_eval.py │ │ │ ├── kitti_utils/ │ │ │ │ ├── __init__.py │ │ │ │ ├── eval.py │ │ │ │ └── rotate_iou.py │ │ │ ├── lyft_eval.py │ │ │ ├── scannet_utils/ │ │ │ │ ├── __init__.py │ │ │ │ ├── evaluate_semantic_instance.py │ │ │ │ └── util_3d.py │ │ │ ├── seg_eval.py │ │ │ └── waymo_utils/ │ │ │ ├── __init__.py │ │ │ └── prediction_kitti_to_waymo.py │ │ ├── hook/ │ │ │ ├── __init__.py │ │ │ ├── ema.py │ │ │ ├── forge_load.py │ │ │ ├── sequentialsontrol.py │ │ │ └── utils.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 │ │ │ ├── array_converter.py │ │ │ └── gaussian.py │ │ ├── visualizer/ │ │ │ ├── __init__.py │ │ │ ├── image_vis.py │ │ │ ├── open3d_vis.py │ │ │ └── show_result.py │ │ └── voxel/ │ │ ├── __init__.py │ │ ├── builder.py │ │ └── voxel_generator.py │ ├── datasets/ │ │ ├── __init__.py │ │ ├── builder.py │ │ ├── custom_3d.py │ │ ├── custom_3d_seg.py │ │ ├── dataset_wrappers.py │ │ ├── evals/ │ │ │ ├── eval_utils.py │ │ │ ├── map_api.py │ │ │ ├── metric_utils.py │ │ │ └── nuscenes_eval_motion.py │ │ ├── evaluation/ │ │ │ ├── AP.py │ │ │ ├── __init__.py │ │ │ ├── distance.py │ │ │ ├── raster_eval.py │ │ │ └── vector_eval.py │ │ ├── kitti2d_dataset.py │ │ ├── kitti_dataset.py │ │ ├── kitti_mono_dataset.py │ │ ├── lyft_dataset.py │ │ ├── map_utils/ │ │ │ ├── mean_ap.py │ │ │ ├── tpfp.py │ │ │ └── tpfp_chamfer.py │ │ ├── nuscenes_dataset.py │ │ ├── nuscenes_eval.py │ │ ├── nuscenes_mono_dataset.py │ │ ├── occ_metrics.py │ │ ├── occupancy_eval.py │ │ ├── pipelines/ │ │ │ ├── __init__.py │ │ │ ├── compose.py │ │ │ ├── data_augment_utils.py │ │ │ ├── dbsampler.py │ │ │ ├── formating.py │ │ │ ├── loading.py │ │ │ ├── test_time_aug.py │ │ │ └── transforms_3d.py │ │ ├── s3dis_dataset.py │ │ ├── samplers/ │ │ │ ├── __init__.py │ │ │ ├── d_sampler.py │ │ │ └── infinite_group_each_sample_in_batch_sampler.py │ │ ├── scannet_dataset.py │ │ ├── semantickitti_dataset.py │ │ ├── sunrgbd_dataset.py │ │ ├── utils.py │ │ ├── vector_map.py │ │ └── waymo_dataset.py │ ├── models/ │ │ ├── __init__.py │ │ ├── backbones/ │ │ │ ├── __init__.py │ │ │ ├── base_pointnet.py │ │ │ ├── convnext.py │ │ │ ├── dgcnn.py │ │ │ ├── dla.py │ │ │ ├── load.py │ │ │ ├── mink_resnet.py │ │ │ ├── multi_backbone.py │ │ │ ├── nostem_regnet.py │ │ │ ├── pointnet2_sa_msg.py │ │ │ ├── pointnet2_sa_ssg.py │ │ │ ├── resnet.py │ │ │ ├── second.py │ │ │ ├── swin.py │ │ │ ├── vovnet.py │ │ │ └── vovnet2.py │ │ ├── builder.py │ │ ├── decode_heads/ │ │ │ ├── __init__.py │ │ │ ├── decode_head.py │ │ │ ├── dgcnn_head.py │ │ │ ├── paconv_head.py │ │ │ └── pointnet2_head.py │ │ ├── dense_heads/ │ │ │ ├── __init__.py │ │ │ ├── anchor3d_head.py │ │ │ ├── anchor_free_mono3d_head.py │ │ │ ├── base_conv_bbox_head.py │ │ │ ├── base_mono3d_dense_head.py │ │ │ ├── centerpoint_head.py │ │ │ ├── centerpoint_head_single_task.py │ │ │ ├── fcaf3d_head.py │ │ │ ├── fcos_mono3d_head.py │ │ │ ├── free_anchor3d_head.py │ │ │ ├── groupfree3d_head.py │ │ │ ├── monoflex_head.py │ │ │ ├── parta2_rpn_head.py │ │ │ ├── pgd_head.py │ │ │ ├── point_rpn_head.py │ │ │ ├── shape_aware_head.py │ │ │ ├── smoke_mono3d_head.py │ │ │ ├── ssd_3d_head.py │ │ │ ├── train_mixins.py │ │ │ └── vote_head.py │ │ ├── detectors/ │ │ │ ├── __init__.py │ │ │ ├── base.py │ │ │ ├── bevdet.py │ │ │ ├── centerpoint.py │ │ │ ├── dynamic_voxelnet.py │ │ │ ├── fcos_mono3d.py │ │ │ ├── groupfree3dnet.py │ │ │ ├── h3dnet.py │ │ │ ├── imvotenet.py │ │ │ ├── imvoxelnet.py │ │ │ ├── mink_single_stage.py │ │ │ ├── mvx_faster_rcnn.py │ │ │ ├── mvx_two_stage.py │ │ │ ├── parta2.py │ │ │ ├── point_rcnn.py │ │ │ ├── sassd.py │ │ │ ├── single_stage.py │ │ │ ├── single_stage_mono3d.py │ │ │ ├── smoke_mono3d.py │ │ │ ├── ssd3dnet.py │ │ │ ├── two_stage.py │ │ │ ├── votenet.py │ │ │ └── voxelnet.py │ │ ├── fbbev/ │ │ │ ├── __init__.py │ │ │ ├── detectors/ │ │ │ │ ├── __init__.py │ │ │ │ └── bev_planner.py │ │ │ ├── heads/ │ │ │ │ ├── __init__.py │ │ │ │ ├── occupancy_head.py │ │ │ │ └── yolox.py │ │ │ ├── modules/ │ │ │ │ ├── __init__.py │ │ │ │ ├── depth_net.py │ │ │ │ ├── fpn3d.py │ │ │ │ ├── frpn.py │ │ │ │ ├── occ_loss_utils/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── focal_loss.py │ │ │ │ │ ├── lovasz_softmax.py │ │ │ │ │ ├── nusc_param.py │ │ │ │ │ └── semkitti.py │ │ │ │ └── resnet3d.py │ │ │ ├── motion_head/ │ │ │ │ ├── __init__.py │ │ │ │ ├── motion_head.py │ │ │ │ ├── motion_planner_head.py │ │ │ │ └── traj_loss.py │ │ │ ├── planner_head/ │ │ │ │ ├── AD_mlp.py │ │ │ │ ├── __init__.py │ │ │ │ ├── metric_stp3.py │ │ │ │ ├── naive_planner.py │ │ │ │ ├── plan_loss.py │ │ │ │ └── plan_loss_gt.py │ │ │ ├── streammapnet/ │ │ │ │ ├── CustomMSDeformableAttention.py │ │ │ │ ├── __init__.py │ │ │ │ ├── cost.py │ │ │ │ ├── fp16_dattn.py │ │ │ │ ├── hungarian_lines_assigner.py │ │ │ │ ├── loss.py │ │ │ │ ├── map_utils.py │ │ │ │ ├── streammapnet_head.py │ │ │ │ ├── transformer.py │ │ │ │ └── utils.py │ │ │ ├── streampetr/ │ │ │ │ ├── __init__.py │ │ │ │ ├── hungarian_assigner_2d.py │ │ │ │ ├── hungarian_assigner_3d.py │ │ │ │ ├── match_cost.py │ │ │ │ ├── nms_free_coder.py │ │ │ │ ├── petr_transformer.py │ │ │ │ ├── streampetr_utils.py │ │ │ │ └── streampetr_v2.py │ │ │ ├── track_head/ │ │ │ │ ├── __init__.py │ │ │ │ ├── instances.py │ │ │ │ ├── losses/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── tracking_loss.py │ │ │ │ │ ├── tracking_loss_base.py │ │ │ │ │ ├── tracking_loss_combo.py │ │ │ │ │ ├── tracking_loss_mem_bank.py │ │ │ │ │ └── tracking_loss_prediction.py │ │ │ │ ├── runtime_tracker.py │ │ │ │ ├── streampetr_utils.py │ │ │ │ ├── track_nms_free_coder.py │ │ │ │ ├── trackpetr.py │ │ │ │ └── utils.py │ │ │ ├── utils/ │ │ │ │ ├── __init__.py │ │ │ │ ├── bricks.py │ │ │ │ ├── draw_bbox.py │ │ │ │ ├── eval_hook.py │ │ │ │ ├── grid_mask.py │ │ │ │ ├── timer_cp.py │ │ │ │ └── wechat_logger.py │ │ │ └── view_transformation/ │ │ │ ├── __init__.py │ │ │ ├── backward_projection/ │ │ │ │ ├── __init__.py │ │ │ │ ├── backward_projection.py │ │ │ │ └── bevformer_utils/ │ │ │ │ ├── __init__.py │ │ │ │ ├── bevformer.py │ │ │ │ ├── bevformer_encoder.py │ │ │ │ ├── custom_base_transformer_layer.py │ │ │ │ ├── multi_scale_deformable_attn_function.py │ │ │ │ ├── positional_encoding.py │ │ │ │ └── spatial_cross_attention_depth.py │ │ │ └── forward_projection/ │ │ │ ├── __init__.py │ │ │ └── view_transformer.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 │ │ │ ├── multibin_loss.py │ │ │ ├── paconv_regularization_loss.py │ │ │ ├── rotated_iou_loss.py │ │ │ └── uncertain_smooth_l1_loss.py │ │ ├── middle_encoders/ │ │ │ ├── __init__.py │ │ │ ├── pillar_scatter.py │ │ │ ├── sparse_encoder.py │ │ │ └── sparse_unet.py │ │ ├── model_utils/ │ │ │ ├── __init__.py │ │ │ ├── edge_fusion_module.py │ │ │ ├── transformer.py │ │ │ └── vote_module.py │ │ ├── necks/ │ │ │ ├── __init__.py │ │ │ ├── dla_neck.py │ │ │ ├── fpn.py │ │ │ ├── imvoxel_neck.py │ │ │ ├── lss_fpn.py │ │ │ ├── pointnet2_fp_neck.py │ │ │ ├── second_fpn.py │ │ │ └── view_transformer.py │ │ ├── roi_heads/ │ │ │ ├── __init__.py │ │ │ ├── base_3droi_head.py │ │ │ ├── bbox_heads/ │ │ │ │ ├── __init__.py │ │ │ │ ├── h3d_bbox_head.py │ │ │ │ ├── parta2_bbox_head.py │ │ │ │ └── point_rcnn_bbox_head.py │ │ │ ├── h3d_roi_head.py │ │ │ ├── mask_heads/ │ │ │ │ ├── __init__.py │ │ │ │ ├── pointwise_semantic_head.py │ │ │ │ └── primitive_head.py │ │ │ ├── part_aggregation_roi_head.py │ │ │ ├── point_rcnn_roi_head.py │ │ │ └── roi_extractors/ │ │ │ ├── __init__.py │ │ │ ├── single_roiaware_extractor.py │ │ │ └── single_roipoint_extractor.py │ │ ├── segmentors/ │ │ │ ├── __init__.py │ │ │ ├── base.py │ │ │ └── encoder_decoder.py │ │ ├── utils/ │ │ │ ├── __init__.py │ │ │ ├── clip_sigmoid.py │ │ │ ├── edge_indices.py │ │ │ ├── gen_keypoints.py │ │ │ ├── handle_objs.py │ │ │ └── mlp.py │ │ └── voxel_encoders/ │ │ ├── __init__.py │ │ ├── pillar_encoder.py │ │ ├── utils.py │ │ └── voxel_encoder.py │ ├── ops/ │ │ ├── __init__.py │ │ ├── bev_pool_v2/ │ │ │ ├── __init__.py │ │ │ ├── bev_pool.py │ │ │ └── src/ │ │ │ ├── bev_pool.cpp │ │ │ └── bev_pool_cuda.cu │ │ ├── dgcnn_modules/ │ │ │ ├── __init__.py │ │ │ ├── dgcnn_fa_module.py │ │ │ ├── dgcnn_fp_module.py │ │ │ └── dgcnn_gf_module.py │ │ ├── norm.py │ │ ├── ops_dcnv3/ │ │ │ ├── functions/ │ │ │ │ ├── __init__.py │ │ │ │ └── dcnv3_func.py │ │ │ ├── make.sh │ │ │ ├── modules/ │ │ │ │ ├── __init__.py │ │ │ │ └── dcnv3.py │ │ │ ├── setup.py │ │ │ ├── src/ │ │ │ │ ├── cpu/ │ │ │ │ │ ├── dcnv3_cpu.cpp │ │ │ │ │ └── dcnv3_cpu.h │ │ │ │ ├── cuda/ │ │ │ │ │ ├── dcnv3_cuda.cu │ │ │ │ │ ├── dcnv3_cuda.h │ │ │ │ │ └── dcnv3_im2col_cuda.cuh │ │ │ │ ├── dcnv3.h │ │ │ │ └── vision.cpp │ │ │ └── test.py │ │ ├── paconv/ │ │ │ ├── __init__.py │ │ │ ├── paconv.py │ │ │ └── utils.py │ │ ├── pointnet_modules/ │ │ │ ├── __init__.py │ │ │ ├── builder.py │ │ │ ├── paconv_sa_module.py │ │ │ ├── point_fp_module.py │ │ │ └── point_sa_module.py │ │ ├── sparse_block.py │ │ └── spconv/ │ │ ├── __init__.py │ │ └── overwrite_spconv/ │ │ ├── __init__.py │ │ └── write_spconv2.py │ ├── utils/ │ │ ├── __init__.py │ │ ├── collect_env.py │ │ ├── compat_cfg.py │ │ ├── logger.py │ │ ├── misc.py │ │ └── setup_env.py │ └── version.py ├── requirements/ │ ├── build.txt │ ├── docs.txt │ ├── mminstall.txt │ ├── optional.txt │ ├── readthedocs.txt │ ├── runtime.txt │ └── tests.txt └── tools/ ├── analysis_tools/ │ ├── analyze_logs.py │ ├── benchmark.py │ ├── benchmark_sequential.py │ ├── benchmark_trt.py │ ├── benchmark_view_transformer.py │ ├── create_video.py │ ├── generate_mask_based_on_lidar_points.py │ ├── get_flops.py │ ├── model_converter.py │ ├── occupancy_cbgs.py │ ├── vis.py │ └── vis_occupancy.py ├── create_data.py ├── create_data.sh ├── create_data_bev_planner.py ├── data_converter/ │ ├── __init__.py │ ├── create_gt_database.py │ ├── imgaug_demo.py │ ├── indoor_converter.py │ ├── kitti_converter.py │ ├── kitti_data_utils.py │ ├── lyft_converter.py │ ├── lyft_data_fixer.py │ ├── nuimage_converter.py │ ├── nuscenes_converter.py │ ├── nuscenes_prediction_tools.py │ ├── nuscenes_track_converter.py │ ├── s3dis_data_utils.py │ ├── scannet_data_utils.py │ ├── sunrgbd_data_utils.py │ └── waymo_converter.py ├── deployment/ │ ├── mmdet3d2torchserve.py │ ├── mmdet3d_handler.py │ └── test_torchserver.py ├── dist_test.sh ├── dist_train.sh ├── eval.py ├── misc/ │ ├── browse_dataset.py │ ├── download.sh │ ├── fuse_conv_bn.py │ ├── print_config.py │ ├── tmp.txt │ └── visualize_results.py ├── model_converters/ │ ├── convert_h3dnet_checkpoints.py │ ├── convert_votenet_checkpoints.py │ ├── publish_model.py │ └── regnet2mmdet.py ├── slurm_test.sh ├── slurm_train.sh ├── test.py ├── train.py ├── update_data_coords.py └── update_data_coords.sh