Моделирование процессов выделения, сопровождения и классификации изображения движущегося воздушного объекта тема диссертации и автореферата по ВАК РФ 05.13.18, кандидат технических наук Титов, Илья Олегович

  • Титов, Илья Олегович
  • кандидат технических науккандидат технических наук
  • 2012, Великий Новгород
  • Специальность ВАК РФ05.13.18
  • Количество страниц 157
Титов, Илья Олегович. Моделирование процессов выделения, сопровождения и классификации изображения движущегося воздушного объекта: дис. кандидат технических наук: 05.13.18 - Математическое моделирование, численные методы и комплексы программ. Великий Новгород. 2012. 157 с.

Оглавление диссертации кандидат технических наук Титов, Илья Олегович

Оглавление

Введение

Глава 1. Математические модели объекта и фона

1.1 Представление изображений объекта в цифровой форме

1.2 Модель шума

1.3 Модель процесса восстановления изображения

1.4 Модель сцены

1.5 Контурная модель

1.5.1 Границы объекта

1.6 Выводы

Глава 2. Выделение и сопровождение объекта

2.1 Признаки выделения объекта

2.2 Задача слежения за объектом

2.3 Взаимосвязь движения объектов и уровней яркости

2.4 Методы обнаружения движущихся объектов

2.4.1 Обнаружение объекта по особым точкам

2.4.2 Метод вычитания фона

2.4.2 Вероятностная модель сегментации

2.5 Методы сокращения объёмов обрабатываемой информации

2.5.1 Представление изображений пирамидами

2.5.2 Дооценивание вектора состояния динамической системы

2.6 Выводы

Глава 3. Метод контуризации объекта

3.1 Постановка задачи кодирования

3.2 Формирования полутонового изображения объекта

3.3 Кодирование контуров бинарных изображений

3.4 Представление контуров

3.5 Фильтрация и улучшения изображений

3.6 Дифференциальные операторы для двумерных изображений

3.7 Детектор краёв

3.8 Группировка согласующихся контурных фрагментов

3.9 Выводы

Глава 4. Классификация объекта по его форме

4.1 Требованья к системе формирования признаков

4.2 Форма изображения

4.3 Пространство признаков

4.4 Дескрипторы границ

4.4.1 Параметры формы

4.4.2 Фурье дескрипторы и их применение в описании формы

4.4.3 Признаки формы на основе анализа моментов

4.5 Построение классификатора

4.5 Классификатор на вероятностном подходе

4.6 Выводы

Глава 5. Описание исследовательского комплекса программ

5.1 Состав комплекса программ

5.2 Описание основных модулей комплекса

5.2.1 Модуль дооценивания вектора состояния динамической системы

5.2.2 Модуль кодирования внешней границы объекта

5.2.3 Модуль сопровождения и выделения движущегося объекта

5.3 Эксперимент

5.3.1 Объект класса "истребитель Миг-29"

5.3.2 Объект класса "вертолёт Ми-8"

5.3.3 Объект класса "ракета"

5.4 Рекомендаций по параметрической настройке

5.5 Выводы

Заключение

Библиографический список

Приложение. Листинги основных модулей программ

Рекомендованный список диссертаций по специальности «Математическое моделирование, численные методы и комплексы программ», 05.13.18 шифр ВАК

Введение диссертации (часть автореферата) на тему «Моделирование процессов выделения, сопровождения и классификации изображения движущегося воздушного объекта»

Введение

Автоматизированные системы управления стали неотъемлемой частью сегодняшнего общества, порой, они выполняют те функции, которые не под силу человеку. Таким образом, человек расширяет круг своих возможностей в различных сферах своей жизни. На сегодняшний день техника внедрена во все области жизни. Человек пытается автоматизировать многие процессы с целью извлечения максимальных результатов, затрачивая при этом минимум усилий при их использовании.

Крупная область применения методов обработки изображений — это решение задач, связанных с машинным восприятием изображений. В этом случае в центре внимания находятся процедуры, извлекающие из изображения необходимую информацию и представляющие ее в форме, подходящей для компьютерной обработки. Часто эта информация весьма мало похожа на визуальные признаки, используемые людьми при интерпретации содержимого изображения. При обработке изображений, интересует изображение не само по себе, а та неизобразительная информация, которая в нем содержится. Извлечение этой информации, после предварительной обработки видеоинформации, и является дальнейшей целью. [1, 3]

Одной из задач цифровой обработки изображений является задача классификации, распознавания и анализа движущихся объектов в системах технического зрения. Решение этого класса задач столкнулось с рядом трудностей, среди которых стоит отметить: отсутствие математических моделей, адекватно описывающих наблюдаемую обстановку, несовершенство датчиков изображений, недостаточную производительность вычислительных систем.

Одним из направлений, в котором необходимо решать такие задачи, является создание комплексов: для анализа и обработки изображений,

предназначенные для установки на подвижных носителях, таких как самолёты, вертолёты, автомобили и другие транспортные средства. Назначением подобных систем является решение задач обнаружения движущихся и неподвижных объектов, построения траекторий движения, оценки их параметров, а также их классификации. Как правило, наибольшие трудности возникают при решении этих задач в режиме реального времени.

Последнее время, такие комплексы обработки изображений активно применяются в системах автоматического сопровождения воздушных объектов, наблюдаемых на фоне ясного или облачного неба, с целью решения задач их обнаружения и оценки параметров.

Технологии автоматического выделения и оценки параметров воздушных объектов является важной задачей для таких приложений, как задачи обеспечения безопасности аэропортов и важных промышленных предприятий, контроль и мониторинг воздушного движения, астронавигацию, системы анализа потока машин на автомагистрали и т.д. [4, 5, 14] В настоящее время разработано множество алгоритмов выделения и оценки параметров объектов. Однако известные подходы зачастую обладают большой вычислительной сложностью и не в полной мере учитывают специфику рассматриваемой задачи, и особенности применяемых на практике датчиков изображений. [19, 21, 24] Поэтому, разработка эффективных алгоритмов выделения, обнаружения и оценки параметров для систем автоматического сопровождения воздушных объектов, работающих в режиме реального времени, остается актуальной задачей.

В данной работе, предметной областью выступают видеоданные, в виде последовательности изображений воздушного объекта в процессе его перемещения в пространстве. Используя методы контурного анализа, делается попытка классифицировать выделенный воздушный объект. Общая структурная

