Статьи

Построение системы рекомендаций с использованием моделей глубокого обучения

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

Системы рекомендаций можно разделить на 4 группы:

  • Рекомендация на основе характеристик продукта
  • Рекомендации, основанные на поведении других пользователей с продуктом
  • Рекомендация на основе общих характеристик пользователя
  • Рекомендация, основанная на более чем одном из ранее упомянутых критериев

В нашем случае мы собираемся дать рекомендации, основанные на характеристиках пользователя и продукта. Пользовательские характеристики, которые мы учитывали, были пол, возраст и индекс массы тела (ИМТ). Характеристики продукта, которые мы учитывали, были типом одежды, которую носит пользователь. Таким образом, нам нужна фотография пользователя, чтобы сделать прогноз всех характеристик, которые нам нужны, чтобы дать рекомендацию об одежде.

Мы собираемся получить характеристики одежды от изображения тела пользователя.

Мы используем оценку позы AlphaPose, чтобы определить, завершен ли пользователь или нет. Альфа Поза обнаруживает 19 ключевых точек человека. Если он обнаружит, по крайней мере, 17 баллов, мы предполагаем, что человек завершен.

Название изображенияИзображение 1: оценка AlphaPose

Мы переучили один из самых известных классификаторов в сети, YOLO v3. YOLO также является одним из самых точных классификаторов изображений. Набор данных, используемый для обучения, представляет собой небольшой набор огромного набора данных MMLAB, DeepFashion.

Другой используемой моделью был Dlib, get_frontal_face_detector (). Эта модель построена из 5 фильтров HOG. Модель распознает грани переднего вида и грани бокового обзора. Эта модель была выбрана потому, что она обладает высокой точностью и очень быстра. Для определения возраста и пола мы следили за постом науки о данных, где они используют openCV и сверточную нейронную сеть для классификации возраста и пола.

Для оценки IMC мы использовали статью «Оценка индекса массы тела по изображениям лица с использованием Keras и трансферного обучения».

Название изображенияРисунок 2: Архитектура системы рекомендаций

Интеграция моделей

Весь код был написан на Python3.5 с использованием некоторых библиотек компьютерного зрения, таких как OpenCV, и некоторых основ глубокого обучения, таких как Keras.


Джава