Автоматизированная система генерации текстур | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 28 декабря, печатный экземпляр отправим 1 января.

Опубликовать статью в журнале

Автор:

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №20 (415) май 2022 г.

Дата публикации: 15.05.2022

Статья просмотрена: 122 раза

Библиографическое описание:

Рыбаков, А. В. Автоматизированная система генерации текстур / А. В. Рыбаков. — Текст : непосредственный // Молодой ученый. — 2022. — № 20 (415). — С. 150-154. — URL: https://moluch.ru/archive/415/91580/ (дата обращения: 18.12.2024).



В статье автор представляет свою автоматизированную систему генерации текстур.

Ключевые слова: свёрточная нейронная сеть, генерация текстур, генеративно-состязательная сеть.

В последние годы люди уделяют много внимания нейросетям, основными задачами которых являются синтез, порождение, генерация изображений. В качестве примера можно рассматривать сеть DALL-E, которая впервые была показана в 2021 году и сразу приобрела популярность. Задача генерации заключается в следующем: компьютер должен просмотреть большое количество изображений, содержащих некоторые объекты, например: лица, собак или машин, в общем тот или иной объект, и, выучив, что такое собака, лицо или машина, он должен учиться создавать новые изображения. Важно, что эти новые изображения должны быть, во-первых, реалистичными для человека, то есть при сравнении двух изображений (реального и сгенерированного) человек не должен видеть разницы. А во-вторых, новые, сгенерированные объекты должны существенным образом отличаться от тех объектов, которые нейросеть видела в ходе обучения. Создание текстур при помощи нейросети позволит людям создавать уникальные объекты в 3D моделировании, добавить уникальности своей работе при создании фильмов/мультфильмов и т. д.

Для решения этой проблемы была создана свёрточная нейронная сеть. Такие нейросети обычно анализируют не все данные сразу, а проходятся по ним фильтром с заданным размером: если у вас есть изображение 200×200, то сеть считает квадрат размера 20x20, сдвинется на 1 пиксель и считает новый квадрат. Затем входные данные передаются через свёрточные слои, в которых не все узлы соединены между собой. Эти слои могут сжиматься с глубиной, причем часто используются степени двойки: 32, 16, 8, 4, 2, 1.

Для улучшения результата при генерации изображения используется генеративно-состязательная сеть (GAN).

GAN состоит из двух сетей:

– Генератор, с помощью которого мы получаем поддельные изображения по входному вектору шума;

– Дискриминатор, различающий реальный набор текстур и сгенерированный генератором.

Основным критерием для сгенерированных текстур является невозможность отличить искусственно созданный объект от реального, созданного иным путём (не сгенерированным нейросетью). Для того, чтобы получать максимально реалистичное изображение, необходимо не только генерировать текстуры, но и делать выборку наиболее реалистичных из полученных в ходе генерации. Для этого в системах генерации изображений часто используется дискриминатор. Сети, в которых используются сразу генератор и дискриминатор называются генеративно-состязательными сетями. Шаги, которые проходит GAN:

– Установка начального рандомного значения для генератора.

– Генерация изображения

– Подача искусственного изображения вместе с реальными на вход дискриминатора.

– Дискриминатор принимает изображения и возвращает вероятность, с которой то или иное изображение является реальным (числа от 0 до 1).

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

Дискриминатор представляет собой стандартную свёрточную сеть, алгоритм нормализации по батчу и функцию активации LeakyReLU. В то время как генератор представляет собой обратную свёрточную сеть, нормализатор по батчу и функцию активации ReLU. На вход генератора поступает рандомное значение (в оригинеле seed), после чего он преобразует вектор случайного шума в изображение.

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

В начале ознакомления с математической частью системы рассмотрим формулу конволюции, эта формула должна отражать движение ядра по входному изображению или по карте признаков :

,

Здесь подстрочные индексы — это индексы элементов в матрицах, а — величина шага свёртки. Надстрочные индексы — это индексы слоёв сети.

— выход какой-то предыдущей функции, либо входное изображение сети;

— это после прохождения функции активации

— ядро свёртки

— bias или смещение

— результат операции конволюци. То есть операции проходят отдельно для каждого элемента матрицы , размерность которой .

Но при применении данной формулы ядро при свертке «переворачивается». Чтобы элементы ядра при свёртке сохраняли свои позиции мы будем использовать формулу кросс-корреляции вместо конволюции:

Для того, чтобы сделать сеть нелинейной мы будем применять формулу функции активации:

, где — это количество классов.

Далее нам понадобится описать математически слой полносвязной сети:

