Download Resume
Approach
Deep learning, general-purpose detection. Same pretrained model, two scenes, two very different outcomes.

Ultralytics YOLOv8n ("nano," the smallest, fastest variant) pretrained on COCO — 80 general classes: person, bicycle, car, motorcycle, bus, truck, and 74 others, mostly household, street, and animal objects. Nothing industrial.

Angled highway camera
Original, unannotated angled DOT highway camera image
Before — the original, unannotated camera frame.
YOLOv8 correctly detecting nine vehicles on the same angled DOT highway camera image
After — 9 vehicles correctly detected (7 cars, 1 bus — likely a truck misclassification since no bus was visible in frame, 1 truck), confidence scores ranging 0.32–0.75.

Terminal output

image 1/1 traffic.jpg: 352x640 7 cars, 1 bus, 1 truck, 219.0ms
Speed: 8.4ms preprocess, 219.0ms inference, 21.6ms postprocess per image at shape (1, 3, 352, 640)
Total vehicles detected: 9
  car: 7
  bus: 1
  truck: 1
Saved annotated image as output.jpg
Aerial traffic photoAnomaly test

I also tried this same model on a straight-down aerial traffic photo, as a deliberate anomaly test — a viewpoint the highway camera above doesn't cover. I didn't save that image, so there's no demo photo for this one, just the result.

0 cars detected, with a false positive of "2 broccolis" — tree canopies viewed from directly above visually resembled COCO's broccoli class. Root cause: YOLO's COCO training data is almost entirely street-level/dashcam-angle photos; a nadir (straight-down) viewpoint is a different visual distribution the model never learned.

Same pretrained model, same general scene type — cars on a road — wildly different results purely from camera viewpoint. Concrete proof that a pretrained model is only as good as how well the deployment scene matches its training data's visual distribution.