Автоматизация системы управления квадрокоптера - Коммуникации, связь, цифровые приборы и радиоэлектроника дипломная работа

Автоматизация системы управления квадрокоптера - Коммуникации, связь, цифровые приборы и радиоэлектроника дипломная работа



































Рассмотрение и характеристика особенностей беспилотных мультироторных летательных аппаратов. Исследование технологии компьютерного зрения. Анализ процесса передачи данных на бортовой контроллер. Ознакомление с базовыми принципами полета квадрокоптера.


посмотреть текст работы


скачать работу можно здесь


полная информация о работе


весь список подобных работ


Нужна помощь с учёбой? Наши эксперты готовы помочь!
Нажимая на кнопку, вы соглашаетесь с
политикой обработки персональных данных

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Министерство образования и науки Российской Федерации
федеральное государственное бюджетное образовательное учреждениевысшего образования
«Иркутский государственный университет»
Выпускная квалификационная работа бакалавра по направлению 03.03.03 Радиофизика
«Радиоэлектронные устройства, методы обработки сигналов и автоматизации»
Тема: «Автоматизация системы управления квадрокоптера»
1. Беспилотные мультироторные летательные аппараты
1.1 Базовые принципы полета квадрокоптера
2.2 Методы обработки изображений в компьютерном зрении
3.1 Примитивные типы данных в OpenCV
4 .Разработка системы управления квадрокоптером на базе IMU и ультразвукового дальномера HC-504
4.1 Сборка устройства и код для получения данных
5. Разработка ПО для распознавания жестов руки с видеосигнала методами библиотеки OpenCV
5.1 Постановка задачи и проектирование программного обеспечения
5.5 Нахождение дефектов обводящего контура
6. Формирование сигналов и передача полученных данных
6.1 Передача данных через серийный порт
6.2 Передача данных на бортовой контроллер
На сегодняшний день беспилотные летательные аппараты (БПЛА) - бурно развивающаяся область техники. БПЛА выполняют широкий спектр как военных, так и гражданских задач. В последние годы большую популярность приобрели мультироторные БПЛА (мультикоптеры) по причине доступности и простоты эксплуатации. Мультикоптеры используются для доставки грузов, фото- и видеосъемки, поисковых работ, наблюдения за природными явленими и многого другого.
Разработки в этой области активно ведутся как коммерческими предприятиями, так и любителями. В данной работе описан проект, цель которого - автоматизировать систему управления мультикоптера с четырьмя роторами, сделать управление интуитивно понятным и отзывчивым. В результате было разработано устройство, способное передавать «с Земли» всю информацию, необходимую для пилотирования мультикоптера, используя лишь жесты одной руки. Разработка устройства от проектирования и до готового кода велась самостоятельно и в ней, кроме всего прочего, были использованы источники с открытым исходным кодом - платформа Arduino ибиблиотека компьютерного зрения OpenCV.Устройство является прототипом, но имеет перспективы к развитию и реальному использованию.
1. Беспилотные мультироторные летательные аппараты
Квадрокоптер (разновидность мультикоптера) -- это летательный аппарат построенный по вертолётной схеме с четырьмянесущими винтами.
Многовинтовые вертолёты разрабатывались ещё в первые годы вертолётостроения. Один из первых квадрокоптеров, который реально оторвался от земли и мог держаться в воздухе, был создан Георгием Ботезатом и испытан в 1922 году. Недостатком этих аппаратов была сложная трансмиссия, передававшая вращение одного мотора на несколько винтов. Изобретение хвостового винта и автомата перекоса положило конец этим попыткам. Новые разработки начались в 1950-е годы, но дальше прототипов дело не продвинулось. беспилотный квадрокоптер контроллер
Новое рождение мультикоптеры получили в XXI веке, уже как беспилотные аппараты. Благодаря простоте конструкции квадрокоптеры часто используются в любительском моделировании. Мультикоптеры удобны для недорогой аэрофото- и киносъёмки -- громоздкая камера вынесена из зоны действия винтов.
Квадрокоптеры имеют четыревинта постоянного шага (автомата перекоса, в отличие от одно- и двухвинтовых аппаратов, нет). Каждый винт приводится в движение собственным двигателем. Половина винтов вращается по часовой стрелке, половина -- против, поэтому хвостовой винт квадрокоптеру не нужен. Маневрируют квадрокоптеры путём изменения скорости вращения винтов. Например:
· ускорить винты с одной стороны и замедлить с другой -- движение в сторону;
· ускорить винты, вращающиеся по часовой стрелке, и замедлить вращающиеся против -- поворот.
Микропроцессорная система переводит команды радиоуправления в команды двигателям. Чтобы обеспечить стабильное зависание, мультикоптеры в обязательном порядке снабжают тремя гироскопами, фиксирующими крен аппарата. Как вспомогательный инструмент, иногда, также используется акселерометр, данные от которого позволяют процессору устанавливать абсолютно горизонтальное положение, и бародатчик, который позволяет фиксировать аппарат на нужной высоте. Также, применяют сонар для автоматической посадки и удержания небольшой высоты, а также для облёта препятствий.
Современные мультикоптеры используют бесколлекторные электродвигатели и литий-полимерные аккумуляторы в качестве источника энергии. Это накладывает определённые ограничения на их полётные характеристики: типичная масса мультикоптера составляет от 1 до 4 кг, при времени полёта от 10 до 30 минут (30--50 минут у уникальных единичных экземпляров). Поднимаемый полезный груз моделями мультикоптеров среднего размера и грузоподъёмности -- от 500 г до 2--3 кг, что позволяет поднять в воздух небольшую фото или видеокамеру. Существуют и достаточно крупные модели мультикоптеров, с количеством роторов порядка 6-8 (гекса и октокоптеры), способные поднять в воздух груз массой до 20-30 кг. Для увеличения грузоподъёмности применяют соосное расположение несущих роторов, что в случае гексакоптера, например, даёт 12 моторов и 12 пропеллеров, расположенных попарно на 6 несущих лучах. Скорость полёта мультикоптера может быть от нуля (неподвижное висение в точке) до 100--110 км/ч. Запас энергии батарей позволяет отдельным моделям мультикоптеров улетать на расстояние до 7-12 км, на практике же радиус действия (максимальное расстояние, на которое они способны улететь с последующим возвратом в точку взлёта) обычно ограничено прямой видимостью (100--200 м при ручном управлении) либо дальностью действия аппаратуры радиоуправления и видеолинка. При этом лучшие образцы подобной аппаратуры, использующие усилители мощности радиосигнала и систему направленных антенн, способны обеспечивать стабильные радиоуправление и видеолинк на расстояния до 100 км. Таким образом, наибольшее ограничение на радиус действия мультикоптеров накладывает именно время полёта.
1.1 Базовые принципы полета квадрокоптера
Квадрокоптер состоит из нескольких принципиальных элементов, без большинства из которых стабилизированный полет невозможен. Во-первых, это полетный контроллер, который обрабатывает всю поступающую информацию и преобразует в сигналы для двигателей. Контроллер принимает входящую информацию чаще всего как цифровой сигнал с широтно-импульсной модуляцией. Для полной ориентации в воздухе достаточно четырех каналов: газ, рыскание, тангаж и крен. В некоторых моделях полетных контроллеров также предусмотрена возможность использования режимов полета - тогда во входном сигнале появляются дополнительные каналы. Также к входам контроллера подключены датчики, описывающие положение борта в воздухе. Исходя из этих данных, контроллер автоматически вносит корректировки в выходной сигнал.
После сигнал обрабатывается таким образом, чтобы на выходе получить соответствующие величины напряжений, пропорциональных скорости каждого из четырех винтов. С выхода контроллера сигнал, так же широтно-импульсно промодулированный, поступает на так называемый ПИД-регулятор, который управляет сигналом большой мощности, подавая его непосредственно на сам двигатель.
Рис.1. Принципиальная схема квадрокоптера
Базовые принципы полетов любой техники описывает аэродинамика и квадрокоптеры не являются исключением. Три оси вращения абсолютно однозначно задают ориентацию квадрокоптера в пространстве и направление его полета. Причем направление движения никак не зависит от расположения самого квадрокоптера в воздухе.
Три перечисленных выше оси или угла принято правильно называть тангажом (pitch), креном (roll) и рысканьем (yaw). Разберем их более подробно.
Рис.2. Углы Эйлера - крен, тангаж и рыскание
Под тангажом понимают поворот аппарата вокруг продольной оси, рысканием - вокруг вертикальной оси, а креном - продольной оси.
Если брать в рассмотрение вертолет, то его главный винт имеет влияние на тангаж и крен, а хвостовой компенсирует вращающий момент и от того, с какой скоростью он вращается и в каком положении находится, зависит рыскание.
В случае квадрокоптера все обстоит иначе. Здесь имеются целых четыре винта, два из которых вращаются по часовой стрелке, а два других в противоположном направлении. Соответственно если все из винтов квадрокоптера имеют одинаковую скорость вращения, то все параметры будут скомпенсированы. При увеличении скорости вращения одного из винтов квадрокоптера баланс нарушается. При этом, если скорость винта с обратным направлением вращения будет пропорционально уменьшена, то рыскание не поменяется, но изменится тангаж или крен[1].
Если же увеличивать обороты одновременно на обоих винтах, которые вращаются в одном направлении и уменьшить на других, то угол рыскания будет изменен.
Управление двигателями квадрокоптера, а, следовательно, и скоростью вращения его винтов, осуществляется с пульта дистанционного управления, сигнал с которых поступает на бортовой компьютер квадрокоптера и к ним добавляются необходимые коррекции от гироскопа, акселерометра и так далее.
При проектировании и создании квадрокоптера следует выполнить все необходимые расчеты с целью нахождения оптимального баланса между массой аппарата, мощностью установленных на него двигателей и целого ряда других факторов.
Сигнал с полетного контроллера поступает не напрямую на двигатель, а на так называемый ПИД-регулятор, который исходя из входного сигнала выдает двигателю соответствующее напряжение. ПИД-регулирование - необходимая технология для управления квадрокоптером.
Например, имеется дрон которому необходимо повернуться на 60 градусов относительно центра масс. Движение вокруг центра осуществляется подачей на его привода требуемой угловой скорости вращения. Для того, чтобы повернуться именно на 60 градусов необходимую угловую скорость надо подавать по определённому закону. В момент, когда разность между текущим углом и требуемым ещё значительна, угловая скорость должна быть высокой. При уменьшении же разности должна уменьшаться и скорость. Когда разность окажется равна 0, угловая скорость также должна равняться 0. Однако, такой закон не представляется возможным определить заранее, потому что квадрокоптер обладает моментом инерции, и он способен просто пролететь необходимое положение, а в этом случае придётся подавать скорость в обратном направлении. Самое стандартное решение в такой ситуации - сообщать необходимую скорость как разность требуемого положения и текущего, умноженную на определённую неотрицательную постоянную. Подобный алгоритм называется П регулятором. Однако, такой алгоритм обладает существенным недостатком: в случае, когда требуемое угловой положение вращается с определённой угловой скоростью, то дрон никогда не догонит эту точку. Рано или поздно наступит момент, когда угловая скорость, выверенная П регулятором, будет равна угловой скорости вращения необходимого положения. Для качественного решения данной задачи рекомендуется сложить скорость от П регулятора со скоростью, рассчитанной как интеграл по времени ошибки по углу, умноженный на определённую неотрицательную постоянную. В такой ситуации необходимая скорость будет тем выше, чем дольше дрон не способен занять требуемое угловое положение. Данный алгоритм является ПИ регулятором. Но и этот алгоритм можно доработать. В момент, когда ошибка по углу будет равняться 0, дрон под действием сил инерции пролетит нужное положение, при условии, что его скорость до этого была относительно высокой. Чтобы этого избежать необходимо совершать торможение чуть быстрее, когда ещё ошибка мала, а именно - к требуемой скорости от ПИ регулятора добавить производную ошибки по времени, которая в свою очередь умножается на положительную постоянную. Это и есть ПИД регулятор.
Пропорционально-интегральное-дифференциальное управление может быть представлено следующей схемой:
Рис.3. Принципиальная схема ПИД-регулятора
В блокеprocess содержится описание объекта управления (его модель), в центральной части схемы представлен сам регулятор, который отрабатывает сигнал ошибки(рассогласования) задающего сигнала и измеренного значения с объекта управления. Ошибка в данной схеме поступает одновременно на все три блока параллельно, при этом:
· в блоке P происходит умножение соответствующего коэффициента пропорциональной составляющей на величину ошибки;
· в блоке I происходит интегрирование ошибки и умножение полученной величины на коэффициент ;
· в блоке D происходит дифференцирование ошибки с умножением на коэффициент ;
u(t) - выходная величина регулятора;
e(t) -сигнал рассогласования(ошибка);
P, I, D - пропорциональная, интегральная и дифференциальная составляющие;
Распространены также следующие модификации уравнения ПИД регулятора:
Взаимосвязь коэффициентов, входящих в выражения и существует, но отсутствие общепринятой системы параметров почти всегда приводит к путанице. Если происходит замена одного ПИД регулятора на другой или же если происходит настройка параметров - это нужно учесть.
Пользуясь преобразованием Лапласа при нулевых начальных условиях, представим передаточную функцию ПИД регулятора в операторной форме:
На рис. 4 изображены амплитудно-частотная(АЧХ) и фазо-частотная(ФЧХ) характеристики операторной передаточной функции. В области нижних частот АЧХ и ФЧХ определяются интегральным членом, в области средних частот - пропорциональным, в области высоких - дифференциальным[3].
Вид АЧХ и ФЧХ регулятора определяет его точность и запас устойчивости. Из рисунка 2 следует, что при уменьшении интегральной составляющей , происходит увеличение модуля коэффициента усиления регулятора на нижних частотах (то есть при приближении к установившемуся режиму), следовательно, погрешность «e» начинает снижаться.
При повышении дифференциальной компоненты происходит усиление на высоких частотах, что влечёт за собой усиление шумов измерений и внешних возмущений. Исходя из этого следует, что дифференциальную составляющую используют только для улучшения формы переходного процесса в системе, тогда как её практическая реализация зачастую содержит фильтр высоких частот(ФВЧ).
Рис.5. ПИД-регулятор в системе с шумом и внешними возмущениями f(t)
Повышение пропорционального коэффициента K влечёт за собой увеличение модуля петлевого усиления контура регулирования, а также увеличение точности во всём диапазоне частот, однако запас по фазе и усилению начинает снижаться, что ухудшает робастность и качество регулирования системы, а при дальнейшем увеличении пропорциональной составляющей K возникают периодические колебания (система теряет устойчивость). Воздействие помех измерений f и шума снижается с ростом петлевого усиления и пропорционального коэффициента.
Полетный контроллер - это основная плата управления, обеспечивающая функционирование мультикоптера. В качестве вычислительного центра платы управления используется микроконтроллер, зачастую это либо маломощные Atmega328, либо более современные, Atmega2560 или ARM-контроллеры (STM32)
К функциям полетного контроллера относятся:
· Удержание высоты (при помощи барометра) и позиции (при помощи GPS)
· Автоматический полет по заданным заранее точкам (опционально)
· Передача на землю текущих параметров полета с помощью модема или Bluetooth (опционально)
· Обеспечение безопасности полета (возврат в точку взлета при потере сигнала, автопосадка)
· Подключение дополнительной периферии: OSD, светодиодной индикации и пр.
Количество функций зависит от наличия на борту мультикоптера соответствующей периферии, в бюджетных контроллерах ряд функций может отсутствовать.
Используемый в данном проекте полетный контроллер ArduPilot Mega является полноценным решением БПЛА, который позволяет помимо радиоуправляемого дистанционного пилотирования - автоматическое управление по заранее созданому маршруту, т.е. полет по точкам, а также обладает возможностью двухсторонней передачей телеметрических данных с борта на наземную станцию (телефон, планшет, ноутбук, DIY) и ведение журнала во встроенную память.
Он основан на автопилоте APM 2.x, разрабатываемым сообществом DIY Drones и базирующийся на open-source проекте, позволяющий превратить любой аппарат в автономное средство и эффективно использовать его не только в развлекательных целях, но и для выполнение профессиональных проектов.
· 3 осевой гироскоп, акселерометр, магнитометр и высокоточный барометр
· Система стабилизации с возможностью воздушной акробатики
· Удержание позиции по GPS, полет по точкам и возврат на точку старта
· Возможность использования инфракрасного датчика для обхода препятствий
· Поддержка ультразвукового датчика (sonar sensor) для автоматического взлета и посадки
· Автоматическое следование по маршрутным точкам
· Управление двигателями посредством ШИМ (PWM) с использованием дешевых регуляторов скорости (ESC)
· Собственная система стабилизации для камеры (функция контроллера подвеса)
· Поддержка множества рам и конфигураций аппаратов
· Поддержка датчика уровня заряда батареи
· Настраиваемая световая индикация при полетах
· Совместим с многими радиоуправляемыми приемниками PWM и PPM сигналов
· Передача в реальном времени телеметрических данных
· Поддержка OSD телеметрии (наложение на видеопередачу телемерических данных) используя протокол MAVLINK
· Конфигурирования точек полета посредством Google Maps
· Бортовая флеш память 16Мбит для автоматической регистрации данных
· Цифровой компас работает на HMC5883L (до версии 2.5.2)
· 6 степеней свободы в InvenSense акселерометре , гироскоп MPU-6000
· Контроллер Atmel ATmega2560-16AU и ATMEGA32U-2 чип для обработки и функции USB
· Возможно загрузка обновлений встроенного программного обеспечения и конфигурации
Ниже описаны некоторые режимы полета, доступные контроллеру:
· Return-to-Launch - вернуться на точку старта,
· Auto - выполнение заданного маршрута в автоматическом режиме,
· Acro - акробатика (отключение всех стабилизационных систем),
· Circle - облет по кругу заданного радиуса,
· Position - фиксация в воздухе с ручным газом взлета
Контроллер предусматривает возможность самостоятельно программировать режимы полета.
В практической части работы используется алгоритм фильтрации, называемый фильтром Калмана. Это один из самых действенных методов фильтрации данных в частности в робототехнике.
Фильтр Калмана использует динамическую модель системы (например, физический закон движения), известные управляющие воздействия и множество последовательных измерений для формирования оптимальной оценки состояния. Алгоритм состоит из двух повторяющихся фаз: предсказание и корректировка. На первом рассчитывается предсказание состояния в следующий момент времени (с учетом неточности их измерения). На втором, новая информация с датчика корректирует предсказанное значение (также с учетом неточности и зашумленности этой информации)
Уравнения представлены в матричной форме. В случае с одной переменной матрицы вырождаются в скалярные значения.
В данных обозначениях: подстрочный индекс обозначает момент времени: k -- текущий, (k-1) -- предыдущий, знак «минус» в верхнем индексе обозначает, что это предсказанное промежуточное значение. Описание переменных представлены на следующих изображениях[4]:
В данном разделе даны основные теоретические сведения о рассматриваемом предмете.
Компьютерное зрение - это общее название совокупности теории и технологий создания машин, способных производить обнаружение, отслеживание и классификацию объектов.
Компьютерное зрение - это очень молодая и динамично развивающаяся область компьютерной технологии. Первые разработки в этой области появились только в начале 1970-х годов. Главной причиной этому служит то, что методы, обычно используемые в алгоритмах компьютерного зрения достаточно требовательны к вычислительной мощности машин - почти всегда приходится иметь дело с большими по временам рассвета цифровой эры массивами данных. Так же по причине относительной новизны технологии и происхождения её из многих других областей компьютерной науки, не существует стандартной формулировки проблемы компьютерного зрения, и, более того, не существует стандартного решения этой проблемы. Методы и алгоритмы компьютерного зрения очень сильно зависят от конкретно поставленной задачи и могут кардинально отличаться друг от друга. Компьютерное зрение во многом происходит от таких областей, как статистика, методы оптимизации и обработка сигналов, а также тесно пересекается с ними.
Максимально корректно задачу компьютерного зрения можно сформулировать как извлечение полезных описаний из изображения или последовательности изображений, а также в формировании полезных выводов исходя из этих описаний. Критерий полезности описания и, соответственно, нужные методы обработки выбираются исходя из конкретной задачи[5].
Главная сложность технологий компьютерного зрения и, в то же время, причина необходимости их создания, состоит в том, что любая электронно-вычислительная машина лишена абстрактных категорий и способна работать только с конкретными величинами. Компьютер не «понимает», что такое форма, текстура, размер или даже цвет, его можно только «научить» работать с этой информацией, определенным образом закодировав её в последовательность нулей и единиц.
2.2 Методы обработки изображений в компьютерном зрении
Компьютерное зрение не рассматривает технологии создания цифровых изображений, описывая лишь их обработку, поэтому опустим подробности и остановимся на том, что устройство захвата (цифровая камера), используя светочувствительные элементы формирует изображение (фото) или последовательность изображений (видео) реальных объектов. «Изображение» для компьютера - это определенным образом закодированный массив чисел.
Рис.9. Представление зрительной информации компьютером
Каждый пиксел этого изображения - это элемент двухмерного массива. Порядковый номер определяет его положение на двухмерном пространстве изображения, а значение элемента - его яркость. Для цветного изображения каждый пиксел необходимо закодировать как минимум тремя числами, чаще всего это значения яркости красной, зеленой и синей составляющих.
Однако широкая область методов компьютерного зрения принимает в качестве входных данных бинарные изображения (состоящие только из пикселов черного или белого цветов). В данной работе есть смысл остановиться на этих методах.
Эти алгоритмы могут выполнять различные действия -- от очень простых, наподобие подсчета каких-либо признаков, до гораздо более сложных действий, связанных с распознаванием, определением местоположения и контролем объектов. Для формирования бинарного изображения B по данным полутонового или цветного изображения I можно выполнить операцию, которая выбирает некоторое подмножество пикселов изображения в качестве пикселов переднего плана (foreground pixels). Эти пикселы представляют интерес для решаемой задачи анализа изображений. Остальные пикселы игнорируются как фоновые (background pixels). Операция отбора пикселов может быть простой (например, пороговый оператор, который отбирает пикселы со значениями из заданного яркостного диапазона или цветового подпространства) или представлять собой сложный алгоритм классификации. [2]
Будем предполагать, что бинарное изображение уже сформировано и рассматривать это изображение в качестве входных данных для выполнения операций анализа изображений. Понятие бинарного изображения иллюстрируется на рис. 10 на примере четырех бинарных изображений рукописных символов.
Рис. 10. Бинарное изображение рукописных символов
Пикселы бинарного изображения B принимают значения 0 или 1. Будем полагать, что значения 1 соответствуют пикселам переднего плана, а 0 -- фоновым пикселам. Значение пиксела на пересечении строки r и столбца c пиксельного массива обозначается как B [r, c]. Изображение размерами M Ч N состоит из M строк, пронумерованных от 0 до M ? 1, и N столбцов, пронумерованных от 0 до N ? 1. Таким образом, обозначение B [0, 0] соответствует значению левого верхнего пиксела изображения, а B [M ? 1, N ? 1] -- значению правого нижнего пиксела. Во многих алгоритмах при обработке пикселов учитываются не только их значения, но и значения соседних пикселов. При рассмотрении соседних пикселов часто используются два определения окрестностей -- четырехсвязная и восьмисвязная окрестности. Четырехсвязная окрестность N4 [r, c] пиксела [r, c] состоит из пикселов [r ? 1, c], [r + 1, c], [r, c ? 1] и [r, c + 1]. Они часто называются, соответственно, северным (north), южным (south), западным (west) и восточным (east) соседями. Восьмисвязная окрестность N8 [r, c] пиксела [r, c] содержит все пикселы четырехсвязной окрестности, а также диагональные соседние пикселы [r ? 1, c ? 1], [r ? 1, c + 1], [r + 1, c ? 1] и [r + 1, c + 1]. Их можно соответственно называть северо- западным (northwest), северо-восточным (northeast), юго-западным (southwest) и юго-восточным соседями (southeast). Расположение соседних пикселов в окрестностях двух типов демонстрируется на рис. 11. [7]
Рис. 11. Четырехсвязная и восьмисвязная окрестности пикселов
Во многих алгоритмах четырехсвязные или восьмисвязные (или определенные иначе) окрестности часто называются просто окрестностями пикселов. Анализ окрестностей позволяет перейти от пространству пикселей к пространству контуров и производить обработку изображений так называемыми скелетными методами.
Вообще методы обнаружения можно условно разделить на три основные группы:
? методы на основе 3D модели объекта;
? методы на основе 2D модели объекта.
В скелетных методах исследуется контур силуэта: обычно отыскиваются углы, выступы, впадины и другие точки с высокими значениями кривизны. Для получения информации о форме контура применяются различные представления границы объекта. В методах на основе 3D модели руки представляют в виде сложных трехмерных поверхностей и классифицируются с помощью нейронных сетей Метод 2D распознавания схож с предыдущим, но использует двумерное изображение вместо объемных моделей. Каждый из методов имеет преимущества и недостатки. Недостатком метода на основе 3D модели является его ресурсоемкость. Построение 3D модели, обучение нейронной сети и ее использование могут потребовать значительных ресурсов, так же не стоит забывать, что для использования данного метода требует камеры с возможностью определения глубины изображения.
Остановимся на скелетных(структурных) методах, которые используют для обработки изображений информацию о топологии объекта. Ключевое понятие структурных методов - контур.
Контур -- это внешние очертания (обвод) предмета или объекта. При проведении контурного анализа полагается, что контур содержит достаточную информацию о форме объекта, внутренние точки объекта во внимание не принимаются. Вышеприведённые положения, разумеется, накладывают существенные ограничения на область применения контурного анализа, которые, в основном, связаны с проблемами выделения контура на изображениях: из-за одинаковой яркости с фоном объект может не иметь чёткой границы, или может быть зашумлён помехами, что приводит к невозможности выделения контура; перекрытие объектов или их группировка приводит к тому, что контур выделяется неправильно и не соответствует границе.
Однако, переход к рассмотрению только контуров объектов позволяет уйти от пространства изображения к пространству контуров, что существенно снижает сложность алгоритмов и вычислений. Резюмируя, контурный анализ имеет довольно слабую устойчивость к помехам, и любое пересечение или лишь частичная видимость объекта приводит либо к невозможности детектирования, либо к ложным срабатываниям, но простота и быстродействие контурного анализа, позволяют вполне успешно применять данный подход (при чётко выраженном объекте на контрастном фоне и отсутствии помех).
После выделения контура в бинарный вид, он подвергается процедуре скелетизации (утоньшению). Каждый последовательный контур скелетного представления описывается в виде последовательного набора особых точек и так называемого цепного кода, состоящего из точки привязки, числа кодов и массива направлений из очередной точки на следующую точку. Особые точки - это концевые точки и точки ветвления (триоды), т.е. точки, соседи которых образуют не менее трех связных областей. На рис. 12 изображен образ, обладающий двумя внутренними контурами, одной концевой точкой и тремя триодами [8].
Рис. 12. Образ, прошедший процедуру скелетизации
В полученном описании производится огрубляющая предобработка, состоящая в удалении коротких линий, объединении близких триодов, уничтожении малых внутренних контуров. Для внешнего контура находится его тип или топологический код. Для этого контур записывается в виде последовательного набора номеров особых точек, соответствующих обходу по часовой стрелке. Затем с помощью пере нумерации делается попытка отождествления контура с одним из основных типов[6].
В данном разделе представлены данные о библиотеке OpenCV - основного инструмента для разработки проекта. OpenCV - это одна из библиотек для работы с компьютерным зрением (библиотекой в программировании называется сборник подпрограмм или объектов, используемых для разработки программного обеспечения). OpenCV реализована на C/C++, также разрабатывается для Python, Java, Ruby, Matlab, Lua и других языков. Может свободно использоваться в академических и коммерческих целях -- распространяется в условиях лицензии BSD. Библиотека довольно популярна, на текущий момент имеет более 5 миллионов скачиваний и недавно была предложена в качестве основы для стандарта Khronos по компьютерному зрению. Примечательно, что OpenCV был разработан программистами из российского отделения компании Intel.
3.1 Примитивные типы данных в OpenCV
OpenCV включает в себя множество примитивных типов данных. Эти данные не являются примитивными с точки зрения языков программирования высокого уровня, но являются самыми элементарными с точки зрения OpenCV. [5]
Самый простой тип данных - Point. Эта простая структура состоит только из двух полей x и y типа int. Point2D32f содержит два поля x и y типа float. Point3D32f содержит три поля x, y и z типа float. Используется для задания и обработки графических точек.
Size содержит два поля width и height типа int. Size2D32f содержит два поля width и height типа float. Size содерж
Автоматизация системы управления квадрокоптера дипломная работа. Коммуникации, связь, цифровые приборы и радиоэлектроника.
Математика 6 Мерзляк Контрольная Работа 8
Сочинение: Острая критика действительности и трагические судьбы людей дна по пьесе М. Горького На дне.
Реферат: Теории денег
Реферат: Индустрия общественного питания, как одна из составляющих туристско-рекреационных кластеров
Реферат: Великоустюжская чернь. Скачать бесплатно и без регистрации
Дипломная Работа На Тему Материнский Капитал
Практическая Работа В Кабинете
Сочинение На Тему Проблема Сохранения Культурного Наследия
Реферат по теме Многообразие понятия культура
Курсовая работа по теме Деятельность школьных библиотек
Асоциальное Поведение Подростков Курсовая
Курсовая работа: Начальные стадии пирогеных сукцессий в хвойных лесах Европейского Севера
Курсовая работа по теме Статистическая обработка данных. Статистика денежного обращения
Дипломная работа по теме Игра как способ обучения иностранному языку младших школьников
Курсовая работа: Оценка эффективности инвестиционного проекта 2 Теоретические аспекты
Составить Эссе На Тему Система Российского Права
1930 Жылғы Қоғамдық Саяси Өмірі Эссе
Примерное Сочинение Про Мою Комнату
Реферат по теме Врождённые наследственные заболевания почек
Курсовая Работа На Тему Развитие Речи Дошкольников
Коллаборационизм в годы Великой Отечественной войны - История и исторические личности реферат
Механизм правового регулирования и его элементы - Государство и право курсовая работа
Селекция растений и животных - Биология и естествознание презентация


Report Page