МАНИПУЛИРОВАНИЕ ВИРТУАЛЬНЫМ ОБЪЕКТОМ Российский патент 2015 года по МПК G06F3/03 

Описание патента на изобретение RU2555228C2

Уровень техники

Множество вычислительных приложений, таких как компьютерные игры, представляют пользователю виртуальную среду или миры. Эта среда часто содержит виртуальные объекты, с которыми может взаимодействовать пользователь. Типично такое взаимодействие происходит через устройства ввода данных, такие как контроллеры, пульты ДУ, клавиатуры, мыши, и т.п. К сожалению, такие способы ввода плохо соотносятся с выполняемым действием, таким как нажатие кнопки на контроллере, чтобы открыть дверь.

Сущность изобретения

Таким образом, улучшение может заключаться в том, чтобы позволить пользователю взаимодействовать с виртуальными объектами в виртуальной среде, используя сопоставление между физическим объектом, которым управляет пользователь, таким как его рука, который соответствует указателю в виртуальной среде. Здесь раскрыты способы, системы и считываемый компьютером носитель, которые выполняют такое манипулирование виртуальным объектом.

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

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

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

Краткое описание чертежей

Системы, способы и считываемый компьютером носитель информации для манипуляций с виртуальным объектом в соответствии с описанием дополнительно описаны со ссылкой на приложенные чертежи, на которых:

На фиг. 1A и 1B представлен примерный вариант осуществления системы распознавания, анализа и отслеживания цели с пользователем, играющим в игру.

На фиг. 2 показан примерный вариант осуществления устройства захвата, которое может использоваться в системе распознавания, анализа и отслеживания цели.

На фиг. 3A показан примерный вариант осуществления вычислительной среды, которая может использоваться для интерпретации одного или более жестов в системе распознавания, анализа и отслеживания цели.

На фиг. 3B показан другой примерный вариант осуществления вычислительной среды, которая может использоваться для интерпретации одного или более жестов в системе распознавания, анализа и отслеживания цели.

На фиг. 4A показано скелетное сопоставление пользователя, сгенерированное из системы распознавания, анализа и отслеживания цели по фиг. 2.

На фиг. 5 показана система, которая захватывает манипуляцию с органом управления пользователя, и сопоставляет ее с манипуляцией с указателями виртуального объекта.

На фиг. 6 показана примерная последовательность операций для манипулирования с виртуальным объектом.

Подробное описание изобретения

Как будет описано ниже, пользователь может управлять приложением, выполняющимся в вычислительной среде, такой как игровая консоль, компьютер и т.п., выполняя один или более жестов. В соответствии с одним вариантом осуществления, жесты могут быть приняты, например, устройством захвата. Например, устройство захвата может захватывать изображение глубины сцены. В одном варианте осуществления устройство захвата может определять, соответствует ли одна или более целей или объектов на сцене цели - человеку, такому как пользователь. Чтобы определить, соответствует или нет цель или объект на сцене цели - человеку, для каждой из целей может быть выполнена сплошная заливка сравнение со структурой модели тела человека. Каждая цель или объект, который соответствует модели тела человека, может быть затем отсканирован для генерирования скелетной модели, ассоциированной с ним. Скелетная модель может быть затем представлена в вычислительной среде так, что вычислительная среда может отслеживать скелетную модель, визуализировать аватар, ассоциированный со скелетной моделью, и может определять, какие элементы управления требуется выполнять в приложении, выполняющемся в вычислительной среде, на основе, например, жестов пользователя, которые были распознаны из скелетной модели. Механизм распознавания жеста, архитектура которого более полно описана ниже, используется, чтобы определять, когда конкретный жест был выполнен пользователем.

На фиг. 1A и 1B иллюстрируется примерный вариант осуществления конфигурации системы 10 распознавания, анализа и отслеживания цели с пользователем 18, играющим в игру в бокс. В примерном варианте осуществления, система 10 распознавания, анализа и отслеживания цели может использоваться для распознавания, анализа и/или отслеживания цели - человека, такой как пользователь 18.

Как показано на фиг. 1A, система 10 распознавания, анализа и отслеживания цели может включать в себя вычислительную среду 12. Вычислительная среда 12 может представлять собой компьютер, игровую систему или консоль, или тому подобное. В соответствии с примерным вариантом осуществления, вычислительная среда 12 может включать в себя аппаратные компоненты и/или программные компоненты, такие, что вычислительная среда 12 может использоваться для выполнения таких приложений, как игровые приложения, не игровые приложения или тому подобное.

Как показано на фиг. 1A, система 10 распознавания, анализа и отслеживания цели дополнительно включает в себя устройство 20 захвата. Устройство 20 захвата может представлять собой, например, камеру, которая может использоваться для визуального отслеживания одного или более пользователей, таких как пользователь 18, таким образом, что жесты, выполняемые одним или более пользователями, могут быть захвачены, проанализированы и могут отслеживаться для выполнения одного или более управлений или действий в пределах приложения, как будет более подробно описано ниже.

В соответствии с одним вариантом осуществления, система 10 распознавания, анализа и отслеживания цели может быть соединена с аудиовизуальным устройством 16, таким как телевизор, монитор, телевизор высокой четкости (HDTV, ТВВЧ) или тому подобное, которые могут обеспечивать визуальное и/или аудиопредставление игры или приложения, для пользователя, такого, как пользователь 18. Например, вычислительная среда 12 может включать в себя видеоадаптер, такой как видеокарта и/или аудиоадаптер, такой как звуковая карта, которые могут обеспечивать аудиовизуальные сигналы, ассоциированные с игровым приложением, неигровым приложением, или тому подобное. Аудиовизуальное устройство 16 может принимать аудиовизуальные сигналы из вычислительной среды 12, и может затем выводить визуальное и/или аудиопредставление игры или приложения, ассоциированные с аудиовизуальными сигналами для пользователя 18. В соответствии с одним вариантом осуществления, аудиовизуальное устройство 16 может быть соединено с вычислительной средой 12, например, через кабель S-Video, коаксиальный кабель, кабель HDMI, кабель DVI, кабель VGA или тому подобное.

Как показано на фиг. 1A и 1B, система 10 распознавания, анализа и отслеживания цели может использоваться для распознавания, анализа и/или отслеживания цели - человека, такой как пользователь 18. Например, пользователя 18 можно отслеживать, используя устройство 20 захвата, таким образом, что движения пользователя 18 могут быть интерпретированы, как элементы управления, которые можно использовать для того, чтобы влиять на приложение, выполняемое в вычислительной среде 12. Таким образом, в соответствии с одним вариантом осуществления, пользователь 18 может двигать его или ее телом для управления приложением.

