RU2581013C2 - Способ и устройство для обнаружения вводов при помощи жестов - Google Patents

Способ и устройство для обнаружения вводов при помощи жестов Download PDF

Info

Publication number
RU2581013C2
RU2581013C2 RU2013125228/08A RU2013125228A RU2581013C2 RU 2581013 C2 RU2581013 C2 RU 2581013C2 RU 2013125228/08 A RU2013125228/08 A RU 2013125228/08A RU 2013125228 A RU2013125228 A RU 2013125228A RU 2581013 C2 RU2581013 C2 RU 2581013C2
Authority
RU
Russia
Prior art keywords
gesture
type
movement
point
sub
Prior art date
Application number
RU2013125228/08A
Other languages
English (en)
Other versions
RU2013125228A (ru
Inventor
Пэн ЦИНЬ
Линь ДУ
Original Assignee
Томсон Лайсенсинг
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Томсон Лайсенсинг filed Critical Томсон Лайсенсинг
Publication of RU2013125228A publication Critical patent/RU2013125228A/ru
Application granted granted Critical
Publication of RU2581013C2 publication Critical patent/RU2581013C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/002Specific input/output arrangements not covered by G06F3/01 - G06F3/16
    • G06F3/005Input arrangements through a video camera
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition
    • G06V40/28Recognition of hand or arm movements, e.g. recognition of deaf sign language
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/041Indexing scheme relating to G06F3/041 - G06F3/045
    • G06F2203/04102Flexible digitiser, i.e. constructional details for allowing the whole digitising part of a device to be flexed or rolled like a sheet of paper

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Social Psychology (AREA)
  • Psychiatry (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • User Interface Of Digital Computer (AREA)
  • Image Analysis (AREA)
  • Position Input By Displaying (AREA)

Abstract

Изобретение относится к способу и устройству для обнаружения вводов при помощи жестов. Техническим результатом является обеспечение подачи идентичных команд путем последовательного возвратно-поступательного движения. Способ содержит этапы, на которых принимают последовательное возвратно-поступательное движение, начинающееся с жеста первого типа из двух типов, причем жест первого типа и жест второго типа происходят поочередно, и выводят управляющие сигналы, соответствующие первому типу жеста, с количеством раз, равным количеству жестов первого типа, содержащемуся в последовательном возвратно-поступательном движении. 2 н. и 2 з.п. ф-лы, 8 ил.

Description

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее изобретение относится к пользовательскому интерфейсу, а конкретнее, к способу обнаружения вводов при помощи жестов.
УРОВЕНЬ ТЕХНИКИ ИЗОБРЕТЕНИЯ
Распознавание жестов, особенно распознавание жестов руками, дает людям возможность связываться с вычислительной машиной и взаимодействовать естественным образом без каких-либо механических устройств. Распознавание жестов может проводиться при помощи методик из машинного зрения и обработки изображений. Используя концепцию распознавания жестов, возможно направлять палец на экран компьютера так, что курсор будет перемещаться соответствующим образом. Жест включает в себя статический жест, например знак победы (жест рукой, в котором указательный палец и средний палец выпрямлены и разведены, а большой палец и остальные пальцы сжаты), и динамический жест, т.е. в течение периода одного допустимого ввода при помощи жестов форма (например, выпрямить некоторые пальцы или сжать некоторые пальцы) и/или положение руки пользователя изменяется для создания допустимого ввода при помощи жестов. И иногда последовательное изменение формы руки и/или движение руки может быть интерпретировано как две или более команд для устройства.
Ввод при помощи жестов применяется во многих областях. Одним применением ввода при помощи жестов руками является применения для чтения книг. Например, при горизонтальном ходе руки пользователя (траектория движения руки является по существу горизонтальной, и расстояние движения превышает определенное значение, например, 15 сантиметров) перед фото-/видеокамерой устройство интерпретирует такой ввод при помощи жестов как команду перевернуть страницу книги. Перелистывание книги вперед или назад зависит от ориентации движения. Фиг.1 - схема, иллюстрирующая, как жест вправо подает сигнал перелистнуть книгу назад согласно известному уровню техники. Как видно на Фиг.1, чтобы сделать жест вправо, пользователь должен сначала поместить его правую руку перед фото-/видеокамерой, а затем переместить вправо на некоторое расстояние. Когда жест закончен, т.е. рука приходит в положение остановки, как показано на Фиг.1, пользователю необходимо быстро отвести свою руку перед камерой. Рассмотрим сценарий, когда пользователь хочет перевернуть несколько страниц, скажем пять страниц, сразу, ему нужно пять раз выполнить подъем его руки, движение, остановку и отведение. Это крайне неудобно для пользователя и поэтому ухудшает удобство работы.
Необходим новый способ вводов при помощи последовательных жестов.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Согласно одному аспекту настоящего изобретения обеспечен способ обнаружения вводов при помощи жестов в ответ на последовательное возвратно-поступательное движение, причем последовательное возвратно-поступательное движение содержит по меньшей мере один жест первого типа и по меньшей мере один жест второго типа, причем каждый может распознаваться устройством обнаружения для вывода разного управляющего сигнала, при этом способ содержит этапы, на которых принимают последовательное возвратно-поступательное движение, начинающееся с жеста первого типа из двух типов, причем жест первого типа и жест второго типа происходят поочередно, и выводят управляющие сигналы, соответствующие жесту первого типа с количеством раз, равным количеству жестов первого типа, содержащемуся в последовательном возвратно-поступательном движении.
Согласно другому аспекту настоящего изобретения обеспечено устройство для обнаружения вводов при помощи жестов в ответ на последовательное возвратно-поступательное движение, где последовательное возвратно-поступательное движение содержит по меньшей мере один жест первого типа и по меньшей мере один жест второго типа, причем каждый может распознаваться для вывода разного управляющего сигнала, причем устройство содержит модуль захвата для захвата последовательного возвратно-поступательного движения, которое начинается с жеста первого типа из двух типов, причем жест первого типа и жест второго типа происходят поочередно, и модуль обработки для вывода на основании захваченного последовательного возвратно-поступательного движения управляющих сигналов, соответствующих жесту первого типа с количеством раз, равным количеству жестов первого типа, содержащемуся в последовательном возвратно-поступательном движении.
Должно быть понятно, что в следующем далее подробном описании изобретения будет приведено больше аспектов и преимуществ изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Прилагаемые чертежи, которые включены для обеспечения лучшего понимания, иллюстрируют варианты осуществления изобретения вместе с описанием, которое служит для пояснения принципа изобретения. Таким образом, изобретение не ограничено этими вариантами осуществления. На чертежах:
Фиг.1 - схема, иллюстрирующая движение руки перед камерой согласно известному уровню техники;
Фиг.2A, 2B - схемы, показывающие траекторию одного взмаха руки согласно варианту осуществления настоящего изобретения;
Фиг.3 - схема, показывающая две точки, соответствующие двум соседним кадрам изображений согласно варианту осуществления настоящего изобретения;
Фиг.4 - схема, показывающая траекторию руки от начала согласно варианту осуществления настоящего изобретения;
Фиг.5 - схема, показывающая другую траекторию руки от начала согласно варианту осуществления настоящего изобретения;
Фиг.6 - блок-схема алгоритма, показывающая способ обнаружения вводов при помощи жестов по последовательному возвратно-поступательному движению согласно варианту осуществления настоящего изобретения;
Фиг.7 - блок-схема, показывающая устройство для обнаружения вводов при помощи жестов по последовательному возвратно-поступательному движению согласно варианту осуществления настоящего изобретения.
ПОДРОБНОЕ ОПИСАНИЕ
Теперь совместно с чертежами будет подробно описан вариант осуществления настоящего изобретения. В нижеследующем описании некоторые подробные описания известных функций и конфигураций могут быть опущены для ясности и краткости.
Задача этого изобретения состоит в обеспечении легкого способа подачи идентичных команд путем последовательного возвратно-поступательного движения руки. Последовательное возвратно-поступательное движение может распознаваться устройством как набор последовательных субдвижений, причем любые два соседние субдвижения имеют противоположные направления ориентации. Тип команды, получающейся в результате последовательного возвратно-поступательного движения, определяется по первому из набора последовательных субдвижений, а количество получающихся в результате команд является таким же, как количество субдвижений с таким же направлением ориентации, что и у первого из этого набора (в том числе первого).
Ниже будет описан подробный пример в соответствии с вариантом осуществления настоящего изобретения. Система содержит фото-/видеокамеру для захвата последовательных изображений ввода при помощи жестов и устройство обработки, соединяющееся с фото-/видеокамерой. Устройство обработки использует последовательные изображения для генерации соответствующих команд. В этом варианте осуществления траектория базового жеста для распознавания жестов является по существу прямой линией (фактическое движение жеста не может быть таким же прямым, как линия). В этом примере жест горизонтального взмаха рукой используется для иллюстрирования принципа настоящего изобретения. Тем не менее следует заметить, что принцип настоящего изобретения может также применяться для других следующих один за другим возвратно-поступательных движений, например вертикального взмаха руки, наклонного взмаха руки и даже движения с вытягиванием и отведением руки перед камерой с функцией обнаружения глубины.
Методика распознавания жестов относится к обработке изображений, и поэтому распознавание жестов может осуществляться как в реальном времени на основе кадров изображений реального времени, так и не в реальном времени, т.е. используя фото-/видеокамеру, захватывая набор кадров изображений, а затем анализируя набор кадров изображений.
На самом деле, любое распознавание статических жестов (распознавание поз) может осуществляться в реальном времени, основываясь на кадрах изображений реального времени. К примеру, при обнаружении позы знака победы устройству на основе анализа выпуклого контура формы руки нужно всего лишь решить, является ли поза знаком или нет. Для распознавания динамических жестов устройству необходимо захватить набор кадров изображений, найти центроид руки в каждом кадре и после анализа кривой, сформированной этой серией центроидов руки, решить, какой это тип жеста.
Фиг.2 - схема, показывающая траекторию одного взмаха руки согласно варианту осуществления настоящего изобретения, где на Фиг.2A показано движение руки влево, а на Фиг.2B показано движение руки вправо. В этом примере предполагается, что фото-/видеокамера находится в верхнем левом углу системы координат. Следует отметить, что в распознавании жестов сплошной кривой (или, как она называется здесь, по существу прямой линии) не существует. Центр масс руки в каждом кадре эквивалентен точке на кривой. Поэтому для всех кадров изображений для любого направления движения, например движения руки влево, будет записываться ряд последовательных точек, для удобства описания для соединения всех этих точек используется линия. Количество дискретных точек зависит от скорости захвата кадров.
Фиг.3 - схема, показывающая две точки, соответствующие двум соседним кадрам изображений согласно варианту осуществления настоящего изобретения. Точка A соответствует предшествующему из двух кадров изображений, а точка B соответствует последующему из двух кадров изображений. В этой заявке точка A называется последней точкой положения, а точка B - текущей точкой положения.
В этом примере используются четыре направления перемещения, а именно наверх, книзу, налево и направо. Как показано на Фиг.3, точка B лежит справа от точки A. Устройство может легко это определить, потому что обе точки имеют значения координат в одной и той же системе координат.
В настоящем варианте осуществления для хранения траектории руки для анализа жестов пользователя используются два массива данных. Если направленность перемещения не становится реверсивной (изменяется на обратную), например, как показано на Фиг.2A, данные траектории руки хранятся в первом массиве. После обнаружения того, что направленность перемещения стала реверсивной, данные траектории руки с момента реверса направленности перемещения сохраняются во втором массиве, а затем данные в первом массиве используются для определения, какой жест происходит, и вывода соответствующей команды. Кроме этого, для определения наступления реверсивного перемещения используются пороговое значение реверса и четыре счетчика направлений. Поскольку последовательный жест пользователя, такой как горизонтальный взмах рукой, имеет определенную закономерность, например, когда люди делают взмах, если это махание влево, сначала должно быть движение влево на некоторое расстояние, затем движение вправо на некоторое расстояние, и повторение несколько раз; если это махание вправо, сначала должно быть движение вправо на некоторое расстояние, затем движение влево на некоторое расстояние, и тоже повтор несколько раз, так что счетчик направлений можно выбирать на основе предыдущего субжеста. Помимо этого в этом варианте осуществления в качестве основы для принятия решения о жесте всегда используется первый массив данных.
Ниже описаны этапы обработки, осуществляемые для точки положения из числа точек положения, сгенерированных по движению руки, согласно варианту осуществления настоящего изобретения.
Этап 1. В момент времени в течение ввода при помощи следующего один за другим жестов устройство определяет значения координат последней точки положения и текущей точки положения руки. Псевдокод показан ниже:
X координаты последнего положения (old_x)=(реверс направленности пути руки произошел)? получены последние сохраненные данные во втором массиве (pPointBuf1.x):получены последние сохраненные данные в первом массиве (pPointBuf0.x);
Y координаты последнего положения (old_y)=(реверс направленности пути руки произошел)? получены последние сохраненные данные во втором массиве (pPointBuf1.y):получены последние сохраненные данные в первом массиве (pPointBuf0.y);
X координаты текущего положения (cur_x) получена X координата руки в текущем кадре;
Y координаты текущего положения (cur_y)=получена Y координата руки в текущем кадре.
Из вышеприведенного псевдокода видно, что для определения значения координат текущей точки положения используется текущий кадр, соответствующий моменту времени.
Что касается последней точки положения, которая соответствует кадру изображения непосредственно предшествующему этому моменту времени, устройству необходимо сначала определить, произошел ли реверс направленности перемещения. Если происходит, то для определения значения координат последней точки положения будут использованы данные во втором массиве, в противном случае для определения значения координат последней точки положения будут использоваться данные в первом массиве.
Этап 2. Четыре счетчика ориентации для определения направленности перемещения у движения руки обновляются на основе отношения положения текущей точки положения и последней точки положения. В этом варианте осуществления используются четыре счетчика ориентации для записи направления вверх, направления вниз, направления влево и направления вправо соответственно. Но в варианте, если в устройстве не заявлено вертикального жеста рукой, счетчики ориентации вверх и вниз являются излишними.
Два счетчика ориентации, соответствующие противоположному направлению, работают в группе. Например, если местоположение текущей точки положения относительно последней точки положения находится в направлении налево, тогда к счетчику ориентации влево будет прибавлена единица, и в то же самое время, если счетчик ориентации вправо не равен нулю, тогда из этого счетчика будет вычтена единица. И этот же принцип применяется для счетчиков ориентации вверх и вниз. Соответствующий псевдокод для определения счетчиков влево и вправо (orientation_l и orientation_r), на основе значений оси абсцисс, показан ниже. Аналогичный принцип может применяться для определения счетчиков вверх и вниз на основе значений оси ординат.
If(cur_x>old_x) {//координаты оси абсцисс текущего положения больше, чем у последнего положения
orientation_r++;// счетчик ориентации НАПРАВО увеличивается на единицу
If (orientation_l > 0) {// счетчик ориентации НАЛЕВО больше нуля
Orientation_l--;
} else {
Orientation_l = 0;
}
}
If(cur_x<old_x) {//координаты оси абсцисс текущего положения меньше, чем у последнего положения
orientation_l++;// счетчик ориентации НАЛЕВО увеличивается на единицу
If (orientation_r>0) {// счетчик ориентации НАПРАВО больше нуля
Orientation_r--;
} else {
Orientation_r=0;
}
}
Фиг.4 - схема, на которой показана траектория руки от начала согласно настоящему варианту осуществления. Как видно на Фиг.4, до точки реверса (способ для определения точки реверса будет описан ниже) есть 14 точек. Точка реверса может считаться начальной точкой жеста реверсирования. Следовательно, согласно вышеупомянутому способу обработки для Orientation_l и Orientation_r (в этом примере опущена обработка для счетчиков ориентации вверх и вниз) в точке перед точкой реверса, т.е. самой правой точкой, Orientation_l равен 0, а Orientation_r равен 13. Когда он движется к точке реверса, где cur_X<old_X, Orientation_l увеличивается на единицу и становится равным 1, а Orientation_r уменьшается на единицу и становится равным 12.
Этап 3. Каждый раз, когда устройство захватывает кадр изображения во время ввода при помощи жестов, устройство определяет, имеется ли реверс направленности перемещения. Во время ввода при помощи жестов устройство захватывает жест с определенной скоростью захвата как набор кадров изображений. Для каждого кадра изображения устройство сначала определяет точку положения руки пользователя на кадре изображения и использует эту точку положения и ее предшествующую точку положения для обновления соответствующих счетчиков ориентации. После того как счетчики ориентации обновлены, устройство использует счетчики ориентации и пороговое значение ориентации, чтобы определять, происходит ли реверс направленности перемещения. Пороговое значение ориентации - это заданное значение, в этом примере, оно установлено равным 6. Псевдокод для определения, имеется ли реверс направленности перемещения, показан ниже. В этой заявке для записи ориентации последнего жеста из ввода при помощи последовательных жестов или последовательного возвратно-поступательного движения руки используются набор указателей ориентации субжестов, т.е. gesture_l, gesture_r, gesture_u и gesture_d. Перед тем как пользователь вводит последовательный жест, эти параметры устанавливаются в «ложь». А после того как устройство обнаруживает первый субжест среди ввода при помощи последовательных жестов, соответствующий параметр будет установлен в «истина».
Перед тем как первый субжест обнаружен, из четырех счетчиков выбирается максимальный счетчик для сравнения с пороговым значением ориентации. Если максимальный счетчик больше порогового значения, а счетчик ориентации с противоположной максимальному счетчику ориентацией равен 1, то тогда определяют, что происходит реверс, и указатель ориентации субжестов, соответствующий противоположной ориентации первого субжеста, устанавливается равным «ИСТИНА». Согласно варианту для замены четырех указателей, принимающих значения «истина-ложь», может использоваться один указатель с выбором четырех значений.
If (~(gesture_l | gesture_r | gesture_u | gesture_d)) {//реверс траектории для четырех ориентаций не происходит
Получен максимальный счетчик ориентации;
If (максимальный счетчик ориентации > THRESHOLD && счетчик противоположной ориентации == 1) {
reverse = true;// произошел реверс траектории на обратную
}
}
Здесь для иллюстрации по-прежнему используется Фиг.4. В самой правой точке Orientation_l равен 0, а Orientation_r равен 13. Хотя Orientation_r как максимальный счетчик больше порогового значения ориентации, равного 6, счетчик противоположной ориентации, т.е. Orientation_l равен 0. Таким образом определяют, что реверса не происходит. Но в точке реверса оба условия удовлетворены. Соответственно, устройство может определить, что происходит реверс.
Что же касается определения реверса после указателей ориентации первого субжеста, устройство определяет, удовлетворяются ли следующие два условия: 1) счетчик ориентации с такой же ориентацией, как указатель ориентации последнего субжеста, превышает пороговое значение; и 2) счетчик ориентации с противоположной указателю ориентации последнего субжеста ориентацией равен 1. Если оба они удовлетворены, определяют, что происходит реверс. Это снизит сложность вычисления. Псевдокод для определения реверса после полученного gesture_l показан ниже. Псевдокод для других указателей ориентации аналогичен.
If (gesture_l) {//последний жест НАЛЕВО
If((orientation_l>THRESHOLD) && (orientation_r==1)) {
Reverse = true;
}
}
До того как реверс обнаружен, данные сохраняются в первый массив pPointBuf0.
Как только первый реверс происходит, данные в pPointBuf0 используются для интерпретации жеста, чтобы выводить сигнал, указывающий значение жеста. В это время для определения, что это за жест, нельзя использовать всего лишь две соседние точки или основываться на числе счетчика ориентации для всех точек в pPointBuf0.
В противном случае могут быть ошибки. На Фиг.5 показана такая ситуация. Если пользователь делает субжест вправо, это может также сопровождаться движением вниз, хотя в точке реверса счетчик ориентации вниз больше счетчика ориентации вправо, нельзя определять этот субжест как жест вниз. Если взглянуть на этот жест в целом, очевидно, что расстояние движения вправо гораздо больше расстояния движения вниз, и этот субжест следует расценивать, как жест вправо. После того как первый реверс произойдет, данные будут сохраняться во втором массиве pPointBuf1. И для определения наступления второго реверса будет использоваться соответствующий счетчик ориентации.
Следует отметить, что в этом примере для определения жеста не используются данные массива pPointBuf1. Данные в массиве pPointBuf1 используются только для определения наступления второго реверса, четвертого реверса, шестого реверса и т.д. Можно легко прийти к выводу, что первый массив используется для хранения данных о движениях субжестов, имеющих такую же ориентацию, что и движение первого субжеста, а второй массив используется для хранения данных движений субжестов, имеющих ориентацию противоположную движению первого субжеста, поскольку движения жестов являются возвратно-поступательными. Определение третьего реверса, пятого реверса, седьмого реверса и т.д. аналогично определению первого реверса. А определение четвертого реверса, шестого реверса, восьмого реверса и т.п. аналогично определению второго реверса. Для принятия решения о том, какой жест имел место, используется разница координат оси абсцисс и оси ординат начальной точки и точки останова (использование отношения амплитуд оси абсцисс и оси ординат траектории жеста для определения типа жестов - это другой способ).
Приведенный ниже псевдокод показывает, как определять, какой жест происходит.
Function calcAction():
If (nPointBufLength > 0) {//длина массива данных больше нуля
nDiffx = pPointBuf0[nPointBufLength-1].x - pPointBuf0[0].x;//получена разница оси абсцисс nDiffx;
nDiffy = pPointBuf0[nPointBufLength-1].y - pPointBuf0[0].y;//получена разница оси ординат nDiffy;
If (abs(nDiffx) > abs(nDiffy))
If(nDiffx < 0) произошел жест НАЛЕВО ;
Else произошел жест НАПРАВО;
} else {
If(nDiffy < 0) произошел жест КНИЗУ;
Else произошел жест НАВЕРХ;
}
Return жест;
Из вышеприведенного видно, что для определения, какое основное движение происходит из горизонтального движения и вертикального движения, сравниваются абсолютные значения nDiffx и nDiffy. Потому что движение руки пользователя может не быть точно горизонтальным движением или вертикальным движением. Несмотря на то что при намерении сделать горизонтальное движение разница по вертикали неизбежна, абсолютное значение разницы по горизонтали должно быть больше, чем по вертикали. После того как определено, что это горизонтальное движение, nDiffx используется для определения, какой это жест из жеста налево и жеста направо.
Приведенный ниже псевдокод показывает, как обрабатывать после того, как происходит первый реверс:
If произошел реверс (reversal) {
Call calcAction;
Очистить все четыре счетчика ориентации;
gesture_l = произошел жест НАЛЕВО;
gesture_r = произошел жест НАПРАВО;
gesture_u = произошел жест НАВЕРХ;
gesture_d = произошел жест КНИЗУ;
Установить длину pPointBuf0 равной нулю;
Поместить текущие данные в pPointBuf1;
Установить длину pPointBuf1 равной нулю;
} else {
Поместить данные в pPointBuf0;
PointBufLength0++;// увеличить длину pPointBuf0
}
Нижеприведенный псевдокод показывает, как обрабатывать после того, как происходит второй реверс:
If (reverse) {//после того как происходит первый реверс, логическая переменная reverse устанавливается в значение true (ИСТИНА)
Получены четыре счетчика ориентации;
Получен максимальный счетчик ориентации;
If (максимальный счетчик ориентации > THRESHOLD && связанный исключающий счетчик ориентации == 1) {
reverse =false;// произошло второй реверс, после того как случается второй реверс, логическая переменная reverse устанавливается в значение false (ЛОЖЬ)
}
If(!reserve) {
Очистить четыре счетчика ориентации;
Поместить текущую точку в pPointBuf0[0];
PointBufLength0 = 1;
} else {
Поместить текущую точку в pPointBuf1;
PointBufLength1++;// увеличить длину pPointBuf1
}
}
После того как возвратно-поступательные движения руки останавливаются (рука задерживается на некоторое время в воздухе, к примеру 2 секунды, или для указания остановки используется специальная поза, или пользователь быстро отводит его руку), если количество достоверных данных в первом массиве pPointBuf0 больше определенной пороговой величины (обычно по меньшей мере 3, иначе траектория жеста слишком коротка и может не учитываться), эти данные будут использованы для определения, что за жест происходит. Нижеприведенный псевдокод показывает, как обрабатывать после того, как один непрерывный жест останавливается:
If(gesture_stop) {
If(PointBufLength0 > 2) {
Call calcAction;
}
Очистить все четыре счетчика ориентации;
Установить все четыре указателя ориентации в значение false (ЛОЖЬ);
PointBufLength0 = 0;
PointBufLength1 = 0;
}
Фиг.6 - блок-схема алгоритма, изображающая способ обнаружения вводов при помощи жестов по последовательному возвратно-поступательному движению согласно настоящему варианту осуществления. Здесь последовательное возвратно-поступательное движение состоит из двух типов распознаваемых устройством жестов, причем каждое происходит несколько раз.
Этап 601. Устройство принимает последовательное возвратно-поступательное движение посредством использования фото-/видеокамеры для захвата этого движения и выводит результат последовательности кадров изображений. Следует отметить, что здесь этап 601 охватывает по меньшей мере два сценария: 1) устройство продолжает захватывать движение до тех пор, пока движение не остановится, а затем захватывающий модуль выводит последовательность кадров изображений; 2) захватывающий модуль выводит кадр изображения немедленно в ответ на захват изображения во время движения.
Этап 602. Устройство определяет по меньшей мере одну точку реверса, используя последовательность кадров изображений. Конкретно, этот этап дополнительно содержит этап 6021, на котором определяют значение координаты, соответствующей положению руки для каждого кадра изображения для получения последовательности значений координат. Что касается определения значения координаты, можно, например, преобразовывать захваченное RGB-изображение в цветовое пространство HSV и делать вычитание фона, основываясь на цвете кожи. Если необходимо, могут производиться некоторые морфологические операции, а затем можно находить контур руки. Масса этого контура будет значением координаты, соответствующей положению руки для этого изображения. Этап 6022, на котором на основе последовательности значений координат определяют точку реверса, используя вышеупомянутые этапы с 1-го по 3-й.
Этап 603. Устройство разбивает, основываясь на определенной точке (точках) реверса, последовательное возвратно-поступательное движение на субдвижения. Поскольку точка (точки) реверса определена и последовательность кадров изображений соответствует последовательному возвратно-поступательному движению, субдвижения разделяются по точке (точкам) реверса в последовательности кадров изображений, а точка реверса является начальной точкой для любого субдвижения кроме первого субдвижения. Кроме этого, следует отметить, что все разбитые субдвижения являются распознаваемыми жестами.
Этап 604. Устройство выводит на основе разбитых субдвижений по меньшей мере один сигнал. А именно, устройство сначала определяет количество субдвижений, включая первое субдвижение, имеющих такую же ориентацию, что и первое субдвижение, а затем выводит сигналы со значением, соответствующим распознаваемому первому субдвижению, и количеством, равным количеству субдвижений, имеющий такую же ориентацию, как первое субдвижение.
Следует заметить, что если устройство обрабатывает кадры изображения в реальном времени, т.е. соответствуя сценарию 2, как заявлено на этапе 601, устройству может быть необходимо определять в ответ на каждый ввод кадра изображения первое субдвижение, находя первую точку реверса, и выводить сигнал, соответствующий первому субдвижению. После определения первого субдвижения устройство будет поочередно определять в ответ на каждый ввод кадра изображения второе субдвижение, третье субдвижение, четвертое субдвижение и т.д., находя вторую точку реверса, третью точку реверса, четвертую точку реверса и т.д., сравнивая по отдельности второе субдвижение, третье субдвижение, четвертое субдвижение и т.д. с первым субдвижением для определения, имеют ли они одинаковый тип жеста, и, если они имеют, устройство выведет такой же сигнал, как для первого субдвижения.
Согласно варианту, так как это последовательное возвратно-поступательное движение, то не нужно сравнивать второе субдвижение, четвертое субдвижение, шестое субдвижение и т.д. Таким образом, устройству необходимо всего лишь определять первое субдвижение, третье субдвижение, пятое субдвижение. Конечно, устройству для разбиения последовательного возвратно-поступательного движения на субдвижения необходимо определять каждую точку реверса. После получения третьего субдвижения, пятого субдвижения и т.д. устройство сравнивает их с первым субдвижением и выводит после каждого положительного сравнения сигнал, соответствующий первому субдвижению. Помимо этого, так как движение является возвратно-поступательным, может не требоваться сравнение нечетных субдвижений. Вместо этого в каждой второй точке реверса, начиная с первой точки реверса, устройство выводит сигнал, соответствующий первому субдвижения.
Фиг.7 - блок-схема, показывающая устройство для обнаружения вводов пользователя. Как видно на фиг 7, обеспечено устройство для обнаружения вводов при помощи жестов в ответ на последовательное возвратно-поступательное движение, где последовательное возвратно-поступательное движение состоит из распознаваемых жестов двух типов, т.е. жеста первого типа (например, движение влево) и жеста второго типа (например, движение вправо), причем каждый может распознаваться для вывода разного управляющего сигнала, где устройство содержит модуль захвата для захвата последовательного возвратно-поступательного движения, которое начинается с жеста первого типа из двух типов, причем жест первого типа и жест второго типа происходят поочередно, и модуль обработки для вывода на основании захваченного последовательного возвратно-поступательного движения управляющих сигналов, соответствующих жесту первого типа с количеством раз, равным количеству жестов первого типа, содержащемуся в последовательном возвратно-поступательном движении.
Кроме этого, модуль обработки выполнен с возможностью определения для последовательного возвратно-поступательного движения точек реверса.
Дополнительно, модуль обработки выполнен с возможностью разбивания, используя точки реверса, последовательного возвратно-поступательного движения на по меньшей мере два субдвижения, причем каждое субдвижение соответствует одному из двух типов жеста; сравнения его с первым субдвижением для каждого субдвижения; и вывода в ответ на определение, что сравниваемое субдвижение имеет такой же тип, как первое субдвижение, управляющего сигнала, соответствующего жесту первого типа.
Помимо этого модуль обработки выполнен с возможностью вывода управляющего сигнала, соответствующего жесту первого типа, в ответ на каждую нечетную точку реверса.
Был описан ряд вариантов исполнения. Тем не менее должно быть понятно, что могут быть сделаны различные модификации. К примеру, элементы разных вариантов исполнения могут объединяться, дополняться, модифицироваться или удаляться для создания других вариантов исполнения. Кроме того, специалисту в области техники будет понятно, что раскрытые структуры и процессы могут быть заменены другими структурами и процессами, а получающиеся в результате варианты исполнения будут выполнять по меньшей мере по существу такую же функцию (функции) по меньшей мере по существу таким же способом (способами) для достижения по меньшей мере по существу такого же результата (результатов), как раскрытые варианты исполнения. Таким образом, эти и другие варианты исполнения входят в объем этого изобретения.

