107
правок
Изменения
→Семантическая сегментация
[[Файл:SegmentationExample.jpeg|300px|thumb|right|Пример семантической сегментации изображения]]
Для семантической сегментации чаще всего применяются глубокие [[:Сверточные_нейронные_сети|свёрточные нейронные сети]], в том числе, когда данные [https://arxiv.org/abs/1502.02734 слабо размечены]. Действительно, проблема низкого уровня размеченности данных в семантической сегментации довольно важна, поскольку для каждого пикселя определить его принадлежность с высокой точностью {{---}} задача, требующая высоких затрат времени и и не всегда высокую точность. Однако, сочетание хорошо размеченных данных со слабо размеченными данными (например, с точностью до bounding box-ов) улучшает производительность модели. В 2016 году для Для задачи сегментации [https://arxiv.org/abs/1605.06211 хорошо себя показали] FCN (fully-convolutional networks) {{---}} полносвёрточные сети, позволяющие работать с изображениями произвольного размера, а на выходе выдавать тепловую карту нахождения классов на изображении через серию свёрток. Поскольку свёртка над матрицей большой размерности с большим числом каналом является затратной, как правило, первая половина слоёв в таких свёрточных сетях обеспечивает сабсэмплинг (англ. subsampling - уменьшение размерности), а вторая часть слоёв - апсэмплинг (англ. upsampling - увеличение размерности). Таким образом, размерность изображений в пикселях на входе и на выходе сети является одинаковой, а большинство операций свёртки применяется к матрицам небольшой размерности. Конечная классификация достигается за счёт выбора максимума по классам из значений тензора размерности $C \times W \times H$, где $C$ - множество классов, заранее заданных перед обучением и к которым могут принадлежать пиксели изображения, $W \times H$ - размер изображения. Такую модель можно обучить при помощи [[:Обратное_распространение_ошибки|обратного распространения ошибок]], а в качестве функции потерь для пикселей использовать кросс-энтропию. Модель [https://arxiv.org/abs/1505.04597 U-Net], разработанная авторами для сегментации биомедицинских изображений, улучшает архитектуру FCN путём использования сужающихся блоков свёртки для захвата контекста, расширяющихся блоков свёртки для локализации, а также прямых связей между блоками свёртки на одинаковых уровнях. Развитием U-Net, в свою очередь модель [https://arxiv.org/abs/1611.09326 DenseNet], в которой используются полностью связанные свёрточные сети. В основе идеи лежит использование "плотных блоков" {---} совокупности нескольких свёрточных слоёв с подключением каждого слоя к каждому слою. Однако, существенным недостатком такой модели является низкая эффективность работы с памятью.
Совершенно по-иному на свёртку для сегментации объектов позволил взглянуть метод расширенных свёрток (англ. atrous convolutions), применяющийся в современных state-of-the-art подходах ([https://arxiv.org/abs/1606.00915 DeepLab], [https://arxiv.org/abs/1706.05587 DeepLab v3], [https://paperswithcode.com/paper/encoder-decoder-with-atrous-separable DeepLab v3+]). Расширенная свёртка заключается в том, чтобы применять свёртки с ядрами разного размера и разным страйдом над прямоугольниками с одним и тем же центром, а впоследствии комбинировать полученные таким образом признаки. Расширенные свёртки могут применяться как каскадно (последовательно регулируя показатель расширения фильтра), так и параллельно (англ. ASPP, Atrous Spatial Pyramid Pooling {---} применяя свёртки с различным масштабом ядер на одном и том же слое свёрточной сети с пулингом в конце). Такой подход позволил достичь лучших результатов в изображениях с объектами разных масштабов.