Обзор системы
stylepedia-1.png
Основанная в 2003 году, Mozat - это стартап со штаб-квартирой в Сингапуре и офисами в Китае и Саудовской Аравии. Компания специализируется на создании приложений для социальных сетей, общения и стиля жизни. Stylepedia - это приложение для гардероба, созданное Mozat, которое помогает пользователям открывать для себя новые стили и общаться с другими людьми, увлеченными модой. Среди его ключевых особенностей - возможность создания цифрового гардероба, персонализированные рекомендации по стилю, функциональность социальных сетей и инструмент поиска изображений, позволяющий находить вещи, похожие на те, что вы видели в Интернете или в реальной жизни.
Milvus используется для работы системы поиска изображений в Stylepedia. Приложение работает с тремя типами изображений: изображениями пользователей, изображениями товаров и модными фотографиями. Каждое изображение может включать в себя один или несколько элементов, что еще больше усложняет каждый запрос. Чтобы быть полезной, система поиска по изображениям должна быть точной, быстрой и стабильной. Эти характеристики закладывают прочный технический фундамент для добавления в приложение новых функций, таких как предложения нарядов и рекомендации модного контента.
Обзор системы
stylepedia-system-process.png
Система поиска изображений делится на оффлайн и онлайн компоненты.
В автономном режиме изображения векторизуются и помещаются в векторную базу данных (Milvus). В процессе обработки данных соответствующие изображения товаров и модные фотографии преобразуются в 512-мерные векторы признаков с помощью моделей обнаружения объектов и извлечения признаков. Затем векторные данные индексируются и добавляются в векторную базу данных.
В режиме онлайн выполняется запрос к базе данных изображений, и пользователю возвращаются похожие изображения. Как и в автономном режиме, изображение запроса обрабатывается моделями обнаружения объектов и выделения признаков для получения вектора признаков. Используя вектор признаков, Milvus ищет похожие векторы TopK и получает соответствующие им идентификаторы изображений. Наконец, после постобработки (фильтрации, сортировки и т. д.) возвращается коллекция изображений, схожих с изображением запроса.
Реализация
Реализация разбита на четыре модуля:
- Обнаружение одежды
- Извлечение признаков
- Поиск векторного сходства
- Постобработка
Обнаружение одежды
В модуле обнаружения одежды в качестве модели обнаружения объектов используется 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, пользователи могут найти модные фотографии, содержащие определенный предмет одежды. Это может быть новая одежда, которую кто-то думает приобрести, или что-то из собственной коллекции, что можно носить или сочетать с другими вещами. Затем, благодаря кластеризации предметов, с которыми они часто сочетаются, создаются предложения по выбору нарядов. Например, черная байкерская куртка может сочетаться с самыми разными вещами, такими как черные джинсы-скинни. Затем пользователи могут просмотреть соответствующие модные фотографии, где это сочетание встречается в выбранной формуле.
stylepedia-jacket-outfit.png
stylepedia-jacket-snapshot.png
Рекомендации по модным фотографиям
Основываясь на истории просмотров, симпатиях и содержимом цифрового шкафа пользователя, система рассчитывает сходство и предоставляет рекомендации по модным фотографиям, которые могут представлять интерес.
stylepedia-user-wardrobe.png
stylepedia-streetsnap-rec.png
Объединив методы глубокого обучения и компьютерного зрения, Mozat смог создать быструю, стабильную и точную систему поиска по сходству изображений, используя Milvus для работы различных функций приложения Stylepedia.
Не будьте незнакомцем
- Реализация
- Приложение
- Не будьте незнакомцем
On This Page
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word