Файл: Техническое зрение для системы управления сортировочного робота.pdf

ВУЗ: Не указан

Категория: Диссертация

Дисциплина: Не указана

Добавлен: 25.10.2023

Просмотров: 995

Скачиваний: 17

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

28
Рисунок 2.4 – KR 40PA
KR 40 PA является самым маленьким и легким роботом для палетизации. Достигает высочайших уровней скорости и точности, специально разработан для задач, связанных с паллетизацией - идеально подходит для укладки европоддонов. KR 40 PA выбирает и упаковывает товары в рекордные сроки. Он может паллетиризировать продукты весом до
40 килограммов и достигать чистой высоты штабелирования до 1,8 м; все в очень маленьком пространстве. Время цикла значительно сокращается благодаря его малой массе. [10]

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

29
Одновременно повышается эффективность и гибкость систем – благодаря распространенным открытым промышленным стандартам.
Концепция KR C4 считается революционной. Впервые в ней Robot/Motion органично и интерактивно соединены с системами управления для ПЛК, ЧПУ и обеспечения безопасности. Благодаря простому и гибкому программированию робота посредством встроенных формуляров и новому программированию перемещений Spline решения автоматизации на базе KR C4 по всем аспектам являются непревзойденными. Кроме того, KR C4 обеспечивает возможности интеллектуального, гибкого и расширяемого использования.
KR C4 интегрирует в архитектуру вашего программного обеспечения
Robot Control, PLC Control, Motion Control (например, KUKA.CNC) и Safety
Control. Все системы управления имеют одну базу данных и инфраструктуру.
Это позволяет упростить автоматизацию и сделать ее эффективней. [11]

устройство видеозахвата, показанное на рисунке 2.6 (Microsoft
Lifecam Cinema);
Рисунок 2.6 – Microsoft Lifecam Cinema
Веб-камера LifeCam Cinema предоставляет широкоформатное HD- видео с разрешением 720 пикселей. Камера автоматически увеличивает резкость изображения, Для того чтобы видео было еще более четким, прецизионный стеклянный объектив повышает качество изображения даже при недостаточной освещенности.[12]

Промышленный конвейер;

Персональный компьютер.

30
2.4 Выбор инструментов программирования
2.4.1 Язык программирования Python
Python (в русском языке распространено название пито
́ н) — высокоуровневый язык программирования общего назначения, ориентированный на повышение производительности разработчика и читаемости кода. [13] Синтаксис ядра Python минималистичен. В то же время стандартная библиотека включает большой объём полезных функций.
Разработка языка Python была начата в конце 1980-х годов сотрудником голландского института Гвидо ван Россумом. Для распределённой ОС Amoeba требовался расширяемый скриптовый язык, и
Гвидо начал писать Python на досуге, позаимствовав некоторые наработки для языка ABC (Гвидо участвовал в разработке этого языка, ориентированного на обучение программированию). В феврале 1991 года Гвидо опубликовал исходный текст в группе новостей alt.sources. С самого начала Python проектировался как объектно-ориентированный язык.
3 декабря 2008 года, после длительного тестирования, вышла первая версия Python 3000 (или Python 3.0, также используется сокращение Py3k). В
Python 3000 устранены многие недостатки архитектуры с максимально возможным (но не полным) сохранением совместимости со старыми версиями
Python. На сегодня поддерживаются обе ветви развития (Python 3.x и 2.x).
Python поддерживает несколько парадигм программирования, в том числе структурное, объектно-ориентированное, функциональное, императивное и аспектно-ориентированное. Основные архитектурные черты
— динамическая типизация, автоматическое управление памятью, полная интроспекция, механизм обработки исключений, поддержка многопоточных вычислений и удобные высокоуровневые структуры данных. Код в Python организовывается в функции и классы, которые могут объединяться в модули
(они в свою очередь могут быть объединены в пакеты).


