Введение 2
Постановка задачи 4
Обзор литературы 5
Глава 1. Теоретические основы применяемых нейросетевых технологий 7
1.1. Fully Convolution Network 7
1.2. Архитектура F CN 8
1.3. DeepLabV3 11
1.4. Atrous Convolution 12
1.5. Архитектура DeepLabV 3 15
1.6. DeepLabV3 Plus 17
1.7. Архитектура DeepLabV3 Plus 18
1.8. Датасеты 19
1.9. Метрики 21
1.10. Выводы 23
Глава 2. Особенности реализации решения 24
2.1 Используемые технологии и средства разработки 24
2.2. Программа 25
2.3. Система тестирования 27
Глава 3. Результаты тестирования полученного решения 29
Выводы 33
Заключение 34
Список литературы 35
В настоящее время в мире становится все больше разной информации. Человек использует ее для получения различного рода выводов, прогнозирования будущего и нахождения закономерностей.
Из-за большого роста данных с каждым днем, становиться очевидно что нужна автоматизация обработки этих данных. Человек не может “переварить” весь информационных поток, который только нарастает, людям нужен инструмент, который позволит делать выводы основываясь на данных. Такой инструмент предоставляют алгоритмы машинного обучения и нейронные сети. Так же как в свое время машины заменили людской грубый труд на фабриках, эти алгоритмы способны заменить людей в задачах по работе с данными.
Computer Vision (CV) - очень важное направление по работе с данными исследуемое сейчас. Алгоритмы CV помогают автоматизировать работу с неструктурированными данными такими как изображение и видео. Алгоритм, “просматривая” изображение, может молниеносно обработать его и сделать соответствующие выводы. Например, можно научить алгоритм распознавать разные объекты на изображении или же находить точное местоположение этих объектов на изображении, отслеживать машины в видеопотоке, распознавать лица людей и так далее. Все эти алгоритмы используются в таких важных проектах, как умный магазин, автоматизированный транспорт, разблокировка телефона с помощью камеры, отслеживания преступников с помощью камер наблюдения в больших городах и в других не менее значимых задачах.
Семантическая сегментация - очень важная и интересная задача в области CV. В рамках данной задачи алгоритму требуется найти так называемую “маску” объекта на изображении, то есть нужно выделить только те пиксели, которые принадлежат интересующему нас объекту, для дальнейшего оперирования ими. Данную задачу решают в таких проектах, как автоматического управления транспортом, обводки контуром фигуры человека на камерах слежения, замены фона за человеком на фотографии или видео и других.
Постановка задачи
Целью научно-исследовательской работы является изучение и сравнение существующих нейросетевых решений задачи сегментации фигуры человека, их модификаций и возможность использования этих алгоритмов в реальном времени. Поставленная цель определила следующие задачи:
1. Ознакомиться с существующими решениями задачи семантической сегментации.
2. Отобрать несколько нейросетевых моделей для сравнения.
3. Изучить преимущества и недостатки каждой модели. Проверить возможность приемлемой работы каждой модели в реальном времени.
4. Собрать тестовый датасет для проверки качества работы выбранных нейронных сетей.
5. Реализовать программу на языке Python, позволяющую провести тесты и сравнение нейронных сетей на тестовых изображениях и видео в задаче сегментации фигуры человека.
6. Провести тестирование реализованного решения.
Как видно из проведенного исследования, нейронные сети хорошо справляются с задачей сегментации. Все модели в работе показали приемлемое качество работы. Также DeepLabV3 Plus [7] показал удивительную точность в построении масок, что ставит эту модель на первое место среди рассмотренных в данной работе. Но все же по скорости обработки DeepLabV3 Plus [7] проигрывает своим предшественникам.
В будущем планируется нарастить тестовый датасет, а также увеличить количество нейронных сетей для сравнения. Кроме того, представляется перспективным попробовать легковесные нейронные сети (с маленьким количеством параметров) в задачах real time.