ShelfRanger is an intelligent retail shelf monitoring and automated restocking system that uses YOLOv8 for product detection and classification.
ShelfRanger/
├── README.md # Project documentation
├── requirements.txt # Python dependencies
├── environment.yml # Conda environment specification
├── src/
│ ├── training/ # Model training code
│ │ ├── __init__.py
│ │ ├── train.py # YOLOv8 training script
│ │ └── config.py # Training configuration
│ ├── utils/ # Utility functions
│ │ ├── __init__.py
│ │ └── visualization.py # Visualization helpers
│ └── ui/ # Streamlit UI code
│ ├── __init__.py
│ └── prototype_ui.py # Main Streamlit interface
├── models/ # Trained model weights
│ └── .gitkeep
├── dataset/ # YOLOv8 dataset
│ ├── data.yaml # Dataset configuration
│ ├── train/ # Training images and labels
│ ├── valid/ # Validation images and labels
│ └── test/ # Test images and labels
└── prototype_sku_lookup.py # SKU mapping dictionary
# Create environment from file
conda env create -f environment.yml
# Activate environment
conda activate shelfranger
# Activate environment git bash
source /c/Users/mauli/anaconda3/Scripts/activate shelfranger
# Update Environment
conda env update -f environment.yml --prune
# Clean up and re-train from scratch
rm -rf models/* yolov8n.pt
# From project root
python src/training/train.py
# From project root
streamlit run src/ui/prototype_ui.py
- Base model: YOLOv8n
- Image size: 512x512
- Epochs: 50
- Dataset: Custom retail shelf dataset with 39 SKU classes
- Training script:
src/training/train.py
See requirements.txt
for Python package dependencies.
- Training: 2,793 images
- Validation: 264 images
- Test: 100 images
- Classes: 39 SKUs (see data.yaml for full list) # ShelfRanger