Удаление фона на изображениях с помощью искусственных нейронных сетей
|
АННОТАЦИЯ 2
ОБОЗНАЧЕНИЯ И СОКРАЩЕНИЯ 8
ВВЕДЕНИЕ 9
1 УДАЛЕНИЕ ФОНА НА ИЗОБРАЖЕНИИ 11
1.1 Удаление фона на изображении как задача сегментации. Основные
виды сегментации изображений 11
1.2 Классические подходы к сегментации изображения 13
1.2.1 Методы кластеризации 13
1.2.2 Методы наращивания областей 15
1.2.3 Сегментация по водоразделам (Watershed) 17
1.2.4 Обнаружение контуров градиентным методом 19
1.2.5 Обнаружение контуров с помощью метода градиентной обра¬ботки при линейной фильтрации 20
1.2.6 Алгоритм сегментации FloodFill 21
1.2.7 Ручное кодирование свойств области. Сегментация на основе
градаций серого. Алгоритм Split&Merge 22
1.2.8 Алгоритм сегментации GrabCut 22
1.2.9 Методы разреза графа 23
1.2.10 Суперпикселизация 24
1.3 Сегментация изображений с применением нейронных сетей 26
1.3.1 Общее описание 26
1.3.2 Нейронная сеть FCN 26
1.3.3 Нейронная сеть SegNet 27
1.3.4 Нейронная сеть U-Net 28
1.3.5 Нейронная сеть FPN 29
1.3.6 Нейронная сеть Mask R-CNN 30
1.4 Сервисы для удаления фона с изображения 31
1.4.1 Сервис для удаления фона с изображения Remove.bg 31
1.4.2 Сервис для удаления фона с изображения Background Burner 32
1.5 Выводы по разделу 32
2 ЗАДАЧА СЕГМЕНТАЦИИ 34
2.1 Постановка задачи удаления фона с изображения с помощью предвари - тельной сегментации 34
2.2 Исходные данные. Работа с исходными изображениями 35
2.2.1 Источники набора данных 35
2.2.2 Предварительная обработка набора данных 35
2.2.3 Пакетное преобразование изображений. Расширение исходного
набора данных 37
2.2.4 Техника дополнительной разметки «Pseudo-labelling» 38
2.3 Операции свёртки 39
2.4 Операция субдискретизации (пулинг) 41
2.5 Функции активации RELU 42
2.6 Функции потерь 42
2.7 Метрика качества 44
2.8 Кодировщик. Нейронная сеть Resnet-50. Перенос обучения 45
2.9 Декодировщик 47
2.10 Операция DropOut 48
2.11 Архитектура нейронной сети U-Net 49
2.12 Архитектура нейронной сети FPN 50
2.13 Метод оптимизации функции потерь Adam 51
2.14 Обучение нейронных сетей U -Net и FPN с помощью алгоритма обрат-ного распространения 54
2.15 Ансамблирование нейронных сетей U-Net и FPN 57
2.16 Матрица ошибок (Confusion matrix) 57
2.17 Выводы по разделу 58
3 РЕАЛИЗАЦИЯ МОДЕЛЕЙ И ПРОВЕРКА НА ТЕСТОВЫХ ДАННЫХ .... 60
3.1 Алгоритмы получения масок бинарной сегментации и обучения ней-
ронных сетей 60
3.2 Архитектура и обучение нейронной сети U-Net 63
3.2.1 Архитектура 63
3.2.2 Обучение 65
3.2.3 Результаты работы 66
3.3 Архитектура и обучение нейронной сети FPN 69
3.3.1 Архитектура 69
3.3.2 Обучение 71
3.3.3 Результаты работы 71
3.4 Ансамблирование нейронных сетей U-Net и FPN. Результаты объедине-ния масок бинарной сегментации 73
3.5 Выводы по разделу 75
ЗАКЛЮЧЕНИЕ 77
БИБЛИОГРАФИЧЕСКИЙ СПИСОК 79
ПРИЛОЖЕНИЯ 84
ПРИЛОЖЕНИЕ 1 Исходный код 84
ПРИЛОЖЕНИЕ 2 Примеры набора данных 97
ОБОЗНАЧЕНИЯ И СОКРАЩЕНИЯ 8
ВВЕДЕНИЕ 9
1 УДАЛЕНИЕ ФОНА НА ИЗОБРАЖЕНИИ 11
1.1 Удаление фона на изображении как задача сегментации. Основные
виды сегментации изображений 11
1.2 Классические подходы к сегментации изображения 13
1.2.1 Методы кластеризации 13
1.2.2 Методы наращивания областей 15
1.2.3 Сегментация по водоразделам (Watershed) 17
1.2.4 Обнаружение контуров градиентным методом 19
1.2.5 Обнаружение контуров с помощью метода градиентной обра¬ботки при линейной фильтрации 20
1.2.6 Алгоритм сегментации FloodFill 21
1.2.7 Ручное кодирование свойств области. Сегментация на основе
градаций серого. Алгоритм Split&Merge 22
1.2.8 Алгоритм сегментации GrabCut 22
1.2.9 Методы разреза графа 23
1.2.10 Суперпикселизация 24
1.3 Сегментация изображений с применением нейронных сетей 26
1.3.1 Общее описание 26
1.3.2 Нейронная сеть FCN 26
1.3.3 Нейронная сеть SegNet 27
1.3.4 Нейронная сеть U-Net 28
1.3.5 Нейронная сеть FPN 29
1.3.6 Нейронная сеть Mask R-CNN 30
1.4 Сервисы для удаления фона с изображения 31
1.4.1 Сервис для удаления фона с изображения Remove.bg 31
1.4.2 Сервис для удаления фона с изображения Background Burner 32
1.5 Выводы по разделу 32
2 ЗАДАЧА СЕГМЕНТАЦИИ 34
2.1 Постановка задачи удаления фона с изображения с помощью предвари - тельной сегментации 34
2.2 Исходные данные. Работа с исходными изображениями 35
2.2.1 Источники набора данных 35
2.2.2 Предварительная обработка набора данных 35
2.2.3 Пакетное преобразование изображений. Расширение исходного
набора данных 37
2.2.4 Техника дополнительной разметки «Pseudo-labelling» 38
2.3 Операции свёртки 39
2.4 Операция субдискретизации (пулинг) 41
2.5 Функции активации RELU 42
2.6 Функции потерь 42
2.7 Метрика качества 44
2.8 Кодировщик. Нейронная сеть Resnet-50. Перенос обучения 45
2.9 Декодировщик 47
2.10 Операция DropOut 48
2.11 Архитектура нейронной сети U-Net 49
2.12 Архитектура нейронной сети FPN 50
2.13 Метод оптимизации функции потерь Adam 51
2.14 Обучение нейронных сетей U -Net и FPN с помощью алгоритма обрат-ного распространения 54
2.15 Ансамблирование нейронных сетей U-Net и FPN 57
2.16 Матрица ошибок (Confusion matrix) 57
2.17 Выводы по разделу 58
3 РЕАЛИЗАЦИЯ МОДЕЛЕЙ И ПРОВЕРКА НА ТЕСТОВЫХ ДАННЫХ .... 60
3.1 Алгоритмы получения масок бинарной сегментации и обучения ней-
ронных сетей 60
3.2 Архитектура и обучение нейронной сети U-Net 63
3.2.1 Архитектура 63
3.2.2 Обучение 65
3.2.3 Результаты работы 66
3.3 Архитектура и обучение нейронной сети FPN 69
3.3.1 Архитектура 69
3.3.2 Обучение 71
3.3.3 Результаты работы 71
3.4 Ансамблирование нейронных сетей U-Net и FPN. Результаты объедине-ния масок бинарной сегментации 73
3.5 Выводы по разделу 75
ЗАКЛЮЧЕНИЕ 77
БИБЛИОГРАФИЧЕСКИЙ СПИСОК 79
ПРИЛОЖЕНИЯ 84
ПРИЛОЖЕНИЕ 1 Исходный код 84
ПРИЛОЖЕНИЕ 2 Примеры набора данных 97
Современная наука не стоит на месте и постоянно совершенствуется. Этому процессу способствует быстрый рост производительности вычис- лительной техники. Мощность компьютеров увеличивается, что позволяет реализовывать автоматические системы обработки многомерных данных фактически в режиме реального времени [12].
Улучшение существующих решений прослеживается и в области компьютерного зрения. В настоящее время наблюдается бурное развитие автоматизированных технологий обработки изображений. Системы таких технологий позволяют выделить, распознать и классифицировать интересу-ющие исследователя объекты, извлечь из изображений необходимую информацию. Например, компьютерное зрение часто применяется в области медицины. Докторам нужно тщательно просматривать медицинские снимки для идентификации аномалий внутренних органов; невнимательность и халатность специалиста может привести к непоправимым последствиям. Системы обработки многомерных данных могут помочь врачу проанали - зировать медицинские изображения и идентифицировать факт присутствия той или иной аномалии, тем самым выделив значимую информацию из снимка [8]. В большинстве случаев, первым этапом обработки изображения является его сегментация, применяемая для выделения участков с интересу - ющими объектами. Именно поэтому сегментация изображений (далее - сег¬ментация) - актуальная и современная задача.
Сегментация заключается в том, что каждому пикселю изображения присваивается свой класс, своя метка; оно разбивается на множество покры - вающих его областей. Сегментация преследует две основные цели. Первая заключается в разделении изображения на части, более удобные для дальней - шего анализа. Спектр сегментируемых классов велик: от сегментации прос - тых прямоугольных объектов, кругов, до анализа более сложных и мелких композиций на медицинских и спутниковых снимках, фотографиях с камер видеонаблюдения. Вторая же цель заключается в изменении формы описания изображения. В результате сегментации пиксели изображения преобразуются в структуры, содержащие больше информации или обеспечивающие успеш - ную организацию дальнейших операций анализа изображения [18, 20].
Удаление фона на изображении по-другому формулируется как задача бинарной сегментации изображения, где в качестве классов выступают «фон» и «объект на переднем плане». Отсегментировав фон, можно его удалить, оставив только интересующую нас область. Удаление фона на изоб - ражении часто бывает необходимо выполнить при решении задач фотомон - тажа, дизайна, журналистики и других.
Существует большое количество различных подходов к сегментации изображений. Многие существующие решения полагаются на применение системы правил, на выполнение определенного алгоритма, специальную предобработку изображения. Они основаны как на простых алгоритмах нара - щивания областей, кластеризации, классическом машинном обучении, так и на нейронных сетях. Нейросетевые модели дают возможность более точного решения задачи, а от целостности и качества маски сегментации зависит точность срабатывания последующих за ней алгоритмов [5].
Целью данной работы является разработка моделей искусственных нейронных сетей для решения задачи удаления фона на изображении с помощью его предварительной сегментации, получения маски объекта, расположенного на переднем плане (отделение доминирующего объекта от фона) и последующего удаления фона с рассматриваемого изображения.
Для достижения данной цели необходимо решить следующие задачи:
1) исследовать существующие подходы для сегментации изображений;
2) проанализировать и подготовить исходные данные;
3) разработать математические модели искусственных нейронных сетей для решения задачи бинарной сегментации;
4) проверить работу моделей на экспериментальных данных и провести их сравнительный анализ.
Улучшение существующих решений прослеживается и в области компьютерного зрения. В настоящее время наблюдается бурное развитие автоматизированных технологий обработки изображений. Системы таких технологий позволяют выделить, распознать и классифицировать интересу-ющие исследователя объекты, извлечь из изображений необходимую информацию. Например, компьютерное зрение часто применяется в области медицины. Докторам нужно тщательно просматривать медицинские снимки для идентификации аномалий внутренних органов; невнимательность и халатность специалиста может привести к непоправимым последствиям. Системы обработки многомерных данных могут помочь врачу проанали - зировать медицинские изображения и идентифицировать факт присутствия той или иной аномалии, тем самым выделив значимую информацию из снимка [8]. В большинстве случаев, первым этапом обработки изображения является его сегментация, применяемая для выделения участков с интересу - ющими объектами. Именно поэтому сегментация изображений (далее - сег¬ментация) - актуальная и современная задача.
Сегментация заключается в том, что каждому пикселю изображения присваивается свой класс, своя метка; оно разбивается на множество покры - вающих его областей. Сегментация преследует две основные цели. Первая заключается в разделении изображения на части, более удобные для дальней - шего анализа. Спектр сегментируемых классов велик: от сегментации прос - тых прямоугольных объектов, кругов, до анализа более сложных и мелких композиций на медицинских и спутниковых снимках, фотографиях с камер видеонаблюдения. Вторая же цель заключается в изменении формы описания изображения. В результате сегментации пиксели изображения преобразуются в структуры, содержащие больше информации или обеспечивающие успеш - ную организацию дальнейших операций анализа изображения [18, 20].
Удаление фона на изображении по-другому формулируется как задача бинарной сегментации изображения, где в качестве классов выступают «фон» и «объект на переднем плане». Отсегментировав фон, можно его удалить, оставив только интересующую нас область. Удаление фона на изоб - ражении часто бывает необходимо выполнить при решении задач фотомон - тажа, дизайна, журналистики и других.
Существует большое количество различных подходов к сегментации изображений. Многие существующие решения полагаются на применение системы правил, на выполнение определенного алгоритма, специальную предобработку изображения. Они основаны как на простых алгоритмах нара - щивания областей, кластеризации, классическом машинном обучении, так и на нейронных сетях. Нейросетевые модели дают возможность более точного решения задачи, а от целостности и качества маски сегментации зависит точность срабатывания последующих за ней алгоритмов [5].
Целью данной работы является разработка моделей искусственных нейронных сетей для решения задачи удаления фона на изображении с помощью его предварительной сегментации, получения маски объекта, расположенного на переднем плане (отделение доминирующего объекта от фона) и последующего удаления фона с рассматриваемого изображения.
Для достижения данной цели необходимо решить следующие задачи:
1) исследовать существующие подходы для сегментации изображений;
2) проанализировать и подготовить исходные данные;
3) разработать математические модели искусственных нейронных сетей для решения задачи бинарной сегментации;
4) проверить работу моделей на экспериментальных данных и провести их сравнительный анализ.
Цель данной работы заключалась в разработке моделей искусственных нейронных сетей для решения задачи удаления фона на изображении с помощью его предварительной сегментации, получения маски объекта, расположенного на переднем плане и последующего удаления фона с рас - сматриваемого изображения.
В ходе работы задача удаления фона была сформулирована как задача бинарной сегментации изображения, рассмотрены различные классические и нейросетевые подходы к её решению. Выбран нейросетевой подход, а имен - но нейронные сети U-Net и FPN.
Для каждой из рассматриваемых искусственных нейронных сетей составлена математическая модель и разработана архитектура для решения задачи бинарной сегментации изображения. Приведена метрика качества и функции потерь, позволяющие оценить точность работы каждой из моделей. В качестве алгоритма обучения нейронных сетей выбран метод обратного распространения ошибки с применением оптимизации функции потерь методом Adam.
Для обучения и тестирования рассматриваемых нейронных сетей подготовлен набор данных, содержащий 15892 изображений с разметкой объектов на переднем плане. Подготовка набора данных осуществлялась двумя способами: с помощью сервиса разметки и с использованием подхода «Pseudo-labelling».
Разработанные архитектуры нейронных сетей были реализованы на языке программирования Python 3.7 с применением библиотеки машинного обучения Pytorch, а также среды разработки JupyterLab.
Для проведения сравнительного анализа точности бинарной сегмен - тации изображения используется метрика качества IoU, визуализируется матрица ошибок. Для улучшения качества результатов работы моделей предлагается их объединить с помощью метода ансамблирования. Исходя из полученных результатов были сделаны выводы о качестве работы указанных нейронных сетей как по-отдельности, так и вместе. Таким образом, ансамблирование позволяет использовать преимущества каждого из под - ходов; маски бинарной сегментации на выходе ансамбля получаются более качественными, особенно на границе объекта и фона, где, как правило, происходит небольшое размытие изображения.
Итак, цель достигнута, а поставленные задачи - полностью решены. Разработанные архитектуры нейронных сетей успешно внедрены и используются в проекте «Image Blending», разрабатываемый в компании «ООО Цифровая Собственность».
Представленное в данной работе решение может использоваться и для решения задачи удаления фона на видеопоследовательности с предва- рительным её разбиением на отдельные кадры и получением маски объекта, расположенного на переднем плане. В связи с постоянным развитием архитектур для сегментации и появлением новых современных решений целью дальнейшей работы может стать исследование новых архитектур и подходов к решению задачи удаления фона.
В ходе работы задача удаления фона была сформулирована как задача бинарной сегментации изображения, рассмотрены различные классические и нейросетевые подходы к её решению. Выбран нейросетевой подход, а имен - но нейронные сети U-Net и FPN.
Для каждой из рассматриваемых искусственных нейронных сетей составлена математическая модель и разработана архитектура для решения задачи бинарной сегментации изображения. Приведена метрика качества и функции потерь, позволяющие оценить точность работы каждой из моделей. В качестве алгоритма обучения нейронных сетей выбран метод обратного распространения ошибки с применением оптимизации функции потерь методом Adam.
Для обучения и тестирования рассматриваемых нейронных сетей подготовлен набор данных, содержащий 15892 изображений с разметкой объектов на переднем плане. Подготовка набора данных осуществлялась двумя способами: с помощью сервиса разметки и с использованием подхода «Pseudo-labelling».
Разработанные архитектуры нейронных сетей были реализованы на языке программирования Python 3.7 с применением библиотеки машинного обучения Pytorch, а также среды разработки JupyterLab.
Для проведения сравнительного анализа точности бинарной сегмен - тации изображения используется метрика качества IoU, визуализируется матрица ошибок. Для улучшения качества результатов работы моделей предлагается их объединить с помощью метода ансамблирования. Исходя из полученных результатов были сделаны выводы о качестве работы указанных нейронных сетей как по-отдельности, так и вместе. Таким образом, ансамблирование позволяет использовать преимущества каждого из под - ходов; маски бинарной сегментации на выходе ансамбля получаются более качественными, особенно на границе объекта и фона, где, как правило, происходит небольшое размытие изображения.
Итак, цель достигнута, а поставленные задачи - полностью решены. Разработанные архитектуры нейронных сетей успешно внедрены и используются в проекте «Image Blending», разрабатываемый в компании «ООО Цифровая Собственность».
Представленное в данной работе решение может использоваться и для решения задачи удаления фона на видеопоследовательности с предва- рительным её разбиением на отдельные кадры и получением маски объекта, расположенного на переднем плане. В связи с постоянным развитием архитектур для сегментации и появлением новых современных решений целью дальнейшей работы может стать исследование новых архитектур и подходов к решению задачи удаления фона.





