SlideShare a Scribd company logo
1 of 30
Определение атрибутов и
визуальный поиск в UGC-
фотографиях одежды
Дмитрий Соловьев, ведущий разработчик
Онлайн-продажи одежды
 Мировой оборот от онлайн продаж
одежды составляет примерно $100
миллионов в год,
 В конкурентной среде улучшение
качества обслуживания является
жизненно необходимым.
Понять, чего вы хотите достаточно тяжело
Но современные достижения в области
“Computer Vision” могут оказать нам помощь
Постановка задачи
Хотим:
Повысить качество рекомендаций через похожесть
Проблема
Нет метаданных для полнотекстового поиска,
можем использовать только контент: изображение
Причина:
Весь контент UGC – слабо аннотируется людьми
Будем принимать во внимание только визуальную
информацию: фотографии, загруженные человеком
Идея решения
• Каждое изображение представляем как вектор
𝑥 ∈ ℝn
( вектор признаков или эмбединг)
• Определяем меру близости для этих векторов
𝑀 ∶ ℝn × ℝn → ℝ (например, евклидово
расстояние)
• Изображение-запрос так же конвертируем в
вектор
• Осуществляем поиск в векторном пространстве,
используя меру 𝑀, по имеющейся базе
изображений
Фото одежды Вектор признаков
Алгоритм
База данных
Запрос
Топ ранки
Сверточная нейронная сеть (CNN)
CNN – суперпозиция
сверточных фильтров и
нелинейных функций…
CNN можно рассмотреть как
“black-box”, для которого мы
задаем данные и определяем
критерий для выхода.
Yosinski et al, “Understanding Neural Networks Through Deep Visualization”, ICML DL Workshop 2014.
Внутри CNN
Фильтры каждого
слоя CNN выделяют
определенные
паттерны.
 Границы
 Текстуры
 Части объектов
Layer1
Вектор признаков классификатора
Последний слой сети – признаки,
представляющие общие
концепты изображения, важные
для целевой задачи.
Датасет с хорошей
диверсификацией даст нам
хороший набор признаков
ImageNet – собран из более чем
миллиона изображений с
разделением на 1000 классов.
Признаки CNN + t-SNE
Используем признаки ImageNet
Используем последний слой
VGG19, обученной на ImageNet в
качестве вектора признаков
Ответ плохо соответствует
запросу (первая фотография)
Классификатор одежды
Для задачи нужны специфические признаки
CNN, обученная предсказывать атрибуты
одежды, будет иметь нужный нам вектор
признаков
Чем больше разных атрибутов, тем лучше
тип
воротника
вид рукава
талия
паттерн
материала
Данные для классификатора
Фотографии были собраны из известных онлайн-магазинов
Каждое изображение размечено четырьмя типами атрибутов:
collar, fit, pattern and sleeve. Внутри каждого атрибута категории
являются взаимоисключающими.
Датасет содержит примерно 200.000 изображений.
Базовая архитектура
Участники ILSVRC ежегодно
улучшают результат в задачах
распознавания.
Предложенные модели применимы
для других классов задач.
Transfer Learning позволяет
уменьшить количество данных.
ResNet
Каждый блок представляет функцию 𝑦 = 𝐹 𝑥 + 𝑥 и
учит разницу между входом и выходом
Такой подход позволяет тренировать сети более с чем
1000 слоями.
ResNet-101 имеет почти в три раза меньше параметров
чем VGG-19
K. He, X. Zhang, S. Ren è J. Sun, “Deep residual learning for image recognition”.
Тренируем классификатор
 Softmax для каждого атрибута
 ResNet-18
 200k фотографий в обучении
