Семантическая сегментация и свертка
Что такое семантическая сегментация? Чем она отличается от instance segmentation? Как работает свертка в CNN?
Ответить самому
Сначала сформулируйте ответ как на собеседовании, затем откройте разбор и оцените себя.
Короткий ответ
Семантическая сегментация назначает класс каждому пикселю, не разделяя разные объекты одного класса. Instance segmentation дополнительно разделяет отдельные экземпляры. Свёртка применяет обучаемые ядра к локальным окнам по всем каналам и строит выходные карты признаков.
Полный разбор
Semantic segmentation предсказывает класс для каждого пикселя: дорога, машина, человек, фон и так далее. Все пиксели одного класса попадают в одну semantic mask. Instance segmentation дополнительно различает отдельные объекты: две машины будут двумя разными масками, хотя класс один.
Сверточный слой проходит обучаемыми kernels по изображению. В каждой spatial position он берет локальное окно по всем input channels, считает взвешенную сумму, добавляет bias если он есть и записывает значения в output channels. Kernel size задает локальный receptive field, stride - шаг, padding - размер выхода, а число filters - число output channels.
Главная идея CNN - locality и weight sharing: один и тот же kernel ищет похожий локальный паттерн в разных местах изображения.
Теория
CNN совмещают локальность, shared weights и смешивание каналов; segmentation добавляет dense per-pixel prediction поверх visual features.
Типичные ошибки
- Путать semantic и instance segmentation.
- Описывать свертку как операцию только для одного канала.
- Забывать stride и padding при обсуждении output shape.
Как отвечать на собеседовании
- Используйте пример с двумя машинами одного класса.
- Для свертки упомяните и spatial window, и channel dimension.