Claims (4)

1. Способ обнаружения вводов при помощи жестов в ответ на последовательное возвратно-поступательное движение для последовательного ввода некоторого количества управляющих сигналов, соответствующих жестам первого типа, при этом последовательное возвратно-поступательное движение содержит жесты первого типа и жесты второго типа, причем каждый может распознаваться устройством обнаружения для вывода разного управляющего сигнала, и последовательное возвратно-поступательное движение начинается с жеста первого типа, при этом способ содержит этапы, на которых
принимают последовательное возвратно-поступательное движение, начинающееся с жеста первого типа из упомянутых двух типов жестов, причем жест первого типа и жест второго типа происходят поочередно, посредством приема последовательности кадров изображения соответствующего последовательного возвратно-поступательного движения,
определяют точку для каждого кадра изображения,
определяют точки реверса на основании упомянутых точек упомянутой последовательности кадров изображения,
разделяют последовательное возвратно-поступательное движение на по меньшей мере два субдвижения с использованием упомянутых точек реверса, при этом каждое субдвижение соответствует одному из упомянутых двух типов жестов, и
выводят некоторое количество управляющих сигналов, соответствующих жесту первого типа, причем упомянутое количество управляющих сигналов, соответствующих жесту первого типа, равно количеству жестов первого типа, содержащемуся в упомянутых по меньшей мере двух субдвижениях, при этом
определение точки реверса на основании точек последовательности кадров изображений дополнительно содержит
для каждой точки, начиная со второй из точек последовательности кадров изображений, использование четырех счетчиков для записи позиционного соотношения между точкой и ее соседней предшествующей точкой, при этом по меньшей мере один соответствующий счетчик увеличивается на единицу на основании позиций упомянутой точки и ее соседней предшествующей точки;
определяют счетчик с наибольшим значением среди упомянутых четырех счетчиков, и определяют конкретную точку в качестве точки реверса и устанавливают упомянутые четыре счетчика в 0 при определении, что счетчик с наибольшим значением превышает пороговое значение и счетчик противоположной ориентации относительно упомянутого счетчика с наибольшим значением равен 1 в упомянутой конкретной точке.
2. Способ по п. 1, в котором этап вывода дополнительно содержит этапы, на которых
сравнивают каждое субдвижение с первым субдвижением; и
выводят в ответ на определение, что сравниваемое субдвижение имеет такой же тип, как первое субдвижение, управляющий сигнал, соответствующий жесту первого типа.
3. Устройство для обнаружения вводов при помощи жестов в ответ на последовательное возвратно-поступательное движение для последовательного ввода некоторого количества управляющих сигналов, соответствующих жестам первого типа, при этом последовательное возвратно-поступательное движение содержит жесты первого типа и жесты второго типа, причем каждый может распознаваться для вывода разного управляющего сигнала, и последовательное возвратно-поступательное движение начинается с жеста первого типа, содержащее
модуль захвата для захвата последовательного возвратно-поступательного движения, которое начинается с жеста первого типа из двух типов жестов, причем жест первого типа и жест второго типа происходят поочередно, и
модуль обработки для определения точки для каждого кадра изображения; определения точек реверса на основании упомянутых точек последовательности кадров изображения; разделения последовательного возвратно-поступательного движения на по меньшей мере два субдвижения с использованием упомянутых точек реверса, при этом каждое субдвижение соответствует одному из упомянутых двух типов жестов; вывода некоторого количества управляющих сигналов, соответствующих жесту первого типа, причем упомянутое количество управляющих сигналов, соответствующих жесту первого типа, равно упомянутому количеству жестов первого типа, содержащихся в упомянутых по меньшей мере двух субдвижениях, причем
модуль обработки дополнительно выполнен с возможностью, для каждой точки, начиная со второй из точек из последовательности кадров изображений, использования четырех счетчиков для записи позиционного соотношения между упомянутой точкой и ее соседней предшествующей точкой, при этом по меньшей мере один соответствующий счетчик увеличивается на единицу на основании позиций упомянутой точки и ее соседней предшествующей точки;
определения счетчика с наибольшим значением среди упомянутых четырех счетчиков; и
определения конкретной точки в качестве точки реверса и установки упомянутых четырех счетчиков в 0 при определении, что счетчик с наибольшим значением превышает пороговое значение и счетчик противоположной ориентации относительно упомянутого счетчика с наибольшим значением равен 1 в упомянутой конкретной точке.
4. Устройство по п. 3, в котором модуль обработки дополнительно выполнен с возможностью сравнения каждого субдвижения с первым субдвижением для каждого субдвижения и вывода в ответ на определение, что сравниваемое субдвижение имеет такой же тип, как первое субдвижение, управляющего сигнала, соответствующего жесту первого типа.
RU2013125228/08A 2010-11-01 2010-11-01 Способ и устройство для обнаружения вводов при помощи жестов RU2581013C2 (ru)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2010/001733 WO2012058782A1 (en) 2010-11-01 2010-11-01 Method and device for detecting gesture inputs

