What it is
I built Dishwatcher to notice when dishes stay in my kitchen sink. A Raspberry Pi camera captures the sink after motion stops. The dashboard shows the current state, and alerts remind me to clean it.
How it works
The Pi buffers a short clip and sends a frame after motion stops. The server compares the sink region with a clean reference using structural similarity. Several frames must agree before its state changes. After a delay it can send a Discord alert. The dashboard shows the latest state and history.
Flow
- Pi camera motion
- Frame and clip upload
- Clean reference comparison
- State timer
- Dashboard and alerts
The problem
The first detector used YOLO, which only recognized a few kitchenware classes. Pots, pans and cutting boards could be missed, so a dirty sink could look clear. The model class list in the code made the gap clear. I switched the main decision to structural similarity against a clean reference image and kept YOLO for optional labels.
Screenshots
The dashboard shows the latest camera capture beside the sink state. The capture is pixelated for privacy.