Реализация основных примеров видео-трекинга в системе MATLAB

Теория распознавания образов. Цифровая обработка изображений и распознавания образов. Система визуального наблюдения. Применение алгоритма Виолы-Джонса. Методы определения и оценка оптического потока. Применение трекинга при помощи оптического потока.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 11.11.2017
Размер файла 2,7 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Государственное образовательное учреждение высшего профессионального образования

«Московский государственный технический университет имени Н.Э. Баумана»

(МГТУ им. Н.Э. Баумана)

Факультет Информатика и системы управления (ИУ)

Кафедра Информационные системы и телекоммуникации (ИУ-3)

Расчётно-пояснительная записка

к курсовому проекту на тему

Реализация основных примеров видео-трекинга в системе MATLAB

Студент: Чистяков И.Ю.

Руководитель курсового проекта: Алфимцев А.Н.

Москва 2013

Введение

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

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

В данной работе описан такой аспект цифровой обработки изображений и распознавания образов, как видео-трекинг (video-tracking). Применение у технологий трекинга весьма обширное: начиная от видео-презентаций, заканчивая распознаванием и отслеживанием подозрительных лиц или вражеских ракет.

1. Теоретическая часть

1.1 Определение трекинга

Трекингом называется определение местоположения движущегося объекта (нескольких объектов) во времени с помощью камеры. Алгоритм анализирует кадры видео и выдает положение движущихся целевых объектов относительно кадра.

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

Примерами таких простых моделей движения являются:

- трекинг плоских объектов, модель движения - 2D преобразование (аффинное преобразование или гомография) изображения объекта (например, исходного кадра)

- когда целевым является жесткий 3D объект, модель движения определяет вид в зависимости от его положении в пространстве и ориентации

- для сжатия видео, ключевые кадры (keyframes) разделяются на макроблоки (macroblocks). Модель движения представляет собой разрыв ключевых кадров, где каждый макроблок преобразуется при помощи вектора движения полученного из параметров движения

- изображение деформируемого объекта может быть покрыто сеткой (mesh), движение объекта задается положением вершин этой сетки

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

Система визуального наблюдения (трекинга) состоит из двух основных частей:

1) Представление и Локализация Целевого Объекта (TargetRepresentationandLocalization)

2) Фильтрация и Объединение Данных (FilteringandDataAssociation)

Представление и Локализация Целевого Объекта представляет собой по большей части восходящий процесс(bottom-upprocess), т.е. последовательный и его последующие шаги не затрагивают предыдущие. Обычно вычислительная сложность этих алгоритмов достаточно мала. Вот некоторые стандартные алгоритмы Представления и Локализации Целевого Объекта:

Blobtracking: Сегментация интерьера объекта (например blobdetection, block-basedcorrelation или оптический поток (opticalflow))

Kernel-basedtracking (Mean-shifttracking): Итеративная процедура локализации, основанная на максимизации критерия подобия (Bhattacharyyacoefficient).

Contourtracking (трекинг контуров): Поиск границы объекта (например активные контуры или Condensationalgorithm)

Визуальное согласование особенностей (featurematching): Регистрация (Imageregistration)

Pointfeaturetracking (Слежение за точечными особенностями сцены): Задача формулируется так - дана последовательность изображений некоторой сцены, полученная с движущейся или неподвижной камеры. Необходимо получить набор как можно более точных последовательностей координат проекции некоторых точек сцены в каждом кадре.

Фильтрация и Объединение Данных представляет собой по большей части нисходящий процесс (top-downprocess), который включает в себя объединение априорной информации о сцене или объекте, соотносящейся с динамикой объекта и вычислением различных гипотез. Вычислительная сложность этих алгоритмов обычно намного выше. Вот некоторые стандартные алгоритмы фильтрации:

Фильтр Калмана: оптимальный рекурсивный (Bayesianfilter) для линейных функций, подверженных шуму по Гаусу.

Фильтр частиц (Particlefilter): полезно для семплинга базового пространства состояний распределения нелинейных и негауссовых(non-Gaussian) процессов.

