Определение пространственной ориентации объекта, маркированного QR кодом

  • Вид работы:
    Дипломная (ВКР)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    831,16 Кб
  • Опубликовано:
    2014-04-12
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Определение пространственной ориентации объекта, маркированного QR кодом

Санкт-Петербургский ГосУдарственный политехнический университет

ИНСТИТУТ МЕТАЛУРГИИ, МАШИНОСТРОЕНИЯ И ТРАНСПОРТА

ОТДЕЛЕНИЕ ТЕХНОЛОГИЙ МАШИНОСТРОЕНИЯ

Кафедра «Мехатроника и роботостроение» (при ЦНИИ РТК)







ВЫПУСКНАЯ РАБОТА БАКАЛАВРА

Тема: Определение пространственной ориентации объекта, маркированного QR кодом

Направление: 220200.62.01 «Автоматизация и управление»










Санкт-Петербург, 2013

Реферат

КОД, КАМЕРА, ОБНАРУЖЕНИЕ И РАСПОЗНАВАНИЕ МЕТКИ, ПРОСТРАНСТВЕННАЯ ОРИЕНТАЦИЯ QR КОДА, РАЗРАБОТКА АЛГОРИТМОВ

Целью этой работы является разработка приложения для обнаружения, расшифровки и определения положения QR кода в пространстве.

С помощью библиотеки OpenCV реализовано обнаружение и обработка QR кода. На основе спецификации ISO/IEC 18004 Information technology - Automatic identification and data capture techniques - Bar code symbology - QR Code (Информационная технология - Автоматическая идентификация и сбор данных - Символика штрихового кода - QR Код) изучен и программно реализован алгоритм расшифровки QR кода. Разработан алгоритм определения положения QR кода в системе координат, связанной с камерой.

Данное приложение может быть использования для нахождения определенного объекта среди объектов, на которых нанесен QR код и позиционирования манипулятора с использованием данных об ориентации плоскости QR кода.

Содержание

Введение

. Алгоритмы распознавания графического маркера

.1 Алгоритм обнаружения QR кода

.2 Алгоритм расшифровки QR кода

. Методы 3D реконструкции

.1 Метод триангуляции

.2 Стереозрение

.3 Определение ориентации плоскости QR кода относительно камеры

. Программное обеспечение для распознавания QR кода и определения его ориентации

.1 Описание программы

.2 Тестирование программы

. Применение разработанного программного обеспечения

Заключение

Список использованных источников

Перечень условных обозначений, терминов и сокращений

3D

-

трехмерное пространство или изображение

2D

-

двумерное изображение

ПЗС

-

прибор зарядовой связи

QR


quick response (быстрый отклик)


Введение

код плоскость программный обеспечение

В настоящее время для маркировки различной продукции всё чаще используется QR код. Данную особенность можно использовать для создания автоматических систем обнаружения, захвата и транспортировки этой продукции на основе обработки информации, зашифрованной в QR коде и информации об ориентации кода в пространстве.

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

Эти коды представляют собой миниатюрные носители данных, которые хранят текстовую информацию объемом в половину страницы А4 формата. При помощи белых и черных квадратов эти данные кодируются. Тогда как расшифровка осуществляется посредством специальных сканирующих устройств. То есть используется тот же принцип, что и в компьютерной технике. Их объединяет следующее правило: определенному сочетанию квадратов соответствует конкретное значение (к примеру, число или буква).

Отметим, что QR-коды могут быть выполнены с использованием бинарных сочетаний цветов, отличных от сочетания «черный-белый». Главное, чтобы между темными и светлыми участками был четко выраженный контраст.

Основное достоинство QR-кода - это лёгкое распознавание сканирующим оборудованием (в том числе и фотокамерой мобильного телефона), что дает возможность использования в торговле, производстве, логистике. QR-коды больше всего распространены в Японии, стране, где штрих-коды пользовались такой большой популярностью, что объём информации, зашифрованной в коде, вскоре перестал устраивать индустрию.

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

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

В первом разделе описаны разработанные алгоритмы обнаружения и расшифровки QR кода.

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

В третьем разделе приведено описание разработанного программного обеспечения и показаны результаты его тестирования, а в четвертом рассказывается о возможности применения данного программного обеспечения для построения автоматизированных систем.

1. Алгоритмы распознавания графического маркера

.1 Алгоритм обнаружения QR кода

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

Рисунок 1 - Изначальное изображение

Ниже приведен алгоритм обнаружения QR кода, реализованный с помощью библиотек VideoInput и OpenCV. Идея данного алгоритма описывается в [1]. Данный алгоритм был нами модифицирован и дополнен деталями необходимыми для его практического использования.

