Sobes.tech
Назад к вопросам
Middle — Senior
12

Что такое DeepLab и в чём идея ASPP?

Компании, где спрашивали
Sensemitter

Ответ от нейросети

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 обычно используют, когда важны качественные маски: дороги, здания, люди, медицинские структуры.