В этом примере показано, как использовать Vision HDL Toolbox™, чтобы реализовать основанный на FPGA модуль для повышения качества изображения.
Vision HDL Toolbox предоставляет алгоритмы обработки видеоданных, спроектированные, чтобы сгенерировать читаемый, синтезируемый код в VHDL и Verilog (с HDL Coder™). Сгенерированный HDL-код может обработать 1080p видео на уровне 60 кадров в секунду.
Модели продукта Computer Vision Toolbox™ на высоком уровне абстракции. Блоки и объекты выполняют обработку полной системы координат, работающую с одним фреймом изображения за один раз. Однако FPGA или системы ASIC выполняют обработку пиксельного потока, работающую с одним пикселем изображения за один раз.
Введите изображения от физических систем, часто содержат нарушения, такие как размытость и шум. Объект не в фокусе приводит к размытому изображению. Мертвые или застрявшие пиксели на камере или видео датчике или тепловом шуме от аппаратных компонентов, способствуют шуму в изображении. Этот пример удаляет шум и увеличивает резкость входного изображения, и это может использоваться на ранней стадии цепи обработки, чтобы обеспечить лучшее начальное условие для последующей обработки. Этот пример использует два блока фильтра пиксельного потока из Vision HDL Toolbox. Средний фильтр удаляет шум, и фильтр изображений увеличивает резкость изображения. Чтобы проверить проект пиксельного потока, результаты по сравнению со сгенерированными блоками полной системы координат из Computer Vision Toolbox.
Систему NoiseRemovalAndSharpeningHDLExample.slx показывают.
Блоки Computer Vision Toolbox работают с целой системой координат за один раз. Блоки Vision HDL Toolbox работают с потоком пиксельных данных, один пиксель за один раз. Блоки преобразования в Vision HDL Toolbox, Системе координат К Пикселям и Пикселям, Чтобы Структурировать, позволяют вам симулировать проекты пикселя потоковой передачи и соответствовать проектам полной системы координат.
Различие в цвете линий, питающих Подсистемы модели HDL Поведенческой модели и Пиксельного Потока Полной Системы координат, указывает на изменение в уровне изображений на ветви потоковой передачи модели. Этот переход уровня происходит, потому что пиксельный поток отослан за то же количество времени как полные видеокадры, и поэтому это передается на более высоком уровне. Чтобы включить цвета и просмотреть информацию о шаге расчета, выберите Display-> Sample Time-> Colors.
Следующий рисунок показывает подсистему Источника изображения.
Блок Image Source импортирует полутоновое изображение, затем использует блок MATLAB function под названием Размытость, и Добавьте Шум, чтобы размыть изображение и ввести шум соли-и-перца. imfilter
функционируйте использует 3х3 ядро усреднения, чтобы размыть изображение. Шум соли-и-перца введен путем вызова imnoise
команда. Шумовая плотность задана как отношение объединенного количества соли и перечных пикселей к общим пикселям в изображении. Это значение плотности задано Шумовой Плотностью постоянный блок, и это должно быть между 0 и 1. Подсистема Источника изображения выводит 2D матрицу изображения полной системы координат.
Схема ниже показов структура подсистемы Поведенческой модели Полной Системы координат, которая состоит из основанного на системе координат Среднего Фильтра и 2D КИХ-Фильтра от Computer Vision Toolbox. Средний фильтр демонтирует шумовой и 2D КИХ-Фильтр, сконфигурирован, чтобы увеличить резкость изображения.
Отображения ниже показа одна система координат размытого и шумного исходного видео, его de-noised версия после медианной фильтрации и увеличенного резкость выхода после 2D КИХ-фильтрации.
Подсистема модели HDL Пиксельного Потока использует Vision HDL Toolbox, чтобы реализовать базирующийся средний фильтр потоковой передачи и 2D КИХ-фильтр. Подсистема Верификации сравнивает результаты обработки полной системы координат с теми от обработки пиксельного потока. Эти две подсистемы описаны в следующих двух разделах.
Блок Frame To Pixels преобразует изображение полной системы координат в пиксельный поток, поскольку блоки в Vision HDL Toolbox работают с потоковыми входными сигналами, требуемыми оборудованием FPGA. Чтобы симулировать эффект горизонтальных и вертикальных времен гашения обратного хода, найденных в системах видео на основе FPGAs или ASICs, активное изображение увеличивается с неданными изображения. Для получения дополнительной информации о пиксельном протоколе потоковой передачи смотрите Пиксельный Интерфейс Потоковой передачи. Блок Frame To Pixels сконфигурирован как показано:
Номер поля компонентов определяется к 1 для входа полутонового изображения, и поле Формата видео составляет 240 пунктов, чтобы совпадать с тем из источника видеосигнала.
В этом примере Активная Видео область соответствует 240x320 матрица размытого и шумного изображения от восходящей подсистемы Источника изображения. Шесть других параметров, а именно, Общие пиксели на строку, Общие видео линии, Запуская активную линию, Заканчивая активную линию, Передний подъезд и Заднее крыльцо задают, сколько непикселей изображения будет добавлено на четырех сторонах Активного Видео. Для получения дополнительной информации смотрите страницу с описанием блока Frame To Pixels.
Обратите внимание на то, что Желаемый шаг расчета Источника видеосигнала в Источнике изображения определяется продуктом Общих пикселей на строку и Общих видео линий.
Подсистема модели HDL Пиксельного Потока содержит реализацию потоковой передачи среднего фильтра и 2D КИХ-фильтра от Vision HDL Toolbox, как показано в схеме ниже. Можно сгенерировать HDL-код от Подсистемы модели HDL Пиксельного Потока с помощью HDL Coder™.
Блок Median Filter используется, чтобы удалить перечный шум и соль. На основе коэффициентов фильтра блок Image Filter может использоваться, чтобы размыть, увеличить резкость, или обнаружить ребра восстановленного изображения после медианной фильтрации. В этом примере Фильтр Изображений сконфигурирован, чтобы увеличить резкость изображения.
Для того, чтобы соответствовать выходу фильтров полной системы координат от Computer Vision Toolbox, модель преобразует пиксельные потоковые данные назад в полную систему координат с помощью блока Pixels To Frame. Номер поля компонентов и полей Формата видео и Системы координат К Пикселям и Пикселей, Чтобы Структурировать определяется в 1 и 240 пунктах, соответственно, чтобы совпадать с форматом источника видеосигнала.
Выход блока Pixels To Frame является 2D матрицей полного образа. Это позволяет нам сравнивать модель HDL с поведенческой моделью в области полной системы координат, как показано в подсистеме Верификации, показанной ниже.
Пиковый сигнал к шумовому отношению (PSNR) вычисляется между ссылочным изображением, и поток обработал изображение. Идеально, отношение должно быть inf, указав, что выходное изображение от соответствий Поведенческой модели Полной Системы координат, которые сгенерировали из Модели HDL Пиксельного Потока.
Проверять и сгенерировать HDL-код сослались в этом примере, у вас должна быть лицензия HDL Coder.
Чтобы сгенерировать HDL-код, используйте следующую команду:
makehdl('NoiseRemovalAndSharpeningHDLExample/Pixel-Stream HDL Model');
Чтобы сгенерировать испытательный стенд, используйте следующую команду:
makehdltb('NoiseRemovalAndSharpeningHDLExample/Pixel-Stream HDL Model');