схема системы автоматического сопровождения движущихся воздушных объектов представлена на рисунке 1.

Предполагается, что датчик формирует полутоновую последовательность изображений размерностью 1024x1024 пикселей с частотой 25 кадров в секунду. Площадь объекта занимает порядка 1/100 части кадра, и за время между соседними кадрами, смещается не менее чем на половину собственной площади.

Основными задачами являются обнаружение и выделение объекта, на входном изображении; оценка параметров расположения, которые определяют пространственное положение объекта; классификация объекта на основе его контурных характеристик.

Примерами наблюдаемых целей могут воздушные объекты наблюдаемые на дальностях от 500 метров до нескольких десятков километров, как на ровных, так и на контрастных облачных фонах. Исходя из удалённости воздушных объектов, характеристик датчиков и возможности полей зрения, размеры наблюдаемых объектов на изображении могут лежать в широком диапазоне значений - от 20x20 до 200x200 элементов разложения.

выделение объекта оценка параметров построение внешнего

источник первичны* движения контура

видеоданных

формирование вектора уникальных признаков

Результат:

объект - номер класса

идентификация объекта

Рисунок 1. Структура системы автоматического сопровождения движущихся

воздушных объектов

Контуры являются областями с высокой концентрацией информации, слабо зависящей от цвета и яркости. Они устойчивы к смене типа датчика, формирующего изображение, к частотному диапазону, в котором он работает, не зависят от времени суток и года. Кроме этого, контур целиком определяет форму изображения и содержит всю необходимую информацию для распознавания изображений по их формам. Такой подход позволяет не рассматривать внутренние точки изображения и тем самым значительно сократить объем обрабатываемой информации за счет перехода от анализа функции двух переменных к функции одной переменной. [2, 5] Следствием этого является возможность обеспечения работы системы обработки в масштабе времени, более близком к реальному. Но даже в тех задачах, где нельзя пренебречь обработкой внутренних точек, методы контурного анализа дополняют другие. Совершенствуя датчики и увеличивая объем запоминающих устройств, можно сформировать слабо искаженные шумами многоэлементные изображения. При этом задача распознавания облегчается, но основные трудности не устраняются. Они вызваны влиянием на математическое описание изображения случайных переносов, поворотов и изменения масштаба. Методы контурного анализа в большей степени, чем пространственные методы, дают возможность использовать модели, инвариантные к таким преобразованиям.

Для решения поставленных задач, предлагаться использовать многоэтапные алгоритмы обнаружения, выделения, сопровождения, оценки параметров и классификации объекта. Все эти алгоритмы должны быть ориентированны на использование в системах реального времени.

Несмотря на достаточно большое количество работ по данной тематике, нельзя сказать, что в них в полной мере учитывается специфика задач выделения, обнаружения и оценки параметров воздушных объектов с большим

диапазоном варьирования размеров, наблюдаемых в камеру оптического диапазона на фоне ясного или облачного неба. В ряде работ рассматриваются алгоритмы, позволяющие обнаруживать точечные и малоразмерные воздушные объекты [19, 21, 23], однако они преимущественно ориентированны на обработку изображений, получаемых с тепловизионных датчиков и часто не способные эффективно обнаруживать протяжённые объекта.

Таким образом, сформулируем цель диссертации как разработку эффективных алгоритмов решения задачи выделения, оценки параметров воздушного объекта и его классификация, для системы автоматического сопровождения. Для достижения указанной цели в диссертации решаются следующие задачи:

• обзор и анализ существующих алгоритмов выделения и сегментирования, движущихся воздушных объектов на фоне ясного или облачного неба;

• формирование модели фоно-объектной обстановки и признаков выделения объекта на основе реальных видеоданных;

• построение многоэтапного алгоритма обнаружения и выделения воздушного объекта;

® определение методов сокращения объёма обрабатываемой информации;

• кодирование внешней границы воздушного объекта, используя методы контурного анализа;

• группировка согласующихся контурных фрагментов;

• формирование кластера инвариантных характеристик на основе контурного представления внешней границы воздушного объекта;

• построение алгоритма оценки параметров и классификации воздушного объекта;

• разработка методики и проведение экспериментальных исследований эффективности разработанных алгоритмов с использованием набора реальных видеоданных, выработка рекомендаций по параметрической настройке алгоритмов при различной фоновой обстановке;

• адаптация разработанных алгоритмов к полученным экспериментальным данным;

Научная новизна данной работы состоит в том, что предложены модели: обнаружения и выделения воздушного объекта на основе вероятностной модели; предложены методы сокращения объёма обрабатываемой информации; методы расчёта инвариантных геометрических характеристик объекта по его внешней границе.

В первой главе формулируется постановка задачи выделения и оценки параметров воздушного объекта. Рассматриваются основные компоненты системы автоматического сопровождения. Определяются основные характеристики и параметры фоно-объектной обстановки. Формулируется математическая модель объекта, основанная на теории контуров. Рассмотрены основные физические явления порождения шума, и модели восстановления изображения.

Нахождение и отслеживание движущегося воздушного объекта в видеопотоке, рассматривается во второй главе. Первым шагом к решению этой задачи является выделение переднего плана. В данной главе будет рассмотрен метод, основанный на вероятностной модели. Также будут рассмотрены основные проблемы, с которыми этот метод сталкиваются, и будут рассмотрены варианты их решения.

Решение задачи получения внешнего контура объекта рассматривается в третьей главе, в виде замкнутой кривой или совокупности отрезков дуг, обнаруженного объекта на входном изображении. Рассматривается подходы представления границ объекта на основе аппроксимации кривых, прослеживания контура, связывания точек перепадов.

В четвёртной главе исследуется проблема формирования инвариантных признаков движущегося воздушного объекта для его последующей идентификации с использованием эталонного объекта. Определяется оптимальный вектор признаков. Рассматривается метод оценки близости между выделенным объектом и эталонной моделью. Идентификация объекта сводится к его классификации. Результатом задачи, является набор характеристик, необходимых для реализации отображения: объект - номер класса.

Пятая глава посвящена экспериментальной проверке описанной в предыдущих главах модели сегментации и идентификации воздушного объекта. Выполняется оценка построенной модели на эталонных объектах. Определяется эффективность выбранного решения в плане ресурсоёмкости и скорости вычислений.

