exponenta event banner

Угловой детектор

Поиск углов с помощью алгоритма FAST или Harris

  • Библиотека:
  • Панель инструментов Vision HDL/Анализ и усовершенствование

  • Corner Detector block

Описание

Блок «Детектор углов» обнаруживает углы с помощью алгоритма тестирования элементов из ускоренного сегмента (FAST) или с помощью алгоритма пересекающихся кромок (Harris). Для каждого пикселя, если пиксель является углом, блок возвращает метрику угла. Если пиксель не является углом, блок возвращает значение пикселя, равное нулю.

Алгоритм FAST проверяет круговую область вокруг потенциального центра угла. Тест обнаруживает угол, если смежный участок пикселей либо ярче центра плюс порог, либо темнее центра минус порог. Можно задать минимальный порог контрастности в качестве параметра или порта и выбрать из трех правил для определения угла. Эти правила определяют, сколько пикселов в круге пикселов должно превышать минимальный контраст, чтобы центральный пиксель считался углом. Блок выполняет параллельные тесты всех комбинаций смежных пикселей по окружности. FAST использует очень мало аппаратных ресурсов

Алгоритм Харриса вычисляет горизонтальные и вертикальные градиенты, фильтрует компоненты градиента с помощью кругового фильтра Гаусса 5 на 5 и вычисляет метрику, представляющую силу угла. Можно указать порог, определяющий уровень обнаружения углов. Блок возвращает угол для пикселов, где метрика превышает этот порог. Алгоритм Харриса использует больше аппаратных ресурсов, чем алгоритм FAST, но может обнаружить углы, которые алгоритм FAST может не найти.

Порты

Этот блок использует потоковый пиксельный интерфейс с pixelcontrol шина для сигналов управления кадрами. Этот интерфейс позволяет блоку работать независимо от размера и формата изображения. Все блоки Vision HDL Toolbox™ используют один и тот же потоковый интерфейс. Блок принимает и возвращает значение скалярного пикселя и шину, которая содержит пять управляющих сигналов. Сигналы управления указывают достоверность каждого пикселя и его местоположение в кадре. Чтобы преобразовать кадр (матрицу пикселей) в последовательный поток пикселей и управляющие сигналы, используйте блок «От кадра к пикселям». Полное описание интерфейса см. в разделе Потоковый пиксельный интерфейс.

Вход

развернуть все

Один пиксель изображения в потоке пикселей, заданный как скаляр, представляющий интенсивность в градациях серого.

double и single типы данных поддерживаются для моделирования, но не для генерации кода HDL.

Типы данных: uint8 | uint16 | uint32 | int8 | int16 | int32 | fixed point | double | single

pixelcontrol шина содержит пять сигналов. Сигналы описывают достоверность пикселя и его местоположение в кадре. Дополнительные сведения см. в разделе Шина управления пикселами.

Типы данных: bus

Пороговое значение, указывающее угол для алгоритма FAST, заданного как неотрицательное целое число. Каждый пиксель в круге вычитается из значения центрального пикселя, и только те различия, которые превышают этот порог, используются для определения, является ли центральный пиксель углом, и для вычисления выходной метрики. Это значение приводится к тому же типу данных, что и входной пиксель.

double и single типы данных поддерживаются для моделирования, но не для генерации кода HDL.

Зависимости

Чтобы включить этот порт, установите для параметра Method одну из опций FAST и установите для параметра Source of minimum contrast value значение Input port.

Типы данных: single | double | uint8 | uint16 | uint32 | uint64 | fixed point

Порог, указывающий угол для алгоритма Харриса, заданный как неотрицательное целое число. Это значение представляет аппроксимацию собственных значений матрицы Харриса, вычисленных по результатам градиента. Блок возвращает угол для пикселов, где метрика собственного значения превышает этот порог. Это значение приводится к тому же типу данных, что и выходной пиксель. Угловые метрики находятся в диапазоне четвертой степени входных значений пикселей. Например, для 8-битного входного пикселя размер выходного сигнала полной точности составляет 44 бита.

double и single типы данных поддерживаются для моделирования, но не для генерации кода HDL.

Зависимости

Чтобы включить этот порт, установите для параметра Method значение Harris и установите для параметра Source of threshold value значение Input port.

Типы данных: single | double | uint8 | uint16 | uint32 | uint64 | fixed point

