МОЙ ДИПЛОМ. Федеральное агентство железнодорожного транспорта
Скачать 1.11 Mb.
|
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ЖЕЛЕЗНОДОРОЖНОГО ТРАНСПОРТА Государственное образовательное учреждение высшего профессионального образования «Уральский государственный университет путей сообщения» (УрГУПС) Факультет Механический Кафедра Мехатроники Допускается к защите: зав. кафедрой: ____________________________ ____________________________ ____________________________ (подпись, дата) ДИПЛОМНЫЙ ПРОЕКТ Тема: Разработка системы управления многоосевым манипулятором _ . ___________________________________________________________________ (пояснительная записка) __________________ (обозначение документа) Разработал __________________________________________________________ (студент-дипломник) (группа) (подпись) (дата) Руководитель ________________________________________________________ (должность, звание) (подпись) (дата) Консультант _________________________________________________________ (должность, звание) (подпись) (дата) _________________________________________________________ (должность, звание) (подпись) (дата) _________________________________________________________ Н.контролер __ ______________________________________________________ (должность, звание) (подпись) (дата) Рецензент ___________________________________________________________ (должность, звание) (подпись) (дата) Екатеринбург 2014 РЕФЕРАТ Дипломный проект содержит: 100 с., 11 рис., 5 табл., 32 источника, 1 приложение. СОДЕРЖАНИЕ ВВЕДЕНИЕ В последнее время наблюдается активный рост объемов получаемой информации. В связи с этим становиться очень актуальной потребность в качественной, максимально быстрой и полной обработке информации, а также ее хранения и передачи в сжатой форме. Человек из года в год пытается создать машины, которые заменили бы его при решении сложных задач, а задачи связанные с огромным количеством информации действительно сложные и требует большого количества времени для решения их человеком. В идеале ученые стремятся к тому, чтобы машины сами решали все вышеперечисленные задачи, причем делали это не хуже человека, поэтому в настоящее время все больше значение и актуальность для исследователей приобретают системы на основе искусственного интеллекта. Разработка фиксированных алгоритмов не позволяет создавать действительно гибкие универсальные системы, поэтому растет интерес к системам с нечеткой логикой и нейронным сетям. Эти системы работают по принципам, заложенным в человеческую систему мышления. Мозг представляет собой чрезвычайно сложный, нелинейный, параллельный компьютер (систему обработки информации). Он обладает способностью организовать свои структурные компоненты, называемые нейронами, так, чтобы они могли выполнять конкретные задачи (распознавание образов, обработка сигналов органов чувств, моторные функции) во много раз быстрее, чем могут позволить самые быстродействующие компьютеры. В данной дипломной работе объектом наших исследований будут именно методы распознавания образов, а предметом исследований - их практическая реализация на топографических картах. Мы будем распознавать цвета, линии, цифры, и уделим особое внимание тому, чтобы наша программа сопоставляла всю полученную из топографических крат информацию, связывала некоторые элементы, например, конкретную цифру (высоту ландшафта) с линией (рельефом). Целью дипломной работы является разработка программы в среде программирования MatLab. Эта программа будет распознавать объекты на 2D карте и строить по полученным данные 3D модель местности. Программа будет содержать понятный для пользователя интерфейс. Задачами дипломной работы в связи с указанной целью: 1. Изучение понятий искусственного интеллекта, распознавания образов. 2. Рассмотреть различные методы распознавания образов. 2. Провести анализ топографических карт. 3. Изучить среду программирования MatLab. 4. Написать программы, ее тестирование. Написание программы позволит обеспечить более наглядное представление о местности. Ее можно будет использовать для планирования строительства дорог и других объектов. Она сократит время планирования проектов. В ходе исследований и решения поставленных задач были использованы следующие методы: теоретический анализ и сравнение различных методов распознавания образов, моделирование алгоритмов работы программы. Научная новизна и практическая значимость. Введение раскрывает актуальность, объект, предмет, цель и задачи, методы исследования, раскрывает практическую значимость работы. Далее в первой главе будут рассматриваться, необходимы для выпленния работы, теоретические сведения – топографические карты, среда программирования MatLabи методы распознавания образов. Вторая глава повещена практической части работы. В ней описываются алгоритмы и блок-схемы работы программы, подробно показаны все функции, используемые в программе, объясняются вес самые важные фрагменты программного кода. А в заключении мы подведем итоги исследования, сделаем выводы. 1. Теоретические сведения и методы решения задачи
Топографическая карта — называется подробное и точное изображение местности на плоскости, выполненное условными знаками с уменьшением всех линий местности. Топографическая карта содержит сведения об опорных геодезических пунктах, рельефе, гидрографии, растительности, грунтах, хозяйственных и культурных объектах, дорогах, коммуникациях, границах и других объектах местности. Полнота содержания и точность топографических карт позволяют решать различные технические задачи. Отношение, показывающее, во сколько раз все линейные размеры местности уменьшены при изображении их на карте, называется масштабомкарты. Чем меньше это уменьшение, тем изображение местности, а, следовательно, и масштаб карты будут крупнее, и наоборот. Очевидно, чем крупнее масштаб карты, тем подробнее и точнее можно изобразить на ней местность. По крупномасштабным топографическим картам и планам можно достаточно подробно и точно изучать, местность и ориентироваться на ней, производить необходимые измерения и расчеты, например, планировать положение дорожных сетей и многое другое. Все местные предметы изображаются на картах условными знаками. В рамках данного дипломного проекта нас будут интересовать только условные обозначения рельефа и типа местности, а также обозначения водных объектов. На топографических картах рельеф изображается горизонталями. Рис 1. Модель горы Представим себе модель горы (Рис. 1), рассеченной горизонтальными плоскостями, расположенными одна от другой на равных расстояниях по высоте. Обведя карандашом на бумаге основание горы и все полученные следы сечения, получим ряд кривых замкнутых линий, соединяющих точки с одинаковой высотой над основанием горы. Замкнутые кривые линии, соединяющие точки с одинаковой высотой, называются горизонталями. По одним горизонталям невозможно определить, в каком направлении повышается или понижается местность. Для обозначения этого направления на некоторых горизонталях перпендикулярно им ставят короткие черточки – указатели ската(бергштрихи). Они всегда направлены в сторону понижения ската. Более наглядное представление рельефа, а также некоторые другие полезные обозначения представлены в таблице 1.
Таблица 1 - Условные обозначения некоторых объектов на топографической карте В данном дипломном проекте мы пишем программу для компьютера. Наша программа - своего рода интеллектуальная система. А любая система может работать только с определенной информацией, или с той информацией, которая приведена к определенному виду. Наша программа может работать практически с любыми топографическими картами, но для лучшего распознавания объектов и для уменьшения количества ошибок следует определить некоторые критерии для карт, с которыми должна работать программа: - Разрешение (количество пикселей на единицу площади изображение) не менее 400 пикселей на дюйм; - Отсутствие шумов, посторонних элементов (сгибов и вытертостей на карте); - Все или большинство линий имеют соответствующие им подписанные высоты; - Цифры и линии изображены одним цветом, который более не присутствует на карте. 1.2. Среда программирования MATLAB Для написания программы нам потребует среда программирования MatLab, которая имеет именно те функции, которые понадобятся нам для реализации нашей прогркаммы. MATLAB является языком высокого уровня для выполнения технических и научных вычислений. В нем интегрированы вычисления, визуализация и программирование в удобной пользовательской среде, в которой задачи и их решения выражаются с помощью привычных математических обозначений. Типичный набор действий включает: - математические вычисления; - разработку алгоритмов; - моделирование и создание прототипных систем; - анализ данных, их исследование и визуализацию; - построение различных графиков; - разработку приложений и пользовательский интерфейс. MATLAB представляет собой интерактивную систему, в которой базовым элементом выступает массив элементов, который не требует задания фиксированной размерности. Это позволяет легко формулировать условия и решения многих вы- числительных задач, которым требуется матричное представление объектов. При этом необходимая работа займет лишь малую долю времени, которое потребовалось бы для написания аналогичных программ на скалярном и неинтерактивном языке типа С или Fortran. Программа очень удобна и проста в использовании. Ее интерфейс представлен на Рис.2. Рис. 2. Интерфейс MatLab. Рабочий стол MATLAB — это основное окно приложения MATLAB, рабочий стол состоит из пяти подокон: окна команд (Command Window), окна рабочего пространства (Workspace Browser), окна текущей папки (Current Directory Window), окна совершенных команд (Current History Window) и одного или нескольких окон графиков. Окно команд (Command Window) — это область, где пользователь набирает команды и выражения MATLAB после приглашения системы (>>) (ввод) и где система помещает свои отклики на команды пользователя (вывод). При каждом сеансе работы MATLAB формирует рабочее пространство, т. е. множество переменных, создаваемых пользователем. Окно рабочего пространства (Workspace Browser) показывает эти переменные, а также сообщает некоторую информацию о них. Двойное нажатие левой клавиши мыши на любую переменную в этом окне вызывает окно Редактор массивов, в котором можно увидеть дополнительную информацию о данном массиве, а также (во многих случаях) отредактировать его содержимое. Над заголовком окна рабочего пространства расположена метка Current Directory (текущая папка), за которым расположено окно текущей папки (Current Directory Window), отражающее ее полный системный путь, например, C:\MATLAB\Work. Это означает, что папка «Work» является подпапкой главной папки «MATLAB» приложения MATLAB, которое установлено на диск С. Если нажать левой клавишей мыши на треугольник справа от окна текущей папки, то раскроется список путей недавно использованных папок, что позволяет пользователю быстро менять текущую рабочую папку. Система MATLAB использует переменную окружения путь поиска (Search Path) для обнаружения М-файлов и файлов других типов, используемых в этой системе, которые организованы в виде компьютерных папок. Любой исполняемый файл должен располагаться или в рабочей папке, или в папке, на которую указывает путь поиска. По умолчанию, файлы, поставляемые вместе с MATLAB и MathWorks, помещаются в Search Path. Самый простой путь узнать, какие папки помещены в Search Path, а также добавить, удалить или модифицировать имеющиеся там записи, — это выбрать пункт Set Path в меню File рабочего стола и совершить необходимые действия в появившемся диалоговом окне Set Path. В начале работы бывает удобно поместить ссылки на часто используемые папки в путь поиска. В этом случае не придется часто менять текущую папку системы. Окно совершенных команд (Current History Window) содержит записи всех команд, которые пользователь вводил в окне команд, включая текущую и все предыдущие сеансы работы с MATLAB. Ранее исполненные команды можно выбирать и повторно исполнять из окна совершенных команд. Для этого достаточно щелкнуть правой кнопкой мыши по команде или последовательности команд. Такое действие активирует меню, из которого необходимо выбрать некоторые дополнительные опции для выполнения этих команд. Такая организация хорошо помогает при экспериментировании с разными командами в сеансе работы с MATLAB. 1.3. Распознавание образов Разработка систем обработки изображений всегда тесно связана с большим объемом тестирования и экспериментальной работы, который необходимо выполнить для достижения приемлемого решения поставленной задачи. Изображение представляет собой двумерную функцию f (x, у), где х и у — это пространственные координаты, а амплитуда f в любой точке с парой координат (х, у) называется интенсивностью или уровнем серого цвета изображения в этой точке. Если переменные x, у и f принимают значения их конечного (дискретного) множества, то говорят о цифровом изображении. Под цифровой обработкой изображений подразумевается обработка цифровых изображений с помощью цифровых вычислительных машин (компьютеров). Отметим, что цифровое изображение состоит из конечного числа элементов, каждый из которых расположен в конкретном месте и имеет определенное значение. Эти элементы принято называть элементами изображения или пикселями. Зрение является самым совершенным из наших органов чувств, поэтому зрительные образы играют такую важную роль в человеческом восприятии. Однако в отличие от людей, которые способны воспринимать лишь электромагнитное световое излучение видимого диапазона, машинная обработка изображений покрывает практически весь спектр электромагнитных волн от гамма-излучения до радиоволн. В своей работе мы будем иметь дело с топографическими картами. Они содержат в себе несколько цветов, то есть это цветные изображения, на них есть линии, цифры, водные объекты, которые нам необходимо будет распознать. Задача распознавания образов является основной в большинстве интеллектуальных систем. Распознавание образов - процесс отнесения объекта по фиксированной группе его свойств к одному объекту из множества образов по заранее оговоренному правилу. Подходы к компьютеризации распознавания образов можно разделить на две основные категории: методы, основанные на теории решений, и структурный анализ. Первая категория имеет дело с образами, которые описываются количественными дескрипторами, такими как длина, площадь, текстура и многими другими дескрипторами, а вторая категория методов ориентирована на образы, которые можно хорошо представить символьной информацией, например, символьными строками, и которые можно описать свойствами и взаимоотношениями между этими символами. Выделим наиболее важные шаги в процедуре распознавания: 1. Восприятие образа. На этом этапе производят получение значений характеристических свойств объекта (измерения линейных замеров, фотографирование, оцифровка звука); 2. Предварительная обработка (удаление шумов, представление изображения в черно-белом варианте, обрезание ненужных частей изображения); 3. Выделение характеристик (индексация). На этом этапе измеряются характеристический свойства объекта (измеряем длину рыбы и ее цвет); 4. Классификация (принятие решения). Разработка системы распознавания образов происходит несколькими этапами: 1. Разработка тренировочной коллекции. Тренировочная коллекция - коллекция объектов для которых заведомо известны их образы. Например, коллекция аудио записей для каждого звука, или коллекция изображений каждой буквы латинского алфавита; 2. Выбрать модель представления объектов; 3. Выбрать значимые характеристики. Один из самых важных этапов разработки системы распознавания. Например, если в случае идентификации рыбы окунь/лосось в качестве характеристики выбрать только длину рыбы, то никакое классифицирующее правило не сможет точно определить тип рыбы, поскольку весьма вероятно встретить лосося и окуня одинаковой длины; 4. Разработать классифицирующее правило. Классифицирующее правило - правило, которое по значениям характеристических свойств объекта отнесет его к одному из образов. 5. Обучение алгоритма. На этом этапе алгоритм "собирает опыт" на основе распознавания тренировочной коллекции. Для того, чтобы правильно выставить коэффициенты (параметры) алгоритма его прогоняют на тренировочной коллекции контролируя результат работы алгоритма; 6. Проверить качество. Вернуться к шагу 2,3 и 4). Если частота ошибок алгоритма не устраивает решаемую задачу, то необходимо вернуться к п. 2 (3, 4). Интуитивно понятно, что увеличение количества характеристических свойств, увеличение тренировочной коллекции улучшают качество работы алгоритма. 7. Оптимизация алгоритма. После того, как качество работы алгоритма подходит под условие рассматриваемой задачи, иногда приходится произвести его оптимизацию. Изначальный алгоритм может быть слишком долгим или ресурсоемким. Ускорить алгоритм распознавания можно уменьшив количество характеристических свойств объекта, выбрав другие характеристические свойства, используя другое классифицирующее правило. В целом, можно выделить три метода распознавания образов: Метод перебора. В этом случае производится сравнение с базой данных, где для каждого вида объектов представлены всевозможные модификации отображения. Например, для оптического распознавания образов можно применить метод перебора вида объекта под различными углами, масштабами, смещениями, деформациями и т. д. Для букв нужно перебирать шрифт, свойства шрифта и т. д. В случае распознавания звуковых образов, соответственно, происходит сравнение с некоторыми известными шаблонами (например, слово, произнесенное несколькими людьми). Второй подход - производится более глубокий анализ характеристик образа. В случае оптического распознавания это может быть определение различных геометрических характеристик. Звуковой образец в этом случае подвергается частотному, амплитудному анализу и т. д. Следующий метод - использование искусственных нейронных сетей (ИНС). Этот метод требует либо большого количества примеров задачи распознавания при обучении, либо специальной структуры нейронной сети, учитывающей специфику данной задачи. Тем не менее, его отличает более высокая эффективность и производительность. Перед нами стоят задачи распознавания нескольких видов объектов - линии и цифры. Цифры - более сложные элементы для распознавания. Они могут быть под любым наклоном, могут находиться в любом месте на карте. Для них подошел бы первый из перечисленных методов, но иногда карты бывают очень большие и обработка такого изображения, сравнение цифр под разным наклоном из базы данных со всеми возможными цифрами на большой карте, займет слишком много времени. Поэтому мы создадим продукционную модель знаний. Продукционные модели можно считать наиболее распространенными моделями представления знаний. Продукционная модель – это модель, основанная на правилах, позволяющая представить знание в виде предложений типа: "Если ( выполняется условие), то (выполняется действие)". Существуют два типа продукционных систем – с «прямыми» и «обратными» выводами. Прямые выводы реализуют стратегию «от фактов к заключениям». При обратных выводах выдвигаются гипотезы вероятностных заключений, которые могут быть подтверждены или опровергнуты на основании фактов, поступающих в рабочую память. Существуют также системы с двунаправленными выводами. Основные достоинства систем, основанных на продукционных моделях, связаны с простотой представления знаний и организации логического вывода. Мы будем использовать некоторые свойства цифр и линий, которые присущи только им, чтобы выделить от остальных объектов, а так же между собой. Каждая цифра имеет свою форму, площадь, центр масс и так далее, список особенностей практически не ограничен. |