DashLab
Train object detectors and visual models on dashcam footage without labelling any of it
- Status
- Live
- Version
- 0.1.0
- Platform
- GPU workstation
- License
- MIT
Labelling dashcam footage by hand is the bottleneck for training detectors and visual models on it. DashLab derives supervision from the footage itself (teacher predictions, self-distillation, OSD telemetry) and reports scores as agreement with the teacher, not ground truth.
How it is put together.
DashLab produces three models from raw dashcam video with no human annotation: a YOLO11n detector distilled from a YOLO11x teacher, a DINO-style self-supervised ResNet-18 backbone, and an embedding-density anomaly scorer. It also reads speed, GPS and clock off the burned-in OSD, supports query-by-example and CLIP text search, and clusters braking events by GPS. A PyQt6 desktop app with eight workspaces runs the 31 pipeline stages as subprocesses and browses the results. It was built and measured on a Jetson AGX Orin using 128 clips (22,805 sampled frames) of 4K30 footage.
- 1
Frame extraction
Decode clips, crop hood and OSD, sample frames incrementally
pipeline/01_extract.py - 2
Self-supervision
DINO backbone training, OSD OCR, teacher pseudo-labels, embeddings
pipeline/ - 3
Student training and evaluation
Train student detector, self-training, compare checkpoints, ground-truth sampling and eval
pipeline/08_train_student.py - 4
Analysis
Anomaly scoring, retrieval, GPS hotspots, class discovery, tracking, TTC, CLIP search
pipeline/ - 5
Export and live
ONNX / TensorRT export and benchmark; real-time camera or video loop
pipeline/15_export.py - 6
Desktop app
PyQt6 app running stages as subprocesses and browsing results
gui/
Specification.
- Models
- YOLO11n student detector (11 classes), self-supervised ResNet-18 backbone (512-d), anomaly / novelty scorer
- Detector (vs teacher, 25 held-out clips, 1280px)
- mAP50 0.583 / mAP50-95 0.482 over 11 classes; agreement with teacher, not ground truth
- Class discovery
- Clustering in the SSL embedding space separated autorickshaw, minibus and goods_carrier (~33,000 boxes relabelled)
- OSD telemetry
- Speed, GPS and clock read from burned-in overlay; 99.98% per-digit accuracy over 250,980 digits
- Deployment (Jetson AGX Orin)
- TensorRT FP16 57.1 fps; PyTorch GPU 35.1 fps; live loop 24.7 fps on 1080p at 960 width
- Search
- Query-by-example and CLIP text search; zero-shot scene tags (day/night 99.0% on 14,810 frames)
- Dataset
- DashLab Traffic v1.1: 22,805 frames, 296,616 pseudo-label boxes, 11 classes, anonymised
- Desktop app
- PyQt6, eight workspaces, stages as subprocesses with progress, ETA and live GPU/CPU/RAM telemetry
- Runs on
- PyQt6 desktop front end, but training and inference need CUDA/TensorRT; built and measured on a Jetson AGX Orin
Releases.
- v0.1.0Label-free training pipeline and desktop app for dashcam footage.
More systems.
Real-time, on-device driver assistance for any Android phone.
Perception and ADAS · ResearchDRIVYXPerception and waypoint control training platform for the India Driving Dataset (IDD)
Next systemDriveLabA desktop application for working with consumer dashcam footage