Corner Detector

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

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

Описание

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

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

Порты

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

Входной параметр

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

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

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

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

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

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

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

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

Зависимости

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

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

Вывод

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

Контрастируйте метрическое значение, которое указывает, является ли пиксель углом, возвращенным как скаляр числового типа, заданного параметром Output data type. Когда пиксель не является углом, блок возвращает нуль для этого значения. Когда пиксель является углом, это значение является угловой метрикой силы, вычисленной при помощи суммы абсолютной разности (SAD) пикселей вокруг круга с центральным пиксельным значением. Только те различия, которые превышают минимальный контрастный порог, включены в метрику.

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

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

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

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

Параметры

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

Основной

Задайте, сколько непрерывных пикселей на круге должно превысить порог для центрального пикселя, который будет отмечен как угол. Для кругов 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 labeled.

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

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

Зависимости

Чтобы включить этот параметр, установите параметр Source of minimum contrast 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.

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

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

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

Типы данных

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

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

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

Алгоритмы

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

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

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

Ссылки

[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.

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

Введенный в R2020a

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