В качестве технического средства была использована веб-камера Ritmix RVC-006M с матрицей 0,3 мегапикс, разрешением видео 640*480, подключенная через USB 2.0. А в качестве среды разработки была выбрана среда Visual Studio 2010, а в качестве языка программирования - C++ . такой выбор обусловлен тем, что на этом языке написана мощная профессиональная библиотека для реализации задач компьютерного зрения OpenCV. Также для осуществления захвата видео была использована библиотека videoInput.- Библиотека компьютерного зрения с открытым исходным кодом(Open Source Computer Vision Library), содержащая более 500 функций. До первой версии разработкой занималась русская команда Intel в Нижнем Новгороде. Библиотека содержит алгоритмы для обработки, реконструкции и очистки изображений, распознания образов, захвата видео, слежения за объектами, калибровки камер и др. [2].

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

Приложения должны быть переносимыми, оптимизированными, код которых не обязательно должен быть открытым. Приложения также могут создаваться в коммерческих целях. OpenCV поддерживает компиляторы Visual C++, Borland C++, Intel Compiler, MinGW, GCC, Intel Compiler, Carbon. В начале мы подключаемся к web камере с помощью библиотеки VideoInput и делаем снимок QR кода и далее начинаем обработку снимка (рисунок 5). Преобразуем полученное изображение в градации серого, делаем изображение двоичным с помощью порогового преобразования. Всем пикселям, значение которых меньше порога, присваиваем значение 255 - белый цвет, всем пикселям, значение которых выше порога присваиваем 0 - черный цвет. Для получения корректного результата нужно, чтобы снимок был достаточно контрастным. Таким образом, мы получаем черно-белое изображение.

Далее находим все контуры, которые присутствуют на черно-белой картинке. Теперь среди найденных контуров нам необходимо найти 3 мишени. Мишень - область QR кода образованная тремя вложенными квадратами с отношением сторон 7:5:3 (рисунок 2).

Рисунок 2 - Мишень QR кода

Считаем мишенью квадрат, имеющий внутри себя два вложенных квадрата (рисунок 3).

Рисунок 3 - Изображение с найденными мишенями

Для того чтобы найти мишени, нужно сначала отыскать среди контуров все квадраты, и потом для каждого квадрата проверить: есть ли в нем 2 вложенных квадрата.

В цикле обходим все контуры и ищем квадраты. Чтобы определить, что контур является квадратом, используем два критерия поиска: 1) мы найдем размеры минимального прямоугольника, охватывающего текущий контур и, перемножив размеры, получим площадь этого прямоугольника. Напрямую с помощью специальной функции OpenCV найдем площадь контура. Если площади контура и прямоугольника, ограничивающего контур, примерно совпадают, то можно считать этот контур прямоугольником;

) сравниваем высоту и ширину прямоугольника, ограничивающего контур. Если они примерно равны, то считаем это прямоугольник квадратом.

Определяем точки-вершины каждой мишени. Мы имеем все вершины QR кода кроме правой нижней. Для того, чтобы ее определить проведем прямые линии через правую сторону правой верхней мишени и нижнюю сторону левой нижней мишени. Точка пересечения данных прямых (точка А на рисунке 4) будет искомой нижней правой вершиной QR кода.

Рисунок 4 - Нахождение правой нижней вершины QR кода

Зная все четыре вершины QR кода, делим каждую его сторону на количество ячеек (маленьких квадратов) в строке/столбце и, используя полученную информацию, строим сетку, набор вертикальных и горизонтальных линий, разделяющих QR код на ячейки. Определяем цвет каждой ячейки и создаем массив ячеек, заполненный нулями и единицами, где единица соответствует черной ячейке, а нуль - белой.

.2 Алгоритм расшифровки QR кода

Полученный методами компьютерного зрения массив нулей и единиц будет расшифрован с помощью алгоритма, описанного в спецификации ISO/IEC 18004 Информационная технология - Автоматическая идентификация и сбор данных - Символика штрихового кода - QR Код [3]. Опишем данный алгоритм:

) получение массива "0" и "1" бит;

) считывание информации о формате QR кода. Извлечение информации о маске (рисунок 5);

Рисунок 5 - Состав QR кода

) считывание информации о версии (где применимо), а затем определение версии кода; 4) применение к каждой ячейки массива маски посредством исключающего или. Всего существует 8 видов масок, значения бит которых определяются по формулам (1) - (8);

(i + j) mod 2 = 0, (1)

(i)mod 2 = 0, (2)

(j)mod 3 = 0, (3)

