Курсовая работа на тему: "Разработка мобильного приложения для семантической сегментации изображений при построении панорамного изображения"
У нас на сайте представлено огромное количество информации, которая сможет помочь Вам в написании необходимой учебной работы.
Но если вдруг:
Вам нужна качественная учебная работа (контрольная, реферат, курсовая, дипломная, отчет по практике, перевод, эссе, РГР, ВКР, диссертация, шпоры...) с проверкой на плагиат (с высоким % оригинальности) выполненная в самые короткие сроки, с гарантией и бесплатными доработками до самой сдачи/защиты - ОБРАЩАЙТЕСЬ!
Курсовая работа на тему: "Разработка мобильного приложения для семантической сегментации изображений при построении панорамного изображения"
Development of a mobile application for semantic segmentation of images when building a panoramic image
Course Work
Оглавление
Введение 4
1. Цель работы 5
2. Обзор 6
2.1. Семантическая сегментация . . . . . . . . . . . . . . . . . 6
2.2. Оценка качества . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2.1. Время работы . . . . . . . . . . . . . . . . . . . . . 7
2.2.2. Качество сегментации . . . . . . . . . . . . . . . . 7
2.3. Данные . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3. Методы глубокого обучения 9
3.1. U-Net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2. DeepLabV3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.3. E-Net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.4. IC-Net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4. Мобильное приложение 12
5. Результаты 14
Заключение 16
Введение
В настоящее время создание качественных фотоснимков занимает одну из приоритетных задач при создание камер и разработке про- граммного обеспечения для мобильных устройств.
Производители смартфонов уже внедряют различные нейросетевые модели для повышения качества сделанной фотографии, но когда речь касается снятия панорамы, то всё ещё остаются проблемы при обработ- ке. Так как при пересечение нескольких фотографий для получения цельной картины необходимо учесть много факторов, например, дви- жущиеся объекты или световойбаланс.
Анализ подвижных объектов напрямую связан с семантической сег- ментацией каждой фотографии. При этом сама задача является хоро- шо изученной, имеется много работ на эту тему, но далеко не каждый подход удовлетворяет требованиям мобильных приложений.
Исходя из этого, в рамках данной работы, будет разработана модель, способная сохранять качество сегментации в условиях ограниченного времени и маленьких ресурсов.
Для достижения данной цели, поставленны следующие задачи:
1. Сбор и подготовка данных;
2. Изучение методов семантической сегментации изображений;
1. Цель работы
Цель данной работы – это поиск оптимального метода семантиче- скойсегментации фотографии, чтобы в дальнейшем внедрять его в при- ложение длясклейки панорамного изображения. Под оптимальным по- нимается удовлетворение ключевых характеристик, а именно точность сегментация, время работы и занимаемое место наустройстве.
Рис. 1: Пример неправильной склейки панорамы
3. Разработка android-приложения, для сравнения подходов к сег- ментации по всем необходимым метрикам на различных устрой- ствах;
4. Внедрение изученных методов обработки изображений в прило- жение;
5. Сбор и анализ результатов работы всех подходов на валидацион- ном множестве.
2. Обзор
2.1. Семантическая сегментация
Семантическая сегментация – это задача присвоения метки класса каждому пикселю на изображению. Таким образом показывается ”по- нимание” изображения, не только, что находится на нём, но и где.
2.2. Оценка качества
Рис. 2: Пример семантической сегментации (исходное изображение, маска сегментации, наложение маски на исходное изображение)
До наступления эпохи глубокого обучения для сегментации приме- нялись самые разнообразные техники обработки изображений в зави- симости от областиинтересов. Например, метод пороговой сегментации [11], выделение границ объектов на основе градиентов [12] или с помо- щью выделения сообществ награфе [13].
С ростом популярности нейронных сетей, все эти методы были вы- теснены на задний план, так как их качество заметно ниже, поэтому в данной работе будут исследоваться только методы сегментации с ис- пользованием нейронных сетей.
Так как конечная модель будет внедряться в приложение для рабо- ты с пользователями, то накладываются различные ограничения на её качество, время работы и размер в памяти.
Для сравнения различных подходов, из общих данных выделяет- ся специальное тестирующее множество, на котором будет запускаться
каждая модель и полученные результаты будут агрегироваться в об- щую таблицу для дальнейшего анализа.
2.2.1. Время работы
Время работы каждой модели считается, как среднее время работы по всем изображениям из тестирующего набора.
1
n
mT = n ti
где:
• n – количество изображений в выборке;
• ti – время работы сегментации i изображения.
2.2.2. Качество сегментации
i=1
Для оценки качества сегментации применяется стандартная метри- ка в задачах обработки изображения – intersection over union, которая оценивает близость предсказанной маски к оригинальной. Для каждо- го класса объектов, за I обозначается количество пикселей, где класс предсказанной маски совпадает с оригинальным, а за U количество пик- селей, где хотя бы одна из масок указала на объект данного класса. Тогда качество нахождения данного класса
I
IoUclass = U
А качество сегментации изображения – среднее значение данной мет- рики по всем классам
где:
1
IoU =
C
C
∑
IoUclassi
i=1
• C – количество классов объектов;
• IoUclassi – качество сегментации класса i.
Качество модели оценивается, как среднее по всем изображениям те- стирующего множества
mIoU = 1 ∑IoU
n i
i=1
2.3. Данные
В работе используется датасет Pascal VOC [6], в нём представлен- ные изображения и маски к ним, рассчитанные на 20 классов, которые часто встречаются на фотографиях и необходимы для улучшения ка- чества склеивания панорамных снимков: люди, автомобили, животные (кошки, собаки) и т.д.
Датасет включает в себя 1464 тренировочных изображений и 1449
валидационных изображений, которые были объединены в общий дата- сет и разбиты на тренировочный, валидационный и тестирующий на- боры данных в соотношение 7 : 2 : 1. Обучение происходило на трени- ровочном наборе данных с постоянным контролем значение функции потерь на валидационноммножестве. Все конечные оценки замерялись на тестирующем множестве.
Так же в процессе обучения данные подвергаются процессу аугмен- тации, чтобы получить больше различных изображений и лучше натре- нировать нейронную сеть.
3. Методы глубокого обучения
В задачах обработки изображений в основном используются свёр- точные сети архитектуры кодер-декодер. Согласно [10], где можно срав- нивать различные архитектуры работающие с одинаковыми данными, такой подход занимает лидирующие положения в задачаx сегментации, детекции, классификации и т.п. В данном разделе будут рассмотрены архитектуры нейронных сетей приспособленных к работе на мобильных устройствах.
3.1. U-Net
Нейронная сеть, которая пришла из области обработки медицинских снимков [8], на данный момент является одной из самых популярных.
Рис. 3: U-Net архитектура (пример для размера 32 32 на выходе ко- дера). Голубым обозначен мультиканальные карты признаков, количе- ство каналов обозначено над слоем. Белым обозначен скопированные карты признаков. Стрелки указывают на различные операции. С левой стороны каждого слоя указан x − y размер входа.
×
Её отличительная особенность – это хороший результат даже при использование малого количестваданных, при этом использование раз- личных способов кодирования сохраняет высокое качествосегментации [7].
3.2. DeepLabV3
В качестве кодера для мобильного устройства существует специаль- ная сеть MobileNetV2 [4], которая обладает маленьким размером, что является преймуществом при портирование на мобильные устройства.
Таким образом в данной работе будет рассмотрена сегментация с помощью MobileNetV2 + U-Net.
Рис. 4: DeepLabV3 архитектура. Кодер использует многомасштабную контекстную информацию спомощью применения свёрток к изображе- нию разного масштаба, а достаточно простой декодеруточняет границы сегментации.
Данный подход позволяет также внедрить MobileNetV2 [4] в часть кодера, что делает этунейронной сетью крайне быстрой и качественной.
В ходе работы рассмотрены 2 нейронной сети этой архитектуры:
с использованием GPU устройства;
• DeepLabV3 GPU – сегментация изображения размером 251 × 251
• DeepLabV3 CPU – сегментация изображения размером 513 × 513.
Первый подход направлен на ускорение времени работы, а второй на высокое качество сегментации.
3.3. E-Net
3.4. IC-Net
Рис. 5: Блоки E-Net архитектуры. (a) Начальный блок, субдискретиза- ция функцией максимума и окном 2 2 и свёртка размером 3 3 с 13 фильтрами на выходе. (b) Bottleneckмодуль, при этом свёрточный слой может быть как в обычном понимание, так ирасширенной свёрткой или разворачивающей.
Данная модель состоит из bottleneck модулей, где на разных этапах применяются разные типы свёрток. Благодаря значительному умень- шению числа параметров и FLOPS время работы данной сети суще- ственно уменьшилось.
× ×
IC-Net [3] предназначена для решения задачи сегментации в режиме реального времени. Такая нейронная сеть извлекает признаки из одного изображения приведённого к разным размерам, а затем объединяет в общую маску.
4. Мобильное приложение
Рис. 6: IC-Net архитектура. CFF обозначает каскадное объединение признаков.
Разработка android-приложения является необходимым условием для сравнения подходов к решению задачи семантической сегментации, так как необходимо получить информацию о работевсех методов с устройств с различными характеристиками.
В качестве основного языка программирования выбран язык Kotlin,
так как сейчас это является стандартом де-факто при разработке android- приложения. Основным фреймворком для запуска нейронных сетей на устройстве выбраны TensorFlow Lite [9], OpenSource библиотека позво- ляющая запускать нейронные сети на мобильных устройствах с исполь- зованием GPU, но не покрывающая весь необходимый функционал, и TensorFlow Mobile, предыдущая версия библиотеки для запуска моде- лей на устройстве, покрывает весь функционал, но уступает в произ- водительности. В качестве альтернативы был рассмотрен фреймворк OpenCV Android[5], но он требует установки дополнительного прило- жения на устройство, либо в разы увеличивает размер приложения, поэтому решено было откзаться от его использования.
Конечное приложение поддерживает такие функции, как
• выбор изображения для сегментации из галереи, тестирующего множества или фотографии с камеры;
• выбор нейронной сети для сегментации;
• сегментация изображения, отображение результатов, затраченно- го времени и точности, для изображений из тестирующей выбор- ки;
• сбор информации о работе всех установленных методов сегмента- ции, включает в себя запуск каждой нейронной сети на тестиру- ющих изображениях, сбор статистит и выгрузка на сервер.
Исходный код можно найти в репозитории https://github.com/ SpirinEgor/mobile_semantic_segmentation.
5. Результаты
В данном разделе представлены результаты сравнения обученных нейронных сетей по основным критериям. Оценка качества проводи- лась на тестирующем множестве, независимо от устройства. Размер модели – это замороженная модель, сконвентированная под мобильное устройство. Среднее время работы оценивалось на различных устрой- ствах на одном и том же тестирующем наборе данных без учёта пре- и постпроцессинга.
Таблица 1: Оценка качества и занимаемый в памяти размер
Таблица 2: Время работы моделей на различных устройствах. Snap. – Snapdragon. В скобках размер оперативной памяти в гигабайтах.
Таким образом, модель DeepLabV3 CPU обладает самым высоким качеством, но при этом обрабатывает фотографию дольше всего, моде- ли IC-Net и E-Net, как и ожидалось от моделей, работающие в real-time,
показывают высокую скорость, однако уступают в качестве. Модель DeepLabV3 GPU смогла приблизится к ним, а на некоторых устрой- ствах даже обогнать, сохранив при этом хорошее качество. U-Net пока- зывает среднее время работы и низкое качество, это вызвано тем, что она предсказывает появление многих классов, которых на самом деле нет, хотя основные классы находятся хорошо.
Заключение
В результате работы были выполнены следующие задачи:
• изучены подходы к решению задачи семантической сегментации;
• рассмотрены архитектуры нейронных сетей для сегментации на мобильных устройствах;
• сбор и подготовка данных для обучения;
• разработка мобильного приложения для запуска и тестирования нейронных сетей;
• обучение и внедрение в мобильное приложение моделей для се- мантической сегментации изображений;
• сбор и анализ результатов работы всех реализованных методов.
На этом исследование не заканчивается, так как существуют на- правления, в которых можно продолжать работу, например, изучение и внедрение других архитектур: PSP-Net, FCN, MASK-RCNN …
Так же можно продолжить работать с уже реализованными мето-
дами, так как данные модели можно ещё дообучать на новых данных и оптимизировать под устройства для уменьшения времени работы.
Список литературы
[1] ENet: A Deep Neural Network Architecture for Real-Time Semantic Segmentation / Adam Paszke, Abhishek Chaurasia, Sangpil Kim, Eugenio Culurciello // CoRR. – 2016. – Vol. abs/1606.02147. – 1606.02147.
[2] Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation / Liang-Chieh Chen, Yukun Zhu, George Papandreou et al. // CoRR. – 2018. – Vol. abs/1802.02611. – 1802.02611.
[3] ICNet for Real-Time Semantic Segmentation on High-Resolution Images / Hengshuang Zhao, Xiaojuan Qi, Xiaoyong Shen et al. // CoRR. – 2017. – Vol. abs/1704.08545. – 1704.08545.
[4] Inverted Residuals and Linear Bottlenecks: Mobile Networks for Classification, Detection and Segmentation / Mark Sandler, Andrew G. Howard, Menglong Zhu et al. // CoRR. – 2018. – Vol. abs/1801.04381. – 1801.04381.
[5] OpenCV. – 2019. – Access mode: https://opencv.org/platforms
(online; accessed: 13.05.2019).
[6] The Pascal Visual Object Classes Challenge: A Retrospective /
M. Everingham, S. M. A. Eslami, L. Van Gool et al. // International Journal of Computer Vision. – 2015. – Jan. – Vol. 111, no. 1. – P. 98– 136.
[7] RTSeg: Real-time Semantic Segmentation Comparative Study / Mennatullah Siam, Mostafa Gamal, Moemen Abdel-Razek et al. // CoRR. – 2018. – Vol. abs/1803.02758. – 1803.02758.
[8] Ronneberger Olaf, Fischer Philipp, Brox Thomas. U-Net: Convolutional Networks for Biomedical Image Segmentation // CoRR. – 2015. – Vol. abs/1505.04597. – 1505.04597.
[9] TensorFlow Lite. – 2019. – Access mode: https://www.tensorflow. org/lite (online; accessed: 13.05.2019).
[10] Visual Object Classes Challenge 2012. – 2012. – Access mode: http:
//host.robots.ox.ac.uk/pascal/VOC/voc2012/ (online; accessed: 13.05.2019).
[11] А. Ю. Тропченко А.А. Тропченко. Методы вторичной обработки и распознования изображений / Под ред. Университет ИТМО. – Санкт-Петербург : Учебное пособие, 2015. – С. 17.
[12] А. Ю. Тропченко А.А. Тропченко. Методы вторичной обработки и распознования изображений / Под ред. Университет ИТМО. – Санкт-Петербург : Учебное пособие, 2015. – С. 44.
[13] С.В. Белим С.Б. Ларионов. Сегментация изображений на осно- ве алгоритма выделения сообществ на графе // Математические структуры и моделирование. – 2016. – Vol. 3(39). – P. 74–85. – Access mode: http://msm.omsu.ru/jrns/jrn39/BelimLarionovSB. pdf.