Существует несколько методов реализации трекинга. В данной работе рассмотрены различные методы трекинга:

1) алгоритм Виолы-Джонса (каскады Хаара)

2) алгоритм с использованием оптического потока (OpticalFlow)

3) алгоритм с использованием коэффициентов корреляции

трекинг оптический образ распознавание

2. Исследовательская часть

2.1 Алгоритм Виолы-Джонса

Данный алгоритм является одним из самых популярных методов распознавания изображений из-за его высокого быстродействия и простой реализации. Лучшие результаты алгоритм даёт при распознавании лиц. Также этот алгоритм можно использовать и для трекинга.

Первый шаг алгоритма - распознавание нужного объекта. Для этого следует произвести обучение классификаторов Хаара [2].

Распознавание лица на этом шаге алгоритма показано на рис. 1

Рис.1 Распознавание лица

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

Затем к видеоизображению применяется трекер, основанный на гистограммах. Этот трекер использует алгоритм CAMShift, который предоставляет возможность трекинга, используя гистограмму значений пикселей (рис.2)

Рис.2 Канал оттенка

Пример программы в системе MATLABприведён ниже.

% создание объекта-классификатора

faceDetector = vision.CascadeObjectDetector();

% чтение видеофайла и запуск детектора

videoFileReader = vision.VideoFileReader('visionface.avi');

videoFrame = step(videoFileReader);

bbox = step(faceDetector, videoFrame);

% отрисовка квадрата вокруг лица

videoOut = ertObjectAnnotation(videoFrame,'rectangle',bbox,'Face');

figure, imshow(videoOut), title('Detected face');

% получение информации о цвете кожи путем извлечения канала оттенка из кадра видео, переконвертированного в цветовое пространство HSV

[hueChannel,~,~] = rgb2hsv(videoFrame);

% показ канала оттенка и квадрата вокруг лица

figure, imshow(hueChannel), title('Hue channel data');

rectangle('Position',bbox(1,:),'LineWidth',2,'EdgeColor',[1 1 0])

% Распознавание носа. Он наиболее полно отражает цвет кожи, так как не содержит фоновых пикселей

noseDetector = vision.CascadeObjectDetector('Nose');

faceImage = imcrop(videoFrame,bbox(1,:));

noseBBox = step(noseDetector,faceImage);

noseBBox(1,1:2) = noseBBox(1,1:2) + bbox(1,1:2);

% создание объекта-трекера

tracker = vision.HistogramBasedTracker;

% Инициализация гистограммы трекера, используя пиксели с канала оттенка

initializeObject(tracker, hueChannel, noseBBox(1,:));

%Создание объекта, отвечающего за отображение видео-кадров

videoInfo = info(videoFileReader);

videoPlayer =vision.VideoPlayer('Position',[300 300 videoInfo.VideoSize+30]);

% Трекинг лица, пока видео не закончится

while ~isDone(videoFileReader)

% Следующий кадр

videoFrame = step(videoFileReader);

% Перевод кадра из RGB в HSV

[hueChannel,~,~] = rgb2hsv(videoFrame);

% Трекинг с использованием данных с канала оттенка

bbox = step(tracker, hueChannel);

% Отрисовка квадрата вокруг лица

videoOut = insertObjectAnnotation(videoFrame,'rectangle',bbox,'Face');

% Показвидео

step(videoPlayer, videoOut);

end

% освобождение ресурсов

release(videoFileReader);

release(videoPlayer);

Данный алгоритм отлично работает при распознавании лиц, дорожных знаков, номеров автомобилей. Его можно использовать для слежения за подозрительными лицами в толпе людей. Преимущество алгоритма также заключается в том, что камера не обязательно должна быть неподвижной. Недостаток конкретной реализации в том, что трекер может распознать также элементы, не относящиеся к заданию (рис.3) , но обладающие сходными признаками (например, цвет кожи)

Рис. 3 Ошибки распознавания

2.2 Оптический поток (Optical Flow)

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

Оценка оптического потока/

