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
smartOffice is designed to reduce electricity waste by monitoring rooms through existing security cameras and detecting if there is anyone in the room. When designing smartOffice, 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 to simulate a security camera. 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. The overall project was done in python.
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. 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. In addition, I originally planned to incorporate the project into a flask server to make the idea more complete and give it a user interface, however, there was a lack of documentation on showing video stream on flask and I ended up not having enough time to implement it.
What's next for smartOffice
I think smartOffice 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 GUI such as a website would help improve the user experience and ease of use. In the future, I would also add support for multiple security cameras to be monitored simultaneously. 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.