fix attribute 接口新增类别隐射 不完全依赖模型推理产品类别,以映射文件为主

This commit is contained in:
zhouchengrong
2024-04-08 15:23:23 +08:00
parent fda602b6fe
commit 3960a19014
5 changed files with 749 additions and 151 deletions

View File

@@ -4,3 +4,4 @@ from pydantic import BaseModel
class AttributeModel(BaseModel):
upload_img_path: list
upload_img_id: list
upload_img_category: list

View File

@@ -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"
}

View File

@@ -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))

View File

@@ -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