All projects
Shipped
2026· ML / Computer Vision Developer

VisionTrack

Real-time object detection and tracking desktop app

visiontrack.app
VisionTrack

Overview

VisionTrack applies YOLOv8 to real-time multi-class object detection and tracking, wrapped in a desktop GUI so the pipeline is usable by someone who isn't running scripts from a terminal. It handles static images, video files, and live webcam streams through one consistent interface.

Key features

  • Real-time multi-class object detection with confidence scores and bounding boxes
  • Object tracking across frames, preserving identity through occlusion and fast movement
  • Support for image, video file, and live webcam input from a single interface
  • Configurable detection settings exposed directly in the GUI

Architecture & engineering decisions

01

YOLOv8-based detection pipeline supporting multiple simultaneous object classes

02

OpenCV-driven frame processing for images, video files, and live webcam feeds

03

Frame-to-frame tracking logic maintaining object identity with real-time bounding boxes

04

CustomTkinter GUI layer for configurable detection settings and multiple input sources

05

Pillow-based image handling for efficient rendering inside the desktop interface

Product gallery

View full gallery →
visiontrack.app
VisionTrack desktop GUI
visiontrack.app
VisionTrack multi-object tracking
visiontrack.app
VisionTrack media input handling
visiontrack.app
VisionTrack methodology diagram

Challenges & how I solved them

Maintaining real-time performance while running deep learning inference on live video

Kept the inference loop lean by batching frame preprocessing with OpenCV and avoiding unnecessary copies between the capture and inference stages.

Tracking objects consistently across frames without losing identity during occlusion

Layered a tracking pass on top of per-frame YOLOv8 detections instead of treating each frame independently, so identities persist through brief occlusion.

Keeping the GUI responsive while detection runs continuously in the background

Ran capture/inference off the GUI's main loop so the interface stayed interactive even during continuous detection.

Lessons learned

  • Real-time CV work is as much about the data pipeline (frame handling, buffering) as it is about the model itself.
  • A usable GUI around a model is what turns a notebook experiment into something a non-technical user could actually run.

Stack

Python
YOLOv8
OpenCV
CustomTkinter
Pillow
ModelYOLOv8
InputsImage / Video / Webcam
RoleML / Computer Vision Developer
Year2026