Inspiration
-The Grubhub service provides useful insight into how crowded dining halls are at any given time
-But it doesn’t give the full picture
-We use CV on an embedded system to count the number of people in line, in-person, to give an accurate prediction of how long it will be until you get food
-By combining the two sources, students can make better choices about what to eat
-Built to be low cost and low maintenance, runs entirely on a Raspi
What it does
Uses a tensorflow based person detection model running on a Raspberry Pi to determine how many people are in line, and serve that data, along with other useful metrics, to a flask-based website also running on the Pi.
Challenges we ran into
-The raspberry pi has much lower RAM and CPU compute power relative to a modern computer
-Trying to run the CV, Website, and analysis code all at once is a major struggle
-We fixed this by changing our pre-processing pipeline and reducing served framerate
Accomplishments that we're proud of
We managed to have both the web server and computation all on-device, including the camera itself. This makes the project low-cost and highly replicable for different situations
Technology
-Tensorflow CPU running on a Raspberry Pi Model 3 -Flask website that handles data analysis
-Chart utility built using chart.js
-Assets built using SolidWorks
Performance
-By doing significant pre-processing and parallelization, we can increase the framerate we can serve the live-feed at -Using a YOLO5 Model, we reduce time per frame compared to a HOG or Haar Cascade based model -This model also has superior accuracy to the other options available to us.
Built With
- cv2
- flask
- grubhub
- python
- raspberry-pi
- solidworks
- tensorflow

Log in or sign up for Devpost to join the conversation.