stringtranslate.com

Синтез текстур

Синтез текстур — это процесс алгоритмического построения большого цифрового изображения из небольшого цифрового образца изображения с использованием его структурного содержания. Он является объектом исследований в области компьютерной графики и используется во многих областях, в том числе в редактировании цифровых изображений , компьютерной 3D-графике и постобработке фильмов .

Синтез текстур можно использовать для заполнения дыр в изображениях (как в inpainting ), создания больших неповторяющихся фоновых изображений и расширения маленьких картинок. [1]

Контраст с процедурными текстурами

Процедурные текстуры — это родственная техника, которая позволяет синтезировать текстуры с нуля без исходного материала. Напротив, синтез текстур относится к методам, в которых некоторое исходное изображение сопоставляется или расширяется.

Текстуры

« Текстура » — слово неоднозначное и в контексте синтеза текстур может иметь одно из следующих значений:

  1. В просторечии слово «текстура» используется как синоним «структуры поверхности». В психологии восприятия текстура описывается пятью различными свойствами : грубостью , контрастностью , направленностью , линейностью и шероховатостью [1] .
  2. В компьютерной 3D-графике текстура — это цифровое изображение, нанесенное на поверхность трехмерной модели путем наложения текстур , чтобы придать модели более реалистичный вид. Часто изображение представляет собой фотографию «настоящей» текстуры, например текстуры древесины .
  3. В обработке изображений каждое цифровое изображение, состоящее из повторяющихся элементов, называется «текстурой».
Сочетание фотографий и созданных изображений, иллюстрирующих спектр текстур.

Текстуру можно расположить по спектру от регулярного до стохастического, соединенного плавным переходом: [2]

Цель

Алгоритмы синтеза текстур предназначены для создания выходного изображения , отвечающего следующим требованиям:

Как и большинство алгоритмов, синтез текстур должен быть эффективным по времени вычислений и использованию памяти.

Методы

Для синтеза текстур были исследованы или разработаны следующие методы и алгоритмы:

Укладка плитки

Самый простой способ создать большое изображение из образца изображения — разбить его на мозаику . Это означает, что несколько копий образца просто копируются и вставляются рядом. Результат редко бывает удовлетворительным. За исключением редких случаев, между плитками будут швы, и изображение будет сильно повторяться.

Стохастический синтез текстур

Методы стохастического синтеза текстур создают изображение путем случайного выбора значений цвета для каждого пикселя, на которое влияют только основные параметры, такие как минимальная яркость, средний цвет или максимальный контраст. Эти алгоритмы хорошо работают только со стохастическими текстурами, в противном случае они дают совершенно неудовлетворительные результаты, поскольку игнорируют любые структуры в образце изображения.

Синтез структурированных текстур специального назначения

Алгоритмы этого семейства используют фиксированную процедуру для создания выходного изображения, т.е. они ограничены одним видом структурированной текстуры. Таким образом, эти алгоритмы можно применять как только к структурированным текстурам, так и только к текстурам с очень похожей структурой. Например, одноцелевой алгоритм может создавать высококачественные текстурные изображения каменных стен; тем не менее, очень маловероятно, что алгоритм даст какой-либо жизнеспособный результат, если ему будет предоставлен образец изображения, на котором изображены камешки.

Мозаика Хаоса

Этот метод, предложенный группой Microsoft для интернет-графики, представляет собой усовершенствованную версию мозаики и выполняет следующие три этапа:

  1. Выходное изображение полностью заполняется мозаикой. В результате получается повторяющееся изображение с видимыми швами.
  2. Случайно выбранные части выборки случайного размера копируются и вставляются случайным образом в выходное изображение. В результате получается довольно неповторяющееся изображение с видимыми швами.
  3. Выходное изображение фильтруется для сглаживания краев.

В результате получается приемлемое текстурное изображение, которое не слишком повторяется и не содержит слишком много артефактов. Тем не менее, этот метод неудовлетворителен, поскольку сглаживание на этапе 3 делает выходное изображение размытым.

Пиксельный синтез текстур

Эти методы, использующие поля Маркова, [3] непараметрическую выборку, [4] древовидное векторное квантование [5] и аналогии изображений [6], являются одними из самых простых и наиболее успешных общих алгоритмов синтеза текстур. Обычно они синтезируют текстуру в порядке строк сканирования, находя и копируя пиксели с наиболее близким локальным окружением, как у синтетической текстуры. Эти методы очень полезны для завершения изображения. Их можно заставить, как в аналогиях изображений , выполнять множество интересных задач. Обычно они ускоряются с помощью какого-либо метода приближенного ближайшего соседа, поскольку полный поиск лучшего пикселя происходит несколько медленно. Синтез также может быть выполнен в мультиразрешении, например, с использованием непричинного непараметрического многомасштабного марковского случайного поля. [7]

