C16 · Объекты и соответствия
Как разделить изображение на области
«Похожи», «связаны» и «один предмет» — три разных утверждения. Сегментация начинается с выбора нужного.
Если нужны основы
Теория
Расти можно только через допустимых соседей
Рост области начинается с затравки. Здесь кандидат должен отличаться от её фиксированной яркости не больше допуска и иметь путь по четырём соседям. Настройка обработанной очереди показывает реальное продвижение алгоритма; число включённых пикселей может быть больше, потому что обработка одной точки открывает несколько соседей.
Малый допуск оставляет фрагмент, большой пропускает рост на фон. Если сравнивать не с затравкой, а с постепенно изменяющимся средним, получится другой алгоритм. Связные компоненты, напротив, просто нумеруют уже готовую бинарную маску. Их ID произвольны и не являются уверенностью.
Рост из затравки
Нажми на тёмную область исходного изображения: рамка отмечает затравку. Увеличивай допуск, затем нажми на фон и сравни выросшую область.
Точные значения — в разборе точки
Серая шкала 0…1: от чёрного к белому.
Точные значения — в разборе точки
Серая шкала 0…1: от чёрного к белому.
Разобрать выбранную точку
Что показывает график
Допуск относится к яркости затравки, а связность — к пути по соседям. Похожий по яркости далёкий пиксель не войдёт, пока к нему нет разрешённого пути.
Параметры и подробности
Рост сравнивает пиксель с неизменной яркостью затравки по четырём соседям. k=3 сравнивает яркости, не связность: далёкие области могут иметь один ID. Цвета ID не означают порядок или уверенность.
Выбери точку на изображении. Стрелки перемещают её; Home и End — к краям строки. Просмотр не изменяет вычисление.
Для изменения примера нужен JavaScript и Canvas. Рассчитанные изображения доступны выше.
Группа признаков не обязана быть связной
K-means чередует назначение ближайшему центру и пересчёт центров. В примере признак один — яркость, центров три, начальные значения фиксированы. Алгоритм уменьшает свой квадратичный критерий, но разные запуски с другими начальными центрами могут прийти к разным разбиениям.
Два одинаково ярких предмета могут попасть в один кластер. Добавление координат ограничивает пространственный разброс, а спектральных или текстурных признаков — позволяет различать материалы. GMM описывает распределения вероятностно; SLIC формирует компактные суперпиксели, которые ещё не равны семантическим предметам.
Одинаковая группа не значит один объект
Начни с первой итерации: пиксели выбирают ближайший центр, затем центры становятся средними своих групп. Нажми на пиксель маски и сравни три расстояния. Добавь итерацию; когда назначения перестанут меняться, это будет явно отмечено.
Точные значения — в разборе точки
Серая шкала 0…1: от чёрного к белому.
- Сравни три расстояния: выбираем наименьшее
Точные значения — в разборе точки
Цвет обозначает категорию, а не величину.
Разобрать выбранную точку
Что показывает график
Распределение яркостей фиксировано; отметки — центры после текущей итерации. Цвет маски — номер группы, а не яркость её центра.
- Распределение
- Центр 1: 0.2715
- Центр 2: 0.3317
- Центр 3: 0.7193
Смотри, объединились ли два разных объекта. Без координат или других признаков алгоритм различает только числовые яркости.
- Перешло пикселей
- 256
- Сходимость на итерации (0 — ещё нет)
- 0
Параметры и подробности
Сначала каждый пиксель выбирает ближайший старый центр. Затем новый центр — среднее яркостей группы. Перешло пикселей: 256. Добавь итерацию и сравни назначения.
Выбери точку на изображении. Стрелки перемещают её; Home и End — к краям строки. Просмотр не изменяет вычисление.
Для изменения примера нужен JavaScript и Canvas. Рассчитанные изображения доступны выше.
Вода разделяет рельеф на бассейны
В watershed низкие значения скалярного поля считаются долинами, высокие — преградами. Это может быть модуль градиента, а для разделения соприкасающихся объектов — отрицательное расстояние до фона. Здесь показан авторский рельеф с двумя долинами, а не фотография: два цветных маркера явно задают начала бассейнов.
Для каждой точки ищется путь от любого маркера с наименьшей возможной максимальной высотой. Эта максимальная высота — уровень, на котором вода впервые достигнет точки. Поэтому близкий к маркеру низкий пиксель за высоким хребтом может заполняться позже далёкого. Ползунок показывает только уже достигнутые точки; 0 — ещё сухо, а не нарисованная граница между бассейнами.
На плоском плато минимальная высота пути не всегда задаёт единственного победителя. В этом примере равные высоты решает очередь: первая пришедшая заявка побеждает; маркеры обходятся по строкам, соседи — справа, снизу, слева, сверху, затем по диагоналям при 8-связности. Метки сохраняются после достижения. Мы не выдаём такой выбор за единственную истинную водораздельную линию.
Попробуй пройти через понижение хребта и добавить третий маркер в ту же левую долину. Изменятся доступные пути и число бассейнов, а не число настоящих предметов. На реальных данных шум рельефа, сглаживание, выраженность градиента, маска фона и выбор маркеров определяют утечки и лишние области. Эти этапы нужно выбирать под задачу; текущий опыт не делает автоматическую предобработку или поиск маркеров.
Затопление из маркеров
Поднимай уровень воды: сначала заполняются долины, затем хребет. Открой проход и добавь третий маркер; сравни, что изменилось.
Точные значения — в разборе точки
Серая шкала 0…1: от чёрного к белому.
Точные значения — в разборе точки
Цвет обозначает категорию, а не величину.
Разобрать выбранную точку
Что показывает график
Линия на изображении отмечает эту же строку. Нажми выше или ниже, чтобы перенести сечение; сравнивай значения при одном столбце.
- Высота рельефа
- Уровень воды
- Выбранный столбец: 8
Метка распространяется по доступным путям, а не к геометрически ближайшему маркеру. Третий маркер разделяет ту же долину ещё раз. 0 означает сухую точку; цвет — номер бассейна, а не высоту или уверенность.
- Затоплено пикселей
- 71
- Маркеров
- 2
Параметры и подробности
Светлый рельеф выше тёмного. Поднимай воду и смотри, когда она проходит через хребет: важен весь путь от маркера, а не только высота выбранной точки. 0 в карте бассейнов означает «ещё сухо», цвет показывает, от какого маркера пришла вода.
Выбери точку на изображении. Стрелки перемещают её; Home и End — к краям строки. Просмотр не изменяет вычисление.
Для изменения примера нужен JavaScript и Canvas. Рассчитанные изображения доступны выше.
Графы и движущиеся контуры решают другие задачи
Справка и следующие методы
В предыдущем опыте разбиение определяли рельеф, маркеры и порядок затопления. В graph cuts задают другую модель: стоимость метки для каждого пикселя и цену разрыва связи между соседями. Random walker сравнивает вероятности достижения разных маркеров случайным блужданием по взвешенному графу. Для этих методов тоже нужно явно выбрать признаки и веса; перекрашивание тех же бассейнов не станет их вычислением.
Активный контур меняет границу ради уменьшения энергии, а Chan–Vese может разделять области по внутренней однородности даже без резкой кромки. Эти семейства не взаимозаменяемы. Оценивать нужно соответствие задаче: пропуск тонкого канала и небольшой сдвиг контура могут иметь разную цену, даже при одинаковом проценте верных пикселей.
Практика
Проверь идею на другом условии. Следуй задаче над изображениями; разбор точки поможет объяснить результат. Эта практика не оценивается.
Почему область убежала на фон
Затравка внутри левого объекта, но допуск слишком велик. Уменьши его так, чтобы фон исчез. Затем нажми внутри правого объекта: тот же допуск теперь относится к другой затравке.
Точные значения — в разборе точки
Серая шкала 0…1: от чёрного к белому.
Точные значения — в разборе точки
Серая шкала 0…1: от чёрного к белому.
Разобрать выбранную точку
Что показывает график
Отсутствие похожего далёкого объекта в маске может быть следствием связности, а не цвета. Проверь разницу яркости и наличие пути, прежде чем делать вывод.
Параметры и подробности
Рост сравнивает пиксель с неизменной яркостью затравки по четырём соседям. k=3 сравнивает яркости, не связность: далёкие области могут иметь один ID. Цвета ID не означают порядок или уверенность.
Выбери точку на изображении. Стрелки перемещают её; Home и End — к краям строки. Просмотр не изменяет вычисление.
Для изменения примера нужен JavaScript и Canvas. Рассчитанные изображения доступны выше.
Игры
Проверь объяснение
Вопрос 1 из 5
Алгоритмы дали одинаковые области, но поменяли ID 1 и 2. Ошибка?
Точные значения — в разборе точки
Серая шкала 0…1: от чёрного к белому.
Точные значения — в разборе точки
Серая шкала 0…1: от чёрного к белому.
Точные значения — в разборе точки
Серая шкала 0…1: от чёрного к белому.
Точные значения — в разборе точки
Серая шкала 0…1: от чёрного к белому.
Точные значения — в разборе точки
Серая шкала 0…1: от чёрного к белому.
Точные значения — в разборе точки
Цвет обозначает категорию, а не величину.
Выбери один ответ. Он проверится сразу.
Ограничения и материалы
Границы этого примера
Живые методы: 4-связный рост от фиксированной затравки, k-means яркости и маркерный watershed на рельефе 16×16 с явной FIFO-политикой плато и 4/8-связностью. Watershed не строит отдельную линию границы и не ищет маркеры автоматически. Графы и активные контуры объяснены, но не вычисляются этим ростом.