В заключении перечисляются основные научные и практические результаты диссертационной работы, рассматриваются направления дальнейших исследований.

Практическая ценность

1. Комплекс программ разработанных, позволяет проводить вычислительные эксперименты по выделению и классификации движущегося воздушного объекта в различных прикладных задачах. Примеры решения некоторых задач приведены в диссертации и могут служить прототипами для решения других аналогичных задач.

2. Предложенная в диссертации методология описания компьютерной модели позволяет наглядно, компактно и в тоже время точно представить поставленный эксперимент. Такую модель рекомендуется применять также для сравнения различных решений моделируемых систем между собой. Все выполненные в рамках диссертации компьютерные эксперименты представлены соответствующими моделями, что даёт возможность точно повторить выполненный эксперимент.

Научные положения, выносимые на защиту

1. модель фоно-объектной обстановки и структуры описания признаков выделяемого воздушного объекта на фоне ясного или облачного неба;

2. многоэтапный алгоритм обнаружения и выделения воздушного объекта;

3. методы сокращения объёмов обрабатываемой информации;

4. алгоритм оценки параметров и классификации воздушного объекта, базирующийся на принципах контурного анализа;

5. комплекс программ для проведения компьютерных экспериментов по выделению и классификации движущегося воздушного объекта, основными компонентами которого являются методы представленные в данной работе;

По теме диссертационной работы опубликовано 8 научных работ. Из них 4 в журналах и изданиях, рекомендованных для публикаций материалов диссертаций ВАК, 3 работы в сборниках материалов научных конференций, 1 свидетельство о государственной регистрации программы для ЭВМ.

Результаты работы докладывались и обсуждались на:

• ежегодных научных конференциях преподавателей, аспирантов и студентов НовГУ (Великий Новгород, 2009 г. - 2011 г.);

• XV конференции «Математические методы распознавания образов» ММРО-15 г. Петрозаводск, Республика Карелия;

• грант РФФИ № 10-01-00146-а, руководитель Емельянов Г. М., гос. per. No 0120.1 164263, 2010-2012 г;

• ГБ НИР "Разработка и исследование математических моделей многопараметрических систем", руководитель Емельянов Г.М., по заданию Минобр-науки РФ, гос. per. No 0120.0 704719, 2007-2011 г.

Диссертация состоит из введения, пяти глав с выводами, заключения, библиографического списка и приложения. Работа изложена на 155 страницах машинописного текста и включает 62 рисунка, 10 таблиц и 5 алгоритмов. Библиографический список включает 72 наименования. Ссылки на источники указываются в виде имени первого автора публикации (в некоторых случаях с заглавием) и года издания в квадратных скобках.

Похожие диссертационные работы по специальности «Математическое моделирование, численные методы и комплексы программ», 05.13.18 шифр ВАК

Заключение диссертации по теме «Математическое моделирование, численные методы и комплексы программ», Титов, Илья Олегович

5.5 Выводы

Глава посвящена описанию комплекса программ, разработанного в рамках диссертации, а также результатов экспериментов на реальных данных.

Комплекс программ, ориентирован на моделирование процессов выделения, сегментирования и классификации воздушного объекта, для системы автоматического сопровождения. В главе представлены назначение, структура и состав каждого компонента, нескольких базовых модулей, а также алгоритмы и примеры работы основных частей комплекса.

Приведены примеры моделирования процессов выделения, сегментирования и классификации воздушного объекта на примере реальных данных.

На основе проведённых экспериментов выявлено, что эффективность предложенных методов составляет порядка 90%. Величина ошибки порядка 10%, которая приходится на потерю объекта в процессе слежения и выделения, а также некорректную классификацию. При этом, применение методов дооценки динамической системы сводит ошибки потери к значению порядка 1-2% от общего количества кадров. Ошибка классификации в 8 - 9% сильно зависит от качества исходных данных и соотношения сигнал/фон.

Предложенные модели и методы позволяют решать поставленные в диссертационной работе задачи, в режиме реального времени, все этапы синтезированного алгоритма по выделению, сопровождению и классификации воздушного объекта выполняться в режиме за время < 40 мс.

Заключение

Основной результат данной работы состоит в разработке и исследовании моделей для задач обнаружения, сопровождения и классификации движущегося воздушного объекта. Это соответствует теме диссертации и поставленной цели.

В рамках настоящей работы решались следующие задачи:

1. Анализ существующих алгоритмов выделения и сегментирования, движущихся воздушных объектов на фоне ясного или облачного неба;

2. Формирование модели фоно-объектной обстановки и признаков выделения объекта на основе реальных видеоданных;

3. Построение многоэтапного алгоритма обнаружения и выделения воздушного объекта;

4. Исследование методов сокращения объёма обрабатываемой информации;

5. Анализ методов кодирования внешней границы воздушного объекта, и группировки согласующихся контурных фрагментов, используя подходы контурного анализа;

6. Формирование кластера инвариантных характеристик на основе контурного представления внешней границы воздушного объекта, и построение алгоритма оценки параметров и классификации воздушного объекта;

7. Разработка комплекса программ для организации вычислительных экспериментов и исследования задач выделения, сопровождения и классификации движущегося воздушного объекта. Адаптация разработанных алгоритмов к полученным экспериментальным данным.

Решение этих задач представлены в 5-ти главах диссертации, а полученные при этом основные результаты сводятся к следующим:

1. Сформирована модель фоно-объектной обстановки и признаков выделения объекта базирующаяся на вероятностном подходе, на её основе, разработан алгоритм выделения и сегментирования движущегося воздушного объекта на фоне ясного или облачного неба. Предложено оценивать фоновую составляющую кадра путем применения низкочастотного фильтра рекурсивного сглаживания. Алгоритм позволяет решить ряд проблем, такие как адаптация, к таким изменениям сцены как дождь, снег. Метод способен работать в условиях динамического заднего плана, приспособиться к медленным и быстрым изменениям освещения. Применение предложенного подхода позволяет подавить не только стационарный, но и в значительной степени нестационарный фон.

2. Для соответствия критериям систем реального времени, были предложены методы сокращения объёмов обрабатываемой информации: метод, основанный на пирамидальном представлении изображения; метод дооценивания вектора состояния динамической системы. В результате применения метода пирамидального представления изображения, объём обрабатываемой информации уменьшается как минимум в 4 раза. Использование метода дооценивания вектора состояния динамической системы фильтра только 10% от исходного объёма данных. В результате применения этих двух методов, объём обрабатываемой информации сокращается в 40 раз.

