- •Реферат
- •Введение
- •Постановка задачи
- •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. Код программы
5.2 Перенацеливание на заданную точку поверхности
Далее будем считать,
что наблюдаемая поверхность, то есть
изображение с камеры представляет собой
плоскость. Введем декартову систему
координат для камеры
так, что ось вращения первого привода
совпадает с
.
Положим, что вращение камеры, если
рассматривать его по направлению оси
вращения, осуществляется по часовой
стрелке вокруг оси
.
Зафиксируем начальное положение камеры
таким образом, чтобы она была расположена
(под расположением камеры будем понимать
точку пересечения оптической оси
объектива камеры и оси вращения первого
привода) на известном расстоянии H от
плоскости наблюдения и направлена
перпендикулярно к ней, а оси
и
были параллельны этой плоскости. Выберем
декартову прямоугольную систему
координат так, чтобы в начальном положении
камера располагалась на оси Oz в точке
C = (0, 0, H) и была направлена в начало
координат (плоскость наблюдения при
этом совпадет с плоскостью Oxy), а оси Ox
и Oy были сонаправлены осям
и
соответственно.
Пусть требуется
направить камеру, находящуюся в начальном
положении, на некоторую точку
=(
,
,
0), расположенную на плоскости Oxy. Для
этого необходимо повернуть камеру
сначала вокруг оси
на некоторый угол A
(|A|
< /2).
Вычислим углы поворота A.
Абсцисса точки
легко вычисляется из треугольника
:
=(HtgA,
,
0). Так как нас интересует только смещение
вдоль оси x,
то
.
Величина нам известна - это смещение относительно центра, получаемое в результате работы алгоритма слежения за объектом в момент времени t. Таким образом, можно найти угол A:
.
Рис. 19 Нахождение угла поворота
5.3 Модель принятия решений
Данная глава будет посвящена построению модели принятия решений для управления движением камеры.
На предыдущих этапах производилось детектирование лица и затем отслеживание его смещения на изображении. Но одновременно с трекингом лица необходимо смещать камеру так, чтобы объект всегда находился в центре.
В
данном случае мы будем рассматривать
смещение на изображении центра области
лица
по координатам x.
Под центром лица подразумевается сумма
координат всех точек, где есть оптический
поток в момент времени t,
разделенная на их количество n:
Так
как управление будет происходить только
по координате x,
то обозначим просто
.
Таким образом, на входе будут следующие исходные данные:
– центр изображения,
где
,
– разрешение
изображения.
–положение центра
лица в текущий момент времени
– положение
центра лица в предыдущий момент времени.
Теперь необходимо сформулировать правила, по которым будет приниматься решение куда смещать камеру.
Введем систему координат на плоскости изображения, центром в точке .
Рассмотрим возможные положения объекта относительно центра:
В каждом из трех случаев объект может двигаться либо вправо, либо влево, либо быть неподвижным. Таким образом, всего получается 9 случаев.
Рассмотрим значение d: в данном случае это регулируемая величина, по сути это «коридор», находясь в котором центр объекта считается расположенной в центре экрана.
В общем, алгоритм принятия решений можно представить в виде модели дерева (рис.18).
Есть три 4 варианта действий:
0 - остановка камеры;
1 – смещение камеры вправо;
2- смещение камеры влево
4 – никаких действий не предпринимается.
Данный алгоритм легко реализуется на C++.
Рис. 20 Алгоритм принятия решений
