Оператор Ротуэлла
23.06.2023Оператор Ротуэлла, в дисциплине компьютерного зрения — оператор для обнаружения границ, представленный Чарлзом Ротуэллом (англ. C. A. Rothwell) на Симпозиуме IEEE по компьютерному зрению в 1995 году.
В целом, оператор Ротуэлла очень похож на оператор Кэнни, разница между ними в том, что алгоритм Ротуэлла использует истончение краёв (англ. Edge detection#Edge thinning) вместо подавления немаксимумов (англ. Non-Maximum Suppression), и что динамическое определение порога (англ. dynamic thresholding) используется вместо гистерезиса.
Причины создания
Авторы метода считали, что подавление немаксимумов некорректно работает на переходах в изображениях из-за процесса сглаживания. От гистерезиса авторы отказались из-за убеждения, что яркость края не имеет принципиального значения для более высокого уровня визуальной обработки, в частности, в распознавании объектов. Гораздо важнее для них была контрастность.
Основные этапы алгоритма
Первичная обработка. Изображение сглаживается с помощью дискретной выборки двумерного фильтра Гаусса. Здесь плавно используются отдельные одномерные ядра Гаусса последовательно в х и у направлениях. «Хвост» ядра свертки составляет 1,5 % от её центральных значений. Затем находится градиент для каждой точки изображения. S x {displaystyle S_{x}} и S y {displaystyle S_{y}} вычисляется с помощью центральных конечных разностей операторов вида [-1,0,1]. |ΔS| (для удобства обозначается через N) и θ вычисляются для каждой точки с помощью выражений, аналогичных в операторе Canny:
N = S x 2 + S y 2 {displaystyle mathbf {N} ={sqrt {{mathbf {S} _{x}}^{2}+{mathbf {S} _{y}}^{2}}}} Θ = arctan ( S y S x ) . {displaystyle mathbf {Theta } =operatorname {arctan} left({mathbf {S} _{y} over mathbf {S} _{x}} ight).}Субпиксельная локализация. Для каждого пикселя, у которого N > t l {displaystyle t_{l}} (где t l {displaystyle t_{l}} это заранее заданный порог), где фактически будут лежать краевые пиксели (англ. Edgels), используется техника поиска локальных максимумов оператора Кэнни. Места краевых пикселей найдены путём оценки пересечения второй производной с нулем в направлении нормали к контуру касательной.
Определение порога изображения. После определения N и θ появляется проблема разделения краевых пикселей и остальных точек. Это производится с помощью динамического определения порога (англ. dynamic thresholding), то есть оператор определяет значение порога, которое варьируется в зависимости от изображения. Порог поверхности ( N x , y {displaystyle N_{x,y}} на дискретных областях изображения) вычисляется и используется для классификации edgels-пикселей всякий раз, когда N x , y {displaystyle N_{x,y}} > α T x , y {displaystyle T_{x,y}} (использование константы 0 < α ≤ 1 описывается ниже). T x , y {displaystyle T_{x,y}} определяется с помощью элементов множества Σ 0 {displaystyle _{0}} . Эти edgels обеспечивают хорошее представление о сильных edgels в локальной области. Поэтому T x , y {displaystyle T_{x,y}} мы присваиваем значение N x , y {displaystyle N_{x,y}} для каждого (х, у) є Σ 0 {displaystyle _{0}} , а затем формирует кусочно-плоскую поверхность, интерполированую для всех остальных (х, у). Выбор порога изображения продолжается сравнением значения N x , y {displaystyle N_{x,y}} и пороговой функции T x , y {displaystyle T_{x,y}} и классификации точки (х, у) как edgel, если первый составляет не менее 90 % от последнего. Параметр α вводится учета случая, при котором сильные edgel могут стать немного дальше к переходу. Все пиксели, которые проходят пороговый тест включены в множество Σ, очевидно, что Σ 0 {displaystyle _{0}} входит в Σ.
Истончение. Процесс определения порога даёт изображение множества элементов Σ, членами которого являются связанные краевые пиксели. Элемент является «соседом» другого элемента, если он находится на расстоянии не более 1 пикселя от него, то есть, принадлежит квадрату 3х3, центром которого является второй элемент. Ширина множества часто равна двум или трем точкам и поэтому не представляет топологии цифровой кривой. Подмножества утончаются до цепей единичной толщины. Этот процесс основан на алгоритме истончения Цао-Фу. Он работает таким образом, чтобы не сокращать edgels цепи, которые имеют свободный конец (то есть edgels, с которыми связана только одна edgel). Тем не менее, истончение Цао-Фу рассматривает все элементы множества в равной степени, так, например, сильные edgel могут быть убраны в отличие от более слабой точки. Так что сохраняется локализация хребтов, упорядочиваются члены Σ, а слабые элементы удаляются в первую очередь. Истонченное множество называется Σ t {displaystyle _{t}}
Получение топологического описания. Учитывая Σ t {displaystyle _{t}} , извлекается топологическое описание из дискретных изображений и с ним ассоциируется субпиксельная геометрическая интерпретация. Все элементы в Σ t {displaystyle _{t}} составляют сеть вершин краев поверхности (vertex-edge-face network). Вершины расположены на edgels, которые имеют либо только одного соседа (в этом случае они являются концами edgel-цепочки), либо которые имеют более двух связанных с ними edgels. Топологически угловая точка определяется при встречи двух edgel-цепей содержахщихся в пределах одного ребра. Сегментация края в таких угловых точках не производится. Как только вершины получены, осуществляется проход по edgel-цепям между ними с помощью маски 3 на 3. Поскольку каждый edgel добыт, его суб-пиксели записывается в список.