Глубокое обучение для определения стиля и жанра картин |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
МЕНЮ Искусственный интеллект Поиск Регистрация на сайте Помощь проекту ТЕМЫ Новости ИИ Искусственный интеллект Разработка ИИГолосовой помощник Городские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Техническое зрение Чат-боты Авторизация |
2018-09-12 10:51 Сегодня я хочу рассказать о второй части проекта сервиса для идентификации и классификации произведений искусства. Напомню, что мы решали две основные задачи:
Сегодня мы рассмотрим применение сверточной нейронной сети для классификации изображений по стилю и жанру. Поможем Даше разобраться в современном искусстве? Определение стиля картин Из почти 250 000 картин в базе БД Артхив менее 20% присвоен жанр, стиль или техника, зачастую классы, выставленные в базе данных, не соответствуют истинным значениям, много классов, содержащих слишком мало изображений. Кажется, есть даже классы, содержащие единицы изображений. Видимо, некоторые авторы считают необходимым создание названия для своего собственного стиля. В общей сложности в базе было выделено около 75 стилей, однако для нашей работы заказчиком были выбраны 27 обязательных стилей (к которым впоследствии был добавлен еще один), которые система обязательно должна распознавать.
Все стили
Перед нами задача классификации изображений, но выбрать какие-то простые признаки вручную мы не можем. Значит, будем использовать глубокое машинное обучение, при котором такие сложные признаки выделяются автоматически в процессе обучения. Transfer learning Рассмотрим сеть inception v3. В ее архитектуре (да и в любой другой глубокой сети) можно условно выделить две основные составляющие – Feature Extractor и Predictor. Применим transfer learning для классификации стилей. Возьмем сеть Inception-v3 обученную на наборе данных imagenet и заменим в ней выходной слой нейронов, классифицирующий входные изображения в число выбранных стилей. Полученную сеть мы обучали на изображениях разных стилей, заморозив обучение всех слоев, кроме последнего. Для анализа данных мы отображали распределение валидационного набора по классам. Каждая строка соответствует классу из валидационного набора. Яркость квадратиков в строке пропорциональна количеству картинок, попавших в класс, соответствующий столбцу. Для лучшей наглядности исключим главную диагональ и заново нормируем значения каждой строки.Кроме того попробуем отобразить распределение по стилям на двухмерное пространство с помощью TSNE. Видно, что много ошибок наблюдается, например, при классификации картин в стиле фовизм — значительная их часть относится сетью к экспрессионизму. Северное возрождение и готика часто относятся к возрождению. Множество изображений стиля рококо и классицизм относятся к реализму. Модернизм и модерн вообще распадаются на много стилей. Накидав простой скрипт, который разобрал обучающую базу по папкам в соответствии с определяемым сетью стилем, мы провели беглый анализ ошибок. Оказалось, что разметка базы по меньшей мере вызывает вопросы. В стиле соцреализма присутствовали абстрактные изображения, например, произведения Лисицкого. По всей видимости, они попали туда благодаря работе Лисицкого над советским плакатом, который к соцреализму имеет весьма косвенное отношение. Во многом это действительно ошибки, но иногда причина в дискуссионности вопроса выделения некоторых, особенно современных, стилей. Стоит учитывать, что база наполняется различными пользователями, и среди них порой нет единого мнения. Однако, основная масса ошибок классификации сетью (по общему количеству) относится к более-менее устоявшимся стилям, таким как рококо, классицизм, реализм. Отнесение произведений к этим стилям, как правило, происходит на основе эпохи или авторства и, похоже, не вызывает сомнений и споров. Почему же сеть не способна различить их стиль? Основная причина кроется в использовании предобученной сети для извлечения признаков. Дело в том, что эта сеть была обучена классифицировать объекты, определять, что именно изображено, при этом отбрасывая несущественную для задачи информацию о том, как оно изображено. Например, с точки зрения сети на всех изображениях в начале статьи, в общем-то, изображен человек. Для решения этой проблемы мы сделали сеть с промежуточными выходами – считается, что признаки становятся все сложнее по мере продвижения их по сети, а несущественная информация исчезает постепенно. Попытаемся извлечь из промежуточных слоев то, что было несущественно для классификации imagenet. Существует и еще одна проблема — графика, гравюры, эскизы. В imagenet, на котором была предобучена сеть inception попросту нет ничего подобного, соответственно и признаки, выделяемые сетью, не подходят для классификации таких изображений.
С другой стороны, красиво повисли отдельным облаком картины в стиле Укие-э — разновидность гравюры, получившая распространение в японии с XVII века. Хоть первоначально их и не было в нашем обязательном списке, мы их туда добавили. После работы с данными удалось добиться лучшего распределения по классам. Разбираемся с жанрами Из общего числа жанров были выбраны 13 (выделены жирным)
В основном сокращение числа жанров достигнуто сокращением жанров различных сцен — "религиозная","мифологическая", "аллегорическая", "литературная" и объединением их под общим названием "жанровая сцена". Мы пришли к выводу, что разделение этих жанров вряд ли может быть выполнено с достаточной точностью без значительного культурологического анализа. Разметка данных по жанрам изначально кажется неплохой, если не считать нескольких жанров, по которым в базе мало изображений. Поискав в интернете мы смогли немного расширить количество изображений в жанрах (в основном батальная сцена, цакли и ведута). Видно, что точки, соответствующие изображениям разных жанров, смешиваются. Для этих изображений сеть выдает высокие значения вероятностей принадлежности сразу к нескольким жанрам, а жанр с наибольшей вероятностью определяется почти случайно. Причина видимо в том, что жанры, в отличие от стилей, имеют более выраженную иерархию. Мы попытались разобраться в этих связях, у нас получилась такая карта жанров: Дочерние и родительские жанры иерархии часто имеют общие признаки с точки зрения сети (да и с нашей точки зрения тоже). Например, батальная сцена на суше в целом обладает теми же признаками, что и обычный пейзаж — изображение большого открытой местности или города, а батальная сцена на море больше похожа на жанр марина. Поэтому мы разделили жанр батальной сцены на два — на суше и на море. Другой пример: портреты, жанровая сцена и изображения ню с точки зрения предобученной сети все имеют общий признак — наличие людей. В базе данных же картины сходного содержания зачастую относятся то к дочернему, то к родительскому жанру, в зависимости от того, куда ее определял эксперт, вносивший картины в базу данных. В связи с этим была проведена масштабная чистка и переразметка базы с учетом возможной иерархии жанров, занявшая достаточно много усилий (у нас получилось ее автоматизировать, но не сильно). Для того чтобы перенести иерархию жанров на сеть, мы отказались от one-hot представления и выставили единицу для изображений не только в одном жанре, но и в его родителе, если таковой имеется, а так же заменили целевую функцию процесса обучения и функцию активации выходного слоя. Таким образом задача стала Multilabel классификации (входное изображение может принадлежать к нескольким классам). Как нам кажется, здесь не хватает еще одного жанра — абстракция. Строго говоря, это не совсем жанр. По крайней мере эксперты настаивали, что такого жанра нет. Для того, чтобы сеть не выдавала на абстрактные изображения случайные ответы, к общему разбиению жанров был добавлен еще один под названием "не удалось определить", включающий абстрактные и спорные изображения. Вместо заключения В целом удалось добиться удовлетворительной точности классификации стилей и жанров изображений, однако есть куда улучшать. К сожалению, классификация стилей и техник не была доведена до конца — поддержка в сервисе не реализована. Источник: habr.com Комментарии: |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||