Model stack
Three model classes, one inference graph: YOLO26 for hazard detection (NMS-free end-to-end; ProgLoss + STAL assignment for small-object recall, since a 5 cm pothole at 30 m is a small object); SAM 3 for severity classification (text-to-mask isolates damage; mask-area + edge-sharpness regression produces a four-class severity score aligned to SANRAL inspection bands); YOLO26 + PARSeq OCR for ANPR, validated against SA plate formats.
Data pipeline
62 GB of fleet dashcam at 720p to 1080p. Keyframe-anchored sampling (1 fps under 60 km/h, 2 fps above), hard-negative mining around driver-flagged false positives. Pseudo-mask annotation via SAM 3 text-grounding seeded by 4,000 hand-annotated reference frames; humans verify edge cases.
Evaluation
- Pothole detection: mAP@0.5 = 0.87; AP@severity (4-class) = 0.79
- Accident classification: F1 = 0.91; 12 % false-alarm rate (5 s temporal-context window)
- ANPR character accuracy: 97.3 % nominal · 92.1 % motion-blurred
- Latency: 22 ms / frame on Jetson Orin Nano (edge); 8 ms on T4 (cloud aggregator)
Deployment posture
Edge-first. Inference runs on the fleet vehicle's NPU, and only structured detections and plate hashes leave the device. Raw video stays on-vehicle unless retention policy triggers upload (POPIA §19 minimum-data principle). Cloud aggregator runs in SA-resident regions; cross-border export disabled by default. RAF 2025/00013-aligned variants emit eCrash-format incident packets for direct claim ingestion.