31
Эталонной реализацией Python является интерпретатор CPython, поддерживающий большинство активно используемых платформ. Он распространяется под свободной лицензией Python Software Foundation
License, позволяющей использовать его без ограничений в любых приложениях, включая проприетарные. Есть реализации интерпретаторов для
JVM (с возможностью компиляции), MSIL (с возможностью компиляции),
LLVM и других. Проект PyPy предлагает реализацию Python с использованием
JIT-компиляции, которая значительно увеличивает скорость выполнения
Python-программ.
Python — активно развивающийся язык программирования, новые версии (с добавлением/изменением языковых свойств) выходят примерно раз в два с половиной года. Вследствие этого и некоторых других причин на
Python отсутствуют стандарт ANSI, ISO или другие официальные стандарты, их роль выполняет CPython.
Обоснованием выбора данного языка программирования является его простота, низкий порог вхождения, большое количество обучающего материала в интернете и возможность работать с библиотекой OpenCV
2.4.2 Библиотека OpenCV
Одним из наиболее распространённых программных обеспечений для реализации компьютерного зрения является OpenCV.
OpenCV — библиотека алгоритмов компьютерного зрения, обработки изображений и численных алгоритмов общего назначения с открытым кодом.[14] Реализована на C/C++, также существуют версии для Python, Java,
Ruby, Matlab, Lua и других языков. Она разрабатывается c 1998 г., сначала в компании Intel, затем в Itseez при активном участии сообщества.
Библиотека распространяется по открытой лицензии, что означает, что ее можно свободно и бесплатно использовать как в открытых проектах с открытым кодом, так и в закрытых, коммерческих проектах. Библиотеку не обязательно копировать целиком в свой проект, можно использовать куски

32 кода. Единственное требование лицензии – наличие в сопровождающих материалах копии лицензии OpenCV.
Из-за либеральной лицензии библиотека используется многими компаниями, организациями, университетами, например, NVidia, Willow
Garage, Intel, Google, Stanford University. Компании NVidia и WillowGarage частично спонсируют ее разработку.
Многомерная архитектура проекта представлена на рисунке 2.7.
Библиотека состоит из 16 модулей, реализовано около 1000 алгоритмов.
Поддерживаются основные операционные системы: MS Windows, Linux, Mac,
Android, iOS. Есть возможность использования сторонних библиотек, например, для работы с устройством Kinect (OpenNI), разработки параллельных программ (TBB) и др.
Рисунок 2.7 - Архитектура OpenCV
Основные модули библиотеки можно отнести к 4 группам (разделам):

Модули Core, HighGUI, реализующие базовую функциональность
(базовые структуры, математические функции, генераторы случайных чисел, линейная алгебра, быстрое преобразование Фурье, ввод/вывод изображений и видео, ввод/вывод в форматах XML, YAML и др.).

Модули ImgProc, Features2D для обработки изображений
(фильтрация, геометрические преобразования, преобразование цветовых пространств, сегментация, обнаружение особых точек и ребер, контурный анализ и др.).


33

Модули Video, ObjDetect, Calib3D (калибровка камеры, анализ движения и отслеживание объектов, вычисление положения в пространстве, построение карты глубины, детектирование объектов, оптический поток).

Модуль ML, реализующий алгоритмы машинного обучения (метод ближайших соседей, наивный байесовский классификатор, деревья решений, бустинг, градиентный бустинг деревьев решений, случайный лес, машина опорных векторов, нейронные сети и др.). На рисунке 2.8 представлена общая схема типичного приложения, предназначенного для решения той или иной задачи компьютерного зрения.
Рисунок 2.8 - Общая структурная схема приложения на OpenCV
Все начинается с захвата изображений (модуль HighGUI). Читается изображение из файла или видео с сетевой камеры через сетевой протокол.
Далее осуществляется предварительная обработка (модуль ImgProc), такая, как устранение шума, выравнивание яркости, контраста, выделение и удаление бликов, теней. Например, один и тот же объект при разном освещении выглядит по-разному. В ярком свете красная машина, движение которой необходимо отслеживать, будет ярко-оранжевой. В пасмурную погоду та же машина будет выглядеть красно-розовой. В этом случае на изображении необходимо выполнить выравнивание цветов. Предобработка может быть, как простой, так и может заключать в себе целую сложную технологию.
Следующий этап – выделение особенностей (модули ImgProc,
Features2D). Например, в задаче слежения за объектом это может быть поиск

