Corner Detector

Найдите углы с помощью алгоритма Харриса или FAST

  • Библиотека:
  • Vision HDL Toolbox / Analysis & Enhancement

  • Corner Detector block

Описание

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

Алгоритм 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

Задайте pixelcontrol соедините шиной, который содержит пять сигналов. Сигналы описывают валидность пикселя и его местоположения в системе координат. Для получения дополнительной информации смотрите Пиксельную Шину управления.

Типы данных: 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

Управляющие сигналы сопоставлены с пиксельным потоком, возвращенным как 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 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.

Алгоритмы

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

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

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

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

Ссылки

[1] "ВЫСОКОСКОРОСТНОЕ ВЫЯВЛЕНИЕ ПРИЗНАКОВ ИЗОБРАЖЕНИЙ ИСПОЛЬЗУЯ РЕАЛИЗАЦИЮ FPGA АЛГОРИТМА FAST": продолжения Конференции Третьего Интернационала по Теории Компьютерного зрения и Приложениям, SciTePress - Публикации Науки и техники, 2008, стр 174–79. doi:10.5220/0001080801740179.

[2] Rosten, E. и Т. Драммонд. “Плавя Точки и Линии для Высокопроизводительного Отслеживания”. Продолжения Международной конференции IEEE по вопросам Компьютерного зрения, издания 2, 2005, стр 1508–11.

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

[4] Харрис, C. и М. Стивенс. “Объединенный Детектор Угла и Ребра”. В Продолжениях Конференции по Видению Alvey 1988, 23.1-23.6. Манчестер: Клуб Видения Alvey, 1988. DOI.org (Crossref), doi:10.5244/C.2.23.

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

Смотрите также

Блоки

Объекты

Введенный в R2020a
Для просмотра документации необходимо авторизоваться на сайте