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

Share this project:

Updates