/ Модель

Характеристики

Параметры
58,7 млн
Лицензия
MIT
Архитектура
swin · dense
Опубликована
2 дек 2024

fashion-image-feature-extractor

Классификация изображенийИзображение → label3 профессии

Модель извлекает 128-мерные признаки изображений одежды для визуального поиска и сопоставления фотографий с карточками товаров.

1 134скачиваний за 30 дней12лайковвеса обновлены8 июн 2025

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

Модель yainage90/fashion-image-feature-extractor разработана для извлечения признаков из изображений одежды. В её основе — microsoft/swin-base-patch4-window7-224 с добавленным полносвязным слоем, который уменьшает размер эмбеддинга до 128. Модель обучена контрастивным методом на парах изображений: область товара, обнаруженная на фотографии публикации, сопоставляется с миниатюрой соответствующего товара.

Модель предназначена для визуального поиска одежды и сопоставления фотографий с изображениями товаров. Обучающие данные включают около 290 тысяч пар из наборов onthelook и kream для категорий верхней и нижней одежды, верхней одежды, обуви, сумок и головных уборов. Для работы с моделью нужна лицензия MIT. Метаданные определяют её задачу как классификацию изображений, однако описанный в README способ обучения ориентирован на получение признаковых векторов для поиска похожих товаров.

Сценарии применения

  • поиск товара по фотографии одежды
  • сопоставление одежды на фото с миниатюрами товаров
  • поиск похожих изображений обуви, сумок и головных уборов

Ограничения

Обучение охватывает шесть категорий одежды и аксессуаров; README не сообщает метрик качества или проверок на других категориях и источниках изображений.

Для каких профессий подходит3

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

This is fashion image feature extractor model.

1. Model Architecture

I used microsoft/swin-base-patch4-window7-224 for base image encoder model. Just added a 128 size fully connected layer to lower embedding size. The dataset used anchor (product areas detected from posts) - positive (product thumbnail) image pairs. Within each batch, all samples except one's own positive were used as negative samples, training to minimize the distance between anchor-positive pairs while maximizing the distance between anchor-negative pairs. This method is known as contrastive learning, which is the training method used by OpenAI's CLIP model. Initially, anchor - positive - negative pairs were explicitly constructed in a 1:1:1 ratio using triplet loss, but training with in-batch negative sampling and contrastive loss showed much better performance as it allowed learning from more negative samples.

2. Training dataset

User posting images from onthelook and kream were crawled and preprocessed. First, raw data of image-product thumbnail combinations from posts were collected. Then, object detection was performed on posting images, and category classification was performed on product thumbnails to pair images of the same category together. For thumbnail category classification, a trained category classifier was used. Finally, about 290,000 anchor-positive image pairs were created for 6 categories: tops, bottoms, outer, shoes, bags, and hats. Finally, approximately 290,000 anchor-positive image pairs were created for 6 categories: tops, bottoms, outer, shoes, bags, and hats.

You can find object-detection model -> https://huggingface.co/yainage90/fashion-object-detection

You can find details of model in this github repo -> fashion-visual-search

from PIL import Image
import torch
import torch.nn as nn
import torch.nn.functional as F
import torchvision.transforms as v2
from transformers import AutoImageProcessor, SwinModel, SwinConfig
from huggingface_hub import PyTorchModelHubMixin

device = torch.device('cuda') if torch.cuda.is_available() else torch.device('cpu')

ckpt = "yainage90/fashion-image-feature-extractor"
encoder_config = SwinConfig.from_pretrained(ckpt)
encoder_image_processor = AutoImageProcessor.from_pretrained(ckpt)

class ImageEncoder(nn.Module, PyTorchModelHubMixin):
    def __init__(self):
        super(ImageEncoder, self).__init__()
        self.swin = SwinModel(config=encoder_config)
        self.embedding_layer = nn.Linear(encoder_config.hidden_size, 128)

    def forward(self, image_tensor):
        features = self.swin(image_tensor).pooler_output
        embeddings = self.embedding_layer(features)
        embeddings = F.normalize(embeddings, p=2, dim=1)

        return embeddings

encoder = ImageEncoder().from_pretrained('yainage90/fashion-image-feature-extractor').to(device)

transform = v2.Compose([
    v2.Resize((encoder_config.image_size, encoder_config.image_size)),
    v2.ToTensor(),
    v2.Normalize(mean=encoder_image_processor.image_mean, std=encoder_image_processor.image_std),
])

image = Image.open('<path/to/image>').convert('RGB')
image = transform(image)
with torch.no_grad():
    embedding = encoder(image.unsqueeze(0).to(device)).cpu().numpy()

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · image-classification

Можно запустить

Подбираем GPU…

Класс архитектуры
SwinForImageClassification
Ревизия весов
9ca8b23

0 моделей