«ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА МАГИСТРА ВКРМ.44.230100.05.ПЗ Чернышева Станислава Андреевича (фамилия, имя, отчество магистранта) Вид работы магистерская диссертация (магистерская диссертация или магистерский проект) ...»
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное автономное образовательное учреждение
высшего профессионального образования
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»
ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА МАГИСТРА
ВКРМ.44.230100.05.ПЗ Чернышева Станислава Андреевича (фамилия, имя, отчество магистранта) Вид работы магистерская диссертация (магистерская диссертация или магистерский проект) Направление Информатика и вычислительная техника 230100.68 (552800) (код) ( наименование направления подготовки) Магистерская программа Микропроцессорные системы (код) (наименование программы)
«СИНТЕЗ НЕЙРОПОДОБНЫХ
ПОМЕХОУСТОЙЧИВЫХ
ДЕТЕКТОРОВ ГРАНИЦ»
СОДЕРЖАНИЕ
ВВЕДЕНИЕОбзор предметной области
1.
Применение методов шумоподавления и выделения границ в изображении
1.1.
Известные алгоритмы шумоподавления в изображении
1.2.
Известные алгоритмы выделения границ в изображении
1.3.
Обзор современных нейропроцессоров
1.4.
Разработка методики синтеза нейроподобного помехоустойчивого детектора границ............. 2.
Известные подходы к обучению нейросетей
2.1.
Проблемы развития нейронсетевых технологий
2.2.
2.3. Методика синтеза и обучения нейроподобного помехоустойчивого детектора границ с использованием тестовых изображений
2.4. Обучение нейроподобного помехоустойчивого детектора границ с использованием реальных изображений с цифровых видеокамер
Разработка архитектуры нейроподобного помехоустойчивого детектора границ
3.
Выбор базовой технологии для реализации нейроконтроллера
3.1.
3.2. Обзор современных семейств ПЛИС и оценка достижимой сложности для нейроподобного помехоустойчивого детектора границ
Разработка структурно-функциональной схемы
3.3.
Обработка видеоданных и форматы передачи информации
3.4.
Аппаратно-программная реализация нейроподобного помехоустойчивого детектора границ 4.
Выбор аппаратно-программных и программных средств разработки
4.1.
Аппаратная реализация нейроподобного детектора
4.2.
Разработка программного обеспечения для процессорного ядра NIOSII
4.3.
4.4. Результаты экспериментов по обработке аналогового видеосигнала в реальном режиме времени
ЗАКЛЮЧЕНИЕ
СПИСОК ПРИНЯТЫХ СОКРАЩЕНИЙ, АББРЕВИАТУР И ТЕРМИНОВ
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
ПРИЛОЖЕНИЕ А, Фрагмент кода Neuron-level нейродетектора
ПРИЛОЖЕНИЕ Б, Код библиотеки конфигурации видеодекодера
ПРИЛОЖЕНИЕ В, Код библиотеки I2C
ПРИЛОЖЕНИЕ Г, Код основного модуля NIOS II
ВВЕДЕНИЕ
Прогресс в области элементной базы обеспечил возможность начала широкого использования видеоизображения во встраиваемых системах управления реального времени.Выделение границ в изображениях является ключевым элементом современных систем компьютерного зрения при решении ряда прикладных задач, связанных с распознаванием образов [1]. Границы представляют собой подмножество точек исходного изображения, связанные с его границами предметов или другими существенными элементами. Алгоритмы выделения границ и привязки их к существенным элементам изображения называют детекторами границ или детекторами краев (edge detector) [2]. Детекторы границ используют относительно локальные фрагменты изображения, на основании анализа которых делается вывод о наличии краевых точек – точек изображения, в которых яркость изменяется особенно сильно. Совокупность краевых точек формирует края областей изображения.
Как правило, детекторы границ дают удовлетворительный результат при наличии резких локальных изменений яркости. Однако широкий класс систем технического зрения эксплуатируется в условиях наличия шумов и помех. Шумы существенным образом искажают информацию о положении краевых точек, что приводит к появлению двух типов возможных ошибок.
Первый тип связан с пропуском реально существующей краевой точки, а второй – с появлением ложной. К примеру, хорошо известный детектор краев «CANNY» считается одним из лучших, но он не работоспособен при наличии шумов (см. рис. В.1, В.2).
Улучшение качества функционирования детекторов границ требует увеличения площади фрагмента изображения, используемого для принятия решения о наличии краевой точки, а также сложных алгоритмов предварительной обработки. С точки зрения реализации это означает необходимость выполнения значительного объема вычислений. Очевидно, что для видеосистем сложность реализации помехоустойчивых детекторов границ существенно выше из-за необходимости обрабатывать 25- видеокадров каждую секунду.
Можно констатировать, что проблема разработки помехоустойчивых детекторов границ является актуальной, так как способы её решения напрямую влияют на параметры подсистем технического зрения. Эти соображения были определяющими при выборе темы исследований.
Рис. В.1 – Исходное изображение без шумов (а) и зашумленное (б) Рис. В.2 – Пример обработки изображения без шумов и зашумленного Одним из возможных вариантов реализации помехоустойчивых детекторов границ является использование моделей нейронных сетей, т.к.
известно, что в случае успешного обучения нейронная сеть способна выработать верный результат на основании данных, которые отсутствовали в обучающей выборке, были зашумлены или частично искажены.
В этом направлении в настоящее время ведется интенсивная работа.
Ряд результатов применения нейронных сетей для обработки изображений изложен в работах [1],[2],[3].
привлекательность применения нейросетей заключается в универсальности базового элемента вычислителя – модели нейрона, который хорошо приспособлен для реализации на современных чипах программируемой логики. В силу этого искусственные нейронные сети обеспечивают переход к системам массового параллелизма, что и предопределило базовую направленность работы.
Основной целью диссертационной работы являлось исследование методологии, возможностей и параметров реализации нейронных сетей для задач обработки видеоизображений в реальном масштабе времени реализуемых средствами программируемой логики.
В работах [4],[5] описана разработка метода синтеза помехоустойчивых распространения, настраиваемых по методике «Обучение с учителем» с помощью одношаговой процедуры обучения, которая естественным образом обобщается на многослойные сети и обеспечивает легкую интерпретацию результатов обучения. Использованный в данной работе метод является, по сути, модификацией этого подхода применительно к задаче синтеза детектора границ. Методика ориентирована на применение в многослойных сетях прямого распространения с предопределенной структурой и универсальна по отношению к размерам и форме локальной области.
Подробно результаты исследования данной методики описаны в работе «Методика синтеза нейроподобных помехоустойчивых детекторов границ», в верстающемся в настоящее время сборнике докладов Научной сессии ГУАП 2012 г.
В соответствии с поставленной задачей в рамках выполненной работы значительное внимание было уделено исследованию аспектов аппаратной реализации этого подхода с помощью программируемой логики.
Для аппаратной реализации использовался помехоустойчивый детектор границ с размерами локального фрагмента 5х5 пикселей, синтезированный с помощью искусственно созданных обучающих примеров. Нейронная сеть строилась с использованием нейронов с линейной функцией активации, с фиксированным верхним порогом и подбираемым нижним.
существенного запаса вычислительной производительности при обработке изображения размером 640х480 пикселей с темпом поступления 25 кадров в секунду, а также запаса структурной емкости современных схем программируемой логики. При этом расширение возможностей нейросети видеоизображения выполняется при необходимости простым копированием структур, моделирующих работу нейрона. Структура макета, описание процесса разработки конфигурации ПЛИС и фотографии, иллюстрирующие результаты его работы приведены в разделе 4 пояснительной записки.
В ходе разработки и создания макета были решены следующие задачи:
Разработана структура конфигурации ПЛИС, включившая в себя микропроцессорное ядро, существенно облегчающее создание алгоритмических блоков;
Создано описание арифметического блока посредством подключения сгенерированных модулей из среды разработки Altera MegaWizard;
выполнена интеграция на шину Avalon и её конфигурация через софтпроцессор NIOS II в составе SOPC (System on a Programmable Chip);
переносе из среды Matlab;
Выполнено регулирование при помощи функции активации выходного состояния нейрона.
изображениями, полученными с выхода видеокамеры, обнаружен признак, позволяющий оценить качество обучающей выборки изображений. Признак основан на сравнении элементов полученной при обучении матрицы весовых коэффициентов расположенных симметрично относительно диагонали результирующем изображении обучающей пары допустил неточность при указании границ.
Полученные результаты имеют значимость, как с теоретической, так и с практической точек зрения. В части дальнейшего развития практической нейроноподобных помехоустойчивых детекторов границ, способам обмена информации для управления параметрами его функционирования и получения результирующей информации последующими подсистемами технического зрения.
Магистерская диссертация состоит из введения, четырех разделов, заключения, списка принятых сокращений, аббревиатур и терминов, списка литературы из 25 наименований и четырех приложений.
Во введении обосновывается актуальность темы, определяется цель и решаемые задачи, излагается научная новизна, практическая ценность.
В первом разделе рассматриваются существующие алгоритмы шумоподавления и выделения границ в изображении, а также современные нейропроцессоры и их классификация.
Во втором разделе рассматриваются известные подходы к обучению нейронных сетей и проблемы развития нейросетевых технологий.
Приводится описание предлагаемой методики синтеза нейроподобных помехоустойчивых детекторов границ на основе тестовых и реальных изображений.
Третий раздел посвящен разработки архитектуры нейроконтроллера, использующего видео в канале обратной связи. Выбору платформы для аппаратной реализации предложенной метода во втором разделе.
В четвертом разделе представлен обзор программно-аппаратных средств для реализации предложенного метода. Приведено описание разработки нейроподобного помехоустойчивого детектора границ на основе ПЛИС и результаты практической части работы.
По теме работы сделаны доклады на заседаниях секции кафедры вычислительных систем и сетей Научной сессии ГУАП в 2011 и 2012 гг. В сборнике докладов 2011 г. по теме диссертационной работы в соавторстве опубликована одна статья, ещё две статьи подготовлены к печати в сборнике 2012 г.
выделения границ в изображении Шумоподавление служит для улучшения визуального восприятия, но может также использоваться для каких-то специализированных целей например, в медицине для увеличения четкости изображения на рентгеновских снимках, в качестве предобработки для последующего распознавания и т.п. [9] Также шумоподавление играет важную роль при сжатии изображений.
В видео, и в изображениях сжатие основано на пространственной корреляции значений пикселей, а в случае видео - еще и временной корреляции (на сходстве последовательно идущих кадров между собой). Одной из основных проблем в алгоритмах сжатия является определение локальной зашумленности данной области изображения, поскольку при сжатии сильный шум может быть принят за детали изображения, и это может, во-первых, привести к увеличению сложности с точки зрения сжатия и, во-вторых, отрицательно повлиять на результирующее качество сжатого изображения.
При сжатии видеоизображений наличие шума приводит, кроме того, к увеличению межкадровой разницы, понижая, таким образом, степень сжатия, и отрицательно влияет на точность работы алгоритма компенсации движения.
Откуда же берется шум? Источники шума могут быть различными:
неидеальное оборудование для захвата изображения видеокамера, сканер и т.п.;
возникающие при ночной фото/видеосъемке;
помехи при передаче по аналоговым каналам - наводки от источников электромагнитных полей, собственные шумы активных компонентов (усилителей) линии передачи (пример - телевизионный сигнал);
неточности (плохие фильтры) при выделении яркостного и цветоразностных сигналов из аналогового композитного сигнала и т. п.
распространенные:
белый шум - сигнал, отсчеты которого не коррелируют друг с другом, и его разновидность - белый гауссовский шум, который возникает, в частности, при плохих условиях приема сигнала и описывается следующей функцией плотности;
импульсный шум - случайные изолированные точки на изображении, значение которых значительно отличается от значений окружающих их точек (обычно возникает при передаче по аналоговым каналам);
Выделение границ (выделение краев) — термин в теории обработки изображения и компьютерного зрения, частично из области поиска объектов и выделения объектов, основывается на алгоритмах, которые выделяют точки цифрового изображения, в которых резко изменяется яркость или есть другие виды неоднородностей[10].
Основной целью обнаружения резких изменений яркости изображения является фиксация важных событий и изменений мира. Они могут отражать различные предположения о модели формирования изображения, изменения в яркости изображения могут указывать на:
В идеальном случае, результатом выделения границ является набор связанных кривых, обозначающих границы объектов, граней и оттисков на поверхности, а также кривых, которые отображают изменения положения поверхностей. Таким образом, применение фильтра выделения границ к изображению может существенно уменьшить количество обрабатываемых данных, из-за того, что отфильтрованная часть изображения считается менее значимой, а наиболее важные структурные свойства изображения сохраняются. Однако не всегда возможно выделить границы в картинах реального мира средней сложности. Границы выделенные из таких изображений часто имеют такие недостатки как фрагментированость (кривые границ не соединены между собой), отсутствие границ или наличие ложных, не соответствующих исследуемому объекту, границ.
Более подробное описание алгоритмов шумоподавления и выделения границ приведено в [24].
Линейное усреднение пикселей по соседям Простейшая идея удаления шума - усреднять значения пикселей в пространственной окрестности. Для каждого пикселя анализируются соседние для него пиксели, которые располагаются в некотором прямоугольном окне вокруг этого пикселя. Чем больше взят размер окна, тем сильнее происходит усреднение. Самый простой вариант фильтрации - в качестве нового значения центрального пикселя брать среднее арифметическое всех тех его соседей, значение которых отличается от значения центрального не более чем на некоторый порог. Чем больше величина этого порога, тем сильнее происходит усреднение.
взвешенную сумму, где весовой коэффициент каждого соседнего пикселя зависит либо от расстояния в пикселях от него до центрально пикселя, либо от разницы их значений. [9] Эти алгоритмы очень простые, но они не дают хорошего результата.
Медианная фильтрация Медианная фильтрация - это стандартный способ подавления импульсного шума.
Для каждого пикселя в некотором его окружении (окне) ищется медианное значение и присваивается этому пикселу. Определение медианного значения: если массив пикселей отсортировать по их значению, медианой будет серединный элемент этого массива. Размер окна соответственно должен быть нечетным, чтобы этот серединный элемент существовал.
Однако в чистом виде медианный фильтр размывает мелкие детали, величина которых меньше размера окна для поиска медианы, поэтому на практике практически не используется.
Математическая морфология Шумоподавление можно также осуществлять с использованием двух основных морфологических операций: сужения (erosion) и расширения (dilation), а также их комбинаций - закрытия (closing) и раскрытия (opening).
Раскрытие (сначала сужение, потом расширение) убирает выступы на границах объектов, а закрытие (сначала расширение, потом сужение) заполняет отверстия внутри и на границах.
В качестве примера можно предложить следующий алгоритм. Сначала по исходному изображению I вычисляется новое изображение I', равное полу-сумме открытия-закрытия и закрытия-открытия исходного изображения. Получим сглаженное изображение, не содержащее шума. Тогда изображение D, равное разнице I и I', будет содержать весь шум и все те детали исходного изображения, размер которых меньше размера структурного элемента, примененного при морфологических операциях.
Предполагая, что амплитуда у шума меньше, чем у деталей, обнулим в D все значения, меньшие некоторого порога, и снова сложим с I'.
Изображения, обработанные этим методом, выглядят несколько искусственно, поэтому для обработки фотореалистичных изображений он не подходит, хотя, к примеру, для анимации может оказаться очень полезным.
Гауссовское размытие Гауссовское размытие - это свертка изображения с функцией где параметр s задает степень размытия, а параметр A обеспечивает нормировку. Фактически, это то же усреднение, только пиксель смешивается с окружающими по определенному закону, заданному функцией Гаусса.
Матричный фильтр, посчитанный по указанной формуле, называется гауссианом; чем больше его размер, тем сильнее размытие.
Вблизи границ (контуров на изображении) такой фильтр применять нельзя, чтобы не смазать детали изображения. Как следствие вдоль границ остается зашумленный контур.
Метод главных компонент Метод главных компонент (МГК) позволяет выделить структуру в многомерном массиве данных и применяется в основном для распознавания или для сжатия изображений. В области шумоподавления этот подход является довольно новым и мало исследованным. Работает он лучше всего для изображений с белым гауссовским шумом.
Метод главных компонент заключается в нахождении таких базисных векторов исследуемого многомерного пространства, которые бы наилучшим образом отражали расположение некоторых исходных данных в этом пространстве (характеризовали эти данные).
Вначале все изображение разбивается на блоки. Блоки обрабатываются независимо, поэтому они должны располагаться с небольшим перекрытием, чтобы избежать артефактов блочности при их стыковке. Пиксели блока NxN образуют вектор длины N2.
Далее, вокруг каждого блока рассматривается некоторое окно, из которого выбираются всевозможные блоки того же размера, что и центральный. Вектора, соответствующие этим блокам вкупе с центральным, образуют исходный набор данных, для которого применяется описанный выше алгоритм МГК. Строится матрица ковариаций, ищутся собственные вектора и собственные значения, и затем производится сортировка векторов по убыванию собственных значений. Шумоподавление осуществляется путем уменьшения длин собственных векторов и/или их обнуления в зависимости от величины соответствующих собственных значений.
Восстановление исходного изображения с учетом сделанных изменений производится в два этапа: сначала исходные данные приводятся к новому базису из собственных векторов (если часть собственных векторов была обнулена, то в результате получатся данные меньшей размерности), затем обратно к прежнему базису. При этом если собственные вектора не изменялись, восстановленные данные будут точно совпадать с исходными.
Лучше всего метод главных компонент работает на текстурированных областях, даже если текстура очень мелкая. После подавления шума методом главных компонент текстура останется по-прежнему четкой, чего нельзя сказать обо всех вышеперечисленных методах.
Детектор краев Canny Детектор краев Canny ориентируется на три основных критерия:
хорошее обнаружение (повышение отношения сигнал /шум); хорошая локализация (правильное определение положения границы);
единственный отклик на одну границу. Из этих критериев строится целевая функция стоимости ошибок, минимизацией которой находится «оптимальный » линейный оператор для свертки с изображением.
Для уменьшения чувствительности алгоритма к шуму применяется первая производная Гауссиана. После применения фильтра, изображение становиться слегка размытым. [25] После вычислением градиента сглаженного изображения в контуре границы оставляются только точки максимума градиента изображения.
Используется информация о направлении границы для того, чтобы удалять точки именно рядом с границей и не разрывать саму границу вблизи локальных максимумов градиента.
Для определения направления градиента используется оператор Собеля. Полученные значения направлений округляться до одного из четырех углов — 0, 45, 90 и 135 градусов.
Затем с помощью двух порогов удаляются слабые границы.
Фрагмент границы при этом обрабатывается как целое. Если значение градиента где-нибудь на прослеживаемом фрагменте превысит верхний порог, то этот фрагмент остается также « допустимой» границей и в тех местах, где значение градиента падает ниже этого порога, до тех пор, пока она не станет ниже нижнего порога. Если же на всем фрагменте нет ни одной точки со значением выше верхнего порога, то он удаляется. Такой гистерезис позволяет снизить число разрывов в выходных границах.
Включение в алгоритм шумоподавления повышает устойчивость результатов, но увеличивает вычислительные затраты и приводит к искажению и потере подробностей границ. Алгоритмом скругляются углы объектов и разрушаются границы в точках соединений.
очень большая ресурсоемкость, а также то, что возможно некоторое округление углов объекта, что приводит к изменению параметров контура.
чувствительность к шумам и ориентации границ областей, то, что он четко выделяет контур и позволяет выявлять внутренние контуры объекта. Кроме того он исключает ошибочное обнаружение контура там, где объектов нет.
Фильтр Лапласа Для решения задачи выделения перепадов яр кости можно применить дифференциальные операторы более высокого порядка, например оператор Лапласа:
В дискретном случае оператор Лапласа можно реализовать в виде процедуры линейной обработки изображения окном 3x3.
КИХ-фильтр для оператора Лапласа:
локализации контура и выяснению, на темной или светлой стороне контура находится рассматриваемый пиксель.
чувствительность к шумам. Кроме того возможны появления разрывов в контуре, а также их удвоение. К достоинствам же его можно отнести то, что он нечувствителен к ориентации границ областей, и малую ресурсоемкость.
Фильтр Робертса является оператор Робертса. Поскольку для вычисления модуля перпендикулярных направлениях, в операторе Робертса берутся диагональные разности:
Определение разности формируется двумя фильтрами с конечной характеристики которых соответствуют маскам 2х2:
К недостаткам этого оператора относятся высокая чувствительность элемента. А достоинство у него одно — малая ресурсоемкость.
Фильтр Собеля и Превита На практике для вычисления дискретных градиентов удобнее использовать операторы Собеля и Превитта. У оператора Собеля влияние шума угловых элементов несколько меньше, чем у оператора Превитта, что существенно при работе с производными.
У каждой из масок сумма коэффициентов равна нулю, т. е. эти операторы будут давать нулевой отклик на областях постоянной яркости.
КИХ-фильтры представляют собой маски 3x3.
Маски оператора Собеля:
Маски оператора Превитта :
В операторе Собеля используется весовой коэффициент 2 для средних элементов. Это увеличенное значение используется для уменьшения эффекта сглаживания за счет придания большего веса средним точкам.
Для решения вопроса инвариантности в отношении поворота используются так называемые диагональные маски, предназначенные для обнаружения разрывов в диагональных направлениях.
Диагональные маски оператора Собеля:
Диагональные маски оператора Превитта :
При наличии центрального элемента и малой ресурсоемкости этим оператором свойственна высокая чувствительность к шумам и ориентации границ областей, а также возможность появления разрывов в контуре.
Обзор современных нейропроцессоров Нейропроцессор – это кристалл, который обеспечивает выполнение нейросетевых алгоритмов в реальном масштабе времени. [11] нейропроцессоров выделим следующие (рис. 1.1):
процессорных матриц (систолических процессоров). Такие нейрочипы близки к обычным RISC-процессорам, объединяют в своем составе некоторое число процессорных элементов, а управляющая и дополнительная логика, как правило, строится на базе дополнительных схем.
представляет собой типовой ПЦОС, а реализованная на кристалле дополнительная логика обеспечивает выполнение характерных нейросетевых операций (например, дополнительный векторный процессор и т.п.).
транспьютероподобные элементы являются важным компонентом ВСМП, однако, их применение сдвигается в сторону коммутационных систем и сетей ЭВМ.
Параметры нейропроцессоров Для оценки производительности устройств (реализованных на основе ПЦОС и ПЛИС), применяемых для ЦОС, контролируется время выполнения типовых операций ЦОС, таких как цифровая фильтрация, БПФ и др. В свою очередь, для оценки производительности нейропроцессоров и нейрокомпьютеров применяется ряд специальных показателей (параметров):
измененных значений весов в секунду (оценивает скорость (умножений с накоплением) в секунду (оценивает Рис. 1.1 – Кристаллы, используемые в качестве нейропроцессоров где Bw, Bs – разрядность чисел, отведенных под веса и синапсы.
Ориентация процессоров на выполнение нейросетевых операций обуславливает, с одной стороны, повышение скоростей обмена между памятью и параллельными арифметическими устройствами, а с другой стороны, уменьшение времени весового суммирования (умножения и накопления) за счет применения фиксированного набора команд типа регистр-регистр.
Специализированные нейрочипы обеспечение высокого параллелизма вычислений за счет применения специализированного нейросетевого логического базиса или конкретных архитектурных решений. Использование возможности представления нейросетевых алгоритмов для реализации на нейросетевом логическом базисе как раз и является основной предпосылкой резкого увеличения производительности нейрочипов.
Проведем классификацию нейропроцессоров по ряду основных признаков:
цифровые, аналоговые и гибридные (рис. 1.2);
полностью аппаратной реализаций и с программно-аппаратной реализацией (когда нейроалгоритмы хранятся в ПЗУ);
– нейропроцессоры с жесткой структурой нейронов (аппаратно реализованных) и нейрокристаллы с настраиваемой структурой нейронов (перепрограммируемые);
структурой (т.е. топология нейронных сетей реализована жестко Производство специализированных нейрочипов ведется во многих странах мира.
Большинство из них ориентируются на закрытое использование (так как создаются для конкретных прикладных систем), однако среди нейрочипов достаточно и универсальных кристаллов.
Исследования в области разработки перспективных нейрочипов проводят многие лаборатории и университеты, среди которых можно выделить следующие:
Пенсельванский Университет, Колумбийский Университет, Аризонский Университет, Иллинойский Университет и др.
микроэлектроники г.Штутгарт и др.
Ростовский Госуниверситет и др.
Так, в МГТУ им. Н.Э. Баумана нейросетевой и нейрокомпьютерной проблематикой занимаются более десятка лабораторий на четырех факультетах: «Информатики и систем управления», «Специального «Биомедицинских систем».
Для создания единого образовательного пространства в области нейроинформатики на кафедре «Конструирование и технология производства электронной аппаратуры» МГТУ им. Н.Э. Баумана проводятся работы по созданию интерактивной глобальной информационно-обучающей системы в направлениями деятельности этой кафедры в области нейросетевых приложений являются: нейроадаптивные системы активного управления технологическими комплексами; распознавание изображений; обработка интеллектуального управления трафиком в телекоммуникационных системах; исследовательские работы в области нейроинформатики (экспертные системы, аналитические системы, контекстно-поисковые системы и т.п.) Рассмотрим наиболее популярные специализированные нейрочипы более подробно.
Нейросигнальный процессор NeuroMatrix NM Основа нейрочипа NeuroMatrix NM6403 (компания Модуль, Россия) – ЦП, который является высокопроизводительным ПЦОС. ЦП состоит из двух базовых блоков: 32-разрядного RISC-процессора и 64-разрядного векторного процессора, обеспечивающего выполнение векторных операций над программируемых интерфейса для работы с внешней памятью различного типа и два коммуникационных порта, аппаратно совместимых с портами ПЦОС TMS320C4x, для возможности построения многопроцессорных систем.
Основные характеристики:
RISC-ядро:
5-ступенчатый 32-разрядный конвейер;
32- и 64-разрядные команды (обычно выполняется две операции в одной команде);
два адресных генератора, адресное пространство – два 64-разрядных программируемых интерфейса с SRAM/DRAM-разделяемой памятью;
восемь 32-разрядных регистров общего назначения;
восемь 32-разрядных адресных регистров;
специальные регистры управления и состояния;
два высокоскоростных коммуникационных порта ввода/вывода, аппаратно-совместимых с портами TMS320C4x.
Векторный сопроцессор:
операндов и результатов;
формат данных – целые числа, упакованные в 64разрядные блоки, в форме слов переменной длины от 1 до разрядов каждое;
поддержка как векторно-матричных, так и матричноматричных операций;
три внутренних 32 x64-разрядных блока ОЗУ.
Производительность скалярных операций:
Производительность векторных операций:
интерфейсов с памятью – до 800 Мбайт/сек;
Базовыми для кристалла являются вычисления вида:
где Zi – выходной сигнал i-ro нейрона, Xj – j-й входной сигнал слоя, Ui – смещение i-ro нейрона, Wij – весовой коэффициент j-го входа 1-го нейрона, Yi – сумма взвешенных входов i-го нейрона, f – функция активации, N – количество входных сигналов слоя, М – количество нейронов в слое.
Операнды Zi, Xi, Ui и Wij представлены в дополнительном параллельном коде и могут иметь произвольную разрядность.
Особенностями данного кристалла являются:
(синапсами) и весами переменной разрядности (от 1 до 64 бит), способность нейрокристалла увеличивать производительность с уменьшением разрядности операндов;
функции или функции ограничения;
работы с внешней памятью любого типа: до 4Мб SRAM и до ввода/вывода, аппаратно совместимых с коммуникационными портами TMS320C4x для реализации параллельных ВСМП большой производительности;
программами, хранящимися во внешнем ОЗУ.
Технические характеристики:
пиковая производительность для байтных операндов – 720 MCPS притактовой частоте 30 МГц; для бинарных Кристалл может применяться как базовый элемент нейрокомпьютеров, реализованных в виде карт и модулей для ПК (нейроускорителей), а также в конструктивно-автономных нейрокомпьютерах.
Нейрочип NNP компании Accurate Automation Corp.
Состоит из нескольких миниатюрных процессоров, работающих параллельно. Каждый из них представляет собой быстрый 16-разрядный вычислитель с памятью для хранения синаптических весов. Процессор использует всего 9 команд. Процессоры на кристалле связаны друг с другом локальной шиной. NNP создан в коммерческих целях и доступен на рынке.
В комплект поставки процессора включены средства разработки программ, а также библиотека подпрограмм с реализованными нейросетевыми алгоритмами, такими как сети Хопфилда, сети Кохонена и другими. Нейрочип поставляется на платах под шины ISA, VME.
Производительность – 140 MCPS для однопроцессорной системы и 1, GCPS для 10-процессорной системы.
Нейрочип МА16 компании Siemens Изготовлен по технологии КМОП (1 мкм), состоит из 610 тыс.
транзисторов и выполняет до 400 млн. операций умножения и сложения в секунду. Используется в качестве элементной базы нейрокомпьютера Synapse 1 и нейроускорителей Synapse 2 и Synapse 3 (распространяемых сегодня на рынке французской фирмой Tiga Technologies).
процессор для векторных и матричных операций, поддерживающий на аппаратном уровне следующие операции:
Манхэттена, геометрическое расстояние).
Нейрочип содержит четыре идентичных процессорных элемента, работающих параллельно (рис. 4.2). Входные данные имеют точность 16 бит, тактовая частота 50 МГц. Для операций матричного умножения/сложения обеспечение работает в среде UNIX/XWIND и реализовано на C++.
Нейронная сеть тоже описывается на С++ или может вводится интерактивно с помощью графического интерфейса типа OSF/Motif, что позволяет визуализировать конфигурацию чипа после отображения на него структуры сети. Хорошо развиты средства тестирования и эмуляции. С года МА16 является коммерчески доступным.
Нейрочип MD1220 компании MicroDevices Содержит восемь нейронов с 8 связями и 16-разрядные сумматоры. Во внутрикристалльной памяти хранятся 16-разрядные веса. Входы имеют последовательные одноразрядные умножители с продолжительностью такта 7,2 мкс. Средняя производительность около 9 MCPS.
Нейрочип L-Neuro компании Philips Один из первых нейрочипов. На сегодня широко известны две его модификации L-Neuro 1.0 и L-Neuro 2.3. Вторая версия имеет 12 слоев, а первая один слой из шестнадцати одноразрядных, или двух восьмиразрядных, или четырех 4-разрядных, или двух восьмиразрядных процессорных элементов, т.е. имеет возможность работать в мультиразрядном режиме. На кристалле реализован 1Кбайт памяти для хранения 1024 8-разрядных или 512 16-разрядных весов. Гибкая каскадируемая структура нейрочипа позволяет использовать его для различных нейросетевых парадигм. При реализации 64 восьмиразрядных процессорных элементов средняя производительность составляет 26 MCPS (32 MCUPS).
Нейрочип NLX-420 компании NeuroLogix Каждый из 16 процессорных элементов нейрочипа содержит 32разрядный сумматор, логику параллельного выполнения 16 умножений.
Средняя производительность 300 MCPS. Также имеется возможность каскадирования и мультиразрядных вычислений.
Нейрочип ETANN 80170NX компании INTEL Аналоговая СБИС ETANN 80170NX содержит 64 входа, 16 внутренних уровней и 64 нейрона (пороговый усилитель с сигмоидальной передаточной функцией). Каждый вход соединен с 64 синапсами.
Передаточная функция нейрона близка к сигмоидальной функции.
Усиление передаточной функции определяет чувствительность нейрона.
Низкое значение усиления позволяет интерпретировать выход нейрона как аналоговый, а высокое – как цифровой.
Нейрочип имеет следующие параметры:
максимальное значение выхода нейрона определяется зависит от усиления и примерно равна 1,5 мкс, что и определяет Обучение выполняется методом обратного распространения с помощью INNTS. Применяемое системное окружение – специальная версия пакета DynaMind. Обучение выполняется до получения приемлемого уровня ошибки выхода сети, и после достижения удовлетворительной работы веса загружаются в СБИС. Для реальной работы такого обучения недостаточно, так как программа симуляции не может точно смоделировать аналоговую работу СБИС и, например, не отслеживает флуктуации в передаточной функции каждого нейрона. Поэтому следующий этап обучения представляет собой так называемый CIL Training, когда после каждого цикла веса записываются в СБИС, и выход сети непосредственно используется в процессе обучения.
Точность ETANN 5 – 6 разрядов для весов и выходов.
Поскольку ETANN представляет собой аналоговую СБИС, то для ее надежной работы важны стабильные внешние условия. Специально сконструированный для этого модуль обеспечивает:
(потребляемая мощность ETANN 5 Вт).
Нейрочип CLNN32/CLNN64 компании Bellcore Гибридный нейрочип CLNN32 состоит из 32 нейронов и двунаправленных адаптивных синапсов. CLNN64 содержит только адаптивных синапса. В наборе CLNN32/CLNN64 все нейроны взаимосвязаны, так что любая топология сети отображается подбором синапсов. Динамика нейронной сети полностью аналоговая, но значения синапсов хранятся/обновляются в цифровом виде с точностью 5 бит. На аппаратном уровне реализовано обучение сети – подбор весов происходит по алгоритму обучения машины Больцмана или Mean Field. Внутри также имеется некоррелированный генератор шума (32 канала), используемый при обучении по методу машины Больцмана. CLNN32 может быть использован независимо или совместно с CLNN64 для построения более сложной архитектуры нейронной сети.
Производительность СБИС достигает 108 переключений/с (при работе с CLNN64 удваивается). Для CLNN32 это означает, что примерно 105 32битовых образцов/с или 32 аналоговых канала (с полосой пропускания кГц) могут быть использованы для быстрого распознавания/обучения. Время распространения для одного слоя нейронов до 1 мкс. «Охлаждение» (по методу Больцмана) или MF обучении требует 10 – 20 мкс. По сравнению с ETANN СБИС CLNN32 имеет следующие преимущества:
обеспечивающий быстрое нахождение "почти оптимального" помехоустойчивого детектора границ 2.1. Известные подходы к обучению нейросетей Очевидно, что функционирование нейронной сети, т. е. действия, которые она способна выполнять, зависит от величин синоптических связей.
Поэтому, задавшись структурой нейронной сети, отвечающей определенной задаче, разработчик должен найти оптимальные значения для всех весовых коэффициентов w[11].
Этот этап называется обучением нейронной сети, и от того, насколько качественно он будет выполнен, зависит способность сети решать во время эксплуатации поставленные перед ней проблемы. Важнейшими параметрами обучения являются: качество подбора весовых коэффициентов и время, которое необходимо затратить на обучение. Как правило, два этих параметра связаны между собой обратной зависимостью и их приходится выбирать на основе компромисса.
В настоящее время все алгоритмы обучения нейронных сетей можно разделить на два больших класса: с учителем и без учителя.
Обучение с учителем Нейронной сети предъявляются значения как входных, так и выходных параметров, и она по некоторому внутреннему алгоритму подстраивает веса своих синаптических связей.
Обучение с учителем предполагает, что для каждого входного вектора существует целевой вектор, представляющий собой требуемый выход.
Вместе они называются представительской или обучающей выборкой.
Обычно нейронная сеть обучается на некотором числе таких выборок.
Предъявляется выходной вектор, вычисляется выход нейронной сети и сравнивается с соответствующим целевым вектором, разность (ошибка) с помощью обратной связи подается в нейронную сеть, и веса изменяются в соответствии с алгоритмом, стремящимся минимизировать ошибку. Векторы обучающего множества предъявляются последовательно, вычисляются ошибки и веса подстраиваются для каждого вектора до тех пор, пока ошибка по всему обучающему массиву не достигнет приемлемо низкого уровня.
Обучение без учителя Нейронной сети предъявляются только входные сигналы, а выходы сети формируются самостоятельно с учетом только входных и производных от них сигналов.
Несмотря на многочисленные прикладные достижения, обучение с учителем критиковалось за свою биологическую неправдоподобность.
Трудно вообразить обучающий механизм в естественном человеческом интеллекте, который бы сравнивал желаемые и действительные значения выходов, выполняя коррекцию с помощью обратной связи. Если допустить подобный механизм в человеческом мозге, то откуда тогда возникают желаемые выходы? Обучение без учителя является более правдоподобной моделью обучения в биологической системе. Развитая Кохоненом и многими следовательно, не требует сравнения с предопределенными идеальными ответами.
Обучающий алгоритм подстраивает веса нейронной сети так, чтобы получались согласованные выходные векторы, т. е. чтобы предъявление достаточно близких входных векторов давало одинаковые выходы. Процесс обучения, следовательно, выделяет статистические свойства обучающего множества и группирует сходные векторы в классы. Предъявление на вход вектора из данного класса даст определенный выходной вектор, но до обучения невозможно предсказать, какой выход будет производиться данным классом входных векторов.
Следовательно, выходы подобной сети должны трансформироваться в некоторую понятную форму, обусловленную процессом обучения. Это не является серьезной проблемой. Обычно не сложно идентифицировать связь между входом и выходом, установленную сетью.
Проблемы развития нейронсетевых технологий Рассмотрим ряд проблем, стоящих сегодня на пути широкого распространения нейросетевых технологий [11].
1. Большинство применяемых нейронных сетей представляют сети обратного распространения – наиболее популярного современного алгоритма. В свою очередь, алгоритм обратного распространения не свободен от недостатков. Прежде всего не существует гарантии, что нейронная сеть может быть обучена за конечное время: зачастую усилия и затраты машинного времени на обучение, пропадают напрасно. Когда это происходит, обучение повторяется – без всякой уверенности, что результат окажется лучше.
2. Нет также уверенности, что сеть обучится наилучшим возможным образом. Алгоритм обучения может попасть в «ловушку» так называемого локального минимума ошибки, и наилучшее решение не будет получено.
3. Разработано много других алгоритмов обучения нейронных сетей, имеющих свои преимущества, однако, следует отметить, что все они не свободны от ограничений.
4. Разработчики склонны преувеличивать свои успехи и замалчивать неудачи, создавая зачастую о нейронных сетях и нейрокомпьютерах необъективное впечатление. Поэтому предприниматели, желающие основать новые компании в области нейросетевых технологий, должны предельно четко представлять пути развития того или иного проекта и пути получения прибыли.
5. Таким образом, существует опасность, что нейросетевые технологии начнут продаваться и покупаться раньше, чем придет их время, обещая потребительские и функциональные возможности, которые пока невозможно достигнуть. Если это произойдет, то технология в целом может пострадать от потери кредита доверия и вернется к периоду невостребованности семидесятых годов.
6. Существует проблема неспособности традиционных искусственных нейронных сетей «объяснить», как они решают задачу. Это напоминает нашу неспособность объяснить, как мы узнаем человека, несмотря на расстояние, освещение и прошедшие годы.
7. Технология требует улучшения существующих методов и расширения теоретических основ, для того чтобы нейронные сети полностью реализовали свои потенциальные возможности.
8. Прежде чем искусственные нейронные сети можно будет использовать для решения задач, где поставлены на карту человеческие жизни или важные народнохозяйственные объекты, должны быть решены вопросы надежности ИНС.
В данной магистерской диссертации отсутствует ряд приведенных выше проблем, а именно – предложенная методика синтеза не представляет собой нейронную сеть обратного распространения, также решена шестая проблема, поскольку алгоритм обучения очень прост.
2.3. Методика синтеза и обучения нейроподобного помехоустойчивого детектора границ с использованием Предлагаемая структура фильтра ориентирована на использование в системах реального времени и предполагает реализацию на параллельных вычислительных структурах.
изображения, представляет собой однослойный нейроноподобный детектор границ. Цикл обработки представлен на рис. 2.1.
Исходное изображение представляет собой матрицу значений яркости размером Ny*Nx. Результатом обработки этой информации является матрица описания краев обрабатываемого изображения также размером формирующих маску фильтра границ. Из соображений симметрии маска фильтра квадратная, а N принимает нечетные значения.
МАТРИЦА МАТРИЦА
ИЗОБРАЖЕНИЯ КРАЕВ
Рис. 2.1 – Обработка изображения однослойнымнейроноподобным Таким образом, для принятия решения о принадлежности точки (i,j) к подмножеству краевых точек используется N*N близлежащих элементов.Эти элементы упорядочиваются, и из них формируется вектор S размерности Nsen=N*N+1, Размерность вектора S на единицу больше, чем количество используемых точек. Компонента N+1 вектора S имеет фиксированное значение 1, что обеспечивает возможность учета постоянной составляющей.
Вектор показаний сенсоров S подается на вход нейрона. Нейрон состоит из двух компонент: линейной L и нелинейной A. Линейный компонент нейрона L имеет N+1 вход и использует для обработки вектор весов W размерностью Линейная часть нейрона L выполняет скалярное умножение вектора S на вектор весов W.
Нелинейная часть нейрона A представляет собой кусочно-линейную активационную функцию. Универсальное описание кусочно-линейной активационной функции требует задания двух пар параметров (Tmin_in,Tmin_out) и (Tmax_in, Tmax-out).
Активационная функция этого типа с рис.2.2 a, описывается парой (Tmin,Tmin) и (Tmax,Tmax), а с рис.2.2 b - (Tmin,0) и (Tmax,1).
Нелинейный компонент нейрона может иметь сложную структуру, включающую в себя элемент, выполняющий последовательно несколько преобразований, описываемых линейно-кусочными преобразованиями с разными параметрами.
Обработка изображения однослойным нейроноподобным фильтром границ со структурой, представленной на рис. 2.1, состоит из Ny *Nx однотипных преобразований элементов исходного изображения.
Параметрами обработки являются: вектор весов W линейной части и параметры активационной функции нелинейной части.
распараллеливания и в пределе обеспечивает возможность использования Ny*Nx нейроноподобных структур. В этом случае ее быстродействие будет максимальным, что, однако, потребует запредельно большого количества аппаратных ресурсов. Минимального количества ресурсов потребует последовательная поэлементная обработка матрицы описания исходного изображения.
С практической точки зрения интерес представляет комбинированный подход, базирующийся на параллельно-последовательной реализации обработки. В этом случае реализуется нейронноподобная структура, осуществляющих описанное преобразование.
Общая схема метода Синтез детектора подразумевает выбор структуры нейронной сети, выбор типов используемых активационных функции, определение конкретных значений весов и порогов активационных функций.
Предлагаемый метод синтеза шумоустойчивых детекторов границ базируется на использовании нейросети прямого распространения (персептрона) с кусочно-линейными активационными функциями. При этом сеть может иметь несколько слоев нейронов.
персептрона) рассмотрим на примере однослойной сети. Ее обучение содержит два ключевых этапа: определение весов и определение порогов активационной функции.
Наиболее популярный метод определения значений весов для персептрона является использование методики “Обучение через показ”.
Применительно к рассматриваемой задаче это подразумевает использование набора обучающих примеров, представляющих собой пары: матрица изображения - матрица краев. При этом могут использоваться как фрагментах одного изображения, так и несколько изображений. Для решения этой задачи представляется целесообразным использование одношаговой процедуры обучения, использование которой для ряда задач описано в работах [4],[5],[6].
Общая схема применения этой процедуры не меняется, но ее применение для синтеза имеет ряд особенностей.
Рис.2.3. иллюстрирует процесс формирования исходной системы линейных уравнений, используемой для определения вектора весов W. С помощью матрицы изображений формируется матрица показаний сенсоров S. У этой матрицы количество строк, равно количеству элементов матрицы описания исходного изображения или его фрагмента Ny*Nx. Количеством столбцов N*N +1 зависит от размерности маски фильтра N и учитывает наличие постоянной составляющей. Порядок заполнения столбцов матрицы зависит от принятого способа упорядочения компонент матрицы фильтра.
С помощью матрицы краев формируется вектор F, значения которого зависят от принятого способа представления краев изображения.
Таким образом, система уравнений, используемую для определения вектора весов W нейрофильтра имеет вид Размерность вектора W равна количеству столбцов в матрице S, а именно, N*N+1. Матрица S прямоугольная и количество строк в ней существенно превышает количество столбцов, соответственно, система (2.1) переопределена.
Соответственно, задача определения вектора W формулируется в виде задачи минимизации евклидовой нормы невязки Универсальное решение, подразумевает необходимость использование регуляризации получающейся системы уравнений [7],[8].
минимальной нормой вектора W за счет поиска согласованного минимума по W нормы невязки для системы уравнений 2.1 и минимума нормы вектора W, который входит в результирующий функционал с весом µ, называемым регуляризирующим коэффициентом.
Несколько забегая вперед, следует отметить, что с практической точки зрения, формулировка задачи обучения в таком виде означает возможность использования одинаковых фрагментов изображений без риска получить вырожденную систему уравнений.
С использованием скалярного произведения задача (2.3) записывается в виде Решение задачи (2.4) представляет решение системы уравнений с квадратной матрицей размерности N*N+ где S’ представляет собой транспонированную матрицу S, Eединичная квадратная матрица размерности N*N+1.
Соответственно, выражение для коэффициентов обученной по одной паре изображений нейронной сети выражается в виде Как следует из процедуры построения матрицы S и вектора F возможно как разбиение исходного изображения на фрагменты, так и использование нескольких пар обучающих примеров. В этом случае S и F представляют собой матрицу и вектор, сформированные из матриц и векторов, соответствующих каждой паре обучающих примеров. Размерность матрицы линейных уравнений (2.5) от этого не увеличивается, но при этом соответствующим образом возрастает количество строк в матрице S и, аналогично, размерность вектора Представление (2.7) является иллюстрацией для двух пар обучающих примеров (S1,F1) и (S2,F2) Используя представление (2.7) рассмотрим перспективный подхода к обучению, связанный с последовательным использованием пар обучающих примеров.
Пусть нейронная сеть обучена с использованием пары (S1,F1), и в этом случае в соответствии с формулой (2.6) значение вектора весов будет равно В случае использования двух пар обучающих образцов (S1,F1) и (S2,F2) с учетом представления вектор весов в соответствии с формулой (2.6) записывается в виде Представление (2.9) естественным образом обобщается на случай k обучающих пар. При этом возможно дальнейшее обобщение. Введем матрицу SE и вектор FE накопленного опыта, зависящий от количества пар, использованных для обучения Представляется важным подчеркнуть, что размерность матрицы накопленного опыты будет равна (Nsen+1)*(Nsen+1), а вектора накопленного опыта (Nsen+1).
В этих обозначениях значение вектора весов при использовании k пар образцов для обучения принимает вид С теоретической точки зрения это означает, что вся информация о (k-1) паре обучающих образцов сконцентрирована в матрице и векторе опыта. C практической точки зрения это означает, что при условии сохранения матрицы и вектора накопленного опыта, дообучение нейронной сети (нейрофильтра) может быть реализовано очень экономичным образом.
Синтез линейной части Стандартный подход к обучению нейронных сетей включает в себя выбор весов путем использования обучающих примеров и оценки качества сети на тестовом изображении.
В качестве содержательного примера в дальнейшем изложении будет использован фильтр 5*5, соответственно N=5, а количество коэффициентов линейной части фильтра составляет 26.
Для его обучения и тестирования использовались синтезированные изображения представленные на рис 2.4.-2.5.
a) исходное изображение b) зашумленное изображение с) края изображения На рис 2.4. показаны использованные обучающие примеры S1 и S2.
Для формирования обучающих примеров были сгенерированы два исходных изображения размерностью 100*100, представленные в колонке a).
Зашумленные изображения из колонки b) получались путем наложения случайного шума заданной интенсивности на исходные изображения.
Изображения краев из колонки с) формировались путем обработки исходного изображения. При этом имелась возможность управлять шириной формируемой границы – 1 или более элементов.
Размерность матриц S1 и S2 Nsam* (N*N+1). При этом количество строк Nsam зависит от размерности маски фильтра N из-за необходимости учета особенностей граничных элементов, но для рассматриваемого случая несколько меньше 10 000. Естественно, что вектора F1 и F2 будут иметь такую же размерность. Таким образом, значения весов выбирались по количеству обучающих примеров числом около 20 000, обученные по образцам с рисунка 2.1.
Таблица 2.1 – Линейная часть помехоустойчивого детектора границ Результаты тестирования однослойного нейрофильтра границ c использованием нейродетекторов H51 и Н52 представлены на рис. 2.6 и 2.7.
При этом использовалась активационная функция представленная на 2.2 а) для которой были назначены пороги Tmax=255 и Tmin= 30. Выбор значения верхнего порога 255 является естественным при использовании яркостной компоненты для формирования изображения. Нижний порог на первом этапе выбирался путем визуального сравнения качества фильтрации тестового изображения.
Следует отметить, что сравнение рис. 2.6 b) и 2.7 b) демонстрирует эффект улучшения качества детектирования границ, что выражается в наличии меньшего количества появления ложных границ на туловище собаки.
предлагаемого подхода к синтезу нейродетекторов границ.
Во-первых, результаты обработки синтезированным нейродетектором исходного и зашумленного изображения могут быть использованы для его переобучения. В этом случае, пара изображений 2.5 b) и 2.6 a) или 2.7 a) могут быть использованы, как образец S1. Эта же пара может быть использована для дообучения в виде нового образца S3.
Во-вторых, эта же пара или пары, образованные путем фильтрации зашумленных изображений 2.4. b) и изображений 2.4 с) могут быть использованы для обучения второго слоя нейродектора. Для этих же целей могут быть использованы и пара S3.По сути дела этот подход обеспечивает возможность синтеза многослойных нейродетекторов.
использование реальных изображений с искусственно нанесенным шумом и этих же чистых изображений, обработанных эвристическими алгоритмами целесообразным особо выделить это направление исследований, назвав его “Задачей копирования эвристик”.
помехоустойчивых детекторов границ. Ее практическая реализация требует введения нормы, позволяющей оценивать разницу между изображениями.
В теории защиты информации используется термин атака. Наложение Соответственно, наличие нормы, позволяющей оценивать разность между исходным и зашумленным изображением, позволяет количественно оценить “свирепость” атаки. Качество обучения и качество синтезированного фильтра с помощью такой нормы оцениваются, как разность изображений краев, использованных при обучении, и изображений краев, получаемых с помощью синтезированного нейрофильтра.
Как показал выполненный анализ в следующем разделе магистерской диссертации, при апробации методики синтеза на реальных изображениях, для этого хорошо подходит норма L1:
В таком варианте норма представляет собой средний уровень разницы, приведенный к количеству пиксел в изображении, что представляется естественным отобразить в обозначении этой нормы, являющейся сокращением L1 per pixel. На рис. 2.6-2.7 приведена оценка свирепости атаки, выполненная с помощью этой нормы.
Рис. 2.6 – Детектирование краев чистого и зашумленного изображения однослойнымнейродетекторомH Рис. 2.7 – Детектирование краев чистого и зашумленного тестового изображения однослойнымbнейродетекторомH Выбор порогов активационной функции компоненту, естественным является выбор для максимального порога максимально возможного значения 255.
Анализ графика L1PP, как функции от нижнего порога, позволяет рациональным образом выбирать нижний порог. Для каждой точки графика требуется обработать зашумленное изображение синтезируемым фильтром с задаваемыми порогами и рассчитать для него норму L1PP по отношению к изображению краев, использованному при обучении. На рис. 2.8 приведен результаты оценки качества фильтрации с помощью нормы L1PP, как функции от значения нижнего порога активационной функции.
Рис. 2.8 – Оценка качества фильтрации с помощью нормы L1PP Зашумленные изображения прямоугольников из обучающего примера S1 обрабатывались с помощью фильтров H51 (кривая RF1) и фильтра H (кривая КА2) с разными нижними порогами. На рис 2.8. представлены графики L1PP (Tmin) для этих изображений и изображения краев прямоугольников, использованных при обучении линейной части детектора.
Анализ этих данных позволяет сделать ряд практически значимых выводов.
Значение нижнего порога активационной функции существенным образом влияет на качество детектора границ. Эти графики имеют плато для значения L1PP 3 в диапазоне значений нижнего порога 30-50. При этом детектор границ H52, обученный с помощью двух наборов S1 и S2 при обработке зашумленного изображения из примера S1 дает в этом интервале несколько худшие значение, чем детектор, обученный только с помощью примера S1. В интервале 30-40 оба детектора обеспечивают приблизительно одинаковое качество.
Следует, однако, обратить внимание, что использование нормы L1PP, не отменяет необходимости визуального анализа качества детектора с использованием тестового изображения.
Как следует из рис. 2.8 значения L1PP для значений нижнего порога 30-40-50 активационной функции отличаются незначительно. С другой стороны, как это следует из рис. 2.7 и рис 2.9 детектор H52+A(255/50) работает значительно хуже по сравнению с детекторами H52+A(255/30) и H52+A(255/40). В частности его применение приводит к существенному увеличению ошибок, связанных с пропуском реально существующих краевых точек, вплоть до пропуска существенных фрагментов. Например, на изображении с рис 2.9. b) у собаки отсутствует глаз.
Рис. 2.9 – Детектирование границ зашумленного тестового изображения однослойным Улучшение качества детектора может потребовать введение дополнительных слоев. Представляется важным подчеркнуть, что с этой точки зрения предлагаемый метод синтеза универсален и применяется аналогичным образом к выбору параметров второго слоя. Для синтеза может быть использован обучающий пример, состоящий из изображения краев, являющегося результатом обработки однослойным детектором границ, и изображением краев из обучающего примера, использованного на первом этапе.
Возможен и более радикальный подход к использованию полученных на первом этапе результатов. В качестве обучающего примера для второго слоя можно использовать пару, состоящую из зашумленного тестового изображения и изображения краев, получаемые посредством применения однослойного детектора к чистому тестовому изображению. В качестве иллюстрации укажем, что может быть использована пара с рис. 2.6 a) и с рис. 2.5. b.
Симметричные детекторы границ Предлагаемый подход обучению линейной компоненты нейрона имеет универсальный характер. Этот подход использовался в численных экспериментах с виртуальным мобильным роботом SOFA-2009 [6]. Эти эксперименты позволили обнаружить наличие эффекта асимметрии обучения нейронных сетей, описанного в работе [7].
Применительно к задаче синтеза детектора границ с локальной зоной, имеющей форму квадрата, естественным требованием является обеспечение симметрии коэффициентов, под которым понимается равенство весов для сенсоров, расположенных симметрично относительно осей квадрата. Это требование обеспечивает эквивалентность процедуры обработки одного и того же изображения при его повороте.
С точки зрения реализации для обработки показаний сенсоров, формирующих соответствующие симметричные подмножества, их значения следует просуммировать, и далее умножить на соответствующий вес.
Соответственно, сенсоры детектора такого типа будут иметь сложную структуру. Их использование приводит к радикальному уменьшение числа свободных параметров, которое можно использовать при синтезе детектора.
Рис. 2.10 иллюстрирует вариант формирования сенсоров детектора, размерностью 5*5. На этом рисунке приведена дисциплина упорядочения пикселей исходной локальной зоны и их сборка в группы для сенсоров симметричного детектора. В несимметричном варианте детектор границ имеет 26 свободных параметров (5*5+1), в симметричном варианте это число уменьшается до 7 (6+1).
Рис. 2.10 – Структура сенсоров симметричного детектора 5* Для синтеза детектора границ с составными сенсорами процедура синтеза (обучения) линейной части, описанная выше, не требует модификации. Естественно, что при этом меняется схема формирования матрицы S.
В работе [6] предложен способ симметризации коэффициентов за счет применения метода Лагранжа, обеспечивающего возможность поиска c помощью одношаговой процедуры обучении решений (вектора весов W), коэффициенты симметричного детектора границ, полученные с помощью этого способа.
Следует указать, что асимметричность линейной части детектора может служить оценкой качества набора обучающих примеров. Из этого следует необходимость иметь в арсенале разработчика набор подходов, обеспечивающих синтез как симметричных, так и несимметричных детекторов.
детектора границ с использованием реальных изображений с В ходе исследования возможностей методики синтеза нейроподобных помехоустойчивых детекторов границ на реальных изображениях было выявлено, что в случае некорректного представления изображения с выделенными границами, которое хотим получить после обучения, алгоритм обучения показывает удивительную устойчивость.
Ниже на рис. 2.11(а) приведено реальное изображение, сделанное цифровым фотоаппаратом на фоне стены.
а – исходное изображение; б –изображение, которое хотим получить (ширина выделенной границы – 1 пиксель, выделение производилось в Paint.NET стандартным В программе Paint.NET производилось выделение границы, на изображении, шириной в 1 пиксель, но в виду особенности данной программы были задеты соседние пиксели, что видно из рис.2.12.
Рис. 2.12 – Матричное представление изображения, которое хотим получить (с После обнаружения неточности в изображении, была проведена его бинаризация. Все значения, что меньше 255 приравняли к нулю и сравнили правильность проведенной ранее границы при помощи Mathcad (рис.2.13).
Поскольку границы выделялись в программе Paint.NET примитивом «прямоугольник», а на реальном изображении заметно, что прямоугольник не имеет ровной формы, поэтому некоторая часть границы выделилась нормально, а часть сместилась в пределах от -2 до +2 пикселей, в некоторых местах от -1 до +1 пикселя.
Проведя обучение по данному некорректному изображению было выявлено, что нейроподобный детектор границ начал пытаться сглаживать неровности границ (выпрямлять их). Ниже на рис. 2.14 приведен результат обработки рис. 2.12(а) нейроподобным помехоустойчивым детектором границ обученным по некорректному изображению.
Рис. 2.13– Сравнение правильности проведенной границы в Mathcad Рис. 2.14– Результат обработки рис.1(а) нейроподобным помехоустойчивым детектором границ, обученным по некорректному изображению, пороговое значение равно 20.
На рис. 2.15 показаны несимметричные весовые коэффициенты полученные в ходе обучения нейроподобного помехоустойчивого детектора границ на некорректном изображении с выделенными границами.
Рис. 2.15 – Несимметричные весовые коэффициенты, полученные в ходе обучения на Из рис. 2.15 был сделан вывод: если те элементы несимметричной матрицы весовых коэффициентов, которые в последующем будут симметризованы, отличаются друг от друга на несколько порядков – обучение происходило на изображении с некорректно выделенными границами.
Поскольку при обучении на изображении с корректно выделенными границами элементы несимметричной матрицы весовых коэффициентов в тех местах, где они должны быть симметричными не отличаются друг от друга больше чем на один порядок.
помехоустойчивого детектора границ на реальных изображениях с симметризованными весами.
На рис. 2.16 показан пример (кисть с шириной – 2 пикселя), который базируется на выделении границы вручную, то есть карандашем/кистью в программе Paint.net. За основу взяли рис. 2.11 (а).
Рис. 2.16– Пример обработки реального изображения нейродетектором а – изображение, которое хотим получить; б - нейроподобный детектор с рассчитанным График нормы L1 имеет вид:
Рис. 2.17– График нормы L1, полученный при сравнении рис. 2.16 (а) и 2.16 (б) Симметризованние веса для данного примера представлены на рис.2.18:
Рис. 2.18 – Симметризованные веса, которыми обрабатывался рис. 2.16 (б) На рис. 2.19 приведен пример обработки реального изображения симметричными весами (рис. 2.18):
Рис. 2.19 – Пример обработки другого реального изображения нейродетектором а – изображение, которое хотим получить; б - нейроподобный детектор с рассчитанным помехоустойчивого детектора границ на двух изображениях: прямоугольник и круг.
Рис. 2.20– Пример обработки реального изображения м несколькими объектами а – исходное изображение; б - изображение, которое хотим получить (ширина кисти – пикселя, выделялось вручную); в - нейроподобный фильтр с рассчитанным пороговым График нормы L1 имеет вид:
Рис. 2.21– График нормы L1, полученный при сравнении рис.2.20(б) и 2.20 (в) Симметризованние веса для данного примера представлены на рис.2.22:
Рис. 2.22 – Симметризованные веса, которыми обрабатывался рис. 2.20 (в) На рис. 2.23 приведен пример обработки классического тестового изображения – «Фотограф», нейроподобным помехоустойчивым детектором границ с полученными симметризованными весовыми коэффициентами (рис. 2.22) и пороговым значением равным 90.
Рис. 2.23 – Пример обработки тестового изображения «фотограф» нейродетектором с а – исходное изображение; б – нейроподобный помехоустойчивый детектор границ с Разработка архитектуры нейроподобного помехоустойчивого детектора границ Выбор базовой технологии для реализации нейроконтроллера Практически с момента своего появления FPGA позиционировались как устройства, превосходящие сигнальные процессоры по соотношению производительность/цена. В то же время известно, что программируемые микросхемы не могут конкурировать с ASIC по цене и тактовой частоте. В чем же заключается преимущество ПЛИС и какие факторы являются при этом определяющими [22]?
На рис.3.1. проиллюстрированы различия между сигнальным процессором и FPGA при выполнении операции цифровой фильтрации.
Рис.3.1– Выполнение цифровой фильтрации в сигнальном процессоре и На этом рисунке видно, что, хотя сигнальный процессор, созданный по сопоставимой технологии, в среднем обладает более высокой тактовой частотой, единственный поток исполнения команд обуславливает резкое уменьшение общего числа операций (если под «операцией» понимать всю последовательность умножений и сложений, требующуюся для реализации всего фильтра или иного алгоритма). Несмотря на то, что некоторые сигнальные процессоры допускают выполнение 2 или 4 операций «умножения с накоплением» одновременно, для фильтров высокого порядка общее падение частоты оказывается достаточно существенным. В то же время FPGA вполне могут обеспечить однотактное исполнение всех операций, используя параллельный расчет. Этому способствует, очевидно, наличие большого числа блоков DSP, выполняющих умножение с накоплением. Нетрудно заметить, что для эффективного использования этого преимущества следует ориентироваться на алгоритмы и методы, подразумевающие распараллеливание операций — фильтры высоких порядков, быстрое преобразование Фурье, вейвлет-анализ и т. п.
Кроме того, важным преимуществом FPGA является их способность обеспечивать не просто высокую скорость обработки, но еще и непрерывную обработку и стабильную скорость. Дело в том, что понятие «пиковая производительность» приобретает несколько разный оттенок при использовании сигнальных процессоров и FPGA. В случае с сигнальным процессором тактовая частота, показанная на рис. как 1 ГГц, достаточно условно соответствует количеству операций непосредственно с фильтром. В программе процессора могут быть предусмотрены и другие действия, например обработка прерываний. Кроме того, при соответствующем построении системы пиковая скорость может упасть из-за промаха кэша и множества других факторов. Иными словами, понятие «пиковая производительность» имеет статистический характер, а реальное значение производительности может меняться не только в зависимости от выбранного алгоритма, но еще и в процессе работы программы при возникновении соответствующих условий.
В то же время для FPGA термин «максимальная тактовая частота»
относится к наиболее выгодным условиям трассировки кристалла — все соединения выполнены с использованием коротких цепей, связанные программируемые ячейки расположены рядом, максимальная длина цепей ускоренного переноса ограничена (то есть максимальная разрядность счетчиков невелика — например для Virtex-4 допускается 14-разрядный счетчик). Неудачная трассировка соответственно снижает допустимую тактовую частоту, однако весьма важно то, что после завершения проектирования она остается постоянной! Разумеется, и в проекте на базе FPGA тоже можно использовать внешнюю память, которая внесет проблемы с дополнительными тактами ожидания, как и в сигнальном процессоре, однако наличие скоростных синхронных ресурсов и достаточного количества блочной памяти существенно облегчает построение стандартных узлов цифровой обработки сигналов. Кроме того, что также важно, в FPGA тоже можно реализовать процессоры, однако через этот процессор совершенно необязательно пропускать весь поток обрабатываемых данных. Более того, рекомендуется реализовывать высокопроизводительную цифровую обработку с использованием ресурсов DSP, работающих без непосредственного и постоянного контроля процессора. Процессорное ядро может выполнять организацию интерфейса, настройку, мониторинг, загрузку коэффициентов и прочие операции, реализовывать которые аппаратно чересчур сложно. При этом единственное процессорное ядро может обеспечивать управление несколькими сотнями DSP-блоков ПЛИС, которые постоянно выполняют обработку входящего потока даже без участия процессора.
достижимой сложности для нейроподобного помехоустойчивого детектора границ Отдельно следует рассмотреть возможность создания параллельных вычислителей (в том числе и нейро) на базе ПЛИС (программируемых логических интегральных схем). На ПЛИС можно реализовывать системы, как второго, так и третьего типа, также в последнее время широко распространены гибридные нейровычислители, когда блок обработки данных реализуется на DSP, а логика управления на ПЛИС. В настоящее время множество фирм в мире занимается разработкой и выпуском различных ПЛИС, однако, лидерство делят две фирмы Xilinx и ALTERA. Выделить продукцию какой-либо одной из этих фирм невозможно, так как по техническим характеристикам они различаются очень мало.
У каждой фирмы производителя каждая серия содержит от одного до нескольких семейств, в свою очередь состоящих из ряда кристаллов различной ёмкости, быстродействия, типов корпуса.
Реализация нейровычислителей на основе ПЛИС требует участия эксперта на топологической стадии проектирования. Это обусловлено тем, что автоматизированный режим разводки пока не позволяет достигать 60-100% использования ресурсов кристала по разводке, а это является принципиальным для сильно связанных схем, к которым относятся и нейросетевые вычислители.
Характеристики ПЛИС с точки зрения реализации нейросетевых парадигм представлены в таблице 4 [11].
помехоустойчивого детектора границ производится из расчета необходимого числа блоков DSP для реализации одного нейроподобного фильтра. В случае размерности 3х3+1 – это 22 блока DPSдля фирмы Altera, 5х5+1 – 54 блока DSP той же фирмы производителя.
Исходя из этих данный, для современных ПЛИС фирмы Altera,имеется возможность делать расчеты о количестве нейроподобных фильтров, которые возможно реализовать на выбранном ПЛИС данной фирмы.
Таблица 3.1 – Особенности реализации нейровычислителей на ПЛИС.
№ Тип ПЛИС Производитель Сложность кристалла, макроячеек (CLB) Разработка структурно-функциональной схемы Обобщенная структура нейроконтроллера Нейроконтроллер состоит из двух видеокамер (стерео-зрение), платы с ПЛИС (Altera,Xilinx), ПК - в качестве вычислительного ресурса и учителя контроллера.
Первостепенной задачей считается подавление шума и выделение границ, с возможностью последующего анализа видеоизображения:
вычисление расстояния до объекта, определение характеристик объекта.
Невозможно сделать один нейроподобный помехоустойчивый детектор видеоизображении, поскольку шумы бывают различными. Значит, должно быть некоторое количество нейроподобных помехоустойчивых детекторов границ, обученных на устранение каждого из них. Что же касается самого нейроподобного помехоустойчивого детектора границ, то он двухслойный.
Первый слой решает задачу выделения границ на зашумленном видеоизображении, а второй устраняет оставшиеся шумы, после обработки видеоизображения первым слоем. Или наоборот – первый слой устраняет шумы, а второй выделяет границы. Предстоит еще определиться какой из подходов лучше.
В соответствии с этим разумно разделить нейроконтроллер на две части:
Аналитическая часть должна принимать решение о перенаправлении видеопотока в решающую часть, на выбранный ей нейроподобный фильтр.
Обучение нейроподобного фильтра происходит на компьютере, после чего по интерфейсу JTAG UART весовые коэффициенты передаются в нейроконтроллер.
видеоизображения на ПК (вычислительный ресурс), где производится последующая обработка видеоизображения. В более сложных системах предполагается, что в сети будет N-ое количество нейроконтроллеров.
Структурная схема нейроконтроллера представлена ниже:
Рис. 3.2– Структурная схема нейроконтроллера На рисунка буквами обозначены следующие компоненты:
А – видеокамеры;
В – аналитическая часть на ПЛИС;
Г – решающая часть на ПЛИС;
Е – сеть Ethernet;
Ж – персональный компьютер.
На рис. 3.3. приведена структурная схема аналитической и решающей части нейроконтроллера. Видно, что аналитическая часть решает задачу: на какой из нейроподобных помехоустойчивых детекторов границ подать входной видеопоток. Стоит отметить, что количество нейроподобных помехоустойчивых детекторов границ в решающей части зависит от возможностей ПЛИС, а именно от количество DSP блоков.
На рис. 3.4. приведена структурная схема нейросети на основе нескольких нейроконтроллеров.
Рис. 3.3– Структурная схема аналитической и решающей Рис. 3.4 – Структурная схема нейросети на основе нескольких Структура «решающей части» на ПЛИС Проблема реализации «решающей части» на ПЛИС заключается в ответе на ряд вопросов:
возможно реализовать на ПЛИС. Размерность нейродетектора обусловлена тем, что алгоритм обучения обработки изображений нейродетектором с такой размерностью (3х3+1 или 5х5+1) успешно реализован и продемонстрировал свою устойчивость в Mathcad и Matlab при моделировании;
помехоустойчивом детекторе границ (предположительно два три);
реализации «решающей части» заданной структуры.
Ответы на данные вопросы приведут к выбору семейства ПЛИС. На первых этапах рекомендуется взять лучшие семейства ПЛИС на данный фирм производителей.
Структурная схема «решающей части» представлена на рис. 3.5. Блок конфигурационных регистров необходим для следующих задач:
нейроподобным помехоустойчивым детектором границ разной нейроподобном помехоустойчивом детекторе границ.
При помощи конфигурационных регистров имеется возможность задавать значения весовых коэффициентов нейроподобных помехоустойчивых детектор границ, их пороговые значения (функцию активации).
Рис. 3.5– Структурная схема «решающей части»
Количество конфигурационных регистров напрямую зависит от сложности структуры «решающей части» нейроконтроллера.
Предполагается, что изначально имеется некоторое количество нейроподобных помехоустойчивых детекторов границ с разной размерностью и разным количеством слоев (максимально три) в «решающей части». Управляя содержимым конфигурационных регистров можно задавать «решающей части» нейроконтроллера, какой нейроподобный помехоустойчивый детектор границ будет в данный момент обрабатывать входной видеопоток, какова его размерность (5х5+1 или 3х3+1), сколько слоев, количество нейроподобных помехоустойчивых детекторов границ обрабатывающих входной видеопоток.
Конфигурация нейроконтроллера. Протокол обмена между «учителем» и макетом Форматы сетевых кадров В качестве протокола обмена между ПК и ПЛИС выбран протокол ASKBus [23]. Данной протокол был многократно применен при реализации распределенных систем встраиваемого класса. Продемонстрировал полноту функциональных возможностей и гибкость при изменении варианта применения таких систем.
Обмен может происходить кадрами переменной длины 16-255 (и более) байтов. Формат кадра схематично изображен на следующем рисунке.
Далее приводится назначение и описание полей кадра с учетом применения для конфигурации нейроподобного помехоустойчивого детектора границ.
Данное поле определяет назначение кадра:
00h – «пустой кадр», не обрабатывается ни одним узлом. Может использоваться для заполнения пауз между информационными обменами, в режиме отладки и т.п.;
01h – сброс адреса узла, обрабатывается всеми узлами независимо от содержания остальных полей и приводит к аннулированию текущего адреса узла;
02h – запрос идентификационного номера узла с аннулированным адресом;
03h – присвоение адреса узлу с указанным идентификационным номером;
помехоустойчивого детектора границ;
помехоустойчивого детектора границ;
07h – FFh – зарезервированы.
Serial number (SN) – 4 байтов Данное поле содержит серийный номер узла на стадии инициализации сети и соответственно серийный номер узла с которым идет обмен.
SN = |SN0|SN1|SN2|SN3|, где SN0-SN3 – 4-х байтовый серийный номер узла.
Содержит статус выполнения команды:
00h – команда выполнена успешно;
01h – нет выполняемых команд;
02h – ошибка при обмене кадрами;
03h – FFh – зарезервированы.
Neuron Type (NT) – 1байт помехоустойчивого детектора границ, которая может быть 3х3+1 или 5х5+1:
00h – размерность 3х3+1;
01h – размерность 5х5+1;
02h – FFh – зарезервированы.
NumberNeuron (NN) – 1 байт помехоустойчивых детекторов границ, которые будут обрабатывать входной видеопоток.
NumberLayer’s (NL) – 2 байта помехоустойчивом детекторе границ. Первый байт определяет номер детектора, а второй количество слоев в нем.
Данное поле содержит весовые коэффициенты нейроподобного помехоустойчивого детектора границ, на один отводится по 2 байта, а также пороговое значение для каждого из них. Минимальный размер поля – байт, при случае одного детектора размерностью 3х3+1. Длина поля вычисляется по предварительно полученным полям NN и NT, их перемножением. Один байт после серии значений весовых коэффициентов отводится для порогового значения.
Допустим, если задано 3 нейроподобных детекторов, размерностью 5х5+1, то после принятия значений весовых коэффициентов первого детектора (52 байта) в следующем байте будет храниться его пороговое значение, после чего принимаем весовые коэффициенты для второго детектора и так далее.
CheckSum (CS) – 4 байта Контрольная сумма кадра. Используется для проверки правильности принятого кадра и содержит сумму предыдущих байтов.
Типы кадров Тип 0 – «пустой» кадр FT = 0, SN =XXXX, S = X, NT= X, NN= X, NL= X, Data = X. Кадр не требует никакой обработки узлом.
Тип 1 – сброс адреса узла получении такого кадра узел должен аннулировать свой сетевой адрес.
Тип 2 – запрос идентификационного номера узла с аннулированным адресом FT = 2, SN =XXXX, S = X, NT= X, NN= X, NL= X, получении такого кадра узел, не имеющий сетевого адреса должен ответить кадром следующего вида:
FT = 4, SN =XXXX, S = 0, NT= X, NN= X, NL= X,Data = SN0|SN1|SN2|SN3|, где SN0-SN3 – 4-х байтовый серийный номер узла Тип 3 – присвоение адреса узлу FT = 3, SN/NA = SN0|SN1|SN2|SN3, S = X, NT= X, NN= X, NL= X, Data = X.
Тип 4 – конфигурация нейроподобного помехоустойчивого детектора границ FT = 6, SN =ХXXX, S = X, NT= X, NN= X, NL= X, Data = X. При получении такого кадра узел начнет перенастройку конфигурационных регистров нейроподобного помехоустойчивого детектора границ.
Тип 4 – сброс текущих настроек FT = 7, SN =ХXXX, S = X, NT= X, NN= X, NL= X, Data = X. При получении такого кадра узел сбросит текущие настройки на настройки по умолчанию.
Передача сжатого кадра на «вычислительный ресурс»
После обработки изображения нейродетектором изображение становится дискретным, с двумя возможными значениями: 0 и 255. Поэтому естественным образом оно может быть преобразовано в матрицу двоичных значений (см. рис. 3.7). Таким образом, фактически осуществляется сжатие информации без потерь в восемь раз.
Рис. 3.7 – Сжатие кадра видеопотока для передачи по Ethernet на «вычислительный ресурс»
В виду того, что в подобных полученных матрицах всегда присутствуют длинные серии из нулей и единиц, то чрезвычайно эффективным в таком случае является применение известных алгоритмов сжатия информации, многократно сокращающих требуемую пропускную способность канала для передачи.
нейроподобного помехоустойчивого детектора границ Для реализации нейроподобного помехоустойчивого детектора границ была выбрана САПР QuartusII, фирмы Altera, с входящими в ее состав Altera SOPC Builder и NIOSII.
Для решения данной задачи рассмотрены две платы: Altera University Development and Education Boards DE2-115и Atlys Spartan-6 FPGA Development Kit (Xilinx).
САПР QuartusII Quartus II - средство проектирования устройств с высокой степенью программируемом кристалле (System-on-a-programmable-chip (SOPC)). [12] Программное обеспечение Quartus II предоставляет полный цикл для создания высокопроизводительных систем на кристалле. Quartus II объединяет в себе проектирование, синтез, размещение элементов, трассировку соединений и верификацию, связь с системами проектирования других производителей.
Разработка систем на кристалле требует от разработчиков эффективной командной работы. Изменения в одной части проекта должно иметь минимальное влияние на других членов команды. Программное обеспечение Quartus II - это наиболее комплексная среда для разработки систем на кристалле SOPC, доступная в настоящее время. Quartus II включает в себя блочный метод разработки LogicLock.
LogicLock - это блочная методология проектирования, доступная исключительно в программном обеспечении Quartus II. Quartus II совместно с LogicLock - единственное программное обеспечение для разработки устройств на основе программируемой логики, которое включает в себя блочную методологию проектирования как стандартную функцию. Это помогает увеличить эффективность работы разработчиков, снизить время проектирования и верификации. LogicLock позволяет проектировать и проверять каждый модуль отдельно. Разработчики могут объединять готовые модули в проект верхнего уровня, сохраняя производительность каждого модуля в процессе объединения. LogikLock снижает время разработки и верификации, поскольку каждый модуль оптимизируется только один раз.
AlteraSOPCBuilder SOPC Builder - системный инструмент интеграции, разработанный Altera, предназначенный для генерации шины Avalon. SOPC Builder генерирует системный модуль, который представляет собой схему внутри кристалла, он включает в себя шину Avalon, внешние устройства типа мастер, и подчиненные внешние устройства. SOPC Builder имеет графический интерфейс пользователя для добавления необходимых устройств как мастер так и подчиненных внешних устройств к системному модулю, конфигурирование внешних устройств, и, затем, конфигурирование шины Avalon так, чтобы объединить вместе все внешние устройства. На осуществляют все или часть проекта пользователя в PLD [14].
САПР SOPC Builder от компании Altera позволяет автоматизировать процесс интеграции аппаратных компонентов в более крупную систему. [13] Обычно разработчикам приходится вручную описывать верхний уровень проекта, соединяя вместе все части системы. Применяя SOPC Builder, с помощью графического интерфейса можно описать элементы системы, а программное средство разработки автоматически сгенерирует связующую логику. Оно создаст HDL-файлы, описывающие элементы системы так же, как и HDL-описание верхнего уровня проекта, соединяющего все компоненты.
После моделирования и верификации видеоканалов утилита Signal Compiler, входящая в состав пакета DSP Builder, позволяет автоматически получить элемент SOPC всего видеоканала. В состав этого SOPC-элемента входит и интерфейс Avalon Streaming Interfaces, обеспечивающий соединение с любым другим SOPC-элементом, использующим ту же системную шину.
Встраиваемый процессор Nios II Семейство программных процессоров Nios® II - это второе поколение встраиваемых процессоров общего назначения с перестраиваемой конфигурацией. Эти процессоры используются в ПЛИС Altera семейств Cyclone, Arria, Stratix и HardCopy. Системы на базе Nios II обеспечивают исключительную гибкость, позволяя программно создавать и использовать процессоры, соответствующие потребностям встраиваемой системы.
Встраиваемое ядро процессора Nios - конвейерный RISC процессор, в котором команды выполняются за один цикл частоты синхронизации.
Altera University Development and Education Boards Altera DE2- Altera ® DE2-115 University Development and Education Boards разработана профессорами, для профессоров. Это идеальное средство для изучения цифровой логики, компьютерной организации и FPGA.Благодаря использования в лабораториях университетов и колледжей. Она подходит для широкого спектра упражнений по курсу цифровой логики и компьютерной организации, от простых задач, которые иллюстрируют основные концепции, до новых разработок[15].
Рис.4.1 – University Development and Education Boards Altera DE2- Серия DE2 включает в себя большое количество интерфейсов для применения в различныхобластях.DE2-115 предлагает оптимальный баланс:
низкая стоимость, низкое энергопотребление, большое число элементов логики, памяти и DSP [16].
На DE2-115 установлен CycloneEP4CE115. Он включает в себя следующие функции:114 480логических элементов(LE), крупнейший в серииCycloneIVE,до3,9Мбит объем оперативной памяти, и 266умножителей 528 пользовательских ввода / вывода.
DE2-115 имеет сходные черты с выпущенными ранее платами серииDE2,в первую очередьDE2-70, а также дополнительные интерфейсы для поддержки основных протоколов, включая Gigabit Ethernet (GbE). HSMC разъем предназначен для поддержки дополнительных функций и подключение через него дочерних (дополнительных) плат и кабелей.
Отличительные особенности [17]:
50 МГц тактовый генератор, 2 разъема SMA для входа/ выхода тактовой частоты;
2 МБайт SRAM, 2x64 МБайт SDRAM, 8 МБайт Flash, разъем для SD карт;
4 кнопки,18 микропереключателей;
18 красных и 9 зеленых пользовательских светодиодов, ЖКИ 16x2;
линейного входа/ выхода и микрофонного входа;
трехканальный ЦАП) с выходным VGA разъемом. TV декодер (NTSC/ PAL/ SECAM) и разъем TV входа;
2 Gigabit Ethernet PHY с разъемом RJ45;
USB Host/ Slave контроллер с разъемами USB type A и type Приемопередатчик RS-232 с 9-контактным разъемом, разъем PS/ 2 мыши/ клавиатуры, ИК приемник для ДУ;
40-контактный разъем расширения с диодной защитой.
Разъем для подключения мезонинных модулей (HSMC).
Комплектация DE2-115:
USB кабель для программирования и управления FPGA;
Системный CD, содержащий документацию на DE2-115 и материалы технической поддержки разработок;
Комплект CD, содержащий ознакомительные версии ПО Altera’s QuartusII WebEdition и NiosII Embedded Design Suit;
Пакет с 6 резиновыми (силиконовыми) колпачками для стоек платы DE2-115;
Прозрачная пластмассовая защитная пластина для платы;
Пульт дистанционного управления.
Дочерние платы, подключаемые через HSMC:
CyclonIV приемопередатчиками и низким энергопотреблением [17].
Cyclone IV предназначен для рынка серийных изделий, где необходима низкая стоимость решений, при этом позволяя разработчикам значительно увеличить полосу пропускания не увеличивая затрат.
Изготовленное по оптимизированной по потреблению технологии, семейство Сyclone IV представлено в 2-мя вариантами:
CycloneIV GX, со встроенными приемопередатчиками поддерживающие скорость до 3,125 Гбит/с;
обеспечения более низкого потребления Обеспечивая низкое потребления и стоимость, не жертвуя при этом приемопередатчики, CycloneIV является идеальным для применений в высокоскоростная проводная передача, индустриальные и пользовательские решения и конечно телекоммуникация.
Основные преимущества семейства Cyclone IV:
1. Потребляемая мощность 3. Производительность 4. Надежность встроенные умножители. Рисунок 4.2показывает один изстолбцов встроенных умножителей с окружающими их блоками логических массивов (LABs) [18]. Встроенный умножитель настроен на перемножение одной пары18 18, или двух пар9 9. Для умножения, которое превышает Quartus II генерирует каскад из нескольких встроенных блоков умножения.
Нет ограничений на ширину шины данных множителя, но чем она больше, перемножаться как положительные, так и отрицательные числа.
Рис. 4.2–Встроенные умножители расположены в столбцах с прилегающими Каждый встроенный умножитель состоит из следующих элементов:
На рисунке 4.3 приведена архитектура блока умножителя.
Конфигурация умножителя В зависимости от ширины данных один встроенный умножитель может выполнять одно или два умножения параллельно.
Каждый множитель (число)может быть представлен со знаком (+/-) или без знакачисла (+). Singa и signb – управляющие сигналы на входе умножителя. Их состояние определяет, является ли значение (множитель) со знакомили без знака. Если сигнал singa высокий (состояние логической 1), данные операнда представлены со знаком. Если сигнал singa низкий (состояние логического 0), данные операнда представлены без знака.
Входные регистры Можно послать любой входной сигнал множителя на входной регистр или непосредственно в мультипликатор (9 -или 18-битный), в зависимости от режима работы умножителя. Имеется возможность отправить значение множителя (dataA) в регистр и отправить значение данных (dataB) прямо на умножитель.
Следующие сигналы управления доступны для каждого входного регистра встроенного умножителя:
На все входные и выходные регистры в одном встроенном умножителе подается один и тот же синхросигнал, стробирующий сигнал и сигнал асинхронного сброса.
Выходные регистры Выходное значение встроенного умножителя может подаваться на выходной регистр или на18 –или 36-разрядную шину напрямую, в зависимости от режима работы умножителя.
Следующие сигналы управления доступны для каждого выходного регистра встроенного умножителя:
Atlys Spartan-6 FPGA Development Kit Плата Atlys является завершенной, готовой к использованию цифровой платформой для разработок, основанных на базе Xilinx Spartan-6 LX45 FPGA, класс скорости – 3. Наличие на плате FPGA, большого набора периферийных устройств высокого уровня, таких как: Gbit Ethernet, HDMI контроллер, память типа DDR2 (128 Мб, с длинной слова бит), разъемы аудио и USB, делают плату Atlys идеальным управляющим устройством для широкого ряда цифровых систем, включая разработку процессоров основанную на ядре MicroBlaze фирмы Xilinx. Плата Atlys совместима с САПР Xilinx (ChipScope, EDK, WebPack и др.) следовательно, разработка целого ряда устройств на ее основе не требует дополнительных денежных затрат. Ниже представлена плата разработчика Atlys Spartan-6[19].
Рис. 4.4–Atlys Spartan-6 FPGA Development Kit Плата Atlys также включает в себя новую периферийную систему фирмы Digilent, Adept USB2. Даная система предназначена для программирования FPGA, проверки питающих напряжений, автоматическое тестирование платы и осуществления упрощенной передачи пользовательских данных. На рис. 4.5 приведена структурная схема платы.
Рис. 4.5 – Структурная схема платы Atlys Характеристики FPGA серии Spartan 6 LX45, фирмы Xilinx, BGA корпус, 324 вывода;
DDR2 память, объемом 128 Мбайт, с длинной слова 16 бит;
10/100/1000 Ethernet (протокол физического уровня );
2 порта USB для программирования и обмена данными Встроенный USB-UART мост, и USB-HID порт (для “мышки” и клавиатуры);
Контроль питания в режиме реального времени для всех питающих напряжений;
16Мбайт x 4 SPI Flash память для конфигурирования и хранения данных;
48 выводов разведены на внешние разъемы ;
GPIO включает в себя 6 кнопок, 8 светодиодов и переключателей.
Основные особенности семейства Spartan-6[20]: