Разработка программного обеспечения системы технического зрения для робота-манипулятора
Анализ состояния проблемы, обзор аналогов, выбор прототипов и постановка задачи. Достоинства и недостатки рассмотренных систем технического зрения. Определение формы и положения объекта в пространстве. Обоснование и разработка математического аппарата.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 12.06.2013 |
Размер файла | 2,5 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Разработка программного обеспечения системы технического зрения для робота-манипулятора. Часть I
Введение
В современных условиях развития автоматизации производства особое место отводится использованию промышленных роботов. Промышленный робот - это механическая система, включающая манипуляционные устройства, систему управления, чувствительные элементы и средства передвижения. Принципиальными отличиями робототехники от традиционных средств автоматизации являются их широкая универсальность (многофункциональность) и гибкость (мобильность) при переходе на выполнение принципиально новых операций. Промышленные роботы находят применение во всех сферах производственно-хозяйственной деятельности. Они успешно заменяют тяжелый, утомительный и однообразный труд человека, особенно при работе в условиях вредной и опасной для здоровья производственной среды. Они способны воспроизводить некоторые двигательные и умственные функции человека при выполнении ими основных и вспомогательных производственных операций без непосредственного участия рабочих. Для этого их наделяют некоторыми способностями: слухом, зрением, осязанием, памятью и т. д., а также способностью к самоорганизации, самообучению и адаптации к внешней среде.
Робототехника, как любая область техники, развивается, соблюдая закон "от простого к сложному". Характеризуя ее качественный прогресс, принято выделять три разных по сложности и по своим возможностям поколения роботов. Однако можно отметить: деление роботов на поколения, т. е. на их виды по степени сложности и "разумности", достаточно условно, и смысл понятия "поколение" в роботостроении несколько иной, чем в других областях техники. Если вычислительные машины нового поколения полностью заменяют старые, поскольку они более совершенны по всем параметрам, то роботы следующего поколения не вытесняют предыдущие, а дополняют их, так как у всех у них разные функции и области применения.
Для роботов первого поколения характерно то, что они имеют программное управление, т. е. действуют по жесткой, не меняющейся в процессе работы программе; поэтому их называют также "программными роботами". Предназначены они для автоматизации несложных операций при неизменном состоянии окружающей среды. Их система управления имеет только исполнительный уровень: поскольку окружающие условия не меняются, сенсорных устройств нет - никакой связи с внешним миром не требуется, и она отсутствует. К сожалению, функциональные возможности роботов первого поколения существенно ограничены несовершенством их системы управления, служащей для реализации лишь той жесткой программы, которая зафиксирована в памяти. При изменении параметров окружающей среды такой робот не может сам адаптироваться к новым условиям, и требуется вмешательство человека-оператора, чтобы корректировать заданную ему программу, приспосабливая ее к другим параметрам. Таким образом, можно сказать, что роботы первого поколения имеют только нижний уровень системы управления - исполнительный.
Роботы второго поколения - это «очувствленные» роботы, предназначенные для работы с неориентированными объектами произвольной формы. Они отличаются, во-первых, существенно большим набором и совершенством как внешних сенсорных датчиков (телевизионные, оптические, тактильные, локационные и т.п.), так и внутренних (датчики положений "руки" или "ноги" относительно "тела" робота, датчики усилий и моментов и т.п.) и, во-вторых, более сложной системой управления, требующей для своей реализации управляющей ЭВМ.
Возможности роботов второго поколения, оснащенных значительным числом датчиков внешней среды и развитым программным обеспечением, значительно превосходят возможности роботов первого поколения. Благодаря способности распознавать внешнюю обстановку, анализировать сенсорную информацию и приспосабливаться к изменяющимся условиям эксплуатации, очувствленные роботы могут взаимодействовать с неориентированными объектами в неупорядоченной обстановке, а значит, выполнять исследовательские работы, сборочные и монтажные операции, собирать информацию об окружающей обстановке и т.п.
Роботы третьего поколения - это так называемые интеллектуальные (ИР), или разумные, роботы, предназначенные не только и не столько для воспроизведения физических и двигательных функций человека, сколько для автоматизации его интеллектуальной деятельности, т.е. для решения интеллектуальных задач. Они принципиально отличаются от роботов второго поколения сложностью функций и совершенством управляющей системы, включающей в себя элементы искусственного интеллекта. Интеллектуальный робот - это робот, создающий в себе модель внешней среды (проблемной среды), для чего он производит активные и пассивные исследования, сам планирует свои действия, моделирует планы и реализует их.
Робот-манипулятор, исследуемый в данном дипломном проекте можно отнести к роботам второго поколения, так как в он должен быть способен выполнять действия, запрограммированные оператором, взаимодействовать со внешней средой, но он не моделирует мыслительную деятельность человека.
Целью дипломного проектирования является создание программного обеспечения системы технического зрения для робота-манипулятора, достаточно простого в установке, настройке и эксплуатации.
1. Анализ состояния проблемы, обзор аналогов, выбор прототипов и постановка задачи
1.1 Анализ состояния проблемы
Высокая точность, отсутствие усталости, беспрерывность цикла работы, возможность применения во вредных и опасных зонах, робототехника становится наиболее важным технологическим этапом современного производства и зачастую определяет качественные характеристики продукта или системы. Основная сложность при автоматизации управления роботизированных систем - обеспечение точности позиционирования в пространстве.
Современные роботы функционируют на основе принципа иерархичности системы управления роботом. Иерархия системы управления роботом подразумевает деление системы управления на горизонтальные слои, управляющие общим поведением робота, расчётом необходимой траектории движения манипулятора, поведением отдельных его приводов, и слои, непосредственно осуществляющие управление двигателями приводов.
Управление бывает нескольких типов:
· программное управление;
· управление человеком (например, дистанционное управление);
· адаптивное управление.
Программное управление - это самый простой тип системы управления, используется для управления манипуляторами на промышленных объектах. В таких роботах отсутствует сенсорная часть, все действия жёстко фиксированы и регулярно повторяются.
Роботы с адаптивной системой управления оснащены сенсорной частью. Сигналы, передаваемые датчиками, анализируются и в зависимости от результатов анализа принимается решение о дальнейших действиях, переходе к следующей стадии действий и т. д.
Одним из примеров адаптивного управления является система технического зрения (СТЗ). Система технического зрения может обеспечивать систему управления манипулятором информацией для идентификации объекта, определения его ориентации и положения, а также препятствий вокруг.
В данном проекте решается проблема адаптивного управления роботом-манипулятором посредством применения видеокамеры и распознавания образов (контуров объектов) методами контурного анализа.
1.2 Обзор аналогов
На сегодняшний день наиболее известными фирмами производителями промышленных систем технического зрения и автоматизированных систем для различных отраслей промышленности являются:
· ABB (Швеция) ;
· Kawasaki (Япония);
· Cloos (Германия);
· KUKA (Германия);
· Fanuc (Япония);
· Motoman (Япония);
· IGM (Австрия);
· Panasoniс (Япония).
Ответить на вопрос, какой робот лучше, не получится. Мировые лидеры роботостроения, динамично развиваются, не уступая друг другу в конкурентной борьбе. Для повышения интереса к промышленным роботам и системам технического зрения, любой может заявить, что промышленные роботы, которые он предлагает лучшие, и это будет неприкрытый обман.
По сути, каждый производитель роботов и СТЗ имеет ассортимент, удовлетворяющий текущий мировой спрос на промышленную автоматизацию. Некоторые производители создают специализированные серии под конкретную технологию. Но в целом, все роботы имеют схожую антропоморфную конструкцию, примерно одинаковый технический уровень и сопоставимое качество сборки.
Не зависимо от производителя манипуляторы включают в себя подвижные звенья двух типов: обеспечивающие поступательные движения и обеспечивающие угловые перемещения. Сочетание и взаимное расположение звеньев определяет степень подвижности, а также область действия манипуляционной системы робота. Для обеспечения движения в звеньях могут использоваться электрические, гидравлический или пневматический привод.
Частью манипуляторов (хотя и необязательной) являются захватные устройства. Наиболее универсальные захватные устройства аналогичны руке человека -- захват осуществляется с помощью механических «пальцев». Для захвата плоских предметов используются захватные устройства с пневматической присоской. Для захвата же множества однотипных деталей (что обычно и происходит при применении роботов в промышленности) применяют специализированные конструкции.
Вместо захватных устройств манипулятор может быть оснащен рабочим инструментом. Это может быть пульверизатор, сварочные клещи, отвёртка и тому подобное.
Наиболее известные системы технического зрения приведены ниже.
Система технического зрения F250 фирмы Энергоснаб наряду с возможностями контроля, предоставленными в предыдущей системе фирмы F210, система F250, благодаря наличию в ней специальной быстродействующей схемы, обладает возможностью сверхбыстрой локализации объектов [9]. Наличие четырех портов для подключения камер позволяет организовать одновременный контроль по нескольким параметрам в пределах одной системы. Через интерфейс Ethernet система F250 может обмениваться данными практически с любой компьютерной системой предприятия.
Достоинства данной системы:
· специальная быстродействующая схема для ускорения инструментов контроля при решении задач, требующих повышенной скорости обработки;
· возможность подключения четырех камер; возможность локализации объекта в реальном времени;
· повышенная гибкость благодаря наличию операций ветвления и условных переходов;
· два гнезда для компактных карт флеш-памяти (CF) для хранения данных и ведения протокола;
· интерфейс Ethernet, 67 дискретных входов/выходов, RS232.
Характеристики системы:
· количество инструментов (режимов) контроля (приблизительно 70 инструментов обработки);
· количество камер (четыре высокоскоростные с построчной разверткой);
· количество сценариев/банков - 32, расширяется с помощью флэш-карты (CF);
· количествов инструментов (режимов) на сценарий ограничено только памятью и зависит от инструмента;
· интерфейс - RS232, 67 дискретных входов/выходов;
· сеть - Ethernet 10Base/T.
Далее приведены разработки ИМИТ СПбГПУ.
Учеными и инженерами ИМИТ СПбГПУ и ООО «Малленом» разработан универсальный математический аппарат и программные средства, обеспечивающие возможность калибровки и использования произвольного количество камер (два и более), работающих синхронно и наблюдающих одну и ту же сцену с различных позиций ????????[8]. Разработанные методы и алгоритмы анализа стереоизображений позволяют решать широкий круг задач в области автоматизированного контроля формы, геометрии и параметров движения наблюдаемых объектов.
Расположение видеокамер относительно объекта и схема их взаимодействия схематично приведены на рисунках 1 и 2.
Рисунок 1 - Определение формы и положения объекта в пространстве
Рисунок 2 - Вычисление характеристик объекта
Системы технического зрения фирмы Omron - это системы технического зрения серии F150-3. Они позволяют быстро и четко сравнить изображение предмета с заданным изображением для задач контроля качества, идентификации, определения размеров и положения объектов.
Подключение двух камер к контроллеру осуществляется через адаптер, это позволяет не только одновременно получать изображения с обеих камер, но и соединять их в одно (режим вертикально-горизонтального редактирования). Диапазон применений F150-3 расширился за счет использования встраиваемых источников света с изменяемыми параметрами. Уровень освещенности и направление излучения этих моделей могут быть изменены через контроллер. Достоинства данной модели:
· до 11 входов и 21 выходов;
· память на 23 дефектных изображения;
· модели со сменным или постоянным объективом;
· настраиваемая скорость затвора;
· 256 градаций серого цвета для точных измерений менее одного пикселя.
Система технического зрения Omron F150-3 представлена на рисунке 3.
Характеристики F150-3:
· дистанция срабатывания 61-71 мм, 66-76 мм - определяется объективом;
· разрешение в пикселях 659х494, 659х494, 659х494;
· площадь охвата изображения 20х20 мм 50х50 мм - определяется объективом;
· напряжение питания 24 VDC, 24 VDC.
Высокоскоростная система технического зрения F160, представленная на рисунке 4, также разработана фирмой Omron для решения наиболее сложных задач, касающихся контроля за производством продукции.
Система обладает быстродействием, достаточным для инспектирования высокоскоростных производственных линий, а использование карт памяти, способных хранить до 1024 изображений и возможность подключения нескольких камер позволяет применить F160 для линий, производящих много наименований одновременно. Система способна выполнять до 17 операций, что позволяет легко построить систему контроля качества нового поколения.
Достоинства данной модели:
· обработка до 32 участков одновременно;
· 13 дискретных входов и 22 дискретных выхода;
· автоматическое распознавание символов;
· работа с двумя камерами;
· упрощенная настройка;
· связь через RS232C;
· уникальное быстродействие.
Характеристики F160:
· модификации: F160-S1 F160-SLC20 F160-SLC50;
· расстояние срабатывания - определяется объективом : 51-71 мм, 55-76 мм;
· площадь захвата рисунка - определяется объективом 20х20 мм, 50х50 мм;
· разрешение в пикселях 512x484, 512x484, 512x484;
· напряжение питания 24 VDC, 24 VDC.
Приведённые системы технического зрения, хотя и имеют множество достоинств, достаточно дороги для приобретения. Тем более, что существуют области применения таких систем, где не нужно трёхмерное распознавание и слишком большая чёткость изображения, несколько камер. Разрабатываемая в данном проекте система технического зрения будет включать в себя всего одну неспециализированную USB веб-камеру, что обеспечит низкую стоимость, а также достаточно простой интерфейс пользователя.
1.3 Постановка задачи на проектирование
Данный дипломный проект предусматривает разработку программного обеспечения системы технического зрения управления роботом-манипулятором посредством ЭВМ. Технические характеристики разрабатываемого устройства, а также требования, касающиеся его работы, надёжности и других параметров рассмотрены ниже.
1.3.1 Требования к аппаратным средствам
Система технического зрения состоит из USB веб-камеры, подключённой к ЭВМ, а также программы распознавания объектов и управления манипулятором.
Манипулятор имеет шесть степеней свободы и имеет управляющий контроллер, подключаемый к ЭВМ посредством COM-интерфейса. Веб-камера закрепляется на штативе вертикально.
1.3.2 Требования к функциональным возможностям системы
Система технического зрения должна обеспечивать поиск контрастных объектов относительно фона, идентификацию, вычисление их координат относительно робота и передачу преобразованных координат системе управления для корректировки положения манипулятора.
Управление параметрами системы технического зрения осуществляется через пользовательскую программу. Интерфейс должен быть понятным и интуитивным, чтобы программой мог воспользоваться любой оператор-пользователь, даже далекий от данной темы.
На программное обеспечение возлагаются ответственные функции:
· организация протокола связи с устройством;
· кроссплатформенность ПО;
· опрос подключенного устройства перед началом работы с целью немедленного обнаружения неисправности или отключения устройства, сигнализирование пользователю о неисправности на линии.
Основными требованиями к алгоритмам управления являются:
· адекватная реакция на управляющие команды;
· допущение возможности неадекватных или случайных действий оператора-пользователя;
· приспособленность к различному подключаемому оборудованию;
· гарантия отсутствия тупиковых ветвей в любых ситуациях;
· корректная работа в любом режиме;
· минимальный объем памяти.
1.3.3 Требования к входным и выходным данным
Входными данными системы являются положение объектов в рабочей области камеры, а также программа, вводимая оператором, задающая последовательность действий, которые должен выполнять манипулятор.
Выходными данными является список найденных контуров, соответствующих по форме известным программе шаблонам, а также изображение с отмеченными найденными объектами.
Выводы
В разделе 1 был произведён анализ состояния проблемы, обзор аналогов.
Сделан вывод о том, что разработка данной системы технического зрения является актуальной задачей в силу своей дешевизны и малых вычислительных требований. В качестве прототипа не подошёл ни один из аналогов, так как ничего не известно о программном обеспечении данных систем. Было сформулировано техническое задание на программное обеспечение системы технического зрения.
2. Выбор, обоснование и разработка математического аппарата распознавания контуров
В связи с решением задачи распознавания контуров следует рассмотреть возможность и полезность применения искусственных нейронных сетей, а также метод контурного анализа.
Искусственная нейронная сеть (ИНС, нейронная сеть) представляет собой набор нейронов, соединенных между собой . Как правило, передаточные функции всех нейронов в нейронной сети фиксированы, а веса являются параметрами нейронной сети и могут изменяться. Несмотря на большое разнообразие вариантов нейронных сетей все они имеют общие черты. Так все они, также как и мозг человека, состоят из большого числа однотипных элементов - нейронов, которые имитируют нейроны головного мозга, связанных между собой. На рисунке 5 показана схема нейрона.
Рисунок 5 - Схема нейрона
Искусственный нейрон, так же как и живой, состоит из синапсов, связывающих входы нейрона с ядром, которое осуществляет обработку входных сигналов и аксона, который связывает нейрон с нейронами следующего слоя. Каждый синапс имеет вес, который определяет насколько соответствующий вход нейрона влияет на его состояние. Состояние S нейрона в общем случае определяется по формуле
S= i, (1)
где n - число входов нейрона;
xi- значение i-го входа нейрона;
wi - вес i-го синапса.
Затем определяется значение аксона Y нейрона по формуле
Y = f(S), (2)
где f (S) - некоторая функция, которая называется активационной.
В данном случае входным вектором для нейронной сети будет являться вектор значений пикселей картинки. Однако, применение нейронных сетей в данном проекте будет нецелесообразно по следующим причинам.
Во-первых, разрешение кадра с камеры достаточно большое - 360*480 точек, и на этом кадре может одновременно располагаться множество контуров, в то время как большинство нейронных сетей ориентируются на распознавание конкретного одиночного образа. Выходом в данной ситуации могла бы быть подача отдельных фрагментов кадра на вход сети, но при этом образы могут быть разных размеров, и неизвестно, какого размера фрагменты должны подаваться на вход сети, а значит неизвестно, какое количество входов должна иметь нейронная сеть. Количество всех вариантов фрагментов разных размеров и с разными положением начальных пикселей будет очень большим, что потребует больших вычислений.
Во-вторых, большое влияние на распознавание образов с помощью нейронной сети оказывает сдвиг образа относительно центра фрагмента, изменение его масштаба, а также поворот образа. Для всех вариантов размера и положения образа придётся формировать обучающие примеры для нейросети.
В-третьих, в данном проекте стоит задача распознавания лишь внешних контуров объектов, то есть их формы, без учёта внутренней структуры объекта. Потому что распознавание внутренней структуры объекта делает применение искусственных нейронных сетей нецелесообразным, так как будет выполняться лишняя работа по распознаванию всего образа, а значит и будут выполняться ненужные вычисления.
Контурный анализ (КА) позволяет описывать, хранить, сравнивать и производить поиск объектов, представленных в виде своих внешних очертаний - контуров [].
Предполагается, что контур содержит всю необходимую информацию о форме объекта. Внутренние точки объекта во внимание не принимаются. Это ограничивает область применимости алгоритмов КА, но рассмотрение только контуров позволяет перейти от двумерного пространства изображения - к пространству контуров, и тем самым снизить вычислительную и алгоритмическую сложность.
КА позволяет эффективно решать основные проблемы распознавания образов - перенос, поворот и изменение масштаба изображения объекта. Методы КА инвариантны к этим преобразованиям.
Немаловажным является и то, что для программной реализации контурного анализа подходит открытая для доступа библиотека OpenCV. Эту библиотеку полезно использовать для решения данной задачи, так как она содержит готовые функции по поиску, определению размеров и координат контуров.
2.1 Разработка метода контурного анализа
Контур - это граница объекта, совокупность точек (пикселей), отделяющих объект от фона.
В системах компьютерного зрения используется несколько способов кодирования контура - наиболее известны код Фримена, двумерное кодирование, полигональное кодирование. Но все эти способы кодирования не используются в КА.
Вместо этого, в КА контур кодируется последовательностью, состоящей из комплексных чисел. На контуре фиксируется точка, которая называется начальной точкой. Затем, контур обходится (допустим - по часовой стрелке), и каждый вектор смещения записывается комплексным числом a+ib, где a - смещение точки по оси X, а b - смещение по оси Y. Смещение берется относительно предыдущей точки, как показано на рисунке 6.
Рисунок 6 - Пример определения контура
Каждый вектор контура называется элементарным вектором (ЭВ). А сама последовательность комплекснозначных чисел - вектор-контуром (ВК). Таким образом, вектор-контур Г длины k можно обозначить как
(3)
где y0, y1, …, yk-1, - элементарные вектора вектор-контура Г.
В КА используется именно комплекснозначное кодирование, потому что операция скалярного произведения для векторов и для комплексных чисел - различны. Операции над контуром именно как над вектором комплексных чисел обладает необходимыми математическими свойствами, по сравнению с другими способами кодирования. Именно это обстоятельство и дает преимущество методам КА.
Свойства контуров:
· сумма ЭВ замкнутого контура равна нулю, поскольку элементарные векторы приводят в начальную точку, а значит их сумма равна нуль-вектору;
· контур-вектор не зависит от параллельного переноса исходного изображения; поскольку контур кодируется относительно начальной точки, то этот способ кодирования инвариантен сдвигу исходного контура;
· поворот изображения на определенный угол равносилен повороту каждого ЭВ контура на тот же угол;
· изменение начальной точки ведет к циклическому сдвигу ВК; поскольку ЭВ кодируются относительно предыдущей точки, то понятно, что при изменении начальной точки последовательность ЭВ будет та же самая, но первым ЭВ будет тот, который начинается в начальной точке;
· изменение масштаба исходного изображения можно рассматривать как умножение каждого ЭВ контура на масштабный коэффициент.
Скалярным произведением контуров Г и N называется такое комплексное число
(4)
где k - размерность ВК;
гn -- n-й элементарный вектор контура Г;
нn -- n-й ЭВ контура N;
(гn, нn) -- скалярное произведение комплексных чисел, вычисляемое как
(5)
где а - вещественная часть первого комплексного множителя,
b - мнимая часть первого комплексного множителя,
с - вещественная часть второго комплексного множителя,
d - мнимая часть второго комплексного множителя,
i - мнимая единица.
В КА допускается скалярное произведение только ВК одинаковой размерности. То есть число элементарных векторов в контурах должно совпадать.
Результатом скалярного произведения векторов является действительное число. А результатом произведения комплексных чисел - комплексное число.
Действительная часть скалярного произведения комплексных чисел совпадает со скалярным произведением соответствующих векторов. То есть комплексное произведение включает в себя векторное скалярное произведение.
Физический смысл и свойства скалярного произведения. В линейной алгебре скалярное произведение равно произведению длин векторов на косинус угла между ними. Это значит, что два перпендикулярных вектора всегда будут иметь нулевое скалярное произведение, коллинеарные же вектора - напротив, будут давать максимальное значение скалярного произведения.
Эти свойства произведения позволяют использовать его как определенную меру близости векторов. Чем оно больше - тем меньше угол между векторами, тем «ближе» они друг к другу. Для перпендикулярных векторов - оно опускается до нуля, и далее становится отрицательным для векторов, направленных в разные стороны. Скалярное произведение (4) также обладает похожими свойствами.
Далее вводится еще одно понятие - нормированное скалярное произведение (НСП)
(6)
где |Г| и |N| -- нормы(длины) контуров, вычисляемые как
. (7)
НСП в пространстве комплексных чисел, также является комплексным числом. При этом, единица - это максимально возможное значение модуля НСП (это следует из неравенства Коши-Буняковского: |ab|?|a||b|), и она достигается только если
, (8)
где м - произвольное комплексное число.
Физический смысл умножения комплексных чисел следующий. При умножении комплексных чисел, их модули (длины) перемножаются, а аргументы(углы) - складываются. Значит контур мN это тот же контур N, но повернутый и промасштабированный, как показано в таблице 1. Масштаб и поворот определяется комплексным числом м.
Модуль НСП достигает максимального значение - единицы, только если контур Г является тем же контуром N, но повернутым на некоторый угол и промасштабированный на определенный коэффициент.
Для примера рассмотрено скалярное умножение контура самого на себя, но повернутого на определенный угол.
Так, если посчитать НСП вектора самого на себя, то мы получим НСП=1, если повернуть контур на 90 градусов, получается НСП=0+i, поворот на 180 градусов даст НСП=-1. При этом, действительная часть НСП будет давать косинус угла между контурами, а модуль НСП всегда будет равна единице.
Таблица 1 - Свойства нормированного скалярного произведения векторов
Аналогично, если умножить ВК на некоторый действительный коэффициент, то получится НСП=1 (это несложно увидеть из формулы (4)).
Итак, модуль нормированного скалярного произведения контуров даст единицу только в том случае, если эти два контура равны с точностью до поворота и масштаба. В противном случае, модуль НСП будет строго меньше единицы. Это центральный вывод КА. Фактически, модуль НСП является инвариантом по переносу, вращению и масштабированию контуров. Если есть два одинаковых контура, то их НСП всегда даст единицу, не зависимо от того, где контуры находятся, каков их угол поворота и масштаб. Аналогично, если контуры различны, то их НСП будет строго меньше единицы, и также независимо от места, вращения и масштаба.
Модуль дает меру сходства контуров, а аргумент НСП (равный atan(b/a)) - дает угол поворота контуров относительно друг друга. НСП является чрезвычайно полезной формулой для поиска похожих между собой контуров. К сожалению, есть одно обстоятельство не позволяющее использовать его напрямую. И это обстоятельство - выбор начальной точки.
Дело в том, что равенство (7) достигается только если начальные точки контуров - совпадают. Если же контуры одинаковы, но отсчет ЭВ начинается с другой начальной точки, то модуль НСП таких контуров не будет равен единице.
Вводится понятие взаимокорреляционной функции (ВКФ) ф(m) двух контуров
, (9)
где N(m) -- контур, полученный из N путем циклического сдвига его ЭВ на m элементов.
Для примера, если N=(n1, n2, n3, n4), то N(1)=(n2, n3, n4, n1), N(2)=(n3, n4, n1, n2) и так далее.
Значения взаимокорреляционной функции показывают, насколько похожи контуры Г и N, если сдвинуть начальную точку N на m позиций.
ВКФ определена на всем множестве целых чисел, но поскольку циклический сдвиг на k приводит нас к исходному контуру, то ВКФ является периодической, с периодом k. Поэтому нас будет интересовать значения этой функции только в пределах от 0 до k-1.
Находится величина фmax, имеющая максимальный модуль среди значений ВКФ
. (10)
Из определений НСП и ВКФ, понятно, что фmax является мерой похожести двух контуров, инвариантной переносу, масштабированию, вращению и сдвигу начальной точки.
При этом, модуль |фmax| показывает степень похожести контуров, и достигает единицы для одинаковых контуров, а аргумент arg(фmax) дает угол поворота одного контура, относительно другого.
Вводится еще одно понятие - автокорреляционной функции (АКФ) х(m). Автокорреляционная функция является ВКФ для которой N=Г. По сути - это скалярное произведение контура самого на себя при различных сдвигах начальной точки
. (11)
Далее представлены некоторые свойства АКФ.
Свойство 1 - АКФ не зависит от выбора начальной точки контура. Действительно, посмотрим на определение скалярного произведения (4). Как видим, изменение начальной точки приведет просто к изменению порядка суммируемых элементов и не приведет изменению суммы. Этот вывод не столь очевиден, но если вдуматься в смысл АКФ, то он ясен.
Свойство 2 - модуль АКФ симметричен относительно центрального отсчета k/2. Поскольку АКФ является суммой попарных произведений ЭВ контура, то каждая пара встретится два раза на интервале от 0 до k.
Пример - Дано N=(n1, n2, n3, n4). Значения АКФ для разных m описываются следующим образом.
АКФ(0)=(n1,n1)+(n2,n2)+(n3,n3)+(n4,n4)
АКФ(1)=(n1,n2)+(n2,n3)+(n3,n4)+(n4,n1)
АКФ(2)=(n1,n3)+(n2,n4)+(n3,n1)+(n4,n2)
АКФ(3)=(n1,n4)+(n2,n1)+(n3,n2)+(n4,n3)
АКФ(4)=(n1,n1)+(n2,n2)+(n3,n3)+(n4,n4)
Следует обратить внимание на то, что слагаемые в АКФ(1) те же самые, что и в АКФ(3), с точностью до перестановки множителей. А вспомнив, что для комплексных чисел (a, b)=(b, a)*, получаем что АКФ(1)=АКФ(3)*, где * -- знак сопряженного комплексного числа.
А поскольку |a*|=|a|, то получается что модули АКФ(1) и АКФ(3) - совпадают.
Аналогично, совпадают модули АКФ(0) и АКФ(4).
Далее везде под АКФ понимается только часть функции на интервале от 0 до k/2, поскольку остальная часть функции - симметрична первой части.
Свойство 3 - если контур имеет какую-либо симметрию относительно поворота, то аналогичную симметрию имеет его АКФ. Для примера на рисунке 7 приведены графики АКФ для некоторых контуров.
Рисунок 7 - Графики АКФ для некоторых контуров
На рисунке 7 модуль АКФ изображен чёрным цветом (АКФ изображена только для интервала от 0 до k/2).
Все контуры, кроме последнего, изображённые на рисунке 9, имеют симметрию к повороту, что приводит к симметрии АКФ. Последний же контур такой симметрии не имеет, и график его АКФ - не симметричен.
АКФ контура в определенном смысле можно считать характеристикой формы контура. Так, формы, близкие к кругу имеют равномерные значения модуля АКФ (на рисунке 9 для круга). Сильно вытянутые в одном направлении формы - имеют провал в центральной части АКФ (рисунок 9 для прямоугольника). Формы, переходящие в самих себя при повороте, имеют максимум АКФ в соответствующем месте (рисунок 9 для АКФ квадрата).
Свойство 4 - нормированная АКФ не зависит от масштаба, положения, вращения и выбора начальной точки контура. Это следует из свойств НСП.
2.2 Эквализация контуров
Методы КА подразумевают одинаковую длину контуров. В реальном же изображении контуры имеют произвольную длину. Поэтому, для поиска и сравнения контуров, все они должны быть приведены к единой длине. Этот процесс называется эквализацией. Далее рассматривается простой и быстрый способ эквализации, который, помимо приведения к единой длине, производит сглаживание контура методом скользящего среднего.
Сначала фиксируется k - длина ВК, которая будет использоваться в системе распознавания. Затем, для каждого исходного контура Г создаётся вектор-контур N длиной k. Далее возможно два варианта - либо исходный контур имеет большее число ЭВ, чем k, либо меньшее число, чем k.
Если исходный контур больше необходимого, то перебираются все его ЭВ, и считаются элементы N как сумма всех ЭВ следующим образом (C++)
Complex newVector[newCount];
for (int i = 0; i < Count; i++)
newPoint[i * newCount / Count] += oldVector[i];.
Этот алгоритм достаточно грубый, особенно для длин немногим больших k, однако он вполне применим на практике. Выбор значения k определяется спецификой прикладной области. С одной стороны, большая длина k означает большие затраты на вычисления. С другой стороны - малые значения k несут меньше информации, и точность распознавания снижается, а распознавание шума - увеличивается.
Опытным путем установлено, что при малых значениях k (менее 30) резко повышается число шумовых распознаваний (распознавание как символов шума или других несимвольных элементов изображения), снижается число верных распознаваний, и увеличивается число ложных распознаваний. Таким образом, значение k=30 является оптимальным для данной системы распознаваний.
Можно выявить, что увеличение длины контура, после определенного уровня вовсе не приводит к улучшению качества распознавания. Это связано с тем, что в описанном методе, эквализация проводится одновременно со сглаживанием контуров. При больших значениях длины, сглаживание становится все более мелкомасштабным, и контур становится слишком детализированным, и следовательно, более отличным от шаблонных контуров.
3. Разработка программного обеспечения системы технического зрения
3.1 Структура системы технического зрения
На рисунке 8 представлена структурная схема системы технического зрения.
Размещено на http://www.allbest.ru/
Рисунок 8 - Структурная схема системы технического зрения
Веб-камера установлена так, чтобы видеть рабочую область сверху. Располагать камеру имеет смысл так, чтобы её поле зрения охватывало ту область, до которой манипулятор может дотянуться. ЭВМ обрабатывает изображение, которое передается с веб-камеры посредством интерфейса USB. Результатом обработки являются преобразованные координаты идентифицированного объекта, которые передаются управляющему контроллеру. Координаты сохраняются в энергозависимой памяти и используются для формирования управляющих сигналов для сервоприводов. Управление манипулятором доступно также в ручном режиме с помощью отдельной клавиатуры. Управляющие сигналы отклоняют сервоприводы так, чтобы захват манипулятора установился над указанным объектом. Сжатие захвата производится в ручном режиме. Для управления клешнёй используется контроллер ATMega32a [1, 2, 3, 4].
3.2 Функциональная схема устройства управления манипулятором
Функциональная схема устройства управления манипулятором представлена на рисунке 9.
В состав устройства управления манипулятором входят:
· управляющий микроконтроллер AtMega32A;
· интегральная схема MAX232, преобразующая сигналы последовательного порта RS-232 в сигналы, пригодные для использования в цифровых схемах на базе ТТЛ;
· разъем последовательного порта типа DB9;
· блок клавиш;
· блок индикаторов;
· генератор тактовых импульсов.
Отклонение сервоприводов регулируется управляющими сигналами через порты ввода-вывода. Блок клавиш подсоединен к портам, которые настроены как входы, диоды - на выходы. Порты, к которым одновременно присоединены и кнопки и диоды могут быть настроены как входы или как выходы в зависимости от текущего состояния. Микроконтроллер имеет на борту универсальный последовательный интерфейс -- UART. По структуре это обычный асинхронный последовательный протокол, то есть передающая сторона по очереди выдает в линию 0 и 1, а принимающая отслеживает их и запоминает. Синхронизация идет по времени -- приемник и передатчик заранее настроены, на какой частоте будет идти обмен. Если скорость передатчика и приёмника не будут совпадать, то передачи может не быть вообще, либо будут считаны не те данные. Протокол реализован аппаратно. По такому же протоколу работает COM порт компьютера, разница лишь в разнице напряжений, поэтому для связи используется схема MAX232.
3.3 Схема взаимосвязей программы
Схема взаимосвязей программы представлена на рисунке 10.
Рисунок 10 - Схема взаимосвязей программы
Блок интерфейса пользователя позволяет задавать команды управления манипулятором, управлять шаблонами, а также настройками камеры.
Блок управления камерой содержит функции начальной настройки камеры, получения изображения и его предварительной обработки.
Блок выполнения контурного анализа отвечает за нахождение контуров, их классификации и определения их пространственного положения.
Блок расчета координат принимает координаты, полученные в результате КА, и переводит их в координаты сервоприводов. Также координаты могут быть получены непосредственно от пользователя.
Блок подстройки манипулятора выполняет минимизацию погрешностей координат, полученных в результате расчетов.
Блок передачи координат сервоприводов выполняет настройку интерфейса между ЭВМ и управляющим контроллером, а также передачу данных.
Блок добавления шаблонов позволяет сформировать новые шаблоны и сохранить их для дальнейшей работы.
Блок добавления команд представляет собой конструктор пользовательских команд.
Блок выполнения команд дешифрирует команды программы, заданной пользователем и отвечает за дальнейшее их выполнение.
Блок управления сервоприводами, выполняемый непосредственно контроллером, отвечает за принятие координат и формирование управляющих сигналов сервоприводов.
3.4 Разработка схемы работы программы
Схема работы программы представлена на рисунке 11.
Работа программы начинается с отображения пользовательского меню. При запуске программы производится чтение из файла шаблонов контуров. Далее пользователь осуществляет выбор пункта меню.
В блоке 4 выполняется инициализация com-порта, связывающего компьютер с управляющим контроллером. После чего отправляются координаты начальных положений сервоприводов манипулятора.
В блоке 5 выполняется запуск подпрограммы обработки кадров, в которой происходит получение изображения с камеры (блок 28), его обработка (блок 29), поиск маркеров (блок 30), вывод изображений на экран (исходное, бинаризированное, изображение с маркерами) (блок 31). Данная последовательность действий происходит циклически, параллельно с работой программы.
В блоке 6 выполняется калибровка камеры по исходному положению маркеров манипулятора, а также нахождение координат левого верхнего угла кадра относительно центра манипулятора (нулевого сервопривода).
В блоке 7 пользователь задаёт значения параметров цветовой модели, используемой для бинаризации исходного изображения.
В блоке 8 вводятся исходные данные для команд, а в блоке 9 формируются команды, добавляемые в пользовательскую программу. В блоке 10 производится удаление текущей команды из пользовательской программы.
В блоке 11 происходит декодирование команды.
При выполнении команды «Найти» происходит получение бинаризированного изображения с камеры (блок 12), выполнение контурного анализа (блок 13) и вывод списка найденных контуров (блок 14).
При выполнении команд «Взять» или «Переместить» производится вычисление координат сервоприводов (блок 15) на основе исходных данных команды (для команды «Переместить») или на основе координат центра контура, полученных в результате контурного анализа. Далее координаты сервоприводов передаются в управляющий контроллер (блок 16). После этого происходит ожидание смены положения сервоприводов (блок 17), получение координат новой позиции маркеров (блок 18), по которым вычисляется отклонение манипулятора от заданной цели.
Рисунок 11 - Схема работы программы
Если отклонение превышает пределы допустимой погрешности, производится подстройка координат манипулятора (блок 19), иначе подстройка координат не выполняется. Для команды «Взять» выполняется передача координат для захвата объекта (блок 20) и удаление контура из списка (блок 21).
При выполнении команды «Отпустить» происходит передача координат на разжатие щупа (блок 22).
При выполнении команды «Очистить список» происходит удаление всех контуров из списка найденных (блок 23).
При выполнении команд сортировки происходит сортировка списка найденных контуров по заданным параметрам (блоки 24-27).
3.5 Выбор цветовой модели представления изображения для распознавания
Для распознавания контуров объектов, находящихся в рабочей области используется картинка с USB веб-камеры. Картинка с камеры представлена в цветовой модели RGB, то есть цвет каждого пикселя изображения закодирован с помощью трёх чисел - составляющих красного, зелёного и голубого цветов.
Для распознавания контуров с использованием цветовой модели RGB предлагается следующая последовательность действий. Картинка представляется с помощью градаций серого цвета, и пиксели, имеющие оттенок серого более определённого порога, окрашиваются в белый цвет, а все остальные - в чёрный. С помощью метода контурного анализа распознаются контуры.
Таким же образом предполагается выполнять распознавание маркеров, находящихся на пальцах щупа робота. Маркеры имеют ярко-зелёный цвет и для их выделения на картинке следует определить порог всех составляющих цвета (красный, зелёный и голубой). Далее, используя условие превышения порогов, пиксели, принадлежащие контурам маркеров закрашиваются белым (на отдельной копии кадра), а все остальные точки изображения - чёрным.
Такая модель представления цветов имеет следующие важные недостатки.
Большое влияние теней и слабой освещённости на эффективность распознавания. То есть при малейшем изменении освещённости некоторые пиксели изображения не будут распознаваться как часть контура, либо к контуру будут относиться и те пиксели, которые не являются частью его. Ещё более сложным является выделение маркеров, так как при малейшем затемнении оттенок зелёного станет другим, который не будет удовлетворять условию отсеивания, то есть существует большая вероятность ненахождения маркеров.
Три координаты задания цветового тона. Довольно сложно задать нужный цветовой тон, тем более цветовой диапазон, так как цветовой тон задают три координаты. Приходится искать их сочетание для определения тона.
Исходя из этих двух недостатков, решено рассмотреть существующие модели представления цвета и выбрать наиболее подходящую. Но для начала следует рассмотреть, что такое цвет.
Общие сведедния о цвете. Цвет имеет как психофизиологическую, так и психофизическую природу. Восприятие цвета зависит от физических свойств света, т. е. электромагнитной энергии, от его взаимодействия с физическими веществами, а также от их интерпретации зрительной системой человека. Эта проблема чрезвычайно широка, сложна и интересна. Следует рассмотре ть наиболее важные понятия, основы связанных с цветом физических явлений, систем представления цвета и преобразований между ними. Зрительная система человека воспринимает электромагнитную энергию с длинами волн от 400 до 700 нм как видимый свет (1 нм= 10-9 м), как показано на рисунке 12
Рисунок 12 - Видимый свет
Свет принимается либо непосредственно от источника, например электрической лампочки, либо косвенно при отражении от поверхности объекта или преломлении в нем. Источник или объект является ахроматическим, если наблюдаемый свет содержит все видимые длины волн в приблизительно равных количествах. Ахроматический источник кажется белым, а отраженный или преломленный ахроматический свет - белым, черным или серым. Белыми выглядят объекты, ахроматически отражающие более 80% света белого источника, а черными - менее 3%. Промежуточные значения дают различные оттенки серого. Интенсивность отраженного света удобно рассматривать в диапазоне от 0 до 1, где 0 соответствует черному, 1 - белому, а промежуточные значения - серому цвету.
Хотя трудно определить различие между светлотой и яркостью, светлота обычно считается свойством несветящихся или отражающих объектов и изменяется от черного до белого, а яркость является свойством самосветящихся или излучающих объектов и изменяется в диапазоне от низкой до высокой. Светлота или яркость объекта зависит от относительной чувствительности глаза к разным длинам волн. Из рисунка 13 видно, что при дневном свете чувствительность глаза максимальна при длине волны порядка 550 нм, а на краях видимого диапазона спектра она резко падает.
Рисунок 13 - Относительная чувствительность глаза
Кривая на рисунке 13 называется функцией спектральной чувствительности глаза. Это мера световой энергии или интенсивности с учетом свойств глаза. Если воспринимаемый свет содержит длины волн в произвольных неравных количествах, то он называется хроматическим.
Если длины волн сконцентрированы у верхнего края видимого спектра, то свет кажется красным или красноватым, т. е. доминирующая длина волны лежит в красной области видимого спектра. Если длины волн сконцентрированы в нижней части видимого спектра то свет кажется синим или голубоватым, т. е. доминирующая длина волны лежит в синей части спектра. Однако сама по себе электромагнитная энергия определенной длины волны не имеет никакого цвета. Ощущение цвета возникает в результате преобразования физических явлений в глазу и мозге человека. Цвет объекта зависит от распределения длин волн источника света и от физических свойств объекта. Объект кажется цветным, если он отражает или пропускает свет лишь в узком диапазоне длин волн и поглощает все остальные. При взаимодействии цветов падающего и отраженного или пропущенного света могут получиться самые неожиданные результаты. Например, при отражении зеленого света от белого объекта и свет, и объект кажутся зелеными, а если зеленым светом освещается красный объект, то он будет черным, так как от него свет вообще не отражается.
Психофизиологическое представление света определяется цветовым тоном, насыщенностью и светлотой. Цветовой тон позволяет различать цвета, а насыщенность - определять степень ослабления (разбавления) данного цвета белым цветом. У чистого цвета она равна 100% и уменьшается по мере добавления белого. Насыщенность ахроматического цвета составляет 0%, а его светлота равна интенсивности этого света.
Психофизическими эквивалентами цветового тона, насыщенности исветлоты являются доминирующая длина волны, чистота и яркость. Электромагнитная энергия одной длины волны в видимом спектре дает монохроматический цвет.
Обычно встречаются не чистые монохроматические цвета, а их смеси. В основе трехкомпонентной теории света служит предположение о том, что в центральной части сетчатки находятся три типа чувствительных к цвету колбочек. Первый воспринимает длины волн, лежащие в середине видимого спектра, т. е. зеленый цвет; второй - длины волн у верхнего края видимого спектра, т. е. красный цвет; третий - короткие волны нижней части спектра, т. е. синий. Относительная чувствительность глаза, как показано на рисунке 12 максимальна для зеленого цвета и минимальна для синего. Если на все три типа колбочек воздействует одинаковый уровень энергетической яркости (энергия в единицу времени), то свет кажется белым.
Естественный белый свет содержит все длины волн видимого спектра; однако ощущение белого света можно получить, смешивая любые три цвета, если ни один из них не является линейной комбинацией двух других. Это возможно благодаря физиологическим особенностям глаза, содержащего три типа колбочек. Такие три цвета называются основными
Цветовая модель-- это способ воспроизведения цветовых ощущений. Например, модель RGB -- это описание трех лучей определенного спектрального состава (красного (R), зеленого (G), синего (B)). Цветовая модель CMYK работает на основе четырех составляющих -- голубого, пурпурного, желтого и черного красителей (чернила принтера, печатные краски). Кроме цветовой модели существует понятие цветовой координатной системы. Будем считать, что цветовая координатная система подразумевает наличие стандартизованных цветовых координат, а значения переменных цветовой модели не имеют ничего общего с координатами.
RGB - самая естественная модель кодировки цвета, построена на трёх основных цветах, которые воспринимают разные виды колбочек. Каждый из цветов R-Красный, G-Зеленый и B-Синий имеют один из 256 уровней интенсивности. Эту модель еще называют аддитивной, потому что с увеличением яркости отдельных цветов результирующий цвет тоже становится ярче. На рисунке 14 показано, как смешиваются цвета, например, красный + зеленый, дает желтый, а красный + синий, даст фиолетовый.
Рисунок 14- Смешение цветов в RGB
При равной интенсивности всех трех цветов, получаются градации серого, при максимальной яркости - белый, при отсутствии - черный. С точки зрения редактирования изображения на экране компьютера, эта цветовая модель является наиболее удобной, так как обеспечивает доступ ко всем 16 миллионам цветов, которые могут быть выведены на экран. Недостатком модели RGB является то, что не все цвета созданные в этом режиме могут быть выведены на печать.
Другая модель, которая используется в компьютерной графике, -модель HSV. Растровые форматы не используют модель HSV для хранения изображений, так как она содержит всего 3 миллиона цветов.
В модели HSV цвет разлагается на три составляющие:
· hue -- цветовой тон, (например, красный, зелёный или сине-голубой), варьируется в пределах 0--360°, каждое значение соответствует одному цвету, например, 0 - это красный цвет, 45 - оттенок оранжевого и 55 - оттенок желтого. Иногда приводится к диапазону 0--100 или 0--1;
· saturation -- насыщенность. Это соотношение основного тона и равного ему по яркости бесцветно серого. Максимально насыщенный цвет не содержит серого вообще. Чем меньше насыщенность цвета, тем он нейтральней, тем труднее однозначно охарактеризовать его. Чем больше этот параметр, тем «чище» цвет, поэтому этот параметр иногда называют чистотой цвета. Обычно варьируется в пределах 0--100% (0 означает отсутствие цвета, т.е. оттенок серого в диапазоне между черным и белым; 100 - насыщенный цвет) или 0--1.
Подобные документы
Информационно-измерительные системы мобильных роботов. Системы технического зрения; дескриптивный подход к обработке, анализу и распознаванию изображений. Разработка программного обеспечения для создания СТЗ мобильного робота для ориентации в комнате.
дипломная работа [5,5 M], добавлен 10.05.2014Описание вычислительной техники, характеристика операционных систем и языков программирования. Сравнительный анализ аналогов и прототипов. Разработка алгоритма решения задачи. Выбор средств и методов решения задач. Проектирование программного обеспечения.
отчет по практике [1,0 M], добавлен 23.03.2015- Определение величины дисторсии цифровых изображений, формируемых системами технического зрения (СТЗ)
Оснащение робототехнических комплексов систем технического зрения. Математическая модель и векторная диаграмма дисторсии изображения. Создание эталонного изображения тестового объекта. Определение основных погрешностей формирования изображения.
курсовая работа [1,4 M], добавлен 14.06.2014 Разработка интерфейсной и функциональной части информационной системы для станции технического обслуживания. Анализ предметной области и постановка задачи на проектирование. Математические методы в прогнозировании. Реализация модуля прогнозирования.
курсовая работа [1,7 M], добавлен 26.05.2010Этапы процедуры принятия решений. Разработка математического алгоритма. Блок-схема алгоритма работы программы. Разработка программы на языке программирования С++ в среде разработки MFC. Текст программы определения технического состояния станка с ЧПУ.
курсовая работа [823,0 K], добавлен 18.12.2011Понятие и ключевое отличие распределенной разработки программного обеспечения, его достоинства и недостатки. Концептуальное решение и выбор типа разработки. Особенности программного обеспечения с открытым исходным кодом. Идея и развитие Open Source.
курсовая работа [97,7 K], добавлен 14.12.2012Проблема охлаждения в компьютере. Выбор и описание прототипов разрабатываемого устройства. Разработка структурной и принципиальной схемы. Разработка программного обеспечения, его выбор и обоснование. Моделирование работы исследуемого устройства.
курсовая работа [2,7 M], добавлен 10.11.2014Обоснование выбора технических средств, используемых для создания программы автоматизированного учета технического и программного обеспечения "ЦЗН Вельского района". Входные и выходные документы. Обзор процесса отладки программы. Инструкция пользователю.
дипломная работа [1,1 M], добавлен 15.06.2017Обоснование необходимости разработки компьютерной системы тестирования студентов. Анализ используемого программного и технического обеспечения на предприятии. Требования к функционированию модуля. Сведения о программе: структура, настройка и проверка.
курсовая работа [1,7 M], добавлен 13.06.2017Разработка информационной системы на базе высокоскоростной сети для ООО "СВД". Анализ организационной структуры разрабатываемой сети; определение топологии; выбор сетевого программного обеспечения, подбор технического оборудования и расчет его стоимости.
курсовая работа [3,6 M], добавлен 10.01.2013