Привет, Хабр! Сегодня я хочу рассказать о второй части проекта сервиса по идентификации и классификации произведений искусства.
Напомню, мы решили две основные задачи:
- поиск картины в базе данных по фотографии, сделанной на мобильный телефон;
- определение стиля и жанра картины, которой нет в базе данных.
Можем ли мы помочь Даше разобраться в современном искусстве?
Определение стиля картины
Из почти 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, на котором была предварительно обучена начальная сеть, ничего подобного просто нет, и соответственно извлекаемые сетью признаки не подходят для классификации таких изображений.
|
|
Реализм, Импрессионизм.
Камилла Каро, Агарь и ангел |
Барокко Рембрандт Харменс ван Рейн, Агарь и ангел |
Хотя изначально их не было в нашем обязательном списке, мы добавили их туда.
Поработав с данными, нам удалось добиться лучшего распределения по классам.
Понимание жанров
Из общего количества жанров выбрано 13 (выделено жирным шрифтом).
Жанр | количество |
---|---|
Аллегорическая сцена | 2500 |
Портрет | 2308 |
Пейзаж | 2213 |
Фантазия | 2191 |
Литературная сцена | 2096 |
Городской пейзаж | 2048 |
Обнаженная | 1981 |
Натюрморт | 1932 |
Жанровая сцена | 1736 |
Анимализм | 1587 |
Религиозная сцена | 1417 |
Мифологическая сцена | 1368 |
Марина | 1210 |
Архитектура | 958 |
Интерьер | 635 |
Историческая сцена | 534 |
Боевая сцена | 201 |
Цакли | 180 |
Ведута | 124 |
Городской ландшафт | 16 |
Общий | 27235 |
Мы пришли к выводу, что разделение этих жанров вряд ли будет проведено с достаточной точностью без серьезного культурологического анализа.
Например, для аллегорической сцены по определению предполагается наличие в изображении скрытого смысла, использование переносного смысла в изображенных предметах.
С «религиозной сценой» тоже есть сложность: весьма вероятно, что сеть, обученная производить такой класс, тоже будет называть его карикатурами (например, пародируя «Тайную вечерю» Да Винчи), и это может кого-то обидеть.
Маркировка данных по жанрам на первый взгляд кажется хорошей, за исключением нескольких жанров, для которых в базе данных мало изображений.
Поискав в Интернете, нам удалось немного расширить количество изображений по жанрам (в основном батальная сцена, цакли и ведата).
Объединив сложные жанры в общую «жанровую сцену», мы сразу попытались обучить сеть «в лоб», используя начальные сети трансферного обучения.
Видно, что точки, соответствующие изображениям разных жанров, перемешаны.
Для этих изображений сеть выдает высокие вероятности принадлежности сразу к нескольким жанрам, причем жанр с наибольшей вероятностью определяется практически случайным образом.
Причина, видимо, в том, что жанры, в отличие от стилей, имеют более выраженную иерархию.
Мы попытались понять эти связи и пришли к следующей карте жанров:
Дочерние и родительские жанры иерархии часто имеют общие черты с точки зрения сети (да и с нашей точки зрения тоже).
Например, батальная сцена на суше в целом имеет те же характеристики, что и обычный пейзаж, — изображение большой открытой местности или города, тогда как батальная сцена на море больше похожа на жанр пристани.
Поэтому мы разделили жанр батальной сцены на два — на суше и на море.
Другой пример: портреты, жанровые сцены и изображения обнаженной натуры с точки зрения предварительно обученной сети имеют общую особенность — наличие людей.
В базе картинки схожего содержания часто относятся либо к дочернему, либо к родительскому жанру, в зависимости от того, где это было определено экспертом, внесшим картинки в базу данных.
В связи с этим была проведена масштабная чистка и переразметка базы данных с учетом возможной иерархии жанров, что потребовало довольно больших усилий (автоматизировать удалось, но не сильно).
Чтобы перенести иерархию жанров в сеть, мы отказались от представления one-hot и установили его для изображений не только в одном жанре, но и в его родительском, если таковой имеется, а также заменили целевую функцию процесса обучения и функция активации выходного слоя.
Таким образом, задачей стала мультилейблная классификация (входное изображение может принадлежать нескольким классам).
Нам кажется, что здесь не хватает еще одного жанра – абстракции.
Строго говоря, это не совсем жанр.
По крайней мере, эксперты настаивали на том, что такого жанра не существует. Чтобы сеть не давала случайных ответов на абстрактные изображения, в общую разбивку жанров, включая абстрактные и противоречивые изображения, был добавлен еще один жанр под названием «невозможно определить».
Вместо заключения
В целом удалось добиться удовлетворительной точности классификации стилей и жанров изображений, но есть куда стремиться.К сожалению, классификация стилей и техник не завершена – в сервисе не реализована поддержка.
Теги: #Машинное обучение #Обработка изображений #глубокое обучение #компьютерное зрение #искусство
-
Просто Сделайте Резервную Копию Btrfs
19 Oct, 24 -
Python-Celery В Windows С Управлением Docker
19 Oct, 24 -
Программирование И Написание
19 Oct, 24 -
Атака Рекламных Виджетов
19 Oct, 24