Курсовая работа на тему: "Разработка мобильного приложения для семантической сегментации изображений при построении панорамного изображения"

У нас на сайте представлено огромное количество информации, которая сможет помочь Вам в написании необходимой учебной работы. 

Но если вдруг:

Вам нужна качественная учебная работа (контрольная, реферат, курсовая, дипломная, отчет по практике, перевод, эссе, РГР, ВКР, диссертация, шпоры...) с проверкой на плагиат (с высоким % оригинальности) выполненная в самые короткие сроки, с гарантией и бесплатными доработками до самой сдачи/защиты - ОБРАЩАЙТЕСЬ!

Курсовая работа на тему: "Разработка мобильного приложения для семантической сегментации изображений при построении панорамного изображения" 

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

Список литературы                                                                                      17

Введение

В настоящее время создание качественных фотоснимков занимает одну из приоритетных задач при создание камер и разработке про- граммного обеспечения для мобильных устройств.

Производители смартфонов уже внедряют различные нейросетевые модели для повышения качества сделанной фотографии, но когда речь касается снятия панорамы, то всё ещё остаются проблемы при обработ- ке. Так как при пересечение нескольких фотографий для получения цельной картины необходимо учесть много факторов, например, дви- жущиеся объекты или световойбаланс.

Анализ подвижных объектов напрямую связан с семантической сег- ментацией каждой фотографии. При этом сама задача является хоро- шо изученной, имеется много работ на эту тему, но далеко не каждый подход удовлетворяет требованиям мобильных приложений.

Исходя из этого, в рамках данной работы, будет разработана модель, способная сохранять качество сегментации в условиях ограниченного времени и маленьких ресурсов.

Для достижения данной цели, поставленны следующие задачи:

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 = 1IoU

 

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.

Данная архитектура является лидером в задаче семантической сег- ментации [10], её отличительной особенностью стали использование рас- ширенных свёрточных слоёв и объединениепирамидальной субдискре- тизации [2].

Рис. 4: DeepLabV3 архитектура. Кодер использует многомасштабную контекстную информацию спомощью применения свёрток к изображе- нию разного масштаба, а достаточно простой декодеруточняет границы сегментации.

Данный подход позволяет также внедрить MobileNetV2 [4] в часть кодера, что делает этунейронной сетью крайне быстрой и качественной.

В ходе работы рассмотрены 2 нейронной сети этой архитектуры:

с использованием GPU устройства;

    DeepLabV3 GPU – сегментация изображения размером 251 × 251

    DeepLabV3 CPU – сегментация изображения размером 513 × 513.

Первый подход направлен на ускорение времени работы, а второй на высокое качество сегментации.

3.3.     E-Net

Авторы архитектуры E-Net [1] решают задачу сегментации в режи- ме реального времени [1], что подразумевает максимальную скорость обработки каждого изображения с минимальнымипотерями в качестве.

 

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.