ShelfSense AI
ShelfSense AI is a smart shelf monitoring prototype.
It uses a camera and a locally trained YOLO model to detect products and estimate visible stock levels. The system runs on a Raspberry Pi 5 and shows the results in a Gradio dashboard and on an LCD screen.
RFID badges are used to link shelf changes to users. If stock decreases without an active RFID session, the system creates an alarm with the buzzer and warning feedback.
Supplies
Raspberry Pi 5
Official Raspberry Pi 5 USB-C 27W Power Supply
USB webcam
Webcam stand
Verbatim MicroSDHC 32GB
TP-Link SD memory card reader
Freenove Project Kit
16x2 I2C LCD screen
RC522 RFID reader with RFID card/tag
Active buzzer
RGB LED
Breadboard
Jumper wires
Resistors
Vida Designs Oxford Cube Bookcase 2 Tier Black Wood
4 mm MDF enclosure / laser-cut box
Scotch double-sided tape
VELAMP MG203 cable clamps
Test products: bottle, can, chips bag, snack bar, toothpaste box, milk carton box
Software: Python, Gradio, PostgreSQL, Roboflow, YOLO model
The estimated price is around 270 euros.
Build the Enclosure
I designed and assembled the physical box for the prototype. The enclosure keeps the ProjectBoard, Raspberry Pi, LCD, RGB LED, RFID reader, buzzer and wiring in a stable setup for the demo.
Connect the Hardware
I connected the Raspberry Pi, USB camera, LCD screen, RGB LED, RFID reader and active buzzer. After wiring the components, I tested each part separately before using them together.
Collect and Train AI Data
I collected shelf images from the camera angle used in the final prototype. I annotated the products in Roboflow and trained a YOLO model to detect the product classes on the shelf.
Build the App and Database
I built a Gradio dashboard to show the camera view, stock status, RFID timer and detection results. I used PostgreSQL to store product references, detections, RFID sessions, stock movements and alerts.
Test the Full Prototype
I tested the full flow together: camera detection, stock counting, RFID authorization, database updates, dashboard feedback, LCD messages, RGB LED status and buzzer alarms.