Edge detection
- Автор: Команда PhotoPanda
- Обновлено
- 2 мин чтения
- 103 просмотра
Определение
Edge detection (детекция границ) — группа алгоритмов компьютерного зрения для выделения границ объектов по резкому изменению яркости или цвета пикселей. Лежит в основе классической сегментации изображений и дополняет нейросетевые методы удаления фона.
Edge detection (детекция границ) — группа алгоритмов компьютерного зрения для выявления резких изменений яркости (градиентов) в изображении, соответствующих физическим границам объектов. Краеугольная техника классического машинного зрения, остающаяся важным элементом предобработки в современных нейросетевых пайплайнах удаления фона и сегментации.
Классические алгоритмы детекции границ
- Sobel (1968): попарные свёрточные ядра 3×3 по X и Y, вычисляет приближение градиента. Быстрый, устойчив к шуму, но даёт толстые границы.
- Prewitt: похож на Sobel, но с равномерными весами. Менее устойчив к шуму.
- Laplacian of Gaussian (LoG): гауссово размытие + оператор Лапласа. Изотропный (не зависит от направления), хорошо находит точки перегиба яркости.
- Canny (1986): многошаговый алгоритм: гауссово сглаживание → Sobel-градиент → non-maximum suppression → hysteresis thresholding. Стандарт для чётких тонких границ. Параметры:
threshold1,threshold2,apertureSize. - Structured Forests / HED (2015): нейросетевой детектор границ на Random Forests / CNN, обученный на BSD500. Понимает семантику объектов, не только контраст яркости.
Роль edge detection в удалении фона
Современные нейросети (BiRefNet, rembg) не используют классический edge detection как таковой — они учатся распознавать объекты end-to-end. Однако edge-информация влияет на качество несколькими путями:
- Alpha refinement: после получения грубой маски от основной сети, edge-aware alpha refinement (FBA Matting, ViTMatte) уточняет пиксели границы, используя градиент яркости
- Loss functions: при обучении BiRefNet используется edge-loss — штраф за неточные предсказания именно на границах объекта
- Guided filter / Edge-aware smoothing: постобработка alpha-channel с сохранением чётких границ
Edge detection в практических задачах
| Задача | Рекомендуемый алгоритм | Библиотека |
|---|---|---|
| Быстрый детектор для предобработки | Sobel / Canny | OpenCV cv2.Canny() |
| Точные границы с семантикой | HED / RCF | PyTorch model |
| Граница для compositing | Canny + guided filter | OpenCV + scikit-image |
| Художественный эффект «карандашный рисунок» | Laplacian + инвертирование | PIL / Sharp |
FAQ — Edge detection
Почему Canny не работает на зашумленных фото?
Шум создаёт ложные края — каждый шумовой пиксель даёт высокий градиент. Решение: увеличить sigma гауссового размытия (первый шаг Canny) или применить denoising перед детекцией. На сильно зашумленных фото лучше работают обученные детекторы (HED), так как они игнорируют случайные текстуры.
Edge detection vs Segmentation — в чём разница?
Edge detection возвращает карту вероятных границ (каждый пиксель = вероятность границы). Segmentation возвращает маску принадлежности к классу (пиксель = «объект» или «фон»). Границы — производная сегментации, но граница не равна сегментационной маске: граница двусторонняя, маска — бинарная.
Связанные термины
- Segmentation maskSegmentation mask (маска сегментации) — бинарное или полутоновое изображение, где каждый пиксель кодирует принадлежность к объекту (1/белый) или фону (0/чёрный). Soft mask содержит промежуточные значения 0–255 для полупрозрачных областей и антиалиасинга.
- BiRefNetBiRefNet (Bilateral Reference Network) — state-of-the-art архитектура нейросети для задач dichotomous image segmentation. Опубликована в 2024 году, превосходит U-Net и SAM по точности на бордерах объектов.
- U-NetU-Net — архитектура свёрточной нейросети для семантической сегментации (Ronneberger et al., MICCAI 2015). Encoder-decoder с skip-connections в форме буквы «U». Основа для всех современных моделей сегментации.
- Апскейл фотоАпскейл фото — увеличение разрешения изображения нейросетью с восстановлением деталей. В отличие от обычного интерполяционного увеличения (bicubic), AI-апскейл генерирует утерянные детали на основе обученных моделей.
- Колоризация (Colorization)Колоризация — автоматическое раскрашивание чёрно-белых изображений в цветные через нейросеть. Современные модели (ColorFlow, Adobe Quickfire) учитывают исторический период съёмки для period-accurate раскраски.
- Adversarial training (состязательное обучение)Adversarial training (состязательное обучение) — метод, при котором две нейросети учатся друг против друга: генератор создаёт данные, дискриминатор их разоблачает. Лежит в основе GAN и adversarial-лосса в апскейле (ESRGAN) и восстановлении лиц (GFPGAN).
Материал подготовила
Команда PhotoPanda
Редакция сервиса обработки фото PhotoPanda.