Удаление шума и повышение четкости изображения

Этот пример показывает, как использовать 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 КИХ-фильтр. Подсистема Верификации сравнивает результаты обработки полного кадра с теми от обработки пиксельного потока. Эти две подсистемы описаны в следующих двух разделах.

Передающий потоком пиксель проект HDL

Блок 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-код сослались в этом примере, у вас должна быть лицензия HDL Coder.

Чтобы сгенерировать HDL-код, используйте следующую команду:

makehdl('NoiseRemovalAndSharpeningHDLExample/Pixel-Stream HDL Model');

Чтобы сгенерировать испытательный стенд, используйте следующую команду:

makehdltb('NoiseRemovalAndSharpeningHDLExample/Pixel-Stream HDL Model');