Продукция

развернуть все

Метрика, указывающая, является ли пиксель углом, возвращается в виде скаляра числового типа, заданного параметром Output data type. Если пиксель не является углом, блок возвращает нулевое значение для этого значения.

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

Для углов, обнаруженных с помощью алгоритма Харриса, это значение является аппроксимацией собственных значений матрицы Харриса, вычисленных по результатам градиента.

double и single типы данных поддерживаются для моделирования, но не для генерации кода HDL.

Типы данных: uint8 | uint16 | uint32 | int8 | int16 | int32 | fixed point | double | single

pixelcontrol шина содержит пять сигналов. Сигналы описывают достоверность пикселя и его местоположение в кадре. Дополнительные сведения см. в разделе Шина управления пикселами.

Типы данных: bus

Параметры

развернуть все

Главный

Выберите алгоритм Харриса или размер круга для алгоритма FAST. Три параметра FAST указывают, сколько смежных пикселей на окружности должно превышать пороговое значение для маркирования центрального пикселя в качестве угла. Для кругов 8, 12 и 16 пикселей, показанных на этих чертежах, блок обнаруживает угол, когда 5, 7 или 9 смежных пикселей, соответственно, находятся выше порога. Блок проверяет это количество смежных пикселей в любом месте круга. Блок использует ядро размером 3 на 3 дляFAST 5 of 8, 5 на 5 для FAST 7 of 12и 7 на 7 для FAST 9 of 16.

Diagrams of the three sizes of kernels with the circle of pixels around the center pixel.

Определить Property для установки порога с помощью параметра значения MinContrast. Определить Input port для активизации порта minC.

Зависимости

Чтобы включить этот параметр, установите для параметра Method один из параметров FAST.

Каждый пиксель в круге вычитается из значения центрального пикселя, и только те различия, которые превышают этот порог, используются для определения, является ли центральный пиксель углом, и для вычисления выходной метрики. Это значение приводится к тому же типу данных, что и входной пиксель.

Зависимости

Чтобы включить этот параметр, установите для параметра Method один из параметров FAST и установите для параметра Source of minimum contrast value значение Property.

Определить Property для установки порога с помощью параметра Threshold value. Определить Input port для активизации порта thresh.

Зависимости

Чтобы включить этот параметр, установите для параметра Method значение Harris.

Это значение представляет аппроксимацию собственных значений матрицы Харриса, вычисленных по результатам градиента. Блок возвращает угол для пикселов, где метрика превышает этот порог. Дополнительные сведения см. в примере определения угла Харриса (Harris Corner Detection). Это значение приводится к тому же типу данных, что и выходной угол. Угловая метрика находится в диапазоне четвертой степени входных значений пикселей. Например, для 8-битного входного пикселя размер выходного сигнала полной точности составляет 44 бита.

Зависимости

Чтобы включить этот параметр, установите для параметра Method значение Harris и установите для параметра Source of threshold value значение Property.

Укажите степень два, которая соответствует количеству активных пикселов в одной горизонтальной строке.

Если указано значение, которое не является степенью два, блок использует следующую наибольшую степень два. Блок распределяет (N-1) -строчные ячейки памяти размера буфера для хранения пикселей. N - размер ядра.

Блок использует ядро размером 3 на 3, если параметр Method имеет значение FAST 5 of 8, 5 на 5, когда метод FAST 7 of 12и 7 на 7, когда метод FAST 9 of 16.

Если для параметра «Метод» задано значение Harrisблок использует одно ядро «1 на 3» и одно ядро «3 на 1» для вычисления градиента и три ядра «5 на 5» для фильтра кругового окна на трех компонентах градиента.

Выберите один из этих методов заполнения границы входного изображения. Дополнительные сведения об этих методах см. в разделе Заполнение кромок.

  • Symmetric - Задайте значение пикселов заполнения для отражения края изображения. Эта опция предотвращает обнаружение кромок на границах активного кадра.

  • Replicate - повторять значение пикселов на краю изображения.

  • None - Исключить логику заполнения. Блок не устанавливает для пикселов вне кадра изображения какое-либо конкретное значение. Эта опция уменьшает аппаратные ресурсы, используемые блоком, и блокирование, требуемое между кадрами, но влияет на точность выходных пикселей на краях кадра. Для поддержания синхронизации потока пикселей выходной кадр имеет тот же размер, что и входной кадр. Однако, чтобы избежать использования пикселов, вычисленных из неопределенных значений заполнения, маскируйте KernelSize/2 пикселы вокруг края кадра для выполнения нисходящих операций. Дополнительные сведения см. в разделе Увеличение пропускной способности при отсутствии заполнения.

Круглые оконные фильтры, используемые в алгоритме Харриса, устанавливают края кадра с помощью Replicate заполнение.

Типы данных

Укажите метод округления для внутренних вычислений с фиксированной точкой.

При сбросе этого параметра значения с фиксированной точкой и целочисленные значения оборачиваются на ноль, когда значение переполняет то, что представляется с этим типом данных. При выборе этого параметра значение насыщается максимальным представимым значением.

Укажите тип данных для выходного углового порта. По умолчанию блок возвращает угловую метрику, используя тот же тип данных, что и входной пиксельный порт.

Совет

  • При использовании блока с буфером внутренней линии внутри включенной подсистемы (Simulink) шаблон разрешенного сигнала должен поддерживать синхронизацию потока пикселей, включая минимальные интервалы гашения. Если шаблон включения искажает синхронизацию потока пикселей, могут появиться частичные выходные кадры, поврежденные сигналы управления потоком пикселей или несоответствия между результатами моделирования Simulink ® и HDL. Возможно, потребуется увеличить интервалы гашения, чтобы выдержать циклы при низком значении параметра enable. Дополнительные сведения см. в разделе Настройка интервалов гашения.

Алгоритмы

Когда блок реализует алгоритм FAST, он использует однострочный буфер для извлечения окон ядра. Алгоритм вычитает центральный пиксель ядра из каждого из пикселей окружности. Для получения информации о диаграммах ядра см. параметр Method. Каждый результат сравнивается со значением minContrast. Когда требуемое количество последовательных пикселей превышает пороговое значение, центр помечается как угол, и блок вычисляет метрику суммы абсолютных разностей (SAD) для круга. В метрику включаются только те различия, которые превышают минимальный порог контрастности. Несмежные пикселы также включаются в метрику. Это вычисление означает, что алгоритм обнаруживает светлый центральный пиксель, окруженный темными пикселями, или темный центральный пиксель, окруженный светлыми пикселями, как углы с высокими метриками. Для оптимизации производительности аппаратных средств алгоритм распределяется между каждой из операций сложения или вычитания.

Алгоритм Харриса использует пять фильтров изображения для вычисления двух градиентов и трех круглых окон. Расчет аппроксимации собственного значения матрицы Харриса использует три умножителя и три сумматора и конвейерно настроен для оптимизации производительности аппаратного обеспечения. На диаграмме показана архитектура алгоритма Харриса, где A - матрица Харриса.

Harris architecture diagram that shows gradient filters, multipliers to square the gradients, circular window filters, and eigenvalue approximation.

Дополнительные сведения об алгоритме Харриса см. в примере определения угла Харриса.

Ссылки

[1] «ОБНАРУЖЕНИЕ ПРИЗНАКОВ ВЫСОКОСКОРОСТНОГО ИЗОБРАЖЕНИЯ С ПОМОЩЬЮ РЕАЛИЗАЦИИ БЫСТРОГО АЛГОРИТМА FPGA:» Материалы третьей Международной конференции по теории и применению компьютерного зрения, SciTePress - Science and Technology Publications, 2008, pp. 174-79. дои: 10,5220/ 0001080801740179.

[2] Ростен, Э. и Т. Драммонд. «Слияние точек и линий для высокопроизводительного отслеживания». Материалы Международной конференции IEEE по компьютерному зрению, том 2, 2005 год, стр. 1508-11.

[3] Ростен, Э. и Т. Драммонд. «Машинное обучение для высокоскоростного обнаружения углов». Компьютерное зрение - ECCV 2006 Лекционные записки по информатике, 2006, 430-43. doi:10.1007/11744023_34.

[4] Харрис, C. и М. Стивенс. «Комбинированный детектор углов и кромок». В трудах конференции Alvey Vision, 1988, 23.1-23.6. Манчестер: Клуб «Элви Вижн», 1988. DOI.org (Crossref), doi:10.5244/C.2.23.

Расширенные возможности

.
Представлен в R2020a