Искусственные нейронные сети состоят из слоев узлов, содержащих входной слой, один или несколько скрытых слоев и выходной слой. Каждый узел соединяется с другим и имеет соответствующий вес и пороговое значение.
Для генерации случайных цветных изображений мы разработаем архитектуру 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 Consultants — https://www.bluetickconsultants.com