Как показано на фиг. 1A и 1B, в примерном варианте осуществления приложение, выполняемое в вычислительной среде 12, может представлять собой игру в бокс, в которую может играть пользователь 18. Например, вычислительная среда 12 может использовать аудиовизуальное устройство 16 для обеспечения визуального представления партнера 22 для игры в бокс пользователю 18. Вычислительная среда 12 также может использовать аудиовизуальное устройство 16 для обеспечения визуального представления аватара 24 игрока, которым пользователь 18 может управлять его или ее движениями. Например, как показано на фиг. 1В, пользователь 18 может нанести удар в физическом пространстве, заставляя аватар 24 игрока нанести удар в игровом пространстве. Таким образом, в соответствии с примерным вариантом осуществления, вычислительная среда 12 и устройство 20 захвата системы 10 распознавания, анализа и отслеживания цели могут использоваться для распознавания и анализа удара пользователя 18 в физическом пространстве таким образом, что удар может быть интерпретирован как игровой элемент управления аватаром 24 игрока в пространстве игры.

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

В примерных вариантах осуществления цель - человек, такая как пользователь 18, может иметь объект. В таких вариантах осуществления пользователь электронной игры может удерживать объект таким образом, чтобы движения игрока и объекта можно было использовать для регулирования и/или управления параметрами игры. Например, движение игрока, удерживающего ракетку, могут отслеживаться и использоваться для управления ракеткой, представленной на экране в электронной спортивной игре. В другом примерном варианте осуществления движение игрока, удерживающего объект можно отслеживать и использовать для управления оружием, представленным на экране в электронной боевой игре.

В соответствии с другими примерными вариантами осуществления, система 10 распознавания, анализа и отслеживания цели может дополнительно использоваться для интерпретации движений цели в качестве элементов управления операционной системы и/или приложения, которые находятся за пределами области игр. Например, фактически любым управляемым аспектом операционной системы и/или приложения можно управлять с помощью движений цели, такой как пользователь 18.

На фиг. 2 иллюстрируется примерный вариант осуществления устройства 20 захвата, которое может использоваться в системе 10 распознавания, анализа и отслеживания цели. В соответствии с примерным вариантом осуществления, устройство 20 захвата может быть выполнено с возможностью захвата видеоизображения с информацией глубины, включающей в себя изображение глубины, которое может включать в себя значения глубины, используя любую подходящую технологию, включая в себя, например, время пролета, структурированный свет, стереоизображение или тому подобное. В соответствии с одним вариантом осуществления, устройство 20 захвата может организовать расчетную информацию глубины на "уровнях Z" или в уровнях, которые могут быть перпендикулярны оси Z, продолжающейся от камеры глубины вдоль ее линии обзора.

Как показано на фиг. 2, устройство 20 захвата может включать в себя компонент 22 камеры изображения. В соответствии с примерным вариантом осуществления, компонент 22 камеры изображения может представлять собой камеру глубины, которая может захватывать изображение глубины сцены. Изображение глубины может включать в себя двумерную (2D) область пикселей захватываемой сцены, где каждый пиксель в 2D пиксельной области может представлять длину, например, в сантиметрах, миллиметрах или тому подобное объекта в захватываемой сцене из камеры.

Как показано на фиг. 2, в соответствии с примерным вариантом осуществления, компонент 22 камеры изображения может включать в себя компонент 24 инфракрасного света, трехмерную (3D) камеру 26 и камеру 28 RGB, которые могут использоваться для захвата изображения глубины сцены. Например, при анализе времени пролета, компонент 24 инфракрасного света устройства 20 захвата может излучать инфракрасный свет на сцену и может затем использовать датчики (не показаны) для детектирования обратно рассеянного света от поверхности одной или более целей и объектов на сцене, используя, например, 3D камеру 26 и/или RGB камеру 28. В некоторых вариантах осуществления пульсирующий инфракрасный свет можно использовать таким образом, что время между исходящим импульсом света и соответствующим входящим импульсом света может быть измерено и использовано для определения физического расстояния от устройства 20 захвата до определенного местоположения на целях или объектах на сцене. Кроме того, в других примерных вариантах осуществления фазу исходящей волны света можно сравнивать с фазой входящей волны света для определения сдвига фазы. Сдвиг фазы можно затем использовать для определения физического расстояния от устройства захвата до определенного местоположения на целях или объектах.

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

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

Такая деформация структуры может быть захвачена, например, 3D камерой 26 и/или RGB камерой 28 и может быть затем проанализирована для определения физического расстояния от устройства захвата до определенного местоположения на целях или объектах.

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

Устройство 20 захвата может дополнительно включать в себя микрофон 30. Микрофон 30 может включать в себя преобразователь или датчик, который может принимать и преобразовывать звук в электрический сигнал. В соответствии с одним вариантом осуществления, массив микрофонов 30 может использоваться для уменьшения обратной связи или искажений аудио, по сравнению с одиночным микрофоном, который принимает звук. Кроме того, микрофон 30 может использоваться для приема аудиосигналов, которые также могут быть предоставлены пользователем для управления приложениями, такими как игровые приложения, неигровые приложения или тому подобное, которое может выполняться вычислительной средой 12.

В примерном варианте осуществления устройство 20 захвата может дополнительно включать в себя процессор 32, который может быть функционально связан с компонентом 22 камеры изображения. Процессор 32 может включать в себя стандартизированный процессор, специализированный процессор, микропроцессор или тому подобное, который может выполнять инструкции, которые могут включать в себя инструкции для приема изображения глубины, определения, может ли быть подходящая цель включена в изображение глубины, преобразования подходящей цели в скелетное представление или модель цели, или любую другую подходящую инструкцию.

Устройство 20 захвата может дополнительно включать в себя компонент 34 запоминающего устройства, который может сохранять инструкции, которые могут быть выполнены с помощью процессора 32, изображения или кадры изображений, захваченные 3D камерой или камерой RGB, или любую другую подходящую информацию, изображения или тому подобное. В соответствии с примерным вариантом осуществления, компонент 34 запоминающего устройства может включать в себя оперативное запоминающее устройство (RAM), постоянное запоминающее устройство (ROM), кэш, запоминающее устройство типа флэш, жесткий диск или любой другой подходящий компонент накопителя. Как показано на фиг. 2, в одном варианте осуществления, компонент 34 запоминающего устройства может представлять собой отдельный компонент при обмене данными с компонентом 22 захвата изображения и процессором 32. В соответствии с другим вариантом осуществления, компонент 34 запоминающего устройства может быть интегрирован в процессор 32 и/или в компонент 22 захвата изображения.

Как показано на фиг. 2, устройство 20 захвата может находиться в состоянии обмена данными с вычислительной средой 12 через линию 36 передачи данных. Линия 36 передачи данных может представлять собой проводное соединение, включающее в себя, например, соединение USB, соединение FireWire, кабельное соединение Ethernet или тому подобное, и/или беспроводное соединение, такое как беспроводное соединение 802.11b, g, a или n. В соответствии с одним вариантом осуществления, вычислительная среда 12 может предоставлять тактовую частоту в устройство 20 захвата изображения, которая может использоваться для определения, когда следует выполнить захват, например, сцены через линию 35 передачи данных.

