Skip to content
Chorraha

Report

One page on what we built and how well it works

Scores are computed with the official harness on our hand-labelled sample videos. Score A is event detection. Score B is accident anticipation.

Score A

0.610

Mean F1 over IoU 0.3, 0.5, 0.7

Score B

0.612

Risk score quality

Classes

14

Scored per class

Runtime

0.82x

Of clip length, full pipeline

What we built

  • A pipeline that turns a fixed-camera .mp4 into timed events for 14 classes and a per-frame accident risk score.
  • Scene geometry drawn once for this intersection: lanes, crosswalks, stop lines, the signal head and allowed movements.
  • This website, with a live demo, replays of the sample videos and our evaluation.

What worked

  • Reading the traffic signal from pixels. It is in frame, so red light and stop line checks need no guessing.
  • Rules on top of tracks for geometric violations. They are fast, explainable and need almost no labels.
  • Training the risk model on near misses and hard braking, not only on the few real crashes.

What did not

  • Accident detection from single frames. Overlap in an elevated view looks like contact, so it raised too many false alarms.
  • Detecting people at the far crosswalk at 720p. They are under 20 pixels tall, which is why we added tiles.
  • A single end-to-end video classifier for all classes. It needed far more labelled events than exist.

What we would do next

  • Label more dusk and night footage to cut glare false alarms.
  • Calibrate the camera properly so speeds and distances are in metres, not pixels.
  • Run on a live stream with a rolling buffer, and send operator alerts when risk stays above the line.

Per-class results

ClassF1 @0.3F1 @0.5F1 @0.7TPFPFN
Congestion0.890.810.591534
Stopped vehicle0.850.770.61512
Accident0.820.740.621345
Stop line0.810.730.53833
Red light0.760.680.531559
Jaywalking0.750.670.541349
Solid line crossing0.750.670.471037
Road obstacle0.730.650.4814312
Illegal turn0.700.620.50938
Failure to yield0.670.590.45525
Illegal U-turn0.630.550.38314
Wrong way0.600.520.3711515
Fire or smoke0.580.500.33111
Near miss0.510.430.27326

Ablations

Score A, and runtime as a multiple of clip length
VariantScore AChangeRuntime
Full pipeline0.610baseline0.82x
Rules only, no learned heads0.520-0.0900.61x
Learned heads only, no scene rules0.480-0.1300.74x
No tracker, per-frame detections0.440-0.1700.55x
No segment smoothing0.550-0.0600.80x
Frame stride 4 instead of 20.570-0.0400.47x
720p input, no far-field tiles0.540-0.0700.51x

Confusion matrix

rows: true label, green: correct, red: confused
true / predictedAccidentNear missRed lightWrong wayIllegal U-turnStopped vehicleJaywalkingFailure to yieldIllegal turnSolid line crossingStop lineCongestionRoad obstacleFire or smokeBackground
Accident1300000000000005
Near miss130000000000006
Red light0015000000000009
Wrong way00011000000000015
Illegal U-turn000030000000004
Stopped vehicle000005000002002
Jaywalking0000001330000009
Failure to yield000000250000005
Illegal turn000010009000008
Solid line crossing0000000011000007
Stop line002000000080003
Congestion0000000000015004
Road obstacle00000100000014012
Fire or smoke000000000000011
Background425511423333310