34 специальных точек на объекте, за которыми легко наблюдать; для задачи детектирования (т. е. обнаружения на изображении) лица – вычисления описания каждого пиксела.
Далее происходит детектирование интересующих нас объектов, выделение значимых частей, сегментация изображения (модули ImgProc,
ObjDetect). Если, например, камера неподвижна, а изображение подвижное, можно использовать алгоритмы вычитания фона.
После этого решается основная задача, такая, как вычисление расположения объекта в 3d, реконструкция 3d структуры, анализ структуры, регистрация и т. п. (модули Calib3D, Contrib, Video, Stitching, Videostab, ML).
Например, в задаче склейки панорам изображений – это сопоставление частей разных кадров, определение нужного преобразования. В задаче видеонаблюдения это восстановление траекторий объектов и т. д
В конце происходит распознавание и принятие конкретных решений
(модуль ML). Например, в системе видеонаблюдения: обнаружен ли нежелательный объект в кадре или нет. В задаче детектирования текста – детектирован ли текст, что именно за текст и т. д.


35
1   2   3   4   5   6   7   8   9

3 ГЕОМЕТРИЧЕСКИЕ ПАРАМЕТРЫ КАМЕРЫ 3.1 Справочные система координат Чтобы количественно описать процесс формирования изображения с камеры, сначала определите следующие четыре опорные системы координат. 3.1.1 Система координат пикселей Цифровое изображение, полученное камерой, может быть сохранено в виде массива в компьютере. Значение каждого элемента массива (так называемый пиксель) - это яркость точки изображения (или шкала серого, если цветное изображение, яркость пикселя изображения будут красного, зеленого и синего цветов трех цветов). Координаты (u, v) каждого пикселя определяются декартовой системой координат u - v, то есть количеством столбцов и числом строк пикселя в массиве. (U, v) - координаты системы координат изображения в пикселях, как показано на рисунке 3.1. Рисунок 3.1-Изображение системы координат и плоскости изображения системы координат 3.1.2 Система координат сетчатки Поскольку система координат изображения представляет только количество столбцов и количество строк в цифровом изображении, физическое положение пикселя на изображении не выражается в физических единицах и, следовательно, координаты плоскости изображения, выраженные

36 в физических единицах (например, Миллиметры) должны быть установлены, как показано на рисунке 3.1.
В системе координат x-y начало координат O
1
определено на пересечении оптической оси камеры и плоскости изображения, называемой главной точкой изображения, которая обычно расположена в центре изображения. Однако, из-за причины процесса производства камеры, будет некоторое отклонение от общего. Если координаты O
1 в u-v системе координат (u
0,
v
0)
, физические размеры каждого пикселя в направлениях оси x и y - это dx, dy, то связь между двумя системами координат выглядит следующим образом :
[
????
????
1
] = [
1/????????
????′
????
0 0
1/????????
????
0 0
0 1
]
Где ????′ представляет коэффициент перекоса, полученный из двух координатных осей системы координат изображения из-за того, что они не пересекаются друг с другом.
3.1.3 Система координат камеры
Параметры данной системы представлены на рисунке 3.2
Рисунок 3.2-Схема системы координат камеры

37
C — центр камеры, Cp — главная ось камеры. Точка X, которая принадлежит трехмерному пространству проецируется на плоскость изображения в точку х. Проективная камера определяется такими параметрами как:
– центр камеры;
– главная ось — это луч, который начинается в центре камеры и направлен в сторону, в которую камера смотрит;
– плоскость изображения, на которую выполняется проецирование точек;
– система координат, находящаяся этой плоскости.
В такой модели, любая взятая произвольная точка в пространстве X будет проецироваться на плоскость изображения в точку x лежащую на отрезке CX, соединяющий центр камеры C с исходной точкой X.
3.1.4 Однородные координаты
Поскольку трехмерная cистема координат не несет информации о поступательном перемещении и используемом масштабе, вектор координат
???? = (????
????
, ????
????
, ????
????
)
????
в трехмерном пространстве дополняют четвертой координатой (или компонентой) так, что он принимает вид ???? =
(????????
????
, ????????
????
, ????????
????
)
????
. В этом случае говорят, что вектор Р выражен в однородных координатах. Описание точек трехмерного пространства однородными координатами позволяет ввести в рассмотрение матричное преобразования, содержащие одновременно поворот, параллельный перенос, изменение масштаба и преобразование перспективы.
В общем случае изображение N-мерного вектора вектором размерностью N +1 называется представлением в однородных координатах.
При таком представлении преобразование N-мерного вектора производиться в (N+1)-мерном пространстве, а физический Nмерный вектор получается делением однородных координат на (N+1)-ю компоненту w. Так, вектор ???? =
(????
????
, ????
????
, ????
????
)
????
положения в трехмерном пространстве в однородных