Кроме того, устройство 20 захвата может предоставлять информацию глубины и изображения, захваченные, например, с помощью 3D камеры 26 и/или RGB камеры 28, и скелетную модель, которая может быть сгенерирована с помощью устройства 20 захвата, для вычислительной среды 12 через линию 36 передачи данных. Вычислительная среда 12 может затем использовать скелетную модель, информацию глубины и захваченные изображения, для того, чтобы, например, распознавать жесты пользователя и в ответ управлять приложением, таким как игра или текстовый процессор. Например, как показано, на фиг. 2, вычислительная среда 12 может включать в себя механизм 190 распознавания жестов. Механизм 190 распознавания жестов может включать в себя подборку фильтров жестов, каждый из которых содержит информацию, относящуюся к жесту, который может быть выполнен скелетной моделью (когда пользователь двигается). Данные, захваченные камерами 26, 28 и устройством 20 в форме скелетной модели, и движения связанные с нею, можно сравнивать с фильтрами жестов в механизме 190 распознавания жестов для идентификации, когда пользователь (представленный в виде скелетной модели) выполнил один или более жестов. Эти жесты могут быть ассоциированы с различными элементами управления приложением. Таким образом, вычислительная среда 12 может использовать механизм 190 распознавания жестов для интерпретации движений скелетной модели и для управления приложением на основе движений.

На фиг. 3А иллюстрируется примерный вариант осуществления вычислительной среды, которая может использоваться для интерпретации одного или более жестов в системе распознавания, анализа и отслеживания цели. Вычислительная среда, такая как вычислительная среда 12, описанная выше со ссылкой на фиг. 1A-2, может представлять собой мультимедийную консоль 100, такую как игровая консоль. Как показано на фиг. 3А, мультимедийная консоль 100 имеет центральное процессорное устройство (CPU, ЦПУ) 101, имеющее кэш 102 уровня 1, кэш 104 уровня 2 и ROM (ПЗУ, постоянное запоминающее устройство) 106 типа флэш. Кэш 102 уровня 1 и кэш 104 уровня 2 временно сохраняют данные и, следовательно, уменьшают количество циклов доступа к запоминающему устройству, улучшая, таким образом, скорость обработки и производительность. CPU 101 может быть предоставлено, как имеющее более, чем одно ядро, и, таким образом, дополнительные кэш 102 и 104 уровня 1 и уровня 2. ROM 106 типа флэш может содержать исполняемые коды, которые загружают во время исходной фазы процесса загрузки, при включении питания мультимедийной консоли 100.

Модуль 108 графической обработки (GPU, МГО) и видеокодер/видеокодек (кодер/декодер) 114 формируют конвейер видеообработки для обработки графики с высокой скоростью с высоким разрешением. Данные передают из модуля 108 графической обработки в видеокодер/видеокодек 114 через шину. Конвейер видеообработки выводит данные в A/V (А/В, аудио/видео) порт 140 для передачи в телевизор или в другое устройство отображения. Контроллер 110 запоминающего устройства соединен с GPU 108, который способствует доступу процессора к различным типам запоминающего устройства 112, таким как, но без ограничений, RAM (ОЗУ, оперативное запоминающее устройство).

Мультимедийная консоль 100 включает в себя контроллер 120 I/O (ввода/вывода), контроллер 122 управления системой, модуль 123 обработки аудио, контроллер 124 сетевого интерфейса, первый хост-контроллер 126 USB, второй контроллер 128 USB и подузел 130 I/O передней панели, которые предпочтительно воплощены в модуле 118. Контроллеры 126 и 128 USB используются как хост-устройства для периферийных контроллеров 142(1)-142(2), беспроводного адаптера 148 и внешнего запоминающего устройства 146 (например, запоминающее устройство типа флэш, внешний накопитель на CD/DVD ROM, съемный носитель и т.д.). Сетевой интерфейс 124 и/или беспроводный адаптер 148 обеспечивают доступ к сети (например, Интернет, домашней сети и т.д.), и могут представлять собой любые из широкого разнообразия различных проводных или беспроводных компонентов адаптера, включая в себя карту Ethernet, модем, модуль Bluetooth, кабельный модем и т.п.

Системное запоминающее устройство 143 предусмотрено для сохранения данных приложения, которые загружаются во время процесса загрузки. Накопитель 144 на носителе предусмотрен и может содержать накопитель на DVD/CD, накопитель на жестких дисках или накопитель на другом съемном носителе и т.д. Накопитель 144 на носителе может быть внутренним или внешним для мультимедийной консоли 100. Доступ к данным приложения может осуществляться через накопитель 144 на носителе для выполнения, воспроизведения и т.д. с помощью мультимедийной консоли 100. Накопитель 144 на носителе соединен с контроллером 120 I/O через шину, такую как последовательная шина ATA или другое высокоскоростное соединение (например, IEEE 1394).

Контроллер 122 управления системой обеспечивает различные служебные функции, относящиеся к обеспечению доступности мультимедийной консоли 100. Модуль 123 обработки аудио и аудиокодек 132 формируют соответствующий конвейер обработки аудио с высококачественной и стереофонической обработкой. Аудиоданные передают между модулем 123 обработки аудио и аудиокодеком 132 через линию передачи данных. Конвейер обработки аудио выводит данные в A/V порт 140 для воспроизведения с помощью внешнего аудиопроигрывателя или устройства, обладающего возможностями воспроизведения аудио.

Подузел 130 I/O передней панели поддерживает функцию кнопки 150 включения питания и кнопки 152 выброса, а также некоторое количество LED (светодиодов) или других индикаторов, расположенных на внешней поверхности мультимедийной консоли 100. Модуль 136 источника питания системы обеспечивает энергию питания для компонентов мультимедийной консоли 100. Вентилятор 138 охлаждает цепи мультимедийной консоли 100.

CPU 101, GPU 108, контроллер 110 запоминающего устройства и различные другие компоненты в мультимедийной консоли 100 взаимно соединены через одну или более шин, включая в себя последовательные и параллельные шины, шину запоминающего устройства, периферийную шину и шину процессора или локальную шину, используя любую из различных архитектур шин. В качестве примера такие архитектуры могут включать в себя шину межсоединения периферийных компонентов (PCI, МПК), шину PCI-Express и т.д.

Когда включают питание мультимедийной консоли 100, данные приложения могут быть загружены из системного запоминающего устройства 143 в запоминающее устройство 112 и/или кэш 102, 104 и выполнены в CPU 101. Приложение может представлять графический интерфейс пользователя, который обеспечивает соответствующее восприятие для пользователя при переходе к разным типам носителей, доступных в мультимедийной консоли 100. Во время работы приложения и/или другие носители, содержащиеся в накопителе 144 на носителе, могут быть запущены или воспроизведены из накопителя 144 на носителе для обеспечения дополнительных функций для мультимедийной консоли 100.