3. Решена проблема выделения контуров, связанная с обнаружением одной или нескольких его взаимосвязанных точек и дальнейшим прослеживанием.

4. Решена задача сокращения обрабатываемой информации, в результате операции определения доминантных точек и построения контура на их основе.

5. Сформулированы основные требования для дескрипторов, описывающих воздушный объект, а также описаны правила получения качественных дескрипторов по внешним границам объекта.

6. Решена задача классификации объекта, как финальный этап разрабатываемой системы получения результата.

7. Предложенные модели реализованы в алгоритмах программного комплекса, предназначенного для моделирования и исследования системы выделения, сопровождения и классификации движущегося воздушного объекта.

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

Результаты диссертационной работы опубликованы в 8 научных работах. Из них 4 в журналах и изданиях, рекомендованных для публикаций материалов диссертаций ВАК, 3 работы в сборниках материалов научных конференций, 1 свидетельство о государственной регистрации программы для ЭВМ, отмечены позициями [67-73] библиографического списка.

Список литературы диссертационного исследования кандидат технических наук Титов, Илья Олегович, 2012 год

Библиографический список

Математические методы распознавания образов

1. Гонсалес Р., Вудс Р. Цифровая обработка информации // М. : Техносфера.

2005. С. 24-40

2. Форсайт Д., Понс Ж. Компьютерное зрение // М.-СПб.-Киев : 2004. С. 80-92

3. Яне Б. Цифровая обработка информации // М. : Техносфера. 2007. С. 194-247

4. Под редакцией В.А. Сойфера / Сойфер В., Котляр В., Досколовичь Л. Методы компьютерной обработки изображений // М. : Физматлит. 2003. С. 8-40

5. Претт У. Цифровая обработка изображений // М. : МИР. 1982. С.11-94

6. Шапиро Л., Стокман Дж. Компьютерное зрение // Бином. Лаборатория знаний. 2006. С. 126-167

7. Кубенский А.А. Функциональное программирование // СПбГУ ИТМО. 2010. С. 110-121

8. Бабилунга О. Ю. Модель иерархического формирования образов объектов в системах распознавания изображений // URL: http://www.nbuv.gov.ua/

9. Jazwinski Y., Andrew Н. Stochastic processes and filtering theory // New York : Academic Press. 1970. P. 365-401

10. Kailath A., Thomas I. An innovation approach to least-squares estimation Part I: Linear filtering in additive white noise // IEEE Transactions on Automatic Control. 1968. P. 203-231

11. Shapiro L., Stockman G. Computer vision Upper Saddle River // New Jersey :

2006. P. 178-189

12. YuanBin W., Zhang B. The Invariant Relations of 3D to 2D Projection of Point Sets // Pattern Recognition Research. 2008. P. 14-23

13. Phillip A. Image processing series // Pennsylvania Institute of Technology. 2011. P. 245-256

14. Павлидис Т. Алгоритмы машинной графики и обработки изображений // М. : Радио и связь. 1986. С. 46-76

Сегментация и сопровождение объекта

15. Форсайт Д., Понс Ж. Компьютерное зрение // М.-СПб-Киев : 2004. С. 423-430

16. Шапиро JL, Стокман Дж. Компьютерное зрение // Бином. Лаборатория знаний. 2006. С. 328-343

17. Гаганов В., Конушин А. Сегментация движущихся объектов в видеопотоке // Компьютерная графика и мультимедиа. Выпуск №3. 2004. С.45-47

18. Талантбек К. Обнаружение и определение координат движущихся точечных объектов в последовательности изображений // Новосибирск 2009.

19. Amiaz Т., Fazekas S., Chetverikov D., Kiryati N. Detecting Regions of Dynamic Texture // URL: http://www.phy.bme.hu/~fazekas/dtsegm/amiaz.pdf

20. Fazekas S., Chetverikov D. Analysis and performance evaluation of optical flow features for dynamic texture recognition // URL: www.sciencedirect.com

21. Haralick R.M., Statistics and Structural Approach to Texture // Proceedings IEEE. vol. 67 No 5. 1979. P. 33-40

22. Киричук B.C., Косых В.П. Алгоритмы обнаружения движущихся малоразмерных объектов в последовательности изображений // Издательство Сибирского отделения РАН : Автометрия. 2009. С. 90-102

23. Матвеев Д.В. Об одном алгоритме распознавания движения на последовательности кадров // М : 14-ая Всероссийская конференция РАН. 2010. С. 178-184

Методы сокращения объёмов обрабатываемой информации

24. Форсайт Д., Понс Ж. Компьютерное зрение // М.-СПб.-Киев. 2004. С. 287-290

25. Bradski G., Kaehler A. Computer Vision with the OpenCV Library // O'Reilly Media. 2008. P. 130-132

26. Плесков А. В., Писаревский B.H. Эффективный алгоритм сегментации изображений на основе пирамиды Гаусса // URL :

http:/,/iai.dn.ua/public/JournalAI 2000 2/2/418-423 PLESKO1 ,pdГ

27. Bradski G., Kaehler A. Computer Vision with the OpenCV Library // O'Reilly Media. 2008. P. 350-358

28.Roweis S., Ghahramani Z. A unifying review of linear Gaussian models // Neural Comput. No 2.1999. P. 305-345

29.Браммер К., Зиффлинг Г. Фильтр Калмана-Бьюси // М. : Наука. Главная редакция физико-математической литературы. 1982. С. 48-64

30.Сизиков B.C., Устойчивые методы обработки результатов измерений // СПб. : СпецЛит. Учебное пособие. 1999. С. 240-246

31. Hong Т.Н., Rosenfeld A. Compact region extraction using weighted pixel linking in a pyramid // IEEE Transactions on PAMI. V.6 N.2.1984. P. 222-229

32. Prewer D., Kitchen L. Weighted Linked Pyramids and Soft Segmentation of Colour Images // Taiwan : ACCV2000. vol. 2. 2000. P. 989-994

Контурный анализ

33. Sobel I. An isotropic image gradient operator // Machine Vision for Three-Dimensional Scenes. Academic Press. 1990. P. 376-379