,

Завершающий этап сети — функция, оценивающая качество работы всей модели. Она находится после всех слоёв сети и выглядит следующим образом:

В данной работе представлена автоматизированная система генерации текстур. В её основе лежит генеративно-состязательная сеть. Система была разработана на языке программирования Python. Использовались библиотеки torch, torchvision, numpy, matplotlib, PyQt5. На рисунке 1 вы можете ознакомиться с алгоритмом работы системы.

Алгоритм работы системы

Рис. 1. Алгоритм работы системы

Для примера работы данной сети при обучении использовался набор данных в виде текстур дерева (529 изображений). При демонстрации работы сети было проведено два сравнительных прогона системы с различными параметрами коэффициента обучения. В первом случае 0.0005, во втором 0.0002. Размер батча 128, количество эпох обучения 1500 в обоих прогонах.

Пример изображений из набора данных

Рис. 2. Пример изображений из набора данных

График потерь при обучении в первом случае

Рис. 3. График потерь при обучении в первом случае

Пример сгенерированных изображений после обучения в первом случае

Рис. 4. Пример сгенерированных изображений после обучения в первом случае

График потерь при обучении во втором случае

Рис. 5. График потерь при обучении во втором случае

Пример сгенерированных изображений после обучения во втором случае

Рис. 6. Пример сгенерированных изображений после обучения во втором случае

В дальнейшем планируется расширить список возможных текстур для генерации (камень, песок, кирпич) и провести ряд опытов с выявлением оптимального набора параметров для получения наилучшего изображения сгенерированных текстур. На данный момент наиболее подходящими параметрами при обучении показали себя 1500 эпох обучения при коэффициенте обучения 0,0005.

Литература:

  1. Habr, Сверточная нейронная сеть, часть 1: структура, топология, функции активации и обучающее множество [Электронный ресурс]. — URL: https://habr.com/ru/company/econtenta/blog/303458/. (дата обращения: 25.11.2019).
  2. PGGAN Creates Realistic Faces [Электронный ресурс]. — URL: https://towardsdatascience.com/progressive-gans-new-training-trend-for-2018-c18cb0190239
Основные термины (генерируются автоматически): GAN, изображение, сеть, генеративно-состязательная сеть, DALL-E, автоматизированная система генерации текстур, алгоритм работы системы, Генерация изображения, график потерь, нейронная сеть.


Похожие статьи

Классификация заявок пользователей с помощью нейросети

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

Применение нейронных сетей для графологического анализа почерка

В данной статье проводится исследование системы графологического анализа почерка, основанной на применении нейронных сетей.

Классификация изображений с помощью сверточных нейронных сетей

В статье автор исследует использование сверточных сетей для детектирования изображений.

Опыт построения функциональной модели информационной системы планирования экспериментов

Сравнение работы алгоритмов кластеризации

Угрозы использования систем автоматического распознавания образов

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

Классификация аудиосигналов с помощью нейронных сетей

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

Моделирование супервизорного управления ПИД-регулятором на основе генетического алгоритма

В статье рассматривается принцип использования генетического алгоритма для оптимизации управления температурным режимом печи коксования. Приведен анализ качества переходных процессов с традиционным ПИД-регулятором и нейросетевым супервизором.

Нейросетевой подход в задаче обработки данных

В работе рассмотрен подход, основанный на использовании многослойного перцептрона в задаче классификации.

Сравнение архитектур нейронных сетей в задаче сегментации фигуры человека

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

Похожие статьи

Классификация заявок пользователей с помощью нейросети

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

Применение нейронных сетей для графологического анализа почерка

В данной статье проводится исследование системы графологического анализа почерка, основанной на применении нейронных сетей.

Классификация изображений с помощью сверточных нейронных сетей

В статье автор исследует использование сверточных сетей для детектирования изображений.

Опыт построения функциональной модели информационной системы планирования экспериментов

Сравнение работы алгоритмов кластеризации

Угрозы использования систем автоматического распознавания образов

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

Классификация аудиосигналов с помощью нейронных сетей

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

Моделирование супервизорного управления ПИД-регулятором на основе генетического алгоритма

В статье рассматривается принцип использования генетического алгоритма для оптимизации управления температурным режимом печи коксования. Приведен анализ качества переходных процессов с традиционным ПИД-регулятором и нейросетевым супервизором.

Нейросетевой подход в задаче обработки данных

В работе рассмотрен подход, основанный на использовании многослойного перцептрона в задаче классификации.

Сравнение архитектур нейронных сетей в задаче сегментации фигуры человека

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

Задать вопрос