Predicting calorie and carbon waste from Harvard dining hall plates using computer vision.
Measure-Mather is a research collaboration between the Harvard John A. Paulson School of Engineering and Applied Sciences and Mather House that quantifies edible calories and their associated greenhouse-gas emissions discarded in the undergraduate dining halls. By combining Ultralytics YOLOv8-Seg and an automated image-capture pipeline, the project turns anonymous tray images into actionable sustainability metrics for Harvard University Dining Services (HUDS). The long-term vision is to inform menu design, procurement, and behavioral nudges that reduce food waste on campus.
- Ultralytics YOLOv8-Seg model for instance segmentation of tray items.
- Edge collection rig: Raspberry Pi 5 + 12 MP camera + HC-SR04 ultrasonic sensor for hands-free capture at the dish belt.
- Secure upload to Google Drive via the Drive API (OAuth 2.0); HUDS nutritional data ingested from CSV files for downstream analysis.
- Carbon accounting: converts predicted portions into calories and CO₂-equivalent using values from Our World in Data.
Component | Price (USD) | Buy-link |
---|---|---|
Ultrasonic Distance Sensor – 5 V (HC-SR04) | 5.25 | link |
Raspberry Pi 5 / 8 GB | 80.00 | link |
Raspberry Pi 5 Case with Fan | 10.95 | link |
Raspberry Pi Active Cooler | 6.60 | link |
Official 32 GB microSD (Raspberry Pi OS 64-bit) | 12.95 | link |
Micro-HDMI → HDMI (1 m) | 6.95 | link |
Raspberry Pi 5 27 W USB-C Power Supply | 13.20 | link |
Raspberry Pi Camera Module 3 Wide | 38.50 | link |
Camera Cable for Raspberry Pi 5 (500 mm) | 3.95 | link |
Total cost: $178.35 (excluding taxes and shipping)
git clone https://github.com/Patarakorn/Measure-Mather.git
cd Measure-Mather
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
yolo segment train data=measuremather.yaml model=yolov8n-seg.pt epochs=100 imgsz=640
yolo segment predict model=runs/segment/exp/weights/best.pt source=data/samples
Pull requests are welcome! Please open an issue first to discuss major changes.
- Fork the repo
- Create your feature branch (
git checkout -b feat/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feat/amazing-feature
) - Open a Pull Request
- Prof. Lakshminarayanan Mahadevan for advising
- Harvard University Dining Services for operational support
- Ultralytics for YOLOv8
- Our World in Data for emission factors
- Everyone at Mather House who let me lurk by the dish belt 🔍