34. Претт У. Цифровая обработка изображений // M. : МИР. 1982. С. 251-159

35. Шапиро Л, Стокман Дж. Компьютерное зрение // Бином. Лаборатория знаний. 2006. С. 382-393

36. Яне Б. Цифровая обработка информации // М. : Техносфера. 2007. С. 511-525

37. Sun X.Z., Venetsanopoulos A.N. Adaptive Schemes for Noise Filtering and Edge Detection by us Statistics // Transactions on Circuits and Systems, vol. CAS-35. 1988. P. 17-24

38. Canny J., A Computational approach to edge detection // IEEE Transactions on pattern analysis and machine intelligence. Vol. 8. No. 6. 1986. P. 679-698

39. Baker S. Design and evaluation of feature detectors, doctoral dissertation // Columbia University : Graduate School of Arts and Sciences. 1998.

40. Ziou D., Tabbone S. Edge detection techniques-an overview // Int. J. of Pattern Recognition and Image Analysis. Vol. 8. No. 4. 1998. P. 537-559

41. Marr D., Hildreth E. Theory of edge detection // Proceedings of the Royal society of London. Series B. Vol. 207. 1980. P. 187-217

Классификация объекта

42. Претт У. Цифровая обработка изображений ИМ: II МИР. 1982. С. 278-281

43. Шапиро Л., Стокман Дж. Компьютерное зрение // Бином. Лаборатория знаний. 2006. С. 293-243

44. Гонсалес Р., Вудс Р. Цифровая обработка информации // М. : Техносфера 2005. С. 984-1008

45. Рейер И. Сравнение формы объектов с использованием морфинга контуров границы // URL : http://www.graphicon.ru/2000/Reyer.pdf

46. Aizenberg I., Butakoff С. Image Processing Using Cellular Neural Networks Based on Multi-Valued and Universal Binary Neurons // Image and Video Technology. Vol. 32. 2002. P. 32-38

47. Кормановский С.И., Скорюкова Я.Г., Мельник О.П., Структурно-связностная модель изображения: выделение контура и формирование признаков // URL : http://www.nbuv.gov.ua/

48. Costa Д., Marcondes R. Shape Analysis and Classification: Theory and Practice // 2000. P. 76-99

49. Ананьев А. Обнаружение малоразмерных объектов сверхкоротковолновой РЛС // М.: ММРО-14. 2010. С.134-137

50. Пименов В.Ю. Вычислительно-эффективный метод поиска нечетких дубликатов в коллекции изображений // СПб-ий гос. ун-т. 2009. С. 12-18

51. Domingos L., Pazzani P., Pazzani M. On the optimality of the simple Bayesian classifier under zero-one loss // Machine Learning. 2004. P. 103-137

52. Rish I. An empirical study of the naive Bayes classifies // Workshop on Empirical Methods in Artificial Intelligence. 2001. P. 56-89

Признаки формы

53. Heikkil J. Pattern matching with affine moment descriptors // Elsevier Science. March 2004. P. 24-29

54. Фурмана Я. Введение в контурный анализ // М. : ФизМатЛиб. 2003. С. 354-359

55. Voss К., Suesse Н., Braeuer Ch. Affine Point Pattern Matching // URL :

http://www.inf-cv.uni-iena.de/uploads/media/dagm_2001.pdf

56. Венцель Е., Овчаров JI. Теория вероятности и ей инженерное приложения, //М. : Высш.шк. 2000. С. 121-130

57. Гонсалес Р., Вудс Р. Цифровая обработка информации // М. : Техносфера. 2005. С. 948-962

58. Яне Б. Цифровая обработка информации // М. : Техносфера. 2007. С. 528-542

59. Bradski G., Kaehler A. Computer Vision with the OpenCV Library // O'Reilly Media. 2008. P. 272-274

60. Unel M. Affine invariant fitting of algebraic curves using Fourier descriptors // URL: http://mYweb.sabanciuniv.edu/munel/files/2009/01/paaQ5.pdf

61. Rahtu J., Salo V. A New Affine Invariant Image Transform Based on Ridgelets // URL: http://www.conip.leeds.ac.uk/bmvc2008/proceedings/2006/ 343.pdf

62. Wei H., Yamashita T. SURF Tracking // Shanghai Jiao Tong University. Department of Computer Science and Engineering. 2008. P. 23-29

63. Броневия А.Г., Гончаров A.B. Знаковое представление изображения и его информативность // М. : 14-ая Всероссийская конференция РАН. 2010. С. 56-61

64. Домахина Л.Г. Регуляризация скелета для задач сравнения формы // М. : 14-ая Всероссийская конференция РАН. 2010. С. 78-84

65. Гончаров А.В., Губарев В.В. Выделение характерных признаков лиц на цифровых изображениях с использованием знакового представления // М. : 14-ая Всероссийская конференция РАН. 2010. С. 102-109

66. Харинов М.В., Гальяно Ф.Р. Распознавание изображений посредством представлений в различным числе градаций // М. : 14-ая Всероссийская конференция РАН. 2010. С. 113-118

Собственные статьи в журналах редактируемых ВАК по теме диссертации

67. Титов И.О., Емельянов Г.М. Система компьютерного зрения движущегося воздушного объекта // Компьютерная оптика, Том 35 N 4. 2011, С.491^195

68. Титов И. О., Емельянов Г. М. Маркировка динамических объектов с помощью штрих-кода // Вестн. Новг. гос. ун-та. Сер.: Технические науки. 2010. №60. С.50-53.

69. Титов И. О., Емельянов Г. М. Выделение контуров изображения движущегося объекта // Вестн. Новг. гос. ун-та. Сер.: Техн. науки. 2010. №55. С.27-31.

70. Титов И.О., Емельянов Г.М. Моделирование процесса выделения и классификации изображения для систем автоматического сопровождения движущихся воздушных объектов // Вестн. Новг. гос. ун-та. Сер.: Техн. науки. 2011. №65. С.90-93.

71. Титов И. О., Емельянов Г. М. Формирование инвариантных признаков движущегося воздушного объекта // Сборник трудов конференции 15-ой Всероссийской конференции РАН, Москва, 2011. ММРО-15. С.467-470.

72. Программа для моделирования процессов выделения, сопровождения и классификации движущегося воздушного объекта: свидетельство о государственной регистрации программы (принята к регистрации) // Государственное образовательное учреждение высшего профессионального образования НовГУ имени Ярослава Мудрого; Титов И.О., Емельянов Г.М., заявл. 26.01.2012 г.