(i + j) mod 3 = 0, (4)

((i div 2) + (j div 3)) mod 2 = 0, (5)

(i j) mod 2 + (i j) mod 3 = 0, (6)

((i j) mod 2 + (i j) mod 3) mod 2 = 0, (7)

((i j) mod 3 + (i+j) mod 2) mod 2 = 0, (8)

где i и j - номера ячеек.

Рисунок 6 - Виды масок

Применяем маску к полученному нами массиву посредством операции XOR (рисунок 7);

Рисунок 7 - Применение маски

5) определение режима кодирования и считывание кода в соответствии с правилами размещения и восстановление данных и кодовых слов в сообщении.

Узнаем индикатор режима по четырем битам в правом нижнем углу и соответствующий ему режим по таблице 1.

В данной работе мы реализуем два режима: числовой и 8-битный. Цифровой режим кодирует данные из десятичного набора цифр (0 - 9) (ASCII значения 30HEX к 39HEX) при нормальной плотности 3 символа данных на 10 бит. В 8-битный режиме кодируется 8-битный Latin/Kana набор символов в соответствии с JIS X 0201 (символьные значения 00hex к FFhex). В этом режиме плотность данных составляет 8 бит / символ;

) обнаружение ошибок с помощью коррекции ошибок кодовых слов. Если любая ошибка обнаружена, то исправить ее;

Таблица 1 - Режимы кодирования

Режим

индикатор

ECI

0111

Числовой

0001

Буквенно-цифровой

0010

8-битный

0100

Kanji

1000

Structured Append

0011

FNC1

0101

Разделитель

0000


) разделение кодовых слов данных на сегменты в зависимости от режима и показателями количество символов (рисунок 8).

Считывание происходит змейкой, начиная с правой нижней ячейки (рисунок 9). Старший значащий бит (бит 7) каждого кодового блока находится в первом доступном положении модуля;

Рисунок 8 - Сегменты с данными

Рисунок 9 - Считывание бит

) наконец, декодирование данных в соответствии с режимом.

2. Методы 3D реконструкции

.1 Метод триангуляции

Триангуляция - это способ измерения расстояний и определения положения объектов, часто с использованием лазера. Он использует способность лазерного луча распространяться в хорошо коллимированной форме (т.е. с малой расходимостью) на большие расстояния. Обычно лазерный луч освещает точку, расстояние до которой от лазерного устройства необходимо измерить; по существу, лазер используется в качестве указателя. Рассеянное или зеркальное отражения от этой точки контролируются детектором, который устанавливается на некотором расстоянии от лазерного луча, таком, что источник лазерного излучения, объекта и детектор образуют треугольник. На детекторе линза фокусирует отраженный свет на ПЗС-матрице, и положение яркого пятна на чипе показывает направление входящего света, т. е. угол между лазерным лучом и возвращенным светом, откуда расстояние и может быть рассчитано [4].

Высокая скорость обнаружения позволяет отслеживать положение движущейся или вибрирующей части, например, какой-либо машины. Полученная точность может, как правило, достигать одной тысячной доли расстояния. Для рассеянного отражения расстояние может быть ограничено требованием получить определённую отраженную оптическую мощность; при зеркальном отражении могут быть измерены гораздо большие расстояния, но требуется какое-либо угловое выравнивание в направлении измерения.

Принцип триангуляции также может быть реализован с помощью лазерного луча, в направлении которого производится быстрое сканирование в двух измерениях (рисунок 10). Таким образом, можно получить трехмерные (3D) изображения.

В идеале, лазерный источник для триангуляции должен иметь высокое качество пучка, чтобы осветить небольшое пятно на большом расстоянии. Так же требуется определенная оптическая мощность, особенно для целей с рассеянным отражением. Лучше использовать безопасные для глаз длины волны лазерного излучения (например, в 1,5 мкм области), хотя видимый луч помогает убедиться, что подсвечена правильная точка.

Триангуляционный метод измерения - это перспективный и широко применяемый подход к решению важных измерительных задач в разных областях науки. Этот метод в основном использовался в геодезии и картографии, и только с недавних пор стал развиваться в направлении линейно-угловых измерений и контроля точных деталей сложной формы. Связано данное обстоятельство в первую очередь с тем, что электронные компоненты необходимые для создания устройств на базе триангуляционного метода не соответствовали требованиям, предъявляемым к ним, и были невыгодны для внедрения в производство по соотношению цена-качество, но сейчас положение изменилось к лучшему. Метод оптической триангуляции положен в основу современных измерительных устройств, таких как триангуляционные щупы и датчики, лазерные 2D/3D профиломеры, лазерные 3D сканеры и другие.

 <#"722854.files/image011.jpg">

