Зачем это нужно?
К концу второй декады XXI века оцифровка музейных коллекций позволила создать датасеты из десятков, а то и сотен тысяч картин различных авторов и эпох. Доступность их цифровых копий позволяет переосмыслить работу искусствоведов, попытаться автоматизировать некоторые задачи, а также автоматически обогатить метаданные (что мы и сделали) — например, снабдить датой те картины, у которых она не указана.
Автоматический определитель возраста или стиля изображений будет интересен не только искусствоведам или пользователям, которых интересует конкретная картина. Он поможет и в изучении тенденций современного искусства и выявлении закономерностей и стилистических приемов. Например, мы можем понять к стилю какой из эпох более всего склонен какой-нибудь современный автор.
В чем сложность?
Сама по себе задача классификации изображения (в данном случае картины) по каким-то другим изображениям (картин с известной датой) — стандартная для сверточных нейронных сетей. Это делает нашу задачу в первом приближении весьма простой. Тем не менее финальная модель не обошлась без включения в нее нескольких дополнительных эвристик (о которых будет сказано позднее), которые улучшили точность классификации.
Какие есть стратегии?
Ключевая фигура в решении задачи — сверточная нейронная сеть для выделения признаков на изображениях. Рассматривались архитектуры ResNet18 и VGG-19. В итоге VGG-19 дала лучшие результаты.
Если не углубляться в теоретические основы глубокого обучения, то сверточные сети можно описать как алгоритм последовательного сжатия изображений, который способен выделять их ключевые особенности на разных уровнях абстракции (подробнее можете почитать, например, тут).
Сразу за применением сверточной сети с обрезанными полносвязными слоями следует вычисление матрицы Грама и классификация или регрессия, в нашем случае в роли модели классификатора выступает SVM.
Матрица Грама является специальным представлением изображения — это матрица попарных скалярных произведения численного значения пикселей. Её использование позволяет конвертировать преобразованную сверточной сетью картину в формат, удобный для определения стиля: матрица Грама сглаживает пространственную структуру, позволяя получить больше информации о текстуре изображения, чем о присутствующих на ней конкретных объектах (по этому же принципу работают некоторые алгоритмы style transfer).
После всех этапов проектирования и обучения стало понятно, что наименьшую ошибку (mean squared error, MSE) даёт VGG-19, но при этом лучшее значение F1-меры (гармоническое среднее точности и полноты классификации) достигается той же сетью с батч-нормализацией.
Использовать F1-меру в этой задаче нужно из-за отсутствия баланса классов. Каждый класс представлял собой временной промежуток в 50 лет в выбранном датасете. В разные годы было написано разное число картин:
Результаты и их интерпретация
Использование матрицы Грама действительно позволило существенно (почти в два раза) улучшить качество моделей на представленном датасете. Для многих классов ошибочных классификаций совсем немного. Это видно по матрице ошибок: большинство картин оказывается датировано своим годом:
Однако использование информации о стиле для определения временного отрезка гарантированно работает только для эпохи премодерна, которой характерно последовательное совершенствование техник изобразительного искусства.
Перспективы и заключение
Наш небольшой эксперимент показал, что задача определения возраста картины может быть решена стандартными инструментами компьютерного зрения с добавлением некоторых эвристик. Следующим этап — увеличение количества данных, усложнение модели, масштабирование задачи на XX и XXI века, а также более дробное деление временных промежутков.
Особая благодарность Кафедре инженерной кибернетики НИТУ “МИСиС”, организаторам хакатона по “Digital Humanities” школы “Слон”, а также Анатолию Овчаренко и Александру Харламову.
Ссылка на веб-приложение с моделью.