Сравнение результатов
Сравнение результатов
Сравнение результатов
Сравнение результатов (Авто)
Контент, созданный пользователем (UGC)
Пользователи фотографируют как
попало.
Нужна унификация.
Решение: локализация объектов.
Наивный подход к локализации
“Bounding box” описывается
четырьмя координатами.
Тренируем CNN, решая задачу
регрессии.
Недостатки наивного подхода
Наивный подход выдает
неаккуратный результат
Не решает задачу в случае: если на
фото нет одежды или более одной
персоны
Object Detection
Используем продвинутые подходы
нахождения всех интересующих
объектов на фото.
 region proposal based
(R-CNN)
 prior-boxes based
(YOLO, SSD)
Оценка методов
W. Liu, D. Anguelov, D. Erhan et. al., “Ssd: Single shot multibox detector”. Slides
Single Shot Multi-Box Detector
Feed-forward конволюционная сеть
Дополнительные структурные блоки
Использует набор предопределенных bounding boxes
SSD: идея
W. Liu, D. Anguelov, D. Erhan et. al., “Ssd: Single shot multibox detector”
Non-Maximum Suppression
IoU –
Intersection
over Union
1. Выбираем прямоугольник с
максимальным ранком класса
2. Откидываем все прямоугольники с
IoU > 0.7
3. Повторяем с шага 1.
SSD: результат
Landmarks Detection
Для более точной локализации
можно определять опорные точки
(landmark)
В некоторых случаях выравнивание
объектов дает улучшение
Результат
• 50 асессоров, 20 запросов каждый
• 90% запросов содержат релевантный результат
Спасибо за внимание
d.soloviev@corp.mail.ru

More Related Content

Similar to Определение атрибутов и визуальный поиск в UGC-фотографиях одежды / Дмитрий Соловьев (Mail.ru Group)

белогорцев глеб белогорцев
белогорцев глеб белогорцевбелогорцев глеб белогорцев
белогорцев глеб белогорцев
rit2010
 
Поиск объектов
Поиск объектовПоиск объектов
Поиск объектов
LiloSEA
 
Расчетная работа Цифровой коллаж
Расчетная работа Цифровой коллажРасчетная работа Цифровой коллаж
Расчетная работа Цифровой коллаж
sheplyakov
 
FaceDetection+GenderRecognition_review
FaceDetection+GenderRecognition_reviewFaceDetection+GenderRecognition_review
FaceDetection+GenderRecognition_review
Khryashchev
 
20100502 computer vision_lempitsky_lectures01-02
20100502 computer vision_lempitsky_lectures01-0220100502 computer vision_lempitsky_lectures01-02
20100502 computer vision_lempitsky_lectures01-02
Computer Science Club
 
20100502 computer vision_lempitsky_lectures01-02
20100502 computer vision_lempitsky_lectures01-0220100502 computer vision_lempitsky_lectures01-02
20100502 computer vision_lempitsky_lectures01-02
Computer Science Club
 
Uncertainty and Contradiction in Multi-agent Systems
Uncertainty and Contradiction in Multi-agent SystemsUncertainty and Contradiction in Multi-agent Systems
Uncertainty and Contradiction in Multi-agent Systems
Catherine Vorobiova
 

Similar to Определение атрибутов и визуальный поиск в UGC-фотографиях одежды / Дмитрий Соловьев (Mail.ru Group) (20)

Лекция 1
Лекция 1Лекция 1
Лекция 1
 
белогорцев глеб белогорцев
белогорцев глеб белогорцевбелогорцев глеб белогорцев
белогорцев глеб белогорцев
 
Introduction to Deep Learning
Introduction to Deep LearningIntroduction to Deep Learning
Introduction to Deep Learning
 
Denis Perevalov -- Computer Vision with OpenCV 2
Denis Perevalov -- Computer Vision with OpenCV 2Denis Perevalov -- Computer Vision with OpenCV 2
Denis Perevalov -- Computer Vision with OpenCV 2
 
л.1
л.1л.1
л.1
 
Поиск объектов
Поиск объектовПоиск объектов
Поиск объектов
 
Interaction using kinect
Interaction using kinectInteraction using kinect
Interaction using kinect
 