Методы, основанные на оптическом потоке, вычисляют движение между двумя кадрами, взятыми в момент времени и , в каждом пикселе. Эти методы называются дифференциальными, так как они основаны на приближении сигнала отрезком ряда Тейлора; таким образом, они используют частные производные по времени и пространственным координатам. В случае размерности 2D+t (случаи большей размерности аналогичны) пиксель в позиции с интенсивностью за один кадр будет перемещен на , и , и можно записать следующее уравнение:

Считая, что перемещение мало, и используя ряд Тейлора, получаем:

.

Из этих равенств следует:

или

отсюда получается, что

Где -- компоненты скорости оптического потока в ,

, , -- производные изображения в в соответствующих направлениях.

Таким образом:

или

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

Методы определения оптического потока:

- Фазовая корреляция -- инверсия нормализованного перекрестного спектра.

- Блочные методы -- минимизация суммы квадратов или суммы модулей разностей

- Дифференциальные методы оценки оптического потока, основанные на частных производных сигнала:

- Алгоритм Лукаса -- Канаде -- рассматриваются части изображения и аффинная модель движения

- Horn-Schunck -- минимизация функционала, описывающего отклонение от предположения о постоянстве яркости и гладкость получаемого векторного поля.

- Buxton-Buxton -- основан на модели движения границ объектов в последовательности изображений

- Общие вариационные методы -- модификации метода Horn-Schunck, использующие другие ограничения на данные и другие ограничения на гладкость.

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

Трекинг при помощи оптического потока часто применяется при использовании стационарных камер, таких как камеры в аэропортах или зданиях, а также стационарные камеры-видеорегистраторы.

В данной работе был использован метод с использованием алгоритма Лукаса-Канаде (рис. 4-6)

Рис. 4 Основное окно модели

Рис. 5 Блоки модели

Рис. 6 Результат работы модели

Данная модель использует метод оценки оптического потока, чтобы определить векторы движения в каждом кадре видеофайла. Путём ограничения и морфологического приближения векторов движения, модель создает бинарные изображения признаков. Модель находит машину в каждом бинарном изображении через блок «BlobAnalysis». Затем блок «DrawShapes» чертит зелёный прямоугольник вокруг машин, которые проходят через белую линию.

Недостаток метода заключается в том, что камера должна быть неподвижна, иначе результат распознавания и трекинга становится непредсказуемым.

2.3 Алгоритм сравнения с шаблоном (TemplateMatching)

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

Требуется два компонента - исходное изображение (например, снимок с камеры) и изображение-шаблон. Чтобы определить сходный участок, нам нужно наложить шаблон на снимок и попиксельно двигать его, слева направо, сверху вниз. В каждом положении вычисляется метрика, которая показывает, совпадают картинки или нет.

Для каждого положения шаблона метрика заносится в результирующую матрицу R. Каждое положение (x,y) в R содержит метрику совпадений.

После окончания сравнения лучшие совпадения мы найдём в глобальных минимумах (при использовании метода наименьших квадратов) или максимумах (при использовании метода корреляции или метода кросс-корреляции).

Существуют несколько методов сравнения (метод наименьших квадратов, метод корреляции, метод кросс-корреляции)

Ниже рассмотрен пример применения алгоритма сравнения с шаблоном с использованием метода наименьших квадратов для нахождения метрики R(x,y)

где - матрица результатов,

- текущие координаты шаблона,

где w и h-ширина и высота шаблона соответственно.

Модель метода сравнения с шаблоном представлена на рис. 7-8

Рис. 7 Основное окно модели

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

Блок «2-DCorrelation» определяет коэффициент корреляции между шаблоном и текущим кадром видеофайла. Блок «2-DMaximum» определяет точки максимальной корреляции между изображениями.

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

Рис.8 Результат работы модели

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

Заключение

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

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

Список литературы

1. Вудс, Гонзалес «Цифровая обработка изображений»

2. MATLAB &Simulink User's Guide

Размещено на Allbest.ur

...

