AI Visual Search for Clothing and Accessories

We design and deploy artificial intelligence systems: from prototype to production-ready solutions. Our team combines expertise in machine learning, data engineering and MLOps to make AI work not in the lab, but in real business.
Showing 1 of 1 servicesAll 1566 services
AI Visual Search for Clothing and Accessories
Medium
~2-4 weeks
FAQ
AI Development Areas
AI Solution Development Stages
Latest works
  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1161
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1041
  • image_logo-advance_0.png
    B2B Advance company logo design
    561
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    823
  • image_logo-aider_0.jpg
    AIDER company logo development
    762
  • image_crm_chasseurs_493_0.webp
    CRM development for Chasseurs
    848

Визуальный поиск одежды и аксессуаров на основе ИИ

Пользователь видит на улице куртку, фотографирует, открывает приложение — и находит точно такую или похожую в каталоге из 2 миллионов SKU за 200 ms. Это не маркетинговый сценарий, а вполне рабочая задача, которую решают ASOS, Zara, Pinterest и крупные fashion-ретейлеры. Технически в ней несколько нетривиальных слоёв.

Architecture visual search системы

Задача делится на два этапа:

  1. Offline: индексация каталога — построение векторных эмбеддингов для всех товаров
  2. Online: для запросного изображения извлечь эмбеддинг и найти ближайших соседей в индексе

Models эмбеддингов для fashion

Общие image embedding модели (CLIP, DINO) дают неплохую базу, но для fashion-поиска лучше специализированные:

Fashion CLIP — CLIP, дообученный на 800K fashion-пар изображение/описание. Понимает текстовые запросы типа «синее платье с V-образным вырезом» и визуальные одновременно.

SES (Style Embedding Space) — контрастивное обучение на triplet loss с парами похожих/непохожих товаров. Эмбеддинги группируют похожие стили в пространстве.

Metric learning подход: для высокой точности на конкретном каталоге — дообучение на собственных данных. ArcFace или Proxy-NCA loss на парах SKU одного стиля. Для каталога 500K+ SKU нужно минимум 50K обучающих пар с разметкой «похожие / непохожие».

Модель R@1 (DeepFashion) R@10 Размер эмбеддинга
ResNet-50 (ImageNet) 0.21 0.48 2048
CLIP ViT-B/32 0.34 0.61 512
Fashion CLIP 0.47 0.74 512
Fine-tuned ArcFace 0.63 0.85 256

Глубокий разбор: сегментация и re-ranking

Проблема background noise

Фото товара в каталоге — белый фон, студийный свет. Запросное фото пользователя — человек в толпе, сложный фон, частичная видимость вещи. Если извлекать эмбеддинг со всего изображения, модель будет матчиться по фону, а не по одежде.

Решение: сегментация одежды перед извлечением эмбеддинга. Models: HumanParsing (SCHP, lip-parser) для сегментации частей тела и одежды, Grounded-SAM для zero-shot сегментации по текстовому запросу. После сегментации — кроп одежды + белый или нейтральный фон.

Это существенно улучшает метрики: на внутреннем тесте с 50K запросами реальных пользователей R@1 вырос с 0.43 до 0.58 после добавления сегментации.

Re-ranking через attribute matching

После ANN-поиска в топ-100 результатах делаем attribute-based re-ranking:

  • Извлекаем атрибуты запросного изображения: цвет, паттерн (полоска/клетка/однотонный), силуэт (приталенный/свободный), материал (если видно)
  • Для этого — отдельный attribute classifier (multi-label) обученный на DeepFashion-C (280K изображений, 1000 атрибутов)
  • Ранжируем топ-100 по комбинации visual similarity + attribute match score

Это поднимает P@5 (точность в топ-5 результатах) на 12–15% по сравнению с чистым visual similarity.

Векторный индекс для production

Каталог 2M SKU = 2M векторов dim=256. Точный поиск (brute force) — неприемлемо медленно. Используем approximate nearest neighbor (ANN):

  • FAISS (Facebook AI Similarity Search) — стандарт де-факто, IndexIVFPQ с 1024 кластерами даёт recall 0.92 при latency < 10 ms для 2M векторов на одном A10G
  • Qdrant или Weaviate — managed vector DB с поддержкой фильтрации по метаданным (цвет, категория, размер, наличие на складе). Удобнее для production с частыми обновлениями каталога
  • pgvector — хороший выбор если уже есть PostgreSQL и каталог < 500K товаров

Обновление каталога: при добавлении нового SKU — инференс embedding модели + upsert в векторный индекс. Инкрементальные обновления без перестройки индекса.

Multimodal поиск: текст + изображение

CLIP-based архитектура позволяет искать по изображению + текстовому уточнению одновременно: «похожее платье, но красное» или «такая же куртка, но без капюшона». Реализуется через комбинирование эмбеддинга изображения с CLIP text эмбеддингом запроса (weighted sum или learned combination).

Сроки

MVP visual search для каталога до 100K SKU: 6–10 недель. Production система с сегментацией, attribute re-ranking и managed vector DB для 1M+ SKU: 3–5 месяцев.