Picture using minio service
This commit is contained in:
@@ -11,8 +11,12 @@ def sim_score(a, b):
|
||||
|
||||
|
||||
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"))
|
||||
# fashion_categories = json.load(open(r"config/fashion_categories.json", "r"))
|
||||
# fashion_categories_mapping = json.load(open(r"config/fashion_category_mapping.json", "r"))
|
||||
|
||||
# service debug
|
||||
fashion_categories = json.load(open(r"service/outfit_matcher/config/fashion_categories.json", "r"))
|
||||
fashion_categories_mapping = json.load(open(r"service/outfit_matcher/config/fashion_category_mapping.json", "r"))
|
||||
|
||||
def __init__(self, item_metadata):
|
||||
self.item_metadat = item_metadata
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import io
|
||||
|
||||
import requests
|
||||
|
||||
from PIL import Image
|
||||
@@ -6,14 +8,22 @@ import numpy as np
|
||||
import tritonclient.http as httpclient
|
||||
import torch
|
||||
from matplotlib import pyplot as plt, image as mpimg
|
||||
from minio import Minio
|
||||
from torchvision import transforms
|
||||
|
||||
from foco import extract_main_colors
|
||||
from app.core.config import MINIO_IP, MINIO_ACCESS, MINIO_SECRET, MINIO_SECURE, MINIO_PORT, OM_TRITON_PORT, OM_TRITON_IP
|
||||
from app.service.outfit_matcher.foco import extract_main_colors
|
||||
from app.service.utils.decorator import RunTime
|
||||
|
||||
|
||||
class OutfitMatcher(object):
|
||||
def __init__(self):
|
||||
self.tritonclient = httpclient.InferenceServerClient(url="10.1.1.240:10010")
|
||||
self.minio_client = Minio(
|
||||
f"{MINIO_IP}:{MINIO_PORT}",
|
||||
access_key=MINIO_ACCESS,
|
||||
secret_key=MINIO_SECRET,
|
||||
secure=MINIO_SECURE)
|
||||
|
||||
@staticmethod
|
||||
def pad_array(input_value, value=0):
|
||||
@@ -66,64 +76,83 @@ class OutfitMatcher(object):
|
||||
cv2.subtract(img, mean, img) # inplace
|
||||
cv2.multiply(img, stdinv, img) # inplace
|
||||
return img
|
||||
|
||||
@RunTime
|
||||
def visualize(self, outfits, scores, topk=5, best=True, output_path=None):
|
||||
# 将outfits和scores按照scores的值进行排序
|
||||
sorted_indices = np.argsort(-scores.flatten() if best else scores.flatten())[:topk] # 使用负号进行降序排序
|
||||
outfits = [outfits[i] for i in sorted_indices]
|
||||
scores = scores[sorted_indices]
|
||||
|
||||
# 设置子图的行列数
|
||||
num_rows = len(outfits)
|
||||
num_cols = max([len(x) for x in outfits]) + 1 # 一个是图片,一个是分数
|
||||
|
||||
# 创建一个新的图像,并指定子图的行列数
|
||||
fig, axes = plt.subplots(num_rows, num_cols, figsize=(8, 15))
|
||||
|
||||
title = f"Best {topk} Outfits" if best else f"Worst {topk} Outfits"
|
||||
fig.suptitle(title, fontsize=16)
|
||||
|
||||
# 遍历每套outfit并将其显示在对应的子图中
|
||||
for i, (outfit, score) in enumerate(zip(outfits, scores)):
|
||||
# 显示分数
|
||||
axes[i, 0].text(0.1, 0.5, f"Score: {score[0]:.4f}", fontsize=12)
|
||||
axes[i, 0].axis("off")
|
||||
# 显示图片
|
||||
for j, item in enumerate(outfit):
|
||||
img = mpimg.imread(item['image_path']) # 读取图片
|
||||
axes[i, j + 1].imshow(img) # 在对应的子图中显示图片
|
||||
axes[i, j + 1].axis('off') # 关闭坐标轴
|
||||
axes[i, j + 1].set_title(item["semantic_category"], fontsize=10)
|
||||
for j in range(len(outfit), num_cols):
|
||||
axes[i, j].axis("off")
|
||||
|
||||
# 在每一行的底部添加一条横线
|
||||
axes[i, 0].axhline(y=0, color='black', linewidth=1)
|
||||
# 隐藏最后一行的横线
|
||||
axes[-1, 0].axhline(y=0, color='white', linewidth=1)
|
||||
|
||||
# 调整布局
|
||||
plt.subplots_adjust(wspace=0.1, hspace=0.1)
|
||||
plt.tight_layout()
|
||||
outfits = [outfits[i] for i in sorted_indices] # 最好或最差的五个
|
||||
scores = scores[sorted_indices] # 这五个的分数
|
||||
|
||||
# 是否画出来
|
||||
if output_path:
|
||||
plt.savefig(output_path)
|
||||
# 设置子图的行列数
|
||||
num_rows = len(outfits)
|
||||
num_cols = max([len(x) for x in outfits]) + 1 # 一个是图片,一个是分数
|
||||
|
||||
# 创建一个新的图像,并指定子图的行列数
|
||||
fig, axes = plt.subplots(num_rows, num_cols, figsize=(8, 15))
|
||||
|
||||
title = f"Best {topk} Outfits" if best else f"Worst {topk} Outfits"
|
||||
fig.suptitle(title, fontsize=16)
|
||||
|
||||
# 遍历每套outfit并将其显示在对应的子图中
|
||||
for i, (outfit, score) in enumerate(zip(outfits, scores)):
|
||||
# 显示分数
|
||||
axes[i, 0].text(0.1, 0.5, f"Score: {score[0]:.4f}", fontsize=12)
|
||||
axes[i, 0].axis("off")
|
||||
# 显示图片
|
||||
for j, item in enumerate(outfit):
|
||||
img = mpimg.imread(item['image_path']) # 读取图片
|
||||
axes[i, j + 1].imshow(img) # 在对应的子图中显示图片
|
||||
axes[i, j + 1].axis('off') # 关闭坐标轴
|
||||
axes[i, j + 1].set_title(item["semantic_category"], fontsize=10)
|
||||
for j in range(len(outfit), num_cols):
|
||||
axes[i, j].axis("off")
|
||||
|
||||
# 在每一行的底部添加一条横线
|
||||
axes[i, 0].axhline(y=0, color='black', linewidth=1)
|
||||
# 隐藏最后一行的横线
|
||||
axes[-1, 0].axhline(y=0, color='white', linewidth=1)
|
||||
|
||||
# 调整布局
|
||||
plt.subplots_adjust(wspace=0.1, hspace=0.1)
|
||||
plt.tight_layout()
|
||||
|
||||
if output_path:
|
||||
plt.savefig(output_path)
|
||||
else:
|
||||
plt.show()
|
||||
else:
|
||||
plt.show()
|
||||
return outfits, scores.numpy().flatten().tolist()
|
||||
|
||||
|
||||
class OutfitMatcherHon(OutfitMatcher):
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
|
||||
@staticmethod
|
||||
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 load_image(self, img_path):
|
||||
try:
|
||||
# 从 MinIO 中获取对象(图像文件)
|
||||
image_data = self.minio_client.get_object(img_path.split("/", 1)[0], img_path.split("/", 1)[1])
|
||||
|
||||
# 读取图像数据并转换为 PIL 图像对象
|
||||
pil_image = Image.open(io.BytesIO(image_data.read()))
|
||||
|
||||
# 将 PIL 图像转换为 NumPy 数组
|
||||
image_array = np.array(pil_image)
|
||||
|
||||
return image_array
|
||||
except Exception as e:
|
||||
print(f"An error occurred: {e}")
|
||||
return None
|
||||
# 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)
|
||||
|
||||
@staticmethod
|
||||
def resize_image(img):
|
||||
@@ -190,18 +219,34 @@ class OutfitMaterTypeAware(OutfitMatcher):
|
||||
'outerwear', 'scarves', 'shoes', 'sunglasses', 'tops'
|
||||
]
|
||||
|
||||
@RunTime
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
|
||||
@staticmethod
|
||||
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 image
|
||||
@RunTime
|
||||
# TODO 用多线程读图片
|
||||
def load_image(self, img_path):
|
||||
try:
|
||||
# 从 MinIO 中获取对象(图像文件)
|
||||
image_data = self.minio_client.get_object(img_path.split("/", 1)[0], img_path.split("/", 1)[1])
|
||||
|
||||
# 读取图像数据并转换为 PIL 图像对象
|
||||
pil_image = Image.open(io.BytesIO(image_data.data)).convert("RGB")
|
||||
|
||||
# 将 PIL 图像转换为 NumPy 数组
|
||||
# image_array = np.array(pil_image)
|
||||
|
||||
return pil_image
|
||||
except Exception as e:
|
||||
print(f"An error occurred: {e}")
|
||||
return None
|
||||
# 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)
|
||||
|
||||
@staticmethod
|
||||
def resize_image(img):
|
||||
@@ -229,7 +274,6 @@ class OutfitMaterTypeAware(OutfitMatcher):
|
||||
image = self.load_image(item["image_path"])
|
||||
image = self.resize_image(image)
|
||||
images.append(image)
|
||||
|
||||
category = self.base_fashion_categories.index(item["mapped_cate"])
|
||||
categories.append(category)
|
||||
images = np.stack(images, axis=0)
|
||||
@@ -240,6 +284,7 @@ class OutfitMaterTypeAware(OutfitMatcher):
|
||||
outfit_categories, _ = self.pad_array(outfit_categories, value=len(self.base_fashion_categories))
|
||||
return outfit_images, outfit_categories, mask
|
||||
|
||||
@RunTime
|
||||
def get_result(self, outfits):
|
||||
"""Input outfits structure and output scores.
|
||||
Args:
|
||||
@@ -272,7 +317,7 @@ class OutfitMaterTypeAware(OutfitMatcher):
|
||||
scores: List of float
|
||||
"""
|
||||
image, category, mask = self.preprocess(outfits)
|
||||
client = httpclient.InferenceServerClient(url="localhost:8000")
|
||||
client = httpclient.InferenceServerClient(url=f"{OM_TRITON_IP}:{OM_TRITON_PORT}")
|
||||
# 输入集
|
||||
inputs = [
|
||||
httpclient.InferInput("input__0", image.shape, datatype="FP32"),
|
||||
@@ -290,4 +335,4 @@ class OutfitMaterTypeAware(OutfitMatcher):
|
||||
# 推理
|
||||
# 取结果
|
||||
scores = torch.from_numpy(results.as_numpy("output__0"))
|
||||
return scores # Shape (N, 1)
|
||||
return scores # Shape (N, 1)
|
||||
|
||||
@@ -1,25 +1,30 @@
|
||||
import json
|
||||
import os
|
||||
from pprint import pprint
|
||||
|
||||
from app.service.outfit_matcher.dataset import FashionDataset
|
||||
from app.service.outfit_matcher.outfit_evaluator import OutfitMaterTypeAware
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
with open("./test_param/recommendation_test.json", "r") as f:
|
||||
param = json.load(f)
|
||||
fashion_dataset = FashionDataset(param["database"])
|
||||
service = OutfitMaterTypeAware()
|
||||
best_list = []
|
||||
bad_list = []
|
||||
for item in param["query"]:
|
||||
outfits = fashion_dataset.generate_outfit(item, param["topk"], param["max_outfits"])
|
||||
scores = service.get_result(outfits)
|
||||
print(scores)
|
||||
# service.visualize(outfits, scores, param["topk"], best=True,
|
||||
# output_path=os.path.join(
|
||||
# r"E:\workspace\outfit_matcher\2024 SS Outfit",
|
||||
# f"{item['item_name']}_best_{param['topk']}.png"
|
||||
# ))
|
||||
# service.visualize(outfits, scores, param["topk"], best=False,
|
||||
# output_path=os.path.join(
|
||||
# r"E:\workspace\outfit_matcher\2024 SS Outfit",
|
||||
# f"{item['item_name']}_worst_{param['topk']}.png"
|
||||
# ))
|
||||
# print(scores)
|
||||
# print(len(scores))
|
||||
best_outfits, best_scores = service.visualize(outfits, scores, param["topk"], best=True,
|
||||
# output_path=os.path.join(r"E:\workspace\outfit_matcher\2024 SS Outfit", f"{item['item_name']}_best_{param['topk']}.png")
|
||||
)
|
||||
bad_outfits, bad_scores = service.visualize(outfits, scores, param["topk"], best=False,
|
||||
# output_path=os.path.join(r"E:\workspace\outfit_matcher\2024 SS Outfit", f"{item['item_name']}_worst_{param['topk']}.png")
|
||||
)
|
||||
best_list.append({"best_outfits": best_outfits, "best_scores": best_scores})
|
||||
bad_list.append({"bad_outfits": bad_outfits, "bad_scores": bad_scores})
|
||||
|
||||
pprint(best_list)
|
||||
pprint(bad_list)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,849 @@
|
||||
{
|
||||
"topk": 5,
|
||||
"max_outfits": 100,
|
||||
"is_best": true,
|
||||
"query": [
|
||||
{
|
||||
"item_name": "MKTS27047",
|
||||
"semantic_category": "ONE PIECE/DRESS",
|
||||
"image_path": "test/2024 SS/MKTS27047.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MKTS27028",
|
||||
"semantic_category": "OUTERWEAR/JACKET",
|
||||
"image_path": "test/2024 SS/MKTS27028.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_58057",
|
||||
"semantic_category": "OUTERWEAR/BLAZER",
|
||||
"image_path": "test/2024 SS/MSE_58057.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_58107",
|
||||
"semantic_category": "TOP/SHIRT",
|
||||
"image_path": "test/2024 SS/MSE_58107.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_58495",
|
||||
"semantic_category": "TOP/SHIRT",
|
||||
"image_path": "test/2024 SS/MSE_58495.jpg"
|
||||
}
|
||||
],
|
||||
"database": [
|
||||
{
|
||||
"item_name": "MKTS27017",
|
||||
"semantic_category": "OUTERWEAR/WINDBREAKER",
|
||||
"image_path": "test/2024 SS/MKTS27017.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MKTS27047",
|
||||
"semantic_category": "ONE PIECE/DRESS",
|
||||
"image_path": "test/2024 SS/MKTS27047.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MKTS27000",
|
||||
"semantic_category": "BOTTOM/PANTS",
|
||||
"image_path": "test/2024 SS/MKTS27000.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MKTS27001",
|
||||
"semantic_category": "BOTTOM/SHORTS",
|
||||
"image_path": "test/2024 SS/MKTS27001.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MZOS27178",
|
||||
"semantic_category": "KNIT/CARDIGAN",
|
||||
"image_path": "test/2024 SS/MZOS27178.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MZOS27179",
|
||||
"semantic_category": "KNIT/KNIT TOP",
|
||||
"image_path": "test/2024 SS/MZOS27179.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MWSS27184",
|
||||
"semantic_category": "TOP/TEE",
|
||||
"image_path": "test/2024 SS/MWSS27184.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MWSS27191",
|
||||
"semantic_category": "OUTERWEAR/TWIN SET",
|
||||
"image_path": "test/2024 SS/MWSS27191.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MWSS27193",
|
||||
"semantic_category": "OUTERWEAR/JACKET",
|
||||
"image_path": "test/2024 SS/MWSS27193.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MWSS27195",
|
||||
"semantic_category": "OUTERWEAR/GILET",
|
||||
"image_path": "test/2024 SS/MWSS27195.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MWSS27200",
|
||||
"semantic_category": "KNIT/VEST",
|
||||
"image_path": "test/2024 SS/MWSS27200.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MWSS27209",
|
||||
"semantic_category": "ONE PIECE/DRESS",
|
||||
"image_path": "test/2024 SS/MWSS27209.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MWSS27210",
|
||||
"semantic_category": "ONE PIECE/DRESS",
|
||||
"image_path": "test/2024 SS/MWSS27210.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MWSS27211",
|
||||
"semantic_category": "ONE PIECE/DRESS",
|
||||
"image_path": "test/2024 SS/MWSS27211.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MWSS27212",
|
||||
"semantic_category": "TOP/BLOUSE",
|
||||
"image_path": "test/2024 SS/MWSS27212.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MKTS27008",
|
||||
"semantic_category": "OUTERWEAR/BLAZER",
|
||||
"image_path": "test/2024 SS/MKTS27008.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MKTS27009",
|
||||
"semantic_category": "BOTTOM/PANTS",
|
||||
"image_path": "test/2024 SS/MKTS27009.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MKTS27010",
|
||||
"semantic_category": "OUTERWEAR/BLAZER",
|
||||
"image_path": "test/2024 SS/MKTS27010.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MKTS27012",
|
||||
"semantic_category": "OUTERWEAR/JACKET",
|
||||
"image_path": "test/2024 SS/MKTS27012.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MKTS27013",
|
||||
"semantic_category": "BOTTOM/SHORTS",
|
||||
"image_path": "test/2024 SS/MKTS27013.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MKTS27014",
|
||||
"semantic_category": "ONE PIECE/TWIN SET",
|
||||
"image_path": "test/2024 SS/MKTS27014.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MKTS27015",
|
||||
"semantic_category": "OUTERWEAR/GILET",
|
||||
"image_path": "test/2024 SS/MKTS27015.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MKTS27016",
|
||||
"semantic_category": "BOTTOM/SHORTS",
|
||||
"image_path": "test/2024 SS/MKTS27016.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MKTS27027",
|
||||
"semantic_category": "BOTTOM/PANTS",
|
||||
"image_path": "test/2024 SS/MKTS27027.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MKTS27028",
|
||||
"semantic_category": "OUTERWEAR/JACKET",
|
||||
"image_path": "test/2024 SS/MKTS27028.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MKTS27029",
|
||||
"semantic_category": "ONE PIECE/DRESS",
|
||||
"image_path": "test/2024 SS/MKTS27029.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MKTS27030",
|
||||
"semantic_category": "ONE PIECE/DRESS",
|
||||
"image_path": "test/2024 SS/MKTS27030.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MKTS27031",
|
||||
"semantic_category": "BOTTOM/SKIRT",
|
||||
"image_path": "test/2024 SS/MKTS27031.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MKTS27034",
|
||||
"semantic_category": "TOP/SHIRT",
|
||||
"image_path": "test/2024 SS/MKTS27034.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MKTS27035",
|
||||
"semantic_category": "ONE PIECE/TWIN SET",
|
||||
"image_path": "test/2024 SS/MKTS27035.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MKTS27038",
|
||||
"semantic_category": "TOP/TOP",
|
||||
"image_path": "test/2024 SS/MKTS27038.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MKTS27039",
|
||||
"semantic_category": "TOP/TOP",
|
||||
"image_path": "test/2024 SS/MKTS27039.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MKTS27040",
|
||||
"semantic_category": "TOP/TOP",
|
||||
"image_path": "test/2024 SS/MKTS27040.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MKTS27045",
|
||||
"semantic_category": "ONE PIECE/DRESS",
|
||||
"image_path": "test/2024 SS/MKTS27045.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MKTS27046",
|
||||
"semantic_category": "TOP/SHIRT",
|
||||
"image_path": "test/2024 SS/MKTS27046.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MKTS27050",
|
||||
"semantic_category": "TOP/TOP",
|
||||
"image_path": "test/2024 SS/MKTS27050.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MKTS27059",
|
||||
"semantic_category": "TOP/TEE",
|
||||
"image_path": "test/2024 SS/MKTS27059.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MKTS27061",
|
||||
"semantic_category": "TOP/TOP",
|
||||
"image_path": "test/2024 SS/MKTS27061.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MKTS27062",
|
||||
"semantic_category": "TOP/BLOUSE",
|
||||
"image_path": "test/2024 SS/MKTS27062.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MKTS27066",
|
||||
"semantic_category": "ONE PIECE/DRESS",
|
||||
"image_path": "test/2024 SS/MKTS27066.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MKTS27067",
|
||||
"semantic_category": "TOP/TEE",
|
||||
"image_path": "test/2024 SS/MKTS27067.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MKTS27068",
|
||||
"semantic_category": "ONE PIECE/TWIN SET",
|
||||
"image_path": "test/2024 SS/MKTS27068.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MKTS27002",
|
||||
"semantic_category": "TOP/BLOUSE",
|
||||
"image_path": "test/2024 SS/MKTS27002.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MKTS27003",
|
||||
"semantic_category": "OUTERWEAR/GILET",
|
||||
"image_path": "test/2024 SS/MKTS27003.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MKTS27004",
|
||||
"semantic_category": "BOTTOM/PANTS",
|
||||
"image_path": "test/2024 SS/MKTS27004.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MKTS27011",
|
||||
"semantic_category": "TOP/VEST",
|
||||
"image_path": "test/2024 SS/MKTS27011.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MKTS27018",
|
||||
"semantic_category": "TOP/SHIRT",
|
||||
"image_path": "test/2024 SS/MKTS27018.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MKTS27019",
|
||||
"semantic_category": "OUTERWEAR/BLAZER",
|
||||
"image_path": "test/2024 SS/MKTS27019.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MKTS27058",
|
||||
"semantic_category": "ONE PIECE/DRESS",
|
||||
"image_path": "test/2024 SS/MKTS27058.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MLSS27101",
|
||||
"semantic_category": "ONE PIECE/DRESS",
|
||||
"image_path": "test/2024 SS/MLSS27101.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MLSS27102",
|
||||
"semantic_category": "ONE PIECE/DRESS",
|
||||
"image_path": "test/2024 SS/MLSS27102.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MLSS27103",
|
||||
"semantic_category": "OUTERWEAR/GILET",
|
||||
"image_path": "test/2024 SS/MLSS27103.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MLSS27104",
|
||||
"semantic_category": "BOTTOM/SHORTS",
|
||||
"image_path": "test/2024 SS/MLSS27104.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MLSS27107",
|
||||
"semantic_category": "JEANS/JEANS",
|
||||
"image_path": "test/2024 SS/MLSS27107.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MLSS27109",
|
||||
"semantic_category": "JEANS/JEANS JACKET",
|
||||
"image_path": "test/2024 SS/MLSS27109.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MLSS27110",
|
||||
"semantic_category": "JEANS/JEANS JACKET",
|
||||
"image_path": "test/2024 SS/MLSS27110.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MLSS27111",
|
||||
"semantic_category": "JEANS/JEANS PANTS",
|
||||
"image_path": "test/2024 SS/MLSS27111.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MLSS27112",
|
||||
"semantic_category": "JEANS/JEANS PANTS",
|
||||
"image_path": "test/2024 SS/MLSS27112.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MLSS27113",
|
||||
"semantic_category": "ONE PIECE/DRESS",
|
||||
"image_path": "test/2024 SS/MLSS27113.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MLSS27119",
|
||||
"semantic_category": "JEANS/JEANS SKIRT",
|
||||
"image_path": "test/2024 SS/MLSS27119.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MLSS27122",
|
||||
"semantic_category": "ONE PIECE/DRESS",
|
||||
"image_path": "test/2024 SS/MLSS27122.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MLSS27123",
|
||||
"semantic_category": "TOP/TOP",
|
||||
"image_path": "test/2024 SS/MLSS27123.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MLSS27128",
|
||||
"semantic_category": "JEANS/JEANS JACKET",
|
||||
"image_path": "test/2024 SS/MLSS27128.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MLSS27129",
|
||||
"semantic_category": "JEANS/JEANS SHORTS",
|
||||
"image_path": "test/2024 SS/MLSS27129.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MLSS27132",
|
||||
"semantic_category": "TOP/TOP",
|
||||
"image_path": "test/2024 SS/MLSS27132.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MLSS27133",
|
||||
"semantic_category": "BOTTOM/SKIRT",
|
||||
"image_path": "test/2024 SS/MLSS27133.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MLSS27136",
|
||||
"semantic_category": "ONE PIECE/DRESS",
|
||||
"image_path": "test/2024 SS/MLSS27136.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MLSS27137",
|
||||
"semantic_category": "TOP/SHIRT",
|
||||
"image_path": "test/2024 SS/MLSS27137.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MLSS27140",
|
||||
"semantic_category": "OUTERWEAR/JACKET",
|
||||
"image_path": "test/2024 SS/MLSS27140.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MLSS27141",
|
||||
"semantic_category": "TOP/SHIRT",
|
||||
"image_path": "test/2024 SS/MLSS27141.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MLSS27142",
|
||||
"semantic_category": "TOP/SHIRT",
|
||||
"image_path": "test/2024 SS/MLSS27142.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MLSS27145",
|
||||
"semantic_category": "OUTERWEAR/WINDBREAKER",
|
||||
"image_path": "test/2024 SS/MLSS27145.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MLSS27146",
|
||||
"semantic_category": "TOP/TOP",
|
||||
"image_path": "test/2024 SS/MLSS27146.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MLSS27147",
|
||||
"semantic_category": "BOTTOM/SKIRT",
|
||||
"image_path": "test/2024 SS/MLSS27147.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MLSS27148",
|
||||
"semantic_category": "TOP/TOP",
|
||||
"image_path": "test/2024 SS/MLSS27148.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MLSS27149",
|
||||
"semantic_category": "BOTTOM/PANTS",
|
||||
"image_path": "test/2024 SS/MLSS27149.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MLSS27150",
|
||||
"semantic_category": "OUTERWEAR/JACKET",
|
||||
"image_path": "test/2024 SS/MLSS27150.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MLSS27152",
|
||||
"semantic_category": "TOP/TEE",
|
||||
"image_path": "test/2024 SS/MLSS27152.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MLSS27154",
|
||||
"semantic_category": "TOP/TEE",
|
||||
"image_path": "test/2024 SS/MLSS27154.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MLSS27156",
|
||||
"semantic_category": "TOP/VEST",
|
||||
"image_path": "test/2024 SS/MLSS27156.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MLSS27157",
|
||||
"semantic_category": "OUTERWEAR/WINDBREAKER",
|
||||
"image_path": "test/2024 SS/MLSS27157.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MLSS27159",
|
||||
"semantic_category": "BOTTOM/PANTS",
|
||||
"image_path": "test/2024 SS/MLSS27159.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MLSS27160",
|
||||
"semantic_category": "BOTTOM/PANTS",
|
||||
"image_path": "test/2024 SS/MLSS27160.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MLSS27161",
|
||||
"semantic_category": "KNIT/CARDIGAN",
|
||||
"image_path": "test/2024 SS/MLSS27161.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MLSS27162",
|
||||
"semantic_category": "TOP/SHIRT",
|
||||
"image_path": "test/2024 SS/MLSS27162.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MLSS27167",
|
||||
"semantic_category": "OUTERWEAR/JACKET",
|
||||
"image_path": "test/2024 SS/MLSS27167.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MLSS27173",
|
||||
"semantic_category": "ONE PIECE/DRESS",
|
||||
"image_path": "test/2024 SS/MLSS27173.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MLSS27174",
|
||||
"semantic_category": "TOP/TOP",
|
||||
"image_path": "test/2024 SS/MLSS27174.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MLSS27175",
|
||||
"semantic_category": "BOTTOM/PANTS",
|
||||
"image_path": "test/2024 SS/MLSS27175.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MLSS27176",
|
||||
"semantic_category": "BOTTOM/SKIRT",
|
||||
"image_path": "test/2024 SS/MLSS27176.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MKTS27073",
|
||||
"semantic_category": "BOTTOM/SKIRT",
|
||||
"image_path": "test/2024 SS/MKTS27073.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MLSS27226",
|
||||
"semantic_category": "BOTTOM/SKIRT",
|
||||
"image_path": "test/2024 SS/MLSS27226.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MPO_SP7685",
|
||||
"semantic_category": "TOP/BLOUSE",
|
||||
"image_path": "test/2024 SS/MPO_SP7685.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MPO_SP7686",
|
||||
"semantic_category": "TOP/SHIRT",
|
||||
"image_path": "test/2024 SS/MPO_SP7686.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MPO_SP7687",
|
||||
"semantic_category": "TOP/SHIRT",
|
||||
"image_path": "test/2024 SS/MPO_SP7687.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MPO_SP7692",
|
||||
"semantic_category": "ONE PIECE/DRESS",
|
||||
"image_path": "test/2024 SS/MPO_SP7692.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MPO_SP7693",
|
||||
"semantic_category": "ONE PIECE/DRESS",
|
||||
"image_path": "test/2024 SS/MPO_SP7693.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MPO_SP7694",
|
||||
"semantic_category": "ONE PIECE/DRESS",
|
||||
"image_path": "test/2024 SS/MPO_SP7694.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MPO_SP7696",
|
||||
"semantic_category": "BOTTOM/PANTS",
|
||||
"image_path": "test/2024 SS/MPO_SP7696.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MPO_SP7697",
|
||||
"semantic_category": "JEANS/JEANS",
|
||||
"image_path": "test/2024 SS/MPO_SP7697.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MPO_SP7704",
|
||||
"semantic_category": "OUTERWEAR/BLAZER",
|
||||
"image_path": "test/2024 SS/MPO_SP7704.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MPO_SP7705",
|
||||
"semantic_category": "OUTERWEAR/JACKET",
|
||||
"image_path": "test/2024 SS/MPO_SP7705.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MPO_SP7706",
|
||||
"semantic_category": "JEANS/JEANS JACKET",
|
||||
"image_path": "test/2024 SS/MPO_SP7706.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MPO_SP7711",
|
||||
"semantic_category": "TOP/VEST",
|
||||
"image_path": "test/2024 SS/MPO_SP7711.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MPO_SP7712",
|
||||
"semantic_category": "TOP/TANK",
|
||||
"image_path": "test/2024 SS/MPO_SP7712.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MPO_SP7717",
|
||||
"semantic_category": "TOP/TEE",
|
||||
"image_path": "test/2024 SS/MPO_SP7717.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MPO_SP7722",
|
||||
"semantic_category": "TOP/TOP",
|
||||
"image_path": "test/2024 SS/MPO_SP7722.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MPO_SP7723",
|
||||
"semantic_category": "TOP/BLOUSE",
|
||||
"image_path": "test/2024 SS/MPO_SP7723.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MPO_SP7726",
|
||||
"semantic_category": "TOP/SHIRT",
|
||||
"image_path": "test/2024 SS/MPO_SP7726.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MPO_SP7729",
|
||||
"semantic_category": "TOP/SHIRT",
|
||||
"image_path": "test/2024 SS/MPO_SP7729.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MPO_SP7731",
|
||||
"semantic_category": "TOP/BLOUSE",
|
||||
"image_path": "test/2024 SS/MPO_SP7731.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MPO_SP7732",
|
||||
"semantic_category": "TOP/SHIRT",
|
||||
"image_path": "test/2024 SS/MPO_SP7732.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MPO_SP7735",
|
||||
"semantic_category": "TOP/SHIRT",
|
||||
"image_path": "test/2024 SS/MPO_SP7735.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_58197",
|
||||
"semantic_category": "ONE PIECE/DRESS",
|
||||
"image_path": "test/2024 SS/MSE_58197.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_58198",
|
||||
"semantic_category": "TOP/BLOUSE",
|
||||
"image_path": "test/2024 SS/MSE_58198.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_58199",
|
||||
"semantic_category": "BOTTOM/PANTS",
|
||||
"image_path": "test/2024 SS/MSE_58199.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_58112",
|
||||
"semantic_category": "TOP/SHIRT",
|
||||
"image_path": "test/2024 SS/MSE_58112.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_58114",
|
||||
"semantic_category": "ONE PIECE/DRESS",
|
||||
"image_path": "test/2024 SS/MSE_58114.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_58241",
|
||||
"semantic_category": "TOP/BLOUSE",
|
||||
"image_path": "test/2024 SS/MSE_58241.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_57987",
|
||||
"semantic_category": "BOTTOM/PANTS",
|
||||
"image_path": "test/2024 SS/MSE_57987.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_57988",
|
||||
"semantic_category": "OUTERWEAR/BLAZER",
|
||||
"image_path": "test/2024 SS/MSE_57988.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_58203",
|
||||
"semantic_category": "OUTERWEAR/BLAZER",
|
||||
"image_path": "test/2024 SS/MSE_58203.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_58106",
|
||||
"semantic_category": "BOTTOM/PANTS",
|
||||
"image_path": "test/2024 SS/MSE_58106.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_58107",
|
||||
"semantic_category": "TOP/SHIRT",
|
||||
"image_path": "test/2024 SS/MSE_58107.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_58132",
|
||||
"semantic_category": "ONE PIECE/DRESS",
|
||||
"image_path": "test/2024 SS/MSE_58132.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_58133",
|
||||
"semantic_category": "TOP/SHIRT",
|
||||
"image_path": "test/2024 SS/MSE_58133.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_58057",
|
||||
"semantic_category": "OUTERWEAR/BLAZER",
|
||||
"image_path": "test/2024 SS/MSE_58057.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_58058",
|
||||
"semantic_category": "BOTTOM/PANTS",
|
||||
"image_path": "test/2024 SS/MSE_58058.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_58222",
|
||||
"semantic_category": "BOTTOM/SKIRT",
|
||||
"image_path": "test/2024 SS/MSE_58222.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_58317",
|
||||
"semantic_category": "TOP/BLOUSE",
|
||||
"image_path": "test/2024 SS/MSE_58317.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_58045",
|
||||
"semantic_category": "ONE PIECE/DRESS",
|
||||
"image_path": "test/2024 SS/MSE_58045.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_58275",
|
||||
"semantic_category": "JEANS/JEANS DRESS",
|
||||
"image_path": "test/2024 SS/MSE_58275.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_58276",
|
||||
"semantic_category": "JEANS/JEANS JACKET",
|
||||
"image_path": "test/2024 SS/MSE_58276.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_58277",
|
||||
"semantic_category": "JEANS/JEANS SKIRT",
|
||||
"image_path": "test/2024 SS/MSE_58277.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_58183",
|
||||
"semantic_category": "TOP/BLOUSE",
|
||||
"image_path": "test/2024 SS/MSE_58183.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_58184",
|
||||
"semantic_category": "ONE PIECE/DRESS",
|
||||
"image_path": "test/2024 SS/MSE_58184.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_58185",
|
||||
"semantic_category": "ONE PIECE/DRESS",
|
||||
"image_path": "test/2024 SS/MSE_58185.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_58188",
|
||||
"semantic_category": "BOTTOM/SKIRT",
|
||||
"image_path": "test/2024 SS/MSE_58188.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_54385",
|
||||
"semantic_category": "BOTTOM/PANTS",
|
||||
"image_path": "test/2024 SS/MSE_54385.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_56720",
|
||||
"semantic_category": "OUTERWEAR/BLAZER",
|
||||
"image_path": "test/2024 SS/MSE_56720.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_58174",
|
||||
"semantic_category": "TOP/TEE",
|
||||
"image_path": "test/2024 SS/MSE_58174.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_58044",
|
||||
"semantic_category": "OUTERWEAR/JACKET",
|
||||
"image_path": "test/2024 SS/MSE_58044.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_58361",
|
||||
"semantic_category": "ONE PIECE/DRESS",
|
||||
"image_path": "test/2024 SS/MSE_58361.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_58495",
|
||||
"semantic_category": "TOP/SHIRT",
|
||||
"image_path": "test/2024 SS/MSE_58495.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_58536",
|
||||
"semantic_category": "ACCESSORY/BAG",
|
||||
"image_path": "test/2024 SS/MSE_58536.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_58653",
|
||||
"semantic_category": "TOP/SHIRT",
|
||||
"image_path": "test/2024 SS/MSE_58653.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_58287",
|
||||
"semantic_category": "BOTTOM/SHORTS",
|
||||
"image_path": "test/2024 SS/MSE_58287.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_58289",
|
||||
"semantic_category": "OUTERWEAR/BLAZER",
|
||||
"image_path": "test/2024 SS/MSE_58289.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_58323",
|
||||
"semantic_category": "TOP/BLOUSE",
|
||||
"image_path": "test/2024 SS/MSE_58323.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_58421",
|
||||
"semantic_category": "ONE PIECE/DRESS",
|
||||
"image_path": "test/2024 SS/MSE_58421.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_58451",
|
||||
"semantic_category": "ONE PIECE/DRESS",
|
||||
"image_path": "test/2024 SS/MSE_58451.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_58473",
|
||||
"semantic_category": "KNIT/KNIT TOP",
|
||||
"image_path": "test/2024 SS/MSE_58473.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_58498",
|
||||
"semantic_category": "ONE PIECE/DRESS",
|
||||
"image_path": "test/2024 SS/MSE_58498.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_58499",
|
||||
"semantic_category": "TOP/SHIRT",
|
||||
"image_path": "test/2024 SS/MSE_58499.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_58510",
|
||||
"semantic_category": "TOP/SHIRT",
|
||||
"image_path": "test/2024 SS/MSE_58510.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_58516",
|
||||
"semantic_category": "ONE PIECE/DRESS",
|
||||
"image_path": "test/2024 SS/MSE_58516.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_58518",
|
||||
"semantic_category": "BOTTOM/SKIRT",
|
||||
"image_path": "test/2024 SS/MSE_58518.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_58530",
|
||||
"semantic_category": "ONE PIECE/DRESS",
|
||||
"image_path": "test/2024 SS/MSE_58530.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_58540",
|
||||
"semantic_category": "TOP/SHIRT",
|
||||
"image_path": "test/2024 SS/MSE_58540.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_58547",
|
||||
"semantic_category": "TOP/TEE",
|
||||
"image_path": "test/2024 SS/MSE_58547.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_58618",
|
||||
"semantic_category": "TOP/BLOUSE",
|
||||
"image_path": "test/2024 SS/MSE_58618.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_58655",
|
||||
"semantic_category": "TOP/SHIRT",
|
||||
"image_path": "test/2024 SS/MSE_58655.jpg"
|
||||
},
|
||||
{
|
||||
"item_name": "MSE_58658",
|
||||
"semantic_category": "TOP/TEE",
|
||||
"image_path": "test/2024 SS/MSE_58658.jpg"
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user