Video Detection
A full-stack video object detection app that uses YOLOv8 to detect objects in uploaded videos and infer the activity taking place.
The project, quickly
Solo full-stack developer - frontend, backend, and model integration.
React with Material-UI for the upload and results interface.
FastAPI serving a YOLOv8 model via Ultralytics, OpenCV, and NumPy.
Live and deployed, accepting MP4, AVI, MOV, MKV, and WMV uploads.
The problem
Manually reviewing footage to identify what objects appear and what's happening in a video doesn't scale - it's slow, subjective, and gets worse the more footage there is to review.
Video Detection takes an uploaded video, runs it through YOLOv8 to detect objects frame by frame, and infers an activity description from what it finds - turning a manual review task into an upload-and-wait one.
How it works
Video upload
A React + Material-UI frontend accepts common video formats and sends them to a
single /predict FastAPI endpoint.
Frame sampling
Rather than processing every frame, it samples from the beginning, middle, and end, and filters out frames that are too dark or too bright to detect reliably.
YOLOv8 detection
A lowered confidence threshold (0.3) catches more detections, with confidence calculation and averaging tuned to reduce noise from single-frame false positives.
Activity inference
Detected objects are mapped to an inferred activity description, alongside processing statistics like frames processed and total objects found.
Tech stack
What I'd improve next
Detection accuracy came from real iteration, not a first pass - the confidence threshold, frame sampling strategy, and frame-quality filtering were all tuned after the initial version under- and over-detected in different ways. That tuning loop is the part of computer-vision work that doesn't show up in a demo but is most of the actual effort.
Next, I'd like to move from sampled frames to a lightweight tracking approach across the full video, so the activity inference reflects the whole clip rather than three snapshots of it.