Охота на электроовец. Большая книга искусственного интеллекта - Марков Сергей Николаевич
6.6.7 Машина как художник. Первые шаги: раскраска и стилизация
Впрочем, если литературные успехи машин пока ещё не столь известны широкой публике, об их достижениях в изобразительном искусстве знают сегодня почти все. Возможно, дело тут в большей наглядности результатов или в том, что революция глубокого обучения началась именно с успехов в обработке изображений. А может быть, дело в том, что здесь более заметен быстрый и внушительный прогресс — какие-никакие тексты машины умели писать ещё в эпоху GOFAI, а вот успехи с генерацией изображений были куда более скромными. Конечно, основываясь на генераторе псевдослучайных чисел и небольшом наборе графических примитивов (точка, отрезок, окружность и т. п.), можно было создавать различные узоры, напоминающие картинки калейдоскопа. В принципе, и сам калейдоскоп вполне можно считать специализированной машиной для генерации изображений. Название «калейдоскоп» происходит от греческих слов καλός — красивый, εἶδος — вид и σκοπέω — смотрю, наблюдаю. Это устройство стало побочным продуктом опытов с поляризацией света, которые проводил в начале XIX в. шотландский физик Дейвид Брюстер. Брюстер запатентовал калейдоскоп в 1816 г., и с тех пор это удивительное в своей простоте устройство начало триумфальное шествие по миру.

Со временем было предложено множество модификаций калейдоскопа, а появление «алгоритмических калейдоскопов» открыло совершенно новые возможности. Теперь любители калейдоскопического жанра не были больше скованы ограничениями механических систем. В какой-то мере к этому же жанру можно отнести моду на визуализацию различных математических функций. Особенной популярностью здесь пользуются фракталы — множества, обладающие свойством самоподобия. Множество Мандельброта, множество Жюлиа, треугольник и ковёр Серпинского, губка Менгера, кривые Коха, Пеано, Леви и Гильберта, а также многие другие математические формализмы способны порождать удивительные узоры, приятные глазу. Многие природные объекты обладают структурой, напоминающей фракталы (поэтому их часто называют квазифракталами), — снежинки, кораллы, морские звёзды и ежи, ракушки, некоторые растения и их цветы. В общем, совмещение фрактальных моделей с продвинутыми средствами визуализации, безусловно, способно подарить нам множество весьма изящных произведений генеративного искусства. Однако отношения машин с реалистическим искусством в эпоху GOFAI не сложились. Заметный шаг вперёд удалось сделать лишь в эру глубокого обучения.
Дети, постигающие премудрости изобразительного искусства, от каляк-маляк обычно переходят к книжкам-раскраскам. Если нейронная сеть способна распознавать на изображениях различные объекты, то, быть может, она сможет и раскрасить чёрно-белое изображение? Действительно, при работе с раскраской ключевым умением является именно узнавание объекта. Опознав на картинке солнце, мы берём жёлтый фломастер, а увидев ёлочку — зелёный. Получить обучающую выборку в эпоху цифровой фотографии и интернета проще простого, достаточно взять множество цифровых изображений и обесцветить их, получив тем самым множество пар бесцветных и цветных картинок. Неудивительно, что число работ по нейросетевой раскраске изображений стало быстро увеличиваться по мере роста популярности свёрточных нейронных сетей.
В начале 2016 г. свою первую нейросетевую модель для раскраски фотографий представил [2748] на суд общественности американский программист Райан Даль, известный в компьютерном мире как первоначальный разработчик популярной программной платформы Node.js. Даль использовал для раскраски модель VGG-16, предварительно обученную распознаванию изображений из массива ImageNet. Ему даже не пришлось переобучать модель — вместо этого он воспользовался идеей, предложенной уже упоминавшимися нами создателями сети ZFNet Робом Фергюсом и Мэтью Зейлером. Дело в том, что обученная свёрточная сеть, предназначенная для решения задачи классификации, помимо собственно метки класса, способна предоставить нам некоторую дополнительную информацию. Для каждого пикселя входного изображения можно извлечь соответствующие ему значения функций активации из разных слоёв сети. Эта идея была окончательно оформлена в 2015 г. авторами статьи [2749] «Гиперколонки для [задач] сегментации объектов и точной локализации» (Hypercolumns for Object Segmentation and Fine-grained Localization). В этой работе предлагается использовать вектор, составленный из значений функций активации из разных слоёв, соответствующий каждому пикселю, в качестве источника информации для сегментации изображений и выявления местоположения различных объектов. Этот вектор получил название «гиперколонка» [hypercolumn]. По сути, гиперколонка — это набор интенсивностей каждого из признаков, выявляемых сетью для поля свёртки, центром которого является наш пиксель. Более глубокие слои свёрточной сети отвечают, как мы уже говорили ранее, за более абстрактные признаки. Например, автомобильные колёса и фигуры людей распознаются в районе третьего свёрточного слоя. Информация о выявляемых признаках, ассоциированных с каждым пикселем входного изображения, является отличным источником информации о цвете. Модель Даля работала с изображением размером 224 × 224 пикселя, при этом размер гиперколонки, извлекаемой из сети VGG-16, составлял 963 значения. Итоговый «тензор» с размерностью 224 × 224 × 963 подавался на вход отдельной свёрточной сети, выходом которой являлась карта цветов. Эксперименты показали, что такая сеть в большинстве случаев позволяла достичь вполне адекватной раскраски.




Впрочем, ранние модели для нейросетевой раскраски изображений обладали и рядом недостатков. Например, объекты, чей цвет очевидным образом определить было нельзя (например, цвет одежды людей может быть практически каким угодно, как и, например, цвет автомобилей и т. п.), часто приобретали некий среднестатистический «серо-буро-малиновый» цвет, равноудалённый от цветов соответствующих объектов, представленных в обучающей выборке. Возникали и другие дефекты раскраски, что стало мотивацией для дальнейших исследований в этой области.
В 2017 г. свет увидела новая работа [2750] Даля, выполненная в соавторстве с его новыми коллегами из Google (в 2016 г. Райан присоединился [2751] к Google Brain Residency Program). В работе была представлена модель под названием PixColor, лишённая многих недостатков своей предшественницы. Новый метод был основан на наблюдении, что задача автоматической раскраски достаточно проста для нейронной сети в случае изображений с низким разрешением. Поэтому авторы сначала уменьшали размер картинки, затем при помощи свёрточной нейронной сети производили раскраску полученного уменьшенного изображения, а затем использовали вторую свёрточную сеть для раскраски исходного полноразмерного изображения с использованием цветовой карты, полученной первой сетью для маленькой версии картинки.
Для оценки качества раскраски создатели модели использовали методику, получившую громкое название «визуальный тест Тьюринга» (Visual Turing Test). Суть этого метода заключается в том, что людям-оценщикам предлагают пары изображений, при этом одно из изображений в этой паре обесцвечено, а затем раскрашено при помощи PixColor, а другое сохраняет первоначальные, «естественные» цвета. Оценщик должен выбрать тот вариант раскраски, который он считает более правильным. По итогам теста вычисляется доля случаев, в которых оценщики предпочли раскрашенное изображение. Эту долю авторы назвали VTT‑баллом [VTT score]. В ходе нескольких сессий оценки (с разными инициализациями генератора псевдослучайных чисел) PixColor получила VTT-балл от 33,2 ± 1,0% до 35,4 ± 1,0%, что на несколько процентных баллов выше результатов, продемонстрированных другими методами раскраски.