73. Титов И.О. Формирование инвариантных признаков движущегося воздушного объекта // Дни науки и XVII научная конференция преподавателей, аспирантов и студентов. Сборник тезисов.

74. Титов И.О. Выделение контуров изображения движущегося воздушного объекта // Дни науки и XVIII научная конференция преподавателей, аспирантов и студентов. Сборник тезисов.

Приложение. Листинги основных модулей программ

Ниже, приведены программные реализации на языке C++ модулей, содержащих основной функционал разработанного комплекса, такие как: модуль кодирования внешней границы объекта; модуль дооценивания вектора состояния динамической системы; модуль сегментирования, сопровождения, выделения движущегося воздушного объекта.

class CKalmanFilter {

public:

CKalmanFilter (); -CKalmanFilter ();

virtual voidpredictionBegin(float x,float у ); virtual void predictionUpdate(float x,float у ); virtual void predictionReport( CvPoint &pnt);

private:

CvKalman *m jpKalmanFilter;

CvRandState rng;

CvMat* state;

CvMat* process jioise;

CvMat* measurement;

CvMat* measurementjioise;

bool m_bMeasurement;

clockj m_timeLastMeasurement; CRITICAL SECTION mutexPrediction;

};

CKalmanFil ter:: CKalmanFilterQ {

mJimeLastMeasurement = clockQ; int dynam_params = 4; // x,y,dx,dy int measure _params = 2;

m_pKalmanFilter — cvCreateKalman(dynam_params, measure_params); state = cvCreateMat(dynam_params, I, CV_32FC1);

//Генератор случайных чисел cvRandlnitf &rng, 0, 1, -1, CV_RAND_UNI); cvRandSetRange( &rng, 0, 1, 0);

rng.disttype = CV_RAND_NORMAL; cvRand( &rng, state );

processjioise = cvCreateMatf dynamjparams, 1, CV_32FC1); // (w_k)

measurement = cvCreateMat( measure _params, 1, CV_32FC1); // two parameters for x,y (z_k) measurementjioise = cvCreateMat( measurejparams, 1, CV_32FC1); // two parameters forx,y (v_k) cvZero(measurement);

// F matrix data

// F is transition matrix. It relates how the states interact

//For single input fixed velocity the new value

// depends on the previous value and velocity- hence 1010

// on top line. Новое значение скорости не зависит от предыдущего

// значения координаты, и зависит только от предыдущей скорости- поэтому О 1 О 1 on second row

const float FfJ = {

1, 0, 1, 0,//x + dx 0, 1, 0, l,//y + dy О, 0, 1, 0,//dx = dx 0, 0, 0, lj/dy = dy

};

memcpy(m_pKalmanFilter->transition_matrix->data.fl, F, sizeof(F)); cvSetldentityf m_pKalmanFilter->measurement_matrix, cvRealScalar(l) ); //(H) cvSet!dentity( m_pKalmanFilter->process_noise_cov, cvRealScalar(le-5) ); // (Q) cvSetldentityf mj>KalmanFilter->measurement_noise_cov, cvRealScalar(le-l) ); // (R) cvSetldentityf m_pKalmanFilter-> error_cov_post, cvRealScalar(l));

// choose random initial state

cvRand( &rng, m_pKalmanFilter->state_post);

InitializeCriticalSection(&mutexPrediction);

}

CKalmanFilter: :~CKalmanFilter() {

cvReleaseMatf &state ); cvReleaseMat( ¿¿process _noise ); cvReleaseMat( &measurement); cvReleaseMatf &measurement_noise ); cvReleaseKalman( &m _pKalmanFilter );

DeleteCriticalSection(&mutexPrediction);

}

// Устанавливаем значения переменных фильтра на первом шаге //Если этого не сделать, то объект не будет трекатъся

void CKalmanFilter: :predictionBegin (float x,float y) {

//В переменной m_pKalmanFilter->state_post хранится предыдущее состояние m_pKalmanFilter->state_post->data.fl[0] = x; //координата x m_pKalmanFilter->state_post->data.fl[l] = у; //координата у

m_pKalmanFilter->state_post->data.fl[2] = (float)O; //dx - скорость nox m_pKalmanFilter->state_post->data.fl[3] = (float) 0; //dy - скорость no у

}

void CKalmanFilter::predictionUpdate(float x,floaty) {

EnterCriticalSection(&mutexPrediction); state->data.fl[0] = x; //center x state->data.fl[l] = y; //center у m_bMeasurement = true; LeaveCriticalSection(&mutexPrediction);

}

void CKalmanFilter: :predictionReport(CvPoint &pnt) {

clock J timeCurrent = clockQ; EnterCriticalSection(&mutexPrediction);

const CvMat* prediction = cvKalmanPredict( m_pKalmanFilter, 0); pnt.x = (int)prediction->data.fl[0]; pnt.y = (int)prediction->data.fl[l];

// Если мы получили действительные данные недавно, тогда используем полученные данные // для корректировки

// состояния фильтра. Если мы не получили данные, тогда корректируем состояние фильтра, // используя предсказанные значения

// используем действительные данные

if (m_bMeasurement) //(timeCurrent - mJimeLastMeasurement < TIME_OUT_LOCA TION UPDA ТЕ) {

m_bMeasurement = false;

}

// Обычно фильтр работает быстрее чем поступают данные измерений.. // Таким образом, можно дать фильтру брать данные из предсказанных значений в // промежутках между измерениями // (делает работу трекера более плавной)

else // используем предсказанные данные

{

state->data.fl[0] = (float)pnt.x; state->data.fl[l] = (float)pnt.y;

I

// генерируем шум измерения noise(zjt)

cvRandSetRange( &rng, 0, sqrt(m_pKalmanFilter->measurement_noise_cov->data.fl[0]), 0); cvRand( &rng, measurementjioise );

//zk = Hk* xk + vk

// measurement = measurement_error_matrix * current_state + measurement jioise cvMatMulAdd( m _pKalmanFilter->measurement_matrix, state, measurement jioise, measurement);

//уточняем состояние фильтра

cvKalmanCorrect( m_pKalmanFilter, measurement); //гененрируем шум процесса^_k)

cvRandSetRange( &rng, 0, sqrt(mj)KalmanFilter->process jioise j;ov->data.fl[0]), 0); cvRand( &rng, process jioise );