Мультимедийная консоль 100 может работать, как автономная система, путем простого соединения системы с телевизором или другим устройством отображения. В таком автономном режиме мультимедийная консоль 100 позволяет одному или более пользователям взаимодействовать с системой, просматривать кинофильмы или прослушивать музыку. Однако, в случае интеграции с широкополосной возможностью подключения, доступной через сетевой интерфейс 124 или беспроводный адаптер 148, мультимедийная консоль 100 может дополнительно работать, как участник большего сетевого сообщества.

Когда включают питание мультимедийной консоли 100, установленное количество аппаратных ресурсов резервируют для использования системы с помощью операционной системы мультимедийной консоли. Эти ресурсы могут включать в себя резервирование памяти запоминающего устройства (например, 16 Мб), циклов CPU и GPU (например, 5%), полосы пропускания сети (например, 8 Кб/с) и т.д. Поскольку эти ресурсы резервируют во время загрузки системы, зарезервированные ресурсы не существуют с точки зрения приложения.

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

Что касается резервирования GPU, сообщения незначительной важности, генерируемые системными приложениями (например, всплывающие сообщения), отображаются путем использования прерывания GPU для планирования кода, для представления всплывающего меню с наложением. Объем памяти, требуемый для наложения, зависит от размера области наложения, и область наложения, предпочтительно масштабируют в соответствии с разрешением экрана. В случае, когда весь интерфейс пользователя используется активным системным приложением, предпочтительно использовать разрешающую способность, независимую от разрешающей способности приложения. Блок масштабирования можно использовать для установки такого разрешения так, чтобы устранить необходимость менять частоту и обеспечивать повторную синхронизацию телевизора.

После загрузки мультимедийной консоли 100 и резервирования системных ресурсов, активные системные приложения выполняют для обеспечения функций системы. Эти функции системы инкапсулированы в набор системных приложений, которые выполняют в пределах зарезервированных ресурсов системы, описанных выше. Ядро операционной системы идентифицирует потоки, которые представляют собой потоки системного приложения в отличие от потоков игрового приложения. Системные приложения, предпочтительно, запланированы для работы с CPU 101 в заданные моменты времени и интервалы, для обеспечения последовательного обзора системных ресурсов для приложения. Планирование состоит в минимизации нарушения кэш для игрового приложения, работающего на консоли.

Когда активное системное приложение требует использования аудио, обработку аудио планируют асинхронно с игровым приложением, ввиду чувствительности ко времени. Администратор приложения мультимедийной консоли (описанный ниже) управляет уровнем звука игрового приложения (например, отключение звука, приглушенный звук), когда системные приложения активны.

Устройства ввода (например, контроллеры 142(1) и 142(2)), совместно используются игровыми приложениями и системными приложениями. Устройства ввода не являются зарезервированными ресурсами, но их требуется переключать между системными приложениями и игровым приложением таким образом, что каждый из них будет иметь фокус на устройстве. Администратор приложения, предпочтительно, управляет переключением входного потока, не имея данных об игровом приложении, и драйвер поддерживает информацию о состоянии в отношении переключателей, находящихся в фокусе. Камеры 26, 28 и устройство 20 захвата могут определять дополнительные устройства ввода для консоли 100.

На фиг. 3В иллюстрируется другой примерный вариант осуществления вычислительной среды 220, которая может представлять собой вычислительную среду 12, показанную на фиг. 1A-2, используемую для интерпретации одного или более жестов в системе распознавания, анализа и отслеживания цели. Среда 220 вычислительной системы представляет собой только один пример, соответствующий вычислительной среде, и не предназначена для наложения каких-либо ограничений на объем использования или функции предпочтительно раскрытого предмета изобретения. Вычислительная среда 220 также не должна быть интерпретирована, как имеющая какую-либо зависимость или требования, относящиеся к любому одному или комбинации компонентов, представленных в примерной операционной среде 220. В некоторых вариантах осуществления различные представленные вычислительные элементы могут включать в себя схемы, предназначенные для иллюстрации примеров конкретных аспектов настоящего раскрытия. Например, термин схема, используемый в раскрытии, может включать в себя специализированные аппаратные компоненты, сконфигурированные для выполнения функции (функций), используя встроенное программное обеспечение или переключатели. В других примерных вариантах осуществления термин схема может включать в себя модуль обработки общего назначения, запоминающее устройство и т.д., сконфигурированные посредством программных инструкций, в которых воплощена логика, работающая для выполнения функции (функций). В примерных вариантах осуществления, в случае, когда схема включает в себя комбинацию аппаратного и программного обеспечения, конструктор может написать исходный код, воплощающий логику, и этот исходный код может быть скомпилирован в считываемый машиной код, который может быть обработан модулем обработки общего назначения. Поскольку для специалиста в данной области техники будет понятно, что предшествующий уровень техники в своем развитии достиг точки, в которой существует небольшое различие между аппаратным обеспечением, программным обеспечением или комбинацией аппаратного обеспечения/программного обеспечения, поэтому выбор из аппаратного обеспечения или программного обеспечения для выполнения конкретных функций представляет собой конструктивный выбор, оставленный на усмотрение конструктора. Более конкретно, для специалиста в данной области техники будет понятно, что процесс, выполняемый программным обеспечением, может быть преобразован в эквивалентную аппаратную структуру, и аппаратная структура может быть сама преобразована в эквивалентный программный процесс. Таким образом, выбор из аппаратного воплощения, либо программного воплощения, представляет собой один из конструктивного выбора и остается на усмотрение конструктора.

На фиг. 3В вычислительная среда 220 содержит компьютер 241, который типично включает в себя различные считываемые компьютером носители информации. Считываемые компьютером носители информации могут представлять собой любые доступные носители информации, доступ к которым может осуществлять компьютер 241, и включают в себя, как энергозависимый, так и энергонезависимый носитель информации, съемный и несъемный носитель информации. Системное запоминающее устройство 222 включает в себя компьютерные носители информации в форме энергозависимого и/или энергонезависимого запоминающего устройства, такого как постоянное запоминающее устройство (ROM) 223 и оперативное запоминающее устройство (RAM) 260. Базовая система 224 ввода/вывода (BIOS, БСВВ), содержащая основные процедуры, которые помогают передавать информацию между элементами в компьютере 241, например, во время запуска, типично содержится в ROM 223. RAM 260 типично содержит данные и/или программные модули, доступ к которым может осуществляться немедленно и/или с которыми в данный момент выполняет операции модуль 259 обработки. В качестве примера, а не для ограничений, на фиг. 3В иллюстрируется операционная система 225, программа 226 приложения, другие программные модули 227 и программные данные 228.

