🚀 Попробуйте Zilliz Cloud, полностью управляемый Milvus, бесплатно — ощутите 10-кратное увеличение производительности! Попробовать сейчас>

milvus-logo
LFAI

Обзор системы

  • Scenarios
July 09, 2021
Yu Fang

stylepedia-1.png stylepedia-1.png

Основанная в 2003 году, Mozat - это стартап со штаб-квартирой в Сингапуре и офисами в Китае и Саудовской Аравии. Компания специализируется на создании приложений для социальных сетей, общения и стиля жизни. Stylepedia - это приложение для гардероба, созданное Mozat, которое помогает пользователям открывать для себя новые стили и общаться с другими людьми, увлеченными модой. Среди его ключевых особенностей - возможность создания цифрового гардероба, персонализированные рекомендации по стилю, функциональность социальных сетей и инструмент поиска изображений, позволяющий находить вещи, похожие на те, что вы видели в Интернете или в реальной жизни.

Milvus используется для работы системы поиска изображений в Stylepedia. Приложение работает с тремя типами изображений: изображениями пользователей, изображениями товаров и модными фотографиями. Каждое изображение может включать в себя один или несколько элементов, что еще больше усложняет каждый запрос. Чтобы быть полезной, система поиска по изображениям должна быть точной, быстрой и стабильной. Эти характеристики закладывают прочный технический фундамент для добавления в приложение новых функций, таких как предложения нарядов и рекомендации модного контента.

Обзор системы

stylepedia-system-process.png stylepedia-system-process.png

Система поиска изображений делится на оффлайн и онлайн компоненты.

В автономном режиме изображения векторизуются и помещаются в векторную базу данных (Milvus). В процессе обработки данных соответствующие изображения товаров и модные фотографии преобразуются в 512-мерные векторы признаков с помощью моделей обнаружения объектов и извлечения признаков. Затем векторные данные индексируются и добавляются в векторную базу данных.

В режиме онлайн выполняется запрос к базе данных изображений, и пользователю возвращаются похожие изображения. Как и в автономном режиме, изображение запроса обрабатывается моделями обнаружения объектов и выделения признаков для получения вектора признаков. Используя вектор признаков, Milvus ищет похожие векторы TopK и получает соответствующие им идентификаторы изображений. Наконец, после постобработки (фильтрации, сортировки и т. д.) возвращается коллекция изображений, схожих с изображением запроса.

Реализация

Реализация разбита на четыре модуля:

  1. Обнаружение одежды
  2. Извлечение признаков
  3. Поиск векторного сходства
  4. Постобработка

Обнаружение одежды

В модуле обнаружения одежды в качестве модели обнаружения объектов используется YOLOv5, одноэтапная система обнаружения целей на основе якорей, благодаря своему небольшому размеру и возможности делать выводы в режиме реального времени. Она предлагает четыре размера моделей (YOLOv5s/m/l/x), и у каждого конкретного размера есть свои плюсы и минусы. Модели большего размера работают лучше (более высокая точность), но требуют гораздо больше вычислительной мощности и работают медленнее. Поскольку в данном случае объекты относительно крупные и их легко обнаружить, достаточно самой маленькой модели, YOLOv5s.

Предметы одежды на каждом изображении распознаются и вырезаются, чтобы служить исходными данными для модели извлечения признаков, используемой в последующей обработке. Одновременно модель обнаружения объектов предсказывает классификацию одежды в соответствии с заранее определенными классами (топы, верхняя одежда, брюки, юбки, платья и ромперы).

Извлечение признаков

Ключом к поиску сходства является модель извлечения признаков. Обрезанные изображения одежды встраиваются в 512-мерные векторы с плавающей запятой, которые представляют их атрибуты в машиночитаемом формате числовых данных. Применяется методология глубокого метрического обучения (DML) с EfficientNet в качестве базовой модели.

