Внедрение настроенной архитектуры U-Net с нуля на python и семантическая сегментация аэрофотоснимков, снятых дроном, с использованием разных подходов

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

Table of Contents
1. Semantic Segmentation
2. U-Net Architecture from 
3. Tutorial
3.1. Data Preprocessing
3.2. Semantic Segmentation using U-Net from scratch
3.3. Semantic Segmentation using U-Net with Transfer Learning
4. Conclusion
5. References

Семантическая сегментация

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

Как видно на рисунке выше, обнаружение объектов в содержимом изображения с помощью ограничительной рамки называется обнаружение объекта. Семантическая сегментация, которая представляет собой попиксельную операцию маркировки, предназначена для отображения объектов одного типа (небо, кошка, собака, человек, дорога, автомобиль, гора, море и т. д.). ) на картинке с меткой, то есть цветом. Мгновенная сегментация, при которой каждый экземпляр помечается индивидуально, разделяет каждый объект, отображая его другим цветом. Как упоминалось выше, различные модели CNN, отличные друг от друга, и сложные модели были разработаны для различных целей на фоне этих операций. PSPNet, DeepLab, LinkNet, U-Net, Mask R-CNN — лишь некоторые из этих моделей. Можно сказать, что процесс сегментации — это глаз проекта в приложениях на основе машинного обучения, таких как беспилотные автомобили. Видео ниже содержит процесс семантической сегментации в реальном времени, который сравнивает точку зрения человека и точку зрения PSPNet.

В двух словах, семантическая сегментация в компьютерном зрении — это метод попиксельной маркировки. Если объекты одного типа выражены одним цветом, это называется семантической сегментацией, а если каждый объект выражен уникальным цветом (меткой), это называется сегментацией экземпляра.

U-Net Архитектура

U-Net — это особый тип архитектуры сверточной нейронной сети, который был разработан для биомедицинских изображений (компьютерная томография, микроскопические изображения, МРТ и т. д.) на факультете компьютерных наук и в Центре исследований биологических сигналов BIOSS Фрайбургского университета, Германия, в 2015 г. . Статью — U-Net: сверточные сети для сегментации биомедицинских изображений — можно найти по ссылке здесь. Когда мы рассматриваем техническую идею, модель состоит из кодировщика (сокращения), который представляет собой понижающую выборку (в основном с предварительно обученными весами в Transfer Learning) и декодер (извлечение), который является частью выборки с повышением частоты и называется U-Net, поскольку его схема имеет U-образную форму, как показано на рисунке 2. Эта модель может быть настраивается по разным исследованиям.

Модель U-Net настроена для семантической сегментации аэрофотоснимков в следующем учебном пособии следующим образом:

Если мы возьмем приведенный выше блок кода и рисунок 2 (поток сверху слева направо вверх после буквы «U») шаг за шагом:

1. Вход определяется размером 256x256x3.

2. В результате conv_1 с 16 фильтрами получаются размеры 256x256x16. Он уменьшен до 128x128x16 с помощью Maxpooling в pool_1.

3. С помощью conv_2 с номером фильтра 32 получается размер 128x128x32, и аналогично с pool_2 получается размер 64x64x32.

4. Размер 64x64x64 получается с помощью conv_3 с номером фильтра 64, а 32x32x64 получается с pool_3.

5. Размер 32x32x128 получается при conv_4 с номером фильтра 128, а в результате pool_4 получается 16x16x128.

6. При использовании conv_5 с номерами фильтров 256 получается размер 16x16x256, и с этого момента начинается повышающая дискретизация. В u6 с номером фильтра 128 и (2x2) conv_5 преобразуется в 32x32x128 с Conv2DTranspose, а конкатенация слоев выполняется с u6, conv_4. В результате u6 обновляется до 32x32x256. При conv_6 со 128 фильтрами получается 32x32x128.

7. u7 с номером фильтра 64 и (2x2) становится 64x64x64 путем применения к conv_6 и объединения u7 с conv_3. В результате этой операции u7 определяется как 64x64x128 и становится 64x64x64 с conv_7.

8. u8 с номером фильтра 32 и (2x2) становится 128x128x32 путем применения к conv_7 и объединения u7 с conv_2. В результате этой операции u8 определяется как 128x128x64 и становится 128x128x32 с conv_8.

9. u9 с номером фильтра 16 и (2x2) становится 256x256x16 путем применения к conv_8 и объединения u9 с conv_1. В результате этой операции u9 определяется как 256x256x32 и становится 256x256x16 с conv_9.

10. Вывод завершает процесс классификации с помощью активации softmax, и окончательный вывод принимает форму 256x256x1.

Отсев с различной скоростью используется для предотвращения переобучения.

Руководство

