Deep Fashion is a Easy-to-use, Modular and Extendible package of deep-learning based fashion recommendation models with PyTorch.
Behind the fact that none of the numerous papers released since 2018 have been implemented, we implement and distribute the model ourselves. We aimed to implement the paper as much as possible, but since it is a personal project, there may be some other aspects. Therefore, if there is a better way, please contribute.
What is included
- Data proprocessor that can easily configure set of outfits as Dataset
- Fashion compatibility models
- Metric learning loss that can be applied immediately to Batch configured with outfit-wise dataset
Model | Paper | FITB Acc. (Ours) |
FITB Acc. (Original) |
---|---|---|---|
siamese-net | Baseline | 50.7 32, ResNet18 Image |
54.0 64, ResNet18 Image |
type-aware-net | [ECCV 2018] Learning Type-Aware Embeddings for Fashion Compatibility | 52.6 32, ResNet18 Image |
54.5 64, ResNet18 Image + Text |
csa-net | [CVPR 2020] Category-based Subspace Attention Network (CSA-Net) | 55.8 32, ResNet18 Image |
59.3 64, ResNet18 Image |
fashion-swin | [IEEE 2023] Fashion Compatibility Learning Via Triplet-Swin Transformer | ? 32, Swin-t Image |
60.7 64, Swin-t Image + Text |
Notes
- Implementation is based on the above papers, but there may be differents.
- In the test, for fairness, the embedding size was fixed at 32, and only images were used.
- Only the models studied for the purpose of retrieval were developed, so the prediction-based models(SCE-Net, Outfit-Transformer etc) were not implemented.
This project recommends Python 3.7 or higher.
python -m pip install -r requirements.txt
-
Download the Polyvore dataset from here.
-
$MODEL
is same as above mentioned sheet.!python train.py --model $MODEL --embedding_dim $NUM --dataset_type outfit --train_batch 64 --valid_batch 64 --fitb_batch 32 --n_epochs 5 --save_dir $DIR --data_dir $DIR --num_workers 4 --scheduler_step_size 500 --learning_rate 5e-5
Preparing for demos...
- This is NON-OFFICIAL implementation.
- The part that uses the HGLMM Fisher vector is replaced by SBERT Embedding. If you want to use Fisher vector, you can change txt_type to 'hglmm'. but it requires to revise model codes.