Inspiration

The grocery store is almost empty when I visit on a Saturday morning, but the checkout lines are much longer on a Monday evening. As a customer, it would be helpful to have access to information on when a store is busy to find the best time to visit. For business owners, having knowledge of peak business hours and occasions would be even more beneficial as it allows for efficient scheduling and staffing.

What it does

CCTV AI is like an augmented version of traditional CCTV. It utilizes image recognition technology to track the number of people in a specific location over time, providing live analytics to the location owner. This feature enables businesses to monitor their traffic and make data-driven decisions about their operations. The data could also be shared with customers to suggest the best visit time.

How I built it

The program is built in Python. OpenCV and the YOLOv3-tiny algorithm were used for detecting humans in a live video. Analytics were graphed with Matplotlib. Tkinter was used to create the simple GUI.

Challenges I ran into

Accurately measuring the number of people in a live video with limited computing power was one of the biggest challenges. I experimented with different machine-learning models like Haar classifier, HOG descriptor, and different versions of YOLOv3, and tweaked their parameters to find a balance between performance and accuracy.

Accomplishments that I’m proud of

It was rewarding to employ computer vision to create a cost-effective solution for businesses to track and analyze their traffic in just 36 hours of development time.

What I learnt

  • Image recognition technologies
  • Enhanced my knowledge of machine learning and deep learning
  • Creating a Desktop GUI

What's next for CCTV AI

Feature addition:

  • 24-hour benchmark option to find the peak hours in a typical day
  • Long-term analytics to identify meaningful traffic patterns
  • Automatic information feed to customers on low-traffic hours

Built With

Share this project:

Updates