feat(perception): define stream-first profile and qualification contracts

This commit is contained in:
DCCONSTRUCTIONS
2026-09-02 00:59:47 +03:00
parent 5a78c997ac
commit 4e04d06191
4 changed files with 1043 additions and 0 deletions
@@ -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
}
}