Глубокое Обучение Определению Стиля И Жанра Картин

Привет, Хабр! Сегодня я хочу рассказать о второй части проекта сервиса по идентификации и классификации произведений искусства.

Напомню, мы решили две основные задачи:

  1. поиск картины в базе данных по фотографии, сделанной на мобильный телефон;
  2. определение стиля и жанра картины, которой нет в базе данных.

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



Глубокое обучение определению стиля и жанра картин

Можем ли мы помочь Даше разобраться в современном искусстве?

Определение стиля картины

Из почти 250 000 картин в базе данных БД Артхив менее 20% присвоены жанру, стилю или технике, часто отображаемые в базе классы не соответствуют истинным значениям, многие классы содержат слишком мало изображений.

Кажется, есть даже классы, содержащие единицы изображения.

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

Всего в базе было выявлено около 75 стилей, но для нашей работы заказчик выбрал 27 обязательных стилей (к которым впоследствии добавился еще один), которые система должна распознать.

Распределение наполнения по ним оказалось весьма неравномерным.

Стиль количество Стиль количество
Реализм 19594 Примитивизм 1234
Импрессионизм 15864 Арт-деко 1092
Романтизм 8963 Северное Возрождение 921
Барокко 7726 Кубизм 902
Современный 4882 Академизм 707
Сюрреализм 4793 Готика 608
Ренессанс 4709 Модернизм 539
Ээкспрессионизм 4329 Социалистический реализм 481
Символизм 4321 Поп арт 475
Пост Импрессионизм 3951 Пуантилизм 275
Абстракционизм 3664 фовизм 217
Укиё-э 3136 Авангард 174
Классицизм 1730 Гиперреализм 13
Рококо 1600 Фантазия 8
Общий 96908
Все стили
Стиль количество Стиль количество Стиль количество
Реализм 19594 Поп арт 475 Декоративизм 66
Импрессионизм 15864 Бидермейер 471 Минимализм 66
Романтизм 8963 Фантастический реализм 386 Сентиментализм 66
Барокко 7726 Абстрактный экспрессионизм 358 Клуазонизм 60
Современный 4882 Наби 339 Метафизическая живопись 56
Сюрреализм 4793 Пуантилизм 275 Маккиайоли 52
Ренессанс 4709 Супрематизм 273 Орфизм 51
Ээкспрессионизм 4329 Прерафаэлиты 252 дадаизм 50
Символизм 4321 Магический реализм 248 Неоимпрессионизм 49
Пост Импрессионизм 3951 Раннее Возрождение 232 Люминизм 41
Абстракционизм 3664 Неоэкспрессионизм 230 Проторенессанс 39
Золотой век Голландии 3292 фовизм 217 Плантанизм 37
Укиё-э 3136 Постмодернизм 192 Тенебризма 35
Классицизм 1730 Авангард 174 Абстрактный импрессионизм 34
Рококо 1600 Современное искусство 149 Концептуализм 29
Примитивизм 1234 Прецизионизм 138 японизм 24
Арт-деко 1092 Кубофутуризм 108 Постмодерн 24
Северное Возрождение 921 Конструктивизм 104 лучизм 24
Кубизм 902 Тонализм 103 византийский 20
Академизм 707 Орфизм 94 Романтический реализм 19
Готика 608 Регионализм 93 Гиперреализм 13
Неоклассицизм 601 Аналитический реализм 89 Веризм 11
маньеризм 544 Натурализм 73 Неопримитивизм 10
Модернизм 539 Неомодернизм 70 Фантазия 8
Социалистический реализм 481 Футуризм 67 Метареализм 7
Общий 106284
Перед нами стоит задача классификации изображений, но вручную выделить некоторые простые признаки мы не можем.

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

Трансферное обучение Рассмотрим начальную сеть v3.

Глубокое обучение определению стиля и жанра картин

В ее архитектуре (как и в любой другой глубокой сети) можно грубо выделить два основных компонента — Feature Extractor и Predictor. Feature Extractor отображает входное цветное изображение в многомерное пространство признаков (многоканальная карта признаков).

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

Feature Extractor сети Inception v3 получает на вход изображение размером 299.

Глубокое обучение определению стиля и жанра картин

299

Глубокое обучение определению стиля и жанра картин

3, а на выходе генерирует карту признаков размером 17

Глубокое обучение определению стиля и жанра картин

17

Глубокое обучение определению стиля и жанра картин

2048 Размер входных данных можно варьировать, что приведет к изменению размера карты объектов и может быть полезно для снижения вычислительных затрат при работе с сетью.

Predictor — это сеть, которая генерирует выходные данные на основе карты объектов, созданной Feature Extractor. Обычно для задачи классификации Предиктор представляет собой полносвязный слой нейронов, количество выходов которого совпадает с количеством классов задачи.

Классическое трансферное обучение предполагает, что мы берем обученную сеть, отделяем от нее Feature Extractor и дополняем новым предиктором с нужным нам количеством классов.

Полученная сеть обучается на низкой скорости, при этом веса слоев Feature Extractor частично или полностью замораживаются.

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

Давайте возьмем сеть Inception-v3, обученную на наборе данных imagenet, и заменим ее выходным слоем нейронов, который классифицирует входные изображения по количеству выбранных стилей.

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

Для анализа данных мы построили график распределения набора проверки по классам.



Глубокое обучение определению стиля и жанра картин

