Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
45
Добавлен:
15.06.2014
Размер:
3.64 Mб
Скачать
    1. Топология печатной платы

Печатная плата устройства изготовлена по технологии 4 класса точности и имеет 6 слоев: 4 слоя – сигнальные (в т.ч. 2 внешних), 1 слой для обеспечения питающих напряжений, 1 слой для обеспечения «земли». Топология печатной платы представлена на электронном носителе.

Внешний вид платы с размещенными элементами представлен на рисунках 20 и 21.

Рисунок 19 Вид платы со стороны элементов (TOP VIEW)

Рисунок 20 Вид платы с обратной стороны (BOTTOM VIEW)

    1. Интеллектуальное программируемое ядро вычисления диспарантности

В ходе проекта разработано интеллектуальное IP ядро вычисления диспарантности для решения задачи стереозрения.

Поэтапная обработка видеосигнала может быть рассмотрена как последовательность следующих действий: аналого-цифровое преобразование сигнала видеодекодером, запись полученной информации в память устройства (видеозахват), построение эпиполярных линий, вычисление значений функционалов, вычисление координат соответствующих точек, передача информации устройству тестирования и управления через интерфейс USB шины (Рисунок 21).

Рисунок 21 Структурная схема комплекса вычисления диспарантности

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

На рисунке 22 показано, как оцифрованное при помощи OV5610 изображение поступает сначала в ОЗУ (производится видеозахват), а затем на блок обработки изображений – FPGA Altera Cyclone III. По управляющему сигналу, генерируемому FPGA, производится вычитывание поправок из памяти поправок. Таблица поправок, как и таблица удаления на бесконечность заносится при первичной погрузке платы в начале работы. При этом таблица поправок заполнена преобразованными результатами калибровки камер, причем исключительно вертикальными составляющими вектора искажений. Таблица удаления на бесконечность содержит в себе описанный ниже параметр удаления на бесконечность и горизонтальную составляющую вектора искажений. Полученный массив эпиполярных линий записывается в память промежуточных результатов.

На рисунке 24 показано, как построчно производится обработка массива эпиполярных линий. Из памяти промежуточных результатов производится вычитывание эпиполярных линий с учетом таблицы удаления на бесконечность (которая вычитывается также построчно). Внутри блока обработки изображений производится вычисление значений функционалов и их запись во внутреннюю память FPGA–FIFO.

Рисунок 22 Декодирование изображения, видеозахват, построение эпиполярных линий и запись результатов

Рисунок 23 Построчное вычитывание массива эпиполярных линий, таблицы удаления на бесконечность. Вычисление значений функционалов, запись значений во внутреннюю память

На рисунке 25 показан этап вычисления координат соответствующих точек с учетом таблицы удаления на бесконечность. Полученные координаты как конечный результат преобразований, передаются второй платформе FPGA, названной контроллером управления. Из нее значения записываются в ОЗУ результата, а затем с использованиемUSB– интерфейса передаются устройству тестирования и управления – компьютеру.

Рисунок 24 Вычисление координат соответствующих точек, запись результатов и организация взаимодействия с компьютером

Рассмотрим более подробно этап вычисления координат соответствующих точек. Логическая структура блока, реализующего вычисления, приведена на рисунке 26.

Рисунок 25 Структурная схема блока вычисления координат соответствующих точек

Блоки FIFO_FINC_L,FIFO_FUNC_R,FIFO_FAR– элементы памяти, где данные хранятся в конвейерном виде («первый на вход – первый на выход»). В них содержатся соответственно левая, правая строки и строка поправок, соответствующая данным строкам изображения.

Размерность данных изображения – 216, размерность данных таблицы поправок – 210.

Блок DIFF_CALC_MASHявляется машиной состояний, которая регулирует порядок поступления данных на блок вычислителяPARAL_COMP. СигналPH2_STпоступает каждый раз в начале обсчета новой строки и является сигналом начала второй части фазы вычислений (первой фазой является вычисление значений функционалов). Он генерируется по окончании предыдущей фазы.

Сигналом RD_ разрешается считывание значений из одноименного блока памяти.

