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

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

Используемые методы

● NumPy
● Статистика
● Функции активации
● OpenCV

Выбор размера изображения в качестве входных данных в виде высоты и веса, например: ширина изображения = 216 и высота изображения = 216, что дает нам черное изображение.

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

Для генерации случайных изображений нам необходимо преобразовать данные в оттенках серого 2-мерного изображения в 3-мерный формат. Мы можем собрать каждый пиксель по осям x и y и скопировать их в трехмерные форматы. Это преобразует 2-мерные данные в 3-мерные данные, и нам нужно указать, какой цветовой режим использовать и использовать ли альфа-канал или нет.

Архитектура нейронной сети

Для создания нейронной сети нам нужно определить входные данные, скрытые слои и количество нейронов на слой, а также функцию активации.
Предположим, у нас есть (512 512) изображений. что делает нейронная сеть, так это собирает каждое значение пикселя fun { i, j } для компьютера значений r, g, b, a.
Итак, всего у нас есть 5 входных данных измерения. Каждый пиксель преобразуется в 5 различных значений для генерации значений r, g, b, a и смещения.

value = min(image height and image width)
input1 = i / value - 0.5
input2 = j / value - 0.5
Z = sqt(input1 + input2)
Z1 = random value from -1 to 1 Alpha
Z2 = random value from -1 to 1 Bias

Эти входные значения были добавлены с некоторыми случайными весами вместе с функцией активации для каждого нейрона. При выборе цветового режима значения изменяются для выходного слоя.

Используемые функции активации

● Sigmoid
● relu
● Softmax
● Tanh

Сигмовидная функция активации

Диапазон сигмовидной функции активации составляет от 0 до 1, а диапазон их производных - от 0 до 0,25, поэтому возникает проблема исчезающего градиента, если мы используем сигмовидную функцию активации в скрытых слоях.

Функция активации Тан

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

Изображения, созданные в цветовом режиме RGB

Изображения, созданные в цветовом режиме HSV и HSL

Изображения были созданы с использованием цветового режима CMYK.

Полезная информация

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

Блог: https://www.bluetickconsultants.com/generating-abstract-images-using-neural-networks.html

Код GitHub: https://github.com/bluetickconsultants/abstract-images-generator

Другие проекты

Проекты с открытым исходным кодом: https://www.bluetickconsultants.com/open-source.html

Репозитории GitHub с открытым исходным кодом: https://github.com/orgs/bluetickconsultants/repositories

Автор:

ТОО Bluetick Consultantshttps://www.bluetickconsultants.com