Макет помехоустойчивого нейрофильтра
This presentation is the property of its rightful owner.
Sponsored Links
1 / 16

Макет помехоустойчивого нейрофильтра границ для обработки видеоинформации PowerPoint PPT Presentation


  • 93 Views
  • Uploaded on
  • Presentation posted in: General

Макет помехоустойчивого нейрофильтра границ для обработки видеоинформации. С.А. Чернышев. Санкт-Петербургский государственный университет аэрокосмического приборостроения 2012. Постановка задачи. Главной задачей проекта:

Download Presentation

Макет помехоустойчивого нейрофильтра границ для обработки видеоинформации

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


4685041

Макет помехоустойчивого нейрофильтра границ для обработки видеоинформации

С.А. Чернышев

Санкт-Петербургский государственный университет аэрокосмического приборостроения2012


4685041

Постановка задачи

Главной задачей проекта:

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

Решение задачи разбито на этапы:

Освоение: САПР Quartus II, NIOS II, Altera SOPC Builder;

Перенос готовой модели нейрофильтра (обученного по одношаговой процедуре обучения) из Matlab на ПЛИС;

Реализация нейрофильтра в виде IP-Core на языке Verilog HDL;

Конфигурация параметров нейрофильтра по JTAG UART;

Создание демонстрационного стенда.


4685041

КОНЦЕПЦИЯ ФИЛЬТРА ГРАНИЦ НА ОСНОВЕ НЕЙРОННОЙ СЕТИ (1)

S1

(S,W)

S2

SNSEN

1

THmin

THmax

Кусочно-линейнаяактивационная функция

F(x)

Фильтр 5*6

S1 S2 S5

S6 S7 S10

S20 .. S25

RESi,j

Изображение

ТЕРМИНОЛОГИЯ

- “ ОБУЧЕНИЕ” процедура определения вектора W и порогов активационной функции ;

“ОБУЧЕНИЕ ЧЕРЕЗ ПОКАЗ“ - “ОБУЧЕНИЕ” c помощью набора “ПРИМЕРОВ” ;

- “ПРИМЕР” –пара изображений “ИСХОДНОЕ ИЗОБРАЖЕНИЕ”и “РЕЗУЛЬТИРУЮЩЕЕ ИЗОБРАЖЕНИЕ”;


4685041

ОДНОШАГОВАЯ ПРОЦЕДУРА ОБУЧЕНИЯ (2)

S1(0,0) S2(0,0)

S1(0,1) S2(0,1) ................. 1

………………………………..

S1(i,j) S2(i,j ) Snsen(i,j) 1

…………………………………

F(0,0)

F(0,1)

…..

………

F( i,j)

………

w1

w2

wnsen+1

=

*

S * W = F - некорректная по Адамару задача для определения W

S - прямоугольная матрица, сформированная из исходного изображения;

F - вектор, сформированный из результирующего изображения;

Регуляризация по Тихонову обеспечивает устойчивое решение

min F(w) = (SW - F, SW – F) +  (W,W)

w

Процедура обучения без учета порогов

W = (ST S +  E) –1 ST F


4685041

S =

F =

S1

F1

S2

F2

Пример_1 :S1 F1

Пример_2 : S2 F2

ОБУЧЕНИЕ ПО НАБОРУ ПРИМЕРОВ

ПРОЦЕДУРА ОДНОШАГОВОГО ОБУЧЕНИЯ

W = (ST S +  E) –1 ST F

СЛУЧАЙ ДВУХ ПРИМЕРОВ

W1 = (S1T S1 +  E) –1 * S1T F1

Обучение по одному примеру

W2 = (S1T S1 + S 2T S2 +  E) –1 * (S1T F1+S2T F2)

Обучение по двум примерам

ПРОЦЕДУРА ДООБУЧЕНИЯ

Введем :

Sek = ∑ SkTSk- матрица предыдущего опытас k примерами

Fek = ∑ SkTFk – вектор опыта с k примерами

Wk+1 = (Sek + S k+1T Sk+1 +  E) –1 * (Fek+Sk+1T Fk+1)


4685041

КЛЮЧЕВЫЕ ВОПРОСЫПРИ СИНТЕЗЕ ФИЛЬТРА

КАКАЯ ДЛИНА ФИЛЬТРА ДОЛЖНА БЫТЬ ИСПОЛЬЗОВАНА ?

  • Условие симметрии ограничивает к-во коэффициентов (весов):

  • 3*3 = > 3

  • 5*5 3+3 => 6

  • 7*7 6+4 => 10

КАКОГО ТИПА ПРИМЕРЫ ДОЛЖНЫ БЫТЬ ИСПОЛЬЗОВАНЫ ?

  • ГРАНИЦЫ ЗАДАВАЕМЫЕ ВРУЧНУЮ

  • С РЕГУЛИРУЕМОЙ ТОЛЩИНОЙ

  • (на изображении толщина 2)?

  • ЛАПЛАС, SOBEL, CANNY ?

КАК МНОГО ПРИМЕРОВ НАДО ?

  • ПРЯМОУГОЛЬНИКИ,КРУГИ, ТИП ШУМА…?;

  • СМЕШАНЫЙ НАБОР …..?


4685041

ж

ц

-

3

з

-

-

-

ґ

-

-

ч

0.105

0.071

2.54

10

0.075

0.099

з

ч

-

-

0.086

0.023

0.149

0.027

0.085

з

ч

-

3

з

ч

=

H52

-

-

ґ

0.018

0.146

0.533

0.15