Подобные документы

  • Теоретические основы распознавания образов. Функциональная схема системы распознавания. Применение байесовских методов при решении задачи распознавания образов. Байесовская сегментация изображений. Модель TAN при решении задачи классификации образов.

    дипломная работа [1019,9 K], добавлен 13.10.2017

  • Основные понятия теории распознавания образов и ее значение. Сущность математической теории распознавания образов. Основные задачи, возникающие при разработке систем распознавания образов. Классификация систем распознавания образов реального времени.

    курсовая работа [462,2 K], добавлен 15.01.2014

  • Оптико-электронная система идентификации объектов подвижного состава железнодорожного транспорта. Автоматический комплекс распознавания автомобильных номеров. Принципы и этапы работы систем оптического распознавания. Особенности реализации алгоритмов.

    дипломная работа [887,3 K], добавлен 26.11.2013

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

    курсовая работа [2,1 M], добавлен 20.09.2014

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

    презентация [387,5 K], добавлен 11.12.2015

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

    курсовая работа [645,2 K], добавлен 05.04.2015

  • Методы распознавания образов (классификаторы): байесовский, линейный, метод потенциальных функций. Разработка программы распознавания человека по его фотографиям. Примеры работы классификаторов, экспериментальные результаты о точности работы методов.

    курсовая работа [2,7 M], добавлен 15.08.2011

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

    презентация [855,2 K], добавлен 20.12.2011

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

    реферат [413,6 K], добавлен 10.04.2010

  • Создание программного средства, осуществляющего распознавание зрительных образов на базе искусственных нейронных сетей. Методы, использующиеся для распознавания образов. Пандемониум Селфриджа. Персептрон Розенблатта. Правило формирования цепного кода.

    дипломная работа [554,8 K], добавлен 06.04.2014

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

    дипломная работа [332,2 K], добавлен 30.11.2012

  • Понятие и особенности построения алгоритмов распознавания образов. Различные подходы к типологии методов распознавания. Изучение основных способов представления знаний. Характеристика интенсиональных и экстенсиональных методов, оценка их качества.

    презентация [31,6 K], добавлен 06.01.2014

  • Необходимость в системах распознавания символов. Виды сканеров и их характеристики. Оптимальное разрешение при сканировании. Программы распознавания текста. Получение электронного документа. FineReader - система оптического распознавания текстов.

    презентация [469,2 K], добавлен 15.03.2015

  • Как работает система оптического распознавания. Деление текста на символы. Образ страницы и распознавание по шаблонам, особенности коррекции ошибок. Увеличение скорости бесклавиатурного ввода документов в технологиях электронного документооборота.

    контрольная работа [15,6 K], добавлен 29.04.2011

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

    курсовая работа [3,0 M], добавлен 14.11.2013

  • Словесный, графический, табличный, программный способы представления алгоритма. Основные конструкции в любом алгоритмическом языке. Теория обнаружения, различения и оценивания сигналов. Радиолокационные системы обнаружения. Система распознавания образов.

    презентация [4,8 M], добавлен 09.06.2015

  • Первое систематическое изучение искусственных нейронных сетей. Описание элементарного перцептрона. Программная реализация модели распознавания графических образов на основе перцептрона. Интерфейс программы, основные окна. Составление алгоритма приложения.

    реферат [100,5 K], добавлен 18.01.2014

  • Появление технических систем автоматического распознавания. Человек как элемент или звено сложных автоматических систем. Возможности автоматических распознающих устройств. Этапы создания системы распознавания образов. Процессы измерения и кодирования.

    презентация [523,7 K], добавлен 14.08.2013

  • Понятие системы распознавания образов. Классификация систем распознавания. Разработка системы распознавания формы микрообъектов. Алгоритм для создания системы распознавания микрообъектов на кристаллограмме, особенности его реализации в программной среде.

    курсовая работа [16,2 M], добавлен 21.06.2014

  • Принципы и система распознавание образов. Программное средство и пользовательский интерфейс. Теория нейронных сетей. Тривиальный алгоритм распознавания. Нейронные сети высокого порядка. Подготовка и нормализация данных. Самоорганизующиеся сети Кохонена.

    курсовая работа [2,6 M], добавлен 29.04.2009

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.