160 likes | 316 Views
Макет помехоустойчивого нейрофильтра границ для обработки видеоинформации. С.А. Чернышев. Санкт-Петербургский государственный университет аэрокосмического приборостроения 2012. Постановка задачи. Главной задачей проекта:
E N D
Макет помехоустойчивого нейрофильтра границ для обработки видеоинформации С.А. Чернышев Санкт-Петербургский государственный университет аэрокосмического приборостроения2012
Постановка задачи Главной задачей проекта: “Макет помехоустойчивого нейрофильтра границ для обработки видеоинформации” является аппаратная реализация нейрофильтра для выделения границы на зашумленном видеоизображении в реальном масштабе времени. Решение задачи разбито на этапы: Освоение: САПР Quartus II, NIOS II, Altera SOPC Builder; Перенос готовой модели нейрофильтра (обученного по одношаговой процедуре обучения) из Matlab на ПЛИС; Реализация нейрофильтра в виде IP-Core на языке Verilog HDL; Конфигурация параметров нейрофильтра по JTAG UART; Создание демонстрационного стенда.
КОНЦЕПЦИЯ ФИЛЬТРА ГРАНИЦ НА ОСНОВЕ НЕЙРОННОЙ СЕТИ (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 помощью набора “ПРИМЕРОВ” ; - “ПРИМЕР” –пара изображений “ИСХОДНОЕ ИЗОБРАЖЕНИЕ”и “РЕЗУЛЬТИРУЮЩЕЕ ИЗОБРАЖЕНИЕ”;
ОДНОШАГОВАЯ ПРОЦЕДУРА ОБУЧЕНИЯ (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
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)
КЛЮЧЕВЫЕ ВОПРОСЫПРИ СИНТЕЗЕ ФИЛЬТРА КАКАЯ ДЛИНА ФИЛЬТРА ДОЛЖНА БЫТЬ ИСПОЛЬЗОВАНА ? • Условие симметрии ограничивает к-во коэффициентов (весов): • 3*3 = > 3 • 5*5 3+3 => 6 • 7*7 6+4 => 10 КАКОГО ТИПА ПРИМЕРЫ ДОЛЖНЫ БЫТЬ ИСПОЛЬЗОВАНЫ ? • ГРАНИЦЫ ЗАДАВАЕМЫЕ ВРУЧНУЮ • С РЕГУЛИРУЕМОЙ ТОЛЩИНОЙ • (на изображении толщина 2)? • ЛАПЛАС, SOBEL, CANNY ? КАК МНОГО ПРИМЕРОВ НАДО ? • ПРЯМОУГОЛЬНИКИ,КРУГИ, ТИП ШУМА…?; • СМЕШАНЫЙ НАБОР …..?
ж ц - 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, который производит необходимые вычисления и выводит результат в шестнадцатеричном виде.
Реализация умножения значения пикселя на весовой коэффициент нейрофильтра • Использован модуль (MULT_ADD из Altera MegaWizard) для умножения одной пары значений, поэтому сумматор на выходе не используется. • Если перемножается больше одной пары значений, то на выходе модуля имеется сумматор (макс. число перемножаемых пар, которое можно сконфигурировать в одном модуле, значений равно 4). • По шине dataa_0 передается весовой коэффициент нейрофильтра, поскольку он может быть как отрицательным, так и положительным то тип данных передаваемый по этой шине сконфигурирован, как Signed. Разрядность шины выбиралась в соответствии с разрядностью весовых коэффициентов, полученных в Matlab, при их переводе из вещественных в целочисленные. • По шине datab_0 передается значение пикселя, поэтому тип данных передаваемых по этой шине сконфигурирован, как Unsigned. А разрядность данной шины равна 8 (от 0 до 255 соответственно). • Выходная шина в 28 бит выбрана не случайно, поскольку после умножения значения пикселя и весового коэффициента нейрофильтра осуществляется сдвиг вправо на 12 (см. слайд выше), то на следующий за модулями MUTL_ADD параллельный сумматор подаются 16 битные значения. • Умножение происходитс приходом сигнала разрешения ena0, по фронту синхросигнала clock0.
Концепция аппаратной реализации нейрона 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св (десятый весовой коэффициент нейрофильтра) сразу подается на параллельный сумматор.
Концепция аппаратной реализации нейрона 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 Интеграция на шину Avalon Top-level Neuron-level Входной видеопоток Выходной видеопоток Сдвиговые регистры Умножитель- сумматор Параллельный сумматор • IP-Core описывался на Verilog, умножитель, сдвиговый регистр, сумматор - • сгенерировали при помощи MegaWizard и подключили в описываемое ядро.
Используемые ресурсы ПЛИС А Б А - необходимые ресурсы для реализации нейрофильтра 3х3+1; Б - необходимые ресурсы для реализации нейрофильтра 5х5+1. Из приведенных выше данных видно, что в структуре 5х5+1 число блоков DSP увеличилось почти в 2,5 раза.
Проделанная работа При аппаратной реализации нейрона были решены следующие проблемы: Разработка концепции аппаратной реализации нейрона; Описание арифметики посредством подключения сгенерированных модулей из Altera MegaWizard; Описание Top-level IP-Core нейрона, интеграция на шину Avalon и его конфигурация через софт-процессор NIOS II в составе SOPC (SystemonaProgrammableChip); Удобное представление весов нейронапри их переносе из Matlab; Регулирование при помощи функции активации выходного состояния нейрона.
Демонстрация рабочего стенда Инверсия выходного видеопотока, при пороговом значении = 15
Используемые публикации • Астапкович А.М. Синтез адаптивного помехоустойчивого фильтраграниц • на основе нейронной сети. СПб, 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