The goal of this project was to develop a solar-powered device that counts the number of vehicles passing in each direction through a specific point on the university campus and periodically upload that data to an online MySQL database for easy access for data analysis. The device can be deployed entirely powered be solar and a battery. Data retention is kept to a minimum and all processing is done on-device.
This was my final-year thesis project for my Computer Engineering degree. The goal was a self-powered, camera-based device to count vehicles by direction at a specific point on a road, without needing to tap into road infrastructure. Runs on a Raspberry Pi 5 4GB (although 2GB should work fine too) with a basic 720p USB webcam. Detection is based on the YOLOv8 Nano, then a Kalman filter + greedy IoU tracker maintains vehicle IDs across frames and classifies direction of travel.
On my test footage it hit 96.6% detection/classification accuracy. It also works at night if there is street lighting.
Powering it is a 100W solar panel + 600Wh lead-acid battery, sized using PVGIS irradiance data, modeled to survive at least 3 winter days worst-case. Measured draw is 5.6W average (power optimization details on the website).
Privacy was a real design constraint. All inference happens on-device, frames only ever exist in RAM, and the only thing that leaves the device is an anonymized, aggregated vehicle count per time period.
This was my final-year thesis project for my Computer Engineering degree. The goal was a self-powered, camera-based device to count vehicles by direction at a specific point on a road, without needing to tap into road infrastructure.
Runs on a Raspberry Pi 5 4GB (although 2GB should work fine too) with a basic 720p USB webcam. Detection is based on the YOLOv8 Nano, then a Kalman filter + greedy IoU tracker maintains vehicle IDs across frames and classifies direction of travel.
On my test footage it hit 96.6% detection/classification accuracy. It also works at night if there is street lighting.
Powering it is a 100W solar panel + 600Wh lead-acid battery, sized using PVGIS irradiance data, modeled to survive at least 3 winter days worst-case. Measured draw is 5.6W average (power optimization details on the website).
Privacy was a real design constraint. All inference happens on-device, frames only ever exist in RAM, and the only thing that leaves the device is an anonymized, aggregated vehicle count per time period.
Full writeup and thesis report on my website.