- •Реферат
- •Введение
- •Постановка задачи
- •1 Аналитический обзор предметной области
- •Компьютерное зрение
- •Обзор методов детектирования объектов
- •Эмпирические методы
- •Методы характерных инвариантных признаков
- •Методы обнаружения лица по внешним признакам
- •Распознавание с помощью шаблонов, заданных разработчиком
- •Выбор алгоритма
- •Обзор методов детектирования движения
- •1.3.1 Межкадровая разность
- •1.3.2 Базовый кадр
- •1.3.3 Методы оптического потока
- •Обзор инструментальных средств для разработки программного продукта
- •Библиотека OpenCv
- •1.4.2 Среда разработки MathWorks matlab
- •1.5 Интерфейсы последовательной передачи данных
- •2 Оборудование и аппаратная реализация
- •2.1.1 Характеристики камеры
- •Передача команд по протоколу visca
- •Получение изображения с камеры
- •Работа с портом
- •3 Анализ видеоизображения. Детектор лица
- •3.1 Постановка задачи
- •3.2 Метод Виолы-Джонса
- •3.2.1 Описание алгоритма
- •3.2.2 Схема распознавания
- •3.2.3 Признаки класса
- •3.2.4 Схема обучения
- •3.2.5 Интегральное представление изображений
- •3.2.6 Обучение
- •3.2.7 Распознавание
- •3.3 Программная реализация
- •4 Анализ видеоизображения. Слежение за лицом
- •4.1Постановка задачи
- •4.2 Метод Лукаса-Канаде
- •4.2.2 Одномерный случай
- •4.2.2 Двумерный случай
- •4.2.3 Недостатки метода
- •4.3 Выбор оптимальных параметров
- •4.4 Программная реализация алгоритма
- •5 Управление поворотом камеры
- •5.1 Постановка задачи
- •5.2 Перенацеливание на заданную точку поверхности
- •5.3 Модель принятия решений
- •6 Исследование системы
- •6.1 Оценка точности перенацеливания
- •6.2 Проверка на устойчивость к смене освещения
- •6.3 Время задержки
- •6.4 Устойчивость при частичном перекрытии объекта
- •6.5 Анализ влияния шумов
- •Заключение
- •Список литературы
- •Приложение 1. Код программы
4.4 Программная реализация алгоритма
Определившись с выбором оптимальных параметров функции вычесления оптического потока, перейдем к непосредственной реализации модуля слежения за объектом в разрабатываемой системе.
На вход модуля поступают координаты минимального ограничивающего прямоугольника, полученного от модуля-детектора лица:
CvRect (x,y,width,height).
Задача: найти смещение лица, находящегося внутри этой области.
Далее работа, как и для детектора лиц, будет проходить в бесконечном цикле while(), выход из которого возможен либо нажатием клавиши пользователя, либо при потере объекта слежения.
Алгоритм в цикле while():
Получение нового изображение.
Покроем прямоугольник лица равномерной сеткой:
const int step_x = face_rect.width*s / 16;
const int step_y = face_rect.height *s/ 16;
где s –коэффициент масштабирования.
В узлах этой сетки как раз те точки, для которых будет вычисляться оптический поток.
Вычислим оптический поток в вышеописанной функции, на выходе получаем новое положение точек в текущей итерации.
Проверяем количество точек соответствию порогу:
count_point<30.
То есть если количество точек меньше 30, то объект считается потерянным, и тогда происходит выход из цикла и возвращение к модулю-детектору лица. Данное число подбиралось экспериментально. При количестве точек, меньших 30, точность слежения пропадала.
Удаляем точки, не найденные на текущей итерации.
Вычисляем координаты центра лица на изображении C(x,y):
,
,
где
– координаты точек, для которых найден
оптический поток, n
– их количество.
Строим новую ограничивающую прямоугольную область, а точнее смещаем вычисленный детектором лица прямоугольник на новое положение с центром C(x,y).
Удаляем точки, которые не попали в новый прямоугольник. Таким образом, решаем проблему «отставших» точек.
Выводим на экран найденные точки.
Возвращаемся к шагу один.
В результате на каждой итерации будем получать два изображения (рис. 18): первое (справа) – цветное с ограничивающим прямоугольником, определяющий положение лица на картинке, а второе (слева) – изображение в градациях серого с изображением всех точек, для которых вычислен оптический поток.
Рис. 17 Выходное изображение
5 Управление поворотом камеры
Цель настоящей главы — создание математической модели перенацеливания используемой поворотной камеры, экспериментальная проверка ее адекватности и внедрение ее в разрабатываемый комплекс.
5.1 Постановка задачи
Рассмотрим постановку задачи в терминах ТАУ. Пусть g – координата центра изображения, а x(t) – положение объекта в текущий момент времени на плоскости изображении, тогда величина рассогласования будет равна:
Связь между скоростью перемещения камеры на изображении и угловой скоростью вращения можно выразить через следующую формулу:
,
где K – коэффициент пропорциональности.
–угловая скорость
вращения камеры, постоянная величина
Скорость движения объекта на изображении:
Цель управления:
Рис. 18 Математическая модель камеры
Для наблюдения за целевым объектом на заданном участке местности необходимо выработать соответствующие управления поворотной камерой так, чтобы в каждый текущий момент времени камера была направлена в сторону целевого объекта, например в его «центр». Видеокамера имеет две степени свободы, которая устроены следующим образом: камера крепится на одном приводе (привод 1), который в свою очередь крепится на другом приводе (привод 2). Камера установлена на приводе 1 таким образом, что оптическая ось ее объектива пересекает ось вращения этого привода и перпендикулярна ей; оси вращения приводов взаимно перпендикулярны. Примем, что привод 1 предназначен для вращения камеры по азимуту («влево-вправо»), а привод 2 – для вращения камеры по склонению («вверх-вниз»). При работе с поворотной камерой при помощи команд можно изменять направление объектива, вращая камеру вокруг осей двух приводов. В данной работе для упрощения задачи будем управлять только смещением привода 1.
Требуется решить задачу перенацеливания камеры на подвижный объект с известными координатами (x,y) на поверхности наблюдения, то есть, найти такой угол α поворота привода 1, которые переведут вектор наблюдения на точку (x,y). Полагаем, что y=const.
