9.20M
Categories: programmingprogramming softwaresoftware

Колоризация черно - белых изображений

1.

Колоризация черно-белых изображений
Работу выполнил: Трифанов Александр
Леонидович
Куратор: Зарудин Илья Александрович

2.

Введение.
Современное общество нельзя представить себе без новейших
компьютерных технологий. Технологии используются во всех
сферах жизни человека, в том числе и в обработке изображений.
Несмотря на то, что технология цветной фотографии существует с
начала XX века, до сих пор у многих из нас есть старые альбомы. В
них хранятся чёрно-белые снимки, на которых наши бабушки и
дедушки смотрят в объектив. Старые карточки способны пробудить
целую гамму чувств и воспоминаний, перенести сквозь время.
Прежде всего нельзя не вспомнить о самом привычном для
большинства способе, когда художник раскрашивал фотографию с
помощью
анилиновых
масляных
красок,
красителей,
профессиональной ретуши.
акварели
которые
либо
специальных
использовались
для

3.

Введение
Нередко при этом оригинал приобретал не только цветовую палитру, но и
новые детали. Сегодня такая методика интересна исключительно с
художественной и искусствоведческой точек зрения, так как занимает очень
много времени, и не каждый человек сможет справиться с этой задачей.
Тогда нам на помощь приходят нейросетевые алгоритмы. Речь идет об
нейронный сетях, которым «скармливают» значительное количество
фотографий, как цветных, так и черно-белых, они изучают их, корректируют
алгоритм колоризации черно-белых изображений и позже применяют к
загружаемым пользователями фотографиям.
Фото / Американский писатель Марк
Твен, около 1909 (Раскрасил: Дании
Мадс Мадсен)

4.

Актуальность:
Существуют различные приложения, работающие на базе
нейронных сетей. Ряд интернет-сайтов и мобильных приложений
предлагают широкий спектр инструментов и для фото обработки.
Однако таких приложений крайне мало. Я выбрал этот проект так
как хочу показать какие технологии существуют для колоризации
изображений.

5.

Цель проекта
Написать программу с графическим интерфейсом на основе нейросетевых алгоритмов для
раскрашивания черно-белых фото.
Задачи проекта:
1. Изучить принцип работы нейросетей.
2. Рассмотреть существующие алгоритмы для решения задач.
3. Написать сервер, где будут производиться вычисления.
4. Написать клиентскую часть, где будет происходить отправка изображения на сервер.

6.

Теоретическая часть
Нейросеть
для
колоризации
черно-белых
фото

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

7.

Создание бота
Бот, это программа, которая интегрирована в мессенджер для взаимодействия с
пользователем. Для создания бота я использовал язык программирования Python. Так как Python
очень гибкий и мощный язык программирования, который можно использовать для создания всего,
от простых скриптов для автоматизации задач до мощных веб-приложений.
Python отлично подходит для нейросетей,
потому что этот язык программирования имеет
большое количество библиотек, а также мощные
алгоритмы машинного обучения. Кроме того,
Python обладает прекрасной синтаксической
гибкостью, так что вы можете написать
максимально простой и читаемый код для своей
программы.

8.

За
основу
нейросетевого
алгоритма
я
взял
предобученную модель Deoldify. В данной модели
реализована нейросеть FastAI, которая представляет собой
нейронную сеть, основанную на архитектуре U-net. Данная
модель используется для очистки и восстановления
изображений.
Первым делом я пытался найти более удобный и легкий
фреймворк (инструмент для разработки) для написания
телеграмм ботов. Этим решением оказался Aiogram.
Aiogram - довольно простой и полностью асинхронный
фреймворк для создания чат-ботов. Далее моей задачей
было подружить нейросеть с ботом.

9.

Принцип работы большинства из них схож: речь идет об нейронный сетях, которым
«скармливают» значительное количество фотографий, как цветных, так и черно-белых,
они изучают их, корректируют алгоритм колоризации черно-белых изображений и
позже применяют к загружаемым пользователями фотографиям.

10.

