Научная статья на тему 'Особенности реализации пространственных фильтров изображений на FPGA'

Особенности реализации пространственных фильтров изображений на FPGA Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
452
87
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
МАТРИЧНЫЙ ОПЕРАТОР / МАТРИЧНАЯ МАСКА / ДИСКРЕТНЫЙ БЕЛЫЙ ШУМ / КОЭФФИЦИЕНТ ПОДАВЛЕНИЯ ШУМА / ИЗОБРАЖЕНИЕ / ВЫЧИСЛИТЕЛЬНЫЕ ЗАТРАТЫ / MATRIX OPERATOR / MATRIX MASK / DISCRETE WHITE NOISE / NOISE REDUCTION COEFFICIENT / IMAGE / COMPUTATIONAL COSTS

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Орлова Ирина Анатольевна, Устюков Дмитрий Игоревич, Ефимов Алексей Игоревич

В статье приводятся особенности реализации пространственных фильтров изображений на программируемых логических интегральных схемах (ПЛИС). Представленные решения позволяют использовать возможности архитектуры кристалла для достижения наибольшего быстродействия алгоритмов фильтрации. Полученные результаты показывают преимущества использования программируемой логики в задачах обработки изображений.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Орлова Ирина Анатольевна, Устюков Дмитрий Игоревич, Ефимов Алексей Игоревич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

FEATURES OF SPATIAN IMAGE FILTERS IMPLEMENTATION ON FPGA

The article describes the features of the implementation of spatial image filters on programmable logic integrated circuits (FPGAs). The presented solutions make it possible to use the architecture of the crystal to achieve the fastest possible filtering algorithms. The obtained results show the advantages of using programmable logic in image processing tasks.

Текст научной работы на тему «Особенности реализации пространственных фильтров изображений на FPGA»

Гришин Константин Анатольевич, асп., [email protected], Россия, Тула, Тульский государственный университет,

Антонов Максим Александрович, магистрант, elarkinamail.ru, Россия, Тула, Тульский государственный университет

CONCEPT OF CONSTRUCTION OF RECONFIGURABLE FAULTY-DIGITAL DIGITAL SYSTEMS

E. V. Larkin, K.A. Grishin, M.A. Antonov

A semi-Markov process is defined and a method for simulating cyclograms for mobile robots based on semi-Markov processes is considered.

Key words: feedback, cyclogram, mobile robot, semi-Markov process.

Larkin Eugene Vasilyevich, doctor of technical science, professor, head of chair, elarkina mail. ru, Russia, Tula, Tula State University,

Grishin Konstantin Anatolyevich, postgraduate, [email protected], Russia, Tula, Tula State University,

Antonov Maxim Aleksandrovich, master student elarkina mail. ru, Russia, Tula, Tula State University

УДК 004 932

ОСОБЕННОСТИ РЕАЛИЗАЦИИ ПРОСТРАНСТВЕННЫХ ФИЛЬТРОВ ИЗОБРАЖЕНИЙ НА FPGA

И.А. Орлова, Д.И. Устюков, А.И. Ефимов

В статье приводятся особенности реализации пространственных фильтров изображений на программируемых логических интегральных схемах (ПЛИС). Представленные решения позволяют использовать возможности архитектуры кристалла для достижения наибольшего быстродействия алгоритмов фильтрации. Полученные результаты показывают преимущества использования программируемой логики в задачах обработки изображений.

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

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

195

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

Любая задача обработки изображений характеризуется выполнением большого числа однотипных операций, следовательно, они имеют большой потенциал к распараллеливанию вычислений. ПЛИС, в свою очередь, благодаря своей гибкости, позволяют разработчику спроектировать многопоточную систему обработки информации, чем и обусловлен их выбор для решения данной задачи [5].

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

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

Суть метода заключается в вычислении для каждой точки изображения следующего выражения:

к к

R( x, y) = I IM (i, j )* I (x + i, y + j), (1)

i=-кJ=-к

где R - изображение после фильтрации, I - исходное изображение, M -маска фильтра (матрица значений), k - половина окна маски фильтра, при-

кк

чем I IM(i + к, J + к) = 1. Обработка изображения, выполняемая по i=-кJ=-к

такому алгоритму, легко поддаётся распараллеливанию, т.к. для вычисления каждой точки результирующего изображения требуется только её окрестность из исходного, а каждое вычисление не влияет на последующие. [1].

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

В качестве средства отладки использован отладочный комплект Xilinx Virtex-7 FPGA vc707 Evaluation Kit. Источником исходного видео потока, а также приёмником результирующего выбран персональный ком-