Новые технологии в поисковом ранжировании
Новые технологии в поисковом ранжированииНовые технологии в поисковом ранжировании
Новые технологии в поисковом ранжировании
 
Achivster
AchivsterAchivster
Achivster
 
Расчетная работа Цифровой коллаж
Расчетная работа Цифровой коллажРасчетная работа Цифровой коллаж
Расчетная работа Цифровой коллаж
 
CV2015. Лекция 5. Выделение объектов.
CV2015. Лекция 5. Выделение объектов.CV2015. Лекция 5. Выделение объектов.
CV2015. Лекция 5. Выделение объектов.
 
FaceDetection+GenderRecognition_review
FaceDetection+GenderRecognition_reviewFaceDetection+GenderRecognition_review
FaceDetection+GenderRecognition_review
 
Алексей Авдеев — Применение Backbone.js для рефакторинга фронтенда веб-прилож...
Алексей Авдеев — Применение Backbone.js для рефакторинга фронтенда веб-прилож...Алексей Авдеев — Применение Backbone.js для рефакторинга фронтенда веб-прилож...
Алексей Авдеев — Применение Backbone.js для рефакторинга фронтенда веб-прилож...
 
Valentina Kustikova and Pavel Druzhkov - The Investigation of Deep Data Repre...
Valentina Kustikova and Pavel Druzhkov - The Investigation of Deep Data Repre...Valentina Kustikova and Pavel Druzhkov - The Investigation of Deep Data Repre...
Valentina Kustikova and Pavel Druzhkov - The Investigation of Deep Data Repre...
 
Современные архитектуры диалоговых систем / Анатолий Востряков (Segmento)
Современные архитектуры диалоговых систем / Анатолий Востряков (Segmento)Современные архитектуры диалоговых систем / Анатолий Востряков (Segmento)
Современные архитектуры диалоговых систем / Анатолий Востряков (Segmento)
 
Introduction to Machine Learning
Introduction to Machine LearningIntroduction to Machine Learning
Introduction to Machine Learning
 
4 azure 24 04
4 azure 24 044 azure 24 04
4 azure 24 04
 
20100502 computer vision_lempitsky_lectures01-02
20100502 computer vision_lempitsky_lectures01-0220100502 computer vision_lempitsky_lectures01-02
20100502 computer vision_lempitsky_lectures01-02
 
20100502 computer vision_lempitsky_lectures01-02
20100502 computer vision_lempitsky_lectures01-0220100502 computer vision_lempitsky_lectures01-02
20100502 computer vision_lempitsky_lectures01-02
 
Uncertainty and Contradiction in Multi-agent Systems
Uncertainty and Contradiction in Multi-agent SystemsUncertainty and Contradiction in Multi-agent Systems
Uncertainty and Contradiction in Multi-agent Systems
 

More from Ontico

Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Ontico
 

More from Ontico (20)

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
 