9.57

10

з

ч

-

-

0.084

0.019

0.136

0.013

0.097

з

ч

з

ч

-

3

и

ш

-

-

ґ

-

-

0.101

0.064

3.808

10

0.071

0.095

:=

-

H52_CONST

2.265

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

Веса нейрофильтра 3х3+1, обучение на по двум

примерам. Границы на изображении, которое хотим

получить задавались вручную.

Веса нейрофильтра 5х5+1, обучение: по двум

примерам.Границы на изображении, которое хотим

получить задавались вручную.

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

Допустим Х – некоторое вещественное число (-1,2365). Х умножаем на 10 000, после чего осуществляем сдвиг влево на 12, что эквивалентно умножению на 4096, и делим на 10 000. Получаем число -5064 или EC38 в шестнадцатеричной системе счисления. Получившийся результат умножаем на значение пикселя (например 138) и получаем -698832 или F55630, после чего осуществляем сдвиг вправо на 12. Итоговое значение будет -171 или F55. Теперь осуществим простое умножение (-1,2365*138)= -170,637. Как видим результаты вполне идентичные. Для сокращения времени расчетов был написан скрипт в MATLAB, который производит необходимые вычисления и выводит результат в шестнадцатеричном виде.


4685041

Реализация умножения значения пикселя на весовой коэффициент нейрофильтра

  • Использован модуль (MULT_ADD из Altera MegaWizard) для умножения одной пары значений, поэтому сумматор на выходе не используется.

  • Если перемножается больше одной пары значений, то на выходе модуля имеется сумматор (макс. число перемножаемых пар, которое можно сконфигурировать в одном модуле, значений равно 4).

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

  • По шине datab_0 передается значение пикселя, поэтому тип данных передаваемых по этой шине сконфигурирован, как Unsigned. А разрядность данной шины равна 8 (от 0 до 255 соответственно).

  • Выходная шина в 28 бит выбрана не случайно, поскольку после умножения значения пикселя и весового коэффициента нейрофильтра осуществляется сдвиг вправо на 12 (см. слайд выше), то на следующий за модулями MUTL_ADD параллельный сумматор подаются 16 битные значения.

  • Умножение происходитс приходом сигнала разрешения ena0, по фронту синхросигнала clock0.


4685041

Концепция аппаратной реализации нейрона 3х3+1

Значение пикселя

и веса нейрона

MULT_AD 1D

MULT_ADD 1

3х3

- - - - - - - - - -

ADD

Функция

активации

MULT_ADD 3

Wсв

3х3

Каждый элемент MULT_ADD сконфигурирован для перемножения 3-х пар значений на входе модуля и сложения полученных результатов умножения на выходе. После чего с каждого блока MULT_ADD данные подаются на параллельный сумматор ADD, а в последующем на блок функции активации (порогового значения). Значение Wсв (десятый весовой коэффициент нейрофильтра) сразу подается на параллельный сумматор.


4685041

Концепция аппаратной реализации нейрона 5х5+1

Значение пикселя

и веса нейрона

MULT_AD 1D

MULT_ADD 1

4х4

- - - - - - - - - -

Функция

активации

ADD

MULT_ADD 6

Wсв

4х4

  • В данном случае в модуль MULT_ADD отвечает за перемножение 4-х пар значений (максимально возможное число перемножаемых значений, которое можно сконфигурировать). Поскольку необходимо перемножить 25 пар значений, а одним модулем перемножается 4 пары, то используется 6 модулей по 4 и один модуль для перемножения одной пары (значение пикселя и весового коэффициента нейрофильтра) . Wсв – 26-й весовой коэффициент нейрофильтра.

MULT_ADD


Ip core

Структура IP-Core

Интеграция на шину Avalon

Top-level

Neuron-level

Входной

видеопоток

Выходной

видеопоток

Сдвиговые

регистры

Умножитель-

сумматор

Параллельный

сумматор

  • IP-Core описывался на Verilog, умножитель, сдвиговый регистр, сумматор -

  • сгенерировали при помощи MegaWizard и подключили в описываемое ядро.


Altera sopc builder

Компоновка проекта в Altera SOPC Builder


4685041

Используемые ресурсы ПЛИС

А

Б

А - необходимые ресурсы для реализации нейрофильтра 3х3+1;

Б - необходимые ресурсы для реализации нейрофильтра 5х5+1.

Из приведенных выше данных видно, что в структуре 5х5+1 число блоков

DSP увеличилось почти в 2,5 раза.


4685041

Проделанная работа

При аппаратной реализации нейрона были решены следующие проблемы:

Разработка концепции аппаратной реализации нейрона;

Описание арифметики посредством подключения сгенерированных модулей из Altera MegaWizard;

Описание Top-level IP-Core нейрона, интеграция на шину Avalon и его конфигурация через софт-процессор NIOS II в составе SOPC (SystemonaProgrammableChip);

Удобное представление весов нейронапри их переносе из Matlab;

Регулирование при помощи функции активации выходного состояния нейрона.


4685041

Демонстрация рабочего стенда

Инверсия выходного видеопотока, при пороговом значении = 15


4685041

Используемые публикации

  • Астапкович А.М. Синтез адаптивного помехоустойчивого фильтраграниц

  • на основе нейронной сети. СПб, 2010

  • 2. Astapkovitch A.M. Оne step learning procedure for neural net control system.

  • Proc. International forum “Information systems. Problems, perspectives , innovation

  • approaches” , p.3-9,SUAI Saint-Petersburg, 2007


  • Login