Team: Courtney Green, Li-Wen Hu, Satomi Ito, Nandini Kodali, Sophia Rutman
A fashion recommendation system that helps users style their own clothing or build new outfits from an uploaded image. The system combines computer vision (ResNet-50 embeddings) with efficient similarity search and recommendation algorithms.
- Upload clothing items to your wardrobe
- Select occasion (Casual, Formal, Business, Party) and season
- Click "Generate" to receive AI-recommended outfit combinations
- Customize outfits by adding or removing items
- Save your favorite outfits for later
- Upload images with automatic category classification via ResNet-50
- Edit item details including brand, color, occasion, and season tags
- Delete items you no longer want in your wardrobe
- View all saved outfits with filtering by occasion and season
- Edit saved outfits by adding/removing items
- Rate and review outfits for future reference
To run the entire application stack locally:
docker-compose up --buildThis starts the FastAPI backend, Streamlit frontend, PostgreSQL database, and Prometheus/Grafana monitoring.
ResNet.ipynb- Colab notebook used to preprocess Fashion MNIST, extract embeddings using ResNet-50, and generate visualization outputsfashion_mnist_classes.txt- Text file listing the 10 Fashion MNIST class namesfashion_mnist_labels.npy- Array of label indices for each embedded image (stored with Git LFS)fashion_mnist_resnet50_embeddings.npy- Array of 2048-dimensional ResNet-50 embeddings for the entire Fashion MNIST training set (stored with Git LFS)
recommendation_engine.py- Main recommendation engine module with PCA dimensionality reduction and FAISS similarity searchexample_usage.py- Example usage script demonstrating all featuresbenchmark.py- Comprehensive benchmarking scripttest_integration.py- Integration testsquick_test.py- Quick verification scriptrun_tests.sh- Automated test runnerrequirements.txt- Python dependenciesREADME.md- Detailed documentation
cd RecommendationFiles
pip install -r requirements.txtcd backend
pip install -r requirements.txtcd frontend
pip install -r requirements.txt# From project root
git lfs install
git lfs pullcd RecommendationFiles
python quick_test.pyFor detailed instructions, see the Recommendation Engine README.
The .npy files are large and are therefore tracked using Git LFS instead of regular Git.
After cloning the repository, run:
git lfs install
git lfs pullThe CV team provides ResNet-50 embeddings (2048-dimensional) extracted from Fashion MNIST images. These embeddings are stored in the ComputerVisionFiles/ directory.
The recommendation engine provides:
- Dimensionality Reduction: PCA-based reduction from 2048D to configurable dimensions (default: 128D)
- FAISS Integration: High-performance similarity search
- Flexible Filtering: Filter by class, exclude items, combine filters
- Performance Optimized: ~10,000+ queries/second, ~30MB memory footprint
See RecommendationFiles/README.md for complete documentation.
The backend uses FastAPI to connect S3 and RDS services from AWS to our site. In order to run and test the API calls locally, run
uvicorn backend.app.main:app --reloadThen, navigate to http://127.0.0.1:8000 on your machine to access specific calls.
The backend is deployed on the cloud using Render, located at https://dsan6700.onrender.com.
The frontend is written using Streamlit, where the API calls are connected to the various functionalities. To run the frontend locally, run
streamlit run frontend/app.pyThe frontend is deployed on the cloud using Streamlit, located at https://stylesynth.streamlit.app.