//xk = F * xk-1 + В *uk + wk

// state = transition jnatrix * previousjstate + controljnatrix * controlJnput + noise cvMatMulAddf m_pKalmanFilter->transition jnatrix, state, process jioise, state ); LeaveCriticalSection(&mutexPrediction);

Алгоритм 1. Класс, реализующий модуль дооценивания вектора состояния

динамической системы

void CCanny::edgeDirectionsGradient(double** gradient,

unsigned char* destination bmp,

unsigned char** edge_dir,

int height,

int width,

char** gxjnask,

char** gyjnask )

{

//Determine edge directions and gradient strengths

for ( int row = 1; row < height -1; ++row ) {

for ( int col = 1; col < width -1; ++col) {

int i = (unsigned long)(row * 3 * width + 3 * col); double gjc = 0.0; double gjy = 0.0;

// Calculate the sum of the Sobel mask times the nine surrounding pixels in the x and y direction

for ( int row_offset = -1; row j)ffset <= 1; ++rowj>ffset ) {

for (int col_offset = -1; col_offset <= 1; ++col_offset) {

int rowjotal = row + row_offset; int coljotal = col + colj>ffset;

int offset = (unsigned long) (row Jotal * 3 * width + coljotal * 3);

g_x = gjc + ( * (destination_bmp + offset) * gxjnaskfrow_offset + l][colj)ffset + 1] ); g_y = gjy + ( * (destination_bmp + offset) * gyjnaskfrow ^offset + l][colj)ffset + 1] );

}

}

// Calculate gradient strength

gradient [row] [col] = sqrt( pow( gjc, 2.0) + pow( gjy, 2.0));

// Calculate actual direction of edge

double this_angle = (atan2(g_x, g_y) / 3.14159) * 180.0;

unsigned char new jingle = 0;

// Convert actual edge direction to approximate value

if (((this_angle<22.5) && (this_angle> -22.5)) || (thisjmgle> 157.5) || (this_angle< -157.5)) {

new_angle = 0;

}

if (((this_angle>22.5) && (thisjingle < 67.5)) || ((thisjmgle < -112.5) && (this_angle > -157.5) )) {

new_angle = 45;

}

if (((this_angle>67.5) && (this_angle < 112.5)) j| ((thisjmgle < -67.5) && (this_angle > -112.5))) {

new_angle = 90;

}

if (((this_angle> 112.5) && (this jingle < 157.5)) || ((this_angle < -22.5) && (this_angle > -67.5)) ) {

new_angle = 135;

}

// Store the approximate edge direction of each pixel in one array edge _dir[row] [col] = new_angle;

}

}

}

void CCanny: : edges Trace ( unsigned char* destination _bmp,

unsigned char** edge_dir, double** gradient, int height, int width,

char lowerJhreshold, char upper Jhreshold )