Внутри машины состояний производится выбор из нескольких ситуаций. Первой ситуацией является состояние, при котором поправка XCOORбольше единицы. Этому состоянию соответствует положение, при котором (для базового левого кадра) пропускаются пиксели левого кадра, а номер рабочего пикселя правого остается прежним. На каждом шаге производится понижение значенияXCOORна единицу, пока оно не достигает второго состояния. Второе состояние – величина поправкиXCOORравна единице. При этом считываются значения из конвейеров обоих изображений и очередного значения из конвейера поправок. Если значениеXCOORравно нулю, то пропускаются значения номеров пикселей с правого изображения, остается прежним номер рабочего пикселя левого изображения.

На рисунках 27 и 28 показаны соответственно левое (L) и правое (R) изображения и некоторые характерные величины. Так называемая поправка на бесконечность обозначенаn. Она присутствует слева на левом изображении и справа на правом и обратно пропорциональна максимуму разрешения по глубине камер. Если максимально удаленный распознаваемый образ – бесконечность, то величинаnравна нулю, поскольку не существует объектов, заведомо не попадающих в зону видимости обеих камер. Также эта величина зависит от ориентации камер друг относительно друга: базы и угла поворота оптических осей. В нашем примере камеры базируются параллельно, а величина максимального разрешения и стереобазы таковы, то значениеnпринимается равным 26 пикселям.

Величина пространства поиска соответствующих точек обозначена d. Это длина заполняемого конвейера, в котором собственно производится поиск. Для данной реализации она равна 32 пикселям.Roобозначает рабочую область кадров. Она является разностью между номинальным размером кадра в пикселях и поправки на бесконечность и длины заполняемого конвейера. В нашем случае она равна (768 – 32 – 26) = 710 пикселей.XRиXLобозначают положение интересующего объекта на правом и левом изображении. Очевидно, что на левом изображении приближенный объект будет находиться всегда правее относительно фона, чем на правом; на правом изображении приближенный объект будет всегда находиться левее относительно фона, чем на левом.

Рисунок 26 Положение объекта и фона на левом изображении

Рисунок 27 Положение объекта и фона на правом изображении

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

Поэтому в таблицу поправок для левого кадра в начало вносится не величина n, а величинаn+d. После того, как будет выбрана точка с координатойn+d+1, начинается заполнение конвейера для правого кадра на величинуd. Затем производится поиск точки, соответствующей выбранной на левом кадре, и последовательный перебор всех следующих точек рабочей области обоих кадров с пошаговым сдвигом конвейера. Когда на левом кадре выбирается конечная точка (в нашем случае – точка с координатой 768), на правом кадре будет выбрана точка с координатой наnпунктов меньшей, что соответствует наличию симметричной поправки на бесконечность на правой стороне правого изображения.

При обратном прохождении целесообразно искать соответствующую точку с правого на левом изображении исключительно правее значения ее координаты на правом изображении, массив поиска весь должен состоять из точек с координатами, большими собственной координаты искомой точки. Поэтому сначала производится пропуск точек, соответствующих поправке на бесконечность, на левом кадре и заполнение конвейера пикселями левого кадра. Для этого в таблицу поправок для правого изображения вносится величина n. Таким образом, пропускаются первыеnточек, а затем (сn+1-й точки) производится заполнение массива длинойdуже в теле самого алгоритма.

Интеллектуальное программируемое ядро детекции направленного движения.

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

Рисунок 28 Структура алгоритма формирования разностных кадров

Низкочастотный фильтр реализует следующую математическую функцию:

, где:

- постоянная времени,

- период формирования кадров.

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

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

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

В каждый конкретный момент времени память SDRAMможет работать только в режиме записи или только в режиме чтения. Поэтому для возможности аппаратной реализации в реальном времени, алгоритм имеет две фазы, показанные на рисунках 30 и 31.

Рисунок 29 Фаза 1 алгоритма аппаратной реализации фильтра

Частота смена фаз равна частоте захвата кадров. Фазы отличаются тем, что памяти SDRAM0 иSDRAM1 меняются местами для чтения и записи. То есть, если результат фильтрации одного кадра находится в памятиSDRAM1, результат фильтрации следующего кадра будет находиться в памятиSDRAM0.

Рисунок 30 Фаза 2 алгоритма аппаратной реализации фильтра

В общем случае алгоритм аппаратной фильтрации выглядит следующим образом. Изображение, полученное с датчика, поступает на вход фильтра. В этот же момент времени на вход фильтра поступает результат предыдущей фильтрации. Фильтр работает с изображениями попискельно, последовательно суммируя с весами компоненты (пиксели) изображения. Результат фильтрации записывается в память SDRAM.

Соседние файлы в папке Материалы студентам для практики