diff --git a/scripts/speed_limit_vision/replay_route_runtime.py b/scripts/speed_limit_vision/replay_route_runtime.py index a57a2a80a..3e2c2f4fd 100644 --- a/scripts/speed_limit_vision/replay_route_runtime.py +++ b/scripts/speed_limit_vision/replay_route_runtime.py @@ -160,6 +160,7 @@ def parse_args() -> argparse.Namespace: ) parser.add_argument("--right-roi-bounds", help="Override the right ROI as left,top,right,bottom ratios, for example 0.45,0,1,0.82.") parser.add_argument("--right-roi-min-confidence", type=float, help="Override the right ROI detector minimum confidence.") + parser.add_argument("--classifier-min-confidence", type=float, help="Override the value classifier confidence threshold.") parser.add_argument("--full-frame-ocr", action="store_true", help="Enable the expensive full-frame OCR fallback during replay.") return parser.parse_args() @@ -262,6 +263,9 @@ def configure_runtime_options(args: argparse.Namespace) -> None: if args.detector_region_mode: slv.DETECTOR_CLASSIFIER_REGION_MODE = args.detector_region_mode + if args.classifier_min_confidence is not None: + slv.US_CLASSIFIER_MIN_CONFIDENCE = args.classifier_min_confidence + if args.full_frame_ocr: slv.FULL_FRAME_OCR_FALLBACK_ENABLED = True @@ -385,7 +389,7 @@ def summarize(route: str, segment_count: int, qlog_context: bool, daemon: RouteR def write_events(path: Path, route_events: list[tuple[str, dict[str, str]]]) -> None: path.parent.mkdir(parents=True, exist_ok=True) fieldnames = [ - "route", "time_s", "event", "candidateSpeedLimitMph", "speedLimitMph", "confidence", "reason", + "route", "time_s", "event", "candidateSpeedLimitMph", "candidateConfidence", "speedLimitMph", "confidence", "reason", "previousRoadName", "roadName", ] with path.open("w", encoding="utf-8", newline="") as output_file: diff --git a/starpilot/assets/vision_models/speed_limit_us_detector.onnx b/starpilot/assets/vision_models/speed_limit_us_detector.onnx index 82b890aa7..275c2c27b 100755 Binary files a/starpilot/assets/vision_models/speed_limit_us_detector.onnx and b/starpilot/assets/vision_models/speed_limit_us_detector.onnx differ diff --git a/starpilot/assets/vision_models/speed_limit_us_value_classifier.onnx b/starpilot/assets/vision_models/speed_limit_us_value_classifier.onnx index aaf10bbb3..a0d8d77f5 100755 Binary files a/starpilot/assets/vision_models/speed_limit_us_value_classifier.onnx and b/starpilot/assets/vision_models/speed_limit_us_value_classifier.onnx differ diff --git a/starpilot/system/speed_limit_vision.py b/starpilot/system/speed_limit_vision.py index bfc6bf053..f97fa4f57 100644 --- a/starpilot/system/speed_limit_vision.py +++ b/starpilot/system/speed_limit_vision.py @@ -153,7 +153,7 @@ US_DETECTOR_CLASSES = { US_CLASSIFIER_SPEED_VALUES = (15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75) SCHOOL_ZONE_SPEED_VALUES = frozenset((15, 20, 25)) US_DETECTOR_MIN_CONFIDENCE = 0.06 -US_CLASSIFIER_MIN_CONFIDENCE = 0.65 +US_CLASSIFIER_MIN_CONFIDENCE = 0.80 US_CLASSIFIER_REJECT_MIN_CONFIDENCE = 0.85 SEPARATE_REJECT_CLASSIFIER_ENABLED = False US_REJECT_CLASSIFIER_MIN_CONFIDENCE = 0.85