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