{

// Trace along all the edges in the image

for ( int row = 1; row < height - 1; ++row ) {

for ( int col = 1; col < width -1; ++col) {

/1edgeEnd = false;

// Check to see if current pixel has a high enough gradient strength to be part of an edge

if ( gradient [row] [col] > upper Jhreshold )

{

// Switch based on current pixel's edge direction switch ( edge_dir[row][col] )

{

case 0:

fmd_edge(0, 1, row, col, 0, lowerJhreshold); break; case 45:

find_edge(l, 1, row, col, 45, lower Jhreshold); break; case 90:

fmd_edge(l, 0, row, col, 90, lower Jhreshold); break; case 135:

find_edge(l, -1, row, col, 135, lower Jhreshold); break; default :

int i = (unsigned long)(row * 3 * width + 3 * col);

* (destination_bmp + i) = * (destination_bmp + i + 1) = * (destination_bmp + i + 2) = 0; break;

}

}

else {

int i = (unsigned long)(row * 3 * width + 3 * col);

* (destinationJ>mp + i) = * (destination_bmp + i + 1) = *(destinationJmip + i + 2) = 0;

I

}

}

// Suppress any pixels not changed by the edge tracing

for ( int row = 0; row < height; ++row ) {

for ( int col = 0; col < width; ++col ) {

// Recall each pixel is composed of 3 bytes

int i = (unsigned long)(row * 3 * width + 3 * col);

// If a pixel's grayValue is not black or white make it black

if( ( (*(destination_bmp + i) != 255) &&

(*(destinationJymp + i) /= 0)) || ((*(destination_bmp + i + 1) != 255) && (*(destinationjbmp + i + 1) != 0)) \ \ ((*(destination bmp + i + 2) /= 255) (*(destination_bmp + i + 2) /= 0)) )

{

// Make pixel black

*(destination_bmp + i) = * (destination Jmp + i + 1) = * (destination J>mp + i + 2) = 0;

}

}

}

}

void CCanny::nonMaxSuppression( unsigned char* destination_bmp,

unsigned char** edgejiir, double * * gradient, int height, int width,

char lowerJhreshold )

{

for (int row = 1; row < height - 1; ++row) {

for (int col = 1; col < width - 1; ++col) {

int i = (unsigned long) (row * 3 * width + 3 * col); // Check to see if current pixel is an edge

if( * (destination_bmp + i) == 255) {

// Switch based on current pixel's edge direction

switch (edge_dir[row][col]) {

case 0:

suppressNonMax( 1, 0, row, col, 0, lower ^threshold); break; case 45:

suppressNonMax( 1, -1, row, col, 45, lower Jhreshold); break; case 90:

suppressNonMax( 0, 1, row, col, 90, lower Jhreshold); break; case 135:

suppressNonMax( 1, 1, row, col, 135, low erJhreshold); break; default: break;

}

}

}

}

return;

}

Алгоритм 2. Класс, реализующий реализующий модуль кодирования внешней

границы объекта

void CCodeBook:: update jode_book( uchar *p, codejbook &c, unsigned bounds, bool learning) {

if(learning ) {

const int MAHALANOBIS DISTANCE = 3; const double DISPERSION = 10.0; const double ajn =0.1;

const double ajl = 0.05;

int i = 0;

double new jnathjvait = *p;

double new_dispersion = DISPERSION; int process_cnt = c.process_list.size();

for( i = 0; i < process_cnt; ++i) {

double Ijnathjwait = (c.process Jist.beginO + i)-> math jv ait; double Ijdispersion = (c.processJist.beginO + i)-> dispersion;

double numerator = (Ijnathjvait - *p) * (Ijnathjvait - *p); double condition = numerator /1 jdispersion;

if (condition < MAHALANOBISJDISTANCE)

{

newjnathjvait = (1 - ajn) * Ijmathjwait + (ajn * (*p));

new jdispersion = (1 - a_d) * Ijlispersion + a_d * ((*p - newjnathjvait) * (*p - newjnathjvait));

(c.process Jist.beginQ + i)-> dispersion = newjdispersion; (c.process Jist.beginO + i)->mathjwait = newjnathjvait;

(c.process Jist.beginO + i)->learnHigh = (int)new jnathjvait + (int)newjdispersion; (c.processJist.beginO + i)->learnLow = (int)newjnathjvait - (int)newjdispersion;

if ((c.processJist.beginO + i)->max < *p)

(c.process Jist.beginO + i)->max = *p; else

if ((c.processJist.beginO + i)->min > *p) (c.process Jist.beginO + i)->min = *p; break;

}

if (i ==process jnt) {

code_elementnew_elem( (int)newjnathjvait, (int)newjdispersion, *p); c.process Jist.push Jack( new_elem );

}

return;

}

else {

unsigned int high = 0; unsigned int low = 0; bool clear_stale_entries = false; unsigned int i = 0;

++c.framejnt;

for( i = 0; i < c.processJist.sizeO; ++i) {

code_element el em = c.processJist[ij; //Found an entry for this channel

if((elem.learnLow <= *p) && (elem.learnHigh >= *p)) {

high = *p + elem.dispersion; high = (high > 255) ? 255 : high;

low = *p - elem.dispersion; low = (low <0) ? 0 ; low;

// счётчик сколько раз процесс обновояляс, тоестъ сколько раз он повторяется. // тоестъ на сколъок он явялется фоновой точкой

++c.process_list[i], cnt;

if ( elem.max < *p)

c.process_list[i] .max = *p; else

if (elem.min > *p)

c.process_list[i].min = *p; break;

}

}

if (i == c.processJist.sizeQ ) {

code_element new_elem;

memset( &new_elem, 0, sizeof(new_elem ) );

high = *p + bounds;

high = (high > 255) ? 255 : high;

low = *p - bounds; low = (low < 0) ? 0; low;

new _elem.learnHigh = high; new_elem.learnLow = low; new _elem.max = new_elem.min = *p; c.process _list.push_back( new_elem );

}

else {

if( c.process Jist[i].learnHigh < high ) c.process_list[i].learnHigh += 1;

if(c.processJistfiJ.learnLow > low) c.processJistfiJ.learnLow -= 1;

}

bool frame_consid = (c.frame_cnt % 30) ? false : true; if (frame_consid && c.process Jist.sizeQ > 1) clear_stale_entries( с );

}

return;

}

void CX!odeBook::c\td.xj,id\t_tntnt%( code_book &c) {

for( int i = 0; i < c.process_list.size(); ++i )

{

if ( c.process_list[i].cnt < MIN_CNT_CHOICE ) {

c.process_list.erase( c.process_list.begin() + i); -i;

}

}

return;

}

uchar CCodeBook::background_diff(uchar *p, code_cook &c, intminjnod, intmaxjnod) unsigned int i = 0;

forf i = 0; i < c.processjist. sizeQ; ++i) {

iff (c.processjist[i].min - minMod <= *p) && (c.processjist[i],max + maxMod >=*p)) break;

}

}

iff i == c.processjist.sizeQ ) {

return 255;

}

return 0;

Алгоритм 3. Класс, реализующий модуль сопровождения и выделения

движущегося объекта.

/НЕ-

ОТКРЫТОЕ АКЦИОНЕРНОЕ ОБЩЕСТВО

«НАУЧНО-ПРОИЗВОДСТВЕННАЯ КОРПОРАЦИЯ «СИСТЕМЫ ПРЕЦИЗИОННОГО ПРИБОРОСТРОЕНИЯ»

(ОАО «НПК «СПП»)

ФИЛИАЛ ОАО «НПК «СПП» В ВЕЛИКОМ НОВГОРОДЕ

ОГРН 1097746629639, ОКПО 98692337, ИНН/КПП 7722698108 / 532143001

Набережная реки Гзень, д.9, Великий Новгород, 173003

тел./факс (816-2) 33-53-65 _e-mail: niipp@bk.ru

ОАО «НПК«СГ

<ст

УТВЕРЖДАЮ Дирек i ор филиала » в Целиком Новгороде

В. А.Ж^динцев

ЮШ0 2012 г.

АКТ

о внедрении (использовании) результатов кандидатской диссертационной работы Титова Ильи Олеговича

Комиссия в составе: председатель директор филиала, Колядинцев В.А._

члены комиссии: к.т.н. Платонов С.М., к.т.н. Антоненков О.В., к.т.н. Капралов С.А.,

Николаев А.Е, Александров H.A., Котуля P.A., Воронин H.A., составили настоящий акт о том, что результаты диссертационной работы Титова Ильи Олеговича на тему «Моделирование

процессов_выделения, сопровождения и классификации изображения движущегося

воздушного объекта» использованы ОАО «НПК«СПП» в виде:

1. алгоритмов и методов, позволяющих проводить оценку и сравнительный анализ различных системных решений;

2. компьютерной математической модели на базе предложенных алгоритмов.

Использование указанных результатов позволяет повысить эффективность алгоритмов выделения, обнаружения и оценки параметров воздушных объектов, работающих в режиме реального времени, для систем автоматического сопровождения. Результаты диссертационных исследований внедрены в рамках ОКР «OJTC-35» по договору с ОАО «ОКБ Сухого».

Члены комиссии:

О.В. Антоненков С.А.Капралов

А.Е.Николаев

Р.А^туля I.A. Александров

Н.А.Воронин

Обратите внимание, представленные выше научные тексты размещены для ознакомления и получены посредством распознавания оригинальных текстов диссертаций (OCR). В связи с чем, в них могут содержаться ошибки, связанные с несовершенством алгоритмов распознавания. В PDF файлах диссертаций и авторефератов, которые мы доставляем, подобных ошибок нет.