пьютер на базе Intel Core I7 . В качестве интерфейса взаимодействия использован 1000 Mbps Ethernet. Входной и выходной видео потоки имеют разрешения 640х480 пикселей.

Реализация алгоритмов на ПЛИС. Узким местом параллельных вычислений является канал передачи данных, а также размещение и хранение исходной информации, промежуточных и конечных результатов в памяти вычислителя. В работе для обмена данными между ЭВМ и отладочной платой с ПЛИС использовался интерфейс Ethernet, причём изображения передаются построчно байт за байтом. Хранение данных осуществлялось в блочной памяти ПЛИС. В состав параметризируемых элементов (элементов Core Generator) входит несколько видов такой памяти, но ни одна из них не позволяет за один такт синхросигнала считывать из памяти более двух значений, что затрудняет параллельную обработку, поэтому для каждой строки изображения был выделен отдельный двухадресный блок памяти. Модули обработки строятся таким образом, чтобы получить одновременно данные из трёх блоков памяти, таким образом можно обеспечить линейную пространственную фильтрацию с окном 3х3. Сам обработчик представляет собой конвейер, первая ступень которого отвечает за получение нового столбца точек, а остальные за математические операции (умножение, сложение).

Общая структура вычислителя. Общая структура спроектированного вычислителя представлена в виде цифрового автомата (граф автомата представлен на рис. 1) состоящего из следующих состояний:

IDLE: исходное состояние - ожидание нового кадра (переход к stdownload по сигналу newframe) При возникновении внешнего сигнала Rst автомат из любого состояния переходит в IDLE.

stdownload: получение исходных данных и запись в память ПЛИС (начало работы по появлению сигнала нового кадра, переход в состояние ststartwork по достижению счётчиком адреса (addr) значения, равного количеству точек изображения^хс^), при переходе счётчик адреса сбрасывается в 0);

ststartwork: начало обработки, передача данных из блоков памяти в блоки обработки включает в себя первые n тактов, где n - зависит от конкретного алгоритма и определяется количеством тактов от начала работы конвейера до выхода первых данных (переход в stwork по достижению счётчиком адреса (addr) значения n);

stwork: обработка информации и запись результатов в соответствующие блоки памяти (переход в состояние stupload по достижению счетчиком адреса (addr) значения конца строки изображения + n (ln+n));

stupload: вывод информации из блоков памяти и передача их на Ethernet линию, сброс всех промежуточных регистров по завершению (переход к состоянию IDLE по достижению счётчиком адреса (addr) значения, равного количеству точек изображения (Pixcnt)).

Рис. 1. Граф переходов автомата

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

Низкочастотная фильтрация. Схема конвейера для алгоритма

низкочастотной линейной фильтрации с маской — *

16

1 2

2 4

1 2

2 1

представ-

лена на рис. 2. Такая маска позволяет использовать операции сдвигов вместо умножения и деления, тем самым повышая быстродействие [2, 3].

яит 11 -

—яиш12 яит21

зит13 8ит22

к

эит23 -1

эит31

эит32

эит 41 — >>4+ ау§

эит15

Рис. 2. Схема конвейера низкочастотного линейного пространственного фильтра

На рисунке приняты следующие обозначения:

- ёа1ат1-ёа1ат3 - входные линии данных;

- ё11-ё33 - ячейки для хранения окна пикселей изображения размером 3х3;

- виш11-виш42 - Суммы пар значений с предыдущих ступеней конвейера;

- avg - результат вычисления;

- стрелки показывают передачу данных между регистрами (выполняется по тактам синхроимпульса);

- подписи над стрелками <<1, >>1, <<4 - сдвиг вправо на 1 разряд, сдвиг влево на 1 разряд и сдвиг влево на 4 разряда соответственно.

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

Высокочастотная фильтрация. ВЧ фильтр рассмотрен на примере 1 -1 - 1Л

маски

-1 -1

9 -1 - 1 - 1

, схема конвейера представлена на рис. 3.

datain1

datain2

d11

d12

datain3 d13

d21

d22

d23

-> d24 —

аз1

d33

—яиш12 ^ яиш21 -л

яиш31

-Ь>>3* d32

виш11

113 "К^^ яиш22

виш14

виш23 -1

виш32

виш41

виш 15

Рис. 3. Схема конвейера высокочастотного линейного пространственного фильтра

Принятые обозначения аналогичны рис. 1. Результат вычисления записывается в регистр Биш41. Операции умножения и деления на константу заменяются соответствующими операциями сдвигов со сложением или вычитанием, что гарантирует их выполнение за 1 такт. Для исключения операций со знаком сначала складываются все значения с коэффициентом 1, затем выполняется операция сравнения (не указана на схеме, выполняется перед последним вычитанием), в случае если центральный элемент (умноженный на 9) больше суммы остальных, то выполняется вычитание и записывается результат, в противоположном случае в регистре Биш41 записывается 0.

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