Компьютер 241 также может включать в себя другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные носители информации. Только в качестве примера, на фиг. 3В иллюстрируется накопитель 238 на жестком диске, который считывает с или записывает на несъемный, энергонезависимый магнитный носитель информации, накопитель 239 на магнитном диске, который считывает с или записывает на съемный, энергонезависимый магнитный диск 254, и накопитель 240 на оптическом диске, который считывает с или записывает на съемный, энергонезависимый оптический диск 253, такой как CD-ROM или другой оптический носитель информации. Другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные носители информации, которые можно использовать в примерной операционной среде, включают в себя, но не ограничиваются этим, кассеты с магнитными лентами, карты запоминающих устройств типа флэш, цифровые универсальные диски, цифровую видеоленту, твердотельное RAM, твердотельное ROM и т.п. Накопитель 238 на жестком диске типично соединен с системной шиной 221 через интерфейс несъемного запоминающего устройства, такой как интерфейс 234, и накопитель 239 на магнитном диске и накопитель 240 на оптическом диске типично соединены с системной шиной 221 через интерфейс съемного запоминающего устройства, такой как интерфейс 235.

Накопители и их ассоциированные компьютерные носители информации, описанные выше и представленные на фиг. 3В, обеспечивают сохранение считываемых компьютером инструкций, структур данных, программных модулей и других данных для компьютера 241. На фиг. 3В, например, накопитель 238 на жестком диске показан, как содержащий операционную систему 258, программы 257 приложения, другие программные модули 256 и программные данные 255. Следует отметить, что эти компоненты могут быть либо теми же, что и или отличными от операционной системы 225, программ 226 приложения, других программных модулей 227, и программных данных 228. Операционная система 258, программы 257 приложения, другие программные модули 256 и программные данные 255 обозначены здесь разными номерами для иллюстрации того, что, как минимум, они представляют собой разные копии. Пользователь может ввести команды и информацию в компьютер 241 через устройства ввода данных, такие как клавиатура 251 и устройство 252 - указатель, обычно называемое мышью, шаровым указателем или сенсорной панелью. Другие устройства ввода данных (не показаны) могут включать в себя микрофон, джойстик, игровую панель, спутниковую антенну, сканер или тому подобное. Эти и другие устройства ввода данных часто соединены с модулем 259 обработки через интерфейс 236 ввода пользователя, который соединен с системной шиной, но могут быть соединены с помощью другого интерфейса и структур шин, таких как параллельный порт, игровой порт или универсальная последовательная шина (USB). Камеры 26, 28 и устройство 20 захвата могут определять дополнительные устройства ввода данных для консоли 100. Монитор 242 или устройство отображения другого типа также соединен с системной шиной 221 через интерфейс, такой как видеоинтерфейс 232. В дополнение к монитору, компьютеры также могут включать в себя другие периферийные устройства вывода, такие как громкоговорители 244 и принтер 243, которые могут быть соединены через интерфейс 233 периферийных устройств вывода.

Компьютер 241 может работать в сетевой среде, используя логические соединения с одним или более удаленными компьютерами, таким как удаленный компьютер 246. Удаленный компьютер 246 может представлять собой персональный компьютер, сервер, маршрутизатор, сетевой PC, одноуровневое устройство или другой общий сетевой узел, и типично включает в себя множество или все элементы, описанные выше в отношении компьютера 241, хотя только запоминающее устройство 247 было представлено на фиг. 3В. Логические соединения, показанные на фиг. 3В, включают в себя локальную вычислительную сеть (LAN, ЛВС) 245 и глобальную вычислительную сеть (WAN, ГВС) 249, но также могут включать в себя другие сети. Такая сетевая среда, как правило, используется в офисах, в компьютерных сетях, развернутых на предприятиях, в интрасети и в сети Интернет.

При использовании в сетевой среде LAN, компьютер 241 соединен с LAN 245 через сетевой интерфейс или адаптер 237. При использовании в сетевой среде WAN, компьютер 241 типично включает в себя модем 250 или другое средство для установления возможности обмена данными через WAN 249, такую как Интернет. Модем 250, который может представлять собой внутренний или внешний модем, может быть соединен с системной шиной 221 через интерфейс 236 ввода пользователя или другой соответствующий механизм. В сетевой среде программные модули, описанные в отношении компьютера 241, или их части, могут быть сохранены в удаленном запоминающем устройстве. В качестве примера, а не для ограничения, на фиг. 3В иллюстрируются удаленные программы 248 приложения, как находящиеся в запоминающем устройстве 247. Следует понимать, что показанные сетевые соединения представляют собой примеры, и можно использовать другие средства установления линии передачи данных между компьютерами.

На фиг. 4A представлен пример скелетного сопоставления пользователя, которое может быть сгенерировано из устройства 20 захвата. В данном варианте осуществления различные суставы и кости идентифицированы следующим образом: каждая рука 302, каждое предплечье 304, каждый локоть 306, каждый бицепс 308, каждое плечо 310, каждая верхняя часть бедра 312, каждое бедро 314, каждое колено 316, каждая голень 318, каждая ступня 320, голова 322, туловище 324, верхняя часть 326 и нижняя часть 328 позвоночника и талия 330. В случае, когда отслеживается больше точек, то могут быть идентифицированы дополнительные свойства такие, как кости и суставы пальцев на руках или пальцев на ногах, или отдельные черты лица, такие как нос и глаза.

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

Жесты пользователя можно использовать для ввода общего вычислительного контекста. Например, различные движения рук 302 или других частей тела могут соответствовать общим задачам, относящимся ко всей системе, таким как передвижение вверх или вниз по иерархическому списку, открытие файла, закрытие файла и сохранение файла. Жесты также могут использоваться в специфичном контексте видеоигры, в зависимости от игры. Например, для игры управления транспортным средством, различные движения рук 302 и ступней 320 могут соответствовать управлению транспортным средством по направлению, переключению передач, ускорению и торможению.

Пользователь может генерировать жест, который соответствует ходьбе или бегу, в результате выполнения им ходьбы или бега на месте. Пользователь может поочередно поднимать и опускать каждую ногу 312-320, для подражания ходьбе на месте. Система может анализировать этот жест путем анализа каждой верхней части бедра 312 и каждого бедра 314. Шаг может быть распознан, когда один угол между верхней частью бедра и бедром (измеренный относительно вертикальной линии, в котором нога в состоянии покоя имеет угол между верхней частью бедра и бедром, равный 0°, и горизонтально вытянутая вперед нога имеет угол между верхней частью бедра и бедром, равный 90°), превышает определенный порог относительно другого бедра. Ходьба или бег могут быть распознаны после некоторого количества последовательных шагов, выполняемых ногами поочередно. Время между двумя самыми последними шагами может использоваться, как период. После некоторого количества периодов, когда пороговый угол не соблюдается, система может определить, что жест ходьбы или бега был закончен.

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

