diff --git a/app/schemas/attribute.py b/app/schemas/attribute.py index bc9af8e..16413db 100644 --- a/app/schemas/attribute.py +++ b/app/schemas/attribute.py @@ -4,3 +4,4 @@ from pydantic import BaseModel class AttributeModel(BaseModel): upload_img_path: list upload_img_id: list + upload_img_category: list diff --git a/app/service/attribute_recognition/config/__init__.py b/app/service/attribute_recognition/config/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/service/attribute_recognition/config/category_mapping.py b/app/service/attribute_recognition/config/category_mapping.py new file mode 100644 index 0000000..c400670 --- /dev/null +++ b/app/service/attribute_recognition/config/category_mapping.py @@ -0,0 +1,242 @@ +category_mapping = { + "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": "skirt", + "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": "skirt", + "BOTTOM/OVERALL": "all-body", + "BOTTOM/SHORTS": "bottoms", + "BOTTOM/LEGGING": "bottoms", + "BOTTOM/UNDERWEAR": "bottoms", + "BOTTOM/SKIRT": "skirt", + "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": "skirt", + "DRESS/OVERALL": "all-body", + "DRESS/EVENING DRESS": "all-body", + "DRESS/SKIRT": "skirt", + "DRESS/LEATHER SKIRT": "skirt", + "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": "skirt", + "JEANS/TWIN SET": "all-body", + "JEANS/JEANS PANTS": "bottoms", + "JEANS/JEANS SHIRT": "tops", + "JEANS/JEANS SKIRT": "skirt", + "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": "skirt", + "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": "skirt", + "LEATHER/LEATHER GILET": "outerwear", + "LEATHER/LEATHER JACKET": "outerwear", + "LEATHER/LEATHER VEST": "outerwear", + "LEATHER/LEATHERSKIRT": "skirt", + "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": "tops", + "TOP/ONE PIECE": "all-body", + "TOP/TANK": "tops", + "TOP/PULLOVER": "outerwear", + "TOP/TOP": "tops", + "TOP/OVERALL": "all-body", + "TOP/UNDERWEAR": "bottoms", + "TOP/SKIRT": "skirt", + "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" +} diff --git a/app/service/attribute_recognition/service.py b/app/service/attribute_recognition/service.py index df6e295..0d91250 100644 --- a/app/service/attribute_recognition/service.py +++ b/app/service/attribute_recognition/service.py @@ -14,6 +14,7 @@ import pandas as pd from minio import Minio from app.core.config import MINIO_IP, MINIO_PORT, MINIO_SECURE, MINIO_ACCESS, MINIO_SECRET, ATT_TRITON_IP, ATT_TRITON_PORT +from app.service.attribute_recognition.config.category_mapping import category_mapping def Merge(dict1, dict2): @@ -92,22 +93,28 @@ class AttributeRecognition: sample = self.preprocess(img_path) category_model_path = args.category_model category_description = args.category_discription - category_list = self.get_attribute(category_model_path, category_description, sample)['category'] + # 如果category为all-body 则通过category获取类别 , 主要用去区分为连体裤和连衣裙 + mapping_category = category_mapping[request_data.upload_img_category[l]] + if mapping_category not in ["tops", "bottoms", "skirt", "dress", "outerwear"]: + category_list = self.get_attribute(category_model_path, category_description, sample)['category'] + else: + category_list = [mapping_category] + + attr_dict = {} if len(category_list) >= 1: category = category_list[0] print(category) - if category == 'top': + if category == 'tops': attr_dict = {'Item': category} for i in range(len(args.top_discription_list)): - # print('top: ', i) attr_description = args.top_discription_list[i] attr_model_path = args.top_model_list[i] present_dict = self.get_attribute(attr_model_path, attr_description, sample) attr_dict = Merge(attr_dict, present_dict) - elif category == 'pants': + elif category == 'bottoms': attr_dict = {} category = 'bottom' attr_dict['Item'] = category @@ -136,7 +143,7 @@ class AttributeRecognition: present_dict = self.get_attribute(attr_model_path, attr_description, sample) attr_dict = Merge(attr_dict, present_dict) - elif category == 'outwear': + elif category == 'outerwear': attr_dict = {'Item': 'outer'} for i in range(len(args.outwear_discription_list)): @@ -152,8 +159,6 @@ class AttributeRecognition: attr_model_path = args.jumpsuit_model_list[i] present_dict = self.get_attribute(attr_model_path, attr_description, sample) attr_dict = Merge(attr_dict, present_dict) - else: - attr_dict = {} print('attr_dict: ', attr_dict) final_dict[request_data.upload_img_id[l]] = attr_dict @@ -210,6 +215,6 @@ class AttributeRecognition: if __name__ == '__main__': from app.service.attribute_recognition import const_debug - request_data = {'upload_img_path': ['./test_top1.jpg'], 'upload_img_id': ["2"]} + request_data = {'upload_img_path': ['./test_top1.jpg'], 'upload_img_id': ["2"], "update_img_category": ["TOP/ONE PIECE"]} service = AttributeRecognition() pprint(service.attribute(const_debug, request_data)) diff --git a/app/service/outfit_matcher/test_param/test.json b/app/service/outfit_matcher/test_param/test.json index 16e6236..4f398a4 100644 --- a/app/service/outfit_matcher/test_param/test.json +++ b/app/service/outfit_matcher/test_param/test.json @@ -3,206 +3,556 @@ "max_outfits": 10, "database": [ { - "image_path": "mi-tu/26/BOTTOM/PANTS/MKTS27000_0BLK.jpg/MKTS27000_0BLK.jpg", - "item_name": "MKTS27000", + "image_path": "mi-tu/26/BOTTOM/PANTS/MKTS27000_0BLK.jpg", + "item_name": "MKTS27000_0BLK", "semantic_category": "BOTTOM/PANTS" }, { - "image_path": "mi-tu/26/TOP/BLOUSE/MKTS27002_0WHT.jpg/MKTS27002_0WHT.jpg", - "item_name": "MKTS27002", + "image_path": "mi-tu/26/OUTERWEAR/GILET/MKTS27003_0BGE.jpg", + "item_name": "MKTS27003_0BGE", + "semantic_category": "OUTERWEAR/GILET" + }, + { + "image_path": "mi-tu/26/BOTTOM/PANTS/MKTS27004_0BLU.jpg", + "item_name": "MKTS27004_0BLU", + "semantic_category": "BOTTOM/PANTS" + }, + { + "image_path": "mi-tu/26/OUTERWEAR/BLAZER/MKTS27008_0BLK.jpg", + "item_name": "MKTS27008_0BLK", + "semantic_category": "OUTERWEAR/BLAZER" + }, + { + "image_path": "mi-tu/26/TOP/BLOUSE/MKTS27002_0BLK.jpg", + "item_name": "MKTS27002_0BLK", "semantic_category": "TOP/BLOUSE" }, { - "image_path": "mi-tu/26/BOTTOM/SHORTS/MKTS27001_0BLK.jpg/MKTS27001_0BLK.jpg", - "item_name": "MKTS27001", + "image_path": "mi-tu/26/BOTTOM/SHORTS/MKTS27001_0BLK.jpg", + "item_name": "MKTS27001_0BLK", "semantic_category": "BOTTOM/SHORTS" }, { - "image_path": "mi-tu/26/BOTTOM/PANTS/MKTS27004_0BGE.jpg/MKTS27004_0BGE.jpg", - "item_name": "MKTS27004", + "image_path": "mi-tu/26/BOTTOM/PANTS/MKTS27004_0BGE.jpg", + "item_name": "MKTS27004_0BGE", "semantic_category": "BOTTOM/PANTS" }, { - "image_path": "mi-tu/26/TOP/BLOUSE/MKTS27002_0BLK.jpg/MKTS27002_0BLK.jpg", - "item_name": "MKTS27002", + "image_path": "mi-tu/26/BOTTOM/PANTS/MKTS27009_0BLK.jpg", + "item_name": "MKTS27009_0BLK", + "semantic_category": "BOTTOM/PANTS" + }, + { + "image_path": "mi-tu/26/BOTTOM/PANTS/MKTS27009_0FUS.jpg", + "item_name": "MKTS27009_0FUS", + "semantic_category": "BOTTOM/PANTS" + }, + { + "image_path": "mi-tu/26/TOP/VEST/MKTS27011_0BLK.jpg", + "item_name": "MKTS27011_0BLK", + "semantic_category": "TOP/VEST" + }, + { + "image_path": "mi-tu/26/OUTERWEAR/BLAZER/MKTS27010_0WHT.jpg", + "item_name": "MKTS27010_0WHT", + "semantic_category": "OUTERWEAR/BLAZER" + }, + { + "image_path": "mi-tu/26/TOP/BLOUSE/MKTS27002_0WHT.jpg", + "item_name": "MKTS27002_0WHT", "semantic_category": "TOP/BLOUSE" }, { - "image_path": "mi-tu/26/OUTERWEAR/BLAZER/MKTS27008_0BLK.jpg/MKTS27008_0BLK.jpg", - "item_name": "MKTS27008", - "semantic_category": "OUTERWEAR/BLAZER" - }, - { - "image_path": "mi-tu/26/BOTTOM/PANTS/MKTS27009_0BLK.jpg/MKTS27009_0BLK.jpg", - "item_name": "MKTS27009", - "semantic_category": "BOTTOM/PANTS" - }, - { - "image_path": "mi-tu/26/BOTTOM/PANTS/MKTS27004_0BLU.jpg/MKTS27004_0BLU.jpg", - "item_name": "MKTS27004", - "semantic_category": "BOTTOM/PANTS" - }, - { - "image_path": "mi-tu/26/TOP/VEST/MKTS27011_0BLK.jpg/MKTS27011_0BLK.jpg", - "item_name": "MKTS27011", - "semantic_category": "TOP/VEST" - }, - { - "image_path": "mi-tu/26/BOTTOM/PANTS/MKTS27009_0FUS.jpg/MKTS27009_0FUS.jpg", - "item_name": "MKTS27009", - "semantic_category": "BOTTOM/PANTS" - }, - { - "image_path": "mi-tu/26/OUTERWEAR/GILET/MKTS27003_0BGE.jpg/MKTS27003_0BGE.jpg", - "item_name": "MKTS27003", - "semantic_category": "OUTERWEAR/GILET" - }, - { - "image_path": "mi-tu/26/OUTERWEAR/BLAZER/MKTS27010_0WHT.jpg/MKTS27010_0WHT.jpg", - "item_name": "MKTS27010", - "semantic_category": "OUTERWEAR/BLAZER" - }, - { - "image_path": "mi-tu/26/TOP/VEST/MKTS27011_0CMY.jpg/MKTS27011_0CMY.jpg", - "item_name": "MKTS27011", - "semantic_category": "TOP/VEST" - }, - { - "image_path": "mi-tu/26/BOTTOM/SHORTS/MKTS27013_0ORG.jpg/MKTS27013_0ORG.jpg", - "item_name": "MKTS27013", + "image_path": "mi-tu/26/BOTTOM/SHORTS/MKTS27013_0BLU.jpg", + "item_name": "MKTS27013_0BLU", "semantic_category": "BOTTOM/SHORTS" }, { - "image_path": "mi-tu/26/OUTERWEAR/GILET/MKTS27015_0BLK.jpg/MKTS27015_0BLK.jpg", - "item_name": "MKTS27015", - "semantic_category": "OUTERWEAR/GILET" - }, - { - "image_path": "mi-tu/26/OUTERWEAR/GILET/MKTS27015_0CMY.jpg/MKTS27015_0CMY.jpg", - "item_name": "MKTS27015", - "semantic_category": "OUTERWEAR/GILET" - }, - { - "image_path": "mi-tu/26/OUTERWEAR/BLAZER/MKTS27010_0DBL.jpg/MKTS27010_0DBL.jpg", - "item_name": "MKTS27010", + "image_path": "mi-tu/26/OUTERWEAR/BLAZER/MKTS27010_0DBL.jpg", + "item_name": "MKTS27010_0DBL", "semantic_category": "OUTERWEAR/BLAZER" }, { - "image_path": "mi-tu/26/BOTTOM/SHORTS/MKTS27013_0BLU.jpg/MKTS27013_0BLU.jpg", - "item_name": "MKTS27013", + "image_path": "mi-tu/26/BOTTOM/SHORTS/MKTS27013_0ORG.jpg", + "item_name": "MKTS27013_0ORG", "semantic_category": "BOTTOM/SHORTS" }, { - "image_path": "mi-tu/26/OUTERWEAR/JACKET/MKTS27012_0ORG.jpg/MKTS27012_0ORG.jpg", - "item_name": "MKTS27012", + "image_path": "mi-tu/26/OUTERWEAR/JACKET/MKTS27012_0BLU.jpg", + "item_name": "MKTS27012_0BLU", "semantic_category": "OUTERWEAR/JACKET" }, { - "image_path": "mi-tu/26/BOTTOM/SHORTS/MKTS27016_0CMY.jpg/MKTS27016_0CMY.jpg", - "item_name": "MKTS27016", - "semantic_category": "BOTTOM/SHORTS" + "image_path": "mi-tu/26/OUTERWEAR/GILET/MKTS27015_0BLK.jpg", + "item_name": "MKTS27015_0BLK", + "semantic_category": "OUTERWEAR/GILET" }, { - "image_path": "mi-tu/26/BOTTOM/SHORTS/MKTS27016_0BLK.jpg/MKTS27016_0BLK.jpg", - "item_name": "MKTS27016", - "semantic_category": "BOTTOM/SHORTS" - }, - { - "image_path": "mi-tu/26/OUTERWEAR/WINDBREAKER/MKTS27017_0GRN.jpg/MKTS27017_0GRN.jpg", - "item_name": "MKTS27017", - "semantic_category": "OUTERWEAR/WINDBREAKER" - }, - { - "image_path": "mi-tu/26/OUTERWEAR/JACKET/MKTS27012_0BLU.jpg/MKTS27012_0BLU.jpg", - "item_name": "MKTS27012", + "image_path": "mi-tu/26/OUTERWEAR/JACKET/MKTS27012_0ORG.jpg", + "item_name": "MKTS27012_0ORG", "semantic_category": "OUTERWEAR/JACKET" }, { - "image_path": "mi-tu/26/TOP/SHIRT/MKTS27018_0WHT.jpg/MKTS27018_0WHT.jpg", - "item_name": "MKTS27018", - "semantic_category": "TOP/SHIRT" + "image_path": "mi-tu/26/TOP/VEST/MKTS27011_0CMY.jpg", + "item_name": "MKTS27011_0CMY", + "semantic_category": "TOP/VEST" }, { - "image_path": "mi-tu/26/TOP/SHIRT/MKTS27018_0BLK.jpg/MKTS27018_0BLK.jpg", - "item_name": "MKTS27018", - "semantic_category": "TOP/SHIRT" + "image_path": "mi-tu/26/OUTERWEAR/GILET/MKTS27015_0CMY.jpg", + "item_name": "MKTS27015_0CMY", + "semantic_category": "OUTERWEAR/GILET" }, { - "image_path": "mi-tu/26/OUTERWEAR/BLAZER/MKTS27019_0BLK.jpg/MKTS27019_0BLK.jpg", - "item_name": "MKTS27019", - "semantic_category": "OUTERWEAR/BLAZER" + "image_path": "mi-tu/26/BOTTOM/SHORTS/MKTS27016_0BLK.jpg", + "item_name": "MKTS27016_0BLK", + "semantic_category": "BOTTOM/SHORTS" }, { - "image_path": "mi-tu/26/OUTERWEAR/WINDBREAKER/MKTS27017_0PNK.jpg/MKTS27017_0PNK.jpg", - "item_name": "MKTS27017", + "image_path": "mi-tu/26/BOTTOM/SHORTS/MKTS27016_0CMY.jpg", + "item_name": "MKTS27016_0CMY", + "semantic_category": "BOTTOM/SHORTS" + }, + { + "image_path": "mi-tu/26/OUTERWEAR/WINDBREAKER/MKTS27017_0GRN.jpg", + "item_name": "MKTS27017_0GRN", "semantic_category": "OUTERWEAR/WINDBREAKER" }, { - "image_path": "mi-tu/26/OUTERWEAR/BLAZER/MKTS27019_0PNK.jpg/MKTS27019_0PNK.jpg", - "item_name": "MKTS27019", + "image_path": "mi-tu/26/OUTERWEAR/WINDBREAKER/MKTS27017_0PNK.jpg", + "item_name": "MKTS27017_0PNK", + "semantic_category": "OUTERWEAR/WINDBREAKER" + }, + { + "image_path": "mi-tu/26/BOTTOM/PANTS/MKTS27027_0PNK.jpg", + "item_name": "MKTS27027_0PNK", + "semantic_category": "BOTTOM/PANTS" + }, + { + "image_path": "mi-tu/26/OUTERWEAR/JACKET/MKTS27028_0DBL.jpg", + "item_name": "MKTS27028_0DBL", + "semantic_category": "OUTERWEAR/JACKET" + }, + { + "image_path": "mi-tu/26/BOTTOM/PANTS/MKTS27027_0DBL.jpg", + "item_name": "MKTS27027_0DBL", + "semantic_category": "BOTTOM/PANTS" + }, + { + "image_path": "mi-tu/26/ONE PIECE/DRESS/MKTS27029_0BLK.jpg", + "item_name": "MKTS27029_0BLK", + "semantic_category": "ONE PIECE/DRESS" + }, + { + "image_path": "mi-tu/26/TOP/SHIRT/MKTS27018_0WHT.jpg", + "item_name": "MKTS27018_0WHT", + "semantic_category": "TOP/SHIRT" + }, + { + "image_path": "mi-tu/26/OUTERWEAR/JACKET/MKTS27028_0PNK.jpg", + "item_name": "MKTS27028_0PNK", + "semantic_category": "OUTERWEAR/JACKET" + }, + { + "image_path": "mi-tu/26/ONE PIECE/DRESS/MKTS27030_0BLK.jpg", + "item_name": "MKTS27030_0BLK", + "semantic_category": "ONE PIECE/DRESS" + }, + { + "image_path": "mi-tu/26/OUTERWEAR/BLAZER/MKTS27019_0BLK.jpg", + "item_name": "MKTS27019_0BLK", "semantic_category": "OUTERWEAR/BLAZER" }, { - "image_path": "mi-tu/26/BOTTOM/PANTS/MKTS27027_0DBL.jpg/MKTS27027_0DBL.jpg", - "item_name": "MKTS27027", - "semantic_category": "BOTTOM/PANTS" + "image_path": "mi-tu/26/BOTTOM/SKIRT/MKTS27031_0LBE.jpg", + "item_name": "MKTS27031_0LBE", + "semantic_category": "BOTTOM/SKIRT" }, { - "image_path": "mi-tu/26/BOTTOM/PANTS/MKTS27027_0PNK.jpg/MKTS27027_0PNK.jpg", - "item_name": "MKTS27027", - "semantic_category": "BOTTOM/PANTS" + "image_path": "mi-tu/26/BOTTOM/SKIRT/MKTS27031_0BLK.jpg", + "item_name": "MKTS27031_0BLK", + "semantic_category": "BOTTOM/SKIRT" + }, + { + "image_path": "mi-tu/26/ONE PIECE/DRESS/MKTS27029_0MUD.jpg", + "item_name": "MKTS27029_0MUD", + "semantic_category": "ONE PIECE/DRESS" + }, + { + "image_path": "mi-tu/26/TOP/TOP/MKTS27038_0BLK.jpg", + "item_name": "MKTS27038_0BLK", + "semantic_category": "TOP/TOP" + }, + { + "image_path": "mi-tu/26/TOP/TOP/MKTS27039_0BLU.jpg", + "item_name": "MKTS27039_0BLU", + "semantic_category": "TOP/TOP" + }, + { + "image_path": "mi-tu/26/TOP/SHIRT/MKTS27034_0GRN.jpg", + "item_name": "MKTS27034_0GRN", + "semantic_category": "TOP/SHIRT" + }, + { + "image_path": "mi-tu/26/TOP/TOP/MKTS27040_0BLK.jpg", + "item_name": "MKTS27040_0BLK", + "semantic_category": "TOP/TOP" + }, + { + "image_path": "mi-tu/26/ONE PIECE/DRESS/MKTS27030_0LBE.jpg", + "item_name": "MKTS27030_0LBE", + "semantic_category": "ONE PIECE/DRESS" + }, + { + "image_path": "mi-tu/26/TOP/TOP/MKTS27040_0CMY.jpg", + "item_name": "MKTS27040_0CMY", + "semantic_category": "TOP/TOP" + }, + { + "image_path": "mi-tu/26/ONE PIECE/DRESS/MKTS27045_0BLK.jpg", + "item_name": "MKTS27045_0BLK", + "semantic_category": "ONE PIECE/DRESS" + }, + { + "image_path": "mi-tu/26/TOP/TOP/MKTS27039_0WHT.jpg", + "item_name": "MKTS27039_0WHT", + "semantic_category": "TOP/TOP" + }, + { + "image_path": "mi-tu/26/TOP/TOP/MKTS27038_0MUD.jpg", + "item_name": "MKTS27038_0MUD", + "semantic_category": "TOP/TOP" + }, + { + "image_path": "mi-tu/26/TOP/SHIRT/MKTS27018_0BLK.jpg", + "item_name": "MKTS27018_0BLK", + "semantic_category": "TOP/SHIRT" + }, + { + "image_path": "mi-tu/26/ONE PIECE/DRESS/MKTS27045_0LBE.jpg", + "item_name": "MKTS27045_0LBE", + "semantic_category": "ONE PIECE/DRESS" + }, + { + "image_path": "mi-tu/26/OUTERWEAR/BLAZER/MKTS27019_0PNK.jpg", + "item_name": "MKTS27019_0PNK", + "semantic_category": "OUTERWEAR/BLAZER" + }, + { + "image_path": "mi-tu/26/ONE PIECE/DRESS/MKTS27047_0BLK.jpg", + "item_name": "MKTS27047_0BLK", + "semantic_category": "ONE PIECE/DRESS" + }, + { + "image_path": "mi-tu/26/TOP/SHIRT/MKTS27046_0BLK.jpg", + "item_name": "MKTS27046_0BLK", + "semantic_category": "TOP/SHIRT" + }, + { + "image_path": "mi-tu/26/TOP/SHIRT/MKTS27046_0WHT.jpg", + "item_name": "MKTS27046_0WHT", + "semantic_category": "TOP/SHIRT" + }, + { + "image_path": "mi-tu/26/ONE PIECE/DRESS/MKTS27058_0WHT.jpg", + "item_name": "MKTS27058_0WHT", + "semantic_category": "ONE PIECE/DRESS" + }, + { + "image_path": "mi-tu/26/TOP/TOP/MKTS27050_0BLK.jpg", + "item_name": "MKTS27050_0BLK", + "semantic_category": "TOP/TOP" + }, + { + "image_path": "mi-tu/26/TOP/TEE/MKTS27059_0WHT.jpg", + "item_name": "MKTS27059_0WHT", + "semantic_category": "TOP/TEE" + }, + { + "image_path": "mi-tu/26/ONE PIECE/DRESS/MKTS27058_0BLK.jpg", + "item_name": "MKTS27058_0BLK", + "semantic_category": "ONE PIECE/DRESS" + }, + { + "image_path": "mi-tu/26/TOP/SHIRT/MKTS27034_0RED.jpg", + "item_name": "MKTS27034_0RED", + "semantic_category": "TOP/SHIRT" + }, + { + "image_path": "mi-tu/26/ONE PIECE/DRESS/MKTS27047_0WHT.jpg", + "item_name": "MKTS27047_0WHT", + "semantic_category": "ONE PIECE/DRESS" + }, + { + "image_path": "mi-tu/26/TOP/TEE/MKTS27059_0BLK.jpg", + "item_name": "MKTS27059_0BLK", + "semantic_category": "TOP/TEE" + }, + { + "image_path": "mi-tu/26/TOP/TOP/MKTS27061_0LGN.jpg", + "item_name": "MKTS27061_0LGN", + "semantic_category": "TOP/TOP" + }, + { + "image_path": "mi-tu/26/TOP/TOP/MKTS27050_0WHT.jpg", + "item_name": "MKTS27050_0WHT", + "semantic_category": "TOP/TOP" + }, + { + "image_path": "mi-tu/26/TOP/BLOUSE/MKTS27062_0GRN.jpg", + "item_name": "MKTS27062_0GRN", + "semantic_category": "TOP/BLOUSE" + }, + { + "image_path": "mi-tu/26/TOP/TEE/MKTS27059_0PUR.jpg", + "item_name": "MKTS27059_0PUR", + "semantic_category": "TOP/TEE" + }, + { + "image_path": "mi-tu/26/ONE PIECE/DRESS/MLSS27101_0BGE.jpg", + "item_name": "MLSS27101_0BGE", + "semantic_category": "ONE PIECE/DRESS" + }, + { + "image_path": "mi-tu/26/TOP/BLOUSE/MKTS27062_0RED.jpg", + "item_name": "MKTS27062_0RED", + "semantic_category": "TOP/BLOUSE" + }, + { + "image_path": "mi-tu/26/BOTTOM/SKIRT/MKTS27073_0BLU.jpg", + "item_name": "MKTS27073_0BLU", + "semantic_category": "BOTTOM/SKIRT" + }, + { + "image_path": "mi-tu/26/ONE PIECE/DRESS/MLSS27101_0BLK.jpg", + "item_name": "MLSS27101_0BLK", + "semantic_category": "ONE PIECE/DRESS" + }, + { + "image_path": "mi-tu/26/TOP/TEE/MKTS27067_0BLK.jpg", + "item_name": "MKTS27067_0BLK", + "semantic_category": "TOP/TEE" + }, + { + "image_path": "mi-tu/26/BOTTOM/SKIRT/MKTS27073_0LGN.jpg", + "item_name": "MKTS27073_0LGN", + "semantic_category": "BOTTOM/SKIRT" + }, + { + "image_path": "mi-tu/26/TOP/TEE/MKTS27067_0WHT.jpg", + "item_name": "MKTS27067_0WHT", + "semantic_category": "TOP/TEE" + }, + { + "image_path": "mi-tu/26/OUTERWEAR/GILET/MLSS27103_0WHT.jpg", + "item_name": "MLSS27103_0WHT", + "semantic_category": "OUTERWEAR/GILET" + }, + { + "image_path": "mi-tu/26/ONE PIECE/DRESS/MLSS27102_0BLU.jpg", + "item_name": "MLSS27102_0BLU", + "semantic_category": "ONE PIECE/DRESS" + }, + { + "image_path": "mi-tu/26/ONE PIECE/DRESS/MLSS27122_0WHT.jpg", + "item_name": "MLSS27122_0WHT", + "semantic_category": "ONE PIECE/DRESS" + }, + { + "image_path": "mi-tu/26/TOP/TEE/MKTS27067_0PUR.jpg", + "item_name": "MKTS27067_0PUR", + "semantic_category": "TOP/TEE" + }, + { + "image_path": "mi-tu/26/TOP/TOP/MKTS27061_0BRW.jpg", + "item_name": "MKTS27061_0BRW", + "semantic_category": "TOP/TOP" + }, + { + "image_path": "mi-tu/26/JEANS/JEANS/MLSS27107_0DBL.jpg", + "item_name": "MLSS27107_0DBL", + "semantic_category": "JEANS/JEANS" + }, + { + "image_path": "mi-tu/26/BOTTOM/SHORTS/MLSS27104_0WHT.jpg", + "item_name": "MLSS27104_0WHT", + "semantic_category": "BOTTOM/SHORTS" + }, + { + "image_path": "mi-tu/26/TOP/TOP/MLSS27132_0RED.jpg", + "item_name": "MLSS27132_0RED", + "semantic_category": "TOP/TOP" + }, + { + "image_path": "mi-tu/26/BOTTOM/SHORTS/MLSS27104_0PNK.jpg", + "item_name": "MLSS27104_0PNK", + "semantic_category": "BOTTOM/SHORTS" + }, + { + "image_path": "mi-tu/26/TOP/TOP/MLSS27123_0BLK.jpg", + "item_name": "MLSS27123_0BLK", + "semantic_category": "TOP/TOP" + }, + { + "image_path": "mi-tu/26/JEANS/JEANS/MLSS27107_0LBL.jpg", + "item_name": "MLSS27107_0LBL", + "semantic_category": "JEANS/JEANS" + }, + { + "image_path": "mi-tu/26/BOTTOM/SKIRT/MLSS27133_0ORG.jpg", + "item_name": "MLSS27133_0ORG", + "semantic_category": "BOTTOM/SKIRT" + }, + { + "image_path": "mi-tu/26/ONE PIECE/DRESS/MKTS27066_0BLU.jpg", + "item_name": "MKTS27066_0BLU", + "semantic_category": "ONE PIECE/DRESS" + }, + { + "image_path": "mi-tu/26/TOP/TOP/MLSS27132_0ORG.jpg", + "item_name": "MLSS27132_0ORG", + "semantic_category": "TOP/TOP" + }, + { + "image_path": "mi-tu/26/BOTTOM/SKIRT/MLSS27133_0RED.jpg", + "item_name": "MLSS27133_0RED", + "semantic_category": "BOTTOM/SKIRT" + }, + { + "image_path": "mi-tu/26/OUTERWEAR/GILET/MLSS27103_0PNK.jpg", + "item_name": "MLSS27103_0PNK", + "semantic_category": "OUTERWEAR/GILET" + }, + { + "image_path": "mi-tu/26/ONE PIECE/DRESS/MKTS27066_0WHT.jpg", + "item_name": "MKTS27066_0WHT", + "semantic_category": "ONE PIECE/DRESS" + }, + { + "image_path": "mi-tu/26/JEANS/JEANS PANTS/MLSS27111_0BLU.jpg", + "item_name": "MLSS27111_0BLU", + "semantic_category": "JEANS/JEANS PANTS" + }, + { + "image_path": "mi-tu/26/ONE PIECE/DRESS/MLSS27136_0BLK.jpg", + "item_name": "MLSS27136_0BLK", + "semantic_category": "ONE PIECE/DRESS" + }, + { + "image_path": "mi-tu/26/JEANS/JEANS SKIRT/MLSS27119_0DBL.jpg", + "item_name": "MLSS27119_0DBL", + "semantic_category": "JEANS/JEANS SKIRT" + }, + { + "image_path": "mi-tu/26/ONE PIECE/DRESS/MLSS27122_0BLK.jpg", + "item_name": "MLSS27122_0BLK", + "semantic_category": "ONE PIECE/DRESS" + }, + { + "image_path": "mi-tu/26/ONE PIECE/DRESS/MLSS27113_0WHT.jpg", + "item_name": "MLSS27113_0WHT", + "semantic_category": "ONE PIECE/DRESS" + }, + { + "image_path": "mi-tu/26/JEANS/JEANS JACKET/MLSS27109_0BLU.jpg", + "item_name": "MLSS27109_0BLU", + "semantic_category": "JEANS/JEANS JACKET" + }, + { + "image_path": "mi-tu/26/JEANS/JEANS PANTS/MLSS27112_0DBL.jpg", + "item_name": "MLSS27112_0DBL", + "semantic_category": "JEANS/JEANS PANTS" + }, + { + "image_path": "mi-tu/26/JEANS/JEANS JACKET/MLSS27110_0DBL.jpg", + "item_name": "MLSS27110_0DBL", + "semantic_category": "JEANS/JEANS JACKET" + }, + { + "image_path": "mi-tu/26/JEANS/JEANS JACKET/MLSS27109_0DBL.jpg", + "item_name": "MLSS27109_0DBL", + "semantic_category": "JEANS/JEANS JACKET" + }, + { + "image_path": "mi-tu/26/ONE PIECE/DRESS/MLSS27136_0BLU.jpg", + "item_name": "MLSS27136_0BLU", + "semantic_category": "ONE PIECE/DRESS" + }, + { + "image_path": "mi-tu/26/TOP/TOP/MLSS27123_0WHT.jpg", + "item_name": "MLSS27123_0WHT", + "semantic_category": "TOP/TOP" + }, + { + "image_path": "mi-tu/26/JEANS/JEANS JACKET/MLSS27110_0LBL.jpg", + "item_name": "MLSS27110_0LBL", + "semantic_category": "JEANS/JEANS JACKET" + }, + { + "image_path": "mi-tu/26/BOTTOM/SKIRT/MKTS27073_0BRW.jpg", + "item_name": "MKTS27073_0BRW", + "semantic_category": "BOTTOM/SKIRT" + }, + { + "image_path": "mi-tu/26/JEANS/JEANS SKIRT/MLSS27119_0BLU.jpg", + "item_name": "MLSS27119_0BLU", + "semantic_category": "JEANS/JEANS SKIRT" + }, + { + "image_path": "mi-tu/26/ONE PIECE/DRESS/MLSS27113_0BLK.jpg", + "item_name": "MLSS27113_0BLK", + "semantic_category": "ONE PIECE/DRESS" } ], "query": [ { - "image_path": "mi-tu/26/BOTTOM/SHORTS/MKTS27016_0BLK.jpg/MKTS27016_0BLK.jpg", - "item_name": "MKTS27016", + "image_path": "mi-tu/26/BOTTOM/PANTS/MKTS27000_0BLK.jpg", + "item_name": "MKTS27000_0BLK", + "semantic_category": "BOTTOM/PANTS" + }, + { + "image_path": "mi-tu/26/OUTERWEAR/GILET/MKTS27003_0BGE.jpg", + "item_name": "MKTS27003_0BGE", + "semantic_category": "OUTERWEAR/GILET" + }, + { + "image_path": "mi-tu/26/BOTTOM/PANTS/MKTS27004_0BLU.jpg", + "item_name": "MKTS27004_0BLU", + "semantic_category": "BOTTOM/PANTS" + }, + { + "image_path": "mi-tu/26/OUTERWEAR/BLAZER/MKTS27008_0BLK.jpg", + "item_name": "MKTS27008_0BLK", + "semantic_category": "OUTERWEAR/BLAZER" + }, + { + "image_path": "mi-tu/26/TOP/BLOUSE/MKTS27002_0BLK.jpg", + "item_name": "MKTS27002_0BLK", + "semantic_category": "TOP/BLOUSE" + }, + { + "image_path": "mi-tu/26/BOTTOM/SHORTS/MKTS27001_0BLK.jpg", + "item_name": "MKTS27001_0BLK", "semantic_category": "BOTTOM/SHORTS" }, { - "image_path": "mi-tu/26/OUTERWEAR/WINDBREAKER/MKTS27017_0GRN.jpg/MKTS27017_0GRN.jpg", - "item_name": "MKTS27017", - "semantic_category": "OUTERWEAR/WINDBREAKER" - }, - { - "image_path": "mi-tu/26/OUTERWEAR/JACKET/MKTS27012_0BLU.jpg/MKTS27012_0BLU.jpg", - "item_name": "MKTS27012", - "semantic_category": "OUTERWEAR/JACKET" - }, - { - "image_path": "mi-tu/26/TOP/SHIRT/MKTS27018_0WHT.jpg/MKTS27018_0WHT.jpg", - "item_name": "MKTS27018", - "semantic_category": "TOP/SHIRT" - }, - { - "image_path": "mi-tu/26/TOP/SHIRT/MKTS27018_0BLK.jpg/MKTS27018_0BLK.jpg", - "item_name": "MKTS27018", - "semantic_category": "TOP/SHIRT" - }, - { - "image_path": "mi-tu/26/OUTERWEAR/BLAZER/MKTS27019_0BLK.jpg/MKTS27019_0BLK.jpg", - "item_name": "MKTS27019", - "semantic_category": "OUTERWEAR/BLAZER" - }, - { - "image_path": "mi-tu/26/OUTERWEAR/WINDBREAKER/MKTS27017_0PNK.jpg/MKTS27017_0PNK.jpg", - "item_name": "MKTS27017", - "semantic_category": "OUTERWEAR/WINDBREAKER" - }, - { - "image_path": "mi-tu/26/OUTERWEAR/BLAZER/MKTS27019_0PNK.jpg/MKTS27019_0PNK.jpg", - "item_name": "MKTS27019", - "semantic_category": "OUTERWEAR/BLAZER" - }, - { - "image_path": "mi-tu/26/BOTTOM/PANTS/MKTS27027_0DBL.jpg/MKTS27027_0DBL.jpg", - "item_name": "MKTS27027", + "image_path": "mi-tu/26/BOTTOM/PANTS/MKTS27004_0BGE.jpg", + "item_name": "MKTS27004_0BGE", "semantic_category": "BOTTOM/PANTS" }, { - "image_path": "mi-tu/26/BOTTOM/PANTS/MKTS27027_0PNK.jpg/MKTS27027_0PNK.jpg", - "item_name": "MKTS27027", + "image_path": "mi-tu/26/BOTTOM/PANTS/MKTS27009_0BLK.jpg", + "item_name": "MKTS27009_0BLK", "semantic_category": "BOTTOM/PANTS" + }, + { + "image_path": "mi-tu/26/BOTTOM/PANTS/MKTS27009_0FUS.jpg", + "item_name": "MKTS27009_0FUS", + "semantic_category": "BOTTOM/PANTS" + }, + { + "image_path": "mi-tu/26/TOP/VEST/MKTS27011_0BLK.jpg", + "item_name": "MKTS27011_0BLK", + "semantic_category": "TOP/VEST" } ], "is_best": true