Алгоритмы поиска локальных экстремумов на изображениях

Прямой подход к поиску экстремумов в двухмерном массиве представлен на рис. 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 экстремум сравнивается с его участком в  – окрестности со знанием экстремума детектора . Соседние пиксели, которые находятся на последовательном склоне вниз от локального пика, т. е.  , по определению меньше, чем текущий пик, поэтому их не нужно повторно сравнивать. Пиксели, расположенные вне закрывающих впадин текущего пика, требуются дополнительного сравнения. Число дополнительных сравнений для получения максимумов -окрестности из исходного списка максимумов -окрестности очень мало для гладкой функции .

Недостатками рассмотренных выше алгоритмов являются низкая скорость поиска, наличие ошибок обнаружения экстремумов на границах блоков изображения, пропуск локальных минимумов. В этой связи актуальной является задача поиска всех локальные однопиксельных экстремумов (как максимумов, так и минимумов) на изображении с низкой вычислительной сложностью без использования дополнительной памяти. Предлагаемый алгоритм позволяет быстро найти все локальные однопиксельные экстремумы.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: