Corner Detector

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

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

  • Corner Detector block

Описание

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

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

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

Порты

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

Вход

расширить все

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

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

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

The pixelcontrol шина содержит пять сигналов. Сигналы описывают валидность пикселя и его местоположение в системе координат. Для получения дополнительной информации смотрите Pixel Control Bus.

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

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

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

Зависимости

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

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

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

The pixelcontrol шина содержит пять сигналов. Сигналы описывают валидность пикселя и его местоположение в системе координат. Для получения дополнительной информации смотрите Pixel Control Bus.

Типы данных: 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 value. Задайте Input port чтобы включить порт minC.

Зависимости

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

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

Зависимости

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

Задайте Property для установки порога с помощью параметра Threshold value. Задайте Input port чтобы включить порт thresh.

Зависимости

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

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

Зависимости

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

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

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

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

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

Выберите один из следующих методов для заполнения контура входного изображения. Для получения дополнительной информации об этих методах см. Раздел «Заполнение ребер».

  • Symmetric - Установите значение пикселей заполнения, чтобы зеркально отобразить ребро изображения. Эта опция препятствует обнаружению ребер на контурах активной системы координат.

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

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

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

Типы данных

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

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

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

Совет

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

Алгоритмы

Когда блок реализует алгоритм 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 FAST ALGORITHM:» Материалы третьей Международной конференции по теории и применениям компьютерного зрения SciTePress - Science and Technology Publications, 2008, pp. 174-79. doi: 10,5220/ 0001080801740179.

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

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

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

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

.

См. также

Блоки

Объекты

Введенный в R2020a