Жест может быть ассоциирован с набором принятых по умолчанию параметров, которые приложение может заменить своими собственными параметрами. В этом сценарии приложение не вынуждают предоставить параметры, но вместо этого оно может использовать набор принятых по умолчанию параметров, которые обеспечивают возможность распознавания жеста в отсутствии определенных приложением параметров.

Существует множество выходных данных, которые могут быть ассоциированы с жестом. Может использоваться линия раздела "да или нет" в отношении того, возник или нет жест. Также может учитываться уровень доверительности, который соответствует вероятности того, что отслеживаемое движение пользователя соответствует жесту. Он может представлять собой линейную шкалу в диапазоне дробных чисел от 0 до 1, включительно. При этом приложение, принимающее такую информацию жеста, не может принять ложноположительные решения в качестве ввода, оно может использовать только те распознанные жесты, которые имеют высокий уровень доверительности, такой как по меньшей мере 0,95. В случае, когда приложение должно распознавать каждый случай возникновения жеста, даже за счет возникновения ложноположительных решений, оно может использовать жесты, которые имеют, по меньшей мере, гораздо более низкий уровень доверительности, например, такой, как всего лишь более, чем 0,2. Жест может иметь выходные данные в течение времени между двумя самыми последними шагами, и в случае, когда был зарегистрирован только первый шаг, он может быть установлен, как зарезервированное значение, такое как -1 (поскольку время между любыми двумя шагами должно быть положительным). Жест также может иметь выходные данные для наибольшего угла бедра, достигнутого во время самого последнего шага.

Другой примерный жест представляет собой "прыжок с подъемом пятки". При этом пользователь может сформировать жест, отрывая свои пятки от земли, но оставаясь стоять на носках. В качестве альтернативы, пользователь может прыгать в воздухе так, что его ступни 320 полностью отрываются от земли. Система может анализировать скелет такого жеста, анализируя отношение углов плеч 310, верхней части бедра 312 и колен 316, проверяя, находятся ли они в состоянии выравнивания, равном прямой стойке. Затем эти точки, а также верхние 326 и нижние 328 точки позвоночника могут отслеживаться для определения направленного вверх ускорения. Достаточная комбинация ускорения может инициировать жест прыжка.

Для такого жеста "прыжок с подъемом пятки", приложение может устанавливать значения для параметров, определенных приложением, ассоциированных с этим жестом. Эти параметры могут включать в себя описанный выше порог ускорения, который определяет, насколько быстро некоторая комбинация плеч 310, верхних частей бедра 312 и колен 316 пользователя должна переместиться вверх для инициирования жеста, а также максимальный угол выравнивания между плечами 310, верхними частями бедра 312 и коленями 316, при котором прыжок все еще может быть инициирован.

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

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

Другой параметр для жеста может представлять собой расстояние перемещения. Когда жесты пользователя управляют действиями аватара в виртуальной среде, аватар может находиться на расстоянии вытянутой руки от шара. Если пользователь желает взаимодействовать с шаром и схватить его, для этого может потребоваться, чтобы пользователь вытянул свою руку 302-310 на всю длину, выполняя жест захвата. В этой ситуации аналогичный жест захвата, когда пользователь только частично вытягивает свою руку 302-310, может не достичь результата взаимодействия с шаром.

Жест или часть его может иметь в качестве параметра объем пространства, в котором он должен произойти. Этот объем пространства типично может быть выражен в отношении тела, где жест содержит движение тела. Например, жест броска футбольного мяча для пользователя правши может быть распознан только в объеме пространства, не меньшем, чем правое плечо 310a, и с той же стороны относительно головы 322, с которой находится выполняющая бросок рука 302a-310a. При этом может и не быть необходимым определить все границы объема, так, например, для жеста броска, при котором внешняя граница, находящаяся за пределами тела остается не идентифицирована, и объем расширяется неопределенно или до кромки отслеживаемой сцены.

На фиг. 5 показана система, которая захватывает манипуляцию с органом управления пользователя в физическом пространстве и сопоставляет ее с манипуляцией с указателем виртуального объекта в виртуальной среде.

Виртуальное пространство может содержать представление трехмерного пространства, на которое пользователь может влиять (например, путем перемещения объекта) через ввод данных пользователем. Это виртуальное пространство может быть полностью виртуальным пространством, у которого нет никакой корреляции с физическим пространством пользователя (таким как представление замка или классной комнаты, отсутствующих в физической действительности). Такое виртуальное пространство может также быть основано на физическом пространстве, с которым у пользователя нет никакой связи, таком как физическая классная комната в г. Де-Мойн, штат Айова, которую пользователь в г. Редмонд, штат Вашингтон никогда не видел и не был внутри нее.

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

Виртуальное пространство может содержать представление некоторой детали физического пространства второго пользователя. Когда два пользователя взаимодействуют друг с другом через виртуальную среду, и их захватывают соответствующими камерами глубины, виртуальное пространство может быть представлением виртуального пространства этого второго пользователя.

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

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

В варианте осуществления виртуальный объект содержит объект в виртуальном пространстве, с которым можно взаимодействовать. Когда виртуальное пространство является просто виртуальным и представляет классную комнату, вещи, такие как мел, тряпки, доски, стулья, столы, глобусы, окна, ручки двери и двери могут представлять собой виртуальные объекты. Пользователь может управлять или взаимодействовать с этими объектами различными способами, например, писать мелом, поднимать, перемещать, бросать или разламывать на половины кусок мела.

В варианте осуществления виртуальный объект соответствует физическому объекту. Он может представлять собой физический объект, находящийся во владении пользователя. Например, если у пользователя есть стул, то физический стул может быть захвачен камерой глубины, и представление стула может быть вставлено в виртуальную среду. Когда пользователь перемещает физический стул, камера глубины может захватить это, и отобразить соответствующее движение виртуального стула.

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

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

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

Орган управления содержит что-то, чем пользователь манипулирует в физическом пространстве, чтобы обеспечить манипулирование указателем в виртуальном пространстве соответствующим образом. Орган управления может содержать физическую вещь. Это может быть часть тела, такая как рука пользователя. Это аналогично может представлять собой физический объект, такой как палочка или указка, диск или шар. Когда орган управления представляет собой часть тела, камера глубины может использоваться, чтобы представлять данные глубины, которые затем анализируют, чтобы определить скелетные данные пользователя. По этим скелетным данным, и как эти скелетные данные изменяются в течение времени, могут быть определены движения пользователем его органом управления.

Орган управления может содержать воображаемую вещь. Пользователь может двигаться, чтобы бросить воображаемый шар. Это может быть обнаружено, используя скелетные данные пользователя, как описано выше. Например, пользователь может двигаться, чтобы бросить воображаемый шар в устройство отображения, которое отображает виртуальный объект. Место, где шар пересек бы устройство отображения, может быть вычислено и затем способ, которым это может повлиять на виртуальный объект - например, в результате столкновения может быть определен и отображен. В варианте осуществления, когда воображаемый шар пересекает устройство отображения, его можно показать как виртуальный объект в виртуальном пространстве и продолжить его полет в этом виртуальном пространстве.

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

