Прямой подход к поиску экстремумов в двухмерном массиве представлен на рис. 1, а. Пиксели исходного изображения анализируются в порядке растрового сканирования (слева направо, затем сверху вниз). Каждый анализируемый пиксель сравнивается с другими пикселями в своей окрестности размером пикселей также в порядке растрового сканирования [9]. Центральный пиксель С не является максимальным, если найден любой более значимый или равный соседний пиксель. Затем алгоритм переходит к следующему пикселю в строке сканирования. Прямой подход требует сравнений на пиксель для -окрестности. Наилучшему варианту сооветствует ситуация, когда вектор интенсивности меняется на противоположный. При этом прямой подход требует только одного сравнения на пиксель. В среднем, однако, данный подход требует сравнений на пиксель.
а | б | в |
Рис. 1. Представление способов сканирования изображений: а – растровое сканирование;
б – спиральное сканирование; в – Block partitioning
Cложность алгоритма растрового сканирования может быть значительно уменьшена путем анализа соседних пикселей в другом порядке. В работе [10] представлен такой алгоритм с локальным спиральным порядком (рис. 1, б). Сначала, в результате сравнения, центральный пиксель, возможно, будет локальным максимумом в -окрестности. Затем он проверяется
в большей окрестности. Так как количество локальных максимумов в -окрестности
в изображении обычно невелико ( % от общего количества пикселей), алгоритм спирального порядка быстро находит любые немаксимальные значения, пропускает
их и переходит на следующий пиксель. Число локальных максимумов в окрестности с размером пикселей также быстро уменьшается, поскольку размер окрестности увеличивается. В результате вычислительная сложность этого алгоритма примерно постоянна (не более сравнений на пиксель для обнаружения в -окрестности немаксимальных пикселов) независимо от размера окрестности.
|
|
В работе [9] представлен эффективный алгоритм NMS, который требует 2,39 сравнений на пиксель в среднем и 4 сравнения на пиксель в худшем случае. Они отметили, что максимальный пиксель в окрестности размером пикселя также является максимальным для любого окна размером пикселей. Входное изображение разбивается на неперекрывающиеся блоки размера пикселей и локальный максимум каждого блока детектируется (рис. 1, в иллюстрирует это для ). Затем
для максимального размера блока пикселей за исключением охватывающего блока пикселей. Используя только одно сравнение на пиксель, шаг разбиения блока уменьшает количество локальных максимумов с фактором . В результате метод достаточно эффективен для больших размеров окрестностей. Решение уменьшить количество дополнительных сравнений на одного кандидата до ,
значительно увеличивает сложность алгоритма и использование памяти.
|
|
Метод NMS для окрестности пикселей часто решается с помощью математической морфологии [11, 12], в результате чего входное изображение сравнивается с его дилатацией серого цвета. Пиксели, где два изображения равны, соответствуют локальным максимумам. Однако математическая морфология не возвращает строгие локальные максимумы,
где центральный пиксель строго больше, чем все соседние пиксели. С точки зрения вычислительной сложности морфология также неэффективна – реализация дилатации для
-окрестности полутонового изображения требует шести сравнений на пиксель [6, 7].
В [13] предложен алгоритм сканирующей линии для NMS, который требует не более 2 сравнений на пиксель. Алгоритм сначала ищет одномерные локальные максимумы вдоль линии сканирования. Затем каждый максимальный уровень сканирования сравнивается с соседними пикселями в соседних строках. Две двоичные маски сохраняются для текущей и следующей строк сканирования в буфере. По мере обработки нового центрального пикселя соседние ему пиксели маскируются, если они меньше центрального пикселя. Маскированные пиксели будут пропущены, когда наступит их очередь обработки (рис. 2). В результате этот алгоритм NMS
для окрестности пикселей требует не более двух сравнений на пиксель.
а | б | в |
Рис. 2. Маски сканирующей линии – окрестности: а – 1-D Non-maximum Suppression [13];
б – растровое сканирование; в – Scan-line [13]
Алгоритм сканирующей линии для -окрестности может быть расширен до блоков пикселей при [13]. Предположим, что максимумы -окрестности на текущей линии сканирования расположены так, как показано на рис. 3, б (пиксели
в окружностях). Эти 1-D максимумы служат кандидатами на двумерные максимумы. Каждый кандидат проверяется на экстремум в -окрестности в спиральном порядке, аналогичном методу Forstner [10]. При этом соседние пиксели, расположенные на одной линии сканирования, уже были сопоставлены и потому могут быть пропущены (серые пиксели
на рис. 3, в). Это приводит к тому, что максимум для -соседей сравнивается с каждым кандидатом. В результате среднее количество сравнений на один кандидат намного меньше благодаря порядку перемещения по спирали.
а | б | в |
Рис. 3. Сканирующий алгоритм NMS для -окрестности ():
а – 1-D обнаружение пиков; б – 1-D исключение не-максимумов; в – спиральное сканирование
Обнаружение максимумов в – окрестности на одномерной сканирующей линии функции подробно показано на рис.3 а. Если – знак конечной разности функции , значение равно либо –1, 0 или 1 в зависимости от локального наклона . Cледовательно, rонечная разность , равна –2 на локальных пиках, +2 в локальных желобах и 0 в другом месте. Таким образом, для обнаружения 1-D пика и минимума требуется только одно сравнение
на пиксель. Затем каждый 1-D экстремум сравнивается с его участком в – окрестности со знанием экстремума детектора . Соседние пиксели, которые находятся на последовательном склоне вниз от локального пика, т. е. , по определению меньше, чем текущий пик, поэтому их не нужно повторно сравнивать. Пиксели, расположенные вне закрывающих впадин текущего пика, требуются дополнительного сравнения. Число дополнительных сравнений для получения максимумов -окрестности из исходного списка максимумов -окрестности очень мало для гладкой функции .
Недостатками рассмотренных выше алгоритмов являются низкая скорость поиска, наличие ошибок обнаружения экстремумов на границах блоков изображения, пропуск локальных минимумов. В этой связи актуальной является задача поиска всех локальные однопиксельных экстремумов (как максимумов, так и минимумов) на изображении с низкой вычислительной сложностью без использования дополнительной памяти. Предлагаемый алгоритм позволяет быстро найти все локальные однопиксельные экстремумы.
|
|