gitextract_ijrumtl_/ ├── .gitignore ├── LICENSE ├── README.md ├── close_loop/ │ ├── SparseDrive_MomAD/ │ │ ├── adzoo/ │ │ │ └── sparsedrive/ │ │ │ ├── configs/ │ │ │ │ ├── momad_small_b2d_stage1.py │ │ │ │ ├── momad_small_b2d_stage2_multiplan.py │ │ │ │ ├── momad_small_b2d_stage2_singleplan.py │ │ │ │ ├── sparsedrive_small_b2d_stage1.py │ │ │ │ ├── sparsedrive_small_b2d_stage2_cmd_singleplan.py │ │ │ │ └── sparsedrive_small_b2d_stage2_targetpoint_multiplan.py │ │ │ ├── dist_train.sh │ │ │ ├── scripts/ │ │ │ │ ├── create_data.sh │ │ │ │ ├── kmeans.sh │ │ │ │ ├── test.sh │ │ │ │ ├── test_roboAD.sh │ │ │ │ ├── train.sh │ │ │ │ ├── train_6s.sh │ │ │ │ ├── train_roboAD.sh │ │ │ │ └── visualize.sh │ │ │ ├── tools/ │ │ │ │ ├── benchmark.py │ │ │ │ ├── data_converter/ │ │ │ │ │ ├── B2D_converter.py │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── nuscenes_converter.py │ │ │ │ │ ├── nuscenes_converter_1_10.py │ │ │ │ │ ├── nuscenes_converter_6s.py │ │ │ │ │ └── nuscenes_converter_hrad_planing_scene.py │ │ │ │ ├── dist_test.sh │ │ │ │ ├── dist_train.sh │ │ │ │ ├── fuse_conv_bn.py │ │ │ │ ├── kmeans/ │ │ │ │ │ ├── kmeans_det.py │ │ │ │ │ ├── kmeans_map.py │ │ │ │ │ ├── kmeans_motion.py │ │ │ │ │ └── kmeans_plan.py │ │ │ │ ├── test.py │ │ │ │ ├── train.py │ │ │ │ ├── train_single.py │ │ │ │ └── visualization/ │ │ │ │ ├── bev_render.py │ │ │ │ └── cam_render.py │ │ │ └── train.py │ │ ├── leaderboard/ │ │ │ ├── .pylintrc │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── docs/ │ │ │ │ ├── Gemfile │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── _config.yml │ │ │ │ ├── _includes/ │ │ │ │ │ ├── footer.html │ │ │ │ │ ├── google-analytics.html │ │ │ │ │ ├── head.html │ │ │ │ │ ├── navbar.html │ │ │ │ │ ├── read_time.html │ │ │ │ │ └── scripts.html │ │ │ │ ├── _layouts/ │ │ │ │ │ ├── default.html │ │ │ │ │ ├── home.html │ │ │ │ │ ├── page.html │ │ │ │ │ └── post.html │ │ │ │ ├── _sass/ │ │ │ │ │ └── styles.scss │ │ │ │ ├── about.html │ │ │ │ ├── assets/ │ │ │ │ │ ├── main.scss │ │ │ │ │ ├── scripts.js │ │ │ │ │ └── vendor/ │ │ │ │ │ ├── bootstrap/ │ │ │ │ │ │ ├── css/ │ │ │ │ │ │ │ └── bootstrap.css │ │ │ │ │ │ └── js/ │ │ │ │ │ │ ├── bootstrap.bundle.js │ │ │ │ │ │ └── bootstrap.js │ │ │ │ │ ├── fontawesome-free/ │ │ │ │ │ │ ├── LICENSE.txt │ │ │ │ │ │ ├── css/ │ │ │ │ │ │ │ ├── all.css │ │ │ │ │ │ │ ├── brands.css │ │ │ │ │ │ │ ├── fontawesome.css │ │ │ │ │ │ │ ├── regular.css │ │ │ │ │ │ │ ├── solid.css │ │ │ │ │ │ │ ├── svg-with-js.css │ │ │ │ │ │ │ └── v4-shims.css │ │ │ │ │ │ ├── js/ │ │ │ │ │ │ │ ├── all.js │ │ │ │ │ │ │ ├── brands.js │ │ │ │ │ │ │ ├── conflict-detection.js │ │ │ │ │ │ │ ├── fontawesome.js │ │ │ │ │ │ │ ├── regular.js │ │ │ │ │ │ │ ├── solid.js │ │ │ │ │ │ │ └── v4-shims.js │ │ │ │ │ │ ├── less/ │ │ │ │ │ │ │ ├── _animated.less │ │ │ │ │ │ │ ├── _bordered-pulled.less │ │ │ │ │ │ │ ├── _core.less │ │ │ │ │ │ │ ├── _fixed-width.less │ │ │ │ │ │ │ ├── _icons.less │ │ │ │ │ │ │ ├── _larger.less │ │ │ │ │ │ │ ├── _list.less │ │ │ │ │ │ │ ├── _mixins.less │ │ │ │ │ │ │ ├── _rotated-flipped.less │ │ │ │ │ │ │ ├── _screen-reader.less │ │ │ │ │ │ │ ├── _shims.less │ │ │ │ │ │ │ ├── _stacked.less │ │ │ │ │ │ │ ├── _variables.less │ │ │ │ │ │ │ ├── brands.less │ │ │ │ │ │ │ ├── fontawesome.less │ │ │ │ │ │ │ ├── regular.less │ │ │ │ │ │ │ ├── solid.less │ │ │ │ │ │ │ └── v4-shims.less │ │ │ │ │ │ └── scss/ │ │ │ │ │ │ ├── _animated.scss │ │ │ │ │ │ ├── _bordered-pulled.scss │ │ │ │ │ │ ├── _core.scss │ │ │ │ │ │ ├── _fixed-width.scss │ │ │ │ │ │ ├── _icons.scss │ │ │ │ │ │ ├── _larger.scss │ │ │ │ │ │ ├── _list.scss │ │ │ │ │ │ ├── _mixins.scss │ │ │ │ │ │ ├── _rotated-flipped.scss │ │ │ │ │ │ ├── _screen-reader.scss │ │ │ │ │ │ ├── _shims.scss │ │ │ │ │ │ ├── _stacked.scss │ │ │ │ │ │ ├── _variables.scss │ │ │ │ │ │ ├── brands.scss │ │ │ │ │ │ ├── fontawesome.scss │ │ │ │ │ │ ├── regular.scss │ │ │ │ │ │ ├── solid.scss │ │ │ │ │ │ └── v4-shims.scss │ │ │ │ │ ├── jquery/ │ │ │ │ │ │ ├── jquery.js │ │ │ │ │ │ └── jquery.slim.js │ │ │ │ │ └── startbootstrap-clean-blog/ │ │ │ │ │ ├── js/ │ │ │ │ │ │ └── jqBootstrapValidation.js │ │ │ │ │ └── scss/ │ │ │ │ │ ├── _bootstrap-overrides.scss │ │ │ │ │ ├── _contact.scss │ │ │ │ │ ├── _footer.scss │ │ │ │ │ ├── _global.scss │ │ │ │ │ ├── _masthead.scss │ │ │ │ │ ├── _mixins.scss │ │ │ │ │ ├── _navbar.scss │ │ │ │ │ ├── _post.scss │ │ │ │ │ ├── _variables.scss │ │ │ │ │ └── clean-blog.scss │ │ │ │ ├── contact.html │ │ │ │ ├── get_started.html │ │ │ │ ├── gulpfile.js │ │ │ │ ├── index.html │ │ │ │ ├── jekyll-theme-clean-blog.gemspec │ │ │ │ ├── leaderboard.html │ │ │ │ ├── posts/ │ │ │ │ │ └── index.html │ │ │ │ └── submit.html │ │ │ ├── leaderboard/ │ │ │ │ ├── __init__.py │ │ │ │ ├── autoagents/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── agent_wrapper.py │ │ │ │ │ ├── autonomous_agent.py │ │ │ │ │ ├── dummy_agent.py │ │ │ │ │ ├── human_agent.py │ │ │ │ │ ├── human_agent_config.txt │ │ │ │ │ ├── npc_agent.py │ │ │ │ │ ├── ros1_agent.py │ │ │ │ │ ├── ros2_agent.py │ │ │ │ │ └── ros_base_agent.py │ │ │ │ ├── envs/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── sensor_interface.py │ │ │ │ ├── leaderboard_evaluator.py │ │ │ │ ├── scenarios/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── route_scenario.py │ │ │ │ │ └── scenario_manager.py │ │ │ │ └── utils/ │ │ │ │ ├── __init__.py │ │ │ │ ├── checkpoint_tools.py │ │ │ │ ├── parked_vehicles.py │ │ │ │ ├── result_writer.py │ │ │ │ ├── route_indexer.py │ │ │ │ ├── route_manipulation.py │ │ │ │ ├── route_parser.py │ │ │ │ └── statistics_manager.py │ │ │ ├── requirements.txt │ │ │ ├── run_leaderboard.sh │ │ │ ├── scripts/ │ │ │ │ ├── Dockerfile.master │ │ │ │ ├── Dockerfile.ros │ │ │ │ ├── agent_entrypoint.sh │ │ │ │ ├── code_check_and_formatting.sh │ │ │ │ ├── make_docker.sh │ │ │ │ ├── manage_scenarios.py │ │ │ │ ├── merge_statistics.py │ │ │ │ ├── pretty_print_json.py │ │ │ │ ├── route_creator.py │ │ │ │ ├── route_displayer.py │ │ │ │ ├── route_summarizer.py │ │ │ │ ├── run_evaluation.sh │ │ │ │ ├── run_evaluation_debug.sh │ │ │ │ ├── run_evaluation_multi_admlp.sh │ │ │ │ ├── run_evaluation_multi_tcp.sh │ │ │ │ ├── run_evaluation_multi_uniad.sh │ │ │ │ ├── run_evaluation_multi_uniad_tiny.sh │ │ │ │ ├── run_evaluation_multi_vad.sh │ │ │ │ ├── run_evalutaion_multi_sparsedrive.sh │ │ │ │ ├── scenario_creator.py │ │ │ │ ├── scenario_orderer.py │ │ │ │ └── weather_creator.py │ │ │ └── team_code/ │ │ │ ├── pid_controller.py │ │ │ ├── planner.py │ │ │ ├── sparsedrive_b2d_agent.py │ │ │ ├── uniad_b2d_agent.py │ │ │ ├── vad_b2d_agent.py │ │ │ └── vad_b2d_agent_visualize.py │ │ ├── mmdet3d_plugin/ │ │ │ ├── __init__.py │ │ │ ├── apis/ │ │ │ │ ├── __init__.py │ │ │ │ ├── mmdet_train.py │ │ │ │ ├── test.py │ │ │ │ └── train.py │ │ │ ├── core/ │ │ │ │ ├── box3d.py │ │ │ │ └── evaluation/ │ │ │ │ ├── __init__.py │ │ │ │ └── eval_hooks.py │ │ │ ├── datasets/ │ │ │ │ ├── __init__.py │ │ │ │ ├── b2d_3d_dataset.py │ │ │ │ ├── builder.py │ │ │ │ ├── evaluation/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── detection/ │ │ │ │ │ │ └── nuscenes_styled_eval_utils.py │ │ │ │ │ ├── map/ │ │ │ │ │ │ ├── AP.py │ │ │ │ │ │ ├── distance.py │ │ │ │ │ │ └── vector_eval.py │ │ │ │ │ ├── motion/ │ │ │ │ │ │ ├── motion_eval_uniad.py │ │ │ │ │ │ └── motion_utils.py │ │ │ │ │ └── planning/ │ │ │ │ │ └── planning_eval.py │ │ │ │ ├── map_utils/ │ │ │ │ │ ├── nuscmap_extractor.py │ │ │ │ │ └── utils.py │ │ │ │ ├── nuscenes_3d_dataset.py │ │ │ │ ├── pipelines/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── augment.py │ │ │ │ │ ├── loading.py │ │ │ │ │ ├── transform.py │ │ │ │ │ └── vectorize.py │ │ │ │ ├── samplers/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── distributed_sampler.py │ │ │ │ │ ├── group_in_batch_sampler.py │ │ │ │ │ ├── group_sampler.py │ │ │ │ │ └── sampler.py │ │ │ │ └── utils.py │ │ │ ├── models/ │ │ │ │ ├── MomAD.py │ │ │ │ ├── MomAD_head.py │ │ │ │ ├── __init__.py │ │ │ │ ├── attention.py │ │ │ │ ├── base_target.py │ │ │ │ ├── blocks.py │ │ │ │ ├── detection3d/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── decoder.py │ │ │ │ │ ├── detection3d_blocks.py │ │ │ │ │ ├── detection3d_head.py │ │ │ │ │ ├── losses.py │ │ │ │ │ └── target.py │ │ │ │ ├── grid_mask.py │ │ │ │ ├── instance_bank.py │ │ │ │ ├── map/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── decoder.py │ │ │ │ │ ├── loss.py │ │ │ │ │ ├── map_blocks.py │ │ │ │ │ ├── match_cost.py │ │ │ │ │ └── target.py │ │ │ │ ├── motion/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── decoder.py │ │ │ │ │ ├── instance_queue.py │ │ │ │ │ ├── motion_blocks.py │ │ │ │ │ ├── motion_planning_cls_head.py │ │ │ │ │ ├── motion_planning_head.py │ │ │ │ │ ├── motion_planning_head_MomAD.py │ │ │ │ │ └── target.py │ │ │ │ ├── sparsedrive.py │ │ │ │ └── sparsedrive_head.py │ │ │ └── ops/ │ │ │ ├── __init__.py │ │ │ ├── deformable_aggregation.py │ │ │ ├── setup.py │ │ │ └── src/ │ │ │ ├── deformable_aggregation.cpp │ │ │ └── deformable_aggregation_cuda.cu │ │ ├── requirement.txt │ │ ├── scenario_runner/ │ │ │ ├── .pylintrc │ │ │ ├── .readthedocs.yml │ │ │ ├── CARLA_VER │ │ │ ├── Dockerfile │ │ │ ├── Docs/ │ │ │ │ ├── CHANGELOG.md │ │ │ │ ├── CODE_OF_CONDUCT.md │ │ │ │ ├── CONTRIBUTING.md │ │ │ │ ├── FAQ.md │ │ │ │ ├── agent_evaluation.md │ │ │ │ ├── coding_standard.md │ │ │ │ ├── creating_new_scenario.md │ │ │ │ ├── extra.css │ │ │ │ ├── getting_scenariorunner.md │ │ │ │ ├── getting_started.md │ │ │ │ ├── index.md │ │ │ │ ├── list_of_scenarios.md │ │ │ │ ├── metrics_module.md │ │ │ │ ├── openscenario_support.md │ │ │ │ ├── requirements.txt │ │ │ │ └── ros_agent.md │ │ │ ├── Jenkinsfile │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── manual_control.py │ │ │ ├── metrics_manager.py │ │ │ ├── mkdocs.yml │ │ │ ├── no_rendering_mode.py │ │ │ ├── requirements.txt │ │ │ ├── scenario_runner.py │ │ │ └── srunner/ │ │ │ ├── __init__.py │ │ │ ├── autoagents/ │ │ │ │ ├── __init__.py │ │ │ │ ├── agent_wrapper.py │ │ │ │ ├── autonomous_agent.py │ │ │ │ ├── dummy_agent.py │ │ │ │ ├── human_agent.py │ │ │ │ ├── human_agent_config.txt │ │ │ │ ├── npc_agent.py │ │ │ │ ├── ros_agent.py │ │ │ │ └── sensor_interface.py │ │ │ ├── examples/ │ │ │ │ ├── ActorFlow.xml │ │ │ │ ├── CatalogExample.xosc │ │ │ │ ├── ChangeLane.xml │ │ │ │ ├── ChangingWeather.xosc │ │ │ │ ├── ControlLoss.xml │ │ │ │ ├── CutIn.xml │ │ │ │ ├── CyclistCrossing.xosc │ │ │ │ ├── FollowLeadingVehicle.xml │ │ │ │ ├── FollowLeadingVehicle.xosc │ │ │ │ ├── FreeRide.xml │ │ │ │ ├── HighwayCutIn.xml │ │ │ │ ├── IntersectionCollisionAvoidance.xosc │ │ │ │ ├── LaneChangeSimple.xosc │ │ │ │ ├── LeadingVehicle.xml │ │ │ │ ├── NoSignalJunction.xml │ │ │ │ ├── ObjectCrossing.xml │ │ │ │ ├── OppositeDirection.xml │ │ │ │ ├── OscControllerExample.xosc │ │ │ │ ├── PedestrianCrossingFront.xosc │ │ │ │ ├── RouteObstacles.xml │ │ │ │ ├── RunningRedLight.xml │ │ │ │ ├── SignalizedJunctionLeftTurn.xml │ │ │ │ ├── SignalizedJunctionRightTurn.xml │ │ │ │ ├── Slalom.xosc │ │ │ │ ├── VehicleOpensDoor.xml │ │ │ │ ├── VehicleTurning.xml │ │ │ │ └── catalogs/ │ │ │ │ ├── ControllerCatalog.xosc │ │ │ │ ├── EnvironmentCatalog.xosc │ │ │ │ ├── ManeuverCatalog.xosc │ │ │ │ ├── MiscObjectCatalog.xosc │ │ │ │ ├── PedestrianCatalog.xosc │ │ │ │ └── VehicleCatalog.xosc │ │ │ ├── metrics/ │ │ │ │ ├── examples/ │ │ │ │ │ ├── basic_metric.py │ │ │ │ │ ├── criteria_filter.py │ │ │ │ │ ├── distance_between_vehicles.py │ │ │ │ │ └── distance_to_lane_center.py │ │ │ │ └── tools/ │ │ │ │ ├── metrics_log.py │ │ │ │ └── metrics_parser.py │ │ │ ├── openscenario/ │ │ │ │ ├── 0.9.x/ │ │ │ │ │ ├── OpenSCENARIO_Catalog.xsd │ │ │ │ │ ├── OpenSCENARIO_TypeDefs.xsd │ │ │ │ │ ├── OpenSCENARIO_v0.9.1.xsd │ │ │ │ │ └── migration0_9_1to1_0.xslt │ │ │ │ └── OpenSCENARIO.xsd │ │ │ ├── scenarioconfigs/ │ │ │ │ ├── __init__.py │ │ │ │ ├── openscenario_configuration.py │ │ │ │ ├── route_scenario_configuration.py │ │ │ │ └── scenario_configuration.py │ │ │ ├── scenariomanager/ │ │ │ │ ├── __init__.py │ │ │ │ ├── actorcontrols/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── actor_control.py │ │ │ │ │ ├── basic_control.py │ │ │ │ │ ├── carla_autopilot.py │ │ │ │ │ ├── external_control.py │ │ │ │ │ ├── npc_vehicle_control.py │ │ │ │ │ ├── pedestrian_control.py │ │ │ │ │ ├── simple_vehicle_control.py │ │ │ │ │ ├── vehicle_longitudinal_control.py │ │ │ │ │ └── visualizer.py │ │ │ │ ├── carla_data_provider.py │ │ │ │ ├── lights_sim.py │ │ │ │ ├── result_writer.py │ │ │ │ ├── scenario_manager.py │ │ │ │ ├── scenarioatomics/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── atomic_behaviors.py │ │ │ │ │ ├── atomic_criteria.py │ │ │ │ │ └── atomic_trigger_conditions.py │ │ │ │ ├── timer.py │ │ │ │ ├── traffic_events.py │ │ │ │ ├── watchdog.py │ │ │ │ └── weather_sim.py │ │ │ ├── scenarios/ │ │ │ │ ├── __init__.py │ │ │ │ ├── actor_flow.py │ │ │ │ ├── background_activity.py │ │ │ │ ├── background_activity_parametrizer.py │ │ │ │ ├── basic_scenario.py │ │ │ │ ├── blocked_intersection.py │ │ │ │ ├── change_lane.py │ │ │ │ ├── construction_crash_vehicle.py │ │ │ │ ├── control_loss.py │ │ │ │ ├── cross_bicycle_flow.py │ │ │ │ ├── cut_in.py │ │ │ │ ├── cut_in_with_static_vehicle.py │ │ │ │ ├── follow_leading_vehicle.py │ │ │ │ ├── freeride.py │ │ │ │ ├── green_traffic_light.py │ │ │ │ ├── hard_break.py │ │ │ │ ├── highway_cut_in.py │ │ │ │ ├── invading_turn.py │ │ │ │ ├── left_turn_enter_flow.py │ │ │ │ ├── maneuver_opposite_direction.py │ │ │ │ ├── no_signal_junction_crossing.py │ │ │ │ ├── object_crash_intersection.py │ │ │ │ ├── object_crash_vehicle.py │ │ │ │ ├── open_scenario.py │ │ │ │ ├── opposite_vehicle_taking_priority.py │ │ │ │ ├── other_leading_vehicle.py │ │ │ │ ├── parking_cut_in.py │ │ │ │ ├── parking_exit.py │ │ │ │ ├── pedestrian_crossing.py │ │ │ │ ├── route_obstacles.py │ │ │ │ ├── route_scenario.py │ │ │ │ ├── sequentially_lane_change.py │ │ │ │ ├── signalized_junction_left_turn.py │ │ │ │ ├── signalized_junction_right_turn.py │ │ │ │ ├── t_junction.py │ │ │ │ ├── vanilla_turn.py │ │ │ │ ├── vehicle_opens_door.py │ │ │ │ └── yield_to_emergency_vehicle.py │ │ │ ├── tests/ │ │ │ │ ├── __init__.py │ │ │ │ ├── carla_mocks/ │ │ │ │ │ ├── README.md │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── agents/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── navigation/ │ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ │ ├── basic_agent.py │ │ │ │ │ │ │ ├── behavior_agent.py │ │ │ │ │ │ │ ├── behavior_types.py │ │ │ │ │ │ │ ├── controller.py │ │ │ │ │ │ │ ├── global_route_planner.py │ │ │ │ │ │ │ └── local_planner.py │ │ │ │ │ │ └── tools/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ └── misc.py │ │ │ │ │ └── carla.py │ │ │ │ └── test_xosc_load.py │ │ │ ├── tools/ │ │ │ │ ├── __init__.py │ │ │ │ ├── background_manager.py │ │ │ │ ├── openscenario_parser.py │ │ │ │ ├── py_trees_port.py │ │ │ │ ├── route_manipulation.py │ │ │ │ ├── route_parser.py │ │ │ │ ├── scenario_helper.py │ │ │ │ └── scenario_parser.py │ │ │ └── utilities/ │ │ │ └── code_check_and_formatting.sh │ │ └── tools/ │ │ ├── ability_benchmark.py │ │ ├── check_carla.md │ │ ├── clean_carla.sh │ │ ├── data_collect.py │ │ ├── download_mini.sh │ │ ├── efficiency_smoothness_benchmark.py │ │ ├── gen_hdmap.py │ │ ├── generate_video.py │ │ ├── merge_route_json.py │ │ ├── split_xml.py │ │ ├── utils.py │ │ └── visualize.py │ ├── VAD_MomAD/ │ │ ├── Bench2DriveZoo/ │ │ │ ├── adzoo/ │ │ │ │ ├── __init__.py │ │ │ │ ├── bevformer/ │ │ │ │ │ ├── analysis_tools/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── analyze_logs.py │ │ │ │ │ │ ├── benchmark.py │ │ │ │ │ │ ├── get_params.py │ │ │ │ │ │ └── visual.py │ │ │ │ │ ├── apis/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── mmdet_train.py │ │ │ │ │ │ ├── test.py │ │ │ │ │ │ └── train.py │ │ │ │ │ ├── configs/ │ │ │ │ │ │ ├── _base_/ │ │ │ │ │ │ │ ├── datasets/ │ │ │ │ │ │ │ │ ├── coco_instance.py │ │ │ │ │ │ │ │ ├── kitti-3d-3class.py │ │ │ │ │ │ │ │ ├── kitti-3d-car.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 │ │ │ │ │ │ │ ├── models/ │ │ │ │ │ │ │ │ ├── 3dssd.py │ │ │ │ │ │ │ │ ├── cascade_mask_rcnn_r50_fpn.py │ │ │ │ │ │ │ │ ├── centerpoint_01voxel_second_secfpn_nus.py │ │ │ │ │ │ │ │ ├── centerpoint_02pillar_second_secfpn_nus.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 │ │ │ │ │ │ │ │ ├── pointnet2_msg.py │ │ │ │ │ │ │ │ ├── pointnet2_ssg.py │ │ │ │ │ │ │ │ └── votenet.py │ │ │ │ │ │ │ └── schedules/ │ │ │ │ │ │ │ ├── cosine.py │ │ │ │ │ │ │ ├── cyclic_20e.py │ │ │ │ │ │ │ ├── cyclic_40e.py │ │ │ │ │ │ │ ├── mmdet_schedule_1x.py │ │ │ │ │ │ │ ├── schedule_2x.py │ │ │ │ │ │ │ ├── schedule_3x.py │ │ │ │ │ │ │ ├── seg_cosine_150e.py │ │ │ │ │ │ │ ├── seg_cosine_200e.py │ │ │ │ │ │ │ └── seg_cosine_50e.py │ │ │ │ │ │ ├── bevformer/ │ │ │ │ │ │ │ ├── bevformer_base.py │ │ │ │ │ │ │ ├── bevformer_base_b2d.py │ │ │ │ │ │ │ ├── bevformer_tiny.py │ │ │ │ │ │ │ └── bevformer_tiny_b2d.py │ │ │ │ │ │ ├── bevformer_fp16/ │ │ │ │ │ │ │ └── bevformer_tiny_fp16.py │ │ │ │ │ │ ├── bevformerv2/ │ │ │ │ │ │ │ ├── bevformerv2-r50-t1-24ep.py │ │ │ │ │ │ │ ├── bevformerv2-r50-t1-48ep.py │ │ │ │ │ │ │ ├── bevformerv2-r50-t1-base-24ep.py │ │ │ │ │ │ │ ├── bevformerv2-r50-t1-base-48ep.py │ │ │ │ │ │ │ ├── bevformerv2-r50-t2-24ep.py │ │ │ │ │ │ │ ├── bevformerv2-r50-t2-48ep.py │ │ │ │ │ │ │ └── bevformerv2-r50-t8-24ep.py │ │ │ │ │ │ └── datasets/ │ │ │ │ │ │ ├── custom_lyft-3d.py │ │ │ │ │ │ ├── custom_nus-3d.py │ │ │ │ │ │ └── custom_waymo-3d.py │ │ │ │ │ ├── create_data.py │ │ │ │ │ ├── data_converter/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── create_gt_database.py │ │ │ │ │ │ ├── indoor_converter.py │ │ │ │ │ │ ├── kitti_converter.py │ │ │ │ │ │ ├── kitti_data_utils.py │ │ │ │ │ │ ├── lyft_converter.py │ │ │ │ │ │ ├── lyft_data_fixer.py │ │ │ │ │ │ ├── nuimage_converter.py │ │ │ │ │ │ ├── nuscenes_converter.py │ │ │ │ │ │ ├── s3dis_data_utils.py │ │ │ │ │ │ ├── scannet_data_utils.py │ │ │ │ │ │ ├── sunrgbd_data_utils.py │ │ │ │ │ │ └── waymo_converter.py │ │ │ │ │ ├── dist_test.sh │ │ │ │ │ ├── dist_train.sh │ │ │ │ │ ├── fp16/ │ │ │ │ │ │ ├── dist_train.sh │ │ │ │ │ │ └── train.py │ │ │ │ │ ├── misc/ │ │ │ │ │ │ ├── browse_dataset.py │ │ │ │ │ │ ├── print_config.py │ │ │ │ │ │ └── visualize_results.py │ │ │ │ │ ├── mmdet3d_plugin/ │ │ │ │ │ │ ├── bevformer/ │ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ │ ├── apis/ │ │ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ │ │ ├── mmdet_train.py │ │ │ │ │ │ │ │ ├── test.py │ │ │ │ │ │ │ │ └── train.py │ │ │ │ │ │ │ └── hooks/ │ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ │ └── custom_hooks.py │ │ │ │ │ │ ├── dd3d/ │ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ │ ├── datasets/ │ │ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ │ │ ├── nuscenes.py │ │ │ │ │ │ │ │ └── transform_utils.py │ │ │ │ │ │ │ ├── layers/ │ │ │ │ │ │ │ │ ├── iou_loss.py │ │ │ │ │ │ │ │ ├── normalization.py │ │ │ │ │ │ │ │ └── smooth_l1_loss.py │ │ │ │ │ │ │ ├── modeling/ │ │ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ │ │ ├── core.py │ │ │ │ │ │ │ │ ├── disentangled_box3d_loss.py │ │ │ │ │ │ │ │ ├── fcos2d.py │ │ │ │ │ │ │ │ ├── fcos3d.py │ │ │ │ │ │ │ │ ├── nuscenes_dd3d.py │ │ │ │ │ │ │ │ └── prepare_targets.py │ │ │ │ │ │ │ ├── structures/ │ │ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ │ │ ├── boxes3d.py │ │ │ │ │ │ │ │ ├── image_list.py │ │ │ │ │ │ │ │ ├── pose.py │ │ │ │ │ │ │ │ └── transform3d.py │ │ │ │ │ │ │ └── utils/ │ │ │ │ │ │ │ ├── comm.py │ │ │ │ │ │ │ ├── geometry.py │ │ │ │ │ │ │ ├── tasks.py │ │ │ │ │ │ │ ├── tensor2d.py │ │ │ │ │ │ │ └── visualization.py │ │ │ │ │ │ └── models/ │ │ │ │ │ │ └── hooks/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ └── hooks.py │ │ │ │ │ ├── model_converters/ │ │ │ │ │ │ ├── convert_votenet_checkpoints.py │ │ │ │ │ │ ├── publish_model.py │ │ │ │ │ │ └── regnet2mmdet.py │ │ │ │ │ ├── test.py │ │ │ │ │ └── train.py │ │ │ │ ├── sparsedrive/ │ │ │ │ │ ├── configs/ │ │ │ │ │ │ ├── sparsedrive_small_b2d_stage1.py │ │ │ │ │ │ ├── sparsedrive_small_b2d_stage2.py │ │ │ │ │ │ ├── sparsedrive_small_stage1.py │ │ │ │ │ │ └── sparsedrive_small_stage2.py │ │ │ │ │ ├── dist_train.sh │ │ │ │ │ ├── scripts/ │ │ │ │ │ │ ├── create_data.sh │ │ │ │ │ │ ├── kmeans.sh │ │ │ │ │ │ ├── test.sh │ │ │ │ │ │ ├── test_roboAD.sh │ │ │ │ │ │ ├── train.sh │ │ │ │ │ │ ├── train_6s.sh │ │ │ │ │ │ ├── train_roboAD.sh │ │ │ │ │ │ └── visualize.sh │ │ │ │ │ ├── tools/ │ │ │ │ │ │ ├── benchmark.py │ │ │ │ │ │ ├── data_converter/ │ │ │ │ │ │ │ ├── B2D_converter.py │ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ │ ├── nuscenes_converter.py │ │ │ │ │ │ │ ├── nuscenes_converter_1_10.py │ │ │ │ │ │ │ ├── nuscenes_converter_6s.py │ │ │ │ │ │ │ └── nuscenes_converter_hrad_planing_scene.py │ │ │ │ │ │ ├── dist_test.sh │ │ │ │ │ │ ├── dist_train.sh │ │ │ │ │ │ ├── fuse_conv_bn.py │ │ │ │ │ │ ├── kmeans/ │ │ │ │ │ │ │ ├── kmeans_det.py │ │ │ │ │ │ │ ├── kmeans_map.py │ │ │ │ │ │ │ ├── kmeans_motion.py │ │ │ │ │ │ │ └── kmeans_plan.py │ │ │ │ │ │ ├── test.py │ │ │ │ │ │ ├── train.py │ │ │ │ │ │ ├── train_single.py │ │ │ │ │ │ └── visualization/ │ │ │ │ │ │ ├── bev_render.py │ │ │ │ │ │ └── cam_render.py │ │ │ │ │ └── train.py │ │ │ │ ├── uniad/ │ │ │ │ │ ├── analysis_tools/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── analyze_logs.py │ │ │ │ │ │ ├── benchmark.py │ │ │ │ │ │ └── visualize/ │ │ │ │ │ │ ├── render/ │ │ │ │ │ │ │ ├── base_render.py │ │ │ │ │ │ │ ├── bev_render.py │ │ │ │ │ │ │ └── cam_render.py │ │ │ │ │ │ ├── run.py │ │ │ │ │ │ └── utils.py │ │ │ │ │ ├── configs/ │ │ │ │ │ │ ├── _base_/ │ │ │ │ │ │ │ ├── datasets/ │ │ │ │ │ │ │ │ └── nus-3d.py │ │ │ │ │ │ │ └── default_runtime.py │ │ │ │ │ │ ├── stage1_track_map/ │ │ │ │ │ │ │ ├── base_track_map.py │ │ │ │ │ │ │ ├── base_track_map_b2d.py │ │ │ │ │ │ │ └── tiny_track_map_b2d.py │ │ │ │ │ │ └── stage2_e2e/ │ │ │ │ │ │ ├── base_e2e.py │ │ │ │ │ │ ├── base_e2e_b2d.py │ │ │ │ │ │ └── tiny_e2e_b2d.py │ │ │ │ │ ├── data_converter/ │ │ │ │ │ │ ├── create_data.py │ │ │ │ │ │ ├── uniad_create_data.sh │ │ │ │ │ │ └── uniad_nuscenes_converter.py │ │ │ │ │ ├── test.py │ │ │ │ │ ├── test_utils.py │ │ │ │ │ ├── train.py │ │ │ │ │ ├── uniad_dist_eval.sh │ │ │ │ │ ├── uniad_dist_train.sh │ │ │ │ │ └── uniad_vis_result.sh │ │ │ │ └── vad/ │ │ │ │ ├── analysis_tools/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── analyze_logs.py │ │ │ │ │ ├── benchmark.py │ │ │ │ │ ├── get_flops.py │ │ │ │ │ ├── get_params.py │ │ │ │ │ └── visualization.py │ │ │ │ ├── apis/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── mmdet_train.py │ │ │ │ │ ├── test.py │ │ │ │ │ └── train.py │ │ │ │ ├── configs/ │ │ │ │ │ ├── VAD/ │ │ │ │ │ │ ├── MomAD_base_e2e_b2d.py │ │ │ │ │ │ ├── VAD_base_e2e.py │ │ │ │ │ │ ├── VAD_base_e2e_b2d.py │ │ │ │ │ │ └── VAD_tiny_e2e.py │ │ │ │ │ ├── _base_/ │ │ │ │ │ │ ├── datasets/ │ │ │ │ │ │ │ ├── coco_instance.py │ │ │ │ │ │ │ ├── kitti-3d-3class.py │ │ │ │ │ │ │ ├── kitti-3d-car.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 │ │ │ │ │ │ ├── models/ │ │ │ │ │ │ │ ├── 3dssd.py │ │ │ │ │ │ │ ├── cascade_mask_rcnn_r50_fpn.py │ │ │ │ │ │ │ ├── centerpoint_01voxel_second_secfpn_nus.py │ │ │ │ │ │ │ ├── centerpoint_02pillar_second_secfpn_nus.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 │ │ │ │ │ │ │ ├── pointnet2_msg.py │ │ │ │ │ │ │ ├── pointnet2_ssg.py │ │ │ │ │ │ │ └── votenet.py │ │ │ │ │ │ └── schedules/ │ │ │ │ │ │ ├── cosine.py │ │ │ │ │ │ ├── cyclic_20e.py │ │ │ │ │ │ ├── cyclic_40e.py │ │ │ │ │ │ ├── mmdet_schedule_1x.py │ │ │ │ │ │ ├── schedule_2x.py │ │ │ │ │ │ ├── schedule_3x.py │ │ │ │ │ │ ├── seg_cosine_150e.py │ │ │ │ │ │ ├── seg_cosine_200e.py │ │ │ │ │ │ └── seg_cosine_50e.py │ │ │ │ │ └── datasets/ │ │ │ │ │ ├── custom_lyft-3d.py │ │ │ │ │ ├── custom_nus-3d.py │ │ │ │ │ └── custom_waymo-3d.py │ │ │ │ ├── create_data.py │ │ │ │ ├── data_converter/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── create_gt_database.py │ │ │ │ │ └── vad_nuscenes_converter.py │ │ │ │ ├── dist_test.sh │ │ │ │ ├── dist_train.sh │ │ │ │ ├── dist_train_momad.sh │ │ │ │ ├── misc/ │ │ │ │ │ ├── browse_dataset.py │ │ │ │ │ ├── fuse_conv_bn.py │ │ │ │ │ ├── print_config.py │ │ │ │ │ └── visualize_results.py │ │ │ │ ├── model_converters/ │ │ │ │ │ ├── convert_votenet_checkpoints.py │ │ │ │ │ ├── publish_model.py │ │ │ │ │ └── regnet2mmdet.py │ │ │ │ ├── test.py │ │ │ │ ├── train.py │ │ │ │ └── train_momad.py │ │ │ ├── docs/ │ │ │ │ ├── CONVERT_GUIDE.md │ │ │ │ ├── DATA_PREP.md │ │ │ │ ├── EVAL_IN_CARLA.md │ │ │ │ ├── INSTALL.md │ │ │ │ └── TRAIN_EVAL.md │ │ │ ├── mmcv/ │ │ │ │ ├── __init__.py │ │ │ │ ├── core/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── anchor/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── anchor_3d_generator.py │ │ │ │ │ │ ├── anchor_generator.py │ │ │ │ │ │ ├── builder.py │ │ │ │ │ │ ├── point_generator.py │ │ │ │ │ │ └── utils.py │ │ │ │ │ ├── bbox/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── assigners/ │ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ │ ├── assign_result.py │ │ │ │ │ │ │ ├── base_assigner.py │ │ │ │ │ │ │ ├── hungarian_assigner.py │ │ │ │ │ │ │ ├── hungarian_assigner_3d.py │ │ │ │ │ │ │ ├── hungarian_assigner_3d_track.py │ │ │ │ │ │ │ └── map_hungarian_assigner_3d.py │ │ │ │ │ │ ├── box_np_ops.py │ │ │ │ │ │ ├── builder.py │ │ │ │ │ │ ├── coder/ │ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ │ ├── base_bbox_coder.py │ │ │ │ │ │ │ ├── detr3d_track_coder.py │ │ │ │ │ │ │ ├── fut_nms_free_coder.py │ │ │ │ │ │ │ ├── map_nms_free_coder.py │ │ │ │ │ │ │ └── nms_free_coder.py │ │ │ │ │ │ ├── iou_calculators/ │ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ │ ├── builder.py │ │ │ │ │ │ │ ├── iou2d_calculator.py │ │ │ │ │ │ │ └── iou3d_calculator.py │ │ │ │ │ │ ├── match_costs/ │ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ │ ├── builder.py │ │ │ │ │ │ │ └── match_cost.py │ │ │ │ │ │ ├── samplers/ │ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ │ ├── base_sampler.py │ │ │ │ │ │ │ ├── pseudo_sampler.py │ │ │ │ │ │ │ └── sampling_result.py │ │ │ │ │ │ ├── structures/ │ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ │ ├── base_box3d.py │ │ │ │ │ │ │ ├── box_3d_mode.py │ │ │ │ │ │ │ ├── cam_box3d.py │ │ │ │ │ │ │ ├── coord_3d_mode.py │ │ │ │ │ │ │ ├── depth_box3d.py │ │ │ │ │ │ │ ├── lidar_box3d.py │ │ │ │ │ │ │ ├── nuscenes_box.py │ │ │ │ │ │ │ └── utils.py │ │ │ │ │ │ ├── transforms.py │ │ │ │ │ │ └── util.py │ │ │ │ │ ├── evaluation/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── bbox_overlaps.py │ │ │ │ │ │ ├── class_names.py │ │ │ │ │ │ ├── eval_hooks.py │ │ │ │ │ │ ├── indoor_eval.py │ │ │ │ │ │ ├── kitti_utils/ │ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ │ ├── eval.py │ │ │ │ │ │ │ └── rotate_iou.py │ │ │ │ │ │ ├── lyft_eval.py │ │ │ │ │ │ ├── mean_ap.py │ │ │ │ │ │ ├── metric_motion.py │ │ │ │ │ │ ├── metrics.py │ │ │ │ │ │ ├── recall.py │ │ │ │ │ │ ├── seg_eval.py │ │ │ │ │ │ └── waymo_utils/ │ │ │ │ │ │ └── prediction_kitti_to_waymo.py │ │ │ │ │ ├── mask/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── mask_target.py │ │ │ │ │ │ ├── structures.py │ │ │ │ │ │ └── utils.py │ │ │ │ │ ├── points/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── base_points.py │ │ │ │ │ │ ├── cam_points.py │ │ │ │ │ │ ├── depth_points.py │ │ │ │ │ │ └── lidar_points.py │ │ │ │ │ ├── post_processing/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── bbox_nms.py │ │ │ │ │ │ ├── box3d_nms.py │ │ │ │ │ │ └── merge_augs.py │ │ │ │ │ ├── utils/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── dist_utils.py │ │ │ │ │ │ ├── gaussian.py │ │ │ │ │ │ └── misc.py │ │ │ │ │ ├── visualization/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ └── image.py │ │ │ │ │ ├── visualizer/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── image_vis.py │ │ │ │ │ │ ├── open3d_vis.py │ │ │ │ │ │ └── show_result.py │ │ │ │ │ └── voxel/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── builder.py │ │ │ │ │ └── voxel_generator.py │ │ │ │ ├── datasets/ │ │ │ │ │ ├── B2D_dataset.py │ │ │ │ │ ├── B2D_e2e_dataset.py │ │ │ │ │ ├── B2D_sparsedrive_dataset.py │ │ │ │ │ ├── B2D_vad_dataset.py │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── api_wrappers/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ └── coco_api.py │ │ │ │ │ ├── builder.py │ │ │ │ │ ├── coco.py │ │ │ │ │ ├── custom.py │ │ │ │ │ ├── custom_3d.py │ │ │ │ │ ├── custom_nuscenes_dataset.py │ │ │ │ │ ├── custom_nuscenes_dataset_v2.py │ │ │ │ │ ├── data_utils/ │ │ │ │ │ │ ├── data_utils.py │ │ │ │ │ │ ├── rasterize.py │ │ │ │ │ │ ├── trajectory_api.py │ │ │ │ │ │ └── vector_map.py │ │ │ │ │ ├── dataset_wrappers.py │ │ │ │ │ ├── dd3d_nuscenes_dataset.py │ │ │ │ │ ├── eval_utils/ │ │ │ │ │ │ ├── eval_utils.py │ │ │ │ │ │ ├── map_api.py │ │ │ │ │ │ ├── metric_utils.py │ │ │ │ │ │ ├── nuscenes_eval.py │ │ │ │ │ │ └── nuscenes_eval_motion.py │ │ │ │ │ ├── lyft_dataset.py │ │ │ │ │ ├── map_utils/ │ │ │ │ │ │ ├── mean_ap.py │ │ │ │ │ │ ├── struct.py │ │ │ │ │ │ ├── tpfp.py │ │ │ │ │ │ └── tpfp_chamfer.py │ │ │ │ │ ├── nuscenes_dataset.py │ │ │ │ │ ├── nuscenes_e2e_dataset.py │ │ │ │ │ ├── nuscenes_eval.py │ │ │ │ │ ├── nuscenes_mono_dataset.py │ │ │ │ │ ├── nuscenes_styled_eval_utils.py │ │ │ │ │ ├── nuscenes_vad_dataset.py │ │ │ │ │ ├── nuscnes_eval.py │ │ │ │ │ ├── pipelines/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── augment.py │ │ │ │ │ │ ├── compose.py │ │ │ │ │ │ ├── data_augment_utils.py │ │ │ │ │ │ ├── formating.py │ │ │ │ │ │ ├── loading.py │ │ │ │ │ │ ├── occflow_label.py │ │ │ │ │ │ ├── test_time_aug.py │ │ │ │ │ │ ├── transforms.py │ │ │ │ │ │ ├── transforms_3d.py │ │ │ │ │ │ └── vectorize.py │ │ │ │ │ ├── prepare_B2D.py │ │ │ │ │ ├── samplers/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── distributed_sampler.py │ │ │ │ │ │ ├── group_sampler.py │ │ │ │ │ │ └── sampler.py │ │ │ │ │ ├── utils.py │ │ │ │ │ ├── vad_custom_nuscenes_eval.py │ │ │ │ │ └── vis_utils.py │ │ │ │ ├── fileio/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── file_client.py │ │ │ │ │ ├── handlers/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── base.py │ │ │ │ │ │ ├── json_handler.py │ │ │ │ │ │ └── pickle_handler.py │ │ │ │ │ ├── io.py │ │ │ │ │ └── parse.py │ │ │ │ ├── image/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── colorspace.py │ │ │ │ │ ├── geometric.py │ │ │ │ │ ├── io.py │ │ │ │ │ ├── misc.py │ │ │ │ │ └── photometric.py │ │ │ │ ├── layers/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── aspp.py │ │ │ │ │ ├── batch_norm.py │ │ │ │ │ ├── blocks.py │ │ │ │ │ ├── csrc/ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── ROIAlignRotated/ │ │ │ │ │ │ │ ├── ROIAlignRotated.h │ │ │ │ │ │ │ ├── ROIAlignRotated_cpu.cpp │ │ │ │ │ │ │ └── ROIAlignRotated_cuda.cu │ │ │ │ │ │ ├── box_iou_rotated/ │ │ │ │ │ │ │ ├── box_iou_rotated.h │ │ │ │ │ │ │ ├── box_iou_rotated_cpu.cpp │ │ │ │ │ │ │ ├── box_iou_rotated_cuda.cu │ │ │ │ │ │ │ └── box_iou_rotated_utils.h │ │ │ │ │ │ ├── cocoeval/ │ │ │ │ │ │ │ ├── cocoeval.cpp │ │ │ │ │ │ │ └── cocoeval.h │ │ │ │ │ │ ├── cuda_version.cu │ │ │ │ │ │ ├── deformable/ │ │ │ │ │ │ │ ├── deform_conv.h │ │ │ │ │ │ │ ├── deform_conv_cuda.cu │ │ │ │ │ │ │ └── deform_conv_cuda_kernel.cu │ │ │ │ │ │ ├── nms_rotated/ │ │ │ │ │ │ │ ├── nms_rotated.h │ │ │ │ │ │ │ ├── nms_rotated_cpu.cpp │ │ │ │ │ │ │ └── nms_rotated_cuda.cu │ │ │ │ │ │ └── vision.cpp │ │ │ │ │ ├── deform_conv.py │ │ │ │ │ ├── losses.py │ │ │ │ │ ├── mask_ops.py │ │ │ │ │ ├── nms.py │ │ │ │ │ ├── roi_align.py │ │ │ │ │ ├── roi_align_rotated.py │ │ │ │ │ ├── rotated_boxes.py │ │ │ │ │ ├── shape_spec.py │ │ │ │ │ └── wrappers.py │ │ │ │ ├── losses/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── dice_loss.py │ │ │ │ │ ├── focal_loss.py │ │ │ │ │ ├── fvcore_smooth_l1_loss.py │ │ │ │ │ ├── occflow_loss.py │ │ │ │ │ ├── planning_loss.py │ │ │ │ │ ├── track_loss.py │ │ │ │ │ └── traj_loss.py │ │ │ │ ├── metrics/ │ │ │ │ │ ├── classification.py │ │ │ │ │ ├── compositional.py │ │ │ │ │ ├── distributed.py │ │ │ │ │ ├── metric.py │ │ │ │ │ ├── reduction.py │ │ │ │ │ └── utils.py │ │ │ │ ├── modeling/ │ │ │ │ │ └── postprocessing.py │ │ │ │ ├── models/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── backbones/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── base_module.py │ │ │ │ │ │ ├── resnet.py │ │ │ │ │ │ ├── vgg.py │ │ │ │ │ │ └── vovnet.py │ │ │ │ │ ├── bricks/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── activation.py │ │ │ │ │ │ ├── conv.py │ │ │ │ │ │ ├── conv_module.py │ │ │ │ │ │ ├── drop.py │ │ │ │ │ │ ├── norm.py │ │ │ │ │ │ ├── padding.py │ │ │ │ │ │ ├── plugin.py │ │ │ │ │ │ ├── registry.py │ │ │ │ │ │ ├── transformer.py │ │ │ │ │ │ └── wrappers.py │ │ │ │ │ ├── builder.py │ │ │ │ │ ├── dense_heads/ │ │ │ │ │ │ ├── MomAD_head.py │ │ │ │ │ │ ├── VAD_head.py │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── anchor3d_head.py │ │ │ │ │ │ ├── anchor_free_head.py │ │ │ │ │ │ ├── anchor_head.py │ │ │ │ │ │ ├── base_dense_head.py │ │ │ │ │ │ ├── bev_head.py │ │ │ │ │ │ ├── bevformer_head.py │ │ │ │ │ │ ├── dense_test_mixins.py │ │ │ │ │ │ ├── detr_head.py │ │ │ │ │ │ ├── free_anchor3d_head.py │ │ │ │ │ │ ├── ga_rpn_head.py │ │ │ │ │ │ ├── guided_anchor_head.py │ │ │ │ │ │ ├── motion_head.py │ │ │ │ │ │ ├── motion_head_plugin/ │ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ │ ├── base_motion_head.py │ │ │ │ │ │ │ ├── modules.py │ │ │ │ │ │ │ ├── motion_deformable_attn.py │ │ │ │ │ │ │ ├── motion_optimization.py │ │ │ │ │ │ │ └── motion_utils.py │ │ │ │ │ │ ├── occ_head.py │ │ │ │ │ │ ├── occ_head_plugin/ │ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ │ ├── metrics.py │ │ │ │ │ │ │ ├── modules.py │ │ │ │ │ │ │ └── utils.py │ │ │ │ │ │ ├── panseg_head.py │ │ │ │ │ │ ├── planning_head.py │ │ │ │ │ │ ├── planning_head_plugin/ │ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ │ ├── collision_optimization.py │ │ │ │ │ │ │ ├── metric_stp3.py │ │ │ │ │ │ │ └── planning_metrics.py │ │ │ │ │ │ ├── rpn_head.py │ │ │ │ │ │ ├── seg_head_plugin/ │ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ │ ├── seg_assigner.py │ │ │ │ │ │ │ ├── seg_deformable_transformer.py │ │ │ │ │ │ │ ├── seg_detr_head.py │ │ │ │ │ │ │ ├── seg_mask_head.py │ │ │ │ │ │ │ └── seg_utils.py │ │ │ │ │ │ ├── track_head.py │ │ │ │ │ │ ├── track_head_plugin/ │ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ │ ├── modules.py │ │ │ │ │ │ │ ├── track_instance.py │ │ │ │ │ │ │ └── tracker.py │ │ │ │ │ │ └── train_mixins.py │ │ │ │ │ ├── detectors/ │ │ │ │ │ │ ├── MomAD.py │ │ │ │ │ │ ├── SpMomAD.py │ │ │ │ │ │ ├── VAD.py │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── base.py │ │ │ │ │ │ ├── bevformer.py │ │ │ │ │ │ ├── bevformerV2.py │ │ │ │ │ │ ├── bevformer_fp16.py │ │ │ │ │ │ ├── mvx_two_stage.py │ │ │ │ │ │ ├── single_stage.py │ │ │ │ │ │ ├── single_stage_mono3d.py │ │ │ │ │ │ ├── sparsedrive.py │ │ │ │ │ │ ├── uniad_e2e.py │ │ │ │ │ │ └── uniad_track.py │ │ │ │ │ ├── losses/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── focal_loss.py │ │ │ │ │ │ ├── iou_loss.py │ │ │ │ │ │ ├── smooth_l1_loss.py │ │ │ │ │ │ └── utils.py │ │ │ │ │ ├── modules/ │ │ │ │ │ │ ├── VAD_transformer.py │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── custom_base_transformer_layer.py │ │ │ │ │ │ ├── decoder.py │ │ │ │ │ │ ├── encoder.py │ │ │ │ │ │ ├── group_attention.py │ │ │ │ │ │ ├── multi_scale_deformable_attn_function.py │ │ │ │ │ │ ├── spatial_cross_attention.py │ │ │ │ │ │ ├── temporal_self_attention.py │ │ │ │ │ │ ├── transformer.py │ │ │ │ │ │ ├── transformerV2.py │ │ │ │ │ │ └── vote_module.py │ │ │ │ │ ├── necks/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ └── fpn.py │ │ │ │ │ ├── opt/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ └── adamw.py │ │ │ │ │ ├── roi_heads/ │ │ │ │ │ │ └── mask_heads/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ └── fused_semantic_head.py │ │ │ │ │ ├── segmentors/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ └── base.py │ │ │ │ │ ├── utils/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── builder.py │ │ │ │ │ │ ├── functional.py │ │ │ │ │ │ ├── fuse_conv_bn.py │ │ │ │ │ │ ├── grid_mask.py │ │ │ │ │ │ ├── positional_encoding.py │ │ │ │ │ │ ├── res_layer.py │ │ │ │ │ │ ├── transformer.py │ │ │ │ │ │ └── weight_init.py │ │ │ │ │ └── vad_utils/ │ │ │ │ │ ├── CD_loss.py │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── map_utils.py │ │ │ │ │ ├── plan_loss.py │ │ │ │ │ └── traj_lr_warmup.py │ │ │ │ ├── ops/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── csrc/ │ │ │ │ │ │ ├── common/ │ │ │ │ │ │ │ ├── box_iou_rotated_utils.hpp │ │ │ │ │ │ │ ├── cuda/ │ │ │ │ │ │ │ │ ├── assign_score_withk_cuda_kernel.cuh │ │ │ │ │ │ │ │ ├── ball_query_cuda_kernel.cuh │ │ │ │ │ │ │ │ ├── bbox_overlaps_cuda_kernel.cuh │ │ │ │ │ │ │ │ ├── border_align_cuda_kernel.cuh │ │ │ │ │ │ │ │ ├── box_iou_rotated_cuda.cuh │ │ │ │ │ │ │ │ ├── carafe_cuda_kernel.cuh │ │ │ │ │ │ │ │ ├── carafe_naive_cuda_kernel.cuh │ │ │ │ │ │ │ │ ├── common_cuda_helper.hpp │ │ │ │ │ │ │ │ ├── correlation_cuda.cuh │ │ │ │ │ │ │ │ ├── deform_conv_cuda_kernel.cuh │ │ │ │ │ │ │ │ ├── deform_roi_pool_cuda_kernel.cuh │ │ │ │ │ │ │ │ ├── furthest_point_sample_cuda_kernel.cuh │ │ │ │ │ │ │ │ ├── gather_points_cuda_kernel.cuh │ │ │ │ │ │ │ │ ├── group_points_cuda_kernel.cuh │ │ │ │ │ │ │ │ ├── iou3d_cuda_kernel.cuh │ │ │ │ │ │ │ │ ├── knn_cuda_kernel.cuh │ │ │ │ │ │ │ │ ├── masked_conv2d_cuda_kernel.cuh │ │ │ │ │ │ │ │ ├── modulated_deform_conv_cuda_kernel.cuh │ │ │ │ │ │ │ │ ├── ms_deform_attn_cuda_kernel.cuh │ │ │ │ │ │ │ │ ├── nms_cuda_kernel.cuh │ │ │ │ │ │ │ │ ├── nms_rotated_cuda.cuh │ │ │ │ │ │ │ │ ├── points_in_boxes_cuda_kernel.cuh │ │ │ │ │ │ │ │ ├── psamask_cuda_kernel.cuh │ │ │ │ │ │ │ │ ├── roi_align_cuda_kernel.cuh │ │ │ │ │ │ │ │ ├── roi_align_rotated_cuda_kernel.cuh │ │ │ │ │ │ │ │ ├── roi_pool_cuda_kernel.cuh │ │ │ │ │ │ │ │ ├── roiaware_pool3d_cuda_kernel.cuh │ │ │ │ │ │ │ │ ├── roipoint_pool3d_cuda_kernel.cuh │ │ │ │ │ │ │ │ ├── scatter_points_cuda_kernel.cuh │ │ │ │ │ │ │ │ ├── sigmoid_focal_loss_cuda_kernel.cuh │ │ │ │ │ │ │ │ ├── softmax_focal_loss_cuda_kernel.cuh │ │ │ │ │ │ │ │ ├── sync_bn_cuda_kernel.cuh │ │ │ │ │ │ │ │ ├── three_interpolate_cuda_kernel.cuh │ │ │ │ │ │ │ │ ├── three_nn_cuda_kernel.cuh │ │ │ │ │ │ │ │ ├── tin_shift_cuda_kernel.cuh │ │ │ │ │ │ │ │ └── voxelization_cuda_kernel.cuh │ │ │ │ │ │ │ ├── pytorch_cpp_helper.hpp │ │ │ │ │ │ │ ├── pytorch_cuda_helper.hpp │ │ │ │ │ │ │ └── pytorch_device_registry.hpp │ │ │ │ │ │ └── pytorch/ │ │ │ │ │ │ ├── assign_score_withk.cpp │ │ │ │ │ │ ├── ball_query.cpp │ │ │ │ │ │ ├── bbox_overlaps.cpp │ │ │ │ │ │ ├── border_align.cpp │ │ │ │ │ │ ├── box_iou_rotated.cpp │ │ │ │ │ │ ├── carafe.cpp │ │ │ │ │ │ ├── carafe_naive.cpp │ │ │ │ │ │ ├── contour_expand.cpp │ │ │ │ │ │ ├── corner_pool.cpp │ │ │ │ │ │ ├── correlation.cpp │ │ │ │ │ │ ├── cpu/ │ │ │ │ │ │ │ ├── box_iou_rotated.cpp │ │ │ │ │ │ │ ├── deform_conv.cpp │ │ │ │ │ │ │ ├── modulated_deform_conv.cpp │ │ │ │ │ │ │ ├── nms.cpp │ │ │ │ │ │ │ ├── nms_rotated.cpp │ │ │ │ │ │ │ ├── pixel_group.cpp │ │ │ │ │ │ │ ├── points_in_boxes.cpp │ │ │ │ │ │ │ ├── psamask.cpp │ │ │ │ │ │ │ ├── roi_align.cpp │ │ │ │ │ │ │ ├── roi_align_rotated.cpp │ │ │ │ │ │ │ └── voxelization.cpp │ │ │ │ │ │ ├── cuda/ │ │ │ │ │ │ │ ├── assign_score_withk_cuda.cu │ │ │ │ │ │ │ ├── ball_query_cuda.cu │ │ │ │ │ │ │ ├── bbox_overlaps_cuda.cu │ │ │ │ │ │ │ ├── border_align_cuda.cu │ │ │ │ │ │ │ ├── box_iou_rotated_cuda.cu │ │ │ │ │ │ │ ├── carafe_cuda.cu │ │ │ │ │ │ │ ├── carafe_naive_cuda.cu │ │ │ │ │ │ │ ├── correlation_cuda.cu │ │ │ │ │ │ │ ├── cudabind.cpp │ │ │ │ │ │ │ ├── deform_conv_cuda.cu │ │ │ │ │ │ │ ├── deform_roi_pool_cuda.cu │ │ │ │ │ │ │ ├── focal_loss_cuda.cu │ │ │ │ │ │ │ ├── furthest_point_sample_cuda.cu │ │ │ │ │ │ │ ├── fused_bias_leakyrelu_cuda.cu │ │ │ │ │ │ │ ├── gather_points_cuda.cu │ │ │ │ │ │ │ ├── group_points_cuda.cu │ │ │ │ │ │ │ ├── iou3d_cuda.cu │ │ │ │ │ │ │ ├── knn_cuda.cu │ │ │ │ │ │ │ ├── masked_conv2d_cuda.cu │ │ │ │ │ │ │ ├── modulated_deform_conv_cuda.cu │ │ │ │ │ │ │ ├── ms_deform_attn_cuda.cu │ │ │ │ │ │ │ ├── nms_cuda.cu │ │ │ │ │ │ │ ├── nms_rotated_cuda.cu │ │ │ │ │ │ │ ├── points_in_boxes_cuda.cu │ │ │ │ │ │ │ ├── psamask_cuda.cu │ │ │ │ │ │ │ ├── roi_align_cuda.cu │ │ │ │ │ │ │ ├── roi_align_rotated_cuda.cu │ │ │ │ │ │ │ ├── roi_pool_cuda.cu │ │ │ │ │ │ │ ├── roiaware_pool3d_cuda.cu │ │ │ │ │ │ │ ├── roipoint_pool3d_cuda.cu │ │ │ │ │ │ │ ├── scatter_points_cuda.cu │ │ │ │ │ │ │ ├── sync_bn_cuda.cu │ │ │ │ │ │ │ ├── three_interpolate_cuda.cu │ │ │ │ │ │ │ ├── three_nn_cuda.cu │ │ │ │ │ │ │ ├── tin_shift_cuda.cu │ │ │ │ │ │ │ ├── upfirdn2d_kernel.cu │ │ │ │ │ │ │ └── voxelization_cuda.cu │ │ │ │ │ │ ├── deform_conv.cpp │ │ │ │ │ │ ├── deform_roi_pool.cpp │ │ │ │ │ │ ├── focal_loss.cpp │ │ │ │ │ │ ├── furthest_point_sample.cpp │ │ │ │ │ │ ├── fused_bias_leakyrelu.cpp │ │ │ │ │ │ ├── gather_points.cpp │ │ │ │ │ │ ├── group_points.cpp │ │ │ │ │ │ ├── info.cpp │ │ │ │ │ │ ├── iou3d.cpp │ │ │ │ │ │ ├── knn.cpp │ │ │ │ │ │ ├── masked_conv2d.cpp │ │ │ │ │ │ ├── modulated_deform_conv.cpp │ │ │ │ │ │ ├── ms_deform_attn.cpp │ │ │ │ │ │ ├── nms.cpp │ │ │ │ │ │ ├── nms_rotated.cpp │ │ │ │ │ │ ├── pixel_group.cpp │ │ │ │ │ │ ├── points_in_boxes.cpp │ │ │ │ │ │ ├── psamask.cpp │ │ │ │ │ │ ├── pybind.cpp │ │ │ │ │ │ ├── roi_align.cpp │ │ │ │ │ │ ├── roi_align_rotated.cpp │ │ │ │ │ │ ├── roi_pool.cpp │ │ │ │ │ │ ├── roiaware_pool3d.cpp │ │ │ │ │ │ ├── roipoint_pool3d.cpp │ │ │ │ │ │ ├── scatter_points.cpp │ │ │ │ │ │ ├── sync_bn.cpp │ │ │ │ │ │ ├── three_interpolate.cpp │ │ │ │ │ │ ├── three_nn.cpp │ │ │ │ │ │ ├── tin_shift.cpp │ │ │ │ │ │ ├── upfirdn2d.cpp │ │ │ │ │ │ └── voxelization.cpp │ │ │ │ │ ├── deform_conv.py │ │ │ │ │ ├── focal_loss.py │ │ │ │ │ ├── iou3d.py │ │ │ │ │ ├── iou3d_det/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── iou3d_utils.py │ │ │ │ │ │ └── src/ │ │ │ │ │ │ ├── iou3d.cpp │ │ │ │ │ │ └── iou3d_kernel.cu │ │ │ │ │ ├── masked_conv.py │ │ │ │ │ ├── modulated_deform_conv.py │ │ │ │ │ ├── multi_scale_deform_attn.py │ │ │ │ │ ├── nms.py │ │ │ │ │ ├── roi_align.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 │ │ │ │ │ └── voxelize.py │ │ │ │ ├── optims/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── adamw.py │ │ │ │ │ └── optimizer.py │ │ │ │ ├── parallel/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── collate.py │ │ │ │ │ ├── data_container.py │ │ │ │ │ ├── registry.py │ │ │ │ │ └── utils.py │ │ │ │ ├── runner/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base_runner.py │ │ │ │ │ ├── builder.py │ │ │ │ │ ├── epoch_based_runner.py │ │ │ │ │ └── hooks/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── checkpoint.py │ │ │ │ │ ├── evaluation.py │ │ │ │ │ ├── hook.py │ │ │ │ │ ├── iter_timer.py │ │ │ │ │ ├── logger/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── base.py │ │ │ │ │ │ ├── tensorboard.py │ │ │ │ │ │ └── text.py │ │ │ │ │ ├── lr_updater.py │ │ │ │ │ ├── optimizer.py │ │ │ │ │ ├── sampler_seed.py │ │ │ │ │ └── vad_hooks.py │ │ │ │ ├── structures/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── boxes.py │ │ │ │ │ ├── image_list.py │ │ │ │ │ ├── instances.py │ │ │ │ │ ├── keypoints.py │ │ │ │ │ ├── masks.py │ │ │ │ │ └── rotated_boxes.py │ │ │ │ └── utils/ │ │ │ │ ├── __init__.py │ │ │ │ ├── bricks.py │ │ │ │ ├── checkpoint.py │ │ │ │ ├── collect_env.py │ │ │ │ ├── config.py │ │ │ │ ├── contextmanagers.py │ │ │ │ ├── ext_loader.py │ │ │ │ ├── fp16_utils.py │ │ │ │ ├── grid_mask.py │ │ │ │ ├── hub.py │ │ │ │ ├── log_buffer.py │ │ │ │ ├── logger.py │ │ │ │ ├── logging.py │ │ │ │ ├── memory.py │ │ │ │ ├── misc.py │ │ │ │ ├── path.py │ │ │ │ ├── position_embedding.py │ │ │ │ ├── priority.py │ │ │ │ ├── progressbar.py │ │ │ │ ├── registry.py │ │ │ │ ├── runner_utils.py │ │ │ │ ├── timer.py │ │ │ │ ├── util_mixins.py │ │ │ │ ├── version_utils.py │ │ │ │ └── visual.py │ │ │ ├── requirements.txt │ │ │ └── team_code/ │ │ │ ├── pid_controller.py │ │ │ ├── planner.py │ │ │ ├── sparsedrive_b2d_agent.py │ │ │ ├── uniad_b2d_agent.py │ │ │ ├── vad_b2d_agent.py │ │ │ └── vad_b2d_agent_visualize.py │ │ ├── docs/ │ │ │ ├── anno.md │ │ │ ├── bench2drive_base_1000.json │ │ │ ├── bench2drive_full+sup_13638.json │ │ │ └── bench2drive_mini_10.json │ │ ├── leaderboard/ │ │ │ ├── .pylintrc │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── docs/ │ │ │ │ ├── Gemfile │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── _config.yml │ │ │ │ ├── _includes/ │ │ │ │ │ ├── footer.html │ │ │ │ │ ├── google-analytics.html │ │ │ │ │ ├── head.html │ │ │ │ │ ├── navbar.html │ │ │ │ │ ├── read_time.html │ │ │ │ │ └── scripts.html │ │ │ │ ├── _layouts/ │ │ │ │ │ ├── default.html │ │ │ │ │ ├── home.html │ │ │ │ │ ├── page.html │ │ │ │ │ └── post.html │ │ │ │ ├── _sass/ │ │ │ │ │ └── styles.scss │ │ │ │ ├── about.html │ │ │ │ ├── assets/ │ │ │ │ │ ├── main.scss │ │ │ │ │ ├── scripts.js │ │ │ │ │ └── vendor/ │ │ │ │ │ ├── bootstrap/ │ │ │ │ │ │ ├── css/ │ │ │ │ │ │ │ └── bootstrap.css │ │ │ │ │ │ └── js/ │ │ │ │ │ │ ├── bootstrap.bundle.js │ │ │ │ │ │ └── bootstrap.js │ │ │ │ │ ├── fontawesome-free/ │ │ │ │ │ │ ├── LICENSE.txt │ │ │ │ │ │ ├── css/ │ │ │ │ │ │ │ ├── all.css │ │ │ │ │ │ │ ├── brands.css │ │ │ │ │ │ │ ├── fontawesome.css │ │ │ │ │ │ │ ├── regular.css │ │ │ │ │ │ │ ├── solid.css │ │ │ │ │ │ │ ├── svg-with-js.css │ │ │ │ │ │ │ └── v4-shims.css │ │ │ │ │ │ ├── js/ │ │ │ │ │ │ │ ├── all.js │ │ │ │ │ │ │ ├── brands.js │ │ │ │ │ │ │ ├── conflict-detection.js │ │ │ │ │ │ │ ├── fontawesome.js │ │ │ │ │ │ │ ├── regular.js │ │ │ │ │ │ │ ├── solid.js │ │ │ │ │ │ │ └── v4-shims.js │ │ │ │ │ │ ├── less/ │ │ │ │ │ │ │ ├── _animated.less │ │ │ │ │ │ │ ├── _bordered-pulled.less │ │ │ │ │ │ │ ├── _core.less │ │ │ │ │ │ │ ├── _fixed-width.less │ │ │ │ │ │ │ ├── _icons.less │ │ │ │ │ │ │ ├── _larger.less │ │ │ │ │ │ │ ├── _list.less │ │ │ │ │ │ │ ├── _mixins.less │ │ │ │ │ │ │ ├── _rotated-flipped.less │ │ │ │ │ │ │ ├── _screen-reader.less │ │ │ │ │ │ │ ├── _shims.less │ │ │ │ │ │ │ ├── _stacked.less │ │ │ │ │ │ │ ├── _variables.less │ │ │ │ │ │ │ ├── brands.less │ │ │ │ │ │ │ ├── fontawesome.less │ │ │ │ │ │ │ ├── regular.less │ │ │ │ │ │ │ ├── solid.less │ │ │ │ │ │ │ └── v4-shims.less │ │ │ │ │ │ └── scss/ │ │ │ │ │ │ ├── _animated.scss │ │ │ │ │ │ ├── _bordered-pulled.scss │ │ │ │ │ │ ├── _core.scss │ │ │ │ │ │ ├── _fixed-width.scss │ │ │ │ │ │ ├── _icons.scss │ │ │ │ │ │ ├── _larger.scss │ │ │ │ │ │ ├── _list.scss │ │ │ │ │ │ ├── _mixins.scss │ │ │ │ │ │ ├── _rotated-flipped.scss │ │ │ │ │ │ ├── _screen-reader.scss │ │ │ │ │ │ ├── _shims.scss │ │ │ │ │ │ ├── _stacked.scss │ │ │ │ │ │ ├── _variables.scss │ │ │ │ │ │ ├── brands.scss │ │ │ │ │ │ ├── fontawesome.scss │ │ │ │ │ │ ├── regular.scss │ │ │ │ │ │ ├── solid.scss │ │ │ │ │ │ └── v4-shims.scss │ │ │ │ │ ├── jquery/ │ │ │ │ │ │ ├── jquery.js │ │ │ │ │ │ └── jquery.slim.js │ │ │ │ │ └── startbootstrap-clean-blog/ │ │ │ │ │ ├── js/ │ │ │ │ │ │ └── jqBootstrapValidation.js │ │ │ │ │ └── scss/ │ │ │ │ │ ├── _bootstrap-overrides.scss │ │ │ │ │ ├── _contact.scss │ │ │ │ │ ├── _footer.scss │ │ │ │ │ ├── _global.scss │ │ │ │ │ ├── _masthead.scss │ │ │ │ │ ├── _mixins.scss │ │ │ │ │ ├── _navbar.scss │ │ │ │ │ ├── _post.scss │ │ │ │ │ ├── _variables.scss │ │ │ │ │ └── clean-blog.scss │ │ │ │ ├── contact.html │ │ │ │ ├── get_started.html │ │ │ │ ├── gulpfile.js │ │ │ │ ├── index.html │ │ │ │ ├── jekyll-theme-clean-blog.gemspec │ │ │ │ ├── leaderboard.html │ │ │ │ ├── posts/ │ │ │ │ │ └── index.html │ │ │ │ └── submit.html │ │ │ ├── leaderboard/ │ │ │ │ ├── __init__.py │ │ │ │ ├── autoagents/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── agent_wrapper.py │ │ │ │ │ ├── autonomous_agent.py │ │ │ │ │ ├── dummy_agent.py │ │ │ │ │ ├── human_agent.py │ │ │ │ │ ├── human_agent_config.txt │ │ │ │ │ ├── npc_agent.py │ │ │ │ │ ├── ros1_agent.py │ │ │ │ │ ├── ros2_agent.py │ │ │ │ │ └── ros_base_agent.py │ │ │ │ ├── envs/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── sensor_interface.py │ │ │ │ ├── leaderboard_evaluator.py │ │ │ │ ├── scenarios/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── route_scenario.py │ │ │ │ │ └── scenario_manager.py │ │ │ │ └── utils/ │ │ │ │ ├── __init__.py │ │ │ │ ├── checkpoint_tools.py │ │ │ │ ├── parked_vehicles.py │ │ │ │ ├── result_writer.py │ │ │ │ ├── route_indexer.py │ │ │ │ ├── route_manipulation.py │ │ │ │ ├── route_parser.py │ │ │ │ └── statistics_manager.py │ │ │ ├── requirements.txt │ │ │ ├── run_leaderboard.sh │ │ │ ├── scripts/ │ │ │ │ ├── Dockerfile.master │ │ │ │ ├── Dockerfile.ros │ │ │ │ ├── agent_entrypoint.sh │ │ │ │ ├── code_check_and_formatting.sh │ │ │ │ ├── make_docker.sh │ │ │ │ ├── manage_scenarios.py │ │ │ │ ├── merge_statistics.py │ │ │ │ ├── pretty_print_json.py │ │ │ │ ├── route_creator.py │ │ │ │ ├── route_displayer.py │ │ │ │ ├── route_summarizer.py │ │ │ │ ├── run_evaluation.sh │ │ │ │ ├── run_evaluation_debug.sh │ │ │ │ ├── run_evaluation_multi_admlp.sh │ │ │ │ ├── run_evaluation_multi_tcp.sh │ │ │ │ ├── run_evaluation_multi_uniad.sh │ │ │ │ ├── run_evaluation_multi_uniad_tiny.sh │ │ │ │ ├── run_evaluation_multi_vad.sh │ │ │ │ ├── run_evalutaion_multi_sparsedrive.sh │ │ │ │ ├── scenario_creator.py │ │ │ │ ├── scenario_orderer.py │ │ │ │ └── weather_creator.py │ │ │ └── team_code/ │ │ │ ├── pid_controller.py │ │ │ ├── planner.py │ │ │ ├── uniad_b2d_agent.py │ │ │ ├── vad_b2d_agent.py │ │ │ └── vad_b2d_agent_visualize.py │ │ ├── scenario_runner/ │ │ │ ├── .pylintrc │ │ │ ├── .readthedocs.yml │ │ │ ├── CARLA_VER │ │ │ ├── Dockerfile │ │ │ ├── Docs/ │ │ │ │ ├── CHANGELOG.md │ │ │ │ ├── CODE_OF_CONDUCT.md │ │ │ │ ├── CONTRIBUTING.md │ │ │ │ ├── FAQ.md │ │ │ │ ├── agent_evaluation.md │ │ │ │ ├── coding_standard.md │ │ │ │ ├── creating_new_scenario.md │ │ │ │ ├── extra.css │ │ │ │ ├── getting_scenariorunner.md │ │ │ │ ├── getting_started.md │ │ │ │ ├── index.md │ │ │ │ ├── list_of_scenarios.md │ │ │ │ ├── metrics_module.md │ │ │ │ ├── openscenario_support.md │ │ │ │ ├── requirements.txt │ │ │ │ └── ros_agent.md │ │ │ ├── Jenkinsfile │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── manual_control.py │ │ │ ├── metrics_manager.py │ │ │ ├── mkdocs.yml │ │ │ ├── no_rendering_mode.py │ │ │ ├── requirements.txt │ │ │ ├── scenario_runner.py │ │ │ └── srunner/ │ │ │ ├── __init__.py │ │ │ ├── autoagents/ │ │ │ │ ├── __init__.py │ │ │ │ ├── agent_wrapper.py │ │ │ │ ├── autonomous_agent.py │ │ │ │ ├── dummy_agent.py │ │ │ │ ├── human_agent.py │ │ │ │ ├── human_agent_config.txt │ │ │ │ ├── npc_agent.py │ │ │ │ ├── ros_agent.py │ │ │ │ └── sensor_interface.py │ │ │ ├── examples/ │ │ │ │ ├── ActorFlow.xml │ │ │ │ ├── CatalogExample.xosc │ │ │ │ ├── ChangeLane.xml │ │ │ │ ├── ChangingWeather.xosc │ │ │ │ ├── ControlLoss.xml │ │ │ │ ├── CutIn.xml │ │ │ │ ├── CyclistCrossing.xosc │ │ │ │ ├── FollowLeadingVehicle.xml │ │ │ │ ├── FollowLeadingVehicle.xosc │ │ │ │ ├── FreeRide.xml │ │ │ │ ├── HighwayCutIn.xml │ │ │ │ ├── IntersectionCollisionAvoidance.xosc │ │ │ │ ├── LaneChangeSimple.xosc │ │ │ │ ├── LeadingVehicle.xml │ │ │ │ ├── NoSignalJunction.xml │ │ │ │ ├── ObjectCrossing.xml │ │ │ │ ├── OppositeDirection.xml │ │ │ │ ├── OscControllerExample.xosc │ │ │ │ ├── PedestrianCrossingFront.xosc │ │ │ │ ├── RouteObstacles.xml │ │ │ │ ├── RunningRedLight.xml │ │ │ │ ├── SignalizedJunctionLeftTurn.xml │ │ │ │ ├── SignalizedJunctionRightTurn.xml │ │ │ │ ├── Slalom.xosc │ │ │ │ ├── VehicleOpensDoor.xml │ │ │ │ ├── VehicleTurning.xml │ │ │ │ └── catalogs/ │ │ │ │ ├── ControllerCatalog.xosc │ │ │ │ ├── EnvironmentCatalog.xosc │ │ │ │ ├── ManeuverCatalog.xosc │ │ │ │ ├── MiscObjectCatalog.xosc │ │ │ │ ├── PedestrianCatalog.xosc │ │ │ │ └── VehicleCatalog.xosc │ │ │ ├── metrics/ │ │ │ │ ├── examples/ │ │ │ │ │ ├── basic_metric.py │ │ │ │ │ ├── criteria_filter.py │ │ │ │ │ ├── distance_between_vehicles.py │ │ │ │ │ └── distance_to_lane_center.py │ │ │ │ └── tools/ │ │ │ │ ├── metrics_log.py │ │ │ │ └── metrics_parser.py │ │ │ ├── openscenario/ │ │ │ │ ├── 0.9.x/ │ │ │ │ │ ├── OpenSCENARIO_Catalog.xsd │ │ │ │ │ ├── OpenSCENARIO_TypeDefs.xsd │ │ │ │ │ ├── OpenSCENARIO_v0.9.1.xsd │ │ │ │ │ └── migration0_9_1to1_0.xslt │ │ │ │ └── OpenSCENARIO.xsd │ │ │ ├── scenarioconfigs/ │ │ │ │ ├── __init__.py │ │ │ │ ├── openscenario_configuration.py │ │ │ │ ├── route_scenario_configuration.py │ │ │ │ └── scenario_configuration.py │ │ │ ├── scenariomanager/ │ │ │ │ ├── __init__.py │ │ │ │ ├── actorcontrols/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── actor_control.py │ │ │ │ │ ├── basic_control.py │ │ │ │ │ ├── carla_autopilot.py │ │ │ │ │ ├── external_control.py │ │ │ │ │ ├── npc_vehicle_control.py │ │ │ │ │ ├── pedestrian_control.py │ │ │ │ │ ├── simple_vehicle_control.py │ │ │ │ │ ├── vehicle_longitudinal_control.py │ │ │ │ │ └── visualizer.py │ │ │ │ ├── carla_data_provider.py │ │ │ │ ├── lights_sim.py │ │ │ │ ├── result_writer.py │ │ │ │ ├── scenario_manager.py │ │ │ │ ├── scenarioatomics/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── atomic_behaviors.py │ │ │ │ │ ├── atomic_criteria.py │ │ │ │ │ └── atomic_trigger_conditions.py │ │ │ │ ├── timer.py │ │ │ │ ├── traffic_events.py │ │ │ │ ├── watchdog.py │ │ │ │ └── weather_sim.py │ │ │ ├── scenarios/ │ │ │ │ ├── __init__.py │ │ │ │ ├── actor_flow.py │ │ │ │ ├── background_activity.py │ │ │ │ ├── background_activity_parametrizer.py │ │ │ │ ├── basic_scenario.py │ │ │ │ ├── blocked_intersection.py │ │ │ │ ├── change_lane.py │ │ │ │ ├── construction_crash_vehicle.py │ │ │ │ ├── control_loss.py │ │ │ │ ├── cross_bicycle_flow.py │ │ │ │ ├── cut_in.py │ │ │ │ ├── cut_in_with_static_vehicle.py │ │ │ │ ├── follow_leading_vehicle.py │ │ │ │ ├── freeride.py │ │ │ │ ├── green_traffic_light.py │ │ │ │ ├── hard_break.py │ │ │ │ ├── highway_cut_in.py │ │ │ │ ├── invading_turn.py │ │ │ │ ├── left_turn_enter_flow.py │ │ │ │ ├── maneuver_opposite_direction.py │ │ │ │ ├── no_signal_junction_crossing.py │ │ │ │ ├── object_crash_intersection.py │ │ │ │ ├── object_crash_vehicle.py │ │ │ │ ├── open_scenario.py │ │ │ │ ├── opposite_vehicle_taking_priority.py │ │ │ │ ├── other_leading_vehicle.py │ │ │ │ ├── parking_cut_in.py │ │ │ │ ├── parking_exit.py │ │ │ │ ├── pedestrian_crossing.py │ │ │ │ ├── route_obstacles.py │ │ │ │ ├── route_scenario.py │ │ │ │ ├── sequentially_lane_change.py │ │ │ │ ├── signalized_junction_left_turn.py │ │ │ │ ├── signalized_junction_right_turn.py │ │ │ │ ├── t_junction.py │ │ │ │ ├── vanilla_turn.py │ │ │ │ ├── vehicle_opens_door.py │ │ │ │ └── yield_to_emergency_vehicle.py │ │ │ ├── tests/ │ │ │ │ ├── __init__.py │ │ │ │ ├── carla_mocks/ │ │ │ │ │ ├── README.md │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── agents/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── navigation/ │ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ │ ├── basic_agent.py │ │ │ │ │ │ │ ├── behavior_agent.py │ │ │ │ │ │ │ ├── behavior_types.py │ │ │ │ │ │ │ ├── controller.py │ │ │ │ │ │ │ ├── global_route_planner.py │ │ │ │ │ │ │ └── local_planner.py │ │ │ │ │ │ └── tools/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ └── misc.py │ │ │ │ │ └── carla.py │ │ │ │ └── test_xosc_load.py │ │ │ ├── tools/ │ │ │ │ ├── __init__.py │ │ │ │ ├── background_manager.py │ │ │ │ ├── openscenario_parser.py │ │ │ │ ├── py_trees_port.py │ │ │ │ ├── route_manipulation.py │ │ │ │ ├── route_parser.py │ │ │ │ ├── scenario_helper.py │ │ │ │ └── scenario_parser.py │ │ │ └── utilities/ │ │ │ └── code_check_and_formatting.sh │ │ └── tools/ │ │ ├── ability_benchmark.py │ │ ├── check_carla.md │ │ ├── clean_carla.sh │ │ ├── data_collect.py │ │ ├── download_mini.sh │ │ ├── efficiency_smoothness_benchmark.py │ │ ├── gen_hdmap.py │ │ ├── generate_video.py │ │ ├── merge_route_json.py │ │ ├── split_xml.py │ │ ├── utils.py │ │ └── visualize.py │ └── quick_start.md └── open_loop/ ├── docs/ │ └── quick_start.md ├── nuscenes_infos_val_hrad_planing_scene.pkl ├── projects/ │ ├── configs/ │ │ ├── MomAD_small_stage1_roboAD.py │ │ ├── MomAD_small_stage2_roboAD.py │ │ ├── MomAD_small_stage2_roboAD_6s.py │ │ ├── MomAD_small_trainval_1_10_stage1_test.py │ │ ├── sparsedrive_small_stage1.py │ │ ├── sparsedrive_small_stage1_roboAD.py │ │ ├── sparsedrive_small_stage2.py │ │ ├── sparsedrive_small_stage2_6s.py │ │ └── sparsedrive_small_trainval_1_10_stage1_test.py │ └── mmdet3d_plugin/ │ ├── __init__.py │ ├── apis/ │ │ ├── __init__.py │ │ ├── mmdet_train.py │ │ ├── test.py │ │ └── train.py │ ├── core/ │ │ ├── box3d.py │ │ └── evaluation/ │ │ ├── __init__.py │ │ └── eval_hooks.py │ ├── datasets/ │ │ ├── __init__.py │ │ ├── builder.py │ │ ├── evaluation/ │ │ │ ├── __init__.py │ │ │ ├── map/ │ │ │ │ ├── AP.py │ │ │ │ ├── distance.py │ │ │ │ └── vector_eval.py │ │ │ ├── motion/ │ │ │ │ ├── motion_eval_uniad.py │ │ │ │ └── motion_utils.py │ │ │ └── planning/ │ │ │ ├── planning_eval.py │ │ │ ├── planning_eval_roboAD.py │ │ │ └── planning_eval_roboAD_6s.py │ │ ├── map_utils/ │ │ │ ├── nuscmap_extractor.py │ │ │ └── utils.py │ │ ├── nuscenes_3d_dataset.py │ │ ├── nuscenes_3d_dataset_roboAD.py │ │ ├── nuscenes_3d_dataset_roboAD_6s.py │ │ ├── pipelines/ │ │ │ ├── __init__.py │ │ │ ├── augment.py │ │ │ ├── loading.py │ │ │ ├── transform.py │ │ │ └── vectorize.py │ │ ├── samplers/ │ │ │ ├── __init__.py │ │ │ ├── distributed_sampler.py │ │ │ ├── group_in_batch_sampler.py │ │ │ ├── group_sampler.py │ │ │ └── sampler.py │ │ └── utils.py │ ├── models/ │ │ ├── __init__.py │ │ ├── attention.py │ │ ├── base_target.py │ │ ├── blocks.py │ │ ├── detection3d/ │ │ │ ├── __init__.py │ │ │ ├── decoder.py │ │ │ ├── detection3d_blocks.py │ │ │ ├── detection3d_head.py │ │ │ ├── detection3d_head_roboAD.py │ │ │ ├── feature_enhance.py │ │ │ ├── losses.py │ │ │ └── target.py │ │ ├── grid_mask.py │ │ ├── instance_bank.py │ │ ├── map/ │ │ │ ├── __init__.py │ │ │ ├── decoder.py │ │ │ ├── loss.py │ │ │ ├── map_blocks.py │ │ │ ├── match_cost.py │ │ │ └── target.py │ │ ├── motion/ │ │ │ ├── __init__.py │ │ │ ├── decoder.py │ │ │ ├── instance_queue.py │ │ │ ├── motion_blocks.py │ │ │ ├── motion_planning_head.py │ │ │ ├── motion_planning_head_roboAD.py │ │ │ ├── motion_planning_head_roboAD_6s.py │ │ │ ├── next_token_prediction.py │ │ │ └── target.py │ │ ├── sparsedrive.py │ │ └── sparsedrive_head.py │ └── ops/ │ ├── __init__.py │ ├── deformable_aggregation.py │ ├── setup.py │ └── src/ │ ├── deformable_aggregation.cpp │ └── deformable_aggregation_cuda.cu ├── requirement.txt ├── scripts/ │ ├── create_data.sh │ ├── kmeans.sh │ ├── test.sh │ ├── test_roboAD.sh │ ├── train.sh │ ├── train_6s.sh │ ├── train_roboAD.sh │ └── visualize.sh ├── test.py ├── tools/ │ ├── benchmark.py │ ├── data_converter/ │ │ ├── __init__.py │ │ ├── nuscenes_converter.py │ │ ├── nuscenes_converter_1_10.py │ │ ├── nuscenes_converter_6s.py │ │ └── nuscenes_converter_hrad_planing_scene.py │ ├── dist_test.sh │ ├── dist_train.sh │ ├── fuse_conv_bn.py │ ├── kmeans/ │ │ ├── kmeans_det.py │ │ ├── kmeans_map.py │ │ ├── kmeans_motion.py │ │ └── kmeans_plan.py │ ├── test.py │ ├── train.py │ ├── train_single.py │ └── visualization/ │ ├── bev_render.py │ ├── cam_render.py │ └── visualize.py └── visualize.py