Live CCTV Traffic Object Detection System

Real-time vehicle detection, tracking, and analytics

Project Thumbnail

PROJECT CASE STUDY

Project Overview

This project focuses on building a real-time computer vision system using CCTV cameras to support business monitoring and data-driven decision-making.

The system was developed during my internship, where I was involved in delivering production-oriented machine learning solutions rather than purely experimental models. The solution leverages object detection to extract actionable insights from live camera feeds, enabling businesses to monitor performance, behavior, and traffic patterns in real-world environments.

The main objective was to design and deploy a scalable machine learning system that could operate reliably under real-world constraints while delivering measurable business value.

Business Problem

This project addressed a business use case from a food & beverage client planning to open over 100 outlets across Jakarta. They needed objective traffic data to identify optimal store locations. Manual observation and assumptions introduced high business risk, so automated, scalable traffic analysis from CCTV footage was required.

Key Challenges

  • Large volumes of unstructured image data and the need to process footage in near real-time.
  • Data annotation bottleneck: thousands of images requiring bounding box labels with multiple objects per image.
  • Data quality variability: differing lighting, angles, resolution, and occlusion affecting model performance.
  • Delivery expectations: production-ready system requirements despite internship constraints.

Technical Approach

I designed an end-to-end machine learning lifecycle emphasizing iteration, scalability, and deployment readiness. The strategy focused on building a system that could continuously improve via iterative data collection and model refinement while remaining practical to deploy in production.

Machine Learning Lifecycle

  1. Data collection from real CCTV camera feeds
  2. Manual labeling on an initial subset of images
  3. Training an initial object detection model
  4. Using the trained model to assist auto-annotation
  5. Refining labels and retraining stronger models
  6. Deploying the model as an API for real-world testing

Assisted Data Annotation Solution

Project Thumbnail

To address the annotation bottleneck, I designed and built a GUI-based annotation tool that passed thousands of images through an existing trained model to generate auto-annotations. These were reviewed and exported in YOLO format, substantially reducing manual labeling time and cost. The solution received positive feedback from a senior AI engineer for its practicality.

Model and Framework Selection

For object detection I chose YOLO (Ultralytics) because of its stability, active community, availability of pre-trained models, and fast training/inference suitable for real-time applications.

Deployment and System Integration

Project Thumbnail

The trained model was containerized with Docker and exposed via RESTful APIs using FastAPI and Flask. This enabled seamless integration with frontend dashboards and consistent deployment across environments, allowing pilot testing in multiple real-world locations.

Tech Stack Summary

Machine Learning & Computer Vision
  • YOLO (Ultralytics)
  • Object Detection
  • Computer Vision
Programming & Data Tools
  • Python
  • Jupyter Notebook
  • OpenCV
Deployment & Systems
  • FastAPI
  • Flask
  • Docker
  • RESTful APIs

Lessons Learned

  • Data quality and annotation strategy are as important as model selection.
  • Iterative development enables faster learning and better results.
  • Clear communication between technical and non-technical stakeholders is critical.
  • Deployment and system integration are essential for real business impact.

Closing

This project strengthened my interest in building data-driven systems that operate in real-world environments, where practical constraints, trade-offs, and measurable impact matter as much as algorithms.