Что такое DeepLab и в чём идея ASPP?
Ответ от нейросети
sobes.tech AI
Что хотят услышать интервьюеры:
DeepLab — это семейство моделей для семантической сегментации, которое хорошо сохраняет пространственную точность и умеет захватывать контекст на разных масштабах. Идея ASPP — параллельно смотреть на изображение с несколькими dilation rate, чтобы сеть видела и локальные детали, и более широкий контекст. Это помогает лучше различать объекты разных размеров и границы между классами.
Определение:
DeepLab — это архитектура для семантической сегментации, где каждый пиксель изображения получает класс. Её сильная сторона — баланс между точностью по границам и способностью учитывать контекст сцены.
ASPP (Atrous Spatial Pyramid Pooling) — это модуль, который применяет несколько atrous/dilated convolutions с разными коэффициентами расширения параллельно. Так модель одновременно анализирует признаки на нескольких масштабах без сильного уменьшения разрешения карты признаков.
Пример использования:
В задаче сегментации дороги на изображении с автомобиля DeepLab может выделять проезжую часть, разметку, машины и пешеходов. ASPP помогает одновременно учитывать тонкие границы разметки и большой контекст дороги, тротуара и соседних объектов.
# Упрощённо: идея ASPP, а не готовая реализация DeepLab
import torch
import torch.nn as nn
class ASPP(nn.Module):
def __init__(self, in_channels, out_channels, rates=(1, 6, 12, 18)):
super().__init__()
self.branches = nn.ModuleList([
nn.Conv2d(in_channels, out_channels, kernel_size=3, padding=r, dilation=r)
for r in rates
])
self.project = nn.Conv2d(out_channels * len(rates), out_channels, kernel_size=1)
def forward(self, x):
feats = [branch(x) for branch in self.branches]
x = torch.cat(feats, dim=1)
return self.project(x)
Пояснение кода:
В примере один и тот же входной feature map проходит через несколько свёрток с разными dilation rate.
Первая свёртка смотрит ближе к текущему пикселю, а большие dilation rate захватывают более широкий контекст.
Потом признаки объединяются по каналам и сжимаются 1×1 свёрткой в итоговое представление.
Код иллюстрирует именно принцип ASPP: параллельная обработка на нескольких масштабах.
Ключевые моменты:
- DeepLab — популярный подход к семантической сегментации с упором на точность и контекст.
- ASPP расширяет receptive field без сильной потери пространственного разрешения.
- Параллельные dilated convolutions позволяют учитывать разные масштабы объектов.
- Такой подход особенно полезен в сценах с объектами разных размеров и сложными границами.
- DeepLab обычно используют, когда важны качественные маски: дороги, здания, люди, медицинские структуры.