Изображение квилтинга

Синтез текстур на основе патчей

Синтез текстур на основе патчей создает новую текстуру путем копирования и сшивания текстур с различными смещениями, аналогично использованию инструмента клонирования для ручного синтеза текстуры. Квилтирование изображений [8] и текстуры графического вырезания [9] являются наиболее известными алгоритмами синтеза текстур на основе патчей. Эти алгоритмы, как правило, более эффективны и быстрее, чем методы синтеза текстур на основе пикселей.

Подходы к глубокому обучению и нейронным сетям

Совсем недавно было показано, что методы глубокого обучения являются мощным, быстрым и управляемым данными параметрическим подходом к синтезу текстур. Работа Леона Гатиса [10] является важной вехой: он и его соавторы показали, что фильтры дискриминативно обученной глубокой нейронной сети могут использоваться в качестве эффективных параметрических дескрипторов изображений, что привело к созданию нового метода синтеза текстур.

Еще одна недавняя разработка — использование генеративных моделей для синтеза текстур. Метод Spatial GAN ​​[11] впервые показал использование полностью неконтролируемых GAN для синтеза текстур. В последующей работе [12] метод был расширен дальше: PSGAN может изучать как периодические, так и непериодические изображения без присмотра на основе отдельных изображений или больших наборов данных изображений. Кроме того, гибкая выборка в шумовом пространстве позволяет создавать новые текстуры потенциально бесконечного выходного размера и плавно переходить между ними. Это делает PSGAN уникальным с точки зрения типов изображений, которые может создать метод синтеза текстур.

Реализации

Некоторые реализации синтеза текстур существуют как плагины к бесплатному редактору изображений Gimp :

Реализация синтеза текстур на основе пикселей:

Синтез текстур на основе патчей:

Глубокий генеративный синтез текстур с PSGAN, реализованный на Python с помощью Lasagne + Theano:

Литература

Некоторые из самых ранних и наиболее часто упоминаемых работ в этой области включают:

хотя были и более ранние работы на эту тему, такие как

(Последний алгоритм имеет некоторое сходство с подходом Chaos Mosaic).

Подход непараметрической выборки Эфроса-Леунга — это первый подход, который позволяет легко синтезировать большинство типов текстур, и он вдохновил буквально сотни последующих статей по компьютерной графике. С тех пор область синтеза текстур быстро расширилась с появлением карт-ускорителей 3D-графики для персональных компьютеров. Однако оказывается, что Скотт Дрейвс впервые опубликовал версию этой техники на основе исправлений вместе с кодом GPL в 1993 году, по словам Эфроса.

Смотрите также

Рекомендации

  1. ^ «Курс SIGGRAPH 2007 по синтезу текстур на основе примеров»
  2. ^ «Почти регулярный анализ текстур и манипулирование ими». Яньси Лю , Вэнь-Цье Линь и Джеймс Хейс. СИГГРАФ 2004 г.
  3. ^ «Синтез текстуры с помощью некаузального непараметрического многомасштабного марковского случайного поля». Пэджет и Лонгстафф, IEEE Trans. по обработке изображений, 1998 г.
  4. ^ «Синтез текстур путем непараметрической выборки». Эфрос и Люнг, ICCV, 1999 г.
  5. ^ «Быстрый синтез текстур с использованием векторного квантования с древовидной структурой» Вэй и Левой SIGGRAPH 2000
  6. ^ «Аналогии изображений» Герцманн и др. СИГГРАФ 2001.
  7. ^ «Синтез текстуры с помощью некаузального непараметрического многомасштабного марковского случайного поля». Пэджет и Лонгстафф, IEEE Trans. по обработке изображений, 1998 г.
  8. ^ «Выстегивание изображений». Эфрос и Фриман. СИГГРАФ 2001 г.
  9. ^ «Текстуры Graphcut: синтез изображений и видео с использованием разрезов графов». Кватра и др. СИГГРАФ 2003 г.
  10. ^ Гатис, Леон А.; Экер, Александр С.; Бетге, Матиас (27 мая 2015 г.). «Синтез текстур с использованием сверточных нейронных сетей». arXiv : 1505.07376 [cs.CV].
  11. ^ Ечев, Николай; Бергманн, Урс; Воллграф, Роланд (24 ноября 2016 г.). «Синтез текстур с пространственными генеративно-состязательными сетями». arXiv : 1611.08207 [cs.CV].
  12. ^ Бергманн, Урс; Ечев, Николай; Воллграф, Роланд (18 мая 2017 г.). «Изучение многообразий текстур с помощью периодического пространственного GAN». arXiv : 1705.06566 [cs.CV].

Внешние ссылки