stringtranslate.com

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

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

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

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

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

Текстуры

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

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

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

Цель

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

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

Методы

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

Плиточный

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

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

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

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

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

Хаос мозаика

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

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

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

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

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

Стежка изображений

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

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

Глубокое обучение и подходы нейронных сетей

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

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

Реализации

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

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

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

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

Литература

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

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

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

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

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

Ссылки

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

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