Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
дипломчик.docx
Скачиваний:
6
Добавлен:
01.07.2025
Размер:
3 Мб
Скачать
☆

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, то обозначим просто .

Таким образом, на входе будут следующие исходные данные:

  1. – центр изображения, где , – разрешение изображения.

  2. –положение центра лица в текущий момент времени

  3. – положение центра лица в предыдущий момент времени.

Теперь необходимо сформулировать правила, по которым будет приниматься решение куда смещать камеру.

Введем систему координат на плоскости изображения, центром в точке .

Рассмотрим возможные положения объекта относительно центра:

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

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

В общем, алгоритм принятия решений можно представить в виде модели дерева (рис.18).

Есть три 4 варианта действий:

  1. 0 - остановка камеры;

  2. 1 – смещение камеры вправо;

  3. 2- смещение камеры влево

  4. 4 – никаких действий не предпринимается.

Данный алгоритм легко реализуется на C++.

Рис. 20 Алгоритм принятия решений