Рисунок 11 - Восстановление точки прообраза

Точку прообраза можно восстановить и с помощью альтернативного, чисто алгебраического подхода: для данных проекционных матриц М и М' и согласованных точек р и р' условия zp = MP и z'p' = MP можно переписать следующим образом: p*MP = 0, p`*M`P = 0.

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

Можно восстановить точку прообраза, соотнесенную с р и р', как точку Q с образами q и q' минимизировав величину d2(p,q) + d2(p'',q'). В отличие от двух других методов, представленных в этом разделе, данный подход не позволяет аналитически вычислить восстановленную точку.

2.3 Определение ориентации плоскости QR кода относительно камеры

Математическая модель камеры

С точкой О (рисунок 12), в которой находится камера, свяжем систему координат (X,Y,Z). Из этой точки опустим перпендикуляр на картинную плоскость. Точка пересечения перпендикуляра и картинной плоскости называется принципиальной точкой p. С этой точкой свяжем систему отсчета (x,y).

Рисунок 12 - Модель камеры

Системы координат (X,Y,Z) и (x,y) связаны нелинейным преобразованием (формулы (9) и (10)).

 (9)

 (10)

Свяжем систему координат (u,v) с левым верхним углом. Отсчет в этой системе происходит в пикселях (рисунок 13). Принципиальная точка имеет координаты p=(0,0) в системе (x,y); координаты (0,0,Z) в системе (X,Y,Z) и координаты (Cx,Cy) в системе (u,v).

Рисунок 13 - Система координат (u, v)

Системы координат (u,v) и (x,y) связаны аффинными преобразованиями (формулы (11) и (12)).

,


где pix - длина пикселя.

Подставляя формулы (9) и (10) в формулы (11) и (12), получаем выражения, связывающие системы (u,v) и (X,Y,Z).

, (13)

, (14)

где f = 3,85 мм;= 0,0232 мм;= 300 пикселей;= 255 пикселей.

Параметры Cx и Cy были определены в ходе калибровки камеры с разрешением 640*480.

Создание алгоритма для определения ориентации по ключевым точкам QR кода

Нашей задачей является определение углов поворота QR кода вокруг осей x и y. Информацию об этих углах мы получим, сравнивая изображение повернутого QR кода, центр которого расположен на расстоянии Z` от камеры, с QR кодом, находящемся на таком же расстоянии, но в картинной плоскости, то есть с нулевыми углами поворота. В данной работе мы используем факт, что координаты точек QR, лежащих на осях ox и oy, изменяются под влиянием только одного поворота.

Сначала нам нужно узнать координаты центра p` =(CCx,CCy) QR кода на изображении в системе (u,v) (рисунок 14) . Определить их примерно можно по формулам (14) и (15).

Рисунок 14 - Картинная плоскость камеры

 15)

 (16)

где LeftUp, RightUp, LeftDown, RightDown - ключевые точки изображения QR кода.

Для начала рассмотрим случай поворота QR кода только вокруг одной оси x (рисунок 15).

Рисунок 15 - Поворот QR кода вокруг x`

Пусть длина стороны квадрата равна A, тогда в системе (x`,y`) вершины квадрата, лежащего в картинной плоскости имеют координаты (-A/2,-A/2); (A/2,-A/2); (A/2,A/2); (-A/2,A/2). Предположим, QR код повернут вокруг x` на угол a, тогда координаты точек этого квадрата, лежащих на оси ох` не изменятся, а координаты точек Vв и Vн, лежащих на оси oy`, уменьшатся. Используя рисунок, на котором представлен вид сбоку, можно выразить координату точки Vн в системе (X,Y,Z) через a (рисунок 16).

Рисунок 16 - Плоскость QR кода, вид сбоку

 (17)

После поворота по часовой стрелке вокруг оси ox` точка Vн стала находиться ближе к камере, а значит, ее координата Z уменьшилась на sin(a)*A/2.

Используя формулу (13), выразим координату точки Vн в системе (u,v) через a и получим формулу (18):

 , (18)

где Z` - координата центра квадрата.

Значение Vн получаем из анализа изображения. Зная Z` мы находим угол поворота a. Аналогичным образом определим угол поворота b вокруг оси oy.

При повороте вокруг оси oy координаты точек кода, лежащих на оси oy не изменятся, а по изменению координат точек, лежащих на оси ox, можно судить об угле b (рисунок 17).

Рисунок 17 - Поворот вокруг обеих осей x и y

При повороте против часовой стрелки вокруг oy координата Z точки Uп увеличится и станет равна Z`+A/2*sin(b), а координата X уменьшится и станет равна cos(b)*A/2.

 (19)

