feat(perception): define stream-first profile and qualification contracts
This commit is contained in:
@@ -0,0 +1,175 @@
|
||||
{
|
||||
"schema_version": "missioncore.perception-profile-candidate/v1",
|
||||
"profile_id": "k1-perception-ddrnet39-rfdetr-tgs-prototype/v1",
|
||||
"display_name": "K1 Perception — DDRNet-39 + RF-DETR + TGS",
|
||||
"status": "stage-1-candidate-not-installed-not-qualified",
|
||||
"experiment_policy": {
|
||||
"bounded_lab_overload_allowed": true,
|
||||
"retain_profiles_that_fail_current_hardware_realtime": true,
|
||||
"realtime_failure_blocks_experimental_packaging": false,
|
||||
"qualification_scope": ["profile-version", "effective-config", "hardware", "source", "transport"],
|
||||
"preserve_original_source_clock": true,
|
||||
"report_drops_and_staleness": true,
|
||||
"overload_is_realtime_pass": false,
|
||||
"future_onboard_placement_requires_new_measurement": true
|
||||
},
|
||||
"packaging": {
|
||||
"image": "ndc-k1-perception-ddrnet39-rfdetr-tgs:prototype-v1",
|
||||
"image_sha256": null,
|
||||
"single_container": true,
|
||||
"external_model_server_required": false,
|
||||
"host_model_cache_required": false,
|
||||
"runtime_model_download_allowed": false,
|
||||
"model_environment_isolation": "supervised-processes-one-gpu-scheduler",
|
||||
"common_interpreter_required": false
|
||||
},
|
||||
"hardware_baseline": {
|
||||
"gpu": "NVIDIA GeForce RTX 4090",
|
||||
"active_profiles_per_worker": 1,
|
||||
"sources_per_worker": 1,
|
||||
"gpu_inference_policy": "serialized",
|
||||
"other_gpu_workloads_allowed": false
|
||||
},
|
||||
"cpu_execution_policy": {
|
||||
"OPENBLAS_NUM_THREADS": 1,
|
||||
"OMP_NUM_THREADS": 1,
|
||||
"MKL_NUM_THREADS": 1,
|
||||
"reason": "bounded-single-thread-numeric-libraries-before-whole-graph-qualification"
|
||||
},
|
||||
"input_contract": {
|
||||
"schema_version": "missioncore.perception-stream-start/v1",
|
||||
"channels": ["camera", "point-cloud", "pose"],
|
||||
"camera": {
|
||||
"width": 800,
|
||||
"height": 600,
|
||||
"projection": "KB4",
|
||||
"decoded_pixel_format": "bgr8",
|
||||
"calibration_sha256": "05f3ad9b38b3a4fc95388a8ec83da83c745e217709e51787b3d5aad0969f6fa9",
|
||||
"valid_fov_sha256": "a40cee06b7c6f69b6a09a11563dcfd237f3de833b1ccd31459e66692e528ba63"
|
||||
},
|
||||
"point_cloud": {
|
||||
"representation": "vendor-registered-current-increment",
|
||||
"coordinate_frame": "map",
|
||||
"units": "metres",
|
||||
"scalar_type": "float32-little-endian",
|
||||
"raw_fields_retained": true
|
||||
},
|
||||
"pose": {"parent_frame": "map", "child_frame": "sensor"},
|
||||
"clock_mapping_required": true,
|
||||
"source_end_or_duration_required": false,
|
||||
"full_source_transfer_required": false,
|
||||
"full_source_hash_pass_required": false,
|
||||
"full_decode_or_png_cache_required": false,
|
||||
"previous_perception_artifacts_allowed": false
|
||||
},
|
||||
"stream_policy": {
|
||||
"replay_speed": 1.0,
|
||||
"release_clock": "original-source-timestamps",
|
||||
"inference_stride": 1,
|
||||
"sampling_status": "strict-every-frame-initial-baseline-no-silent-multirate",
|
||||
"first_result_requires_eof": false,
|
||||
"lookahead_allowed": false,
|
||||
"reconnect": "new-epoch-drop-old-backlog-reacquire-codec-keyframe",
|
||||
"overflow": "bounded-drop-with-ledger-degraded-and-failed-runtime-gate",
|
||||
"archive_export_on_critical_path": false,
|
||||
"transport_candidate": "grpc-bidirectional-protobuf-binary-payloads",
|
||||
"transport_qualified": false
|
||||
},
|
||||
"components": {
|
||||
"segmentation": {
|
||||
"model": "ddrnet_39-goose-fine-64",
|
||||
"checkpoint_sha256": "b99c2838051bcd7b092fd3970aa62a77d5c0bbb809c9b9afb2ff4b0ebdaa4ee6",
|
||||
"precision": "existing-fp32-baseline",
|
||||
"preprocessing": "center-600-square-to-512-rgb-tensor-0-1",
|
||||
"outside_crop": "undefined-not-free",
|
||||
"class_count": 64,
|
||||
"runtime": "python-3.9-pytorch-1.13.1-cu117-super-gradients-3.2.0"
|
||||
},
|
||||
"objects": {
|
||||
"model": "rf_detr_large_native_kb4",
|
||||
"checkpoint_sha256": "0f4e20e19a99c0f8a62b5685f57f6c8b5c371c59081feda6752a0561a79ccf38",
|
||||
"engine_sha256": "b8a40b3580edff001ec9680de68707242294ff590ab296000fae371f1083f695",
|
||||
"runtime": "tensorrt-11-fp16-native-uint8",
|
||||
"minimum_score": 0.25,
|
||||
"minimum_box_area_pixels": 64,
|
||||
"maximum_box_area_fraction": 0.5,
|
||||
"minimum_valid_fov_fraction": 0.5,
|
||||
"require_center_inside_valid_fov": true,
|
||||
"required_existing_classes": ["person", "cat", "dog"],
|
||||
"fine_static_object_classifier_required": false,
|
||||
"filter_quality_status": "existing-unchanged-near-large-and-small-object-risk-unqualified"
|
||||
},
|
||||
"geometry": {
|
||||
"online_surface": "K1LocalSurfaceShadowEstimator",
|
||||
"prepared_local_surface_allowed": false,
|
||||
"generic_static_class": "static.unknown",
|
||||
"detected_object_range": "median-camera-z-of-owned-current-points/v1",
|
||||
"geometry_only_range": "nearest-euclidean-sensor-distance/v1",
|
||||
"vehicle_clearance_claim": false,
|
||||
"missing_support": "unavailable-not-zero-not-free"
|
||||
},
|
||||
"motion": {
|
||||
"reuse": "BoundedSpatialTemporalProvider+ClassIndependentMotionEstimator",
|
||||
"semantic_class_implies_motion": false
|
||||
},
|
||||
"costmap": {
|
||||
"algorithm": "TRAVEL-TGS",
|
||||
"revision": "95dc2fbd66a343efd9060c45a5711b6307a950a4",
|
||||
"execution": "cpu",
|
||||
"rolling_history_seconds": 1.0,
|
||||
"states": ["UNOBSERVED", "GROUND_SUPPORT", "NONGROUND_OCCUPIED", "UNKNOWN_REJECTED"],
|
||||
"policy_input": true
|
||||
},
|
||||
"policy": {
|
||||
"scope": "rural-prototype-advisory-only",
|
||||
"hard_surface": "ALLOW-candidate-subject-to-geometry-and-freshness",
|
||||
"fine_road_sidewalk_bikeway_distinction_required": false,
|
||||
"effective_material_rules_required": true,
|
||||
"unknown_or_occupied_overrides_material_allowance": true,
|
||||
"sensor_to_vehicle_mount": "simulation-only-until-measured"
|
||||
}
|
||||
},
|
||||
"reference_files": [
|
||||
{"path": "config/perception/rf-detr-large-native-kb4-risk-shadow-v0.json", "sha256": "dbf4da5dbad6c3c22b1280b46ffcad81719bd183c81c263a4859847d829019b6"},
|
||||
{"path": "config/perception/lab-v1-goose-vegetation-benchmark-v1.json", "sha256": "96a427a8baae387b827ec9c0bf7ca42e3fb9114b8fa9a8671bbc9d10877670b9"},
|
||||
{"path": "config/perception/lab-v1-vegetation-provider-label-map-v1.json", "sha256": "f2b69046b6a740fd9532d2d88e7fabae7c20fb662f783c9502adc9026406f352"},
|
||||
{"path": "config/perception/lab-v1-vegetation-mission-policy-v1.json", "sha256": "b75c4ac841d7b4bcc57f7a9c8417ca2317d8ecfa499e72a9af8a8591a2ec0d35"},
|
||||
{"path": "config/perception/m49-tgs-full-shadow-v1.json", "sha256": "c2e07010aaee78259d36c057962d6bfb885349251ff7356d867e5813e632881c"},
|
||||
{"path": "config/perception/m4-geometry-association-v1.json", "sha256": "cc666c9389a5e221957faddec89584709b66918d14abaf646f1832e001421999"}
|
||||
],
|
||||
"reference_usage": "reuse-model-parameters-and-algorithms-only-not-recording-ids-or-precomputed-results",
|
||||
"realtime_contract": {
|
||||
"schema_version": "missioncore.perception-realtime-contract/v1",
|
||||
"budget_status": "engineering-targets-worker-pilot-measured-not-whole-path-qualified-not-safety-approved",
|
||||
"budgets": {
|
||||
"maximum_start_metadata_bytes": 65536,
|
||||
"maximum_chunk_bytes": 1048576,
|
||||
"maximum_inflight_bytes": 16777216,
|
||||
"maximum_pending_camera_frames": 2,
|
||||
"maximum_codec_preroll_ms": 500.0,
|
||||
"maximum_pose_age_ms": 100.0,
|
||||
"maximum_clock_uncertainty_ms": 5.0,
|
||||
"maximum_release_lag_ms": 25.0,
|
||||
"maximum_output_age_p95_ms": 125.0,
|
||||
"maximum_output_age_p99_ms": 125.0,
|
||||
"maximum_layer_age_ms": 250.0,
|
||||
"maximum_first_result_ms": 1000.0,
|
||||
"maximum_warmup_seconds": 120.0,
|
||||
"maximum_stop_seconds": 5.0,
|
||||
"maximum_vram_mib": 22000,
|
||||
"maximum_rss_mib": 8192,
|
||||
"maximum_backlog_growth_ms": 25.0
|
||||
},
|
||||
"budget_origin": "125ms-historical-envelope-retained-as-target-now-applied-to-whole-path; other-limits-explicit-initial-engineering-guards",
|
||||
"capacity_drop_count_max": 0,
|
||||
"unaccounted_input_count_max": 0,
|
||||
"full_input_transfer_before_first_result_allowed": false,
|
||||
"independent_quality_and_physical_live_status": "pending"
|
||||
},
|
||||
"authority": {
|
||||
"commands_enabled": false,
|
||||
"actuation_allowed": false,
|
||||
"navigation_or_safety_accepted": false,
|
||||
"production_accepted": false
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user