Каждая строка соответствует классу из набора проверки.

Яркость квадратов в ряду пропорциональна количеству картинок, попадающих в класс, соответствующий столбцу.

Для большей наглядности исключим главную диагональ и заново нормализуем значения каждой линии.



Глубокое обучение определению стиля и жанра картин

Кроме того, мы попробуем отобразить распределение стилей в двухмерном пространстве с помощью TSNE.

Глубокое обучение определению стиля и жанра картин

Видно, что наблюдается множество ошибок, например, при классификации картин в стиле фовизм – значительная их часть отнесена к экспрессионизму.

Северное возрождение и готику часто называют возрождением.

Многие изображения стиля рококо и классицизма относятся к реализму.

Модернизм и модерн обычно делятся на множество стилей.

Написав простой скрипт, который сортировал обучающую базу данных по папкам в соответствии со стилем, заданным сетью, мы провели быстрый анализ ошибок.

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

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

Стиль соцреализма включал в себя абстрактные изображения, например, произведения Лисицкого.

Судя по всему, они попали туда благодаря работе Лисицкого над советскими плакатами, имеющими весьма косвенное отношение к соцреализму.

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

Стоит учитывать, что база данных заполнена разными пользователями, и иногда среди них нет единого мнения.

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

В процессе чистки базы данных, как нами, так и арт-экспертом со стороны заказчика, разметка обучающей выборки была значительно улучшена.

Однако основная масса ошибок классификации сети (по общему количеству) относится к более или менее устоявшимся стилям, таким как рококо, классицизм и реализм.

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

Почему сеть не может различить их стиль? Основная причина заключается в использовании предварительно обученной сети для извлечения признаков.

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

Например, с точки зрения сети все изображения в начале статьи, как правило, изображают человека.

Чтобы решить эту проблему, мы сделали сеть с промежуточными выходами — считается, что по мере продвижения по сети признаки становятся все более сложными, а неважная информация постепенно исчезает. Попробуем извлечь из промежуточных слоев то, что было неважно для классификации imagenet.

Глубокое обучение определению стиля и жанра картин

Есть еще одна проблема – графика, гравюры, эскизы.

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



Глубокое обучение определению стиля и жанра картин



Глубокое обучение определению стиля и жанра картин

Реализм, Импрессионизм.

Камилла Каро, Агарь и ангел

Барокко Рембрандт Харменс ван Рейн, Агарь и ангел
С другой стороны, картины в стиле прекрасно висели отдельным облаком Укиё-э – вид гравюры, получивший распространение в Японии с 17 века.

Хотя изначально их не было в нашем обязательном списке, мы добавили их туда.



Глубокое обучение определению стиля и жанра картин

Поработав с данными, нам удалось добиться лучшего распределения по классам.



Понимание жанров

Из общего количества жанров выбрано 13 (выделено жирным шрифтом).

Жанр количество
Аллегорическая сцена 2500
Портрет 2308
Пейзаж 2213
Фантазия 2191
Литературная сцена 2096
Городской пейзаж 2048
Обнаженная 1981
Натюрморт 1932
Жанровая сцена 1736
Анимализм 1587
Религиозная сцена 1417
Мифологическая сцена 1368
Марина 1210
Архитектура 958
Интерьер 635
Историческая сцена 534
Боевая сцена 201
Цакли 180
Ведута 124
Городской ландшафт 16
Общий 27235
В основном сокращение количества жанров достигалось за счет сокращения жанров различных сцен — «религиозной», «мифологической», «аллегорической», «литературной» и объединения их под общим названием «жанровая сцена».

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

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

С «религиозной сценой» тоже есть сложность: весьма вероятно, что сеть, обученная производить такой класс, тоже будет называть его карикатурами (например, пародируя «Тайную вечерю» Да Винчи), и это может кого-то обидеть.

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

Поискав в Интернете, нам удалось немного расширить количество изображений по жанрам (в основном батальная сцена, цакли и ведата).

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



Глубокое обучение определению стиля и жанра картин

Видно, что точки, соответствующие изображениям разных жанров, перемешаны.

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

Причина, видимо, в том, что жанры, в отличие от стилей, имеют более выраженную иерархию.

Мы попытались понять эти связи и пришли к следующей карте жанров:

Глубокое обучение определению стиля и жанра картин

Дочерние и родительские жанры иерархии часто имеют общие черты с точки зрения сети (да и с нашей точки зрения тоже).

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

Поэтому мы разделили жанр батальной сцены на два — на суше и на море.

Другой пример: портреты, жанровые сцены и изображения обнаженной натуры с точки зрения предварительно обученной сети имеют общую особенность — наличие людей.

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

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

Чтобы перенести иерархию жанров в сеть, мы отказались от представления one-hot и установили его для изображений не только в одном жанре, но и в его родительском, если таковой имеется, а также заменили целевую функцию процесса обучения и функция активации выходного слоя.

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



Глубокое обучение определению стиля и жанра картин

Нам кажется, что здесь не хватает еще одного жанра – абстракции.

Строго говоря, это не совсем жанр.

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



Вместо заключения

В целом удалось добиться удовлетворительной точности классификации стилей и жанров изображений, но есть куда стремиться.

К сожалению, классификация стилей и техник не завершена – в сервисе не реализована поддержка.

Теги: #Машинное обучение #Обработка изображений #глубокое обучение #компьютерное зрение #искусство

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.