Предыстория
В интернет-магазине модной одежды изображения одежды - это манекены обычных магазинов. Они могут дать покупателям идеи о том, как стилизовать и комбинировать продукты. Клиенты хотят знать, что надеть, как создать образ, а покупатели хотят иметь простой способ подобрать модную одежду. Многие изображения одежды / продуктов содержат ценную информацию о том, как комбинировать продукты. Одна из наших задач - как использовать эти изображения в уже доступных нарядах для создания новых комбинаций продуктов. Принципы, используемые в этом блоге, могут быть применены к нескольким случаям, если есть необходимость комбинировать визуальные представления.

Так почему мы хотим создавать наряды на основе изображений?

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

Методы

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

Метод 1. Алгоритмы сходства изображений.

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



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

Пример существующей экипировки:

Мы знаем это:

Итак, теперь вы можете комбинировать продукт B с остальной частью продукта A.

Недостатки этого метода

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

Метод 2. Прогнозирование товаров на основе изображений

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



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

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

Создание пар и подготовка данных

Первый шаг, который мы сделали, - это создание пар продуктов, которые хорошо сочетаются друг с другом (положительные образцы) из нашей одежды. Рядом с положительными парами из одежды мы генерируем случайные отрицательные пары, в которых товары не могут иметь одинаковые ярлыки (например, Bottom, Top, Shoe). Мы сбалансировали набор данных таким образом, чтобы положительное и отрицательное имели одинаковое количество репрезентаций (50/50). В нашем случае мы обнаружили, что если нет баланса между количеством представлений, модель будет более склонна предсказывать метку с наибольшим количеством представлений.

Положительные пары:
[продукт 1, продукт 2, соответствие]
[283301009379002,283301010218322, 1]
[283301009379002, 283301013747002, 1]

Отрицательные пары:
[продукт 1, продукт 2, соответствие]
[430601005309001, 837401289400000, 0]
[430601005309001, 352401000585413, 0]

Теперь, когда мы объединили артикулы, нам нужно сделать 1 представление данных обоих продуктов (как показано ниже).

В нашем случае процесс будет выглядеть так:

  1. используйте urlopen, чтобы получить все изображения продуктов
  2. изменить размер изображения до определенной длины, ширины (96,96,3)
  3. объединить массивы, чтобы получить входные данные для модели

Зачем использовать сверточную нейронную сеть (CNN)?

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

Я не буду вдаваться в подробности того, как работают CNN. Если вы не знакомы с CNN, это хорошее чтение, чтобы понять, как работают CNN:



Архитектура CNN, которую мы использовали, основана на SmallerVGGNet, это архитектура CNN, используемая для классификации изображений. В Интернете доступно множество примеров. Если вы хотите узнать больше об обучении / создании SmallerVGGNet для многозначной классификации, вы можете посмотреть эти блоги:





Вместо использования нескольких меток для классификации мы используем только две метки, совпадающие или не совпадающие (1 и 0). Таким образом, последний плотный слой состоит из 2 категорий, и последняя активация - Softmax.

Вывод модели

Модель генерирует вероятность того, что комбинация продукта A и продукта B является положительным совпадением.

Продукт A: Продукт B: Прогноз:

[
[Black_sneaker_1, Orange_top_3, 0.89772135],
[Pink_Skirt_1, Red_Top_4, 0.8700449],
[Pink_Skirt_1, White_T-shirt_1, 0.8203263],
[Green_Jacket_6, White_T-shirt_1, 0.8347643],
]

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

Итак, если мы знаем, что:

Продукт A и B = соответствует
Продукт A и C = соответствует
Продукт B и C = соответствует

Затем на основе выходных данных модели может быть создан наряд ABC.

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

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

Помните, что вывод - это представление ввода. Следовательно, если качество пар продуктов, включенных в модель, не соответствует определенному качеству, не ожидайте, что модель будет давать прогнозы качества.

Сравнение вывода

Чтобы дать представление о возможностях методов, ниже представлены результаты работы фотостудии и методы…

1. Оригинальный наряд для black_skirt_1 от нашей фотостудии:

2. Все доступные наряды для black_skirt_1 из подобия изображения (способ 1):

3. Все доступные наряды для black_skirt_1 от модели (способ 2):

В заключение

Результат обеих моделей дает нам возможность создавать больше нарядов на основе данных. Нам все еще нужно постоянно улучшать качество модели за счет дополнительных данных / новых данных. Тем не менее, это хорошая отправная точка для выработки рекомендаций по новому (снаряжению).
Оглядываясь назад, мы начали с простого решения, а сейчас ищем способы, которые позволят нам дать нашим клиентам больше идей о том, как стилизовать и комбинировать наши продукты.