Определение атрибутов и визуальный поиск в UGC-фотографиях одежды / Дмитрий Соловьев (Mail.ru Group)

  • 1. Определение атрибутов и визуальный поиск в UGC- фотографиях одежды Дмитрий Соловьев, ведущий разработчик
  • 2. Онлайн-продажи одежды  Мировой оборот от онлайн продаж одежды составляет примерно $100 миллионов в год,  В конкурентной среде улучшение качества обслуживания является жизненно необходимым. Понять, чего вы хотите достаточно тяжело Но современные достижения в области “Computer Vision” могут оказать нам помощь
  • 3. Постановка задачи Хотим: Повысить качество рекомендаций через похожесть Проблема Нет метаданных для полнотекстового поиска, можем использовать только контент: изображение Причина: Весь контент UGC – слабо аннотируется людьми Будем принимать во внимание только визуальную информацию: фотографии, загруженные человеком
  • 4. Идея решения • Каждое изображение представляем как вектор 𝑥 ∈ ℝn ( вектор признаков или эмбединг) • Определяем меру близости для этих векторов 𝑀 ∶ ℝn × ℝn → ℝ (например, евклидово расстояние) • Изображение-запрос так же конвертируем в вектор • Осуществляем поиск в векторном пространстве, используя меру 𝑀, по имеющейся базе изображений Фото одежды Вектор признаков Алгоритм База данных Запрос Топ ранки
  • 5. Сверточная нейронная сеть (CNN) CNN – суперпозиция сверточных фильтров и нелинейных функций… CNN можно рассмотреть как “black-box”, для которого мы задаем данные и определяем критерий для выхода.
  • 6. Yosinski et al, “Understanding Neural Networks Through Deep Visualization”, ICML DL Workshop 2014. Внутри CNN Фильтры каждого слоя CNN выделяют определенные паттерны.  Границы  Текстуры  Части объектов Layer1
  • 7. Вектор признаков классификатора Последний слой сети – признаки, представляющие общие концепты изображения, важные для целевой задачи. Датасет с хорошей диверсификацией даст нам хороший набор признаков ImageNet – собран из более чем миллиона изображений с разделением на 1000 классов.
  • 9. Используем признаки ImageNet Используем последний слой VGG19, обученной на ImageNet в качестве вектора признаков Ответ плохо соответствует запросу (первая фотография)
  • 10. Классификатор одежды Для задачи нужны специфические признаки CNN, обученная предсказывать атрибуты одежды, будет иметь нужный нам вектор признаков Чем больше разных атрибутов, тем лучше тип воротника вид рукава талия паттерн материала
  • 11. Данные для классификатора Фотографии были собраны из известных онлайн-магазинов Каждое изображение размечено четырьмя типами атрибутов: collar, fit, pattern and sleeve. Внутри каждого атрибута категории являются взаимоисключающими. Датасет содержит примерно 200.000 изображений.
  • 12. Базовая архитектура Участники ILSVRC ежегодно улучшают результат в задачах распознавания. Предложенные модели применимы для других классов задач. Transfer Learning позволяет уменьшить количество данных.
  • 13. ResNet Каждый блок представляет функцию 𝑦 = 𝐹 𝑥 + 𝑥 и учит разницу между входом и выходом Такой подход позволяет тренировать сети более с чем 1000 слоями. ResNet-101 имеет почти в три раза меньше параметров чем VGG-19 K. He, X. Zhang, S. Ren è J. Sun, “Deep residual learning for image recognition”.
  • 14. Тренируем классификатор  Softmax для каждого атрибута  ResNet-18  200k фотографий в обучении
  • 19. Контент, созданный пользователем (UGC) Пользователи фотографируют как попало. Нужна унификация. Решение: локализация объектов.
  • 20. Наивный подход к локализации “Bounding box” описывается четырьмя координатами. Тренируем CNN, решая задачу регрессии.
  • 21. Недостатки наивного подхода Наивный подход выдает неаккуратный результат Не решает задачу в случае: если на фото нет одежды или более одной персоны
  • 22. Object Detection Используем продвинутые подходы нахождения всех интересующих объектов на фото.  region proposal based (R-CNN)  prior-boxes based (YOLO, SSD)
  • 23. Оценка методов W. Liu, D. Anguelov, D. Erhan et. al., “Ssd: Single shot multibox detector”. Slides
  • 24. Single Shot Multi-Box Detector Feed-forward конволюционная сеть Дополнительные структурные блоки Использует набор предопределенных bounding boxes
  • 25. SSD: идея W. Liu, D. Anguelov, D. Erhan et. al., “Ssd: Single shot multibox detector”
  • 26. Non-Maximum Suppression IoU – Intersection over Union 1. Выбираем прямоугольник с максимальным ранком класса 2. Откидываем все прямоугольники с IoU > 0.7 3. Повторяем с шага 1.
  • 28. Landmarks Detection Для более точной локализации можно определять опорные точки (landmark) В некоторых случаях выравнивание объектов дает улучшение
  • 29. Результат • 50 асессоров, 20 запросов каждый • 90% запросов содержат релевантный результат