Создание Клиент-серверного
приложения.
Клиент-серверное приложение — это система, которая использует два компьютера: сервер и клиент. Клиент посылает
запросы серверу, а сервер возвращает ответы. Клиент и сервер могут взаимодействовать, используя протоколы, такие как
HTTP или FTP. Я использовал протокол TCP для передачи сообщений и файлов между системами, так как этот протокол
решает проблему негарантированной доставки, а также гарантировать правильную последовательность прихода данных.
Для написания программы я использую язык программирования Python. Для реализации графического
интерфейса я использовал библиотеку PyQT5, так как он позволяет разработчикам создавать визуально привлекательный
интерфейс пользователя, обеспечивает простое использование окон, кнопок, меню и других компонентов интерфейса.

11.

Практическая часть
1 . Телеграмм бот
1.1 приветствие.
На рисунке 1.1 мы видим главную страницу
бота. На ней изображено приветствие и команды
для начала работы. На данной этапе возможен
переход к функционалу бота.
Рисунок 1.1 – графический интерфейс начальной страницы.

12.

1.2 Отправка изображения для обработки.
Рисунок 1.2 – Отправка изображения.

13.

1.3 настройка.
Этот этап самый важный, так как от него зависит
результат. На рисунке 1.3 мы видим параметра: Low,
Medium, Hight. А также настройку «Художественный»
Рисунок 1.3 – настройка параметров для обработки.

14.

1.3 настройка.
Стоит начать с главного параметра «Художественный» от этого параметра зависит красочность
полученного изображения. Эта модель обеспечивает высочайшее качество окрашивания изображений с
точки зрения интересных деталей и яркости. Если художественная модель не выбрана, то по умолчанию
используется стабильная модель.
Стабильная модель достигает наилучших результатов с пейзажами и портретами. Обычно в нем
меньше странных искажений цвета, чем в художественном.

15.

Вот пару примеров для сравнения:
Рисунок 1.4 Художественный.
Рисунок 1.5 Стабильный.

16.

1.3 настройка.
Также есть три параметра Low, Medium, Hight. Они отвечают за фактор рендеринга.
Что же такое фактор рендеринга? фактор рендеринга определяет разрешение с которым
отображается цветная часть изображения. Более низкое разрешение будет отображаться
быстрее, а цвета также будут выглядеть более яркими. В частности изображение более старых и
низких качества как правило выигрывают от снижения коэффициента визуализации. Более
высокие коэффициенты визуализации часто лучше для изображения более высокого качества но
цвета могут слегка размываться.

17.

2 . Клиент-серверное приложение.
2.1 Начальная страница.
Главная страница является центральным
узлом приложения. На ней сосредоточен переход
ко всему функционалу приложения.
Рисунок 2.1 Главная страница

18.

2.2 Выбор изображения.
При нажатии на кнопку «Выбрать изображение» откроется
проводник, где можно выбрать нужные вам изображение.
(Рисунок 2.3) После выбора изображения откроется проводник
где нужно будет указать путь, где будет сохранён результат.
Дальше программа нам скажет что изображение готово к отправке
на обработку, и появится кнопка «отправить на обработку»
(Рисунок 2.4)
Рисунок 2.4
Рисунок 2.3 Выбор изображения

19.

2.3 Настройка параметров для обработки.
Слева есть выбор рендер фактора. Так же как и telegramботе. (Low, Medium и Hight)
Справа есть выбор тип изображения. Для артов Будет
использоваться художественная модель а для фото стабильная.
2.4 Отправка изображения на обработку.
После нажатия на кнопку «Отправить на обработку»
изображение отправляется на сервер и вы встаёте в очередь на
обработку. ( Рисунок 2.4)
Рисунок 2.4 обработка

20.

После завершения обработки изображение отобразится на
экране и будет сохранено по пути которые вы выбрали
(Рисунок 2.5)
Рисунок 2.5 Результат.

21.

Заключение
Я потратил много времени, изучая нейросети, и многое узнал по ходу написания
программы. И я доволен тем, чего достиг! При помощи нейросетей я создал
приложение, которое позволяет раскрашивать изображений. Эта программа
позволяет сделать любое изображение более ярким и красочным, даже из самых
простых изображений. И на мой взгляд оно работает хорошо!
English     Русский Rules