контуров основных объектов. Переход от изображения всей зоны обзора к изображениям контуров основных объектов существенно упрощает обработку.

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

Известно большое число групп методов и конкретных алгоритмов выделения границ объектов на изображениях. Одним из наиболее распространённых, среди линейных пространственных фильтров, можно считать детектор границ Собеля. Он основан на двукратном вычислении значения выражения (1), но с разными масками: горизонтальная - Ми и вертикальная - Му, а конечный результат определяется как корень из суммы квадратов, значений полученных от каждой из масок.[4]

Для выделения границ перепада яркости использовались маски Со-

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

беля:

-1 - 2 - 11 Г -1 0 11

0 0 0 , Му= - 2 0 2

1 2 1, V - 1 0 1,

Ми=

Схему конвейера можно представить следующим образом (рис. 4)

datain1

аиь

datain2

datain3

<<1+ d12h

8ИШ1

ш

вишШ —

d21h

d31h

d22h

d32h

-> 8иш13Ь

d13h

d23h

d33h

d11v -«> d21v ->>1> d31v

d13v —<<1> d23v

>>1> d33v

+> виш21Ь

§иш14Ь -К+)>

§иш22Ь §иш31Ь

вишШ

виш21^

suш12v

suш22v

suш13v —

sum14v

Рис. 4. Схема конвейера выделения границ

200

На данной схеме параллельно вычисляются взвешенные суммы с вертикальной и горизонтальной маской. Операции возведения в квадрат и вычисления квадратного корня достаточно трудоёмки, поэтому при реализации, вместо вычисления корня из суммы квадратов полученных сумм, выполняется операция выбора максимального значения между виш31И и Биш3^. Подобный метод расчета вводит погрешность в результат выделения границ, но позволяет значительно повысить быстродействие.

Опытным путём установлено, что высокая погрешность, достигается, когда виш31И = Биш3^ и значения лежат в диапазоне (150-200). Расхождения значений предложенного метода и фильтра Собеля представлены в таблице.

Расхождение значений предложенного метода и фильтра Собеля

250 0 1,24 4,95 5 5 5 5 5 5 5 5

225 0 1,38 5,48 12,17 21,22 30 30 30 30 30 5

200 0 1,55 6,15 13,60 23,60 35,84 50 55 55 30 5

175 0 1,77 7 15,39 26,55 40,05 55,48 72,48 55 30 5

150 0 2,06 8,11 17,70 30,27 45,25 62,13 55,48 50 30 5

125 0 2,47 9,62 20,77 35,07 51,77 45,25 40,05 35,84 30 5

100 0 3,07 11,80 25 41,42 35,07 30,27 26,55 23,60 21,22 5

75 0 4,05 15,13 31,06 25 20,77 17,70 15,39 13,60 12,17 5

50 0 5,90 20,71 15,13 11,80 9,62 8,11 7,00 6,15 5,48 4,95

25 0 10,35 5,90 4,05 3,07 2,47 2,06 1,77 1,55 1,38 1,24

0 0 0 0 0 0 0 0 0 0 0 0

Sum^!^—" ' — aum31v 0 25 50 75 100 125 150 175 200 225 250

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

Результаты. Результат обработки изображений, полученный с помощью платы Xilinx Virtex-7 FPGA VC707 Evaluation Kit, а также с помощью программы на ЭВМ представлены на рис. 5, 6, 7.

201

ТВг « Я;

а

Рис. 5. Результат обработки изображений с НЧ фильтром: а - исходное изображение; б - результат реализации НЧ фильтра на ПЛИС; в - результат реализации НЧ фильтра в программе

202

в

Рис. 6. Результат обработки изображений с ВЧ фильтром: а - исходное изображение для ВЧ фильтра; б - результат реализации ВЧ фильтра на ПЛИС; в - результат реализации ВЧ фильтра

в программе

б в

Рис. 7. Результат обработки изображений с фильтром выделения границ: а - исходное изображение для фильтра выделения границ; б - результат реализации фильтра выделения границ на ПЛИС; в - результат реализации фильтра выделения границ в программе

Обработка изображения состоит из трех частей: загрузка изображения, его обработка и выгрузка результатов. Рассматривая идеальный вариант, для загрузки изображения потребуется 640*512=327680 тактов. Столько же тактов потребуется и на выгрузку результатов. Исходя из схемы конвейера (рис. 1), обработка одной (первой) точки изображения займет 7 тактов, на каждую следующую будет затрачен всего один такт, следовательно, для обработки всего изображения, размером 640х512, в 510 потоков потребуется 647 тактов. В целом, время обработки одного кадра займет 656007 тактов. Таким образом, при частоте 200МГц может обраба-