Publications (2)

Publication Number Publication Date
RU2013125228A RU2013125228A (ru) 2014-12-10
RU2581013C2 true RU2581013C2 (ru) 2016-04-10

Family

ID=46023909

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2013125228/08A RU2581013C2 (ru) 2010-11-01 2010-11-01 Способ и устройство для обнаружения вводов при помощи жестов

Country Status (9)

Country Link
US (1) US9189071B2 (ru)
EP (1) EP2635952B1 (ru)
JP (1) JP5997699B2 (ru)
KR (1) KR101760159B1 (ru)
CN (1) CN103282858B (ru)
BR (1) BR112013010520B1 (ru)
MX (1) MX2013004805A (ru)
RU (1) RU2581013C2 (ru)
WO (1) WO2012058782A1 (ru)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10088924B1 (en) * 2011-08-04 2018-10-02 Amazon Technologies, Inc. Overcoming motion effects in gesture recognition
JP2013250637A (ja) * 2012-05-30 2013-12-12 Toshiba Corp 認識装置
US20140118244A1 (en) * 2012-10-25 2014-05-01 Pointgrab Ltd. Control of a device by movement path of a hand
WO2016017956A1 (en) 2014-07-30 2016-02-04 Samsung Electronics Co., Ltd. Wearable device and method of operating the same
KR102397397B1 (ko) * 2014-07-30 2022-05-13 삼성전자주식회사 웨어러블 디바이스 및 웨어러블 디바이스의 동작 방법
JP5932082B2 (ja) * 2015-03-04 2016-06-08 株式会社東芝 認識装置
CN105278763B (zh) * 2015-05-28 2019-05-17 维沃移动通信有限公司 手势识别防误触的方法及装置
DE102016202455A1 (de) * 2016-02-17 2017-08-17 Volkswagen Aktiengesellschaft Anwenderschnittstelle, Fortbewegungsmittel und Verfahren zur Klassifikation einer frei im Raum ausgeführten Anwendergeste
CN107743257B (zh) * 2017-02-22 2018-09-28 合肥龙图腾信息技术有限公司 人体姿势识别装置
KR101971982B1 (ko) * 2017-04-20 2019-04-24 주식회사 하이딥 터치 감지 및 터치압력 감지가 가능한 장치 및 제어방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2175143C1 (ru) * 2000-04-04 2001-10-20 Свириденко Андрей Владимирович Способ дистанционного управления
RU2298294C2 (ru) * 2001-06-05 2007-04-27 Риэктрикс Системз, Инк. Интерактивная видеодисплейная система

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6369794B1 (en) 1998-09-09 2002-04-09 Matsushita Electric Industrial Co., Ltd. Operation indication outputting device for giving operation indication according to type of user's action
JP5048890B2 (ja) * 1998-10-13 2012-10-17 ソニー エレクトロニクス インク 動作検知インターフェース
US6501515B1 (en) * 1998-10-13 2002-12-31 Sony Corporation Remote control system
JP2001216069A (ja) * 2000-02-01 2001-08-10 Toshiba Corp 操作入力装置および方向検出方法
SE0000850D0 (sv) * 2000-03-13 2000-03-13 Pink Solution Ab Recognition arrangement
US7071914B1 (en) 2000-09-01 2006-07-04 Sony Computer Entertainment Inc. User input device and method for interaction with graphic images
US20040001113A1 (en) * 2002-06-28 2004-01-01 John Zipperer Method and apparatus for spline-based trajectory classification, gesture detection and localization
US7932895B2 (en) * 2005-05-24 2011-04-26 Nokia Corporation Control of an electronic device using a gesture as an input
US20080040692A1 (en) 2006-06-29 2008-02-14 Microsoft Corporation Gesture input
JP5174492B2 (ja) * 2008-03-05 2013-04-03 公立大学法人首都大学東京 画像認識装置、画像認識方法、画像認識プログラム、ジェスチャ動作認識システム、ジェスチャ動作認識方法、及びジェスチャ動作認識プログラム
TWI354225B (en) 2008-04-29 2011-12-11 Tsint Touch free public browser
US20090278801A1 (en) * 2008-05-11 2009-11-12 Kuo-Shu Cheng Method For Executing Command Associated With Mouse Gesture
EP2327005B1 (en) * 2008-07-25 2017-08-23 Qualcomm Incorporated Enhanced detection of waving gesture
CN101685343B (zh) * 2008-09-26 2011-12-28 联想(北京)有限公司 一种实现手势识别的方法、装置
US7996793B2 (en) 2009-01-30 2011-08-09 Microsoft Corporation Gesture recognizer system architecture
KR101666995B1 (ko) * 2009-03-23 2016-10-17 삼성전자주식회사 멀티 텔레포인터, 가상 객체 표시 장치, 및 가상 객체 제어 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2175143C1 (ru) * 2000-04-04 2001-10-20 Свириденко Андрей Владимирович Способ дистанционного управления
RU2298294C2 (ru) * 2001-06-05 2007-04-27 Риэктрикс Системз, Инк. Интерактивная видеодисплейная система

