Birds-Eye View

Преобразуйте изображение фронтальной камеры в вид сверху вниз

  • Библиотека:
  • Vision HDL Toolbox/Геометрические преобразования

  • Birds-Eye View block

Описание

Блок Birds-Eye View деформирует изображение фронтальной камеры в вид сверху вниз. Он использует аппаратно эффективную архитектуру, поддерживающую генерацию HDL-кода.

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

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

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

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

Порты

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

Вход

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

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

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

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

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

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

Выход

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

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

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

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

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

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

Параметры

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

Передаточная функция, выведенная из параметров камеры, задается как матрица 3 на 3.

Матрица гомографии, h, определяется четырьмя собственными параметрами настройки физического фотоаппарата: фокусным расстоянием, тангажом, высотой и основной точкой (из модели камеры pinhole). Значение по умолчанию является матрицей для настройки камеры, используемой в примере обнаружения маршрута.

Эта матрица может быть вычислена из свойств физической камеры или эмпирически выведена путем анализа изображения сетчатого тестового шаблона, взятого камерой. Посмотрите estimateGeometricTransform (Computer Vision Toolbox) или приложение Single Camera Calibrator (Computer Vision Toolbox).

Количество входа пикселей в буфере, заданное в виде целого числа. Вычислите это значение из Number of input lines to buffer * ActivePixelsPerLine. Блок использует память такого размера, чтобы хранить входные пиксели. Если вы задаете значение, которое не является степенью двойки, блок использует следующую наибольшую степень двойки.

Количество линий для преобразования, заданное в виде целого числа. Блок хранит и преобразует это количество линий в выходное изображение вида птицы, начиная с точки исчезновения, определяемой Homography matrix.

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

Для примера, используя Homography matrix по умолчанию с входом изображением 640 на 480 пикселей, полноразмерное преобразование результатов в выходном изображении 900 на 640. Анализ отображения «вход-выход- x-координат» показывает, что для генерации верхних 700 линий выходного изображения «птичий глаз» требуется около 50 линии входного изображения. Это количество входных линий может быть сохранено с помощью встроенной памяти. Точка исчезновения для настройки камеры по умолчанию находится вокруг линии 200, и линии выше этой точки не способствуют получению вида птичьего полета. Поэтому блок может хранить только входные линии 200-250 для преобразования.

Горизонтальный размер выхода системы координат, заданный как целое число. Этот параметр является количеством активных пикселей в каждой выходной линии.

Вертикальный размер выхода системы координат, заданный как целое число. Этот параметр является количеством активных линий в каждой выходной системе координат.

Алгоритмы

Преобразование из входной пиксельной координаты (x,y) в пиксельную координату птичьего глаза получают из гомографической матрицы h. Матрица гомографии основана на физических параметрах и поэтому является константой для конкретной установки камеры.

(x^,y^)=round(h11x+h12y+h13h31x+h32y+h33,h21x+h22y+h23h31x+h32y+h33)

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

Во-первых, блок хранит входные линии, начиная с предварительно вычисленной точки исчезновения. Сохраненные пиксели образуют трапецию с короткими линиями около точки исчезновения и более широкими линиями около камеры. Это хранилище использует Maximum buffer size, in pixels места памяти.

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

Вертикальная интерполяционная таблица содержит сопоставление y-coordinate и количество повторений каждой линии для заполнения требуемой высоты выходной системы координат. Рядом с точкой исчезновения одна входная линия сопоставляется со многими выходными линиями, в то время как каждая линия ближе к камере преобразуется в уменьшающееся количество выходных линий.

В интерполяционных таблицах используются 3 * Number of input lines to buffer расположения памяти.

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

.

См. также

Блоки

Объекты

Функции

Темы

Введенный в R2017b