From 117e569730bccd6f7392709b2c5ab41433fe5cdb Mon Sep 17 00:00:00 2001 From: zhouchengrong Date: Mon, 11 Mar 2024 10:58:34 +0800 Subject: [PATCH] add file --- app/api/api_outfit_matcher.py | 2 +- app/main.py | 9 +- .../__init__.py | 0 .../outfit_matcher/color/MKTS27000.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MKTS27001.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MKTS27002.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MKTS27003.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MKTS27004.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MKTS27008.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MKTS27009.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MKTS27010.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MKTS27011.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MKTS27012.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MKTS27013.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MKTS27014.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MKTS27015.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MKTS27016.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MKTS27017.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MKTS27018.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MKTS27019.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MKTS27027.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MKTS27028.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MKTS27029.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MKTS27030.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MKTS27031.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MKTS27034.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MKTS27035.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MKTS27038.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MKTS27039.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MKTS27040.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MKTS27045.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MKTS27046.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MKTS27047.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MKTS27050.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MKTS27058.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MKTS27059.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MKTS27061.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MKTS27062.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MKTS27066.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MKTS27067.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MKTS27068.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MKTS27073.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MLSS27101.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MLSS27102.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MLSS27103.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MLSS27104.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MLSS27107.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MLSS27109.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MLSS27110.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MLSS27111.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MLSS27112.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MLSS27113.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MLSS27119.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MLSS27122.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MLSS27123.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MLSS27128.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MLSS27129.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MLSS27132.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MLSS27133.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MLSS27136.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MLSS27137.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MLSS27140.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MLSS27141.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MLSS27142.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MLSS27145.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MLSS27146.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MLSS27147.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MLSS27148.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MLSS27149.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MLSS27150.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MLSS27152.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MLSS27154.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MLSS27156.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MLSS27157.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MLSS27159.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MLSS27160.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MLSS27161.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MLSS27162.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MLSS27167.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MLSS27173.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MLSS27174.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MLSS27175.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MLSS27176.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MLSS27226.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MPO_SP7685.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MPO_SP7686.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MPO_SP7687.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MPO_SP7692.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MPO_SP7693.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MPO_SP7694.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MPO_SP7696.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MPO_SP7697.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MPO_SP7704.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MPO_SP7705.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MPO_SP7706.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MPO_SP7711.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MPO_SP7712.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MPO_SP7717.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MPO_SP7722.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MPO_SP7723.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MPO_SP7726.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MPO_SP7729.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MPO_SP7731.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MPO_SP7732.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MPO_SP7735.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MSE_54385.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MSE_56720.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MSE_57987.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MSE_57988.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MSE_58044.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MSE_58045.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MSE_58057.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MSE_58058.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MSE_58106.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MSE_58107.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MSE_58112.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MSE_58114.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MSE_58132.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MSE_58133.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MSE_58174.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MSE_58183.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MSE_58184.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MSE_58185.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MSE_58188.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MSE_58197.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MSE_58198.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MSE_58199.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MSE_58203.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MSE_58222.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MSE_58241.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MSE_58275.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MSE_58276.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MSE_58277.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MSE_58287.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MSE_58289.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MSE_58317.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MSE_58323.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MSE_58361.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MSE_58421.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MSE_58451.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MSE_58473.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MSE_58495.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MSE_58498.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MSE_58499.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MSE_58510.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MSE_58516.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MSE_58518.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MSE_58530.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MSE_58540.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MSE_58547.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MSE_58618.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MSE_58653.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MSE_58655.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MSE_58658.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MWSS27184.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MWSS27191.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MWSS27193.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MWSS27195.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MWSS27200.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MWSS27209.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MWSS27210.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MWSS27211.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MWSS27212.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MZOS27178.npy | Bin 0 -> 328 bytes .../outfit_matcher/color/MZOS27179.npy | Bin 0 -> 328 bytes .../config/fashion_categories.json | 242 +++++ .../config/fashion_category_mapping.json | 242 +++++ app/service/outfit_matcher/dataset.py | 140 +++ .../foco.py | 0 .../outfit_matcher/outfit_evaluator.py | 184 ++++ .../service.py | 5 +- .../test_param/recommendation_test.json | 849 ++++++++++++++++++ 172 files changed, 1664 insertions(+), 9 deletions(-) rename app/service/{outfit_matcher_hon => outfit_matcher}/__init__.py (100%) create mode 100644 app/service/outfit_matcher/color/MKTS27000.npy create mode 100644 app/service/outfit_matcher/color/MKTS27001.npy create mode 100644 app/service/outfit_matcher/color/MKTS27002.npy create mode 100644 app/service/outfit_matcher/color/MKTS27003.npy create mode 100644 app/service/outfit_matcher/color/MKTS27004.npy create mode 100644 app/service/outfit_matcher/color/MKTS27008.npy create mode 100644 app/service/outfit_matcher/color/MKTS27009.npy create mode 100644 app/service/outfit_matcher/color/MKTS27010.npy create mode 100644 app/service/outfit_matcher/color/MKTS27011.npy create mode 100644 app/service/outfit_matcher/color/MKTS27012.npy create mode 100644 app/service/outfit_matcher/color/MKTS27013.npy create mode 100644 app/service/outfit_matcher/color/MKTS27014.npy create mode 100644 app/service/outfit_matcher/color/MKTS27015.npy create mode 100644 app/service/outfit_matcher/color/MKTS27016.npy create mode 100644 app/service/outfit_matcher/color/MKTS27017.npy create mode 100644 app/service/outfit_matcher/color/MKTS27018.npy create mode 100644 app/service/outfit_matcher/color/MKTS27019.npy create mode 100644 app/service/outfit_matcher/color/MKTS27027.npy create mode 100644 app/service/outfit_matcher/color/MKTS27028.npy create mode 100644 app/service/outfit_matcher/color/MKTS27029.npy create mode 100644 app/service/outfit_matcher/color/MKTS27030.npy create mode 100644 app/service/outfit_matcher/color/MKTS27031.npy create mode 100644 app/service/outfit_matcher/color/MKTS27034.npy create mode 100644 app/service/outfit_matcher/color/MKTS27035.npy create mode 100644 app/service/outfit_matcher/color/MKTS27038.npy create mode 100644 app/service/outfit_matcher/color/MKTS27039.npy create mode 100644 app/service/outfit_matcher/color/MKTS27040.npy create mode 100644 app/service/outfit_matcher/color/MKTS27045.npy create mode 100644 app/service/outfit_matcher/color/MKTS27046.npy create mode 100644 app/service/outfit_matcher/color/MKTS27047.npy create mode 100644 app/service/outfit_matcher/color/MKTS27050.npy create mode 100644 app/service/outfit_matcher/color/MKTS27058.npy create mode 100644 app/service/outfit_matcher/color/MKTS27059.npy create mode 100644 app/service/outfit_matcher/color/MKTS27061.npy create mode 100644 app/service/outfit_matcher/color/MKTS27062.npy create mode 100644 app/service/outfit_matcher/color/MKTS27066.npy create mode 100644 app/service/outfit_matcher/color/MKTS27067.npy create mode 100644 app/service/outfit_matcher/color/MKTS27068.npy create mode 100644 app/service/outfit_matcher/color/MKTS27073.npy create mode 100644 app/service/outfit_matcher/color/MLSS27101.npy create mode 100644 app/service/outfit_matcher/color/MLSS27102.npy create mode 100644 app/service/outfit_matcher/color/MLSS27103.npy create mode 100644 app/service/outfit_matcher/color/MLSS27104.npy create mode 100644 app/service/outfit_matcher/color/MLSS27107.npy create mode 100644 app/service/outfit_matcher/color/MLSS27109.npy create mode 100644 app/service/outfit_matcher/color/MLSS27110.npy create mode 100644 app/service/outfit_matcher/color/MLSS27111.npy create mode 100644 app/service/outfit_matcher/color/MLSS27112.npy create mode 100644 app/service/outfit_matcher/color/MLSS27113.npy create mode 100644 app/service/outfit_matcher/color/MLSS27119.npy create mode 100644 app/service/outfit_matcher/color/MLSS27122.npy create mode 100644 app/service/outfit_matcher/color/MLSS27123.npy create mode 100644 app/service/outfit_matcher/color/MLSS27128.npy create mode 100644 app/service/outfit_matcher/color/MLSS27129.npy create mode 100644 app/service/outfit_matcher/color/MLSS27132.npy create mode 100644 app/service/outfit_matcher/color/MLSS27133.npy create mode 100644 app/service/outfit_matcher/color/MLSS27136.npy create mode 100644 app/service/outfit_matcher/color/MLSS27137.npy create mode 100644 app/service/outfit_matcher/color/MLSS27140.npy create mode 100644 app/service/outfit_matcher/color/MLSS27141.npy create mode 100644 app/service/outfit_matcher/color/MLSS27142.npy create mode 100644 app/service/outfit_matcher/color/MLSS27145.npy create mode 100644 app/service/outfit_matcher/color/MLSS27146.npy create mode 100644 app/service/outfit_matcher/color/MLSS27147.npy create mode 100644 app/service/outfit_matcher/color/MLSS27148.npy create mode 100644 app/service/outfit_matcher/color/MLSS27149.npy create mode 100644 app/service/outfit_matcher/color/MLSS27150.npy create mode 100644 app/service/outfit_matcher/color/MLSS27152.npy create mode 100644 app/service/outfit_matcher/color/MLSS27154.npy create mode 100644 app/service/outfit_matcher/color/MLSS27156.npy create mode 100644 app/service/outfit_matcher/color/MLSS27157.npy create mode 100644 app/service/outfit_matcher/color/MLSS27159.npy create mode 100644 app/service/outfit_matcher/color/MLSS27160.npy create mode 100644 app/service/outfit_matcher/color/MLSS27161.npy create mode 100644 app/service/outfit_matcher/color/MLSS27162.npy create mode 100644 app/service/outfit_matcher/color/MLSS27167.npy create mode 100644 app/service/outfit_matcher/color/MLSS27173.npy create mode 100644 app/service/outfit_matcher/color/MLSS27174.npy create mode 100644 app/service/outfit_matcher/color/MLSS27175.npy create mode 100644 app/service/outfit_matcher/color/MLSS27176.npy create mode 100644 app/service/outfit_matcher/color/MLSS27226.npy create mode 100644 app/service/outfit_matcher/color/MPO_SP7685.npy create mode 100644 app/service/outfit_matcher/color/MPO_SP7686.npy create mode 100644 app/service/outfit_matcher/color/MPO_SP7687.npy create mode 100644 app/service/outfit_matcher/color/MPO_SP7692.npy create mode 100644 app/service/outfit_matcher/color/MPO_SP7693.npy create mode 100644 app/service/outfit_matcher/color/MPO_SP7694.npy create mode 100644 app/service/outfit_matcher/color/MPO_SP7696.npy create mode 100644 app/service/outfit_matcher/color/MPO_SP7697.npy create mode 100644 app/service/outfit_matcher/color/MPO_SP7704.npy create mode 100644 app/service/outfit_matcher/color/MPO_SP7705.npy create mode 100644 app/service/outfit_matcher/color/MPO_SP7706.npy create mode 100644 app/service/outfit_matcher/color/MPO_SP7711.npy create mode 100644 app/service/outfit_matcher/color/MPO_SP7712.npy create mode 100644 app/service/outfit_matcher/color/MPO_SP7717.npy create mode 100644 app/service/outfit_matcher/color/MPO_SP7722.npy create mode 100644 app/service/outfit_matcher/color/MPO_SP7723.npy create mode 100644 app/service/outfit_matcher/color/MPO_SP7726.npy create mode 100644 app/service/outfit_matcher/color/MPO_SP7729.npy create mode 100644 app/service/outfit_matcher/color/MPO_SP7731.npy create mode 100644 app/service/outfit_matcher/color/MPO_SP7732.npy create mode 100644 app/service/outfit_matcher/color/MPO_SP7735.npy create mode 100644 app/service/outfit_matcher/color/MSE_54385.npy create mode 100644 app/service/outfit_matcher/color/MSE_56720.npy create mode 100644 app/service/outfit_matcher/color/MSE_57987.npy create mode 100644 app/service/outfit_matcher/color/MSE_57988.npy create mode 100644 app/service/outfit_matcher/color/MSE_58044.npy create mode 100644 app/service/outfit_matcher/color/MSE_58045.npy create mode 100644 app/service/outfit_matcher/color/MSE_58057.npy create mode 100644 app/service/outfit_matcher/color/MSE_58058.npy create mode 100644 app/service/outfit_matcher/color/MSE_58106.npy create mode 100644 app/service/outfit_matcher/color/MSE_58107.npy create mode 100644 app/service/outfit_matcher/color/MSE_58112.npy create mode 100644 app/service/outfit_matcher/color/MSE_58114.npy create mode 100644 app/service/outfit_matcher/color/MSE_58132.npy create mode 100644 app/service/outfit_matcher/color/MSE_58133.npy create mode 100644 app/service/outfit_matcher/color/MSE_58174.npy create mode 100644 app/service/outfit_matcher/color/MSE_58183.npy create mode 100644 app/service/outfit_matcher/color/MSE_58184.npy create mode 100644 app/service/outfit_matcher/color/MSE_58185.npy create mode 100644 app/service/outfit_matcher/color/MSE_58188.npy create mode 100644 app/service/outfit_matcher/color/MSE_58197.npy create mode 100644 app/service/outfit_matcher/color/MSE_58198.npy create mode 100644 app/service/outfit_matcher/color/MSE_58199.npy create mode 100644 app/service/outfit_matcher/color/MSE_58203.npy create mode 100644 app/service/outfit_matcher/color/MSE_58222.npy create mode 100644 app/service/outfit_matcher/color/MSE_58241.npy create mode 100644 app/service/outfit_matcher/color/MSE_58275.npy create mode 100644 app/service/outfit_matcher/color/MSE_58276.npy create mode 100644 app/service/outfit_matcher/color/MSE_58277.npy create mode 100644 app/service/outfit_matcher/color/MSE_58287.npy create mode 100644 app/service/outfit_matcher/color/MSE_58289.npy create mode 100644 app/service/outfit_matcher/color/MSE_58317.npy create mode 100644 app/service/outfit_matcher/color/MSE_58323.npy create mode 100644 app/service/outfit_matcher/color/MSE_58361.npy create mode 100644 app/service/outfit_matcher/color/MSE_58421.npy create mode 100644 app/service/outfit_matcher/color/MSE_58451.npy create mode 100644 app/service/outfit_matcher/color/MSE_58473.npy create mode 100644 app/service/outfit_matcher/color/MSE_58495.npy create mode 100644 app/service/outfit_matcher/color/MSE_58498.npy create mode 100644 app/service/outfit_matcher/color/MSE_58499.npy create mode 100644 app/service/outfit_matcher/color/MSE_58510.npy create mode 100644 app/service/outfit_matcher/color/MSE_58516.npy create mode 100644 app/service/outfit_matcher/color/MSE_58518.npy create mode 100644 app/service/outfit_matcher/color/MSE_58530.npy create mode 100644 app/service/outfit_matcher/color/MSE_58540.npy create mode 100644 app/service/outfit_matcher/color/MSE_58547.npy create mode 100644 app/service/outfit_matcher/color/MSE_58618.npy create mode 100644 app/service/outfit_matcher/color/MSE_58653.npy create mode 100644 app/service/outfit_matcher/color/MSE_58655.npy create mode 100644 app/service/outfit_matcher/color/MSE_58658.npy create mode 100644 app/service/outfit_matcher/color/MWSS27184.npy create mode 100644 app/service/outfit_matcher/color/MWSS27191.npy create mode 100644 app/service/outfit_matcher/color/MWSS27193.npy create mode 100644 app/service/outfit_matcher/color/MWSS27195.npy create mode 100644 app/service/outfit_matcher/color/MWSS27200.npy create mode 100644 app/service/outfit_matcher/color/MWSS27209.npy create mode 100644 app/service/outfit_matcher/color/MWSS27210.npy create mode 100644 app/service/outfit_matcher/color/MWSS27211.npy create mode 100644 app/service/outfit_matcher/color/MWSS27212.npy create mode 100644 app/service/outfit_matcher/color/MZOS27178.npy create mode 100644 app/service/outfit_matcher/color/MZOS27179.npy create mode 100644 app/service/outfit_matcher/config/fashion_categories.json create mode 100644 app/service/outfit_matcher/config/fashion_category_mapping.json create mode 100644 app/service/outfit_matcher/dataset.py rename app/service/{outfit_matcher_hon => outfit_matcher}/foco.py (100%) create mode 100644 app/service/outfit_matcher/outfit_evaluator.py rename app/service/{outfit_matcher_hon => outfit_matcher}/service.py (97%) create mode 100644 app/service/outfit_matcher/test_param/recommendation_test.json diff --git a/app/api/api_outfit_matcher.py b/app/api/api_outfit_matcher.py index 416bef6..879ffa9 100644 --- a/app/api/api_outfit_matcher.py +++ b/app/api/api_outfit_matcher.py @@ -2,7 +2,7 @@ import logging from fastapi import APIRouter -from app.service.outfit_matcher_hon.service import OutfitMatcherHon +from app.service.outfit_matcher.service import OutfitMatcherHon logger = logging.getLogger() router = APIRouter() diff --git a/app/main.py b/app/main.py index f9a4d63..d20a72f 100644 --- a/app/main.py +++ b/app/main.py @@ -18,12 +18,9 @@ def get_application() -> FastAPI: title=settings.PROJECT_NAME, docs_url="/docs", redoc_url='/re-docs', openapi_url=f"{settings.API_PREFIX}/openapi.json", description=''' - Base frame with FastAPI micro framework + Postgresql - - Login/Register with JWT - - Permission - - CRUD User - - Unit testing with Pytest - - Dockerize + Base frame with FastAPI + - out_matcher_hon API + ''' ) application.add_middleware( diff --git a/app/service/outfit_matcher_hon/__init__.py b/app/service/outfit_matcher/__init__.py similarity index 100% rename from app/service/outfit_matcher_hon/__init__.py rename to app/service/outfit_matcher/__init__.py diff --git a/app/service/outfit_matcher/color/MKTS27000.npy b/app/service/outfit_matcher/color/MKTS27000.npy new file mode 100644 index 0000000000000000000000000000000000000000..61b0cbc9c4e8b110a2754799fa22f8e12b316d95 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCO0GaGTi)hj#5hp8jKs{N?xd3{Ws@CJ4N=pB!gi|==QB~7|2LK0wG$sH5 literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MKTS27002.npy b/app/service/outfit_matcher/color/MKTS27002.npy new file mode 100644 index 0000000000000000000000000000000000000000..72de4686790d239b6f5bc0836ebaa82da1d46b06 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCO0GaGTi)hj#5hp8jKs{N?xd3{Ws@CJ4N==To_8m?r-g cD*gd34^s!BKiK!*FDpF9vK@y!s%l#B0P)f?nE(I) literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MKTS27003.npy b/app/service/outfit_matcher/color/MKTS27003.npy new file mode 100644 index 0000000000000000000000000000000000000000..eafde8eb34574ac5c79056ca2b65dfff204e0d85 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN}ShAN{!KJWLxiEvtTbIz&#lTb{DJ{eR literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MKTS27004.npy b/app/service/outfit_matcher/color/MKTS27004.npy new file mode 100644 index 0000000000000000000000000000000000000000..eafde8eb34574ac5c79056ca2b65dfff204e0d85 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN}ShAN{!KJWLxiEvtTbIz&#lTb{DJ{eR literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MKTS27008.npy b/app/service/outfit_matcher/color/MKTS27008.npy new file mode 100644 index 0000000000000000000000000000000000000000..7d5d352da3c2396fde732cef02e73d56466c20c3 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN~g_5ar$wtj1WL5fZBC;P4a3}EoV-WUuX+r#(}dhn6} DX*Vdn literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MKTS27009.npy b/app/service/outfit_matcher/color/MKTS27009.npy new file mode 100644 index 0000000000000000000000000000000000000000..0ed3004a77ed8fa6571ad40023db3821c151c9a0 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN~g_5ar$wtj1WL5fZBC;P4a3}EoVe%4G7cxeygL+HUv F0ssuhD<}W} literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MKTS27010.npy b/app/service/outfit_matcher/color/MKTS27010.npy new file mode 100644 index 0000000000000000000000000000000000000000..1c4bdd9dd4b482368bb27993405d29653fccf684 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN~%m-^=Kk6pI^AL1g+m;cV50Sac#1c8_KoEyy!8J~xV be}K!w)IsPE_66^!+&Rp%7>7KnYFh9B)DJSP literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MKTS27011.npy b/app/service/outfit_matcher/color/MKTS27011.npy new file mode 100644 index 0000000000000000000000000000000000000000..d42b87f9fc4f544c5b88e12d1100c8e6ae14a5d8 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN}n+>fTUWInY&xX*aS_2bX&C#iS>(INX;GeO{`Jp&kg KfYK1&U?c$uvn}iZ literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MKTS27012.npy b/app/service/outfit_matcher/color/MKTS27012.npy new file mode 100644 index 0000000000000000000000000000000000000000..61ee0a0531e8acc08966f056a2dc2abad9cc85ce GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN}n+>fTUWInY&xX*aS_2bX&C#iS>(INX;GeO{`{o;ed i(@JgL*rThvy)74n?2WfTUWInY&xX*aS_2bX&C#iS>(INX;GeO{`eS32K iiQ_xo+M}zxy)74n?2WAOHX}okryV literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MKTS27014.npy b/app/service/outfit_matcher/color/MKTS27014.npy new file mode 100644 index 0000000000000000000000000000000000000000..574cb5f13f40ffe28312b088616d95bf59941718 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCO0GaGTi)hj#5hp8jKs{N?xdlT<2 u%hRmi*ay7SH-CTZvi<)M7h%5qcTjbg?2WX)T#g?GNrVUUB{SbEvvQ_6%U~!G2lT;@$6==0o`qQF@X9c~U^n literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MKTS27016.npy b/app/service/outfit_matcher/color/MKTS27016.npy new file mode 100644 index 0000000000000000000000000000000000000000..e8bec1b8b367e9ec1bb3da3dd432f35863eab354 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN~%m-^=Kk6pI^AL1g+m;cUwl8Pq~U9z7w69it`AO99u vqki_C{SEF%(^@j0+8^9!yyE)t=TLQr>>0q|gMI(x2UZ=ri=ljoC_PC4$f`jz literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MKTS27017.npy b/app/service/outfit_matcher/color/MKTS27017.npy new file mode 100644 index 0000000000000000000000000000000000000000..3dc689b5559518eff7f41743910a592b0d4d736b GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCO0{U#8D4fBbTPd{ilm^7%*hx3}ejko~NgAn?+j0SrDs JX$WsHk^nUYFO2{I literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MKTS27018.npy b/app/service/outfit_matcher/color/MKTS27018.npy new file mode 100644 index 0000000000000000000000000000000000000000..5357929280116c72fc3a6935b32d2ec01c123bf9 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCO0GaGTi)hj#5hp8jKs{N?xd3{Ws@CJ4N=zo(hGUf=CC cRQv;69;OaLf3RTE{*^I literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MKTS27027.npy b/app/service/outfit_matcher/color/MKTS27027.npy new file mode 100644 index 0000000000000000000000000000000000000000..94cd08f2c8186076a0935301e6aadf8cef99c6c2 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCO0L_5ar$wtj1WL5fZBC;Kh?+uL$M$bQyL5O`_N00tkR JG=w)8NdR>TE{*^I literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MKTS27028.npy b/app/service/outfit_matcher/color/MKTS27028.npy new file mode 100644 index 0000000000000000000000000000000000000000..94cd08f2c8186076a0935301e6aadf8cef99c6c2 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCO0L_5ar$wtj1WL5fZBC;Kh?+uL$M$bQyL5O`_N00tkR JG=w)8NdR>TE{*^I literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MKTS27029.npy b/app/service/outfit_matcher/color/MKTS27029.npy new file mode 100644 index 0000000000000000000000000000000000000000..cfb2a7c54859693bd133794b5692201df8129539 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN~%m-^=Kk6pI^AL1g+m;cUwl8Pq~9kQP_69it`vmCGb zfAIDT`=oH2*$Ibs?LVIWV~YIc_x889LW;%G-bL L)PfTUWInY&xX*aS_2bX&Z*R*5A^TY~LExpmj>lA^ zNxaYOv8#IxRd>_=+;q!M-Io3KQ|te)J8b>d{(=;n;!pNlQ1f8wUfTcPyTw&-&R+ZF jU#8D4fBbTPd{ilm^7%(-_MWuAkdZz|zj%{91Cam#wR?5< literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MKTS27031.npy b/app/service/outfit_matcher/color/MKTS27031.npy new file mode 100644 index 0000000000000000000000000000000000000000..9601ced60324cf499d8526f08af9ffe0a859916b GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN}n+>fTUWInY&xX*aS_2bX&Z*R*5A^TY~LExqRUX4WM zXa64APp$vI?y&V+`wLQRia*(JLDjv6t9v=O?8B3{r|q$u2UB;`eqQ_$sW#8O_RGIa hpI!d=<^K4nQWoX&kI?KrX}?0w^<~}TP4)~#0st=%c^3cx literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MKTS27034.npy b/app/service/outfit_matcher/color/MKTS27034.npy new file mode 100644 index 0000000000000000000000000000000000000000..0a055e3899a6268adf51cd3b6197a8a396ff3f27 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN~0|3TpX{?$GaFRHe^wx6Wp2}FnNXUznGm-f!JTN>X> fKD0+ycY9kd2-zEh!DIU>*6Du~&fK+U7$5)uIYmn# literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MKTS27035.npy b/app/service/outfit_matcher/color/MKTS27035.npy new file mode 100644 index 0000000000000000000000000000000000000000..6e2466a5aae19d7e85645b4198683bf1554623d3 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN~0|3TpX{?$GaFRHe^wx6Wp2}FfTUWInY&xX*aS_2bX&Z*R*5A^TY~LExo*WOe(` z{+cKD*wwv;s=I0LS~Wj;y7*!HsrCQY9kzaJe?f{(@hAH&sCh7TFYR-gyaM%=585yP jGJSUW{{One)^F`ENU(XaZh>go+R K%t1Ak6dnN7F-i9T literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MKTS27058.npy b/app/service/outfit_matcher/color/MKTS27058.npy new file mode 100644 index 0000000000000000000000000000000000000000..6409c1e1fa1fe0e829a880b118fba3cf900cae76 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN~%m-^=Kk6pI^AL1g+m;cV50Sac#1c8@O{s*`?On$J@ E0F?SE9RL6T literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MKTS27059.npy b/app/service/outfit_matcher/color/MKTS27059.npy new file mode 100644 index 0000000000000000000000000000000000000000..1c13ed10d3cd09543c3f684be89500e68e591fee GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCJb+F!*2(q0z|?_7+_7F2+Ic>;qovo4-GH+5Ufsi!fjQ bJGlB;GeO{`eM1cYzSDPB!Nt){qBS1?90oAl literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MKTS27061.npy b/app/service/outfit_matcher/color/MKTS27061.npy new file mode 100644 index 0000000000000000000000000000000000000000..c1d6ce6f1fae7a0768396357af0e0e8bd003d6e0 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCO0GaGTi)hj#5hp8jKs{N?xd3{Ws@CJ4N=PhaVJyQ=$< zeFH<4(I21p`@cpwt+_epl>HSppEgX;ePHwR`Og#KV}JGV#G lLE;G9yf+Z@_TS!?3qtk~dr#W)u<|!t3)zmt98^<5JODoMS;GJT literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MKTS27062.npy b/app/service/outfit_matcher/color/MKTS27062.npy new file mode 100644 index 0000000000000000000000000000000000000000..f87acea39a75f462f0c4fe5d91f24e4387c4ea7d GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN~0|3TpX{?$GaFRHe^wx6Wp2}FfTUWInY&xX*aS_2bX&C#iS>(INX;GeO{`{l71( iK2C9eVUMov_O@IQvNr~U$M)L~A|(F-bC? literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MKTS27068.npy b/app/service/outfit_matcher/color/MKTS27068.npy new file mode 100644 index 0000000000000000000000000000000000000000..24eb5688eb07aa45f85711f183d2fdcf866b99ee GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN}n+>fTUWInY&xX*aS_2bX&Z*R*5A^TY~LExpmi9yPb s9mihV2fWlbe}C+<{r?abVZQu#_LEdRf#?uioxXj(oXpb$_6!3A0Kr5>uK)l5 literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MKTS27073.npy b/app/service/outfit_matcher/color/MKTS27073.npy new file mode 100644 index 0000000000000000000000000000000000000000..2400d76a1a6463158cac349fc181293775608f55 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCJb+F!*2(p)tv;wUs%p7oONRFjN`+@p-@hYlPF9n{!Ut ePg3y&qDS_|VDQ*JoP}4tH2xY+b1+S&t_T3>I5F7( literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MLSS27101.npy b/app/service/outfit_matcher/color/MLSS27101.npy new file mode 100644 index 0000000000000000000000000000000000000000..24a3d23d0f286b5cf7665128eb64aea19f9c1b5f GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN}n+>fTUWInY&xX*aS_2bX&Z*R*5A$wymcx=xA1|Og_ Igf|#T0N`^im;e9( literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MLSS27102.npy b/app/service/outfit_matcher/color/MLSS27102.npy new file mode 100644 index 0000000000000000000000000000000000000000..fc9240aaa00489a2f10ee5f07e4772a8e78cc592 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN}hU#8D4fBbTPY*Z-*2Ha< i%U;@}tDB_a2}FnNXUznGm-hFk>`;|VJ891_KmY(ZZ$`=h literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MLSS27103.npy b/app/service/outfit_matcher/color/MLSS27103.npy new file mode 100644 index 0000000000000000000000000000000000000000..d41f6dfd2fdc1e6214cf00b0b636af5c40b99417 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN~%m-^=Kk6pI^AL1g+m;cUwl8Pq~9kQP_69it`A9?k} t<8ROl`v!(8qdz|H_rHm7T61&Gsr?XjkD%&K+J6Yixx=;PoIS$;0RSAJMWg@# literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MLSS27104.npy b/app/service/outfit_matcher/color/MLSS27104.npy new file mode 100644 index 0000000000000000000000000000000000000000..0b28d7adce8ea3d228dd6289be265d7b00241872 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN~%m-^=Kk6pI^AL1g+m;cUwl8Pq~9kQP_69it``>glq zkiY%PzJa02=#S6){cj?i*4&(PYClBXBdEHQ_LDb$deok>!=3>QK0s**4?%vg=elzI PR`sC`IOGv3No4^50Yppg literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MLSS27107.npy b/app/service/outfit_matcher/color/MLSS27107.npy new file mode 100644 index 0000000000000000000000000000000000000000..32007261ee6d417eba30707712433154a89496c4 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN}ShAN{!KJWLxiEvtTbIz}ejko~NgAaK*30SrDs JX$WsHk^o3ZFS`H$ literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MLSS27109.npy b/app/service/outfit_matcher/color/MLSS27109.npy new file mode 100644 index 0000000000000000000000000000000000000000..9a57b95cb7335cb9d58f08b3bd5d89d35fcf6cd6 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN}ShAN{!KJWLxiEvtTbIz&#lT}008??NW}mE literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MLSS27110.npy b/app/service/outfit_matcher/color/MLSS27110.npy new file mode 100644 index 0000000000000000000000000000000000000000..32007261ee6d417eba30707712433154a89496c4 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN}ShAN{!KJWLxiEvtTbIz}ejko~NgAaK*30SrDs JX$WsHk^o3ZFS`H$ literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MLSS27111.npy b/app/service/outfit_matcher/color/MLSS27111.npy new file mode 100644 index 0000000000000000000000000000000000000000..eafde8eb34574ac5c79056ca2b65dfff204e0d85 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN}ShAN{!KJWLxiEvtTbIz&#lTb{DJ{eR literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MLSS27112.npy b/app/service/outfit_matcher/color/MLSS27112.npy new file mode 100644 index 0000000000000000000000000000000000000000..73d04929610c571b45251d389d8680e362729d65 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN}ShAN{!KJWLxiEvtTbIz&#lTX&Fq9jyY?SX|1m}W@_T!9^Ag*%j$Llv2^WXS HQ%VB>G^12n literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MLSS27119.npy b/app/service/outfit_matcher/color/MLSS27119.npy new file mode 100644 index 0000000000000000000000000000000000000000..89dd4a7415d0be5c220b7b4bf148c989b3970fa3 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN}ShAN{!KJWLxiEvtTbIz&#+jDPk%f0=~e%4G7xM|M- M1|Og_gf|#T08fA~#{d8T literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MLSS27122.npy b/app/service/outfit_matcher/color/MLSS27122.npy new file mode 100644 index 0000000000000000000000000000000000000000..93e5010e921f18cc1cf0e26c115ba96392c5eefd GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= mXCxM+0{I%IItr$mItsN4WCJb+F!*2(p>dIffTUWInY&xX*aS_2bX&C#iS>(Ixv?GeO{`eX(gc z5IweUV5lfTUWInY&xX*aS_2bX&C#iS>(Ixv?GeO{`eVxGk zYu8u5uy0_fGWz55e*c>Yr!_a{oZ1gj_Xw))r2WqPoM{@_2kjZa-~*I~@IWNYyeTf_ s8lCSp*iWnfzwWU0Tl))AY>GeGZ|#SvgsC%4xO;7O;cN_ZVCv9m0C6&5lmGw# literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MLSS27132.npy b/app/service/outfit_matcher/color/MLSS27132.npy new file mode 100644 index 0000000000000000000000000000000000000000..4eb2820f98247aff4142e77c9b62a48f92c0ab08 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN}n+>fTUWInY&xX*aS_2bX&C#iS>(INX;GeO{`y-Dbc z==nSk?5EcMUw7F0t^EZlHpQRpx9o3k%LO5OV=#DZuX2Go(sAw``=oH2*$Ibs?LVIW XV~YIc_ZaGyYsXan_g-bsKxF^`6!ceQ literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MLSS27133.npy b/app/service/outfit_matcher/color/MLSS27133.npy new file mode 100644 index 0000000000000000000000000000000000000000..be07818e03b70d0dbbcdc8ce028de0e4b4bcd9a7 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN}n+>fTUWInY&xX*aS_2bX&C#iS>(INX;GeO{`{rjn% z3t6t;vY%T2f8Am0xAqsL*c5-V-?G2GEf<9Bjltltea=S4XNg@G?UTZ7W+xolwf}hf lk16t(-(#p#YZHpeb~$B_-QGuVdtI-s)$ISc)1HAy008i6ZSMd8 literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MLSS27136.npy b/app/service/outfit_matcher/color/MLSS27136.npy new file mode 100644 index 0000000000000000000000000000000000000000..00e5113d9bdd8d575c6d69a86395b46aad1372ac GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCJb+F!*2(p)tv|_xbmyxjeOB@n!n#^2aat$3~U1D4&0{ e|Ms?A5VAK0gU9yE93C_pm0!ha4yMV}6#)PZa5c>U literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MLSS27137.npy b/app/service/outfit_matcher/color/MLSS27137.npy new file mode 100644 index 0000000000000000000000000000000000000000..d58c122e35618e0e7e22b4d44da16b61c745acd9 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCJc11`v3#f2B{vi>hs}_k+1WV%AI$cxlghVnI&ZtEcwp z>L#gp0?{FRh`O8hPh%KX&E-6457GYtO2bTpnRnCP+w@?abnIrF>R|ev7UoZQUA7Fv J9E6FeEC3n8Ox*wg literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MLSS27140.npy b/app/service/outfit_matcher/color/MLSS27140.npy new file mode 100644 index 0000000000000000000000000000000000000000..4b4e22f65c15634f44d609de7f82ae1a04ef9f4b GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN~%m-^=Kk6pI^AL1g+m;cUwl8Pq~U9z7w69it`m&IN$ tjSYWqe}ntcw3f`L_6PSFueg5vIaJ*tdj>H0VDB0z0z^}xe26GLNdSlgKHdNT literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MLSS27141.npy b/app/service/outfit_matcher/color/MLSS27141.npy new file mode 100644 index 0000000000000000000000000000000000000000..8825b342b823348799e6a1ea52f5450828d58b1c GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCO0GaGTi)hj#5hp8jKs{N?xd3{Ws@CJ4N=S5XNz5o~=1 d75@O2hpB_mAMCepkDPw@>m?lWsH$nf0{}w#GhzS$ literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MLSS27142.npy b/app/service/outfit_matcher/color/MLSS27142.npy new file mode 100644 index 0000000000000000000000000000000000000000..569bacd0804ebe76a8faa9ead687ee9c6e039820 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN~%m-^=Kk6pI^AL1g+m;cV50Sac#1c8_KpZ0lpF|K-K z-@s61^vCD@{;v^EYi`atg`v(9sLJT*F{trp{v4%r=(#zfUH@F{7Ysq|S qe{i4iitERp+uz=n3qtlVdy~JgS_lU3B48c^!*iY`zcw$PZ4Urv`CiKa literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MLSS27145.npy b/app/service/outfit_matcher/color/MLSS27145.npy new file mode 100644 index 0000000000000000000000000000000000000000..d9466d53a4d7698e16dcac6bde2971f1ba566e1b GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN}n+>fTUWInY&xX*aS_2bX&8K7X+Ob~c!-*35g4LjR& z`)T$6*B!QgYkxtCP4OrDt^Mfg5`}vg3xu48>i+;Y2c`}}f3QEwQxm*UeIpKeRMn*L E0CCnsF8}}l literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MLSS27146.npy b/app/service/outfit_matcher/color/MLSS27146.npy new file mode 100644 index 0000000000000000000000000000000000000000..e969945f6e8dd794ddbf580ca6b569e3fd666b6a GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCO0GaGTi)hj#5hp8jKs{N?xd3{Ws@CJ4N=XW(06d2q=q z`y1SkrnO`~wLiGec*XVO&+R9vcmmNOdziZV=L)yi#&3h_{{S}!W*&t8VE>-)K%&f^C0vG`_4Vjl=ggG Lj6)t(H7Ps*NNq=( literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MLSS27148.npy b/app/service/outfit_matcher/color/MLSS27148.npy new file mode 100644 index 0000000000000000000000000000000000000000..79f0daf0589af904963bb508963f0101f7ede6f3 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN~%m-^=Kk6pI^AL1g+m;cV50Sac#1c8_K+!qvDoHjp( zihqF1qpO>9AYRDK`=b4{`v2<=TfeoxAjPKmll|6ybam#nRa1p6_hOg>Q%5ch0Cdwu AFaQ7m literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MLSS27149.npy b/app/service/outfit_matcher/color/MLSS27149.npy new file mode 100644 index 0000000000000000000000000000000000000000..0c76ea6cd2b1b2117b2503535645fa29a50a6f97 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCO0GaGTi)hj#5hp8jKs{N?xd3{Ws@CJ4N=Z)UDc%$WHM ZD*gd3kFM_b4_;gSvzIXBVd`j20{}}MHunGk literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MLSS27150.npy b/app/service/outfit_matcher/color/MLSS27150.npy new file mode 100644 index 0000000000000000000000000000000000000000..19d1d32cd5e0a3a3ee24b4b14bb1f5e25c7760cb GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN~%m-^=Kk6pI^AL1g+m;cUwl8Pq~U9z7w69it`Gl0Pd KC=KBaMiKzL(kv_h literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MLSS27152.npy b/app/service/outfit_matcher/color/MLSS27152.npy new file mode 100644 index 0000000000000000000000000000000000000000..c1f4937d855e062587f0c0b87d7e76646a365e39 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCO0GaGTi)hj#5hp8jKs{N?xd3{Ws@CJ4N=|Lu@?_<+ze dsQ3rCJWL&g{$S5lXIoi!>oN{`RMoWL0RW`GGnD`U literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MLSS27154.npy b/app/service/outfit_matcher/color/MLSS27154.npy new file mode 100644 index 0000000000000000000000000000000000000000..603005f228f9ecfbd1cb9125e9e8d17f8df252cb GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCO0GaGTi)hj#5hp8jKs{N?xd3{Ws@CJ4N=5BOi1z2?aS dsQ3rCJWL&g{$L-^$fLR3>>dtzRMoWL0RVKbGY9|x literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MLSS27156.npy b/app/service/outfit_matcher/color/MLSS27156.npy new file mode 100644 index 0000000000000000000000000000000000000000..aa91d70768f9b298e065841839b39fe252ecb9d9 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCO0GaGTi)hj#5hp8jKs{N?xd3{Ws@CJ4N=cUCL?ds_d6 z{qirZ(-9zoUJwD$~j$vd%mi~SAm oN7Gs|pV}YXXT0M2@#prpx8;Hm+&py-e}@0Z7Qx*Ea~Cce0Q`Y$P5=M^ literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MLSS27157.npy b/app/service/outfit_matcher/color/MLSS27157.npy new file mode 100644 index 0000000000000000000000000000000000000000..49520625d89cc2bab440ec298b944e2e69d721ba GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCO0GaGTi)hj#5hp8jKs{N?xd3{Ws@CJ4N=zrm8(HTB&y z`{iGz&n|!ba({eODU0&?NA|b3<${pCF&I3y_vtz;ueRt2hPp{Aok!g1}3tI6@w#Zm`h+NsA}A literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MLSS27160.npy b/app/service/outfit_matcher/color/MLSS27160.npy new file mode 100644 index 0000000000000000000000000000000000000000..d42b87f9fc4f544c5b88e12d1100c8e6ae14a5d8 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN}n+>fTUWInY&xX*aS_2bX&C#iS>(INX;GeO{`Jp&kg KfYK1&U?c$uvn}iZ literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MLSS27161.npy b/app/service/outfit_matcher/color/MLSS27161.npy new file mode 100644 index 0000000000000000000000000000000000000000..97fe87df54d93605341f6975c7de43cc4a67e307 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCO0GaGTi)hj#5hp8jKs{N?xdx3}ejko~NgAn?-u&_~{^ qUcYztfBu8O{r#(bB3@K&dkt0h+TIup9@{^AtPrm$zS^E)fB*mz;7OAJ literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MLSS27162.npy b/app/service/outfit_matcher/color/MLSS27162.npy new file mode 100644 index 0000000000000000000000000000000000000000..07779abccb77bfd30f54dab5985d7d125cbf52f1 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN}hU#8D4fBbTPY*Z(INX;GeO{`z3>jJ e8vdn^?XjzSWN!=xkL_>ucdfTUWInY&xX*aS_2bX&C#iS>(Ixv?GeO{`Jp&kg KfYK1&U?c$((=Ge} literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MLSS27226.npy b/app/service/outfit_matcher/color/MLSS27226.npy new file mode 100644 index 0000000000000000000000000000000000000000..528253cfb167c23445e1bec3e73e3147b0012d88 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN~0|3TpX{?$GaFRHe^wr7BXSu;W4rTto_WdF*Jm-frQ zOrKr;_~riis8SZ?^N;K&sdxg>BYTLtoAz!q?(V(Ea~OxZOHg$$?ZrwWg+92fhT8+P Hk5U={AtG5H literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MPO_SP7685.npy b/app/service/outfit_matcher/color/MPO_SP7685.npy new file mode 100644 index 0000000000000000000000000000000000000000..02526a63c30c18abf2a161f2fa192cb327a83297 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCJb+F!*2(q0z|?_UE=QKX+K{iT$+t|LYE0zqP+0#isa^ g{nq~5+j4>EHB{dR`{W55k}57;$6*e-xzy(a0Aijt82|tP literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MPO_SP7686.npy b/app/service/outfit_matcher/color/MPO_SP7686.npy new file mode 100644 index 0000000000000000000000000000000000000000..6b1c3bec7715900ee68831b3318a25ee61dd31c8 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCJb+F!*2(q0z|?_PZ8mN3$2au%A}{f8Am0xAqsL*c5-V z-`YP(#S@4gLG^vGcTVmK+I4sboR4bK2m4twLExqR{#_N^i?6P=zrp=zT1)0r`-A(8 nS6n~-98KQ``*gD=^$vrz81~-YmJ39$;pP=c<~+Lcc!oUy@m*t` literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MPO_SP7687.npy b/app/service/outfit_matcher/color/MPO_SP7687.npy new file mode 100644 index 0000000000000000000000000000000000000000..55abfb7210339b495042be7518989eaddb5918ff GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCJb+F!*2(q0z|?_PTb`ORk8$v!7P~f8Am0xAqsL*c5-V z-`WpTIcp{eytJQi%i3{@_e}d++>fTUWInY&u+MnK_2bX?Pg3y&qDN5kKiJ2qRBiTE on_?gEQs4ajvCH=VLtKRU^54PjhndGveuQ5*y&oGeG zZ|$F?;t52L>}SmcftU9G4FzU$=I^t=!To4jOXgGigZqqETtEICYVHTPI?I(24p9yp z?E_xwo4-GH+5Ufsi!fjQJGlKY^P2rV?=M`x0Ina^WgqN~!Qiod0QYWd%iHtq0nn;n AXaE2J literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MPO_SP7693.npy b/app/service/outfit_matcher/color/MPO_SP7693.npy new file mode 100644 index 0000000000000000000000000000000000000000..8ada995e806a8f6234ea06416c98ed9c4dd37a2f GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCJb+F!*2(q0z|?_NQA}S1noi(0=)s>9flpzuX@mRm!4# z{*nFdZMi`7+TIup9@{53$LI5(J8eI${{One)^F`ENUf0GRktrvLx| literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MPO_SP7696.npy b/app/service/outfit_matcher/color/MPO_SP7696.npy new file mode 100644 index 0000000000000000000000000000000000000000..79eb4957bf7dc8c7384265406d98a78ae39c96f8 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCJb+F!*2(q0z|?_BN*6+U0oGeG zZ|%RmEfI=Xp9Q>B-*f80ui=8-u}Pd(+tS-+$Nl+XuYVH-CTZvi<)M7h%5q bcX0b>%>;p$_Gud)%$@SC4K9xEGITxwPo7sE literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MPO_SP7705.npy b/app/service/outfit_matcher/color/MPO_SP7705.npy new file mode 100644 index 0000000000000000000000000000000000000000..845046a481d7875387e617510db400e0e36cce19 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCJb+F!*2(q0z|?_NuB|7xhWJvA@CnXj)6=Q~QJaj8|Mg z{@i|&iYE{~vY#~*1YX+z|8ZrT&gJd)fBu8O{r#(bB3@K&dkr@irfyQ^{B1qA`k~?o Xdtv6m+~eJv|1>3|8?GPSW$1hW#Q|2s literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MPO_SP7706.npy b/app/service/outfit_matcher/color/MPO_SP7706.npy new file mode 100644 index 0000000000000000000000000000000000000000..4dddb95f6df05efe54d47f67e167e30639dc82f3 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCJb+F!*2(q0z|?_C7zHZ5sBxuy0_fGWz55e*c>Yr!_a{ ioZ3H0#S@4g+0U8@0x#_^%6;Jb&wCb!Iq2q6pAP`c$~P_m literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MPO_SP7711.npy b/app/service/outfit_matcher/color/MPO_SP7711.npy new file mode 100644 index 0000000000000000000000000000000000000000..ef3bfe3e596825ae5bcfdbfaf658c419f8eae4cf GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCJb+F!*2(q0z|?_ATr)G|RYN*)RVxeRlcdm;2+RN?DZ8 zKeC^s;t52L?2WCNKshc$u1YX*|5}079N3BKro0Dx*I>@Atona9VS7&M6G@>_wyb%f0&S0i+yZng9R* literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MPO_SP7712.npy b/app/service/outfit_matcher/color/MPO_SP7712.npy new file mode 100644 index 0000000000000000000000000000000000000000..963f9f34da58316acc988fbc9f6fecd7538cd1a3 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCJb+F!*2(q0z|?_WJMJ1k1O-w7EwLQeVllI%5+h_XhZ?gvg&m3+R literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MPO_SP7717.npy b/app/service/outfit_matcher/color/MPO_SP7717.npy new file mode 100644 index 0000000000000000000000000000000000000000..f79ac9bf70921f393d2c278d43292177a8bf4d6f GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCJb+F!*2(q0z|?_H*XtFPwh=x&5^I|LYE0zqP+0#isa^ g{nq|TDxN^}2&(Uc{qaKzdoMU#z+n!$xzy(a07ytQA^-pY literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MPO_SP7722.npy b/app/service/outfit_matcher/color/MPO_SP7722.npy new file mode 100644 index 0000000000000000000000000000000000000000..c1c9592d3254bb17ce39993dae788500ada5ba64 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCJb+F!*2(q0z|?_HDdZ&dvYv+9flpzuX@iRm!4# i{?Y#1+j4>Ewf(G_AaK(D>yz-L1AG^7n1gOE_4xqD6grFm literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MPO_SP7723.npy b/app/service/outfit_matcher/color/MPO_SP7723.npy new file mode 100644 index 0000000000000000000000000000000000000000..e76a9be9f7f62f3202c8fbf31abd2c17c6defaf2 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCJb+F!*2(q0z|?_G}9jZEkIU36;mCj)9?Oro+}2<)ik0 n{)52%{i}TiE zes6z!TP_IM&zcDWFYO=3^Q7B-yJ8>kQs4ajvCH=VLtKRU^54PDg{k{X}{vj^x5T)U+#~MDrHeV z|7id1ZMi`7+J4qd5V&b?RQ&cw^x{MI%c1JxA?o1fLe#yq|D~IInO$NfTpZm-a`^zE CJxk93 literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MPO_SP7731.npy b/app/service/outfit_matcher/color/MPO_SP7731.npy new file mode 100644 index 0000000000000000000000000000000000000000..bc76d71e40c3ad43506ae9c957f382d4acee5d6a GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCJb+F!*2(q0z|?_U^?@pDl!5*-xwgzwWU0Tl))AY>GeG zZ|%RmEf<8K`aalaST5Uqs`n6_4>M_!iYE|VvY#~*1YX*|d1}w-wsZ*&`(V0Arvckw BK>h## literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MPO_SP7732.npy b/app/service/outfit_matcher/color/MPO_SP7732.npy new file mode 100644 index 0000000000000000000000000000000000000000..386747666e114fe9a12068dad82d0f00fd956433 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCJb+F!*2(q0z|?_Ngx>ztP_F*uH_G%IJ^J`~6=doYvf& zbIShqwpfTUWInY&u+MnK_2bX?-`fTUWInY&u+MnK_2bX?-` znfLb7>i@4hZ2i{$f)tzLPxf2;C#iS>(Ifj=GeO{`y~_GC%C~CfK=na%(~|@MJ`O{_ literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MSE_57987.npy b/app/service/outfit_matcher/color/MSE_57987.npy new file mode 100644 index 0000000000000000000000000000000000000000..ed9c678dad4ecf14a4808ea19526552709c4185b GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN}ShAN{!KJWK`jc{6XbIvLI+uL$M$bQyL5O`_N00tkR JG=w)8NdWyBFH`^k literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MSE_57988.npy b/app/service/outfit_matcher/color/MSE_57988.npy new file mode 100644 index 0000000000000000000000000000000000000000..ed9c678dad4ecf14a4808ea19526552709c4185b GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN}ShAN{!KJWK`jc{6XbIvLI+uL$M$bQyL5O`_N00tkR JG=w)8NdWyBFH`^k literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MSE_58044.npy b/app/service/outfit_matcher/color/MSE_58044.npy new file mode 100644 index 0000000000000000000000000000000000000000..00d0b2c4657208242d7626317c7e4e5c39bcd220 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN}ShAN{!KJWLxiEvtTbIz}ejko~NgAn?+j0SrDs JX$WsHk^oZZFUtS` literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MSE_58045.npy b/app/service/outfit_matcher/color/MSE_58045.npy new file mode 100644 index 0000000000000000000000000000000000000000..6824da6574b8bc6052a7f75cca9b7bbecc55c6f5 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN}ShAN{!KJWLxiEvtTbIz}ejko~NgAn?+jL*ewg g`jYqd=;|h^cmmNQsJff>{QqaGaTQFoXBZ#=048xpmjD0& literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MSE_58057.npy b/app/service/outfit_matcher/color/MSE_58057.npy new file mode 100644 index 0000000000000000000000000000000000000000..8587ef235b264fe584a0aab4bb5c490a589c5e63 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN}n+>fTUWInY&xX*aS_2bX&C#iS>(INX;GeO{`y^#73 hwodam_UP(vZ_5QCdt)$oY@c)7?!fTUWInY&xX*aS_2bX&C#iS>(ItChFnDaw00tkR JG=w)8NdRy|E0F*I literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MSE_58106.npy b/app/service/outfit_matcher/color/MSE_58106.npy new file mode 100644 index 0000000000000000000000000000000000000000..d04aa93191edeca855905fc629e72e0b671e531f GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN~%m-^=Kk6pI^AL1g+m;cWG_O@IQvY#~*1YX*22(}fR zpa0zc2KS?BEtya45AHKwasBvnG<7HK1$y`R&3Jjzo&gL#KxqgMnT+w6bK~0j4LIeI I)sn&n0G(=0vj6}9 literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MSE_58107.npy b/app/service/outfit_matcher/color/MSE_58107.npy new file mode 100644 index 0000000000000000000000000000000000000000..420f2f442e455f816f27d53938f18fd40aa8c625 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN~%m-^=Kk6pI^AL1g+m;cWG_O@IQvY#~*1YX+b1wJ~n zr2UqCQn=0RghRXbA5Z@=MgH=8`$;OEKy=8S0SrFaXNT=(%CR^H=R?FXN%1#HdxORH v+uz`RG_57`sr|uy#w)HLe~xDFNqf=Dank=!>?2^_2YYuvyLXNgciRI19wKBO literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MSE_58112.npy b/app/service/outfit_matcher/color/MSE_58112.npy new file mode 100644 index 0000000000000000000000000000000000000000..3ad24e747ead0336401ff728af42cfa89b258c83 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCJb+F!*2(p)tvqeXA#2i+l=|$EEIry$}0z*Ra}s_RGIa zpI!d=<^K4nQWoX&kL+)6%LO60{?i9`^1gh#2SXjq=2Q369+jBnbOWsO*0Oq%2EC2ui literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MSE_58114.npy b/app/service/outfit_matcher/color/MSE_58114.npy new file mode 100644 index 0000000000000000000000000000000000000000..81a8b400bfcb76253f69865fc1c40eab878ac65a GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCJb+F!*2(p)twzDU-K6u6PBN$EEIrz4>k19Sdc)+b{nz oeRlcdm;2+RN?DZ8KeE5QEf<8~`u+Z^Eq0LEiqk$!7Z4``0ER+3SpWb4 literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MSE_58132.npy b/app/service/outfit_matcher/color/MSE_58132.npy new file mode 100644 index 0000000000000000000000000000000000000000..a8e04510dd52cd1941de67f5e66334601099405f GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCO0{U#8D4fBbTPd{ilm^7%*h3{Ws@CJ4N=k2+*``{ApL zQ1K6Nd6+r~{lQ+FaV^Uhp$ql_FZIpeAG>V-Kg30tFaMqWBo$8}dSnkXZ&$?~Mf0`i z?N>nUjfL2|A7&m*UDXAD)4Eyv?32Q6W+xolwf}hfk16t(-`j7`y}d2>_A`59FnDbL MN8f{ekH{{20E-fB6aWAK literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MSE_58133.npy b/app/service/outfit_matcher/color/MSE_58133.npy new file mode 100644 index 0000000000000000000000000000000000000000..966b8ef0387916eedf03a6c3cae439c98e72bb21 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN~0|3TpX{?$GaFRHe^wr7BXSu;W4rM-~N+?!RhkL;7e zZDuDN+O_|9`j08{m*3mp-j)kO_Aqr~iNE!>Jhq?k=E?1j)D?1M{JtH~Lxu)o3mXj)6=Q~QJaj8|Mg{v6HTllHr>e}BFF@j`n5HuHJP literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MSE_58174.npy b/app/service/outfit_matcher/color/MSE_58174.npy new file mode 100644 index 0000000000000000000000000000000000000000..1bbfbe0a419076f4710d0d3116b37233af930f35 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCJb+F!*2(q0z|?_TP1ikA&zywNDDSnVoQG*Z$+_Kc>iE beh*haYbFT1v=>??Ssu3VDqI}hBwF(UeNr;( literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MSE_58183.npy b/app/service/outfit_matcher/color/MSE_58183.npy new file mode 100644 index 0000000000000000000000000000000000000000..ac0e8b27ebdd7d3fecbf793972df1af713efc08b GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN}ShAN{!KJWLxiEvtTbIz}ejko~NgAaK+EeOF8y z+tP>jfBu8O{r#(bB3@K&du`7E1rT*F?Zu+jUj3?Y6)OG#E)P=&qm>^|t`)wqg@C#b T_I$gRd_4Gl5l(Yp=D}zHHAYk^ literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MSE_58184.npy b/app/service/outfit_matcher/color/MSE_58184.npy new file mode 100644 index 0000000000000000000000000000000000000000..5cbe32b7d4856b3065b6530fca83c50ee5bf90cc GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN}ShAN{!KJWLxiEvtTbIz&#lTD%TP_Ge?LBFqwchHVkHHe0=E2!_0I3^n9{>OV literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MSE_58185.npy b/app/service/outfit_matcher/color/MSE_58185.npy new file mode 100644 index 0000000000000000000000000000000000000000..1fe2aabaf78fee68e25e8c5b4292c6e4e7531d94 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN}ShAN{!KJWLxiEvtTbIz}ejko~NgAaK&&C%Q;3 z)!~VKQn=0RghRXbA5Z@=MgH=8dj=?gsC#K2p8u(Wzws(m`~zGbrVc`Xu;*XcyC~(+ Md>rzqs!8Di09vIr$}K?++{P!N;veAhFm(|6gZ=qU|2L>k MK7m6XRW&I*05ro(8vp&DZsQDTa9vdoRJ&%`iwj)WW&g9sno;T=M_` literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MSE_58198.npy b/app/service/outfit_matcher/color/MSE_58198.npy new file mode 100644 index 0000000000000000000000000000000000000000..ff4a5f6cbdb3085022aaf5291476a2c3c83a9a21 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCJb+F!*2(p)pBTq4}w6K0UGzc&Tsx{@7*v{~<2IeEIL} zC#iS>(INX;GeO{`z05KO>F(02P;+pZ_rc!b$?4*P=oR)ixF1bx$$V;maG&vt>&Ktl a-`M literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MSE_58199.npy b/app/service/outfit_matcher/color/MSE_58199.npy new file mode 100644 index 0000000000000000000000000000000000000000..647c4d5af04880ea643eef25fc5294240820df0e GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCJb+F!*2(p)tu*lYYKP61i_5@KWFW{jtmT|3h4a`SRb{ zPg3y&qC@txW`e*=d&kCD(Qngk+uz`RG_57`sr|uy#w)HLe{O$!TP_Ge)t$7zxPCF) OoS>~Z?Zb2daUuYk>P!&; literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MSE_58203.npy b/app/service/outfit_matcher/color/MSE_58203.npy new file mode 100644 index 0000000000000000000000000000000000000000..93e5010e921f18cc1cf0e26c115ba96392c5eefd GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= mXCxM+0{I%IItr$mItsN4WCJb+F!*2(p>dIf(IL2bk|t55 v9T{uwZ*V`F){^28KAB_B00tkRG=zstPFpH> ObAs3uobt$OL2Lk8$77!W literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MSE_58276.npy b/app/service/outfit_matcher/color/MSE_58276.npy new file mode 100644 index 0000000000000000000000000000000000000000..19b266b9689c4a3bc83b0dfb207f13b839c37233 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN}ShAN{!KJWLxiEvtTbIz&#lTMKo l&&Rj+=<2rT-rkmb`t=gdBG|V9zi>004U@NHYKc literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MSE_58361.npy b/app/service/outfit_matcher/color/MSE_58361.npy new file mode 100644 index 0000000000000000000000000000000000000000..93e5010e921f18cc1cf0e26c115ba96392c5eefd GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= mXCxM+0{I%IItr$mItsN4WCJb+F!*2(p>dIf~;kx1r*g=0Vimv^UMpbX4M84%d%vBe{G4riwj2 literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MSE_58451.npy b/app/service/outfit_matcher/color/MSE_58451.npy new file mode 100644 index 0000000000000000000000000000000000000000..93e5010e921f18cc1cf0e26c115ba96392c5eefd GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= mXCxM+0{I%IItr$mItsN4WCJb+F!*2(p>dIfz~{0Snqz^8f$< literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MSE_58499.npy b/app/service/outfit_matcher/color/MSE_58499.npy new file mode 100644 index 0000000000000000000000000000000000000000..d1d0fb36f6fbeab258962152b4c51a0d0b1b3daf GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCO0GaGTi)hj#5hp8jKs{N?xdlTiE qeh*haYbFT1wEwc?&A!*S&p^d-na9A8yS(UAV8txBesmkjI{;@!-qptcU`v!(8qdz|H_rHm7T61&Gsr{2w ZJb~ztJdIffTUWInY&xX*aS_2bX&C#iS>(Ifj=GeO{_Jp&kg KfYK1&U?c$vvn}iZ literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MWSS27191.npy b/app/service/outfit_matcher/color/MWSS27191.npy new file mode 100644 index 0000000000000000000000000000000000000000..4138f1ba88a6e28444d689c4ed76d9a4214315d4 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN~%m-^=Kk6pI^AL1g+m;cUwl8Pq~9kQP_69it`Gl0Pd KC=KBaMiKzAvMd|` literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MWSS27193.npy b/app/service/outfit_matcher/color/MWSS27193.npy new file mode 100644 index 0000000000000000000000000000000000000000..4b2eeedc956662c9d55d505a25c4b9f44c2794d8 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN}n+>fTUWInY&xX*aS_2bX&C#iS>(INX;GeO{`z1o~N zt0yjbV;}HR-~9ct%l7|6T!i`Z-`U^ZmJ32~bsel}vR$HE>>0q|1C)mF5ab7Yq0}op Oi^ON+kVmK_l?4D`>q_qc literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MWSS27195.npy b/app/service/outfit_matcher/color/MWSS27195.npy new file mode 100644 index 0000000000000000000000000000000000000000..4436f185966250cdb207bdbab5ccec17ce338484 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN~%m-^=Kk6pI^AL1g+m;cV50Sac#1c8_Ko0F%ftoM9l uzx>Pe+2xO4?vIZuWl=u=$o}@WToAH{sJm&O^~mLR%ci|>{V;RrMFRkHMMIbX literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MWSS27200.npy b/app/service/outfit_matcher/color/MWSS27200.npy new file mode 100644 index 0000000000000000000000000000000000000000..8c7706f73112dd55beee115f9a4edc3116b930cd GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN}n+>fTUWInY&xX*aS_2bX&8K7X+Ob~c!ue$aB*_nIZ dLB&77eikc_6%U~0ZK!7$mCH~=M8;k MJ8{Y*t0jdE0G8!Tod5s; literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MWSS27211.npy b/app/service/outfit_matcher/color/MWSS27211.npy new file mode 100644 index 0000000000000000000000000000000000000000..e13311af3ffefea045820e4507b95133ca9fc09b GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN~%m-^=Kk6pI^AL1g+m;cWG_O@IQvY#~*1YX)RfWZeS J4dD$&5&$g`E;9fC literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MWSS27212.npy b/app/service/outfit_matcher/color/MWSS27212.npy new file mode 100644 index 0000000000000000000000000000000000000000..eec3e8284624c62fa77ad3ab1c033ef9a47f05e4 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCJb+F!*2(p&1x%Z_5QC`&lzV;HCZD=e*}zB3{~0tN*|5 hu=QK}3sP)~KiO~XM_1RKaN_Wrxu@Xfz|5l;4FFQ$LXZFe literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MZOS27178.npy b/app/service/outfit_matcher/color/MZOS27178.npy new file mode 100644 index 0000000000000000000000000000000000000000..93d0886fdad0305681f9b14f366565e81ab4a591 GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN}ShAN{!KJWK`jc{6XbIvJy1~B+wKWiokoU}jMw4WtV w`Mv$}FVkn2KYqDCKB|;O`TQgM+uL%1=rvT`P5aR0{2BMB&W7rTm_kny07kDwbN~PV literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/color/MZOS27179.npy b/app/service/outfit_matcher/color/MZOS27179.npy new file mode 100644 index 0000000000000000000000000000000000000000..24a3d23d0f286b5cf7665128eb64aea19f9c1b5f GIT binary patch literal 328 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%IItr$mItsN4WCN}n+>fTUWInY&xX*aS_2bX&Z*R*5A$wymcx=xA1|Og_ Igf|#T0N`^im;e9( literal 0 HcmV?d00001 diff --git a/app/service/outfit_matcher/config/fashion_categories.json b/app/service/outfit_matcher/config/fashion_categories.json new file mode 100644 index 0000000..9c3c12a --- /dev/null +++ b/app/service/outfit_matcher/config/fashion_categories.json @@ -0,0 +1,242 @@ +[ + "ACCECSSORY/BAG", + "ACCECSSORY/HAT", + "ACCESSORY/ACCESSORY", + "ACCESSORY/BAG", + "ACCESSORY/BELT", + "ACCESSORY/BOOTS", + "ACCESSORY/BANGLE", + "ACCESSORY/COMBO SET", + "ACCESSORY/BRACELET", + "ACCESSORY/BRA TOP", + "ACCESSORY/BIB", + "ACCESSORY/GIFT", + "ACCESSORY/FESTIVAL SET", + "ACCESSORY/CAPE", + "ACCESSORY/BLANKET", + "ACCESSORY/HAIR BAND", + "ACCESSORY/GLOVES", + "ACCESSORY/FUR SCARF", + "ACCESSORY/BROOCH", + "ACCESSORY/HAT", + "ACCESSORY/HAIR CLIPS", + "ACCESSORY/SCARF", + "ACCESSORY/CLIP", + "ACCESSORY/HEAD BAND", + "ACCESSORY/NECKLACE", + "ACCESSORY/SOCKS", + "ACCESSORY/EARING", + "ACCESSORY/KEYRING", + "ACCESSORY/OTHERS", + "ACCESSORY/TOY", + "ACCESSORY/HAIR CLIP", + "ACCESSORY/RING", + "ACCESSORY/SANDALS", + "ACCESSORY/SUN GLASS", + "ACCESSORY/MASK", + "ACCESSORY/Test Kit", + "ACCESSORY/MUG", + "ACCESSORY/TOWEL", + "ACCESSORY/SCARF TOP", + "ACCESSORY/SHOES", + "ACCESSORY/SWIMSUIT", + "ACCESSORY/TIE", + "BOTTOM/BOTTOM", + "BOTTOM/CAPRI", + "BOTTOM/", + "BOTTOM/COAT", + "BOTTOM/CARDIGAN", + "BOTTOM/JEANS SHORTS", + "BOTTOM/BOOTS", + "BOTTOM/JEANS", + "BOTTOM/CARPI", + "BOTTOM/JUMPSUIT", + "BOTTOM/JEANS SKIRT", + "BOTTOM/JEANS CARPI", + "BOTTOM/JACKET", + "BOTTOM/LEATHER JACKET", + "BOTTOM/LEATHER PANTS", + "BOTTOM/JEANS PANTS", + "BOTTOM/PANTS", + "BOTTOM/LEATHER SHORTS", + "BOTTOM/LEATHER SKIRT", + "BOTTOM/OVERALL", + "BOTTOM/SHORTS", + "BOTTOM/LEGGING", + "BOTTOM/UNDERWEAR", + "BOTTOM/SKIRT", + "BOTTOM/TUTA", + "BOTTOM/SANDALS", + "BOTTOM/TEE", + "BOTTOM/SHOES", + "BOTTOM/SPORTSWEAR PANTS", + "BOTTON/PANTS", + "DRESS/JEANS JACKET", + "DRESS/", + "DRESS/ONE PIECE", + "DRESS/DRESS", + "DRESS/LEATHER DRESS", + "DRESS/JEANS SKIRT", + "DRESS/OVERALL", + "DRESS/EVENING DRESS", + "DRESS/SKIRT", + "DRESS/LEATHER SKIRT", + "DRESS/JEANS DRESS", + "DRESS/SHORTS", + "DRESS/JUMPSUIT", + "DRESS/VEST", + "DRESS/SHIRT", + "DRESS/TUTA", + "FUR/DOWN COAT", + "FUR/HAT", + "FUR/FUR CAPE", + "FUR/FUR COAT", + "FUR/FUR DOWN JACKET", + "FUR/FUR GILET", + "FUR/FUR CARDIGAN", + "FUR/FUR JACKET", + "FUR/FUR HAT", + "FUR/FUR SCARF", + "FUR/FUR VEST", + "GIFT/GIFT", + "GIFT/SCARF", + "JEANS/GILET", + "JEANS/JEANS CARPI", + "JEANS/DRESS", + "JEANS/JEANS BLOUSE", + "JEANS/JEANS", + "JEANS/JEANS OVERALL", + "JEANS/JEANS BLAZER", + "JEANS/JEANS DRESS", + "JEANS/SHIRT", + "JEANS/JEANS SHORTS", + "JEANS/JEANS GILET", + "JEANS/JEANS JACKET", + "JEANS/SKIRT", + "JEANS/TWIN SET", + "JEANS/JEANS PANTS", + "JEANS/JEANS SHIRT", + "JEANS/JEANS SKIRT", + "JEANS/JEANS VEST", + "JEANS/JEANS TOP", + "JEANS/OVERALL", + "JEANS/PANTS", + "JEANS/SHORTS", + "KNIT/CARDGAIN", + "KNIT/ONE PIECE", + "KNIT/CARDIGAN", + "KNIT/BRA TOP", + "KNIT/JACKET", + "KNIT/PULLOVER", + "KNIT/DRESS", + "KNIT/CAPE", + "KNIT/KNIT TOP", + "KNIT/CARDGIAN", + "KNIT/PANTS", + "KNIT/GILET", + "KNIT/LONG TOP", + "KNIT/SKIRT", + "KNIT/SHORTS", + "KNIT/SWEATER", + "KNIT/SWEATPR", + "KNIT/VEST", + "KNIT/TANK", + "KNIT/TOP", + "KNIT/TUTA", + "KNIT/TWIN SET", + "LEATHER/BLAZER", + "LEATHER/LEATHER BLAZER", + "LEATHER/LEATHER COAT", + "LEATHER/LEATHER PANTS", + "LEATHER/HAT", + "LEATHER/LEATHER BLOUSE", + "LEATHER/LEATHER DRESS", + "LEATHER/LEATHER SHORTS", + "LEATHER/LEATHER SKIRT", + "LEATHER/LEATHER GILET", + "LEATHER/LEATHER JACKET", + "LEATHER/LEATHER VEST", + "LEATHER/LEATHERSKIRT", + "LEATHER/LEATHERSHIRT", + "LEATHER/LEATHER TOP", + "ONE PIECE/BODYSUIT", + "ONE PIECE/COMBO SET", + "ONE PIECE/BODY", + "ONE PIECE/JUMPSUIT", + "ONE PIECE/DRESS", + "ONE PIECE/OVERALL", + "ONE PIECE/SWIMSUIT", + "ONE PIECE/TWIN SET", + "OUTERWEAR/CARDIGAN", + "OUTERWEAR/BLAZER", + "OUTERWEAR/DOWN COAT", + "OUTERWEAR/", + "OUTERWEAR/DOWN JACKET", + "OUTERWEAR/COAT", + "OUTERWEAR/DOWN GILET", + "OUTERWEAR/CAPE", + "OUTERWEAR/DOWN VEST", + "OUTERWEAR/FUR JACKET", + "OUTERWEAR/FUR VEST", + "OUTERWEAR/CAPE COAT", + "OUTERWEAR/LEATHER VEST", + "OUTERWEAR/PULLOVER", + "OUTERWEAR/GILET", + "OUTERWEAR/FUR COAT", + "OUTERWEAR/QUILTED JACKET", + "OUTERWEAR/SPORTSWEAR JACKET", + "OUTERWEAR/JACKET", + "OUTERWEAR/FUR GILET", + "OUTERWEAR/SHIRT", + "OUTERWEAR/TWIN SET", + "OUTERWEAR/LEATHER GILET", + "OUTERWEAR/JEANS JACKET", + "OUTERWEAR/TRENCH COAT", + "OUTERWEAR/LEATHER COAT", + "OUTERWEAR/ONE PIECE", + "OUTERWEAR/LEATHER JACKET", + "OUTERWEAR/SCARF", + "OUTERWEAR/SOCKS", + "OUTERWEAR/TOP", + "OUTERWEAR/UNIFORM", + "OUTERWEAR/VEST", + "OUTERWEAR/WINDBREAKER", + "OUTERWEAR/WINDERBREAKER", + "OUTPRWEAR/BLAZER", + "SHOES/PUMPS", + "SHOES/BOOTS", + "SHOES/SHOES", + "SHOES/SANDALS", + "TOP/BLOUSE", + "TOP/BLAZER", + "TOP/BAR TOP", + "TOP/BRA TOP", + "TOP/CARDIGAN", + "TOP/BODY", + "TOP/COAT", + "TOP/PANTS", + "TOP/DOWN VEST", + "TOP/JACKET", + "TOP/GILET", + "TOP/TWIN SET", + "TOP/LONG SLEEVES TEE", + "TOP/LONG TOP", + "TOP/KNIT TOP", + "TOP/VEST", + "TOP/ONE PIECE", + "TOP/TANK", + "TOP/PULLOVER", + "TOP/TOP", + "TOP/OVERALL", + "TOP/UNDERWEAR", + "TOP/SKIRT", + "TOP/UNIFORM", + "TOP/SHIRT", + "TOP/SWEATER", + "TOP/TUTA", + "TOP/TEE", + "TOP/TUNIC", + "TUTA/OVERALL", + "TUTA/TWIN SET", + "TUTA/TUTA" +] \ No newline at end of file diff --git a/app/service/outfit_matcher/config/fashion_category_mapping.json b/app/service/outfit_matcher/config/fashion_category_mapping.json new file mode 100644 index 0000000..abdb4be --- /dev/null +++ b/app/service/outfit_matcher/config/fashion_category_mapping.json @@ -0,0 +1,242 @@ +{ + "ACCECSSORY/BAG": "bags", + "ACCECSSORY/HAT": "hats", + "ACCESSORY/ACCESSORY": "accessories", + "ACCESSORY/BAG": "bags", + "ACCESSORY/BELT": "accessories", + "ACCESSORY/BOOTS": "shoes", + "ACCESSORY/BANGLE": "accessories", + "ACCESSORY/COMBO SET": "accessories", + "ACCESSORY/BRACELET": "accessories", + "ACCESSORY/BRA TOP": "tops", + "ACCESSORY/BIB": "accessories", + "ACCESSORY/GIFT": "accessories", + "ACCESSORY/FESTIVAL SET": "accessories", + "ACCESSORY/CAPE": "outerwear", + "ACCESSORY/BLANKET": "accessories", + "ACCESSORY/HAIR BAND": "accessories", + "ACCESSORY/GLOVES": "accessories", + "ACCESSORY/FUR SCARF": "accessories", + "ACCESSORY/BROOCH": "accessories", + "ACCESSORY/HAT": "hats", + "ACCESSORY/HAIR CLIPS": "accessories", + "ACCESSORY/SCARF": "scarves", + "ACCESSORY/CLIP": "accessories", + "ACCESSORY/HEAD BAND": "accessories", + "ACCESSORY/NECKLACE": "jewellery", + "ACCESSORY/SOCKS": "accessories", + "ACCESSORY/EARING": "jewellery", + "ACCESSORY/KEYRING": "accessories", + "ACCESSORY/OTHERS": "accessories", + "ACCESSORY/TOY": "accessories", + "ACCESSORY/HAIR CLIP": "accessories", + "ACCESSORY/RING": "jewellery", + "ACCESSORY/SANDALS": "shoes", + "ACCESSORY/SUN GLASS": "sunglasses", + "ACCESSORY/MASK": "accessories", + "ACCESSORY/Test Kit": "accessories", + "ACCESSORY/MUG": "accessories", + "ACCESSORY/TOWEL": "accessories", + "ACCESSORY/SCARF TOP": "scarves", + "ACCESSORY/SHOES": "shoes", + "ACCESSORY/SWIMSUIT": "all-body", + "ACCESSORY/TIE": "accessories", + "BOTTOM/BOTTOM": "bottoms", + "BOTTOM/CAPRI": "bottoms", + "BOTTOM/": "bottoms", + "BOTTOM/COAT": "outerwear", + "BOTTOM/CARDIGAN": "outerwear", + "BOTTOM/JEANS SHORTS": "bottoms", + "BOTTOM/BOOTS": "shoes", + "BOTTOM/JEANS": "bottoms", + "BOTTOM/CARPI": "bottoms", + "BOTTOM/JUMPSUIT": "all-body", + "BOTTOM/JEANS SKIRT": "bottoms", + "BOTTOM/JEANS CARPI": "bottoms", + "BOTTOM/JACKET": "outerwear", + "BOTTOM/LEATHER JACKET": "outerwear", + "BOTTOM/LEATHER PANTS": "bottoms", + "BOTTOM/JEANS PANTS": "bottoms", + "BOTTOM/PANTS": "bottoms", + "BOTTOM/LEATHER SHORTS": "bottoms", + "BOTTOM/LEATHER SKIRT": "bottoms", + "BOTTOM/OVERALL": "all-body", + "BOTTOM/SHORTS": "bottoms", + "BOTTOM/LEGGING": "bottoms", + "BOTTOM/UNDERWEAR": "bottoms", + "BOTTOM/SKIRT": "bottoms", + "BOTTOM/TUTA": "all-body", + "BOTTOM/SANDALS": "shoes", + "BOTTOM/TEE": "tops", + "BOTTOM/SHOES": "shoes", + "BOTTOM/SPORTSWEAR PANTS": "bottoms", + "BOTTON/PANTS": "bottoms", + "DRESS/JEANS JACKET": "outerwear", + "DRESS/": "all-body", + "DRESS/ONE PIECE": "all-body", + "DRESS/DRESS": "all-body", + "DRESS/LEATHER DRESS": "all-body", + "DRESS/JEANS SKIRT": "bottoms", + "DRESS/OVERALL": "all-body", + "DRESS/EVENING DRESS": "all-body", + "DRESS/SKIRT": "bottoms", + "DRESS/LEATHER SKIRT": "bottoms", + "DRESS/JEANS DRESS": "all-body", + "DRESS/SHORTS": "bottoms", + "DRESS/JUMPSUIT": "all-body", + "DRESS/VEST": "tops", + "DRESS/SHIRT": "tops", + "DRESS/TUTA": "all-body", + "FUR/DOWN COAT": "outerwear", + "FUR/HAT": "hats", + "FUR/FUR CAPE": "outerwear", + "FUR/FUR COAT": "outerwear", + "FUR/FUR DOWN JACKET": "outerwear", + "FUR/FUR GILET": "outerwear", + "FUR/FUR CARDIGAN": "outerwear", + "FUR/FUR JACKET": "outerwear", + "FUR/FUR HAT": "hats", + "FUR/FUR SCARF": "accessories", + "FUR/FUR VEST": "outerwear", + "GIFT/GIFT": "accessories", + "GIFT/SCARF": "accessories", + "JEANS/GILET": "outerwear", + "JEANS/JEANS CARPI": "bottoms", + "JEANS/DRESS": "all-body", + "JEANS/JEANS BLOUSE": "tops", + "JEANS/JEANS": "bottoms", + "JEANS/JEANS OVERALL": "all-body", + "JEANS/JEANS BLAZER": "outerwear", + "JEANS/JEANS DRESS": "all-body", + "JEANS/SHIRT": "tops", + "JEANS/JEANS SHORTS": "bottoms", + "JEANS/JEANS GILET": "outerwear", + "JEANS/JEANS JACKET": "outerwear", + "JEANS/SKIRT": "bottoms", + "JEANS/TWIN SET": "all-body", + "JEANS/JEANS PANTS": "bottoms", + "JEANS/JEANS SHIRT": "tops", + "JEANS/JEANS SKIRT": "bottoms", + "JEANS/JEANS VEST": "outerwear", + "JEANS/JEANS TOP": "tops", + "JEANS/OVERALL": "all-body", + "JEANS/PANTS": "bottoms", + "JEANS/SHORTS": "bottoms", + "KNIT/CARDGAIN": "outerwear", + "KNIT/ONE PIECE": "all-body", + "KNIT/CARDIGAN": "outerwear", + "KNIT/BRA TOP": "tops", + "KNIT/JACKET": "outerwear", + "KNIT/PULLOVER": "tops", + "KNIT/DRESS": "all-body", + "KNIT/CAPE": "outerwear", + "KNIT/KNIT TOP": "tops", + "KNIT/CARDGIAN": "outerwear", + "KNIT/PANTS": "bottoms", + "KNIT/GILET": "outerwear", + "KNIT/LONG TOP": "tops", + "KNIT/SKIRT": "bottoms", + "KNIT/SHORTS": "bottoms", + "KNIT/SWEATER": "tops", + "KNIT/SWEATPR": "tops", + "KNIT/VEST": "outerwear", + "KNIT/TANK": "tops", + "KNIT/TOP": "tops", + "KNIT/TUTA": "all-body", + "KNIT/TWIN SET": "all-body", + "LEATHER/BLAZER": "outerwear", + "LEATHER/LEATHER BLAZER": "outerwear", + "LEATHER/LEATHER COAT": "outerwear", + "LEATHER/LEATHER PANTS": "bottoms", + "LEATHER/HAT": "hats", + "LEATHER/LEATHER BLOUSE": "tops", + "LEATHER/LEATHER DRESS": "all-body", + "LEATHER/LEATHER SHORTS": "bottoms", + "LEATHER/LEATHER SKIRT": "bottoms", + "LEATHER/LEATHER GILET": "outerwear", + "LEATHER/LEATHER JACKET": "outerwear", + "LEATHER/LEATHER VEST": "outerwear", + "LEATHER/LEATHERSKIRT": "bottoms", + "LEATHER/LEATHERSHIRT": "tops", + "LEATHER/LEATHER TOP": "tops", + "ONE PIECE/BODYSUIT": "all-body", + "ONE PIECE/COMBO SET": "all-body", + "ONE PIECE/BODY": "all-body", + "ONE PIECE/JUMPSUIT": "all-body", + "ONE PIECE/DRESS": "all-body", + "ONE PIECE/OVERALL": "all-body", + "ONE PIECE/SWIMSUIT": "all-body", + "ONE PIECE/TWIN SET": "all-body", + "OUTERWEAR/CARDIGAN": "outerwear", + "OUTERWEAR/BLAZER": "outerwear", + "OUTERWEAR/DOWN COAT": "outerwear", + "OUTERWEAR/": "outerwear", + "OUTERWEAR/DOWN JACKET": "outerwear", + "OUTERWEAR/COAT": "outerwear", + "OUTERWEAR/DOWN GILET": "outerwear", + "OUTERWEAR/CAPE": "outerwear", + "OUTERWEAR/DOWN VEST": "outerwear", + "OUTERWEAR/FUR JACKET": "outerwear", + "OUTERWEAR/FUR VEST": "outerwear", + "OUTERWEAR/CAPE COAT": "outerwear", + "OUTERWEAR/LEATHER VEST": "outerwear", + "OUTERWEAR/PULLOVER": "outerwear", + "OUTERWEAR/GILET": "outerwear", + "OUTERWEAR/FUR COAT": "outerwear", + "OUTERWEAR/QUILTED JACKET": "outerwear", + "OUTERWEAR/SPORTSWEAR JACKET": "outerwear", + "OUTERWEAR/JACKET": "outerwear", + "OUTERWEAR/FUR GILET": "outerwear", + "OUTERWEAR/SHIRT": "tops", + "OUTERWEAR/TWIN SET": "all-body", + "OUTERWEAR/LEATHER GILET": "outerwear", + "OUTERWEAR/JEANS JACKET": "outerwear", + "OUTERWEAR/TRENCH COAT": "outerwear", + "OUTERWEAR/LEATHER COAT": "outerwear", + "OUTERWEAR/ONE PIECE": "all-body", + "OUTERWEAR/LEATHER JACKET": "outerwear", + "OUTERWEAR/SCARF": "accessories", + "OUTERWEAR/SOCKS": "accessories", + "OUTERWEAR/TOP": "tops", + "OUTERWEAR/UNIFORM": "outerwear", + "OUTERWEAR/VEST": "outerwear", + "OUTERWEAR/WINDBREAKER": "outerwear", + "OUTERWEAR/WINDERBREAKER": "outerwear", + "OUTPRWEAR/BLAZER": "outerwear", + "SHOES/PUMPS": "shoes", + "SHOES/BOOTS": "shoes", + "SHOES/SHOES": "shoes", + "SHOES/SANDALS": "shoes", + "TOP/BLOUSE": "tops", + "TOP/BLAZER": "outerwear", + "TOP/BAR TOP": "tops", + "TOP/BRA TOP": "tops", + "TOP/CARDIGAN": "outerwear", + "TOP/BODY": "all-body", + "TOP/COAT": "outerwear", + "TOP/PANTS": "bottoms", + "TOP/DOWN VEST": "outerwear", + "TOP/JACKET": "outerwear", + "TOP/GILET": "outerwear", + "TOP/TWIN SET": "tops", + "TOP/LONG SLEEVES TEE": "tops", + "TOP/LONG TOP": "tops", + "TOP/KNIT TOP": "tops", + "TOP/VEST": "outerwear", + "TOP/ONE PIECE": "all-body", + "TOP/TANK": "tops", + "TOP/PULLOVER": "outerwear", + "TOP/TOP": "tops", + "TOP/OVERALL": "all-body", + "TOP/UNDERWEAR": "bottoms", + "TOP/SKIRT": "bottoms", + "TOP/UNIFORM": "tops", + "TOP/SHIRT": "tops", + "TOP/SWEATER": "tops", + "TOP/TUTA": "all-body", + "TOP/TEE": "tops", + "TOP/TUNIC": "tops", + "TUTA/OVERALL": "all-body", + "TUTA/TWIN SET": "all-body", + "TUTA/TUTA": "all-body" +} \ No newline at end of file diff --git a/app/service/outfit_matcher/dataset.py b/app/service/outfit_matcher/dataset.py new file mode 100644 index 0000000..4789920 --- /dev/null +++ b/app/service/outfit_matcher/dataset.py @@ -0,0 +1,140 @@ +import json +import random +import itertools +import difflib +from copy import deepcopy + + +# Helper function to calculate the edit distance similarity between two file names +def sim_score(a, b): + return difflib.SequenceMatcher(None, a, b).ratio() + + +class FashionDataset(object): + fashion_categories = json.load(open(r"config/fashion_categories.json", "r")) + fashion_categories_mapping = json.load(open(r"config/fashion_category_mapping.json", "r")) + + def __init__(self, item_metadata): + self.item_metadat = item_metadata + self.item2cate = self.get_item2cate(item_metadata) + self.cate2item = self.get_cate2item(item_metadata) + self.cate2num = {k: len(v) for k, v in self.cate2item.items()} + + # def generate_outfit(self, query_item, topk, max_outfits): + # query_item["mapped_cate"] = self.fashion_categories_mapping[query_item["semantic_category"]] + # possible_outfits = self.count_possible(query_item["mapped_cate"]) + # + # if possible_outfits < topk: + # raise ValueError(f"Cannot generate more than {topk} outfits!") + # + # outfit_list = self.get_possible_outfit(query_item) + # if possible_outfits > max_outfits: + # outfit_list = random.sample(outfit_list, max_outfits) + # return outfit_list + + def count_possible(self, given_cate): + possible = 0 + if given_cate == 'tops': + if self.cate2num['outerwear'] == 0: + possible = self.cate2num['bottoms'] + else: + possible = self.cate2num['bottoms'] * self.cate2num['outerwear'] + elif given_cate == 'bottoms': + if self.cate2num['outerwear'] == 0: + possible = self.cate2num['tops'] + else: + possible = self.cate2num['tops'] * self.cate2num['outerwear'] + elif given_cate == 'outerwear': + possible = self.cate2num['tops'] * self.cate2num['bottoms'] + self.cate2num['all-body'] + elif given_cate == 'all-body': + possible = self.cate2num['outerwear'] + return possible + + def generate_outfit(self, query_item, topk, max_outfits): + query_item["mapped_cate"] = self.fashion_categories_mapping[query_item["semantic_category"]] + given_cate = query_item["mapped_cate"] + + if given_cate == 'tops' or given_cate == "bottoms": + complementary_cate = "bottoms" if given_cate == "tops" else "tops" + # check bottom num + if not self.cate2num[complementary_cate]: + raise ValueError(f"Not enough {complementary_cate} available to generate outfits.") + + complementary_items = deepcopy(self.cate2item[complementary_cate]) + sim_scores = [sim_score(item["item_name"], query_item["item_name"]) for item in complementary_items] + outfit_list = [] + used_items = set() + + while len(outfit_list) < max_outfits: + if not complementary_items: + break + + # 根据权重从bottoms中选择一个元素 + item_index = random.choices(range(len(complementary_items)), weights=sim_scores)[0] + item = complementary_items.pop(item_index) + sim_scores.pop(item_index) + + if item["item_name"] not in used_items: + used_items.add(item["item_name"]) + outfit = [query_item, item] + outfit_list.append(tuple(outfit)) + + # 20% chance to include an outerwear + if self.cate2num['outerwear'] > 0 and random.random() < 0.2: + outerwear = random.choice(self.cate2item['outerwear']) + outfit.append(outerwear) + outfit_list.append(tuple(outfit)) + if len(outfit_list) < topk: + raise ValueError(f"Cannot generate more than {topk} outfits!") + + return outfit_list + elif given_cate == 'outerwear': + top_bottom_combination = [(x[0], x[1]) for x in + itertools.product(self.cate2item['tops'], self.cate2item['bottoms'])] + sim_scores = [sim_score(x[0]["item_name"], x[1]["item_name"]) for x in top_bottom_combination] + outfit_list = [] + used_items = set() + + while len(outfit_list) < max_outfits: + if not top_bottom_combination: + break + + # 根据权重从top bottom的组合中选择一个,根据top和bottom之间的文件名相似度选择 + top_bottom_index = random.choices(range(len(top_bottom_combination)), weights=sim_scores)[0] + top_bottom = top_bottom_combination.pop(top_bottom_index) + sim_scores.pop(top_bottom_index) + + top_name, bottom_name = top_bottom[0]["item_name"], top_bottom[1]["item_name"] + if top_name + bottom_name not in used_items: + used_items.add(top_name + bottom_name) + outfit = [query_item] + list(top_bottom) + outfit_list.append(tuple(outfit)) + + if len(outfit_list) < topk: + raise ValueError(f"Cannot generate more than {topk} outfits!") + + return outfit_list + elif given_cate == 'all-body': + outfit_list = [(query_item, x) for x in self.cate2item['outerwear']] + return outfit_list + + + def get_item2cate(self, item_metadata): + item2cate = {} + for metadata in item_metadata: + cate = metadata["semantic_category"] + mapped_cate = self.fashion_categories_mapping[cate] + item2cate[metadata["item_name"]] = mapped_cate + return item2cate + + def get_cate2item(self, item_metadata): + cate2item = {} + for metadata in item_metadata: + cate = metadata["semantic_category"] + mapped_cate = self.fashion_categories_mapping[cate] + metadata["mapped_cate"] = mapped_cate + if mapped_cate not in cate2item.keys(): + cate2item[mapped_cate] = [metadata] + else: + cate2item[mapped_cate].append(metadata) + return cate2item diff --git a/app/service/outfit_matcher_hon/foco.py b/app/service/outfit_matcher/foco.py similarity index 100% rename from app/service/outfit_matcher_hon/foco.py rename to app/service/outfit_matcher/foco.py diff --git a/app/service/outfit_matcher/outfit_evaluator.py b/app/service/outfit_matcher/outfit_evaluator.py new file mode 100644 index 0000000..538eba2 --- /dev/null +++ b/app/service/outfit_matcher/outfit_evaluator.py @@ -0,0 +1,184 @@ +import os +import requests +import json +from PIL import Image +import cv2 +import numpy as np +import tritonclient.http as httpclient +import torch + +from foco import extract_main_colors + +TRITON_IP_DEFAULT = "0.0.0.0" + + +def imnormalize(img, mean, std, to_rgb=True): + """Normalize an image with mean and std. + + Args: + img (ndarray): Image to be normalized. + mean (ndarray): The mean to be used for normalize. + std (ndarray): The std to be used for normalize. + to_rgb (bool): Whether to convert to rgb. + + Returns: + ndarray: The normalized image. + """ + img = img.copy().astype(np.float32) + assert img.dtype != np.uint8 + mean = np.float64(mean.reshape(1, -1)) + stdinv = 1 / np.float64(std.reshape(1, -1)) + if to_rgb: + cv2.cvtColor(img, cv2.COLOR_BGR2RGB, img) # inplace + cv2.subtract(img, mean, img) # inplace + cv2.multiply(img, stdinv, img) # inplace + return img + +def load_image(img_path): + if 'http' in img_path: + file = requests.get(img_path) + image = cv2.imdecode(np.fromstring(file.content, np.uint8), 1) + image = Image.fromarray(image.astype('uint8'), 'RGB') + else: + image = Image.open(img_path).convert('RGB') + return np.array(image) + + +def resize_image(img): + """ + Args: + img: ndarray (height, width, channel) + """ + resized_img = cv2.resize(img, (224, 224), dst=None, interpolation=1) + return resized_img + + +def pad_array(input_value): + """pad List of Array into same batch size + + Args: + input_value: List of numpy arrary need to be padded + + Returns: + Tensor: [batch_dim, max_dim, original_tensor_size] + """ + max_dim = max([len(x) for x in input_value]) + mask = np.zeros((len(input_value), max_dim), dtype=np.float32) + + # Pad each array + padded_arrays = [] + for i, array in enumerate(input_value): + # Compute padding amount along the pad dimension + pad_dim = max_dim - array.shape[0] + consistent_shape = array.shape[1:] + pad_widths = [(0, pad_dim)] + [(0, 0)] * len(consistent_shape) + padded_array = np.pad(array, pad_widths, mode='constant', constant_values=0) + padded_arrays.append(padded_array) + + mask[i, array.shape[0]:] = float("-inf") + + # Stack the padded arrays and change the dimension + batched_arrays = np.stack(padded_arrays, axis=0) + return batched_arrays, mask + + +def extract_color(image, img_path): + # TODO: replace to vector database + relative_path, filename = os.path.split(img_path) + basename = filename.split(".")[0] + color_file = os.path.join(r"D:\PhD_Study\trinity_client\application\outfit_matcher\color", + basename + ".npy") + if os.path.exists(color_file): + color = np.load(color_file) + else: + color = extract_main_colors(image) + np.save(color_file, color) + return color + + +def preprocess(outfits): + outfit_images = [] + outfit_colors = [] + for outfit in outfits: + images = [] + colors = [] + for item in outfit: + image = load_image(item["image_path"]) + image = resize_image(image) + normalized_image = imnormalize(image, + mean=np.array([208.32996145, 201.28227452, 198.47047691], dtype=np.float32), + std=np.array([75.48939648, 80.47423057, 82.21144189], dtype=np.float32)) + images.append(normalized_image.transpose(2, 0, 1)) + color = extract_color(image, item["image_path"]) + colors.append(color) + images = np.stack(images, axis=0) + outfit_images.append(images) # List[(items, 3, 224, 224)] + colors = np.stack(colors, axis=0) + outfit_colors.append(colors) + outfit_images, mask = pad_array(outfit_images) + outfit_colors, _ = pad_array(outfit_colors) + return outfit_images, outfit_colors, mask + + +def evaluate_outfits(outfits): + """Input outfits structure and output scores. + Args: + outfits: outfits to be evaluated. + Example: + [ + [ + { + "item_name": "MSE_57987", + "semantic_category": "BOTTOM/PANTS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_57987.jpg", + "mapped_cate": "bottoms" + }, + { + "item_name": "MPO_SP7712", + "semantic_category": "TOP/TANK", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MPO_SP7712.jpg", + "mapped_cate": "tops" + }, + { + "item_name": "MWSS27195", + "semantic_category": "OUTERWEAR/GILET", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MWSS27195.jpg", + "mapped_cate": "outerwear" + } + ], + ... + ] + Returns: + scores: List of float + """ + + # start = time.time() + image, color, mask = preprocess(outfits) + # print(start - time.time()) + client = httpclient.InferenceServerClient(url="localhost:8000") + # transformed_img = image.astype(np.float32) + # 输入集 + inputs = [ + httpclient.InferInput("input__0", image.shape, datatype="FP32"), + httpclient.InferInput("input__1", color.shape, datatype="FP32"), + httpclient.InferInput("input__2", mask.shape, datatype="FP32"), + ] + inputs[0].set_data_from_numpy(image.astype(np.float32), binary_data=True) + inputs[1].set_data_from_numpy(color.astype(np.float32), binary_data=True) + inputs[2].set_data_from_numpy(mask.astype(np.float32), binary_data=True) + # 输出集 + outputs = [ + httpclient.InferRequestedOutput("output__0", binary_data=True), + ] + results = client.infer(model_name="outfit_matcher_hon", inputs=inputs, outputs=outputs) + # 推理 + # 取结果 + scores = torch.from_numpy(results.as_numpy("output__0")) + return scores # Shape (N, 1) + + +if __name__ == '__main__': + with open("test_input.json", "r") as f: + outfits = json.load(f) + scores = evaluate_outfits(outfits) + print(scores) diff --git a/app/service/outfit_matcher_hon/service.py b/app/service/outfit_matcher/service.py similarity index 97% rename from app/service/outfit_matcher_hon/service.py rename to app/service/outfit_matcher/service.py index 85ffffc..9df1711 100644 --- a/app/service/outfit_matcher_hon/service.py +++ b/app/service/outfit_matcher/service.py @@ -5,7 +5,8 @@ import requests import cv2 import numpy as np from PIL import Image -from foco import extract_main_colors + +from app.service.outfit_matcher.foco import extract_main_colors class OutfitMatcherHon: @@ -125,7 +126,7 @@ class OutfitMatcherHon: outputs = [ httpclient.InferRequestedOutput("output__0", binary_data=True), ] - results = self.tritonclient.infer(model_name="outfit_matcher_hon", inputs=inputs, outputs=outputs) + results = self.tritonclient.infer(model_name="outfit_matcher", inputs=inputs, outputs=outputs) # 推理 # 取结果 inference_output1 = torch.from_numpy(results.as_numpy("output__0")) diff --git a/app/service/outfit_matcher/test_param/recommendation_test.json b/app/service/outfit_matcher/test_param/recommendation_test.json new file mode 100644 index 0000000..477ea5c --- /dev/null +++ b/app/service/outfit_matcher/test_param/recommendation_test.json @@ -0,0 +1,849 @@ +{ + "topk": 5, + "max_outfits": 100, + "query": [ + { + "item_name": "MKTS27047", + "semantic_category": "ONE PIECE/DRESS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MKTS27047.jpg" + }, + { + "item_name": "MKTS27028", + "semantic_category": "OUTERWEAR/JACKET", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MKTS27028.jpg" + }, + { + "item_name": "MSE_58057", + "semantic_category": "OUTERWEAR/BLAZER", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_58057.jpg" + }, + { + "item_name": "MSE_58107", + "semantic_category": "TOP/SHIRT", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_58107.jpg" + }, + { + "item_name": "MSE_58495", + "semantic_category": "TOP/SHIRT", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_58495.jpg" + } + ], + "database": + [ + { + "item_name": "MKTS27017", + "semantic_category": "OUTERWEAR/WINDBREAKER", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MKTS27017.jpg" + }, + { + "item_name": "MKTS27047", + "semantic_category": "ONE PIECE/DRESS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MKTS27047.jpg" + }, + { + "item_name": "MKTS27000", + "semantic_category": "BOTTOM/PANTS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MKTS27000.jpg" + }, + { + "item_name": "MKTS27001", + "semantic_category": "BOTTOM/SHORTS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MKTS27001.jpg" + }, + { + "item_name": "MZOS27178", + "semantic_category": "KNIT/CARDIGAN", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MZOS27178.jpg" + }, + { + "item_name": "MZOS27179", + "semantic_category": "KNIT/KNIT TOP", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MZOS27179.jpg" + }, + { + "item_name": "MWSS27184", + "semantic_category": "TOP/TEE", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MWSS27184.jpg" + }, + { + "item_name": "MWSS27191", + "semantic_category": "OUTERWEAR/TWIN SET", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MWSS27191.jpg" + }, + { + "item_name": "MWSS27193", + "semantic_category": "OUTERWEAR/JACKET", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MWSS27193.jpg" + }, + { + "item_name": "MWSS27195", + "semantic_category": "OUTERWEAR/GILET", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MWSS27195.jpg" + }, + { + "item_name": "MWSS27200", + "semantic_category": "KNIT/VEST", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MWSS27200.jpg" + }, + { + "item_name": "MWSS27209", + "semantic_category": "ONE PIECE/DRESS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MWSS27209.jpg" + }, + { + "item_name": "MWSS27210", + "semantic_category": "ONE PIECE/DRESS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MWSS27210.jpg" + }, + { + "item_name": "MWSS27211", + "semantic_category": "ONE PIECE/DRESS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MWSS27211.jpg" + }, + { + "item_name": "MWSS27212", + "semantic_category": "TOP/BLOUSE", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MWSS27212.jpg" + }, + { + "item_name": "MKTS27008", + "semantic_category": "OUTERWEAR/BLAZER", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MKTS27008.jpg" + }, + { + "item_name": "MKTS27009", + "semantic_category": "BOTTOM/PANTS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MKTS27009.jpg" + }, + { + "item_name": "MKTS27010", + "semantic_category": "OUTERWEAR/BLAZER", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MKTS27010.jpg" + }, + { + "item_name": "MKTS27012", + "semantic_category": "OUTERWEAR/JACKET", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MKTS27012.jpg" + }, + { + "item_name": "MKTS27013", + "semantic_category": "BOTTOM/SHORTS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MKTS27013.jpg" + }, + { + "item_name": "MKTS27014", + "semantic_category": "ONE PIECE/TWIN SET", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MKTS27014.jpg" + }, + { + "item_name": "MKTS27015", + "semantic_category": "OUTERWEAR/GILET", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MKTS27015.jpg" + }, + { + "item_name": "MKTS27016", + "semantic_category": "BOTTOM/SHORTS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MKTS27016.jpg" + }, + { + "item_name": "MKTS27027", + "semantic_category": "BOTTOM/PANTS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MKTS27027.jpg" + }, + { + "item_name": "MKTS27028", + "semantic_category": "OUTERWEAR/JACKET", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MKTS27028.jpg" + }, + { + "item_name": "MKTS27029", + "semantic_category": "ONE PIECE/DRESS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MKTS27029.jpg" + }, + { + "item_name": "MKTS27030", + "semantic_category": "ONE PIECE/DRESS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MKTS27030.jpg" + }, + { + "item_name": "MKTS27031", + "semantic_category": "BOTTOM/SKIRT", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MKTS27031.jpg" + }, + { + "item_name": "MKTS27034", + "semantic_category": "TOP/SHIRT", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MKTS27034.jpg" + }, + { + "item_name": "MKTS27035", + "semantic_category": "ONE PIECE/TWIN SET", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MKTS27035.jpg" + }, + { + "item_name": "MKTS27038", + "semantic_category": "TOP/TOP", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MKTS27038.jpg" + }, + { + "item_name": "MKTS27039", + "semantic_category": "TOP/TOP", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MKTS27039.jpg" + }, + { + "item_name": "MKTS27040", + "semantic_category": "TOP/TOP", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MKTS27040.jpg" + }, + { + "item_name": "MKTS27045", + "semantic_category": "ONE PIECE/DRESS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MKTS27045.jpg" + }, + { + "item_name": "MKTS27046", + "semantic_category": "TOP/SHIRT", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MKTS27046.jpg" + }, + { + "item_name": "MKTS27050", + "semantic_category": "TOP/TOP", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MKTS27050.jpg" + }, + { + "item_name": "MKTS27059", + "semantic_category": "TOP/TEE", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MKTS27059.jpg" + }, + { + "item_name": "MKTS27061", + "semantic_category": "TOP/TOP", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MKTS27061.jpg" + }, + { + "item_name": "MKTS27062", + "semantic_category": "TOP/BLOUSE", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MKTS27062.jpg" + }, + { + "item_name": "MKTS27066", + "semantic_category": "ONE PIECE/DRESS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MKTS27066.jpg" + }, + { + "item_name": "MKTS27067", + "semantic_category": "TOP/TEE", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MKTS27067.jpg" + }, + { + "item_name": "MKTS27068", + "semantic_category": "ONE PIECE/TWIN SET", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MKTS27068.jpg" + }, + { + "item_name": "MKTS27002", + "semantic_category": "TOP/BLOUSE", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MKTS27002.jpg" + }, + { + "item_name": "MKTS27003", + "semantic_category": "OUTERWEAR/GILET", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MKTS27003.jpg" + }, + { + "item_name": "MKTS27004", + "semantic_category": "BOTTOM/PANTS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MKTS27004.jpg" + }, + { + "item_name": "MKTS27011", + "semantic_category": "TOP/VEST", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MKTS27011.jpg" + }, + { + "item_name": "MKTS27018", + "semantic_category": "TOP/SHIRT", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MKTS27018.jpg" + }, + { + "item_name": "MKTS27019", + "semantic_category": "OUTERWEAR/BLAZER", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MKTS27019.jpg" + }, + { + "item_name": "MKTS27058", + "semantic_category": "ONE PIECE/DRESS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MKTS27058.jpg" + }, + { + "item_name": "MLSS27101", + "semantic_category": "ONE PIECE/DRESS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MLSS27101.jpg" + }, + { + "item_name": "MLSS27102", + "semantic_category": "ONE PIECE/DRESS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MLSS27102.jpg" + }, + { + "item_name": "MLSS27103", + "semantic_category": "OUTERWEAR/GILET", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MLSS27103.jpg" + }, + { + "item_name": "MLSS27104", + "semantic_category": "BOTTOM/SHORTS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MLSS27104.jpg" + }, + { + "item_name": "MLSS27107", + "semantic_category": "JEANS/JEANS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MLSS27107.jpg" + }, + { + "item_name": "MLSS27109", + "semantic_category": "JEANS/JEANS JACKET", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MLSS27109.jpg" + }, + { + "item_name": "MLSS27110", + "semantic_category": "JEANS/JEANS JACKET", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MLSS27110.jpg" + }, + { + "item_name": "MLSS27111", + "semantic_category": "JEANS/JEANS PANTS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MLSS27111.jpg" + }, + { + "item_name": "MLSS27112", + "semantic_category": "JEANS/JEANS PANTS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MLSS27112.jpg" + }, + { + "item_name": "MLSS27113", + "semantic_category": "ONE PIECE/DRESS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MLSS27113.jpg" + }, + { + "item_name": "MLSS27119", + "semantic_category": "JEANS/JEANS SKIRT", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MLSS27119.jpg" + }, + { + "item_name": "MLSS27122", + "semantic_category": "ONE PIECE/DRESS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MLSS27122.jpg" + }, + { + "item_name": "MLSS27123", + "semantic_category": "TOP/TOP", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MLSS27123.jpg" + }, + { + "item_name": "MLSS27128", + "semantic_category": "JEANS/JEANS JACKET", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MLSS27128.jpg" + }, + { + "item_name": "MLSS27129", + "semantic_category": "JEANS/JEANS SHORTS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MLSS27129.jpg" + }, + { + "item_name": "MLSS27132", + "semantic_category": "TOP/TOP", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MLSS27132.jpg" + }, + { + "item_name": "MLSS27133", + "semantic_category": "BOTTOM/SKIRT", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MLSS27133.jpg" + }, + { + "item_name": "MLSS27136", + "semantic_category": "ONE PIECE/DRESS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MLSS27136.jpg" + }, + { + "item_name": "MLSS27137", + "semantic_category": "TOP/SHIRT", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MLSS27137.jpg" + }, + { + "item_name": "MLSS27140", + "semantic_category": "OUTERWEAR/JACKET", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MLSS27140.jpg" + }, + { + "item_name": "MLSS27141", + "semantic_category": "TOP/SHIRT", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MLSS27141.jpg" + }, + { + "item_name": "MLSS27142", + "semantic_category": "TOP/SHIRT", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MLSS27142.jpg" + }, + { + "item_name": "MLSS27145", + "semantic_category": "OUTERWEAR/WINDBREAKER", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MLSS27145.jpg" + }, + { + "item_name": "MLSS27146", + "semantic_category": "TOP/TOP", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MLSS27146.jpg" + }, + { + "item_name": "MLSS27147", + "semantic_category": "BOTTOM/SKIRT", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MLSS27147.jpg" + }, + { + "item_name": "MLSS27148", + "semantic_category": "TOP/TOP", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MLSS27148.jpg" + }, + { + "item_name": "MLSS27149", + "semantic_category": "BOTTOM/PANTS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MLSS27149.jpg" + }, + { + "item_name": "MLSS27150", + "semantic_category": "OUTERWEAR/JACKET", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MLSS27150.jpg" + }, + { + "item_name": "MLSS27152", + "semantic_category": "TOP/TEE", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MLSS27152.jpg" + }, + { + "item_name": "MLSS27154", + "semantic_category": "TOP/TEE", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MLSS27154.jpg" + }, + { + "item_name": "MLSS27156", + "semantic_category": "TOP/VEST", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MLSS27156.jpg" + }, + { + "item_name": "MLSS27157", + "semantic_category": "OUTERWEAR/WINDBREAKER", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MLSS27157.jpg" + }, + { + "item_name": "MLSS27159", + "semantic_category": "BOTTOM/PANTS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MLSS27159.jpg" + }, + { + "item_name": "MLSS27160", + "semantic_category": "BOTTOM/PANTS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MLSS27160.jpg" + }, + { + "item_name": "MLSS27161", + "semantic_category": "KNIT/CARDIGAN", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MLSS27161.jpg" + }, + { + "item_name": "MLSS27162", + "semantic_category": "TOP/SHIRT", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MLSS27162.jpg" + }, + { + "item_name": "MLSS27167", + "semantic_category": "OUTERWEAR/JACKET", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MLSS27167.jpg" + }, + { + "item_name": "MLSS27173", + "semantic_category": "ONE PIECE/DRESS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MLSS27173.jpg" + }, + { + "item_name": "MLSS27174", + "semantic_category": "TOP/TOP", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MLSS27174.jpg" + }, + { + "item_name": "MLSS27175", + "semantic_category": "BOTTOM/PANTS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MLSS27175.jpg" + }, + { + "item_name": "MLSS27176", + "semantic_category": "BOTTOM/SKIRT", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MLSS27176.jpg" + }, + { + "item_name": "MKTS27073", + "semantic_category": "BOTTOM/SKIRT", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MKTS27073.jpg" + }, + { + "item_name": "MLSS27226", + "semantic_category": "BOTTOM/SKIRT", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MLSS27226.jpg" + }, + { + "item_name": "MPO_SP7685", + "semantic_category": "TOP/BLOUSE", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MPO_SP7685.jpg" + }, + { + "item_name": "MPO_SP7686", + "semantic_category": "TOP/SHIRT", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MPO_SP7686.jpg" + }, + { + "item_name": "MPO_SP7687", + "semantic_category": "TOP/SHIRT", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MPO_SP7687.jpg" + }, + { + "item_name": "MPO_SP7692", + "semantic_category": "ONE PIECE/DRESS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MPO_SP7692.jpg" + }, + { + "item_name": "MPO_SP7693", + "semantic_category": "ONE PIECE/DRESS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MPO_SP7693.jpg" + }, + { + "item_name": "MPO_SP7694", + "semantic_category": "ONE PIECE/DRESS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MPO_SP7694.jpg" + }, + { + "item_name": "MPO_SP7696", + "semantic_category": "BOTTOM/PANTS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MPO_SP7696.jpg" + }, + { + "item_name": "MPO_SP7697", + "semantic_category": "JEANS/JEANS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MPO_SP7697.jpg" + }, + { + "item_name": "MPO_SP7704", + "semantic_category": "OUTERWEAR/BLAZER", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MPO_SP7704.jpg" + }, + { + "item_name": "MPO_SP7705", + "semantic_category": "OUTERWEAR/JACKET", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MPO_SP7705.jpg" + }, + { + "item_name": "MPO_SP7706", + "semantic_category": "JEANS/JEANS JACKET", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MPO_SP7706.jpg" + }, + { + "item_name": "MPO_SP7711", + "semantic_category": "TOP/VEST", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MPO_SP7711.jpg" + }, + { + "item_name": "MPO_SP7712", + "semantic_category": "TOP/TANK", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MPO_SP7712.jpg" + }, + { + "item_name": "MPO_SP7717", + "semantic_category": "TOP/TEE", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MPO_SP7717.jpg" + }, + { + "item_name": "MPO_SP7722", + "semantic_category": "TOP/TOP", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MPO_SP7722.jpg" + }, + { + "item_name": "MPO_SP7723", + "semantic_category": "TOP/BLOUSE", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MPO_SP7723.jpg" + }, + { + "item_name": "MPO_SP7726", + "semantic_category": "TOP/SHIRT", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MPO_SP7726.jpg" + }, + { + "item_name": "MPO_SP7729", + "semantic_category": "TOP/SHIRT", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MPO_SP7729.jpg" + }, + { + "item_name": "MPO_SP7731", + "semantic_category": "TOP/BLOUSE", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MPO_SP7731.jpg" + }, + { + "item_name": "MPO_SP7732", + "semantic_category": "TOP/SHIRT", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MPO_SP7732.jpg" + }, + { + "item_name": "MPO_SP7735", + "semantic_category": "TOP/SHIRT", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MPO_SP7735.jpg" + }, + { + "item_name": "MSE_58197", + "semantic_category": "ONE PIECE/DRESS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_58197.jpg" + }, + { + "item_name": "MSE_58198", + "semantic_category": "TOP/BLOUSE", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_58198.jpg" + }, + { + "item_name": "MSE_58199", + "semantic_category": "BOTTOM/PANTS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_58199.jpg" + }, + { + "item_name": "MSE_58112", + "semantic_category": "TOP/SHIRT", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_58112.jpg" + }, + { + "item_name": "MSE_58114", + "semantic_category": "ONE PIECE/DRESS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_58114.jpg" + }, + { + "item_name": "MSE_58241", + "semantic_category": "TOP/BLOUSE", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_58241.jpg" + }, + { + "item_name": "MSE_57987", + "semantic_category": "BOTTOM/PANTS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_57987.jpg" + }, + { + "item_name": "MSE_57988", + "semantic_category": "OUTERWEAR/BLAZER", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_57988.jpg" + }, + { + "item_name": "MSE_58203", + "semantic_category": "OUTERWEAR/BLAZER", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_58203.jpg" + }, + { + "item_name": "MSE_58106", + "semantic_category": "BOTTOM/PANTS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_58106.jpg" + }, + { + "item_name": "MSE_58107", + "semantic_category": "TOP/SHIRT", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_58107.jpg" + }, + { + "item_name": "MSE_58132", + "semantic_category": "ONE PIECE/DRESS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_58132.jpg" + }, + { + "item_name": "MSE_58133", + "semantic_category": "TOP/SHIRT", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_58133.jpg" + }, + { + "item_name": "MSE_58057", + "semantic_category": "OUTERWEAR/BLAZER", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_58057.jpg" + }, + { + "item_name": "MSE_58058", + "semantic_category": "BOTTOM/PANTS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_58058.jpg" + }, + { + "item_name": "MSE_58222", + "semantic_category": "BOTTOM/SKIRT", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_58222.jpg" + }, + { + "item_name": "MSE_58317", + "semantic_category": "TOP/BLOUSE", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_58317.jpg" + }, + { + "item_name": "MSE_58045", + "semantic_category": "ONE PIECE/DRESS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_58045.jpg" + }, + { + "item_name": "MSE_58275", + "semantic_category": "JEANS/JEANS DRESS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_58275.jpg" + }, + { + "item_name": "MSE_58276", + "semantic_category": "JEANS/JEANS JACKET", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_58276.jpg" + }, + { + "item_name": "MSE_58277", + "semantic_category": "JEANS/JEANS SKIRT", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_58277.jpg" + }, + { + "item_name": "MSE_58183", + "semantic_category": "TOP/BLOUSE", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_58183.jpg" + }, + { + "item_name": "MSE_58184", + "semantic_category": "ONE PIECE/DRESS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_58184.jpg" + }, + { + "item_name": "MSE_58185", + "semantic_category": "ONE PIECE/DRESS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_58185.jpg" + }, + { + "item_name": "MSE_58188", + "semantic_category": "BOTTOM/SKIRT", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_58188.jpg" + }, + { + "item_name": "MSE_54385", + "semantic_category": "BOTTOM/PANTS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_54385.jpg" + }, + { + "item_name": "MSE_56720", + "semantic_category": "OUTERWEAR/BLAZER", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_56720.jpg" + }, + { + "item_name": "MSE_58174", + "semantic_category": "TOP/TEE", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_58174.jpg" + }, + { + "item_name": "MSE_58044", + "semantic_category": "OUTERWEAR/JACKET", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_58044.jpg" + }, + { + "item_name": "MSE_58361", + "semantic_category": "ONE PIECE/DRESS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_58361.jpg" + }, + { + "item_name": "MSE_58495", + "semantic_category": "TOP/SHIRT", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_58495.jpg" + }, + { + "item_name": "MSE_58536", + "semantic_category": "ACCESSORY/BAG", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_58536.jpg" + }, + { + "item_name": "MSE_58653", + "semantic_category": "TOP/SHIRT", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_58653.jpg" + }, + { + "item_name": "MSE_58287", + "semantic_category": "BOTTOM/SHORTS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_58287.jpg" + }, + { + "item_name": "MSE_58289", + "semantic_category": "OUTERWEAR/BLAZER", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_58289.jpg" + }, + { + "item_name": "MSE_58323", + "semantic_category": "TOP/BLOUSE", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_58323.jpg" + }, + { + "item_name": "MSE_58421", + "semantic_category": "ONE PIECE/DRESS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_58421.jpg" + }, + { + "item_name": "MSE_58451", + "semantic_category": "ONE PIECE/DRESS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_58451.jpg" + }, + { + "item_name": "MSE_58473", + "semantic_category": "KNIT/KNIT TOP", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_58473.jpg" + }, + { + "item_name": "MSE_58498", + "semantic_category": "ONE PIECE/DRESS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_58498.jpg" + }, + { + "item_name": "MSE_58499", + "semantic_category": "TOP/SHIRT", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_58499.jpg" + }, + { + "item_name": "MSE_58510", + "semantic_category": "TOP/SHIRT", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_58510.jpg" + }, + { + "item_name": "MSE_58516", + "semantic_category": "ONE PIECE/DRESS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_58516.jpg" + }, + { + "item_name": "MSE_58518", + "semantic_category": "BOTTOM/SKIRT", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_58518.jpg" + }, + { + "item_name": "MSE_58530", + "semantic_category": "ONE PIECE/DRESS", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_58530.jpg" + }, + { + "item_name": "MSE_58540", + "semantic_category": "TOP/SHIRT", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_58540.jpg" + }, + { + "item_name": "MSE_58547", + "semantic_category": "TOP/TEE", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_58547.jpg" + }, + { + "item_name": "MSE_58618", + "semantic_category": "TOP/BLOUSE", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_58618.jpg" + }, + { + "item_name": "MSE_58655", + "semantic_category": "TOP/SHIRT", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_58655.jpg" + }, + { + "item_name": "MSE_58658", + "semantic_category": "TOP/TEE", + "image_path": "D:\\PhD_Study\\MIXI\\mitu\\image\\2024 SS\\MSE_58658.jpg" + } + ] +} \ No newline at end of file