From cb1e1494afe6312be6c50e0f3f824455cc811e0d Mon Sep 17 00:00:00 2001 From: DCCONSTRUCTIONS Date: Wed, 26 Aug 2026 02:23:26 +0300 Subject: [PATCH] test(perception): qualify native RF-DETR graph shadow --- ...detr-native-reference-graph-shadow-v0.json | 2 +- ...-detr-large-native-kb4-risk-shadow-v0.json | 24 ++++++++++++++++++- .../Invoke-M48NNativeReferenceGraph.ps1 | 4 ++-- .../m48s_reference_graph_runtime.py | 17 +++++++------ .../test_rf_detr_native_detector_provider.py | 1 + 5 files changed, 37 insertions(+), 11 deletions(-) diff --git a/config/perception/m48n-rf-detr-native-reference-graph-shadow-v0.json b/config/perception/m48n-rf-detr-native-reference-graph-shadow-v0.json index 6a01d18..f5babfa 100644 --- a/config/perception/m48n-rf-detr-native-reference-graph-shadow-v0.json +++ b/config/perception/m48n-rf-detr-native-reference-graph-shadow-v0.json @@ -15,7 +15,7 @@ "provider_id": "triton-rf-detr-large-coco-native-kb4-risk-fp16-shadow/v0", "version": "0.1.0", "revision": "rf-detr-large-coco-native-kb4-uint8-trt11-fp16-risk-shadow/v0", - "sha256": "398b1102943e704b08a033b1d04b6bdb039ecdd73a2b2e370a0a9cbcaff501ec" + "sha256": "dbf4da5dbad6c3c22b1280b46ffcad81719bd183c81c263a4859847d829019b6" }, { "role": "geometry", diff --git a/config/perception/rf-detr-large-native-kb4-risk-shadow-v0.json b/config/perception/rf-detr-large-native-kb4-risk-shadow-v0.json index b6e7d58..df899d3 100644 --- a/config/perception/rf-detr-large-native-kb4-risk-shadow-v0.json +++ b/config/perception/rf-detr-large-native-kb4-risk-shadow-v0.json @@ -91,6 +91,28 @@ "legacy_box_agreement_recall_iou_at_least_0_5": 0.766593798, "legacy_box_agreement_gate_passed": false, "interpretation": "diagnostic-only because legacy 704 geometrically stretches the raw 4:3 raster" + }, + "full_ravnoves00_integrated_reference_graph": { + "result_file_sha256": "c5c3a831b1d1c3271161c91fa5c5c40533eb663ca288ed0220334a147aed6e15", + "frame_evidence_sha256": "b245af969600670d0975e89cae02b44206e3f1328eff48d5b4639b1b2ab57346", + "frame_count": 4489, + "requested_source_rate_hz": 12.0, + "effective_world_state_fps": 11.84338, + "delivery_ratio": 1.0, + "world_state_completion_mean_ms": 30.524773, + "world_state_completion_p95_ms": 47.940779, + "detector_preprocess_mean_ms": 0.015026, + "detector_total_mean_ms": 12.306091, + "detector_total_p95_ms": 21.19895, + "gpu_utilization_mean_percent": 46.005362, + "gpu_utilization_p95_percent": 53.0, + "gpu_memory_used_maximum_mib": 9718.0, + "zero_failed_stale_rejected_or_unavailable": true, + "integrated_runtime_gate_passed": true, + "operating_target_gate_passed": true, + "independent_quality_evaluated": false, + "worker_id": "worker-006", + "remote_result_path": "D:\\NDC_MISSIONCORE\\runtime\\results\\m48n-native-reference-graph-shadow\\ravnoves00-full-12fps-v0\\result.json" } }, "queue": { @@ -101,7 +123,7 @@ "native_tensor_parity_passed": true, "full_ravnoves00_runtime_gate_passed": true, "legacy_704_box_agreement_gate_passed": false, - "integrated_world_state_gate_passed": false, + "integrated_world_state_gate_passed": true, "production_accepted": false }, "authority": { diff --git a/experiments/perception/worker/Invoke-M48NNativeReferenceGraph.ps1 b/experiments/perception/worker/Invoke-M48NNativeReferenceGraph.ps1 index 40ca927..8299494 100644 --- a/experiments/perception/worker/Invoke-M48NNativeReferenceGraph.ps1 +++ b/experiments/perception/worker/Invoke-M48NNativeReferenceGraph.ps1 @@ -88,13 +88,13 @@ $wheel = Assert-File ( ) $ExpectedWheelSha256 "M48N wheel" $expectedConfigs = [ordered]@{ "m48n-rf-detr-native-reference-graph-shadow-v0.json" = ( - "336dccb6b64f4fa5def14aae967fd3280cc1720e93fa3ee21885e0c3304cee4d" + "1db6f6fa0561d819505a5e4f62fe256dab6fe4d9da6b4f1a9a5073bfcf772c90" ) "m4-recorded-realtime-baseline-v1.json" = ( "ea10359339e6cce31b5780a2710299771cab7cc0c1c2a2b56a1621f786b31fa8" ) "rf-detr-large-native-kb4-risk-shadow-v0.json" = ( - "398b1102943e704b08a033b1d04b6bdb039ecdd73a2b2e370a0a9cbcaff501ec" + "dbf4da5dbad6c3c22b1280b46ffcad81719bd183c81c263a4859847d829019b6" ) "m4-geometry-association-v1.json" = ( "cc666c9389a5e221957faddec89584709b66918d14abaf646f1832e001421999" diff --git a/src/k1link/perception/m48s_reference_graph_runtime.py b/src/k1link/perception/m48s_reference_graph_runtime.py index 61db5ff..c856886 100644 --- a/src/k1link/perception/m48s_reference_graph_runtime.py +++ b/src/k1link/perception/m48s_reference_graph_runtime.py @@ -28,6 +28,7 @@ from .graph import DeliveryEvidenceObserver, ReferencePerceptionGraphV2 from .graph_contracts import DeliveredFrame, GraphRunMode from .motion import ClassIndependentMotionEstimator from .providers import ( + DetectorProvider, ProviderRole, ReferencePerceptionGraphConfigV2, SourcePacket, @@ -175,20 +176,22 @@ def build_m48s_reference_graph_runtime( ) if maximum_frames is not None: source = _LimitedSource(source, maximum_frames) + backend: TritonRfDetrHttpInferenceBackend | TritonNativeRfDetrHttpInferenceBackend + detector: DetectorProvider if detector_variant == "legacy-704": - backend: ( - TritonRfDetrHttpInferenceBackend | TritonNativeRfDetrHttpInferenceBackend - ) = TritonRfDetrHttpInferenceBackend(triton_origin) + legacy_backend = TritonRfDetrHttpInferenceBackend(triton_origin) + backend = legacy_backend detector = RfDetrShadowDetectorProvider( mask=load_valid_fov_mask(paths.valid_fov_mask), - backend=backend, + backend=legacy_backend, timing_observer=detector_timing_observer, ) else: - backend = TritonNativeRfDetrHttpInferenceBackend(triton_origin) + native_backend = TritonNativeRfDetrHttpInferenceBackend(triton_origin) + backend = native_backend detector = NativeRfDetrShadowDetectorProvider( mask=load_valid_fov_mask(paths.valid_fov_mask), - backend=backend, + backend=native_backend, timing_observer=detector_timing_observer, ) try: @@ -313,7 +316,7 @@ def _validate_detector_profile(path: Path) -> Literal["legacy-704", "native-kb4" and status.get("native_tensor_parity_passed") is True and status.get("full_ravnoves00_runtime_gate_passed") is True and status.get("legacy_704_box_agreement_gate_passed") is False - and status.get("integrated_world_state_gate_passed") is False + and status.get("integrated_world_state_gate_passed") is True and status.get("production_accepted") is False and authority_false ) diff --git a/tests/test_rf_detr_native_detector_provider.py b/tests/test_rf_detr_native_detector_provider.py index db6c1bd..99d10ab 100644 --- a/tests/test_rf_detr_native_detector_provider.py +++ b/tests/test_rf_detr_native_detector_provider.py @@ -226,6 +226,7 @@ def test_native_shadow_profile_records_failed_legacy_agreement_without_authority is False ) assert profile["status"]["production_accepted"] is False + assert profile["status"]["integrated_world_state_gate_passed"] is True assert not any(profile["authority"].values()) assert ( _validate_detector_profile(