Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: VII Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ» (Россия, г. Новосибирск, 25 декабря 2012 г.)

Наука: Информационные технологии

Скачать книгу(-и): Сборник статей конференции

Библиографическое описание:
РАСПОЗНАВАНИЕ ЖЕСТОВ ПРИ ПОМОЩИ ВЕБ-КАМЕРЫ // Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ: сб. ст. по мат. VII междунар. студ. науч.-практ. конф. № 7. URL: http://sibac.info/archive/technic/7.pdf (дата обращения: 19.04.2024)
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

РАСПОЗНАВАНИЕ ЖЕСТОВ ПРИ ПОМОЩИ ВЕБ-КАМЕРЫ

Дриленко Максим Владимирович

студент, ИИТиБ, КубГТУ, г. Краснодар

E-mail: maxis@russia.ru

Луцко Николай Андреевич

научный руководитель, старший преподаватель, кафедра ОМ, КубГТУ, г. Краснодар

 

В настоящее время получили широкое распространение так называемые «разумные» технологии. Основой таких технологий является «дружелюбный» по отношению к пользователю интерфейс, так можно рассматривать любые технологии связанные с графикой, будь то мониторы или телевизоры, а так же всяческие игровые приставки и консоли. В данном случае возможно увеличить удобство взаимодействия, а в случае с игровым консолями повысить качество самой игры путем добавления нового способа взаимодействия. Таким способом может стать возможность управления цифровым устройством без прикосновения к нему, по средствам использования рук в качестве непосредственного манипулятора. Однако при распознавании жестов необходимо обнаруживать на изображении руки человека и прослеживать изменение их положения или формы с течением времени. Для этого обычно используют либо детектирование движения [5, c. 91], либо обнаружение областей, имеющих цвет кожи [3, c. 6, с. 231], либо оба этих подхода совместно [6, c. 124, с. 19]. Как правило, обнаруживаемые жесты имеют достаточно большой масштаб. В таких ситуациях обычно наряду с цветом используется детектирование областей движения. При распознавании мелкомасштабных жестов, в которых задействованы отдельные пальцы, кисть руки занимает существенную часть кадра [2, c. 91]. Фон в этих случаях однородный и контрастирует по цвету с кожей человека. В ходе исследования было разработано программное обеспечение управления манипулятором в среде WindowsXP/7 при помощи движения ладонью, при направленной веб камере, что даёт возможность управления компьютером на расстоянии, что в свою очередь удобно в ходе конференций и презентаций. Также в более специфических сферах, таких как военно-промышленный комплекс или медицина.

Эмуляция клавиш манипулятора

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

Программный код эмуляции нажатия кнопок манипулятора:

public static class NativeMethods

{

 [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]

static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);

 

static int GetWParamFromButton(MouseButton btn)

{

switch (btn)

{

case MouseButton.Left: return 0x0001;

case MouseButton.Middle: return 0x0010;

case MouseButton.Right: return 0x0002;

default: thrownewWin32Exception("Невозможно преобразовать значение!");

}

}

 

public static void MouseClick(IntPtr hWnd, MouseButton btn, int x, int y)

{

int xyPoint = NativeMacros.MAKELONG(x, y);

int wParam = GetWParamFromButton(btn);

 

SendMessage(hWnd, (int)btn, wParam, xyPoint);

SendMessage(hWnd, (int)btn + 1, wParam, xyPoint);

}

public static int MouseDown(IntPtr hWnd, MouseButton btn, int x, int y)

{

int xyPoint = NativeMacros.MAKELONG(x, y);

int wParam = GetWParamFromButton(btn);

 

return SendMessage(hWnd, (int)btn, wParam, xyPoint);

}

public static int MouseUp(IntPtr hWnd, MouseButton btn, int x, int y)

{

int xyPoint = NativeMacros.MAKELONG(x, y);

int wParam = GetWParamFromButton(btn);

 

 return SendMessage(hWnd, (int)btn + 1, wParam, xyPoint);

 }

public static int KeyPress(IntPtr hWnd, Keys keys, bool up)

{

int WM_KEY = up ? 0x0101 /* WM_KEYUP */ : 0x0100 /* WM_KEYDOWN */;

 

return SendMessage(hWnd, WM_KEY, (int)keys, 0);

}

}

 

public struct NativeMacros

{

public static int GET_X_LPARAM(int x)

{

return x & 0xffff;

}

 /// <summary>

 /// C++ макрос для GET_Y_LPARAM.

 /// </summary>

public static int GET_Y_LPARAM(int x)

{

return (x >> 16, с. 23) & 0xffff;

}

public static int MAKELONG(int x, int y)

{

return (x & 0xffff) | ((y & 0xffff) << 16, с. 23);

}

}

 

public enum MouseButton : int

{

Left = 0x201, // WM_LBUTTONDOWN

Right = 0x204, с. 19, // WM_RBUTTONDOWN

Middle = 0x207 // WM_MBUTTONDOWN

}

Обнаружение участков, имеющих цвет

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

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

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

