Сегментация изображения направлена на разделение цифрового изображения на области пикселей со схожими свойствами, например, однородностью. [1] Представление областей более высокого уровня упрощает задачи анализа изображений, такие как подсчет объектов или обнаружение изменений, поскольку атрибуты областей (например, средняя интенсивность или форма [2] ) можно сравнивать проще, чем необработанные пиксели.
Чтобы ускорить сегментацию больших изображений, работа может быть разделена между несколькими ЦП . Одним из способов достижения этого является разбиение изображений на плитки, которые обрабатываются независимо. Однако регионы, которые охватывают границу плитки, могут быть разделены или потеряны, если фрагменты не соответствуют минимальным требованиям алгоритма сегментации к размеру. Тривиальный обходной путь включает перекрытие плиток, то есть разрешение каждому процессору учитывать дополнительные пиксели вокруг границы своей плитки. К сожалению, это увеличивает вычислительную нагрузку, поскольку процессоры по обе стороны границы плитки выполняют избыточную работу. Кроме того, гарантированно сохраняются только объекты, меньшие, чем перекрытие плитки, что означает, что длинные объекты, такие как реки на аэрофотоснимках, по-прежнему, вероятно, будут разделены. В некоторых случаях результаты независимых плиток могут быть объединены для приближения к истинным результатам. [3] Альтернатива существует в виде методов сегментации на основе графов. Информация о связности, присущая графам, позволяет выполнять независимую работу над частями исходного изображения и повторно соединять их для получения точного результата, как если бы обработка происходила глобально.
Возможность сшивания независимых подизображений мотивирует добавление информации о связности к пикселям. Это можно рассматривать как граф, узлы которого являются пикселями, а ребра представляют собой связи между пикселями. Простым и сравнительно компактным вариантом этого является граф сетки , в котором каждый пиксель соединен со своими соседями в четырех основных направлениях . Поскольку отношение соседства пикселей симметрично, полученный граф неориентирован , и только половина его ребер (например, восточный и южный сосед каждого пикселя) должна быть сохранена. Последний шаг требует кодирования информации о схожести пикселей в весах ребер, так что исходное изображение больше не нужно. В простейшем случае веса ребер вычисляются как разность интенсивностей пикселей.
Минимальное остовное дерево (MST) — это подмножество ребер графа с минимальным весом и без циклов , в котором все узлы соединены. В 2004 году Фельценшвальб представил метод сегментации [4], основанный на алгоритме MST Крускала . Ребра рассматриваются в порядке возрастания веса; их конечные пиксели объединяются в регион, если это не приводит к образованию цикла в графе и если пиксели «похожи» на пиксели существующих регионов. Обнаружение циклов возможно за почти постоянное время с помощью структуры данных непересекающегося множества . [5] Сходство пикселей оценивается эвристикой, которая сравнивает вес с пороговым значением для каждого сегмента. Алгоритм выводит несколько непересекающихся MST, т. е. лес; каждое дерево соответствует сегменту. Сложность алгоритма квазилинейна, поскольку сортировка ребер возможна за линейное время с помощью сортировки подсчетом .
В 2009 году Вассенберг и др. разработали алгоритм [6] , который вычисляет несколько независимых Минимальных Покрывающих Лесов, а затем сшивает их вместе. Это позволяет выполнять параллельную обработку без разделения объектов на границах плиток. Вместо фиксированного порогового значения веса используется начальная маркировка связанных компонентов для оценки нижней границы порогового значения, что может уменьшить как избыточную, так и недостаточную сегментацию. Измерения показывают, что реализация превосходит последовательный алгоритм Фельценшвальба на порядок.
В 2017 году Саглам и Байкан использовали последовательное представление Прима минимального остовного дерева и предложили новый критерий разрезания для сегментации изображений. [7] Они построили MST с помощью алгоритма MST Прима, используя структуру данных кучи Фибоначчи. Метод достигает важного успеха на тестовых изображениях за короткое время выполнения.