В этой статье я собираюсь объяснить и применить модель U-Net к набору данных Drone для попиксельной классификации. Давайте сначала посмотрим на модель U-Net.

U-Net для семантической сегментации:

U-Net [1] построен на полностью сверточной нейронной сети (FCN), впервые представленной в [2], и используется для задач семантической сегментации. FCN стал прорывом в области классификации изображений в том смысле, что они могут выполнять мелкозернистые прогнозы, то есть классификацию изображений по пикселям. Это помогает в обнаружении и локализации объектов.

Модель U-Net обучена сквозной и попиксельной семантической сегментации. Он следует той же архитектуре кодер-декодер, что и FCN, не содержит плотного слоя и в своей части декодера содержит большое количество каналов функций для передачи контекстной информации на уровни с более высоким разрешением.

Сетевая архитектура модели U-Net, представленная в [2], показана ниже. В этой статье модель U-Net обучается на наборе данных Drone для обнаружения ряда объектов на аэрофотоснимках.

Одним из преимуществ архитектуры U-Net является то, что ее можно хорошо обучить набору данных с очень небольшим количеством изображений. В исходной статье он был разработан и обучен для задач сегментации биомедицинских изображений. Цель прогнозирования состояла в том, чтобы классифицировать каждый пиксель в 1) содержащем раковые клетки или 2) не содержащем раковых клеток, и, следовательно, это был алгоритм бинарной классификации по пикселям. Для таких задач обычно доступны наборы данных с очень небольшим количеством изображений. И было показано, что эта архитектура не требует огромного количества данных изображений для изучения шаблона. Тем не менее, набор данных все же был дополнен за счет применения упругой деформации к изображениям для изучения инвариантности к деформации.

Как упоминалось ранее, сетевая архитектура состоит из кодировщика и декодера. Кодер состоит из сужающегося пути, а декодер — из расширяющегося пути. На изображении выше левая сторона архитектуры — это кодировщик, а правая — декодер. Кодер имеет ту же архитектуру, что и у сверточной нейронной сети (ConvNet), за исключением того, что плотный слой ConvNets преобразуется в сверточный слой. Затем модель U-Net является расширением ConvNet с дополнительным сверточным слоем, который выполняет повышающую дискретизацию входных объектов, выполняя операции деконволюции.

Как формируется FCN из типичной ConvNet?

Давайте сначала разберемся, как FCN (или U-NET) является преобразованием ConvNet. Типичная ConvNet, например. LeNet, AlexNet имеет полносвязный слой, который имеет фиксированные размеры и отбрасывает пространственные координаты. Это означает, что он теряет информацию о том, «где», но сохраняет информацию о том, «что?». в изображении и, следовательно, может выполнять классификацию изображений. Эту грубую классификационную сеть можно преобразовать в мелкозернистую классификационную сеть, если эти полносвязные слои рассматривать как свертки с ядрами, покрывающими все входные области. Результатом такой сети будет классификационная карта или тепловая карта. Затем нам нужна основная истина в каждой выходной ячейке, чтобы оптимизировать операции свертки. Изображения должны иметь маски с выходной информацией о каждом пикселе/ячейке. С добавлением дополнительных слоев и функции пространственных потерь сеть может выполнять сквозное плотное обучение.

В то время как обычная глубокая нейронная сеть вычисляет нелинейную функцию, сеть только со слоями этой формы вычисляет нелинейный фильтр или глубокий фильтр. Предположим, что вектор данных x{ij} на уровне f{ks} с размером ядра k и размером подвыборки s, тогда вектор данных для следующего слоя yij:

где k называется размером ядра/фильтра, s — шагом подвыборки, а fks определяет тип слоя: свертка, усреднение, максимальное объединение или поэлементная функция активации. Эта функциональная форма сохраняется при композиции слоев, поскольку размер фильтра и шаг следуют правилу преобразования следующим образом:

Описание набора данных:

Semantic Drone Dataset фокусируется на семантическом понимании городских сцен для повышения безопасности автономных процедур полета и посадки дронов. Набор данных содержит 400 общедоступных изображений. Также доступна аннотация с точностью до пикселя для того же набора. Сложность набора данных ограничена 23 классами, перечисленными ниже:
[дерево, трава, растительность, грязь, гравий, камни, вода, асфальтированная площадка, бассейн, человек, собака, автомобиль, велосипед, крыша, стена, забор , забор-столб, окно, дверь, препятствие, ар-маркер, лысое дерево, конфликтный] и немаркированный класс.
Датасет можно найти по этой ссылке: http://dronedataset.icg.tugraz.at

Многоклассовая семантическая сегментация с помощью U-NET:

В [2] U-Net изначально был разработан для выполнения бинарной классификации. С очень небольшими изменениями на последнем уровне в соответствии с набором данных и желаемой задачей классификации модель U-Net может выполнять задачу мультиклассовой классификации.

Реализация

Результаты и прогнозы

Первоначально моя модель страдала как при достижении точности обучения, так и при проверке. Итак, я попытался повернуть несколько ручек, таких как:
1) Увеличить данные, выполнив деформацию изображений
2) Поиграл с размером пакета от 1 до 8. ( Заметил, что это было лучше на 4, поэтому я оставил его !!!)
3)
Изменение скорости обучения (LR) оптимизатора Keras Adam со значения по умолчанию (10^-3) на LR из (10^- 4)
5) Методы инициализации веса. Я заметил, что при использовании метода инициализации he_normal моя модель смогла превысить 80 % как на тренировочном, так и на проверочном наборе. На этом я завершил свои эксперименты.
Я делюсь парой результатов ниже.

Ниже приведены несколько прогнозов по набору тетерев вместе с доступной земной истиной.

Есть много других вещей, которые я хотел попробовать, так как здесь есть много возможностей для улучшения, но не смог из-за ограничений по времени:
1) Проверить производительность других методов инициализации, таких как Инициализация Xavier
2) Поэкспериментируйте с LR, который систематически уменьшается в течение эпох
3) Можно попробовать другие функции активации, хотя обычно ReLU работает лучше!
4) Изучите возможности сетевой архитектуры !! !

Ссылки
[1] Лонг, Джонатан, Эван Шелхамер и Тревор Даррелл. «Полностью сверточные сети для семантической сегментации. Материалы конференции IEEE по компьютерному зрению и распознаванию образов. 2015.»

[2] Роннебергер, Олаф, Филипп Фишер и Томас Брокс. «U-net: сверточные сети для сегментации биомедицинских изображений. Международная конференция по обработке медицинских изображений и компьютерным вмешательствам. Спрингер, Чам, 2015 г.»