Найти в Дзене

Где у предмета граница: как компьютер находит контур объекта

Оглавление

Когда мы смотрим на любой предмет, наш мозг сразу же отделяет его от фона. Мы не думаем о том, где заканчивается чашка и начинается стол. Мы просто видим.

А вот компьютер — не видит. Ему нужно сначала всё просчитать.

Если мы хотим, чтобы алгоритм распознал объект на изображении, первый логичный шаг — найти его границы. Контуры. Это как обводка — аккуратная линия, которая идёт по краю предмета.

Контур — это основа.

Без него нейросети сложнее разобраться, где объект, а где фон. Без него нельзя измерить размеры детали, нельзя точно очертить опухоль на снимке, нельзя отслеживать движение силуэта. Контур — это способ понять: «Вот он, объект. А всё остальное — не он».

Как компьютер находит края

Сначала берётся обычное изображение. Цветное.

Затем оно упрощается — превращается в оттенки серого, чтобы легче было анализировать яркость.

После этого запускается один из самых известных алгоритмов — Canny edge detector. Он ищет места, где в изображении происходят резкие перепады яркости. Такие перепады часто соответствуют краям предметов.

Результат? Новое изображение, где белые линии — это предполагаемые края.

Вот пример:

Пример того как компьютер видит контуры объектов.
Пример того как компьютер видит контуры объектов.

--

Если вы хотите узнать как автоматизировать процессы, снизить брак с помощью компьютерного машинного зрения, напишите мне в телеграм: https://t.me/dvdiamanto

--

А что дальше? Только края — это ещё не контуры

На этом этапе у нас просто много линий.

Некоторые из них полезны — например, контур самой чашки.

А некоторые — помехи: текстура дерева, тени, блики.

Чтобы из всех этих краёв выделить контуры объектов, компьютер использует специальный алгоритм, который собирает пиксели в замкнутые или почти замкнутые линии. В OpenCV он называется findContours.

Дальше — чистка.

  • Удаляются слишком мелкие контуры (это может быть просто шум).
  • Упрощаются слишком «дрожащие» линии — с помощью алгоритма аппроксимации (например, Дугласа-Пекера).
  • Применяются морфологические операции — чтобы склеить разрывы или заделать дыры в линиях.

В итоге остаются только те контуры, которые представляют интерес — например, очертание чашки.

Пример того как может выглядеть определение контура.
Пример того как может выглядеть определение контура.

Контур — это не просто линия

На этом этапе с ним уже можно работать.

  • Измерить площадь объекта.
  • Построить прямоугольник вокруг.
  • Построить выпуклую оболочку (если форма важна).
  • Найти центр масс.
  • Узнать, вложен ли один контур в другой (например, у пончика дырка — это внутренний контур).

И всё это — без нейросетей.

Без сложных моделей.

Классика. Надёжная, быстрая, понятная.

Где применяется

Практически везде, где есть машинное зрение:

  • В промышленности — проверка форм и размеров деталей.
  • В безопасности — отслеживание силуэтов на камерах.
  • В дронах — определение зданий, линий горизонта.
  • В дополненной реальности — понимание, где плоскость, а где край стола.

Контур — это базовый слой восприятия.

Без него выше двигаться сложно.

Именно с них начинается настоящее понимание изображения. И даже если дальше в работу включаются нейросети, трансформеры, дип-стэки — всё равно хорошо найденный контур делает их работу проще.

--

Если вы хотите узнать как автоматизировать процессы, снизить брак с помощью компьютерного машинного зрения, напишите мне в телеграм: https://t.me/dvdiamanto

--