Устройство 508 захвата захватывает сцену 504 в физическом пространстве, в котором присутствует пользователь 502. Устройство захвата соединено с вычислительным устройством 510, которое выводит выходные сигналы на устройство 512 отображения. В варианте осуществления устройство 508 захвата содержит устройство захвата 20 по фиг. 2, и вычислительное устройство 510 содержит вычислительную среду 12 по фиг. 2, мультимедийную консоль 100 по фиг. 3A или вычислительную среду 220 по фиг. 3B. Устройство захвата захватывает эту сцену и формирует данные глубины. По этим данным глубины определяют орган 506 управления пользователя и выполняют мониторинг, как пользователь 502 манипулирует им. Вычислительное устройство 510 ассоциирует орган 506 управления пользователя с указателем 514 (указатели 514a и 514b представляют указатель в двух моментах времени, когда он соответствует органу 506a и 506b управления в двух моментах времени) в виртуальной среде, отображенной на устройстве 512 отображения.

Орган 506 управления может быть предварительно определенным - система может всегда находить правую руку пользователя 502, используемую как орган 506 управления, и таким образом всегда ассоциирует правую руку пользователя 502 с указателем. Орган управления может также быть определен пользователем. Например, вычислительное устройство 510 может отображать для пользователя 502 данные изображения, захваченные устройством 508 захвата с индикацией поместить орган управления в определенную область экрана. Если пользователь 502 поместит свою левую руку в этой области, она может быть настроена как орган управления. То же самое относится к случаю, когда пользователь 502 установит свою правую руку, ногу или некоторый объект, такие как бейсбольная бита в этой области.

Орган 506 управления затем используется, чтобы манипулировать экранным указателем 514. Указатель 514 может быть представлением органа 506 управления. Указатель 514 может быть правой рукой, когда орган 506 управления представляет собой правую руку пользователя. Аналогично, указатель 514 может быть левой рукой пользователя, когда орган 506 управления представляет собой левую руку пользователя. В варианте осуществления указатель 514 и орган 506 управления непосредственно не связаны таким образом. Например, орган 506 управления может представлять собой руку пользователя, но указатель 514 может быть представлением теннисной ракетки или когтя стивидора. Многочисленные органы 506 управления и многочисленные указатели 514 могут использоваться в пределах одной виртуальной среды. Например, каждая рука пользователя 502 может содержать орган 506 управления, или два пользователя (присутствующие либо в одной физической среде, или в разных физических средах, в каждой из которых предусмотрено вычислительное устройство, обмениваются вместе через сеть передачи данных), каждый может иметь орган 506 управления такой, как их правая рука, и каждый из этих органов 506 управления можно сопоставлять с указателем 514.

Когда пользователь манипулирует органом 506 управления, эту манипуляцию захватывает устройство 508 захвата и обрабатывает вычислительное устройство 510, чтобы передать соответствующую манипуляцию на указатель 514. Например, когда пользователь вытягивает свой орган 506a управления - руку и сжимает свои пальцы 506b, виртуальный указатель 514a - рука может вытягиваться в виртуальную сцену, и пальцы этой виртуальной руки могут сжиматься 514b.

Вычислительное устройство 510 может продолжать отслеживать данные положения для указателя 514 и, по меньшей мере, некоторого виртуального объекта на сцене (такого, как представленная виртуальная палочка 516) так, что оно может определять, когда указатель 514 касается виртуального объекта 516 в результате манипулирования пользователем с органом 506 управления. Когда такое манипулирование указателем 514 через орган 506 управления приводит к манипулированию виртуальным объектом 516, вычислительное устройство 510 может определять манипулирование, которое произошло, и отображать результат этого манипулирования в устройстве отображения. Например, когда пользователь вытягивает свой указатель 514 - руку и сжимает свои пальцы в кулак, это может заставить указатель 514 - руку вытянуться в сцену и сжать пальцы указателя 514 вокруг виртуальной палочки 516. Когда пользователь продолжает вытягивать свой орган 506 управления прямо, и это заставляет его указатель 514 продолжать вытягиваться в сцену, может быть определено, что виртуальной палочкой 516 манипулируют с ее перемещением по сцене, и этот результат может быть отображен в устройстве 512 отображения.

На фиг. 6 представлен пример последовательности операций для манипулирования виртуальным объектом в виртуальном пространстве.

Операция 602 представляет определение по меньшей мере, одного органа управления который пользователь использует, чтобы манипулировать виртуальным объектом.

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

Операция 606 представляет определение входных данных органа управления, обозначающих пользователя, манипулирующего виртуальным объектом с указателем.

В варианте осуществления существует масштаб движения, и определение входных данных органа управления, обозначающих манипуляции пользователя с виртуальным объектом с помощью указателя, включает в себя определение, что входные данные органа управления обозначают манипуляции пользователя с виртуальным объектом с помощью указателя, в пропорции к масштабу движения. Когда масштаб движения составляет 1:2, это может означать, что для каждого дюйма перемещения органа управления пользователем указатель должен быть перемещен на два дюйма в том же самом направлении. Эти два дюйма могут быть определены как для виртуального мира (например, виртуальный мир, для начала, может быть представлен меньшим, чем соответствующий физический мир так, что человек ростом шесть футов будет представлен как аватар ростом три фута при отображении на устройстве отображения), или буквально, как два дюйма, что соответствует перемещению на два дюйма на экране устройства отображения.

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

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

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

Операция 608 представляет отображение результата упомянутого манипулирования.

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

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

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

Заключение

В то время как настоящее раскрытие было описано со ссылками на предпочтительные аспекты, которые представлены на различных чертежах, следует понимать, что можно использовать другие аналогичные аспекты или модификации, и добавление может быть выполнено для описанных аспектов для выполнения той же функции настоящего раскрытия без отхода от них. Поэтому, настоящее раскрытие не должно быть ограничено каким-либо одиночным аспектом, а скорее его требуется рассматривать в широком смысле и в объеме соответствующей приложенной формулы изобретения. Например, различные процедуры, описанные здесь, могут быть воплощены с использованием аппаратных средств или программных средств, или комбинации обоих этих подходов. Таким образом, способы и устройство раскрытых вариантов осуществления или определенных аспектов или их частей могут принимать форму программного кода (то есть, инструкций), внедренных в физический носитель информации, такой, как гибкие дискеты, CD-ROM, накопители на жестком диске или любой другой считываемый устройством носитель информации. Когда программный код загружают в и выполняют с помощью устройства, такого как компьютер, устройство становится устройством, предназначенным для выполнения на практике раскрытых вариантов осуществления. В дополнение к конкретным вариантам осуществления, явно представленным здесь, другие аспекты и варианты осуществления будут очевидны для специалиста в данной области техники при рассмотрении раскрытого здесь описания. При этом описание и иллюстрированные варианты выполнения следует рассматривать только как примеры.

