Найти в Дзене
Machine Learning Explained

DeepLabv3+

Semantic segmentation - эта задача попиксельной классификации изображений, то есть каждому пикселю нужно присвоить класс, например, "дорога", "автомобиль", "дерево". Решать её нужно в области беспилотного транспорта, контроля качества изделий, анализа медицинских изображений, обработки изображений со спутников.

Одна из недавних моделей, которая хорошо показала себя на этой задаче на разных датасетах - DeepLabv3+.

Как понятно из названия, она у разработчиков не первая 🙂 Их было 3 до этого: v1, v2, v3.

Все они используют atrous convolution. Этот термин взят из вейвлет-анализа и звучал как "algorithme à trous", где trous означает дыра. Еще называется dilated convolution. Фильтр умножается не на оригинальный сигнал, а на сигнал, взятый с определенным rate. Это то же самое, что использовать фильтр, прореженный нулями. Такой вид свертки позволяет получать информацию на разных масштабах изображения. "Масштаб" задается параметром rate.

Atrous convolution
Atrous convolution

Появлялись версии DeepLab так:

- DeepLabv1 2014 год - предложено использование atrous convolution;

- DeepLabv2 2016 год - atrous convolution используется в составе Atrous Spatial Pyramid Pooling, то есть параллельное использование слоев atrous convolution с разным rate - картинка внизу;

- DeepLabv3 2017 год - Atrous Spatial Pyramid Pooling объединяется с информацией уровня всего изображения - image-level feature;

Atrous Spatial Pyramid Pooling + image-level feature
Atrous Spatial Pyramid Pooling + image-level feature

- DeepLabv3+ 2018 год - добавляется decoder, предыдущая версия сети используется как encoder. Это позволяет лучше обрабатывать пиксели на границах объектов.

В последней версии DeepLabv3+ в качестве основы используется сеть Xception и предобучение на датасете JFT-300M. Особая прелесть, что открыты исходники на TensorFlow.

​​DeepLab v3 Xception, video by Karol Majek
​​DeepLab v3 Xception, video by Karol Majek

Бонусом небольшой обзор статей, включая методы, обогнавшие DeepLabv3+ на некоторых датасетах https://heartbeat.fritz.ai/a-2019-guide-to-semantic-segmentation-ca8242f5a7fc

DeepLabv1 - https://arxiv.org/pdf/1412.7062v4.pdf

DeepLabv2 - https://arxiv.org/pdf/1606.00915v2.pdf

DeepLabv3 - https://arxiv.org/pdf/1706.05587.pdf

DeepLabv3+ - https://arxiv.org/pdf/1802.02611v3.pdf

https://t.me/machine_learning_explained