Оценщик красоты с CNN: Как вы сравниваете со Скарлетт Йоханссон?

Уверены в своем взгляде? Что ж, вы можете здесь испытать удачу с нашей моделью.

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

1] Анализ набора данных

Прежде всего, набор данных был найден в документе (ссылка в конце статьи). Вот несколько надписей, которые помогут вам усвоить стандарт для аннотаций.

Распределение / выборка данных выглядит следующим образом (рис.1):

В первую очередь для мужчин:

  • Вот первые данные, которые относительно привлекательны.

  • Вот вторая точка данных для чуть менее привлекательного человека.

Теперь для женщин:

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

2] Архитектура для CNN

Для нашей задачи выбираем следующую архитектуру:

  • Шесть 2-мерных слоев свертки, одинаковые отступы (так как не стоит беспокоиться о границах) и до 512 фильтров для одного слоя
  • Шесть 2d MaxPools
  • Два слоя FC
  • Мы используем MSE как функцию потерь

Обратите внимание, что в последних слоях свертки размер фильтров уменьшен до 5x5, и поэтому захваченные объекты другого типа будут иметь размер 5x5 пикселей.

После 40 эпох мы достигаем потери проверки 0,4086 (потеря MSE), и вот история обучения. (рис.2)

3] Результаты заявки

Вот некоторые результаты вывода из модели

Опять же, исходный код можно найти здесь, на моем Github, так что вы также можете попробовать его.

Код выглядит следующим образом:

python3 use.py path_to_image

Вам будет доступен README.md.

4] Особенности красоты?

Давайте посмотрим, какие фильтры обучались после этих 40 эпох. Вот некоторые из фильтров / весов, найденных в последнем сверточном слое. (рис.4)

И на этом конкретном изображении (рис.4) мы даем результаты на уровне 10 (рис.5) и 15 (рис.6).

Некоторые комментарии к отфильтрованным изображениям слоями 10 и 15:

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

Источники изображений, бумага для документации:

Большое спасибо за чтение, и обязательно следите за нашим веб-сайтом + моим носителем + моим Github, чтобы получить больше статей и исходный код!