Inspiration
My inspiration for this project came seeing empty buildings with their lights on. Coming from a Chinese household, my parents always taught me to turn off the lights when I'm not in a room to save electricity. I was very confused to see offices and schools keep their lights open all the time, even they're closed. So I researched more about electricity waste in offices, and the numbers are almost unreal: 3 billion dollars are wasted on lights being left on in unoccupied rooms, offices waste 30% of their electricity on leaving lights and AC on overnight and during the day when the room is unoccupied. This is an insane amount of money and electricity, but also contribute to A LOT of carbon dioxide. Studies show that if we cut our electricity waste in half we can save up to 135 million kwh or 67.5 million kg of Co2. Thats a lot! So I wanted my project to help reduce electricity waste in offices/schools
What it does
EnergyWise is designed to reduce electricity waste by monitoring rooms through existing security cameras and detecting if there is anyone in the room. When designing EnergyWise, I asked the question: What is the most effective, least invasive way to create a system to prevent unnecessary electricity waste in offices? So basically, how can I create a product that uses existing infrastructure to solve this problem? Well, motion sensors exist, but they require installation and only serve one purpose so they would not be a optimal solution. I ended up choosing to monitor the number of people in a room with security cameras because they already exist in most office buildings and wont turn off if someone is sitting in the same position for too long. The feed from the camera is used to determine live the number of people in the room and if the number determined is 0, It will send a alert to a janitor to close the lights in that room.
How we built it
For this project, I used my own webcam and a USB camera to simulate multiple security cameras in different rooms. Using OpenCV, I was able to get live frames from my webcam and I used yolov8 to detect the number of people in each frame and report the number of people and put boxes on the people to live track them. I was able to use Flask to make the program accessible online on my own localhost. The overall project was done in python and HTML.
Challenges we ran into
While coding this project, I had a lot of difficulty using the webcam stream and finding a way to make it compatible with the yolov8 model to detect the people. I also designed this to be multithreaded to handle multiple camera streams which was quite a hassle to complete on python 😅. While there were a lot of documentation on object detection on photos, there wasn't much on taking live video which made it pretty difficult to code. Also, Flask implementation was hard since it was my first time.
What's next for EnergyWise
I think EnergyWise has a lot of potential to save a lot of electricity, but it still has some ways to go. In the future, I want to reduce computational strain on the computer. Applying a model on every single frame at 12 fps is extremely computation heavy. Instead, I can try to do 1 fps or slower because the split second difference doesn't matter. Another idea is to use a anchor state taken at night when theres no on in the room and compare that image to the current image instead of applying a ML model on every frame. Also in the future, the development of a better web interface would help improve the user experience and ease of use. Another idea is to throw in sms alerts for the janitors to make it easier on them. Finally, the last step for this project would be completely integrate software and hardware for full automation. What this would look like is the lights automatically turn off when theres no one in the room.
Log in or sign up for Devpost to join the conversation.