О.А. Гудаев
РАСПОЗНАВАНИЕ МАРКЕРОВ РАСШИРЕННОЙ РЕАЛЬНОСТИ ARGET РОБОТОТЕХНИЧЕСКОЙ СИСТЕМОЙ
Современные мобильные роботы оборудованы развитой сенсорной системой. Сенсорная система играет главную роль в очувствлении робота. Она применяется в системах передвижения робота, обеспечивая навигацию в пространстве. В мобильных роботах применяется сенсорная система сверхдальнего действия. В стационарных роботах она применяется при работе с подвижными объектами, чтобы заранее предвидеть их появление в рабочей зоне [1, с.85]. При создании сенсорной системы роботов наиболее широкое применение получила теория технического зрения. Развитие систем технического зрения стало одним из определяющих направлений современной робототехники [1, с.14].
Универсальность теории технического зрения сенсорных систем роботов позволило использовать её в смежных областях, например, для передачи цифровых данных печатными носителями, для построения интеллектуального пользовательского интерфейса [2]. Разработанная система специальных обозначений узлов производственного пространства помогает мобильному роботу осуществлять на -вигацию и выбирать объекты. Система специальных обозначений - это искусственный графический язык. Единицей языка является плоское графическое изображение - маркер. Формальная модель языка называется планарной системой маркеров. В трехмерном пространстве планарный маркер определяет положение плоскости его изображения относительно центра проецирования. Смысловой нагрузкой маркера является передача оптическим путём номера компьютерного объекта (тега). Назначение тега устанавливается компьютерной программной робота или фиксировано в спецификации. Другим свойством маркера является передача оптическим путём некоторого объёма информации, в зависимости от размера тезауруса, когда несколько маркеров, размещенных рядом, кодируют сообщение по правилу FEC (forward error correction). Двойственность природы маркера используется при построении модулей робототехнической системы: навигации и коммуникации. Маркер показывает положение в пространстве камеры и кодирует, графическим способом, сообщение. Развитие систем технического зрения по части навигации нашло новое применение при построении пользовательских интерфейсов расширенной реальности [3].
Для привязки на местности координат геометрической компьютерной 3D-модели к реальному пространству система расширенной реальности AR (Augmented Reality) использует планарную систему маркеров. Совмещая видеоизображение с компьютерной 3D-сценой, AR-система предоставляет пользователю оригинальный интерфейс получения информации. Проблема быстроты и надежности распознавания мобильной системой технического зрения множества маркеров предопределило развитие теории графических AR-кодов. Робототехнические системы используют традиционные маркеры исключительно для навигации в замкнутых помещениях, а проектирование мобильных AR-систем порождает всё большее появление новых способов графического кодирования исключительно небольшой порции данных.
Таким образом, существующие мобильные AR-системы не могут принимать большие сообщения, не могут использовать большие размеченные карты местности для навигации, а в робототехнических системах для навигации достаточно использовать стандартные маркеры. Поэтому маркеры ARGET удовлетворяют трем требования к характеристике оптического кода: аппаратная реализуемость на мо-
бильных устройствах, надежность передачи больших сообщений и быстрота алгоритма распознавания [3]. Указанные характеристики ARGET позволяют создавать геоинформационные системы навигации на базе AR-интерфейса, а для робототехнических систем открывают новую область применения как графического языка роботов.
Математическая модель
Существующие графические языки передачи сообщений на материальных носителях: Data Matrix, Maxicode, QR, Intersense, ARSTudio, ARToolkit, ARTag [4] -это планарные изображения, нанесенные печатным способом. Маркеры ARSTudio, ARToolkit, ARTag используются для построения систем расширенной реальности.
На практике изображение маркера ARTag может быть повернуто на 90, 180 и 270 градусов, что приводит к уменьшению метрики кода (значения расстояния Хемминга) до 2, когда нельзя исправить ни одной ошибки. Поэтому синтезированные символы маркера ARTag по алгоритму ECC сортируют по убыванию метрики и составляют тезаурус эталонов. Фактически, прибегая к схеме кодирования таблицей.
Будем строить код ARGET (Augmented Reality Graphic Entity Telecommute) похожим на код ARTag, но учитывая логическую модель сегментации и распознавания графических образов [5, с.423].
Цифровое представление графического образа маркера ARGET - это битовая карта. Битональное планарное изображение маркера можно представить матрицей А, размером M x N:
i,i
a
2,1
1,2
a
2,2
1,N -1 a2, N -1
1,N
a
2, N
M -1,1 M -1,2 - M - 1,N -1 M - 1,N
a, , , a. , „ ... a. , ,. . a.
(1)
M ,1 M ,2 - M, N -1 M, N
Выражение (1) можно представить в виде вектора Vx , где индекс x получается из индексов матрицы A по формуле
x = i *(M -1) + j,i = 1N, j = 1M. (2)
Тогда по формуле (2) из элементов матрицы А можно составить вектор vx = atj, є A, x = 1, kx, kx = N ■ M . Вектор Vkx - это бинарное число, которое можно представить целым числом i. Пусть будем строить планарную систему маркеров ARGET для M=N=6 (см. рис.1). Тогда, индекс x пробегает значения от 0 до 36, и имеем интервал целого числа i: 0 < 2к £ 68 млрд.
1 2 3 4 5 Є
ы
Рис.1. Маркер ARGET 6x6
Все маркеры синтезируемого тезауруса ARGET содержат единицы на постоянных местах в матрице A - это множество фиксированных точек образа F, что
помогает в эффективной сегментации изображения. При построении маркера ARGET размером M=N=5 использовался алгоритм фрактального размножения [3] с одним фиксированным элементом F = {а11). В результате синтеза получился маркер с пустым столбцом (см. рис.2). Неоднозначность размера приведенного маркера делало невозможным сегментацию изображения при масштабировании.
1 2 Э 4 5
Р
Рис. 2. Маркер 5x5
Для синтеза маркеров всегда прямоугольной формы и заданного размера достаточно сделать фиксированным левый верхний угол матрицы A и правый нижний угол. Тогда получим F = {au, aNM }. Маркер ARTag для распознавания перспективно трансформированного сегмента содержит рамку цвета объекта, а маркер ARGET для сегментации может использовать характеристику в виде учета множества F. Окончательно примем решение, что для учета линейной трансформации плоскости изображения маркера (см. рис.3) достаточно разместить фиксированные точки по углам изображения образа F = {a11, aNM, aN1, a1M } (см. рис.4).
Рис. 3. Перспективное преобразо- Рис. 4. Фиксированные точки маркера помо-вание плоскости изображения гают определить параметры камеры
Ключевой характеристикой маркера ARGET является фиксированное значение количества единиц в коде - Ncell. Одинаковое для всех маркеров количество элементов матрицы A, равных единицы, позволяет использовать в алгоритме распознавания правило успешности преобразования растрового образа к цифровому представлению, используя метод порогового разделения на объект и фон. Изменяя значение порога, алгоритм распознавания проверяет успешность преобразования, сравнивая сумму единиц кода с фиксированным Ncell.
Маркер, содержащий нулевые строки или столбцы, не может быть выделен на растровом изображении в виде сегмента пространственным методом, потому что две части одного сегмента воспринимаются как разные образы. Поэтому маркеры ARTag содержат рамку и используют частотные методы компьютерной обработки изображения. Частотные методы требуют значительных вычислительных ресурсов. По сравнению с ARTag маркеры ARGET могут быть избавлены от нулевых строк или столбцов. Достаточно придерживаться правила синтеза маркера: в окрестности Мура для элемента матрицы atJ, равного 1, всегда должен быть хотя бы один сосед, равный 1. Обозначив предикат равенства двух термов Rv, имеем
"aij$sghSosed(a v,sgh) & Rv(atj,1)& Rv(sgh,1),ay e A,sgh e Sa,S с A . (3)
Множество S соседей элемента aH определяется из его конфигурации про-
У
странственного размещения в матрице A. Рассмотрим формирование множества S на примере ARGET 6x6.
Для угловых ячеек
ai1 • S = {a21, ai2, a22 }’ ai6 • S = {ai5 , a25 , a26 }, a61 • S = {a51, a52 , a62 } ’ a66 • S = {a55 , a56 , a65 } .
По сторонам:
a1 j : S = {a1 j-1 = a J+1, a 2 J-1, a2 j , a 2 j+1 }, N, < <
a6 J : S = {a6 j-1 , a6 J+1 , a5 J-1 , a5 J , a5 J+1 } N, < <
ai1: S= {a i—1,1 , ai+1,1, aг-1,2, aг,2, a+1,2 } 1 <г<m ,
ai 6 : S = {ai-1,6 , ai+1,6 , a г-1,5 ,a ,5 , a+1,5} ,1<г<m .
Окрестность Мура
a j : S = {?,■-!, j-1 , a г-l,] , a г-1,]+1, aг,]-1 , a i,j+1 , a M,j-1 , ^+1, j , aMj+1 }> 1 < U j < 6 •
Общий вид математической модели маркера ARGET :
Marker: Nceü, F, "а. 3^ Sosed(ay., shs )& Rv(ay.,1) & Rv(shs ,1) >.
Математическая модель маркера размером 6x6:
<IHlM , kx=36, Ncell =22, F = {al1, aNM , aN1, a1M } Z SOSed () =Nce« >•
Синтез маркера
Используя полный перебор значений целого числа i в интервалах, где i содержит в бинарном коде единицы на местах из множества F, проверяем на соответствие элементов матрицы A правилу соседства по формуле (3). Для проверки соседства введем вспомогательную матрицу коэффициентов U, размерность которой NxM. Коэффициент и. принимает значение 1, если элемент a.. имеет хотя бы
У У
одного единичного соседа. На первом шаге коэффициент углового элемента a11 равен единице, так как элемент входит в множество F, а все остальные принимают значение ноль:
u01 = 1; и 0 = 0, 1 < г < M, 1 < j < N, (г ^ 1) & ( j ^ 1).
Выполнив Ncell итераций, осуществим передачу сигнала "кто твой сосед", пересчитав значение коэффициентов по формуле
ui = vk;1 & ahS J ahS е S(a.)1 < k < Nceii, 1 <г <M, 1 <j < N • Далее, получим сумму элементов матрицы A, имеющих соседей:
N ,M
Nlinks = Z j1 & a V •
<=1,j=1
В маркере должно быть Nl nks связанных соседей, число которых должно равняться Ncell. Логическая схема принятия решения о связанности всех ячеек маркера ARGET между собой приведена на рис. 5.
Рис. 5. Логическая схема проверки соседства ячеек в маркере
Основываясь на логической схеме соседства (см. рис. 5) и математической модели ARGET, разработаем быстрый алгоритм синтеза маркера:
N
cell :
g0
gn
g1
=22; // Фиксированное количество единичных ячеек в маркере
=34 35 97 38368;// Пропустить половину интервала чисел - 34 млрд. =68719476736;// Граница окончания цикла - это 236=69 млрд. =1073741824; // Пропускать числа из интервала g1 i:=g0 + g1; // Целочисленное представление образа маркера
ni:=ROUND(g0/(2*g1)); // Количество интервалов 2*g1 for j:=1 to ni do begin for k:=1 to g1 do begin
if (((i shr 5) and 1)=1) and
((i and 1)=1) then begin // Учесть единицу в двух углах
V-
1 :
V„
=i and 1; // Циклическим сдвигом вправо получить вектор
g
i shr g ) and 1; // 1 < g < N • M - 1
// Количество единиц в образе маркера
Kg+1 :
36
п = £ V
g=1
if n= Ncell then // Если в образе 22 единицы продолжить
// Увеличение быстродействия алгоритма:
// проверяем есть ли соседи у угловых ячеек if ((v2 or v7 or v8)=1) and ((v5 or v11 or v12)=1) and ((v32 or v25 or v26)=1) and ((v35 or v29 or v30)=1) then begin
// Проверка условия связности ячеек маркера
if N = N
if 1 y links iy cell
then Образ синтезирован ARGET 6x6();
end; end;
inc(i); end; i:=i+g1;
end;
Несколько графических образов, синтезированных алгоритмом ARGET, приведены на рис. 6. Маркеры подписаны целым числом i, бинарное представление которого соответствует черно-белому изображению.
иыымиун
35721117695 35724664S31 35727073535 357270S1251 35739396013 35744871423 35747503359
иынымны
33749232539 33730064Ш 33764403699 33764713437 33765353045 33766720127 33767414439
Рис. 6. Образы синтезированных маркеров
Проведем статистический анализ генерации маркеров. За 3.5 часа на Pentium 4 2.6 ГГц алгоритм синтеза проверил 4 млрд. целых чисел, содержащих в своём бинарном представлении единицы на фиксированных местах из множества F. Было получено распределение маркеров в зависимости от суммы единиц в коде (см. табл. 1).
По результатам компьютерного эксперимента для маркера размером 6x6 примем значение Ncell, равное 22. Алгоритм простого сравнения из 206 млн. маркеров
за 5 часов сформирует тезаурус из 1637 эталонов, различающихся между собой более чем на 9 ячеек. В создании планарных маркеров учитывается поворот образа на 90 180 и 270 градусов. Таким образом, после учета поворота метрика кода уменьшается. В табл. 2 приведен размер тезауруса в зависимости от расстояния Хемминга с учетом четырех позиций вращения изображения маркера. Тезаурусы табл. 2 формируются из 1637 маркеров базового тезауруса с метрикой кода 9.
Таблица распределения маркеров Тезаурусы ARGET, с учетом поворота
Таблица 1 Таблица 2
Ncell Количество маркеров без учета соседства Количество маркеров с учетом правила соседства
20 601 080 390 124 297 901
21 565 722 720 178 453 012
22 471 435 600 206 131 824
23 347 373 600 194 341 840
24 225 792 840 151 497 736
25 129 024 480 98 699 416
Метрика кода, H.D. Размер тезауруса
3, 4 1499
5, 6 1473
7, 8 597
9, 10 107
11, 12 3
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Юревич Е.И. Основы робототехники. 2-е изд., перераб. и доп. СПб.: БХВ-Петербург, 2005. 416 с.
2. Гудаев О.А. Проектирование интеллектуальных робототехнических систем с переключаемыми стратегиями автоматического доказательства теорем // Искусственный интеллект, 2005. № 2. С.82-95.
3. Гудаев О.А. Синтез и анализ предложений графического языка передачи сообщений в мобильных робототехнических системах с элементами расширенной реальности (ARGET) // Искусственный интеллект, 2006. №2. С.467-498.
4. Fiala Mark. ARTag Revision 1, A Fiducial Marker System Using Digital Techniques. Source: NRC/ERB-1117. November 24, 2004. 46 pages. NRC 47419. http://www.iit-iti.nrc-cnrc.gc.ca/iit-publications-iti/docs/NRC-47419.pdf
5. Форсайт Дэвид А., Понс Жан. Компьютерное зрение. Современный подход.: Пер. с англ. - М.: Издательский дом "Вильямс", 2004. - 928 с.