12.37M
Category: internetinternet

Обучение нейросети на распознавание степени размытости изображения

1.

Обучение нейросети на распознавание степени размытости изображения
Цель: Разработать и обучить нейросеть, которая может определить степень размытости изображения от 0.0 до 1.0.
Входные данные: серия изображений, часть из которых синтетически размыты, часть нет.
Для этого разработан алгоритм, который имитировал размытие - эффект Боке.
Обучение на 22000 изображений.
320х176

2.

Обучение нейросети на распознавание степени размытости изображения
Нейросеть плохо возвращала промежуточные значения, если обучать только на 0 и 1 и на 0,25, 0,5, 0,75.
Решили генерировать реалистичное размытие с боке, чтобы получить много обучающих данных с любой степенью размытия. Размытие по Гауссу или медианное не
давало реалистичного размытия.
Настоящий эффект Боке
Медианное размытие

3.

Реализация функции эффект Боке:
1. Методы предварительной обработки
Увеличение резкости и контраста (функция unsharp_mask).
2. Методы размывания
Дисковое размытие (функция disc_blur) - имитация характерных круглых бликов на фото,
напоминающих диафрагму объектива.
Медианное размытие (cv2.medianBlur) - убирает шум, сглаживает яркие точки. Применяется для
генерации карт размытия (blur map).
3. Методы выделения карт размытия - разные участки изображения размываются с разной
силой.
Формируется карта ярких областей (apply_bokeh_effect, create_bokeh)
Изображение переводится в оттенки серого и пороговая сегментация (cv2.threshold) выделяет
яркие пиксели (будущие "блики").
Применяются морфологические операции (cv2.dilate, cv2.morphologyEx) для укрупнения
областей - контроль размеров и формы "бликов боке".
Полученная маска используется для наложения размытых областей.
4. Дополнительные эффекты
Смещение и наложение (функция shift_and_overlay) - сдвигает копию изображения и смешивает с
оригиналом. Добавление шума (функция add_gaussian_noise)

4.

Первоначальное изображение
Камера с размытием
Искусственное размытие

5.

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

6.

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

7.

Разработка нового нейро-алгоритма детекции заслона и отворота для детектора саботажа
Цель: Необходимо сравнивать два изображения и находить между ними разницу, определяя области, которые заслоняют информацию на
первом изображении. Выводить эти области в виде маски, при этом игнорировать изменения освещенности и слабые сдвиги сцены. При
сильных сдвигах (больше 20%) заливать всю маску как одно большое изменение сцены (событие отворот).
Входные данные: пары изображений, одно из которых проходит через алгоритмы заслона предметами / заслона фигурами / сдвига в
случайные стороны / искуственное затемнение. Также на вход подавались изображения, которые переосвещены нейросетью LumiNet.
Изображения аугментируются случайным образом различными эффектами: гауссов шум, повороты, изменения цветов.

8.

Разработка нового нейро-алгоритма детекции заслона и отворота для детектора саботажа
Обучение проходило в две фазы с разными функциями потерь по 20 эпох.

9.

Миграция обученных нейросетей из TensorFlow в ONNX / Исследование PyTorch
Цель: Запуск ранее обученные нейросети на Python/TensorFlow в тестовом приложении на C++. Исследование возможности их запуска
на PyTorch.
Получилось конвертировать все модели в onnx и torch. Во всех на С++ выводится два или одно изображение без ресайза и предсказание (маска или
число)
Интеграция обученных нейросетевых моделей в существующий каркас детектора SabotageDet
Цель: Интеграция обученных нейросетевых моделей в существующий каркас детектора SabotageDet для обнаружения:
• Засветки камеры
• Затемнения камеры
• Расфокусировки камеры
• Заслона/Отворота.
Выставленные пороги:

10.

Заслон в детекторе с
использованием нейросети:
37.3082
Заслон в детекторе с
использованием нейросети:
10.7191
Заслон в детекторе с
использованием нейросети:
66.478

11.

Заслон в детекторе с
использованием нейросети:
38.0125
Заслон в детекторе с
использованием нейросети:
50.0089

12.

Формирование стабильного фонового изображения из последовательсности кадров с использованием
нейросетей
Цель: Разработать и обучить нейронную сеть, способную из последовательности видеокадров формировать одно "стабильное"
изображение, содержащее только неподвижные элементы сцены (фон), исключая все движущиеся объекты.
Нейронная сеть должна принимать на вход N последовательных кадров видео и выдавать один кадр, представляющий собой стабильный
фон.
Вход: Последовательность из N кадров, любого разрешения. Рекомендуется начать с N=5, но этот параметр должен быть
экспериментально подобран.
Выход: Одно стабильное фоновое изображение того же размера.
English     Русский Rules