Используя формулу (19) и зная Z`, находим искомый угол b.

Определение угла поворота QR кода в картинной плоскости камеры, т. е. в плоскости xoy, будет производиться путем анализа координат центров верхней левой и верхней правой мишеней. При нулевом угле поворота координаты  у обеих мишеней совпадают, а при повороте кода изменяются. По разности ∆координат можно судить об угле поворота.

3. Программное обеспечение для распознавания QR кода и определения его ориентации

3.1 Описание программы

Программа представляет собой приложение для распознавания кода и определения углов поворота плоскости, в которой он лежит, относительно камеры. Для распознавания QR кода нами была использована библиотека для работы с компьютерным зрением OpenCV. С помощью нее кадры, поступающие с камеры, обрабатываются и проверяются на наличие QR кода. Работу части программы, отвечающей за детектирование, описывает блок схема, изображенная на рисунке 18.

Рисунок 18 - Блок-схема алгоритма обнаружения QR кода

Построенный на первом этапе массив нулей и единиц далее расшифровывается на основе алгоритма, приведенного в спецификации [5]. Блок-схема, изображенная на рисунке 19 графически отображает шаги, которые необходимо пройти для расшифровки QR кода.

Рисунок 19 - Блок-схема алгоритма расшифровки QR кода

Информация о координатах вершин QR кода, полученная в ходе его распознавания, используется для нахождения пространственной ориентации плоскости QR кода.

3.2 Тестирование программы

При запуске программы начинается видеозахват с камеры. Все снимки делаются автоматически (рисунок 20).

Рисунок 20 - Снимок QR кода

На камеру поступает картинка каждые 33 мc, автоматически обрабатывается и сканируется на наличие мишеней (рисунок 22).

Рисунок 21 - Снимок после порогового преобразования

Рисунок 22 - Снимок с нарисованными на нем найденными мишенями

Как только поступает изображение, имеющее 3 мишени, запускается код распознавания: находятся вершины QR кода, строится сетка и далее массив нулей и единиц, который выводится в консоль и записывается в файл (рисунок 23).

Рисунок 23 - Снимок с нарисованной на нем построенной сеткой

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

Далее в соответствии с разработанным алгоритмом мы определяем ориентацию кода относительно камеры, т. е. углы поворота в системе координат, связанной с камерой и выводим результаты в консоль (рисунок 24).

Рисунок 24 - Вывод результатов в консоль


4. Применение разработанного программного обеспечения

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

) возможностью выделения существенной информации из множества независимых признаков;

) способностью к обучению на примерах и обобщению этих знаний с целью их применения в новых ситуациях;

) возможностью восстановления событий по неполной информации;

) способностью определять цели и формулировать планы для достижения этих целей.

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

Заключение

В ходе выполнения работы был разработан и программно реализован на языке C++ и с помощью библиотеки OpenCV алгоритм обнаружения QR кода. На основе спецификации ISO/IEC 18004 Information technology - Automatic identification and data capture techniques - Bar code symbology - QR Code изучен и программно реализован алгоритм расшифровки QR кода. Также был разработан алгоритм определения углов смещения QR кода на основе данных о координатах ключевых точек QR кода, полученных при его распознавании. Значения определенных углов являются приблизительными, возможны отклонения от истинных значений в размере 20%, что установлено экспериментальным путем. Разработанное программное обеспечение может быть использовано для позиционирования манипуляторов роботов в случаях, когда не требуется высокая точность.

Список использованных источников

1. Детектирование QR Code с помощью средств OpenCV [Электронный ресурс] - Режим доступа: http://recog.ru/blog/barcode/3.html. - Загл. с экрана. (Дата обращения: 20.05.2013).

. Gary Bradski, Adrian Kaehler. Learning OpenCV.: издательство O'Reilly, 2008. -577с.

. ISO/IEC 18004 Information technology - Automatic identification and data capture techniques - Bar code symbology - QR Code. - 122c.

4. Фрайден Дж. Современные датчики. Справочник. - М.: издательский центр Техносфера, 2006 - 801 с.

. Назаров А.С. Фотограмметрия: учеб. пособие для студентов вузов. - Мн.: ТетраСистемс, 2006. - 368 с.

.        Форсайт Дэвид А. Компьютерное зрение. Современный подход. - М.: издательский дом "Вильямс", 2004.- 928с.

Похожие работы на - Определение пространственной ориентации объекта, маркированного QR кодом

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!