Методы программирования систем технического зрения реального времени
Мониторинг состояния различных объектов и систем, инспекционный технологический контроль, слежение за подвижными объектами. Обработка зрительной информации в информационных системах манипуляционных и подвижных робототехнических комплексах, базовых ЭВМ.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | автореферат |
Язык | русский |
Дата добавления | 28.10.2018 |
Размер файла | 750,7 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
05.13.11 - Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей
Автореферат
диссертации на соискание ученой степени доктора физико-математических наук
Методы программирования систем технического зрения реального времени
Богуславский Андрей Александрович
Москва - 2006
Работа выполнена в Институте прикладной математики им. М.В. Келдыша РАН (г. Москва)
Научный консультант: доктор физико-математических наук, профессор Соколов Сергей Михайлович
Официальные оппоненты:
доктор физико-математических наук Горбунов-Посадов Михаил Михайлович
доктор физико-математических наук, профессор Зенкевич Станислав Леонидович
доктор физико-математических наук, профессор Обухов Юрий Владимирович
Ведущая организация: Московский государственный университет им. М.В. Ломоносова (факультет ВМК).
Защита состоится 14 ноября 2006 г. в 11:00 час. на заседании Диссертационного совета Д 002.024.01 при Институте прикладной математики им. М.В. Келдыша РАН по адресу: 125047, Москва, Миусская пл., 4.
С диссертацией можно ознакомиться в библиотеке Института прикладной математики им. М.В. Келдыша РАН.
Ученый секретарь диссертационного совета доктор физико-математических наук Полилова Т.А.
Общая характеристика работы
Развитие робототехнических систем и систем автоматизации производства все активнее выдвигает требование по оснащению этих систем компьютерным видением. Достижения в развитии аппаратных средств сбора зрительных данных и ввода их в ЭВМ позволяют ставить и решать сложные задачи по машинной обработке видеоинформации. Особое место среди таких задач занимают задачи, требующие решения в масштабе реального времени, задаваемого внешними процессами.
К задачам обработки зрительных данных в реальном времени относятся мониторинг состояния различных объектов и систем, инспекционный технологический контроль, слежение за подвижными объектами, обработка зрительной информации в информационных системах манипуляционных и подвижных робототехнических комплексов. Во всех перечисленных приложениях требуется обеспечить в реальном времени получение и обработку зрительных данных с целью обнаружения на сформированных цифровых изображениях образов объектов интереса или их частей. информационный робототехнический слежение
Отечественная практика применения систем технического зрения (СТЗ), а также ряд зарубежных работ, свидетельствуют о целесообразности использования в качестве базовой ЭВМ в СТЗ реального времени персональных компьютеров общего назначения. Это делает возможным внедрение прикладных СТЗ для решения народнохозяйственных задач, в которых существенное значение имеет доступность аппаратных компонентов автоматизированных систем обработки зрительной информации, а также возможность применения готового прикладного программного обеспечения для представления и обработки результатов, полученных с помощью СТЗ реального времени.
Сдерживающим фактором, особенно на стадии разработки систем технического зрения реального времени, является отсутствие методов программирования подобных систем. Существующие примеры программных средств для сбора и обработки зрительных данных не учитывают специфики требований реального времени или являются узко специализированными под решение отдельно взятой задачи с использованием жестко определенных аппаратных и программных средств. Известные в настоящее время коммерческие пакеты обработки изображений и средства для ускорения разработки приложений автоматизации производства на основе подхода быстрой разработки приложений, как правило, предлагают пользователю платформу, закрытую для модернизации и недостаточно документированную в плане выбранной программной архитектуры.
В диссертации предлагаются методы программирования систем технического зрения реального времени, восполняющие этот пробел. Эти методы обеспечивают разработку ПрО СТЗ реального времени и применимы для построения СТЗ на базе общедоступных персональных компьютеров. Эти методы программирования применялись для разработки ряда СТЗ реального времени прикладного и научного назначения. Среди них - СТЗ для определения взаимного расположения частей пантографов в движении, СТЗ для определения местоположения контактного провода железной дороги по высоте и в плане в процессе движения электроподвижного состава, СТЗ для контроля качества металлического порошка в порошковой металлургии, СТЗ для слежения за процессом сближения и стыковки космического корабля с Международной космической станцией, СТЗ в составе манипуляционных робототехнических систем "глаз-рука".
Важным этапом в процессе проектирования и разработки ПрО является формирование программной архитектуры. Она описывает назначение и типы структурных частей программной системы, а также способы взаимодействия этих частей. В настоящее время известны общепринятые архитектуры для применения в области разработки ПрО массового назначения (например, архитектура интерактивных приложений, клиент-серверных систем и др.), но для разработки ПрО СТЗ реального времени унифицированной программной архитектуры не существует. В данной работе предлагается архитектура ПрО СТЗ реального времени. Она определяет назначение и взаимодействие компонентов ПрО, использование которых упрощает разработку ПрО СТЗ реального времени для обработки полутоновых и цветных изображений с возможностью использования нескольких полей зрения.
Эта архитектура была сформирована в результате анализа опыта разработки более 10 прикладных СТЗ. Применение этой архитектуры позволило повторно использовать в процессе разработки ПрО СТЗ реального времени проектные решения и компоненты ПрО. В качестве структурных частей наиболее высокого уровня в ПрО СТЗ выделяются три параллельные подсистемы: подсистема интерфейса пользователя, подсистема ввода зрительных данных и подсистема обработки зрительных данных. Таким образом, предлагаемая архитектура ПрО СТЗ предназначена для использования в ПрО СТЗ, которое рассчитано на функционирование в среде многозадачной операционной системы (ОС) с поддержкой многопоточности.
Актуальность предлагаемых методов программирования связана также с тем, что в качестве базовой ОС для разработки ПрО СТЗ оказывается возможным выбрать ОС общего назначения. Критерием, позволяющим сделать такой выбор, является возможность соблюдения временных ограничений, характерных для конкретной прикладной задачи. В реализованных СТЗ удалось обеспечить обработку зрительных данных в реальном масштабе времени, сравнимым с кадровой частотой телевизионного стандарта, в ОС общего назначения семейства Microsoft Windows NT/XP. Разработанная архитектура не ориентирована исключительно на ОС данного семейства и допускает применение в среде других ОС.
В качестве методологии проектирования общего назначения в настоящее время распространен объектно-ориентированный подход. Известны технологии применения объектно-ориентированного подхода, специализированные для разработки ПрО систем реального времени. Но их перенос для проектирования ПрО СТЗ затруднителен в связи со спецификой СТЗ. В качестве характерных особенностей ПрО СТЗ можно указать: 1) опосредованное получение сведений о внешних событиях в результате обработки зрительных данных; и 2) сложность выбора представительных тестовых данных до этапа опытной эксплуатации системы. Эти особенности требуют, во-первых, обеспечения обработки зрительных данных в реальном времени с учетом того, что временные затраты на обработку и применяемые алгоритмы могут сильно зависеть от текущего состояния программной системы, и, во-вторых, в ПрО СТЗ необходимы отладочные средства, позволяющие обнаруживать необрабатываемые образцы изображений в процессе штатного функционирования системы с целью последующей модификации алгоритмов обработки.
С учетом приведенных особенностей рассматриваемых задач обработки зрительных данных и для упрощения применения объектно-ориентированного подхода к разработке ПрО СТЗ в данной работе была выполнена классификация компонентов ПрО СТЗ в рамках предлагаемой программной архитектуры. Эти компоненты реализуются в виде классов на языке программирования Си++.
Спроектированные с учетом решения ряда прикладных задач компоненты ПрО СТЗ были использованы для реализации каркаса ПрО СТЗ реального времени для многозадачной операционной системы. Этот каркас представляет собой заготовку приложения, которую требуется доработать для использования в конкретной задаче. Каркас реализует взаимодействие подсистем ПрО СТЗ в рамках предлагаемой многопоточной архитектуры. Аналогов каркаса для разработки ПрО СТЗ, открытых для повторного использования на уровне исходных текстов, в настоящее время не известно.
При проектировании и использовании каркаса в качестве одной из основных целей ставилась задача изоляции подсистемы обработки зрительных данных от остальных подсистем ПрО СТЗ, так чтобы эта подсистема не зависела от деталей интерфейса с пользователем и с аппаратным обеспечением СТЗ, а также могла быть перенесена на другие платформы с минимальными изменениями. Для сокращения платформно-зависимых деталей реализации в подсистеме обработки зрительных данных в каркасе ПрО СТЗ были предусмотрены программные интерфейсы, представляющие функциональность компонентов для взаимодействия с пользователем и аппаратурой на уровне СТЗ (например, интерфейс абстрактного "Источника ввода зрительных данных").
Особенностью разрабатываемого каркаса ПрО СТЗ является направленность на функционирование ПрО СТЗ в двух режимах - в режиме настройки и в автоматическом режиме. Использование двух режимов работы связано с тем, что в настоящее время пока не удается обеспечить полностью автоматическую обработку зрительных данных без наложения сильных ограничений на структуру наблюдаемых сцен и условия освещения, что не всегда возможно в нелабораторных условиях. Режим настройки в ПрО СТЗ предназначен для интерактивной проверки корректности функционирования аппаратной части СТЗ, для проверки хода обработки изображений и настройки параметров обработки изображений (например, выбор зон контроля), а также для просмотра результатов обработки отдельных изображений и данных, полученных в автоматическом режиме. В автоматическом режиме выполняется обработка зрительных данных в реальном времени.
Для организации обработки зрительных данных в реальном времени существенно сокращение времени и повышение надежности обработки. С этой целью в ПрО СТЗ предлагается применять алгоритмы обработки последовательностей изображений на основе использования комбинированных методов распознавания объектов "снизу-вверх" для первоначального обнаружения и "сверху-вниз" для прослеживания объектов.
В процессе обработки методом "снизу-вверх" признаки, выделяемые на изображении, посредством последовательной проверки гипотез преобразуются в признаки более высокого уровня. На конечном этапе обработки принимается решение об обнаружении объекта интереса. Решение о неудачном результате обработки изображения может быть принято после проверки одной из промежуточных гипотез. В случае успешного обнаружения образа объекта интереса на текущем изображении при анализе последующих изображений временные затраты могут быть сокращены за счет применения обработки методом "сверху-вниз". Она заключается в подтверждении гипотезы расположения образа интереса в местоположении, вычисленном с учетом прогноза.
Алгоритмы обнаружения образов объектов методами "снизу-вверх" и "сверху-вниз" в ПрО СТЗ комбинируются для построения высокоуровневого алгоритма обработки зрительных данных, обеспечивающего решение целевой задачи конкретной СТЗ. Для применения в составе высокоуровневых алгоритмов, разрабатываемых с учетом априорных сведений из предметной области, также был сформирован набор низкоуровневых алгоритмов реального времени.
На основе предлагаемой программной архитектуры ПрО СТЗ и с применением разработанного каркаса ПрО СТЗ были успешно решены более 10 задач обработки зрительных данных в реальном времени. Разработанные СТЗ можно разделить на три категории: СТЗ для мониторинга состояния механических систем, СТЗ для инспекционного технологического контроля и СТЗ для слежения за подвижными объектами.
Исследования в области разработки методов программирования СТЗ реального времени были поддержаны грантами РФФИ № 02-01-00671 ("Исследование механики и управления движением робототехнических систем в реальном времени с использованием зрительных сенсоров"), № 02-07-90425 ("Создание телекоммуникационных ресурсов для исследования и информационного обеспечения распределенных мобильных систем"), № 03-07-06101 ("Исследование ввода и обработки зрительных данных с использованием камер произвольного доступа к элементам растра (CMOS-камер)"), грантом Президента РФ МК-3386.2004.9 ("Разработка методов программирования систем технического зрения реального времени") и грантом Фонда содействия отечественной науке (программа "Кандидаты и доктора наук РАН" за 2004 и 2005 г.).
Цель работы заключается в разработке методов программирования систем технического зрения реального времени. Эти методы основаны на применении унифицированной архитектуры ПрО СТЗ, реализующего эту архитектуру каркаса ПрО СТЗ реального времени и методов проектирования высокоуровневых алгоритмов обработки зрительных данных. Особое внимание уделялось применимости предлагаемых методов программирования для разработки СТЗ на базе общедоступных программных и аппаратных компонентов персональных компьютеров. Также ставилась цель применения разрабатываемых методов программирования для решения прикладных и научных задач обработки зрительных данных в реальном времени.
Научная новизна. Разработана новая архитектура ПрО СТЗ реального времени для применения в среде многозадачных ОС с поддержкой многопоточности. Сформирована структура подсистем интерфейса пользователя, ввода и обработки зрительных данных в ПрО СТЗ. В функционировании ПрО СТЗ выделены два основных режима - автоматический и режим настройки. Спроектированы способы взаимодействия подсистем ПрО СТЗ в двух режимах, обеспечивающие средства контроля оператором или разработчиком ПрО хода обработки зрительных данных, а также обработку в реальном времени.
На основе предлагаемой архитектуры разработан каркас ПрО СТЗ реального времени. В нем реализованы параллельные подсистемы ПрО СТЗ. Этот каркас предназначен для наращивания применительно к решению конкретной задачи обработки зрительных данных в реальном времени. В состав подсистем каркаса ПрО СТЗ входят компоненты ПрО, оформленные в виде классов на языке Си++. Доработка каркаса в конкретной прикладной задаче выполняется в прогнозируемых точках роста ПрО на основе использования расширяемых классов каркаса. Разработанный каркас ПрО СТЗ является новым.
Предлагаемые методы программирования обеспечивают повторное и многократное использование компонентов ПрО СТЗ при решении задач обработки зрительных данных в реальном времени за счет повторного использования проектных решений и способов их реализации.
В работе предлагаются методы проектирования высокоуровневых алгоритмов обработки зрительных данных реального времени. Они основаны на выделении в высокоуровневом алгоритме ПрО СТЗ двух отдельных алгоритмов, выполняющих обработку в случае первоначального обнаружения объекта и в случае его прослеживания. В первом случае обработка выполняется методом "снизу-вверх" с учетом априорных сведений из предметной области задачи о структуре обрабатываемых изображений, во втором - методом "сверху-вниз", когда дополнительно могут учитываться результаты обработки предыдущих изображений и прогноз положения образов объектов интереса на новых изображениях. Для применения алгоритмов такой структуры в каркасе ПрО СТЗ реализованы специальные программные компоненты - базовые классы и интерфейсы, которые являются новыми.
Для применения в составе высокоуровневых алгоритмов обработки был сформирован набор алгоритмов низкого уровня, в которых не используется априорных сведений из предметной области задачи, но которые ориентированы на функционирование в реальном времени (в качестве примеров можно назвать алгоритм шаблонного сопоставления изображений, алгоритм трассировки контуров, алгоритм стековой заливки с бинаризацией по диапазону, алгоритмы для выборки граничных точек с фильтрацией по выпуклой оболочке). Основной метод обеспечения функционирования в реальном времени в этих алгоритмах заключается в сокращении объема обрабатываемых зрительных данных и в учете при низкоуровневой обработке временных ограничений, указываемых при вызове соответствующего низкоуровневого алгоритма.
Все полученные результаты диссертации являются новыми.
Практическая ценность работы. Предлагаемые методы программирования были разработаны и использованы в процессе решения ряда прикладных и научных задач обработки зрительных данных в реальном времени. При этом было спроектировано и реализовано ПрО более десяти СТЗ реального времени. Среди них можно выделить СТЗ для мониторинга состояния механических систем, СТЗ для инспекционного технологического контроля и СТЗ для слежения за подвижными объектами.
К разработанным СТЗ для мониторинга состояния механических систем, в частности, относятся СТЗ для определения взаимного расположения частей пантографов в движении; СТЗ для определения местоположения контактного провода железной дороги по высоте и в плане в процессе движения электроподвижного состава; СТЗ для определения колебаний контактного провода железной дороги; СТЗ для обнаружения дефектов верхнего строения железнодорожного пути. Перечисленные СТЗ позволяют получать информацию о состоянии механических систем бесконтактным способом, и в ряде случаев позволяют получить данные, недоступные иными измерительными методами. Например, СТЗ для определения местоположения контактного провода (в плане и по высоте относительно оси пути) предназначена для использования в составе передвижной лаборатории комплексной диагностики (ПЛКД) в процессе движения по железнодорожному перегону. Получаемые данные необходимы для обеспечения безопасности движения. Человек не может выполнять подобные измерения вручную (минимальные требования - 4 измерения в секунду). Существующие контактные методы позволяют выполнять измерения только с использованием пантографа вагона-лаборатории в ограниченном диапазоне скоростей движения. СТЗ при решении данной задачи позволяет выполнять определение интересующих параметров с требуемой частотой и использовать пантограф локомотива, что невозможно в случае контактных методов.
В целях инспекционного технологического контроля, в частности, были разработаны СТЗ для контроля качества металлического порошка в порошковой металлургии; СТЗ для контроля чистоты жидкости в емкостях на движущемся конвейере. Эти СТЗ позволяют автоматизировать рутинные и утомительные для оператора-человека операции контроля состояния производственной продукции.
Для решения задач, связанных со слежением за подвижными объектами, были разработаны СТЗ в составе системы "глаз-рука", выполняющей захват подвижного объекта; СТЗ в составе системы "глаз-рука", формирующей траекторию объекта; СТЗ для слежения за низколетящими целями на расстояниях прямой видимости; СТЗ для слежения за движущейся малоразмерной целью; СТЗ для слежения за процессом сближения и стыковки космического корабля с Международной космической станцией. Эти СТЗ также имеют важное практическое значение. Например, СТЗ в составе систем "глаз-рука" предназначены для получения в режиме реального времени данных, необходимых для определения параметров движения объектов манипулирования, совершающих заранее неизвестное движение в операционном пространстве манипуляционного робототехнического комплекса.
Все перечисленные СТЗ были разработаны с использованием единых методов, позволяющих добиться обработки зрительных данных в режиме реального времени в среде распространенных операционных систем семейства MS Windows NT/XP и с использованием доступных устройств формирования изображений. В качестве базовой ЭВМ в перечисленных СТЗ были использованы Intel-совместимые персональные компьютеры. Возможность использования общедоступных аппаратных и программных компонентов в СТЗ реального времени обусловливает особую практическую важность предлагаемых методов программирования, значительно расширяя сферу применения СТЗ в прикладных задачах.
Апробация работы. Основные результаты диссертации были представлены на Всероссийской с участием стран СНГ конференции "Распознавание образов и анализ изображений: новые информационные технологии" (Ульяновск, 1995 г.), на научно-технической конференции "Экстремальная робототехника" (Санкт-Петербург, 1996, 2001 и 2004 г.), на Международной конференции по интеллектуальным роботам и системам IEEE/RSJ International Conference on Intelligent Robots and Systems IROS'97 (Гренобль, Франция, 1997 г.), на Международной конференции по робототехнике и автоматизации IEEE International Conference on Robotics and Automation ICRA'98 (Левен, Бельгия, 1998 г.), на Международной конференции по адаптивным роботам и GSLT International Conference on Adaptive Robots and General System Logical Theory (Санкт-Петербург, 1998 и 2004 г.), на научной школе-конференции "Мобильные роботы и мехатронные системы" (Москва, 1998, 2000, 2003, 2004 и 2005 г.), на Международной конференции "Применение новых технологий в образовании" (Троицк, 1999 г.), на российской научно-технической конференции "Неразрушающий контроль и диагностика" (Москва, 1999 г.), на Международной научно-практической конференции "Народное образование в XXI веке" (Москва, 2001), на Международном семинаре по компьютерным наукам и информационным технологиям 3-rd International Workshop on Computer Science and Information Technologies CSIT'2001 (Уфа, 2001), на Международной конференции по мехатронике Mechatronics Forum International Conference (Твент, Нидерланды, 2002 г.), на Международной конференции по организации систем, кибернетике и информатике International Conference Systemics, Cybernetics and Informatics SCI 2002 и SCI 2003 (Орландо, США, 2002 и 2003 г.), на Международной конференции по компьютерным, коммуникационным и технологиям управления International Conference on Computer, Communication and Control Technologies CCCT 2003 (Орландо, США, 2003 г.), на Всероссийской научной конференции "Методы и средства обработки информации" (Москва, 2003 и 2005 г.), на научно-технической конференции "30 лет металлургии гранул" (Москва, Всероссийский институт легких сплавов ВИЛС, 2003 г.), на Международной конференции по информатике в области управления, автоматизации и робототехники First International Conference on Informatics in Control, Automation and Robotics ICINCO 2004 (Сетубал, Португалия, 2004 г.).
Результаты диссертации также докладывались на научном семинаре по робототехнике ИПМ им. М.В. Келдыша РАН (май 1998 г.); на Всероссийском семинаре под руководством академика Д.Е. Охоцимского "Механика и управление робототехническими системами с элементами искусственного интеллекта" (МГУ им. М.В. Ломоносова, 1998), на семинаре "Машинная графика и обработка изображений" под руководством профессора Ю.М. Баяковского (МГУ им. М.В. Ломоносова, декабрь 2005), на совместном научном семинаре ИПМ им. М.В. Келдыша РАН под руководством профессора М.Р. Шура-Бура (май 2006 г).
Публикации. По результатам работы имеется 46 публикаций, включая 6 статей в журналах и сборниках [8, 16, 18, 34, 45, 46], 32 доклада на конференциях [1, 2, 4-7, 11, 13-15, 17, 19-22, 25-33, 35-39, 42-44] (29 статей и 3 тезиса) и 8 препринтов [3, 9, 10, 12, 23, 24, 40, 41].
Структура диссертации. Диссертация состоит из введения, четырех глав, заключения и списка литературы. Диссертация содержит 304 страницы основного текста, 95 рисунков, список литературы состоит из 255 ссылок.
Содержание работы
Во введении дается обоснование актуальности темы диссертации, рассматриваются задачи исследования, приводятся основные результаты и формулируются защищаемые положения. Демонстрируется практическая значимость результатов работы и кратко описывается содержание диссертации.
В первой главе рассматриваются основные методы программирования, предназначенные для разработки ПрО СТЗ реального времени. СТЗ представляют собой системы реального времени, которые наряду с общими для систем реального времени свойствами параллельности и необходимости удовлетворения определенных временных ограничений, характеризуются тем свойством, что информация о внешних событиях в ПрО СТЗ поступает не в непосредственно пригодном для машинного использования виде, а формируется в результате программной обработки зрительных данных, представленных в форме цифровых изображений.
Для уточнения требований, предъявляемых к методам программирования СТЗ, в первой главе сначала кратко рассматриваются несколько примеров реализованных СТЗ реального времени. В частности, это СТЗ для определения взаимного расположения частей пантографов в движении; СТЗ для определения местоположения контактного провода железной дороги по высоте и в плане в процессе движения электроподвижного состава; СТЗ для контроля качества металлического порошка; СТЗ для контроля чистоты жидкости в емкостях на движущемся конвейере; СТЗ для слежения за процессом сближения и стыковки космического корабля с Международной космической станцией. У этих и других реализованных СТЗ удается выделить общие части, которые могут быть реализованы однотипно - в частности, это программные компоненты для сбора зрительных данных и компоненты для организации интерфейса пользователя. Уникальной и наиболее сложной в проектировании и реализации частью каждой из рассмотренных СТЗ является цикл реального времени и высокоуровневые алгоритмы обработки зрительных данных, учитывающие априорные сведения из предметной области задачи.
По результатам анализа ПрО разработанных прикладных СТЗ можно заключить, что методы их программирования должны обеспечивать решение как типичных проблем разработки ПрО, так и проблем, специфических для СТЗ реального времени.
Среди общих проблем разработки ПрО можно выделить следующие: необходимость быстрого прототипирования; повторное и многократное использование программных компонентов; сопровождаемость и удобочитаемость исходного текста. Эти проблемы в настоящее время еще не получили окончательного решения. В качестве общепринятого в настоящее время подхода к разработке ПрО, по опыту практического использования упрощающего решение перечисленных проблем, можно выделить объектно-ориентированный подход. Поэтому для разработки ПрО СТЗ с целью обеспечения дальнейшего сопровождения, модификации и повторного использования ПрО, в качестве базового предлагается применять объектно-ориентированный подход. Однако этот подход имеет общий характер и не является специализированным для разработки ПрО СТЗ. Для его специализации к разработке ПрО СТЗ необходим учет особенностей, характерных для этих систем. В качестве таких особенностей в результате анализа прикладных задач были выделены следующие:
1) Типичные операции в цикле реального времени. В ПрО СТЗ можно выделить цикл реального времени. В нем должно обеспечиваться получение данных от различных устройств, в первую очередь, от источника (или нескольких источников) зрительных данных, обработка этих данных и использование результатов обработки. Для ускорения разработки ПрО СТЗ целесообразно формирование заготовки такого цикла, оформленного в виде компонента, допускающего модификацию применительно к конкретной задаче.
2) Прогнозируемые точки роста ПрО СТЗ. В качестве наиболее вероятных вариантов изменения ПрО СТЗ можно выделить цикл реального времени и высокоуровневые алгоритмы обработки изображений.
3) Наличие повторно используемых компонентов в высокоуровневых алгоритмах обработки зрительных данных. Эти алгоритмы должны обеспечивать надежное получение информации о содержании наблюдаемых сцен по данным цифровых изображений. Для обеспечения функционирования в реальном времени в структуре этих алгоритмов учитываются свойства конкретной прикладной задачи. Разработку этих алгоритмов можно упростить за счет использования низкоуровневых алгоритмов обработки, предназначенных для решения задач определенного класса (например, для обнаружения объектов с прямолинейными краями или для слежения за объектами, для которых известна модель движения, и др.).
4) Интерфейс пользователя должен обеспечивать взаимодействие оператора и СТЗ, в процессе которого оператору необходимо выводить сведения о текущем состоянии системы и при необходимости предоставлять средства для контроля хода обработки зрительных данных. В интерфейсе пользователя необходимо учитывать возможность работы с СТЗ как оператора, эксплуатирующего СТЗ в штатном режиме, так и разработчика (на этапе разработки ПрО СТЗ и на этапе опытной эксплуатации системы).
5) Требования к СТЗ в части содержания обработки зрительных данных обычно сложно точно выделить на этапе проектирования СТЗ. В связи с этим требуется предусмотреть средства отладки и тестирования ПрО СТЗ, позволяющие, кроме устранения ошибок ПрО, выполнять уточнение требований к алгоритмам обработки изображений на этапе разработки СТЗ и на этапе опытной эксплуатации СТЗ.
6) Предполагаемый срок разработки типичной СТЗ лежит в пределах 6-10 месяцев при разработке 1-3 программистами.
С учетом перечисленных особенностей, предлагаемые методы программирования ПрО СТЗ основаны на повторном использовании архитектуры ПрО СТЗ, реализации этой архитектуры в форме компонентного каркаса, и использовании способов проектирования высокоуровневых алгоритмов обработки зрительных данных с применением повторно используемых компонентов, представляющих низкоуровневые алгоритмы обработки.
Для ускорения разработки ПрО СТЗ могут использоваться готовые программные компоненты для ввода и обработки зрительных данных. С целью обеспечения независимости ПрО СТЗ от закрытых внешних компонентов предусматривается их опосредованное использование с применением специально оформленного слоя программных абстракций.
Применение объектно-ориентированного подхода для разработки ПрО СТЗ выполняется в рамках итеративного проектирования и реализации. Каждая итерация разработки сопровождается построением рабочей версии ПрО СТЗ. Спецификой ПрО СТЗ является то, что переход к новой итерации разработки происходит не только в связи с уточнением и расширением сформулированных человеком требований, но и в связи с обнаружением новых типов изображений, не обрабатываемых на текущей итерации. Для документирования проектных решений предлагается использовать подмножество языка моделирования UML: диаграммы классов, состояний и последовательностей. При использовании итеративных схем разработки применительно к ПрО СТЗ можно перечислить следующие особенности:
· изменчивость требований к ПрО СТЗ и сложность их формализации;
· сложность планирования сроков разработки алгоритмов обработки зрительных данных (в связи с чем затруднительно применение схем с короткими итерациями);
· длительный срок опытной эксплуатации (например, при разработке промышленных зрительных систем обычно более 50% затрат приходится на настройку системы на этапе опытной эксплуатации).
Критичным этапом при разработке ПрО СТЗ является выделение классов ПрО. Выделение классов выполняется с учетом требований к СТЗ, которые могут быть заданы в форме сценариев работы оператора с системой. Описание сценариев также может дополняться описанием взаимодействия программных и аппаратных компонентов СТЗ. Спецификой ПрО СТЗ является дополнение сценариев, связанных с обработкой зрительных данных, представительными тестовыми данными. Сценарии этой категории используются при верификации ПрО для установления корректности его функционирования согласно сформулированным требованиям. Выделяемые в ПрО СТЗ классы относятся к трем основным категориям: классы аналитической модели (классы предметной области), классы реализации и классы проектирования. Классы проектирования образуют классы, которые включаются в состав компонентного каркаса ПрО СТЗ. В зависимости от решаемой задачи, перечисленные категории допускают дальнейшее разделение.
Одним из механизмов документирования и повторного использования архитектурных принципов разработки ПрО являются шаблоны проектирования. Шаблон проектирования представляет собой описание взаимодействия объектов и классов, адаптированных для решения типичной задачи проектирования в конкретном контексте. Применительно к ПрО СТЗ был сформирован ряд шаблонов проектирования: "Монокулярная СТЗ", "Поле зрения", "Временной прогноз", "Отложенное конструирование", "Верификация гипотез распознавания" и др. Предлагаемые шаблоны проектирования относятся к трем категориям: проектирование архитектуры ПрО СТЗ; обработка зрительных данных и отладка и тестирование.
Среди шаблонов проектирования ПрО СТЗ особое место занимает каркас приложения, представляющий собой расширение шаблона проектирования "Монокулярная СТЗ". Каркас приложения - это крупномасштабный архитектурный шаблон, предполагающий расширение для разработки приложений в конкретной прикладной области. При увеличении размеров и сложности программных систем, проектирование и спецификация общей структуры системы становится не менее значимым вопросом, чем выбор алгоритмов и структур данных для организации вычислений. Структурные вопросы включают в себя организацию системы как совокупности компонентов; глобальные управляющие структуры; протоколы связи, синхронизации и доступа к данным; назначение функциональных обязанностей проектным элементам; вопросы масштабирования и производительности; прогнозирование развития программной системы; выбор среди альтернатив проектирования. Все перечисленные вопросы, относящиеся к уровню проектирования программной архитектуры, в рассматриваемых СТЗ могут быть решены унифицированным образом, и реализация этих архитектурных аспектов предусматривается в каркасе ПрО СТЗ.
Выбор языка программирования для реализации ПрО СТЗ является важным вопросом, требующим рассмотрения с точки зрения обеспечения эффективности, надежности, доступности инструментальных средств и обеспечения отладки. В качестве языка программирования для реализации ПрО СТЗ был выбран язык Си++. Этот выбор был сделан с учетом наличия стандарта языка, доступностью средств разработки на ПК общего назначения, и поддержки средств объектно-ориентированного программирования в сочетании со строгой типизацией. Хотя Си++ непосредственно не предназначен для программирования в реальном времени (например, в языке не содержится средств параллельного программирования), но он может быть расширен для этой цели путем использования в среде соответствующих операционных систем и применения дополнительных библиотек.
В качестве базовой операционной системы для ПрО СТЗ на ПК общего назначения были выбраны ОС семейства MS Windows NT. Эти ОС обеспечивают многозадачность с диспетчеризацией потоков; в них имеется подсистема ввода зрительных данных DirectShow, для которой доступно большое количество устройств ввода; а также ПрО промежуточного уровня для интеграции ПрО СТЗ с прикладными программами для представления, обработки и долговременного хранения результатов, полученных в ПрО СТЗ. Однако ОС семейства Windows NT без использования дополнительных подсистем реального времени не являются ОС реального времени, и в них возможны задержки планирования потоков и обработки прерываний порядка десятков миллисекунд. Поэтому при разработке архитектуры ПрО СТЗ предусматривалась возможность переноса ПрО в среду других ОС. Для учета этого факта ПрО СТЗ построено на основе использования потоков, которые в качестве диспетчеризуемой минимальной единицы используются в большинстве современных POSIX-совместимых операционных систем.
Вторая глава содержит описание предлагаемой архитектуры ПрО СТЗ реального времени и компонентного каркаса, реализующего эту архитектуру в среде ОС семейства MS Windows NT/XP.
Каркас ПрО СТЗ содержит программные компоненты, общие для рассматриваемых прикладных СТЗ. Этот каркас используется в качестве заготовки для разработки новых СТЗ и дополняется компонентами, спроектированными применительно к решению конкретной прикладной задачи. Каркас ПрО СТЗ представляет собой программу, обеспечивающую ввод зрительных данных от различных источников и передачу этих данных на программную обработку, которая непосредственно в каркасе не реализована. В каркасе предусмотрены операции, связанные с организацией ввода и обработки зрительных данных, а также с представлением этих данных, промежуточных и окончательных результатов их обработки. Каркас позволяет выполнять обработку цветных и полутоновых изображений в составе одной СТЗ, выполнять обработку в нескольких полях зрения и разрабатывать распределенные СТЗ.
Применение каркаса ПрО СТЗ при решении однотипных задач обработки зрительных данных направлено на повышение степени повторного использования (как на уровне проектирования, так и на уровне реализации), упрощения модификации ПрО, сокращения времени разработки и усилий в области поддержки разработанного ПрО.
В каркасе ПрО определены набор абстрактных классов, общая для рассматриваемых СТЗ реального времени программная архитектура, общее поведение, структуры данных и интерфейс пользователя. Одним из центральных компонентов, входящих в состав каркаса ПрО СТЗ, является класс "Изображение". Объекты этого класса используются во всех подсистемах ПрО СТЗ для работы со зрительными данными в форме цифровых изображений.
В каркасе предусмотрены не только наборы классов, но и реализована определенная модель взаимодействия объектов этих классов. Эта модель реализована так, что в ней предусмотрены определенные места для добавления новых компонентов - "точки роста" программной системы. Компонентами, входящими в состав каркаса ПрО СТЗ, являются объекты, классы и подсистемы ПрО. Основными и наиболее крупными компонентами каркаса ПрО являются подсистемы, которым соответствуют параллельные исполняемые потоки.
С учетом опыта разработки ПрО прикладных СТЗ в состав каркаса были включены классы нескольких категорий, которые используются для организации трех основных параллельных подсистем ПрО СТЗ. К категориям классов ПрО СТЗ относятся классы архитектуры ПрО СТЗ, классы интерфейса пользователя, классы для представления алгоритмов обработки изображений и классы для работы с устройствами ввода зрительных данных. Совокупности взаимодействующих классов этих категорий образуют основные подсистемы ПрО СТЗ: интерфейс пользователя, ввод и обработка зрительных данных. Взаимодействие этих подсистем определяется архитектурой ПрО СТЗ и это взаимодействие также реализовано в каркасе. Таким образом каркас ПрО СТЗ включает в себя реализованные типичные подсистемы ПрО СТЗ, содержащие как окончательно реализованные объекты классов, так и объекты, которые должны быть доработаны с учетом требований конкретной прикладной задачи.
Важной архитектурной особенностью каркаса ПрО СТЗ является реализация двух режимов функционирования ПрО СТЗ - автоматического режима и режима настройки. Для представления режимов функционирования сформированы специальные классы. Они содержат исполняемые потоки, реализующие цикл реального времени ПрО СТЗ в каждом из режимов работы. Объекты-режимы выполняют координирующую роль по отношению к подсистемам ПрО СТЗ. Действия по координации этих подсистем производятся в составе цикла реального времени. Инкапсуляция двух вариантов цикла реального времени в объектах-режимах является проектным решением, направленным на обеспечение работы СТЗ в реальном времени. При проектировании конкретной СТЗ выполняется анализ временных затрат в пределах объектов-режимов и при необходимости производится статическая или динамическая настройка приоритета потока в составе объекта-режима.
Размещено на http://www.allbest.ru/
Рис. 1. Диаграмма последовательностей действий объектов и подсистем ПрО СТЗ в режиме настройки.
В режиме настройки оператор должен иметь возможность проверки корректности функционирования аппаратной части СТЗ, проверки хода обработки изображений на тестовых изображениях или на текущих изображениях полей зрения, настройки параметров обработки изображений, а также просмотра результатов обработки отдельных изображений и данных, полученных в автоматическом режиме. Основное назначение режима настройки заключается в том, чтобы оператор мог выполнить настройку СТЗ для учета изменений, которые могли произойти во внешней среде и которые не могут быть учтены автоматически. Например, это может быть настройка областей первоначального обнаружения объектов. Режим настройки также используется в процессе разработки СТЗ в отладочных целях. Для этого в каркасе ПрО СТЗ предусмотрены возможности просмотра программистом отладочных результатов, в частности, трассировочного журнала с информацией о ходе обработки изображений. В режиме настройки ввод изображений и функционирование системы контролируется оператором. Взаимодействие подсистем ПрО СТЗ в режиме настройки показано на рис. 1.
В автоматическом режиме ПрО СТЗ обрабатывает зрительные данные в реальном времени в соответствии с логикой цикла реального времени СТЗ. Поступающие изображения передаются на обработку объектам, инкапсулирующим алгоритмы обработки зрительных данных. Результаты сохраняются или немедленно используются, например, для управления исполнительными устройствами. Возможности оператора по управлению системой ограничены с целью обеспечения работы в реальном времени. Функционирование системы определяется структурой цикла реального времени ПрО СТЗ, инкапсулированного в объекте "Автоматический режим". Масштаб реального времени в большинстве рассматриваемых СТЗ определяется кадровой частотой источника зрительных данных. Взаимодействие подсистем ПрО СТЗ в автоматическом режиме показано на рис. 2.
Особенностью ПрО СТЗ является то, что на этапе разработки алгоритмов обработки зрительных данных разработчик должен иметь возможность контролировать корректность обработки (посредством анализа обнаруживаемых на изображениях признаков и искомых образов объектов интереса), а также контролировать соблюдение временных ограничений реального времени. Каркас ПрО СТЗ спроектирован с учетом этих требований разработки ПрО СТЗ - упрощение контроля процесса обработки зрительных данных и контроля временных ограничений. Контроль хода обработки зрительных данных упрощается за счет того, в режиме настройки каркас фактически представляет наращиваемую среду разработки ПрО СТЗ. Контроль временных ограничений упрощается благодаря применению фиксированной архитектуры ПрО СТЗ с известными временными накладными расходами, привносимыми собственно архитектурными решениями, например, операциями копирования зрительных данных при использовании буфера кадра.
Размещено на http://www.allbest.ru/
Рис. 2. Диаграмма последовательностей действий объектов и подсистем ПрО СТЗ в автоматическом режиме.
Графический интерфейс пользователя (ГИП) в ПрО СТЗ выполняет операции как для организации взаимодействия с оператором СТЗ, так и с разработчиком в целях отладки ПрО СТЗ. Взаимодействие подсистем реального времени (ввода и обработки зрительных данных) с подсистемой ГИП основано на использовании отключаемых буферов кадров, соответствующих каждому полю зрения СТЗ. В режиме настройки ГИП позволяет отобразить параметры СТЗ, которые удается представить в виде визуальных объектов в окне поля зрения. В автоматическом режиме для обработки зрительных данных в реальном времени временные затраты на операции ГИП сокращаются за счет использования синхронных операций отображения по требованию подсистем реального времени и запрещения длительных операций, доступных в режиме настройки.
Основу подсистемы ввода зрительных данных в каркасе ПрО СТЗ составляют интерфейсы и классы для представления источников зрительных данных. Источники зрительных данных в рассматриваемых СТЗ делятся на два типа: источники реального времени, которым сопоставлен некоторый зрительный датчик (например, это устройства ввода зрительных данных телевизионного стандарта), и источники квазиреального времени, не имеющие фиксированного временного масштаба и не сопоставленные непосредственно какому-либо зрительному датчику (например, это графические файлы и файлы видеопоследовательностей). В составе каркаса ПрО СТЗ источники обоих типов имеют унифицированное программное представление и являются взаимозаменяемыми.
В ПрО СТЗ были выделены алгоритмы обработки зрительных данных двух типов - низкоуровневые и высокоуровневые алгоритмы. К низкоуровневым алгоритмам были отнесены алгоритмы, которые проектируются и выполняются без учета априорных сведений относительно структуры наблюдаемых сцен. Высокоуровневые алгоритмы проектируются и реализуются применительно к конкретной прикладной задаче, решаемой с помощью СТЗ. Низкоуровневые алгоритмы оформляются в виде функций или классов-оболочек. Для представления высокоуровневых алгоритмов в каркасе ПрО СТЗ сформирован базовый класс, от которого в прикладных СТЗ наследуются классы, выполняющие обработку зрительных данных для решаемой прикладной задачи.
Каркас ПрО СТЗ допускает применение в СТЗ для обработки цветных изображений. Для этой цели в каркасе ПрО СТЗ классы основных подсистем, в интерфейсе которых есть функции-члены с параметрами класса "Изображение", реализованы в двух вариантах - в расчете на обработку полутоновых и цветных изображений.
Физически каркас ПрО СТЗ реализован в виде совокупности файлов исходного текста на языке программирования Си++, которые копируются для создания нового проекта. Каркас оформлен в виде совокупности классов. Часть классов используется в неизменном виде, часть переопределяется или заменяется применительно к решению конкретной задачи. При использовании каркаса в качестве основных этапов разработки ПрО СТЗ можно перечислить следующие:
1) сбор представительных образцов зрительных данных;
2) проектирование высокоуровневого алгоритма обработки зрительных данных и оформление этого алгоритма в виде объекта, который может быть включен в состав каркаса ПрО СТЗ;
3) проектирование цикла реального времени ПрО СТЗ и оформление этого цикла в виде объекта, подключаемого к каркасу;
4) тестирование ПрО СТЗ на представительных образцах зрительных данных;
5) проектирование интерфейса пользователя.
Перечисленные этапы разработки выполняются с использованием итеративного подхода к разработке ПрО. Их последовательность не является жестко фиксированной в порядке приведенного перечисления.
В каркасе ПрО СТЗ с целью упрощения переноса ПрО СТЗ на другие платформы были выделены платформно-зависимые и платформно-независимые компоненты. К платформно-зависимым относятся компоненты, связанные с работой с аппаратными устройствами и взаимодействием с операционной системой. К платформно-независимым относятся компоненты, обеспечивающие обработку зрительных данных. Интерфейс между платформно-зависимыми и платформно-независимыми компонентами построен на основе использования класса "Изображение".
В третьей главе описываются методы проектирования высокоуровневых алгоритмов обработки зрительных данных для СТЗ реального времени, в которых объекты интереса или их части на обрабатываемых изображениях удается представить с помощью структурных геометрических моделей, в качестве примитивных элементов содержащих признаки типа "ступенчатый край".
Среди задач автоматизированной обработки зрительных данных в реальном времени задачи слежения за движущимися объектами занимают одно из центральных мест. Цель слежения обычно заключается в определении траектории движущихся объектов в окружающем пространстве и снабжении этой информацией потребителей: людей-операторов или исполнительные механизмы различных устройств. Для достижения поставленной цели в СТЗ, прежде всего, решается задача определения траектории образов прослеживаемых объектов на изображении. Автоматическая обработка зрительных данных в процессе слежения за движущимися объектами в реальном времени может осложняться несколькими факторами: образ объекта на изображении с течением времени может меняться вследствие изменения относительного расположения объекта и зрительного датчика; образ объекта на изображении может пропадать при перекрытии образами других объектов или при выходе за пределы поля зрения датчика; модель движения объекта может быть априорно неизвестна. Указанные причины затрудняют разработку СТЗ для слежения за движущимися объектами и, в особенности, таких систем, которые бы допускали перенастройку для слежения за движущимися объектами в различных прикладных задачах без необходимости разработки нового алгоритма обработки зрительных данных для обнаружения новых разновидностей объектов.
Предлагаемые методы проектирования высокоуровневых алгоритмов обработки предназначены для использования в СТЗ для слежения за движущимися объектами в реальном времени, в таком классе задач:
· движущиеся объекты постоянно видны в поле зрения;
· движущиеся объекты наблюдаются в одном и том же ракурсе;
· характер движения объектов априорно известен.
Примерами подобных прикладных СТЗ, реализованных в процессе выполнения данной работы, являются СТЗ для определения местоположения контактного провода железной дороги по высоте и в плане в процессе движения электроподвижного состава, СТЗ для определения взаимного расположения частей пантографов в движении и СТЗ для определения колебаний контактного провода железной дороги.
В СТЗ для определения местоположения контактного провода высота провода относительно оси пути может быть определена посредством определения высоты пантографа (рис. 3,4). Для вычисления значений высоты пантографа выполняется поиск образа планки токоприемника на изображении и учитываются априорно известные параметры относительного расположения зрительного датчика (телевизионной камеры) и пантографа. Данные о высоте пантографа могут использоваться для оценки состояния контактной сети железной дороги и для экспериментальной оценки характеристик пантографа. Поэтому автоматизация зрительного анализа поведения пантографов электроподвижного состава является важной задачей как для верификации моделей новых конструкций пантографов, так и для инспекционного контроля состояния контактной сети в процессе ее штатной эксплуатации.
Образ пантографа в течение последовательности изображений движется преимущественно в вертикальном направлении (при расположении поля зрения, показанном на рис. 3,4). Телевизионная камера может быть установлена не на локомотиве, а на следующем за ним вагоне-лаборатории. В таком случае образ пантографа на последовательности изображений может смещаться и в горизонтальном направлении (рис. 3). Величина горизонтального смещения увеличивается при прохождении криволинейных участков железнодорожного пути.
Подобные документы
Факторы угроз сохранности информации в информационных системах. Требования к защите информационных систем. Классификация схем защиты информационных систем. Анализ сохранности информационных систем. Комплексная защита информации в ЭВМ.
курсовая работа [30,8 K], добавлен 04.12.2003Виды обеспечения автоматизированных информационных систем. Составление технического задания, разработка информационной системы, составление руководства пользователя к программе. Средства программирования распределенных систем обработки информации.
отчет по практике [1,1 M], добавлен 16.04.2017Характеристики, основы применения, архитектура жестких и операционных систем реального времени. Последовательное программирование задач реального времени. Структура и языки параллельного программирования, мультипрограммирования и многозадачности.
курсовая работа [195,9 K], добавлен 17.12.2015Основные характеристики систем реального времени, типы архитектур. Система приоритетов процессов (задач) и алгоритмы диспетчеризации. Понятие отказоустойчивости, причины сбоев. Отказоустойчивость в существующих системах реального времени (QNX Neutrino).
контрольная работа [428,8 K], добавлен 09.03.2013Основные цели и задачи построения систем распознавания. Построение математической модели системы распознавания образов на примере алгоритма идентификации объектов военной техники в автоматизированных телекоммуникационных комплексах систем управления.
дипломная работа [332,2 K], добавлен 30.11.2012Жизненный цикл информационных систем, методологии и технологии их проектирования. Уровень целеполагания и задач организации, классификация информационных систем. Стандарты кодирования, ошибки программирования. Уровни тестирования информационных систем.
презентация [490,2 K], добавлен 29.01.2023Классификация систем реального времени. Ядра и операционные системы реального времени. Задачи, процессы, потоки. Преимущества и недостатки потоков. Свойства, планирование, синхронизация задач. Связанные задачи. Синхронизация с внешними событиями.
реферат [391,5 K], добавлен 28.12.2007- Определение величины дисторсии цифровых изображений, формируемых системами технического зрения (СТЗ)
Оснащение робототехнических комплексов систем технического зрения. Математическая модель и векторная диаграмма дисторсии изображения. Создание эталонного изображения тестового объекта. Определение основных погрешностей формирования изображения.
курсовая работа [1,4 M], добавлен 14.06.2014 Причины появления информационных систем. Назначение электронных вычислительных машин: числовые расчеты, обработка, хранение и передача информации. Созданиеи первого жесткого магнитного диска - винчестера. Разработка локальной сети для передачи информации.
презентация [339,2 K], добавлен 06.01.2014Анализ видов обеспечения автоматизированных систем предприятия. Средства программирования распределенных систем обработки информации. Изучение особенностей использования технологии распределенных объектов. Эксплуатация программного обеспечения системы.
отчет по практике [486,0 K], добавлен 23.11.2014