Похожие патенты RU2555228C2

название год авторы номер документа
АВТОМАТИЧЕСКОЕ ГЕНЕРИРОВАНИЕ ВИЗУАЛЬНОГО ПРЕДСТАВЛЕНИЯ 2010
  • Перес Катрин Стоун
  • Кипман Алекс
  • Бертон Николас Д.
  • Уилсон Эндрю
RU2560340C2
ВЫРАЖЕНИЕ ВИЗУАЛЬНОГО ПРЕДСТАВЛЕНИЯ, ОСНОВАННОЕ НА ВЫРАЖЕНИИ ИГРОКА 2010
  • Перес Катрин Стоун
  • Кипман Алекс
  • Бертон Николас Д.
  • Уилсон Эндрю
RU2560794C2
ВОПЛОЩЕНИЕ ВИЗУАЛЬНОГО ПРЕДСТАВЛЕНИЯ С ПОМОЩЬЮ ИЗУЧЕННОГО ВВОДА ОТ ПОЛЬЗОВАТЕЛЯ 2010
  • Перес Катрин Стоун
  • Кипман Алекс
  • Бертон Николас Д.
  • Уилсон Эндрю
RU2554548C2
СИСТЕМЫ И СПОСОБЫ ПРИМЕНЕНИЯ ОТСЛЕЖИВАНИЯ МОДЕЛИ ДЛЯ ЗАХВАТА ДВИЖЕНИЙ 2010
  • Марголис Джеффри
RU2580450C2
СВЯЗЫВАНИЕ АНИМАЦИЙ 2010
  • Гайснер Кевин
  • Маркович Релья
  • Латта Стефен Джилкрист
  • Снук Грегори Нельсон
RU2530708C2
ЖЕСТОВЫЕ СОКРАЩЕНИЯ 2010
  • Латта Стефен
  • Гайснер Кевин
  • Клевин Джон
  • Цунода Кудо
  • Перес Катрин Стоун
  • Маркович Релья
  • Снук Грегори Н.
  • Кипман Алекс
RU2574830C2
СИСТЕМА ДЛЯ РАСПОЗНАВАНИЯ И ОТСЛЕЖИВАНИЯ ПАЛЬЦЕВ 2012
  • Эмбрус Энтони
  • Ли Киунгсук Дэвид
  • Кэмпбелл Эндрю
  • Хейли Дэвид
  • Маунт Брайан
  • Роблес Альберт
  • Осборн Дэниел
  • Райт Шон
  • Шаркаси Нахил
  • Хилл Дэйв
  • Маккаллок Дэниел
RU2605370C2
УПРАВЛЕНИЕ ВИРТУАЛЬНЫМИ ПОРТАМИ 2010
  • Стоун-Перес Кэтрин
  • Марголис Джеффри
  • Финоккио Марк Дж.
  • Кин Брайан И.
  • Пут Руди Якобус
  • Латта Стефен Г.
RU2555220C2
СТАНДАРТНЫЕ ЖЕСТЫ 2010
  • Латта Стефен Г.
  • Цунода Кудо
  • Гайснер Кевин
  • Маркович Релья
  • Беннетт Даррен
RU2534941C2
СПОСОБ УПРАВЛЕНИЯ УСТРОЙСТВОМ С ПОМОЩЬЮ ЖЕСТОВ И 3D-СЕНСОР ДЛЯ ЕГО ОСУЩЕСТВЛЕНИЯ 2011
  • Валик Андрей Владимирович
  • Зайцев Павел Анатольевич
  • Морозов Дмитрий Александрович
RU2455676C2

Иллюстрации к изобретению RU 2 555 228 C2

Реферат патента 2015 года МАНИПУЛИРОВАНИЕ ВИРТУАЛЬНЫМ ОБЪЕКТОМ

Изобретение относится к устройствам манипуляции виртуальными объектами. Технический результат заключается в обеспечении возможности взаимодействия пользователя с виртуальными объектами в виртуальной среде, используя сопоставление между физическим объектом, которым управляет пользователь, и соответствующим указателем в виртуальной среде. Пользователь может использовать орган управления, такой как его рука, в физическом пространстве для ассоциирования его с указателем в виртуальной среде. По мере того, как пользователь манипулирует органом управления в физическом пространстве, это захватывают камерой глубины. Данные изображения из камеры глубины анализируют, чтобы определить, как манипулируют органом управления, и соответствующие манипуляции с указателем выполняют в виртуальном пространстве. Когда указатель взаимодействует с виртуальным объектом в виртуальном пространстве, этим виртуальным объектом управляют с помощью указателя. 3 н. 12 з.п. ф-лы, 8 ил.

Формула изобретения RU 2 555 228 C2

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

2. Способ по п. 1, в котором виртуальное пространство содержит представление физического пространства первого пользователя, виртуальное подпространство, представление физического пространства второго пользователя или их комбинацию.

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

4. Способ по п. 1, в котором виртуальное пространство
представляют первому пользователю в перспективе от первого лица
или в перспективе от третьего лица.

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

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

7. Система по п. 6, в которой виртуальное пространство
содержит представление физического пространства первого
пользователя, виртуальное подпространство, представление
физического пространства второго пользователя или их комбинацию.

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

9. Система по п. 6, в которой виртуальное пространство
представляется первому пользователю в перспективе от первого
лица или в перспективе от третьего лица.

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

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

12. Считываемый компьютером носитель данных по п. 11, при этом виртуальное пространство содержит представление физического пространства первого пользователя, виртуальное подпространство, представление физического пространства второго пользователя или их комбинацию.

13. Считываемый компьютером носитель данных по п. 11, при этом имеется масштаб перемещения, и при этом отображение соответствующего перемещения первого виртуального объекта содержит:

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

14. Считываемый компьютером носитель данных по п. 11, при
этом виртуальное пространство представляется первому
пользователю в перспективе от первого лица или в перспективе от
третьего лица.

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

Документы, цитированные в отчете о поиске Патент 2015 года RU2555228C2

Колосоуборка 1923
  • Беляков И.Д.
SU2009A1
US 7294815 B2, 13.11.2007
Станок для изготовления деревянных ниточных катушек из цилиндрических, снабженных осевым отверстием, заготовок 1923
  • Григорьев П.Н.
SU2008A1
US 7465230 B2, 26.12.2008
Реле времени для цепей постоянного тока 1937
  • Белоруссов А.А.
  • Солнцев И.А.
SU54233A1

RU 2 555 228 C2

Авторы

Латта Стефен Г.

Гайснер Кевин

Маркович Релья

Беннетт Даррен Александр

Томлин Артур Чарльз

Даты

2015-07-10Публикация

2010-03-02Подача