Also Published As

Publication number Publication date
JP2013545183A (ja) 2013-12-19
MX2013004805A (es) 2013-07-02
EP2635952A1 (en) 2013-09-11
CN103282858A (zh) 2013-09-04
BR112013010520A2 (pt) 2016-08-02
CN103282858B (zh) 2017-03-08
EP2635952A4 (en) 2014-09-17
EP2635952B1 (en) 2021-01-06
RU2013125228A (ru) 2014-12-10
KR20130118895A (ko) 2013-10-30
WO2012058782A1 (en) 2012-05-10
US9189071B2 (en) 2015-11-17
KR101760159B1 (ko) 2017-07-20
BR112013010520B1 (pt) 2021-01-12
US20130215017A1 (en) 2013-08-22
JP5997699B2 (ja) 2016-09-28

Similar Documents

Publication Publication Date Title
RU2581013C2 (ru) Способ и устройство для обнаружения вводов при помощи жестов
US8339359B2 (en) Method and system for operating electric apparatus
EP2880510B1 (en) Improved video tracking
SE1250911A1 (sv) Förbättrad identifiering av en gest
KR101631011B1 (ko) 제스처 인식 장치 및 제스처 인식 장치의 제어 방법
US9836130B2 (en) Operation input device, operation input method, and program
JP6344530B2 (ja) 入力装置、入力方法、及びプログラム
CN102591450A (zh) 信息处理装置及其操作方法
US20180188815A1 (en) Method and device for enabling virtual reality interaction with gesture control
JP2012238293A (ja) 入力装置
KR101654311B1 (ko) 사용자 모션 인식 방법 및 장치
JP2014029656A (ja) 画像処理装置および画像処理方法
US20160140762A1 (en) Image processing device and image processing method
EP2987069B1 (en) Detection of pan and scaling during multi-finger touch interactions
Siam et al. Human computer interaction using marker based hand gesture recognition
KR101360322B1 (ko) 다양한 손모양 검출 및 추적을 기반으로 한 원격 전자칠판 제어 장치 및 그 방법
KR101294212B1 (ko) 로봇에서 입력 장치 기능을 위한 움직임 검출 시스템 및 그방법
JP6008904B2 (ja) 表示制御装置、表示制御方法、及び、プログラム
Maidi et al. Interactive media control using natural interaction-based Kinect
KR101348763B1 (ko) 손동작에 의한 인터페이스 조작 장치 및 방법, 그리고 컴퓨터로 읽을 수 있는 기록매체
EP3059664A1 (en) A method for controlling a device by gestures and a system for controlling a device by gestures
CN109164924B (zh) 一种字符输入法及识别字符输入法的***
CN118116078A (zh) 识别挥动动作的方法及相关装置
Huerta et al. Hand Gesture Recognition With a Novel Particle Filter
JP2017211739A (ja) ユーザインターフェース装置およびユーザインターフェースプログラム

Legal Events

Date Code Title Description
PD4A Correction of name of patent owner
PC41 Official registration of the transfer of exclusive right

Effective date: 20200213