Метрическое обучение направлено на обучение модуля нелинейного извлечения признаков на основе CNN (или кодера) уменьшать расстояние между векторами признаков, соответствующими одному классу образцов, и увеличивать расстояние между векторами признаков, соответствующими разным классам образцов. В данном сценарии один и тот же класс образцов относится к одному и тому же предмету одежды.

EfficientNet учитывает как скорость, так и точность при равномерном масштабировании ширины, глубины и разрешения сети. В качестве сети извлечения признаков используется EfficientNet-B4, а на выходе конечного полностью связанного слоя - признаки изображения, необходимые для проведения поиска векторного сходства.

Milvus - это векторная база данных с открытым исходным кодом, поддерживающая операции создания, чтения, обновления и удаления (CRUD), а также поиск в триллионбайтных наборах данных практически в режиме реального времени. В Stylepedia она используется для крупномасштабного поиска векторных сходств, поскольку обладает высокой эластичностью, стабильностью, надежностью и молниеносной скоростью. Milvus расширяет возможности широко используемых библиотек векторных индексов (Faiss, NMSLIB, Annoy и др.) и предоставляет набор простых и интуитивно понятных API, позволяющих пользователям выбрать идеальный тип индекса для конкретного сценария.

Учитывая требования сценария и масштаб данных, разработчики Stylepedia использовали дистрибутив Milvus только для процессоров в паре с индексом HNSW. Две индексированные коллекции, одна для товаров, а другая для модных фотографий, созданы для обеспечения различных функциональных возможностей приложения. Каждая коллекция делится на шесть разделов на основе результатов обнаружения и классификации, чтобы сузить область поиска. Milvus выполняет поиск по десяткам миллионов векторов за миллисекунды, обеспечивая оптимальную производительность при низкой стоимости разработки и минимальном потреблении ресурсов.

Постобработка

Чтобы улучшить сходство между результатами поиска изображений и запрошенным изображением, мы используем фильтрацию по цвету и ключевым меткам (длина рукава, длина одежды, стиль воротника и т. д.) для отсеивания неподходящих изображений. Кроме того, используется алгоритм оценки качества изображений, чтобы убедиться, что изображения более высокого качества будут представлены пользователям первыми.

Приложение

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

stylepedia-search-results.png stylepedia-search-results.png

Предложения нарядов

Проведя поиск по сходству в базе данных Stylepedia, пользователи могут найти модные фотографии, содержащие определенный предмет одежды. Это может быть новая одежда, которую кто-то думает приобрести, или что-то из собственной коллекции, что можно носить или сочетать с другими вещами. Затем, благодаря кластеризации предметов, с которыми они часто сочетаются, создаются предложения по выбору нарядов. Например, черная байкерская куртка может сочетаться с самыми разными вещами, такими как черные джинсы-скинни. Затем пользователи могут просмотреть соответствующие модные фотографии, где это сочетание встречается в выбранной формуле.

stylepedia-jacket-outfit.png stylepedia-jacket-outfit.png

stylepedia-jacket-snapshot.png stylepedia-jacket-snapshot.png

Рекомендации по модным фотографиям

Основываясь на истории просмотров, симпатиях и содержимом цифрового шкафа пользователя, система рассчитывает сходство и предоставляет рекомендации по модным фотографиям, которые могут представлять интерес.

stylepedia-user-wardrobe.png stylepedia-user-wardrobe.png

stylepedia-streetsnap-rec.png stylepedia-streetsnap-rec.png

Объединив методы глубокого обучения и компьютерного зрения, Mozat смог создать быструю, стабильную и точную систему поиска по сходству изображений, используя Milvus для работы различных функций приложения Stylepedia.

Не будьте незнакомцем

  • Найдите Milvus на GitHub и внесите в него свой вклад.
  • Общайтесь с сообществом через Slack.
  • Общайтесь с нами в Twitter.

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started

Like the article? Spread the word

Продолжить чтение