Таким образом, при обнаружении в кадре областей, имеющих цвет (как предполагается, цвет сравнивается с некоторыми «идеальными» цветами), наряду с обычным RGB представлением, то есть композициями красной, зеленой и синей составляющих цвета, используется представление — HSL (hue — цвет или оттенок, saturation — насыщенность, luminosity — яркость):

Используя RGBможно четко проследить увеличение производительности программы за счет того, что RGBявляется «родным» для ЭВМ. Компоненты обычно складываются и нормируются [6, с. 19; 5, с. 21]. Из составляющих этого пространства наиболее популярны красный и зеленый цвета. Иногда вместо самих составляющих используются так называемые цветоразности [6, c. 16, с. 23].

Однако, цветовая система HSL подходит для детального анализа цвета, поскольку его составляющие прямо связаны с цветом и его применение ограничивается требованием вычислений арктангенса и квадратного корня (1), и требует существенных затрат времени. Но в последнее время из-за роста производительности компьютеров оно применяется все чаще [3, с. 23].

Наиболее часто цвет используется при определении области головы человека в некоторой последовательности кадров [5, с. 19—6, с. 23], так как определение цвета точки можно выполнить практически моментально. Однако с другой стороны, в процессе обработки последовательности видеокадров известно положение, размер и форма головы на предыдущем кадре, и за промежуток времени между кадрами эти параметры могут либо не измениться, либо измениться вообще не значительно, что позволяет использовать данную характерную черту для облегчения вычислительных задач.

Иногда лицо занимает большую часть изображения [5, с. 19; 3, с. 23], а фон представлен контрастным [3, с. 23]. А в работах [5, с. 19; 4, с. 21] явно указывается, что фон может быть произвольным, что усложняет задачу по распознаванию и отделению фона.

Многие исследователи полагают, что лицо имеет форму эллипса [5, с. 21; 7], и ищут на изображении область, имеющую цвет соответствующий коже и форму эллипса. Параметры при этом могут быть как жестко заданными, так и полагаться произвольными [4, c. 1; 1, с. 23]. Для лучшего соответствия цвета внутренних точек допускается искажение формы эллипса [6, с. 31].

Цветовой канал при определении головы человека в видеопотоке считается самым ненадежным фактором. Поэтому результаты, полученные таким образом, подтверждаются и другими данными. Используются такие методы как детектирование движения [4, c. 19], априорно известная форма головы [4, с. 19; 5, с. 21,7]. Иногда для подтверждения того, что найдено именно лицо, производится поиск губ, соответствующего цвета

Ненадежность цветового отражения требует выполнения начальной калибровки цветового пространства [3, c. 19] и периодической ее корректировки [4, с. 19; 5, с. 21]. Что потребовало при создании программного средства внести калибровку получаемых данных при запуске.

Анализируя работы по обнаружению лица человека на основе информации о цвете, нельзя не заметить следующие моменты:

1.  Необходимо учитывать цвет кожи, который может быть в довольно широких интервалах;

2.  Необходимо учитывать освещение, тем более при работе с веб-камерами;

3.  Необходимо калибровать изображение, а на ЖК экранах цвета всё равно могут изменяться в зависимости от матрицы [4, с. 19]. Требуется учитывать и использовать в распознавании возможное движение объекта и градиент цвета.

Обнаружение на изображении рук человека

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

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

·     параметр насыщенности (S) кожи человека могут лежать в диапазоне от 30 до 90;

·     цвет кожи колеблется в довольно широких интервалах;

·     цвет кожи зависит от освещения;

·     получаемый на изображении цвет кожи человека зависит от настроек самой веб-камеры;

·     цвет, близкий к цвету кожи человека, может иметь всё то угодно: окружающие предметы и стены помещения.

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

 

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

  1. Визильтер Ю.В., Желтов С.Ю., Ососков М.В. Система распознавания и визуализации характерных черт человеческого лица в реальном времени на персональной ЭВМ с использованием web-камеры. // GraphiCon-2002, 23 с.
  2. Bretzner L., Laptev I., Lindeberg T. Hand Gesture Recognition using Multi-Scale Colour Features, Hierarchical Models and Particle Filtering. // Proc. of the 5, с. 21th Int. Conf. on Automatic Face and Gesture Recognition, 2002 —6 с.
  3. Graf H.P., Cosatto E., Gibbon D., Kocheisen M., Petajan E. Multi-Modal System for Locating Heads and Faces. — AT&T Lab Technical Report 95, 19 с.
  4. Gupta D. Computer Gesture Recognition: Using the Constellation Method. // Caltech Undergraduate Research Journal, 2001, vol. 1, № 1. — 91 с.
  5. McKenna S., Gong S. Gesture Recognition for Visually Mediated Interaction using Probabilistic Event Trajectories. // Proc. of BMVC'98, 14, 19—17 с. September 1998, Southampton, England, 19 с.
  6. Vezhnevets V. Face and facial feature tracking for natural Human-Computer Interface. // GraphiCon-2002, 21 с.
  7. Rao R.R., Mersereau R.M. On Merging Hidden Markov Models with Deformable Templates. // Proc. of IEEE Int. Conf. on Image Processing. —Washington D.C., 1995, 25 с.
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

Оставить комментарий

Форма обратной связи о взаимодействии с сайтом
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.