← Home← Back to Projects

Video based Object Detection, Tracking and Bi-directional Counting

Video based Object Detection, Tracking and Bi-directional Counting

Project Description: This project is a real-time computer vision application that detects and tracks people in video using YOLOv8 for object detection and DeepSORT for multi-object tracking. The system assigns unique IDs to each detected person and tracks their movement across frames. A line-based bi-directional counting mechanism determines whether a person moves UP or DOWN when crossing a defined boundary. The architecture follows a modular design with separate modules for detection, tracking, counting, and video processing. Performance optimization techniques such as frame skipping and frame resizing are implemented to improve processing speed. The application also monitors Inference FPS and Display FPS for real-time performance insights. After processing, the system generates an annotated video with bounding boxes, IDs, and directional counters. The processed video is then encoded and returned to the user interface. A Streamlit-based web interface allows users to upload videos and view results interactively. The entire application is deployed on Streamlit Community Cloud, making the system accessible directly through the browser.

PythonOpenCVUltralytics YOLOv8DeepSORT / Custom TrackerStreamlitFFmpegStreamlit Cloud (Deployment)Performce Optimization
Live DemoGitHub Repo