Необходимо построить СМУ, которое определяет положение движущегося объекта в поле зрения робота на каждом кадре изображения. Изображение, полученное с датчика, преобразуется в цифровую форму и представляется в виде матрицы размерностью М х N точек (M = N = 128). Каждая точка представляет собой яркость, которая закодирована 8 разрядами.
Размеры объекта mх n точек (m = n = 16). Положение объекта определяется путём нахождения координат точки, в которой принимает минимальное значение корреляционная функция Rисходного и эталонного изображения. Минимум функции Rищется на каждом кадре в поле Uразмерностью r х p (r = p = 5). Корреляционная функция для точки с координатами l, k в поле U вычисляется по формуле:
,где
¾ точки исходного изображения; ¾ точки изображения эталона.Начальное положение центра области U:
Хцн = М/2; Уцн = N/2.
Частота смены кадров ¾ 50 Гц.
Координаты объекта должны быть определены за время существования одного кадра.
На этом этапе необходимо разработать общий алгоритм функционирования системы технического зрения и её структурную схему.
Исходя из задания на проектирование системы технического зрения (СТЗ) должна выполнять следующие функции:
-преобразование аналогового сигнала, поступающего с датчика (Д) в цифровую форму;
-запоминание цифровых значений яркости точек в памяти;
-чтение цифровых значений яркостей точек в памяти;
-чтение цифровых значений яркостей точек исходного и эталонного изображений и вычисление функций корреляции;
-нахождение минимального значения функции корреляции в области U и выдача новых координат области V.
Преобразование аналогового сигнала и запись полученного цифрового значения должен осуществлять блок аналого-цифрового преобразователя (АЦП).
Для запоминания полученных цифровых значений яркостей точек необходимо оперативное запоминающее устройство изображения (ОЗУИ). Объём его определяется максимальными размерами представления изображения, то есть (M х N) 8 разрядных ячеек.
Требуемый объём ОЗУИ равен 16 Кбайт.
Для хранения эталона необходимо иметь постоянное ЗУ объёмом m х n байт (ПЗУ), т.е. 256 байта.
Чтение данных из ОЗУИ и ПЗУ, вычисление функций корреляции, нахождение минимального значения R и определение новых координат области U должно производиться вычислительным устройством (ВУ).
Для хранения новых координат необходимы два регистра РХ и РY. Запуск и останов ВУ производиться с пульта управления (ПУ). На рис. показана общая структура СТЗ.
Блок АЦП синхронно с частотой дискретизации осуществляет запись информации в ОЗУИ. По окончании записи одного кадра он выдаёт сигнал конца записи EW. ВУ опрашивает сигнал EWи, получив его, переходит на следующем кадре к вычислению функций корреляции и нахождению их минимума. Затем ВУ записывает в регистры PX и PYзначения найденных координат и переходит к опросу сигнала EW.
Рисунок 1 ¾ Общая структура СТЗ
Таким образом, доступ к ОЗУИ имеют поочерёдно блок АЦП (по записи) и ВУ (по чтению).
Организация блоков АЦП, ОЗУИ, ПЗУ трудности не представляет. Они выполняются по стандартным решениям. Остановимся на проектировании ВУ. Оно должно на каждом кадре осуществлять формирование координат точек области U, вычисление функций корреляции R в каждой из этих точек, для чего необходимо вычислять адреса точек исходного и эталонного изображений, находить минимальные значения функции корреляции и координат точки.
Внешний интерфейс ВУ:
D1¾ информационная шина с ОЗУИ;
D2¾ информационная шина с ПЗУ;
"Пуск", "Ост" ¾ линии для передачи сигналов "Пуск" и "Останов" с ПУ; EW¾ линия передачи сигнала EWс блока AЦП; Хцн, Yцн¾ шины ввода начальных координат; A1¾ шина адреса на ОЗУИ; A2¾ шина адреса на ПЗУ; X,Y¾ шины координат X и Y.
Определим внутренние запоминающие элементы: регистры Xц, Yц и Xт, Yт¾ для хранения координат соответственно центра и точек области U; X’т Y’т ¾ для хранения текущих координат точек "окна" вычисления функции R; AC¾ для формирования текущего значения функции R; Rmin¾ регистр минимального значения функции корреляции; m, n¾ для хранения размеров "окна"; r, p¾ для хранения размеров области U; Q¾ рабочий регистр; счётчики k, l¾ для организации циклов сканирования области U; i, j¾ для организации циклов сканирования "окна" вычисления функции R.
Так как m = n и r = p, то необходимо иметь только по одному регистру (m и r).
Определим разрядность регистров.
Все регистры координат имеют одну разрядность, определяемую как
. В данном случае разрядность должна быть равна 7. Так как организация микросхем такова, что разрядность кратна 2, выбираем разрядность регистров Xц, Yц, Xт, Yт, X’т, Y’т равной 8.Разрядность АС, Rmin определяется максимально возможным значением функции корреляции. Максимальное значение получается, если яркости всех точек в "окне" исходного изображения максимальны (
- 1), а яркости всех точек эталонов - минимальны (0).В этом случае максимальное значение равно
.Следовательно, необходимо иметь 14 разрядов. Принимаем разрядность регистров АС и Rminравной 1 Разрядность регистра Q может быть равна 8.
Количество разрядов регистров m, r и счётчиков k, l и i, j равно соответственно
и , т. е. четырём и трём.Шина A1 формируется из выходов регистров X’т и Y’т, а шина A2¾ из i и j. Алгоритм функционирования ВУ показан на рис. 2.
В зависимости от требований к аппаратурным затратам и быстродействию данный алгоритм может быть реализован различными способами. По аппаратурным затратам самой экономичной является реализация, при которой все операции над регистрами выполняются на одном блоке обработки.
Однако при этом все операции выполняются последовательно и значит, быстродействие самое низкое.
Самой быстродействующей является реализация, при которой все возможные для совмещения операции выполняются на своих блоках обработки.
Исходя из алгоритма, можно выделить следующие параллельно работающие блоки:
-арифметический (АР);
-формирование координаты Х адреса (АХ);
-формирование координаты Y адреса (AY);
-счётчиков (СК);
-управления (БУ).
Блоки АР, АХ, AY, СК образуют операционный блок. Структурная схема для такого разделения изображена на рис. 3.
Арифметический блок выполняет микрокоманды Y3, Y10, Y14, Y15, Y29, Y21.
Блок формирования координаты АХ выполняют микрокоманды Y1, Y4 , Y8, Y16, Y19, Y30,Y23, Y25.
Блок формирования координаты AY аналогичен блоку АХ и служит для выполнения микрокоманд Y2, Y5, Y9, Y18, Y22, Y2
Блок счётчиков служит для организации циклов и выполняет микрокоманды Y6, Y7, Y11, Y12, Y17, Y20, Y24, Y27.
Блок управления предназначен для формирования управляющих сигналов аi, подаваемых на все блоки, для организации условных и безусловных переходов. Условные переходы производятся по сигналам: внешних условий (Х1), арифметического блока (Х2), с блока счётчиков (Х3 - Х6).
Рисунок 2 ¾ Алгоритм функционирования ВУ
Рисунок 3 ¾ Структурная схема оптимальной реализации
На рис. 4. показан пример организации арифметического блока (М1 и М2¾ мультиплексоры; АЛУ ¾ арифметико-логическое устройство; ai¾ управляющие сигналы).
Рисунок 4 ¾ Организация арифметического блока
Блок управления может выдавать на каждый из блоков код микрокоманды, который с помощью дешифратора переводится в набор управляющих сигналов ai. Организация блока AX(AY) показана на рис. 5, а схема блока счётчиков на рис. Определим теперь для такой реализации время выполнения алгоритма, показанного на рис.2.
Т = [(((4m+3)n+6)r+3)p+4] tц,
где tц - время одного цикла.
Время цикла определяется временем прохождения сигналов по самому длинному пути среди всех блоков. В рассматриваемом устройстве таким путём является: чтение данных из ОЗУИ и ПЗУ, прохождение через мультиплексоры М1 и М2 арифметического блока, выполнение операции на АЛУ и запись в регистр Q.
Рисунок 5 ¾ Организация блока формирования координаты
В этом случае время цикла:
tц = tчт + tм + tАЛУ + tQ.
При построении устройства на элементах ТТЛШ логики может быть порядка 200 нс.