Введение
Алгоритмическое производство цифровых изображений. Синтез текстуры — это процесс алгоритмического построения большого цифрового изображения из небольшого исходного изображения, используя его структурные особенности. Он является объектом исследований в области компьютерной графики и применяется во многих областях, включая цифровую обработку изображений, 3D-компьютерную графику и постпродакшн фильмов. Синтез текстуры можно использовать для восстановления поврежденных участков изображений (например, при реставрации), создания больших, не повторяющихся фоновых изображений и увеличения небольших изображений.
Texture synthesis is the process of algorithmically constructing a large digital image from a small digital sample image by taking advantage of its structural content. It is an object of research in computer graphics and is used in many fields, amongst others digital image editing, 3D computer graphics and post production of films. Texture synthesis can be used to fill in holes in images (as in inpainting), create large non repetitive background images and expand small pictures.
Контраст с процедурными текстурами
Процедурные текстуры — это смежная техника, позволяющая синтезировать текстуры с нуля, без использования исходных материалов. В отличие от этого, синтез текстур подразумевает методы, в которых происходит сопоставление или расширение некоторого исходного изображения.
Плитка
Самый простой способ создать большое изображение из исходного – это его мозаичная разбивка. Это означает, что несколько копий исходного изображения просто копируются и вставляются рядом друг с другом. Результат редко бывает удовлетворительным. За исключением редких случаев, будут заметны стыки между отдельными фрагментами, и изображение получится сильно повторяющимся.
Синтез стохастической текстуры
Методы стохастического синтеза текстур создают изображение, случайным образом выбирая значения цвета для каждого пикселя, на которые влияют лишь базовые параметры, такие как минимальная яркость, средний цвет или максимальный контраст. Эти алгоритмы хорошо работают только со стохастическими текстурами, иначе они производят совершенно неудовлетворительные результаты, поскольку не учитывают какую-либо структуру в исходном изображении.
Синтез текстуры с одноцелевым структурированием
Алгоритмы этого семейства используют фиксированную процедуру для создания выходного изображения, то есть они ограничены одним типом структурированной текстуры. Следовательно, эти алгоритмы применимы только к структурированным текстурам и только к текстурам с очень схожей структурой. Например, алгоритм, предназначенный для решения одной задачи, может создавать высококачественные текстурные изображения каменных стен; однако, крайне маловероятно, что этот алгоритм выдаст какой-либо полезный результат, если ему на вход будет подано изображение с галькой.
Синтез текстуры на основе пикселей
Эти методы, использующие поля Маркова, непараметрическое семплирование, древовидную векторную квантизацию и аналогию изображений, являются одними из самых простых и эффективных алгоритмов общего синтеза текстур. Как правило, они синтезируют текстуру построчно, находя и копируя пиксели с наиболее похожим локальным окружением в синтезируемую текстуру. Эти методы очень полезны для восстановления изображений. Их можно ограничивать, как в случае аналогии изображений, для выполнения различных интересных задач. Обычно они ускоряются с помощью методов приближенного поиска ближайших соседей, поскольку полный поиск наилучшего пикселя достаточно медленный. Синтез также может выполняться в многоразрешении, например, с использованием некаузального непараметрического многомасштабного случайного поля Маркова.
Синтез текстуры на основе пластыря
Синтез текстуры на основе патчей создает новую текстуру, копируя и соединяя фрагменты текстуры со сдвигом, подобно ручному синтезу текстуры с помощью инструмента клонирования. Квилтинг изображений и текстуры на основе алгоритма graphcut – наиболее известные алгоритмы синтеза текстуры на основе патчей. Эти алгоритмы, как правило, более эффективны и работают быстрее, чем методы синтеза текстуры, основанные на пикселях.
Подходы к глубокому обучению и нейронной сети
Недавно было показано, что методы глубокого обучения представляют собой мощный, быстрый и основанный на данных параметрический подход к синтезу текстур. Работа Леона Гаттиса стала важной вехой: он и его соавторы продемонстрировали, что фильтры из глубокой нейронной сети, обученной с дифференциацией, могут использоваться как эффективные параметрические дескрипторы изображений, что привело к созданию нового метода синтеза текстур. Другим недавним достижением является применение генеративных моделей для синтеза текстур. Метод Spatial GAN впервые продемонстрировал возможность использования полностью неконтролируемых GAN для синтеза текстур. В последующей работе этот метод был дополнительно расширен – PSGAN способен изучать как периодические, так и непериодические изображения без учителя, используя отдельные изображения или большие наборы данных. Кроме того, гибкая выборка в пространстве шума позволяет создавать новые текстуры потенциально бесконечного размера и плавно переходить между ними. Это делает PSGAN уникальным по типам изображений, которые может генерировать метод синтеза текстур.