Введение 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.
1. Mark Everingham, S. M. Ali Eslami, Luc Van Gool, Christopher K. I. Williams, John Winn, Andrew Zisserman. The PASCAL Visual Object Classes Challenge: A Retrospective. International Journal of Computer Vision, 2015.
2. Tsung-Yi Lin, Michael Maire, Serge Belongie, Lubomir Bourdev, RossGirshick, James Hays, Pietro Perona, Deva Ramanan, C. LawrenceZitnick, Piotr Dollar. Microsoft COCO: Common Objects in Context. In: ECCV, 2014.
3. Jonathan Long, Evan Shelhamer, Trevor Darrell. Fully Convolutional Networks for Semantic Segmentation. In: CVPR, 2015.
4. L.-C. Chen, G. Papandreou, I. Kokkinos, K. Murphy, and A. L. Yuille, “Semantic image segmentation with deep convolutional nets and fully connected crfs,” in ICLR, 2015.
5. L.-C. Chen, G. Papandreou, I. Kokkinos, K. Murphy, and A. L. Yuille. Deeplab: Semantic image segmentation with deep convolutional nets, atrous convolution, and fully connected crfs. arXiv:1606.00915, 2016.
6. Liang-Chieh Chen, George Papandreou, Florian Schroff, Hartwig Adam. Rethinking Atrous Convolution for Semantic Image Segmentation. arXiv preprint arXiv: 1706.05587, 2017.
7. Liang-Chieh Chen, Yukun Zhu, George Papandreou, Florian Schroff, Hartwig Adam. Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation. arXiv preprint arXiv: 1802.02611, 2018.
8. K. Simonyan and A. Zisserman. Very deep convolutional networks for large-scale image recognition. CoRR, abs/1409.1556, 2014.
9. He, K., Zhang, X., Ren, S., Sun, J.: Deep residual learning for image recognition. In: CVPR, 2016.
10. Grauman, K., Darrell, T.: The pyramid match kernel: Discriminative classification with sets of image features. In: ICCV, 2005.
11. Lazebnik, S., Schmid, C., Ponce, J.: Beyond bags of features: Spatial pyramid matching for recognizing natural scene categories. In: CVPR, 2006.
12. He, K., Zhang, X., Ren, S., Sun, J.: Spatial pyramid pooling in deep convolutional networks for visual recognition. In: ECCV, 2014.
13. Ioffe, S., Szegedy, C.: Batch normalization: Accelerating deep network training by reducing internal covariate shift. In: ICML, 2015.
14. Ronneberger, O., Fischer, P., Brox, T.: U-net: Convolutional networks for biomedical image segmentation. In: MICCAI, 2015.
15. Badrinarayanan, V., Kendall, A., Cipolla, R.: Segnet: A deep convolutional encoder-decoder architecture for image segmentation. PAMI, 2017.
16. Chollet, F.: Xception: Deep learning with depthwise separable convolutions. In: CVPR, 2017.