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
Log in or sign up for Devpost to join the conversation.