В части кодирования набор данных можно обучать с помощью различных подходов. В этом исследовании, хотя набор данных RGB (необработанное изображение) определяется как x, модель обучается с использованием наземной истины (сегментированное помеченное изображение) как y. В будущих статьях также будут обсуждаться подходы с использованием набора данных маски. Изображение RGB и наземная правда показаны на рисунке 3. Исследование направлено на обучение набора данных с помощью этого подхода и на то, чтобы внешне представленные изображения выполняли сегментацию, как в обучающих данных.

Он ориентирован на часть архитектуры кодирования, а не на достижение высокой производительности. Это связано со сложностью вычислений при работе с наборами данных изображений. Например, хотя необработанное изображение имеет размер 6000x4000 пикселей, оно было преобразовано в 256x256 пикселей, чтобы избежать сложности вычислений. При таких операциях необходимо, чтобы архитектура кодирования работала правильно, отказываясь от точности.

Ссылка на набор данных: https://www.kaggle.com/awsaf49/semantic-drone-dataset

Лицензия:CC0: Public Domain

Предварительная обработка данных

1- Библиотеки импортируются. from architecture import multiclass_unet_architecture, jacard, jacard_loss определяется и импортируется из раздела выше.

2- Необработанные изображения RGB с разрешением 6000x4000 пикселей и соответствующие метки изменены до 256x256 пикселей.

3- MinMaxScaler используется для масштабирования изображений RGB.

4- Импортируются метки наземной истины. 23 метки обнаруживаются в наборе данных наземной достоверности, и метки назначаются содержимому изображений на основе значений пикселей.

5- Набор данных меток one-hot-encoded для классификации, а данные разделены на обучающий набор и тестовый набор.

Семантическая сегментация с использованием U-Net (с нуля)

6- Точность и индекс Jaccard используются в тренировочном процессе. Оптимизатор установлен как ‘adam’, потеря установлена ​​как ‘categorical_crossentropy’, так как это просто сложная задача классификации. Модель оснащена этими настройками.

7- validation_jaccard и потери тренировочного процесса визуализируются. Рисунок 4 иллюстрирует файл val_jaccard.

8. Значение индекса Жаккара тестового набора данных было рассчитано как 0,5532.

Из тестового набора данных выбираются 9-5 случайных изображений, и с помощью обученного алгоритма делается прогноз, и результаты соответствуют рисунку 5.

Семантическая сегментация с использованием U-Net с трансферным обучением

10. Набор данных повторно подготовлен с использованием resnet34. “Adam” устанавливается как оптимизатор, “categorical_crossentropy” устанавливается как функция потерь, и модель обучается.

11- validation_jaccard и потери тренировочного процесса визуализируются. Рисунок 6 иллюстрирует файл val_jaccard.

12. Значение индекса Жаккара тестового набора данных рассчитывается как 0,6545.

13-5 случайных изображений выбираются из тестового набора данных, и с помощью обученного алгоритма делается прогноз, и результаты такие, как на рисунке 7.

Заключение

В этой статье предлагается семантическая сегментация спутниковых изображений с использованием U-Net, разработанного для сегментации биомедицинских изображений. В исследовании рассматриваются два основных подхода. Первый подход предполагает обучение настроенной модели u-net с реализацией с нуля. Второй подход предполагает обучение модели методом трансферного обучения, то есть предварительно обученными весами. В части реализации соответствующие наземные изображения подвергаются горячему кодированию, а модель обучается как процесс классификации. Индекс Жаккара используется для метрик.

Процесс изменения размера не является рекомендуемым методом, поскольку в операции сегментации произойдет нежелательное смещение изменения размера, но из-за сложности вычислений размер набора данных изменяется до 256x256 с 6000x4000. Поэтому вероятность успеха моделей резко низка. Некоторые из основных вещей, которые можно сделать, чтобы предотвратить эту ситуацию, — это использование набора данных с высоким разрешением и/или использование patchfying (обрезка изображений и соответствующих им изображений).

С набором данных с измененным размером оцениваются 2 различных подхода, и результаты показаны на рисунке 8. Глядя на значения индекса Жаккара, 0,6545 получается с методом трансферного обучения, а 0,5532 получается с помощью модели, построенной с нуля. Видно, что процесс сегментации, полученный на предварительно обученной модели, проходит более успешно.

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



Рекомендации

О. Роннебергер, П. Фишер и Т. Брокс, «LNCS 9351 — U-Net: сверточные сети для сегментации биомедицинских изображений», 2015 г., doi: 10.1007/978–3–319–24574–4_28.

А. Арнаб и др., «Условные случайные поля в сочетании с глубокими нейронными сетями для семантической сегментации», Обработка сигналов IEEE. Mag., том. ХХ, 2018.

JYC Chen, GF Eds и G. Goos, 2020_Book_VirtualAugmentedAndMixedReality. 2020.

Дж. Маурья, Р. Хеббалагуппе и П. Гупта, «Сегментация рук в реальном времени на скромном головном устройстве для жестового интерфейса», Proc. — Междунар. конф. Процесс изображения. ICIP, стр. 4023–4027, 2018, doi: 10.1109/ICIP.2018.8451213.