тываться примерно 305 кадров/с, время обработки одного кадра 0.0033с. Для ЭВМ с процессором Intel(R) Core(TM) i5-4210U CPU @ 2.40GHz, выполнение этапа предобработки занимает 0.01с - не учитывая время, затрачиваемое на приём информации от внешнего устройства.

Выводы

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

Список литературы

1. Гонзалес Р., Вудс Р. Цифровая обработка изображений. М.: Техносфера, 2005. 1072 с.

2. Новиков А.И., Устюков Д.И. Исследование операторов подавления помех в виде дискретного шума / Динамика сложных систем - XXI век. М.: Радиотехника, 2017, Том 11, Номер 1. С. 26-32

3. Устюков Д.И., Ефимов А.И., Новиков А. А. Исследование линейных фильтров подавления белого шума на изображениях / Современные технологии в науке и образовании - СТНО-2017 сборник трудов II Международной научно-технической и научно-методической конференции: в 8 т. Рязанский государственный радиотехнический университет, 2017. С. 237241.

4. Ефимов А.И., Устюков Д.И. Алгоритм получения контурного описания в задачах совмещения изображений / Современные технологии в науке и образовании - СТНО-2017 сборник трудов II Международной научно-технической и научно-методической конференции: в 8 т. Рязанский государственный радиотехнический университет, 2017. С. 253-257.

5. Кистрин А.В., Костров Б.В., Никифоров М.Б., Устюков Д.И. Проектирование цифровых устройств: учебник. М.: Курс : ИНФРА-М, 2017. 352 с.

Орлова Ирина Анатольевна, магистрант, [email protected], Россия, Рязань, Рязанский государственный радиотехнический университет,

Устюков Дмитрий Игоревич, инженер, ustukov. mail@yandex. ru, Россия, Рязань, Рязанский государственный радиотехнический университет,

Ефимов Алексей Игоревич, канд. техн. наук, доц., [email protected], Россия, Рязань, Рязанский государственный радиотехнический университет

205

FEATURES OF SPA TIANIMAGE FILTERS IMPLEMENTA TION ONFPGA I.A. Orlova, D.I. Ustyukov, A.I. Efimov

The article describes the features of the implementation of spatial image filters on programmable logic integrated circuits (FPGAs). The presented solutions make it possible to use the architecture of the crystal to achieve the fastest possible filtering algorithms. The obtained results show the advantages of using programmable logic in image processing tasks.

Key words: matrix operator, matrix mask, discrete white noise, noise reduction coefficient, image, computational costs.

Orlova Irina Anatolievna, master, Irinochka. orlova@yandex. ru, Russia, Ryazan, Ryazan State Radio Engineering University,

Ustyukov Dmitry Igorevich, engineer, ustukov. mail@yandex. ru, Russia, Ryazan, Ryazan State Radio Engineering University,

Efimov Aleksey Igorevich, candidate of technical sciences, docent, [email protected], Russia, Ryazan, Ryazan State Radio Engineering University

УДК 681.24; 519.1

АНАЛИЗ МОДЕЛЕЙ ПРЕДСТАВЛЕНИЯ ЭКСПЕРТНОЙ СИСТЕМЫ ВЫБОРА СТРУКТУРЫ НЕЙРОПРОЦЕССОРНОЙ

СИСТЕМЫ

В.Н. Ручкин, В. А. Фулин, Д.Р. Пикулин

Производится анализ представления экспертной системы выбора структуры нейропроцессорных систем. Описываются алгоритмы трех различных моделей представления интерфейса экспертных систем на основе предложенной авторами методики расспараллеливания с целью анализа возможных нейропроцессорных структур. Разрабатывается программа реализации интерфейса на современном языке TypeScript, который является надмножеством языка JavaScript. Исследуются класс NeuralComputerSystemStructure, метод getStructureType и некоторые методы определения структур с целью описания характерных возможных структур НПС, которые выявляют нужный тип нейро-компьютерной сети в условиях неопределенности с использованием нечетких множеств посредством нейронных сетей.

Ключевые слова:интерфейс экспертной системы, анализ нейропроцессорных структур, язык TypeScript, надмножество языка JavaScript, принятие решений, класс NeuralComputerSystemStructure, метод getStructureType.

Одним из решений современной проблемы дальнейшего повышения производительности структуры нейропроцессорных систем или цены/производительности является перенос интеллектуальных функций из аппаратного обеспечения в программное в виде функций компилятора.

i Надоели баннеры? Вы всегда можете отключить рекламу.