Код документа: RU2560340C2
УРОВЕНЬ ТЕХНИКИ
[0001] Приложения часто отображают визуальное представление, которое соответствует пользователю, которым пользователь управляет посредством некоторых действий, таких как выбор кнопок на удаленном или перемещающемся органе управления некоторым образом. Визуальное представление может быть в форме аватара, фантастического персонажа, анимационного изображения или животного, курсора, руки или подобного. Визуальное представление является компьютерным представлением, которое обычно принимает форму двумерной (2D) или трехмерной (3D) модели в различных приложениях, таких как компьютерные игры, видеоигры, чаты, форумы, сообщества, услуги мгновенной передачи сообщений и т.п. Много вычислительных приложений, таких как компьютерные игры, мультимедийные приложения, офисные приложения или подобное, обеспечивают выбор заранее определенных анимированных персонажей, которые могут быть выбраны для использования в приложении в качестве аватара пользователя.
[0002] Большинство систем, которые обеспечивают создание аватара, также обеспечивают настройку внешности этого персонажа, посредством обеспечения базы данных выбираемых признаков, которые могут быть применены к аватару. Например, пользователь может получить доступ к хранилищу одежды и принадлежностей, доступных в приложении, и выполнить модификации во внешности аватара. Часто пользователь будет выбирать признаки, которые являются наиболее аналогичными собственным признакам пользователя. Например, пользователь может выбрать аватар, имеющий подобную структуру тела как у пользователя, и затем пользователь может выбрать аналогичные глаза, нос, рот, волосы и т.д., из каталога признаков. Однако, количество признаков и количество опций для каждого из этих признаков могут привести к большому количеству опций для выбора, и ручное генерирование визуального представления пользователя может стать обременительным. Система может ограничить количество выбираемых признаков, чтобы уменьшить усилия, требуемые от пользователя, но это нежелательно ограничивает признаки, доступные для пользователя, для генерирования уникального аватара.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0003] Может быть желательно, чтобы приложение или система осуществляли выборы признака для визуального представления пользователя от имени пользователя. Используя выбранные признаки, система может автоматически генерировать визуальное представление пользователя. Например, система может обнаружить различные признаки пользователя и сделать выборы признаков на основании обнаруженных признаков. Система может автоматически применить выборы к визуальному представлению пользователя на основании обнаруженных признаков. Альтернативно, система может делать выборы, которые сужают количество вариантов для признаков, из которых пользователь осуществляет выбор. Пользователь может быть не обязан принимать так много решений или не должен выбирать из таких многих вариантов, если система может принять решения от имени пользователя. Таким образом, раскрытые способы могут устранить большое количество усилий пользователя и могут осуществлять выборы от имени пользователя и применить их к визуальному представлению пользователя.
[0004] В примерном варианте осуществления система может выполнить сканирование тела и использовать способы распознавания лица и/или способы распознавания тела, чтобы идентифицировать признаки пользователя. Система может осуществлять выборы для визуального представления пользователя, которые наиболее близко напоминают идентифицированные признаки пользователя. В другом примерном варианте осуществления система может модифицировать выбор, прежде чем применить выбор к визуальному представлению. Пользователь может инструктировать систему сделать модификации прежде применения выбора к визуальному представлению пользователя. Например, если пользователь весит больше нормы, пользователь может инструктировать систему выбрать более тонкий размер тела для визуального представления пользователя.
[0005] Система может применить выборы к пользователю в режиме реального времени. Может быть также желательно, чтобы система захватывала данные из физического пространства, идентифицировала характеристики пользователя и делала обновления признаков визуального представления пользователя в режиме реального времени.
[0006] Этот раздел сущности изобретения предоставлен, чтобы ввести выбор понятий в упрощенной форме, которые ниже описаны ниже в подробном описании. Это сущность изобретения не предназначена, чтобы идентифицировать ключевые признаки или существенные признаки заявленного объекта, и при этом она не предназначена для использования, чтобы ограничить область заявленного объекта. Кроме того, заявленный объект не ограничен реализациями, которые разрешают любые неудобства, отмеченные в любой части настоящего описания.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0007] Системы, способы и считываемый компьютером носитель для осуществления выборов признаков и автоматического генерирования визуального представления в соответствии с настоящим описанием описаны ниже со ссылками на сопроводительные чертежи, на которых:
[0008] Фиг. 1 иллюстрирует примерный вариант осуществления системы отслеживания, анализа и распознавания цели с пользователем, играющим в игру.
[0009] Фиг. 2 иллюстрирует примерный вариант осуществления устройства захвата, которое может использоваться в системе отслеживания, анализа и распознавания цели и встраивания способов смешивания формирования логической цепочки и анимации.
[0010] Фиг. 3 иллюстрирует примерный вариант осуществления вычислительной среды, в которой здесь могут быть воплощены описанные способы анимации.
[0011] Фиг. 4 иллюстрирует другой примерный вариант осуществления вычислительной среды, в которой здесь могут быть воплощены описанные способы анимации.
[0012] Фиг. 5 иллюстрирует скелетное отображение пользователя, которое генерируется из изображения глубины.
[0013] Фиг. 6A-6B каждая изображает примерную систему отслеживания, анализа и распознавания цели и примерные варианты автоматически сгенерированного визуального представления.
[0014] Фиг. 7 изображает примерную систему отслеживания, анализа и распознавания цели, которая обеспечивает поднабор опций признаков для приложения для визуального представления цели.
[0015] Фиг. 8 изображает примерную блок-схему для способа автоматического генерирования визуального представления или поднабора опций признаков для приложения для визуального представления.
[0016] Фиг. 9 изображает примерную систему отслеживания, анализа и распознавания цели, которая использует способы оцифровывания цели, чтобы идентифицировать цели в физическом пространстве.
ПОДРОБНОЕ ОПИСАНИЕ ИЛЛЮСТРАТИВНЫХ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
[0017] Ниже раскрыты способы для обеспечения визуального представления цели, такой как пользователь или объект-нечеловек, в физическом пространстве. Визуальное представление пользователя, например, может быть в форме аватара, курсора на экране, руке, или любого другого виртуальном объекте, который соответствует пользователю в физическом пространстве. Аспекты скелетной модели или сеточной модели человека могут генерироваться на основании данных изображения, захваченных устройством захвата, и могут быть оценены, чтобы обнаружить характеристики пользователя. Устройство захвата может обнаружить признаки пользователя и автоматически генерировать визуальное представление пользователя посредством выбора признаков из каталога признаков, которые напоминают (похожи на) обнаруженные признаки, такие как выражения лица, цвет и тип волос, цвет и тип кожи, одежда, тип тела, рост, вес и т.д. Например, используя способы распознавания лица и распознавания жеста / положения тела, система может автоматически выбрать признаки из каталога или базы данных опций признаков, которые соответствуют распознанным признакам. В режиме реального времени система может применить выбранные признаки и любые обновления к этим признакам к визуальному представлению пользователя. Точно так же, система может обнаружить признаки нечеловеческих целей в физическом пространстве и выбрать признаки из каталога опций признаков для виртуальных объектов. Система может отобразить виртуальный объект, который соответствует обнаруженным признакам.
[0018] Вычислительная среда может определить, какие средства управления выполнить в приложении, выполняющемся в компьютерной среде, на основании, например, жестов пользователя, которые были распознаны и поставлены в соответствие визуальному представлению, автоматически сгенерированному системой. Таким образом, виртуальный пользователь может быть отображен, и пользователь может управлять движением виртуального пользователя, делая жесты в физическом пространстве. Захваченное движение может быть любым движением в физическом пространстве, которое захвачено устройством захвата, таким как (фото)камера. Захваченное движение может включать в себя движение цели в физическом пространстве, такой как пользователь или объект. Захваченное движение может включать в себя жест, который преобразуется в средство управления в операционной системе или приложении. Движение может быть динамичным, таким как движение при беге, или движение может быть статическим, таким как пользователь, который имеет позу с небольшим движением.
[0019] Система, способы, приемы и компоненты распознавания лица и тела для осуществления выборов для визуального представления на основании обнаружимых пользовательских характеристиках могут быть воплощены в мультимедийной консоли, такой как игровая консоль, или в любом другом вычислительном устройстве, в котором желательно отображать визуальное представление цели, включая, в качестве примера и без какого-либо намеренного ограничения, спутниковые приемники, телевизионные приставки, игры галереи, персональные компьютеры (PC), портативные телефоны, персональные цифровые помощники (PDA) и другие переносные устройства.
[0020] Фиг. 1 иллюстрирует примерный вариант осуществления конфигурации системы 10 отслеживания, анализа и распознавания цели, которая может использовать способы для применения характеристик пользователя к аватару. В примерном варианте осуществления пользователь 18 играет в игру в бокс. В примерном варианте осуществления система 10 может распознавать, анализировать и/или отслеживать цель-человека, такую как пользователь 18. Система 10 может собирать информацию, относящуюся к движениям пользователя, выражениям лица, языку тела, эмоциям и т.д., в физическом пространстве. Например, система может идентифицировать и сканировать цель-человека 18. Система 10 может использовать способы распознавания положения тела, чтобы идентифицировать тип тела цели-человека 18. Система 10 может идентифицировать части тела пользователя 18 и как они двигаются. Система 10 может сравнить обнаруженные признаки пользователя с каталогом выбираемых признаков визуального представления.
[0021] Как показано на фиг. 1, система 10 отслеживания, анализа и распознавания цели может включать в себя вычислительную среду 12. Вычислительная среда 12 может быть компьютером, игровой системой или консолью или аналогичным. Согласно примерному варианту осуществления вычислительная среда 12 может включать в себя компоненты аппаратного обеспечения и/или компоненты программного обеспечения таким образом, что вычислительная среда 12 может использоваться, чтобы выполнять приложения, такие как игровые приложения, неигровые приложения, или аналогичное.
[0022] Как показано на фиг. 1, система 10 отслеживания, анализа и распознавания цели может также включать в себя устройство 20 захвата. Устройство 20 захвата может быть, например, камерой, которая может использоваться для визуального контроля одного или более пользователей, таких как пользователь 18, таким образом, что жесты, выполненные одним или более пользователями, могут быть захвачены (зафиксированы), проанализированы и отслежены, чтобы выполнить одно или более средств управления или действий в приложении, как описано более подробно ниже.
[0023] Согласно одному варианту осуществления, система 10 отслеживания, анализа и распознавания цели может быть соединена с аудиовизуальным устройством 16, таким как телевизор, монитор, телевизор высокой четкости (HDTV), или аналогичное, которое может обеспечить визуалы игры или приложения и/или аудио пользователю, такому как пользователь 18. Например, вычислительная среда 12 может включать в себя видео адаптер, такой как графическая карта, и/или аудио адаптер, такой как звуковая плата, которые могут обеспечить аудиовизуальные сигналы, ассоциированные с игровым приложением, неигровым приложением или аналогичным. Аудиовизуальное устройство 16 может принять аудиовизуальные сигналы от вычислительной среды 12 и может затем вывести визуалы игры или приложения, и/или аудио, ассоциированное с аудиовизуальными сигналами, пользователю 18. Согласно одному варианту осуществления аудиовизуальное устройство 16 может быть соединено с вычислительной средой 12 через, например, кабель S-видео, коаксиальный кабель, кабель HDMI, кабель DVI, кабель VGA или аналогичное.
[0024] Как показано на фиг. 1, система 10 отслеживания, анализа и распознавания цели может использоваться, чтобы распознавать, анализировать и/или отследить цель-человека, такую как пользователь 18. Например, пользователь 18 может быть отслежен, используя устройство 20 захвата, таким образом, что движения пользователя 18 могут интерпретироваться как средство управления, которое может использоваться, чтобы воздействовать на приложение, выполняемое компьютерной средой 12. Таким образом, согласно одному варианту осуществления, пользователь 18 может двигать его или ее телом, чтобы управлять приложением. Система 10 может отслеживать тело пользователя и движения, сделанные телом пользователя, включая жесты, которые управляют аспектами системы, такими как приложение, операционная система или аналогичное.
[0025] Система 10 может преобразовать ввод данных в устройство 20 захвата в анимацию, причем ввод данных является представляющим движения пользователя, таким образом, что анимация приводится в действие этим вводом данных. Таким образом, движения пользователя могут быть поставлены в соответствие аватару 40 таким образом, что движения пользователя в физическом пространстве выполняются аватаром 40. Движения пользователя могут быть жестами, которые применимы к средству управления в приложении. Как показано на фиг. 1, в примерном варианте осуществления выполнение приложения в вычислительной среде 12 может быть игрой в бокс, в которую может играть пользователь 18.
[0026] Вычислительная среда 12 может использовать аудиовизуальное устройство 16, чтобы обеспечить визуальное представление аватара 40 игрока, которым пользователь 18 может управлять с помощью его или ее движений. Система может применять движения и/или жесты к визуальному представлению пользователя, которое может быть автоматически сгенерированным визуальным представлением, автоматически сгенерированным системой на основании обнаруженных признаков пользователя. Например, пользователь 18 может нанести удар в физическом пространстве, чтобы заставить аватар 40 игрока нанести удар в игровом пространстве. Аватар 40 игрока может иметь характеристики пользователя, идентифицированного устройством 20 захвата, или система 10 может использовать признаки известного боксера или изображать телосложение профессионального боксера для визуального представления, которое поставлено в соответствие движениям пользователя. Система 10 может отслеживать пользователя и модифицировать характеристики аватара пользователя на основании обнаруживаемых признаков пользователя в физическом пространстве. Вычислительная среда 12 может также использовать аудиовизуальное устройство 16, чтобы обеспечить визуальное представление боксирующего противника 38 пользователю 18. Согласно примерному варианту осуществления компьютерная среда 12 и устройство 20 захвата системы 10 отслеживания, анализа и распознавания цели могут использоваться, чтобы распознать и анализировать удар пользователя 18 в физическом пространстве таким образом, что удар может быть интерпретирован как управление игрой аватаром 40 игрока в пространстве игры. Множественные пользователи могут взаимодействовать с друг другом из удаленных местоположений. Например, визуальное представление боксирующего противника 38 может быть представлено для другого пользователя, такого как второй пользователь, в физическом пространстве с пользователем 18 или сетевого пользователя во втором физическом пространстве.
[0027] Другие движения, сделанные пользователем 18, могут также интерпретироваться как другие средства управления или действия, например, для управления, чтобы нанести легкий удар, замах, увертывание, блокировку, джеб, или нанести множество ударов различной силы. Кроме того, некоторые движения могут интерпретироваться как средство управления, которое может соответствовать действиям, отличным от управления аватаром 40 игрока. Например, игрок может использовать движения, чтобы закончить, сделать паузу или сохранить игру, выбрать уровень, просмотреть наивысшие достижения, общаться с другом, и т.д. Дополнительно, полный диапазон движений пользователя 18 может быть доступным, использоваться и анализироваться любым подходящим способом, чтобы взаимодействовать с приложением.
[0028] В примерных вариантах осуществления цель-человек, такой как пользователь 18, может иметь объект. В таких вариантах осуществления пользователь электронной игры может удерживать объект таким образом, что движения игрока и объекта могут использоваться, чтобы регулировать и/или управлять параметрами игры. Например, движение игрока, держащего ракетку, может быть отслежено и использовано для управления ракеткой на экране в электронной спортивной игре. В другом примерном варианте осуществления движение игрока, держащего объект, может быть отслежено и использовано для управления оружием на экране в электронной боевой игре.
[0029] Жесты пользователя или движение могут интерпретироваться как средства управления, которые могут соответствовать действиям, отличным от управления аватаром 40 игрока. Например, игрок может использовать движения, чтобы завершить, сделать паузу, или сохранить игру, выбрать уровень, просмотреть наивысшие достижения, общаться с другом и т.д. Игрок может использовать движения, чтобы применить модификации к аватару. Например, пользователь может встряхнуть его или ее рукой в физическом пространстве, и это может быть жестом, идентифицированным системой 10 как запрос сделать руку аватара длиннее. Фактически любым управляемым аспектом операционной системы и/или приложения можно управлять движениями цели, такой как пользователь 18. Согласно другим примерным вариантам осуществления система 10 отслеживания, анализа и распознавания цели может интерпретировать целевые движения для управления аспектами операционной системы и/или приложения, которые находятся вне области игр.
[0030] Жест пользователя может быть средством управления, применимым к операционной системе, неигровым аспектам игры или неигровому приложению. Жесты пользователя могут интерпретироваться как манипуляция объектом, например, управление пользовательским интерфейсом. Например, рассмотрим пользовательский интерфейс, имеющий блейды, или интерфейс с вкладками, упорядоченными в линию вертикально слева направо, где выбор каждого блейда или вкладки открывает опции для различных средств управления в приложении или системе. Система может идентифицировать жест руки пользователя для перемещения вкладки, где рука пользователя в физическом пространстве фактически является согласованной с вкладкой в пространстве приложения. Жест, включающий паузу, движение захвата и затем перемещение руки влево, может быть интерпретирован как выбор вкладки, и затем выход из него - способом открыть следующую вкладку.
[0031] Фиг. 2 иллюстрирует примерный вариант осуществления устройства 20 захвата, которое может использоваться для распознавания, анализа и отслеживания цели, где цель может быть пользователем или объектом. Согласно примерному варианту осуществления устройство 20 захвата может быть сконфигурировано, чтобы захватить видео с информацией глубины, включающей в себя изображение глубины, которое может включать в себя значения глубины любым подходящим способом, включая, например, время прохождения, структурированный свет, стерео изображение или аналогичное. Согласно одному варианту осуществления устройство 20 захвата может организовать вычисленную информацию глубины в "Z уровни", или уровни, которые могут быть перпендикулярными оси Z, простирающейся от камеры глубины вдоль ее луча зрения.
[0032] Как показано на фиг. 2, устройство 20 захвата может включать в себя компонент 22 камеры изображения. Согласно примерному варианту осуществления компонент 22 камеры изображения может быть камерой глубины, которая может захватывать изображение глубины сцены. Изображение глубины может включать в себя двумерную (2D) пиксельную область захваченной сцены, где каждый пиксель в 2D пиксельной области может представлять значение глубины, такое как длина или расстояние в, например, сантиметрах, миллиметрах, или аналогичное, объекта в захваченной сцене от камеры.
[0033] Как показано на фиг. 2, согласно примерному варианту осуществления компонент 22 камеры изображения может включать в себя компонент 24 ИК света, трехмерную (3D) камеру 26, и камеру 28 RGB, которые могут использоваться, чтобы захватить изображение глубины сцены. Например, при анализе времени прохождения компонент 24 ИК света устройства 20 захвата может испускать инфракрасный свет на сцену и может затем использовать датчики (не показаны), чтобы обнаружить свет, обратнорассеянный от поверхности одной или более целей и объектов в сцене, используя, например, 3D камеру 26 и/или камеру 28 RGB. В некоторых вариантах осуществления пульсирующий инфракрасный свет может использоваться таким образом, что время между испускаемым световым импульсом и соответствующим поступающим световым импульсом может быть измерено и использоваться, чтобы определить физическое расстояние от устройства 20 захвата до конкретного местоположения на целях или объектах в сцене. Дополнительно, в других примерных вариантах осуществления фаза испускаемой волны света может быть сравнена с фазой поступающей волны света, чтобы определить сдвиг фаз. Сдвиг фаз может затем использоваться, чтобы определить физическое расстояние от устройства 20 захвата до конкретного местоположения на целях или объектах.
[0034] Согласно другому примерному варианту осуществления анализ времени прохождения может использоваться, чтобы косвенно определить физическое расстояние от устройства 20 захвата до конкретного местоположения на целях или объектах, посредством анализа интенсивности отраженного пучка света в течение времени с помощью различных способов, включая, например, полученное с помощью затвора изображение светового импульса.
[0035] В другом примерном варианте осуществления устройство 20 захвата может использовать структурированный свет, чтобы захватить информацию глубины. При таком анализе шаблонный свет (то есть, свет, отображаемый как известный шаблон, такой как сеточный шаблон или шаблон полос), может быть спроецирован на сцену через, например, компонент 24 ИК света. После ударения о поверхность одной или более целей или объекта в сцене, шаблон может стать деформированным в ответ. Такая деформация шаблона может быть захвачена, например, 3D камерой 26 и/или камерой 28 RGB, и может быть затем проанализирована, чтобы определить физическое расстояние от устройства 20 захвата до конкретного местоположения на целях или объектах.
[0036] Согласно другому варианту осуществления устройство 20 захвата может включать в себя две или более физически разделенные камеры, которые могут рассматривать сцену с различных углов, чтобы получить визуальные стерео данные, которые могут быть разрешены, чтобы сгенерировать информацию глубины.
[0037] В другом примерном варианте осуществления устройство 20 захвата может использовать данные облака точек и способы оцифровывания целей, чтобы обнаружить признаки пользователя. Эти способы предоставлены более подробно ниже со ссылками на фиг. 2.
[0038] Устройство 20 захвата может также включать в себя микрофон 30 или множество микрофонов. Микрофон 30 может включать в себя преобразователь или датчик, который может принимать и преобразовывать звук в электрический сигнал. Согласно одному варианту осуществления микрофон 30 может использоваться, чтобы уменьшить обратную связь между устройством 20 захвата и вычислительной средой 12 в системе 10 отслеживания, анализа и распознавания цели. Дополнительно, микрофон 30 может использоваться, чтобы принять звуковые сигналы, которые также могут быть предоставлены пользователем, чтобы управлять приложениями, такими как игровые приложения, неигровые приложения, или аналогичное, которые могут быть выполнены вычислительной средой 12.
[0039] В примерном варианте осуществления устройство 20 захвата может также включать в себя процессор 32, который может быть в оперативной связи с компонентом 22 камеры изображения. Процессор 32 может включать в себя стандартизированный процессор, специализированный процессор, микропроцессор, или аналогичное, который может выполнять инструкции, которые могут включать в себя инструкции для приема изображения глубины, определения, может ли подходящая цель быть включена в изображение глубины, преобразования подходящей цели в скелетное представление или модель цели, или любую другую подходящую инструкцию.
[0040] Например, считываемый компьютером носитель может содержать выполнимые компьютером инструкции для приема данных сцены, причем данные включают в себя данные, представляющие цель в физическом пространстве. Инструкции содержат инструкции для обнаружения по меньшей мере одного целевого признака из данных, и сравнения по меньшей мере одного обнаруженного целевого признака с опциями признака визуального представления из библиотеки 197 признаков. Опции признака визуального представления могут содержать выбираемые опции, конфигурируемые для приложения для визуального представления. Дополнительные инструкции предусматривают выбор признака визуального представления из опций признаков визуального представления, применение признака визуального представления к визуальному представлению цели, и визуализацию визуального представления. Визуальное представление может быть автоматически сгенерированным из сравнения по меньшей мере одного обнаруженного признака с опциями признака визуального представления таким образом, что выбор признака визуального представления выполняется без ручного выбора пользователем.
[0041] Выбор признака визуального представления может содержать выбор признака визуального представления, который подобен обнаруженному признаку цели. Признак визуального представления может быть по меньшей мере одним из признака лица, части тела, цвета, размера, роста, ширины, формы, аксессуара или элемента одежды. Инструкции могут предусматривать генерирование поднабора опций признаков визуального представления, из опций признаков визуального представления, для признака визуального представления, и обеспечения сгенерированного поднабора опций признаков для выбора пользователем признака визуального представления для применения к визуальному представлению. Сгенерированный поднабор опций признаков визуального представления может содержать множественные опции признаков визуального представления, которые аналогичны обнаруженному признаку цели. Инструкции могут предусматривать прием пользовательского выбора признака визуального представления из сгенерированного поднабора опций признаков, при этом выбор признака визуального представления из опций признаков визуального представления содержит выбор признака визуального представления, который соответствует пользовательскому выбору. Визуальное представление, имеющее этот признак визуального представления, может быть предоставлено в режиме реального времени. Кроме того, инструкции могут предусматривать мониторинг цели и обнаружение изменения в обнаруженном целевом признаке, и обновление визуального представления цели посредством обновления признака визуального представления, примененного к визуальному представлению, в режиме реального времени на основании изменения в обнаруженном целевом признаке.
[0042] Устройство 20 захвата может также включать в себя компонент 34 памяти, который может хранить инструкции, которые могут быть выполнены процессором 32, изображения или кадры изображений, захваченных 3D камерой 26 или камерой 28 RGB, или любую другую подходящую информацию, изображения или аналогичное. Согласно примерному варианту осуществления компонент 34 памяти может включать в себя память с произвольным доступом (RAM), постоянную память (ROM), кэш-память, флэш-память, жесткий диск, или любой другой подходящий компонент хранения. Как показано на фиг. 2, в одном варианте осуществления компонент 34 памяти может быть отдельным компонентом, находящимся в связи с компонентом 22 ввода изображения и процессором 32. Согласно другому варианту осуществления компонент 34 памяти может быть интегрирован в процессор 32 и/или компонент 22 ввода изображения.
[0043] Как показано на фиг. 2, устройство 20 захвата может находиться в связи с вычислительной средой 12 через коммуникационную линию 36 связи. Коммуникационная линия 36 связи может быть проводным соединением, включая, например, соединение USB, соединение Firewire, кабельное соединение Ethernet, или аналогичное, и/или беспроводным соединением, таким как беспроводное соединение согласно стандартам 802.11b, g, a или n. Согласно одному варианту осуществления вычислительная среда 12 может обеспечить синхросигнал устройству 20 захвата, который может использоваться, чтобы определить, когда захватывать, например, сцену, через коммуникационную линию 36 связи.
[0044] Дополнительно, устройство 20 захвата может предоставить информацию глубины и изображения, захваченные, например, 3D камерой 26 и/или камерой 28 RGB, и скелетную модель, которая может генерироваться устройством 20 захвата, к вычислительной среде 12 через коммуникационную линию 36 связи. Вычислительная среда 12 может затем использовать скелетную модель, информацию глубины и захваченные изображения, чтобы, например, управлять приложением, таким как игра или текстовой процессор. Например, как показано на фиг. 2, вычислительная среда 12 может включать в себя библиотеку 192 жестов.
[0045] Как показано на фиг. 2, вычислительная среда 12 может включать в себя библиотеку 192 жестов и подсистему 190 распознавания жестов. Подсистема 190 распознавания жестов может включать в себя коллекцию фильтров 191 жестов. Фильтр может содержать код и ассоциированные данные, которые могут распознавать жесты или иначе обрабатывать глубину, RGB или скелетные данные. Каждый фильтр 191 может содержать информацию, определяющую жест, наряду с параметрами, или метаданными, для этого жеста. Например, бросок, который содержит движение одной из рук из-за задней части тела для прохождения передней поверхности тела, может быть реализован как фильтр 191 жестов, содержащий информацию, представляющую движение одной из рук пользователя из-за задней части тела для прохождения передней поверхности тела, как это движение было бы захвачено камерой глубины. Параметры могут затем быть установлены для этого жеста. Когда жестом является бросок, параметр может быть пороговой скоростью, которой рука должна достигнуть, расстоянием, которое рука должна пройти (или абсолютным или относительным к размеру пользователя в целом), и оценку достоверности подсистемой устройства распознавания того, что жест произошел. Эти параметры для жеста могут изменяться между приложениями, между контекстами одного приложения, или в пределах одного контекста одного приложения в течение времени.
[0046] В то время как рассматривается, что подсистема 190 распознавания жестов может включать в себя коллекцию фильтров жестов, где фильтр может содержать код или иначе представлять компонент для обработки глубины, RGB или скелетных данных, использование фильтра не предназначено, чтобы ограничить анализ фильтром. Фильтр является представлением примерного компонента или секции кода, который анализирует данные сцены, принятой системой, и сравнивает эти данные с базовой информацией, которая представляет жест. В результате анализа система может сформировать выходной сигнал, соответствующий тому, соответствуют ли входные данные жесту. Базовая информация, представляющая жест, может быть настроена так, чтобы соответствовать рекурсивному признаку в истории данных, представляющих движение захвата пользователя. Базовая информация, например, может быть частью фильтра жестов, как описано выше. Но рассматривается любой подходящий способ для анализа данных ввода и данных жеста.
[0047] В примерном варианте осуществления жест может быть распознан как активатор для входа в режим модификации, где пользователь может модифицировать визуальное представление, автоматически сгенерированное системой. Например, фильтр 191 жестов может содержать информацию для распознавания жеста активатора модификации. Если жест активатора модификации распознан, приложение может войти в режим модификации. Жест активатора модификации может изменяться между приложениями, между системами, между пользователями или аналогичным. Например, один и тот же жест в теннисе, игровом приложении, возможно, не является тем же жестом активатора модификации в игровом приложении боулинга. Рассмотрим примерный жест активатора модификации, который содержит пользователя, показывающего правой рукой пользователя, представленной перед телом пользователя, с указательным пальцем, указывающим вверх, и перемещающимся круговым движением. Набор параметров для жеста активатора модификации может использоваться, чтобы идентифицировать, что рука пользователя находится перед телом пользователя, указательный палец пользователя указывает в восходящем движении, и идентификации, что указательный палец перемещается в круговом движении.
[0048] Некоторые жесты могут быть идентифицированы как запрос войти в режим модификации, в котором, если приложение в настоящее время выполняется, режим модификации прерывает текущее состояние приложения и входит в режим модификации. Режим модификации может заставить приложение сделать паузу, причем приложение может быть возобновлено в точке паузы, когда пользователь выходит из режима модификации. Альтернативно, режим модификации может не приводить к паузе в приложении, и приложение может продолжить выполняться, в то время как пользователь выполняет модификации.
[0049] Данные, захваченные камерами 26, 28 и устройством 20 в форме скелетной модели и движений, ассоциированных с ней, могут быть сравнены с фильтрами 191 жестов в библиотеке 192 жестов, чтобы идентифицировать, когда пользователь (который представлен скелетной моделью) выполнил один или более жестов. Таким образом, входы в фильтр, такой как фильтр 191, может содержать вещи, такие как данные сустава о позиции сустава пользователя, такие как углы, сформированные костями, которые встречаются в суставе, данные цвета RGB из сцены, и частота изменения аспекта пользователя. Как упомянуто выше, параметры могут быть установлены для жеста. Выходные данные из фильтра 191 могут содержать вещи, такие как достоверность, что сделан заданный жест, скорость, с которой сделано движение жеста, и время, в которое происходит жест.
[0050] Вычислительная среда 12 может включать в себя процессор 195, который может обработать изображение глубины, чтобы определить, какие цели находятся в сцене, такие как пользователь 18 или объект в комнате. Это может быть сделано, например, посредством группирования вместе пикселей изображения глубины, которые совместно «используют» аналогичное значение расстояния. Изображение может быть также проанализировано, чтобы сформировать скелетное представление пользователя, где идентифицируются признаки, такие как суставы и ткани, которые работают между суставами. Существуют способы скелетного сопоставления для захвата человека камерой глубины и из этого определяют различные точки на скелете этого пользователя, суставах руки, запястья, локти, колени, нос, лодыжки, плечи, и где таз соединяется с позвоночником. Другие способы включают в себя преобразование изображения в представление модели тела человека и преобразование изображения в представление сеточной модели человека.
[0051] В варианте осуществления обработка выполняется непосредственно на устройстве 20 захвата, и необработанные данные изображения значений глубины и цвета (где устройство 20 захвата содержит 3D камеру 26) передают к вычислительной среде 12 через линию 36 связи. В другом варианте осуществления обработка выполняется процессором 32, соединенным с камерой 402, и затем проанализированные данные изображения посылают в вычислительную среду 12. В еще одном варианте осуществления и необработанные данные изображения и проанализированные данные изображения посылают в вычислительную среду 12. Вычислительная среда 12 может принять проанализированные данные изображения, но она может все еще принять необработанные данные для выполнения текущего процесса или приложения. Например, если изображение сцены передано через компьютерную сеть другому пользователю, вычислительная среда 12 может передать необработанные данные для обработки другой вычислительной средой.
[0052] Процессор может иметь модуль 196 сравнения признаков. Модуль 196 сравнения признаков может сравнивать обнаруженные признаки цели с опциями в библиотеке 197 признаков. Библиотека 197 признаков может обеспечить опции признаков визуального представления, такие как опции цвета, опции лицевых признаков, опции типа тела, опции размера и т.д., и опции могут изменяться для человеческих и нечеловеческих целей. Библиотека может быть каталогом, базой данных, памятью или аналогичным, которое хранит признаки визуального представления. Библиотека может быть организованной или неорганизованной коллекцией опций признаков. Система или пользователь могут добавить признаки к каталогу. Например, приложение может иметь предварительно упакованный набор опций признаков, или система может иметь заданное по умолчанию количество доступных признаков. Дополнительные опции признаков могут быть добавлены к или обновлены в библиотеке 197 признаков. Например, пользователь может купить дополнительные опции признаков на виртуальном рынке, пользователь может подарить опции признаков другому пользователю, или система может генерировать опции признаков, выполняя мгновенный снимок обнаруженных признаков пользователя.
[0053] FCM (модуль сравнения признаков) 196 может осуществлять выборы признаков, например, из каталога опций признаков, которые наиболее близко напоминают обнаруженные признаки цели. Система может автоматически генерировать виртуальный объект, который имеет обнаруженные признаки. Например, рассмотрим обнаружение красного сиденья двухместного транспортного средства в физическом пространстве. Система может идентифицировать признаки из библиотеки 197 признаков, которые, один или в комбинации, напоминают обнаруженные признаки цели сиденья. В примерном варианте осуществления выбор из библиотеки 197 признаков может быть столь же простым как выбор виртуальной цели, которая имеет по меньшей мере один признак физической цели. Например, библиотека 197 признаков может иметь многочисленные опции признаков для мебели и может включать в себя виртуальное изображение или описание красного сиденья двухместного транспортного средства. Такие признаки могут быть предварительно упакованы и предоставлены приложением или системой. В другом примере система может сделать снимок физического сиденья и создать анимацию или виртуальное изображение, которое принимает форму физического сиденья. Таким образом, выбранный признак может быть из снимка физического сиденья, ранее снятого системой, и добавленного к библиотеке 197 признаков.
[0054] Система может настроить цвет, расположение или масштаб выбранного признака на основании обнаруженных признаков цели. Например, система может выбрать признак или объединить несколько признаков из библиотеки 197 признаков, которые напоминают признаки обнаруженной цели. Система может добавить признаки к выбранному признаку или виртуальному изображению, чтобы иметь более полное сходство с обнаруженной целью. В примере обнаруженного сиденья система может выполнить поиск признака в библиотеке 197 признаков и идентифицировать виртуальный кадр для сиденья, имеющего по меньшей мере один признак, который напоминает признак физического сиденья. Например, система может первоначально выбрать виртуальное сиденье, которое напоминает (похожа на) обнаруженное физическое сиденье по форме. Если виртуальное сиденье двухместного транспортного средства является доступной опцией признаков, система может выбрать это виртуальное двухместное транспортное средство. Цвета могут быть опциями признаков, выбираемыми системой. В этом примере, если красное сиденье по существу не является опцией в библиотеке 197 признаков, система может выбрать цвет из библиотеки 197 признаков и применить его к виртуальному выбранному кадру. Система может выбрать существующий цвет в библиотеке 197 признаков, который напоминает обнаруженный красный цвет физического сиденья, или система может сделать снимок цвета физического сиденья и добавить его к библиотеке признаков в качестве опции признака. Система может применить выбранный признак красного цвета к изображению виртуального сиденья.
[0055] В другом примере система может объединить признаки из библиотеки признаков, чтобы сгенерировать визуальный объект, который напоминает обнаруженную цель. Например, система может генерировать двухместное сиденье посредством выбора из опций признаков сиденья из библиотеки 197 признаков, таких как кисти, ноги, ягодицы, мягкие ткани, спина, позвоночник, и т.д. и часть вместе сиденьем с выбранными признаками.
[0056] В другом примере целью является пользователь, и система обнаруживает признаки пользователя, такие как цвет, размер и форму глаз, цвет, тип и длину волос, и т.д. Система может сравнить обнаруженные признаки с каталогом опций признаков и применить выбранные признаки к визуальному представлению. Как описано выше, система может объединить признаки и изменить эти признаки. Например, признаки могут быть изменены, применяя цвет, расположение, или масштабирование к цели. Признаки могут быть модифицированы посредством выбора дополнительных признаков из библиотеки 197 признаков, таких как цвет, или посредством использования данных изображения из мгновенного снимка цели. Например, приложение может обеспечить родовой набор штанов, футболок и типов обуви сплошного цвета в библиотеке 197 признаков. Система может выбирать из родовых признаков одежды, но изменять выбранные признаки одежды посредством применения цветов к одежде, чтобы отразить цвета одежды цели, обнаруженной системой.
[0057] В другом примере система может идентифицировать поднабор признаков в библиотеке 197 признаков, которые напоминают признаки пользователя и обеспечивают поднабор, из которого может выбирать пользователь. Таким образом, количество опций, предоставленных пользователю для конкретного признака, может быть разумно отфильтровано, чтобы облегчить для пользователя возможность настраивать визуальное представление.
[0058] Библиотека признаков может применяться к применимым к приложению или может быть общесистемной. Например, игровое приложение может определить признаки, которые указывают различные темпераменты, применимые к игре. Опции признаков могут включать в себя специфические и общие признаки. Также следует отметить, что ссылки на таблицу поиска или базу данных являются примерными, и рассматривается, что обеспечение опций признаков, относящихся к способам, раскрытым здесь, может быть доступно, сохранено, упаковано, обеспечено, сгенерировано, или аналогично, любым подходящим способом.
[0059] Вычислительная среда 12 может использовать библиотеку 192 жестов, чтобы интерпретировать движения скелетной модели и управлять приложением на основании движений. Вычислительная среда 12 может моделировать и отобразить представление пользователя, например, в форме аватара или указателя на отображении, например, в устройстве 193 отображения. Устройство 193 отображения может включать в себя компьютерный монитор, телевизионный экран или любое подходящее устройство отображения. Например, управляемая камерой компьютерная система может захватывать пользовательские данные изображения и отображать пользовательскую обратную связь на телевизионном экране, которая поставлена в соответствие жестам пользователя. Пользовательская обратная связь может быть отображена в качестве аватара на экране, например, показано на фиг. 1. Движение аватара может быть управляемым непосредственно посредством установления соответствия движения аватара движениям пользователя. Жесты пользователя могут быть интерпретированными некоторыми аспектами управления приложением.
[0060] Согласно примерному варианту осуществления, цель может быть целью-человеком в любом положении, таком как положение стоя или сидя, целью-человеком с объектом, двумя или более целями-людьми, одной или более принадлежностями одного или более целей-человека или аналогичного, которые могут быть сканированы, отслежены, моделированы и/или оценены, чтобы сгенерировать виртуальный экран, сравнить пользователя с одним или более сохраненных профилей и/или сохранить информацию 198 профиля о цели в вычислительной среде, такой как вычислительная среда 12. Информация 198 профиля может быть в форме пользовательских профилей, персональных профилей, профилей приложения, профилей системы или любом другом подходящем способе для хранения данных для более позднего доступа. Информация 198 профиля может быть доступной через приложение или быть доступной всей системе, например. Информация 198 профиля может включать в себя таблицы поиска для загрузки информации профиля конкретного пользователя. Виртуальный экран может взаимодействовать с приложением, которое может быть выполнено вычислительной средой 12, описанной выше со ссылками на фиг. 1.
[0061] Система может визуализировать визуальное представление цели, например, пользователя, посредством автогенерации визуального представления на основании информации, сохраненной в профиле пользователя. Согласно примерным вариантам осуществления, таблицы поиска могут включать в себя информацию профиля конкретного пользователя. В одном варианте осуществления вычислительная среда, такая как вычислительная среда 12, может включать в себя сохраненные данные 198 профиля об одном или более пользователях в таблицах поиска. Сохраненные данные 198 профиля могут включить в себя, помимо прочего, сканированный или оцененный размер тела целей, скелетные модели, модели тела, голосовые выборки или пароли, пол цели, возраст цели, предыдущие жесты, ограничения цели и стандартное использование системы целью, такой как, например, тенденция сидеть, доминирование левой или правой руки, или тенденция стоять очень близко около устройства захвата. Эта информация может использоваться, чтобы определить, есть ли совпадение между целью в сцене захвата и одним или более пользовательскими профилями 198, что в одном варианте осуществления может позволить системе адаптировать виртуальный экран к пользователю или адаптировать другие элементы вычислительного или игрового опыта согласно профилю 198.
[0062] Ранее выбранные признаки визуального представления цели могут быть сохранены в профиле. Например, специфический для пользователя профиль может хранить признаки, выбранные и примененные для автоматического генерирования визуального представления пользователя. Специфический для местоположения профиль может хранить признаки, выбранные и примененные для автоматического генерирования и отображения виртуальной сцены, которая напоминает (похожа на) физическое пространство. Например, виртуальные объекты, которые соответствуют объектам в физическом пространстве, таким как мебель в комнате, могут быть сгенерированы посредством выбора из опций в библиотеке 197 признаков. Цвета могут быть обнаружены и доступные цвета могут быть выбраны из библиотеки 197 признаков. После распознавания или инициализации системой, специфический для местоположения профиль может быть загружен, отображая мебель и цвета, которые соответствуют местоположению.
[0063] Один или более персональных профилей 198 могут быть сохранены в компьютерной среде 12 и использоваться во многих пользовательских сеансах, или один или более персональных профилей могут быть созданы только для одного сеанса. Пользователи могут иметь опцию установления профиля, где они могут предоставить информацию системе, такую как голос или сканирование тела, возраст, персональные предпочтения, доминирование левой или правой руки, аватар, имя или аналогичное. Персональные профили могут быть также предоставлены для "гостей", которые не предоставляют какой-либо информации системе помимо вступления в пространство захвата. Временный персональный профиль может быть установлен для одного или более гостей. В конце сеанса гостя персональный профиль гостя может быть сохранен или удален.
[0064] Библиотека 192 жестов, подсистема 190 распознавания жестов, библиотека 197 признаков, модуль 196 сравнения признаков и профиль 198 могут быть реализованы в аппаратном обеспечении, программном обеспечении или их комбинации. Например, библиотека 192 жестов и подсистема 190 распознавания жестов могут быть реализованы как программное обеспечение, которое выполняется на процессоре, таком как процессор 195, вычислительной среды 12 (или в блоке 101 обработке согласно фиг. 3 или блоке 259 обработке согласно Фиг. 4).
[0065] Следует подчеркнуть, что блок-схема, изображенная на фиг. 3-4, описанная ниже, является примерной и не предназначена, чтобы подразумевать конкретную реализацию. Таким образом, процессор 195 или 32 на фиг. 1, блок 101 обработки согласно фиг. 3 и блок 259 обработки согласно фиг. 4 могут быть реализованы как единственный процессор или множественные процессоры. Множественные процессоры могут быть распределены или центрально расположенными. Например, библиотека 192 жестов может быть реализована как программное обеспечение, которое выполняется на процессоре 32 устройства захвата, или она может быть реализована как программное обеспечение, которое выполняется на процессоре 195 в вычислительной среде 12. Любая комбинация процессоров, которые являются подходящими для выполнения способов, раскрытых здесь, рассматривается. Множественные процессоры могут общаться беспроводным образом, посредством проводной передачи или их комбинации.
[0066] Кроме того, как используется здесь, вычислительная среда 12 может относиться к единственному вычислительному устройству или к вычислительной системе. Вычислительная среда может включать в себя не вычислительные компоненты. Вычислительная среда может включать в себя устройство отображения, такое как устройство 193 отображения, показанное на фиг. 2. Устройство отображения может быть объектом, отдельным, но подсоединенным к вычислительной среде, или устройство отображения может быть вычислительным устройством, которое обрабатывает и отображает, например. Таким образом, вычислительная система, вычислительное устройство, вычислительная среда, компьютер, процессор или другой вычислительный компонент могут использоваться взаимозаменяемо.
[0067] Библиотека жестов и параметры фильтров могут быть настроены для приложения или контекста приложения посредством инструмента жеста. Контекст может быть культурным контекстом, и он может быть экологическим контекстом. Культурный контекст относиться к культуре пользователя, использующего систему. Различные культуры могут использовать аналогичные жесты, чтобы передать заметно различающиеся значения. Например, американский пользователь, который желает сказать другому пользователю "смотреть" или "используй свои глаза", может поместить свой указательный палец к своей голове близко к внешней стороне своего глаза. Однако, для итальянского пользователя этот жест может быть интерпретирован как ссылка на мафию.
[0068] Точно так же, могут быть различные контексты среди различных сред единственного приложения. Возьмем игру в стрелка для первого пользователя, которая вовлекает оперирование двигателем автомашины. В то время как пользователь находится в движении на ногах, сжатие кулака с пальцами к земле и вытягивание кулака вперед и далеко от тела может представить жест удара кулаком. В то время как пользователь находится в контексте управления автомобилем, то же самое движение может представить как жест "переключение передач". Относительно модификаций к визуальному представлению различные жесты могут вызвать различные модификации в зависимости от среды. Жест активатора различной модификации может использоваться для входа в конкретный для приложения режим модификации в зависимости от режима модификации всей системы. Каждый режим модификации может быть упакован с независимым набором жестов, которые соответствуют режиму модификации, в который входят в результате жеста активатора модификации. Например, в игре в боулинг качающееся движение руки может быть жестом, идентифицированным как покачивание шара для боулинга для броска в виртуальном кегельбане. Однако, в другом приложении качающееся движение руки может быть жестом, идентифицированным как запрос удлинить кисть аватара пользователя, отображенного на экране. Могут быть также одна или более сред меню, где пользователь может сохранить свою игру, осуществить выбор среди оборудования своего персонажа или выполнить аналогичные действия, которые не содержат непосредственную игру в игру. В этой среде один и тот же жест может иметь третье значение, например, выбрать кое-что или передвинуться к другому экрану.
[0069] Жесты могут группироваться в жанровые пакеты дополнительных жестов, которые, вероятно, будут использоваться приложением в этом жанре. Дополнительные жесты - или дополнительные как те, что обычно используются вместе, или дополнительные, когда при изменении в параметре одного будет изменяться параметр другого - могут группироваться в пакеты жанра. Эти пакеты могут быть предоставлены приложению, которое может выбрать по меньшей мере один. Приложение может настроить или модифицировать параметр жеста или фильтр 191 жестов, чтобы лучше всего соответствовать уникальным аспектам приложения. Когда этот параметр настраивается, второй, дополнительный, параметр (во взаимозависимом смысле) или этого жеста или второго жеста также настраивается таким образом, что параметры остаются дополнительными. Пакеты жанра для видеоигр могут включать в себя жанры, такие как стрелок - первый пользователь, действие, вождение автомобиля и спортивные состязания.
[0070] Фиг. 3 иллюстрирует примерный вариант осуществления вычислительной среды, которая может использоваться, чтобы интерпретировать один или более жестов в системе отслеживания, анализа и распознавания цели. Вычислительная среда, такая как вычислительная среда 12, описанная выше со ссылками на фиг. 1-2, может быть мультимедийной консолью 100, такой как игровая консоль. Как показано на фиг. 3, мультимедийная консоль 100 имеет центральный процессор (ЦПУ) 101, имеющий кэш-память 102 уровня 1, кэш-память 104 уровня 2 и флэш-ROM (постоянное запоминающее устройство) 106. Память 102 уровня 1, кэш-память 104 уровня 2 временно хранят данные и следовательно сокращают количество циклов доступа к памяти, таким образом улучшая скорость обработки и пропускную способность. Центральный процессор 101 может быть обеспечен, имеющий более одного ядра, и таким образом, дополнительную кэш-память 102 и 104 уровня 1 и уровня 2. Флэш-ROM 106 может хранить выполнимый код, который загружается во время начальной фазы процесса загрузки, когда мультимедийная консоль 100 включается.
[0071] Блок 108 обработки графики (GPU) и видео кодер / видео кодек (кодер/декодер) 114 формируют конвейер обработки видео для обработки графики с высокой скоростью и с высоким разрешением. Данные передают из блока 108 обработки графики на видео кодер / видео кодек 114 через шину. Конвейер обработки видео выводит данные к A/V (А/В, аудио/видео) порту 140 для передачи к телевизору или другому дисплею. Контроллер 110 памяти связан с GPU 108, чтобы облегчить доступ процессора к различным типам памяти 112, такой как, но не ограниченной ею, RAM (память с произвольным доступом).
[0072] Мультимедийная консоль100 включает в себя контроллер 120 ввода / вывода, контроллер 122 управления системой, блок 123 обработки аудио, контроллер 124 сетевого интерфейса, первый USB хост контроллер 126, второй USB контроллер 128 и подузел 130 ввода / вывода передней панели, которые предпочтительно реализованы на модуле 118. Контроллеры USB 126 и 128 служат в качестве хостов для периферийных контроллеров 142(1)-142(2), беспроводного адаптера 148 и устройства внешней памяти 146 (например, флэш-память, внешней накопитель ROM CD/DVD, сменные носители, и т.д.). Сетевой интерфейс 124 и/или беспроводный адаптер 148 обеспечивает доступ к сети (например, Интернет, домашней сети и т.д.) и может быть любым широким разнообразием различных проводных или беспроводных компонентов адаптера, включая карту Ethernet, модем, модуль Bluetooth, кабельный модем и т.п.
[0073] Системная память 143 предоставлена, чтобы хранить данные приложения, которые загружаются во время процесса загрузки. Накопитель 144 мультимедийной информации предоставлен и может содержать накопитель DVD/CD, накопитель на жестких дисках или другой накопитель на сменных носителях и т.д. Накопитель 144 мультимедийной информации может быть внутренним или внешним к мультимедийной консоли 100. К данным приложения можно получить доступ через накопитель 144 мультимедийной информации для осуществления выполнения, воспроизведения и т.д. посредством мультимедийной консоли 100. Накопитель 144 мультимедийной информации связан с контроллером 120 ввода / вывода через шину, такую как последовательная шина ATA или другое высокоскоростное соединение (например, IEEE 1394).
[0074] Контроллер 122 управления системой обеспечивает множество функций обслуживания, относящихся к гарантии доступности мультимедийной консоли 100. Блок 123 обработки аудио и аудио кодек 132 формируют соответствующий конвейер обработки аудио с высокой точностью и стерео обработкой. Аудио данные передаются между блоком 123 обработки аудио и аудио кодеком 132 через коммуникационную линию связи. Конвейер обработки аудио выводит данные к A/V порту 140 для воспроизведения внешним аудиоплеером или устройством, имеющим аудио способности.
[0075] Подузел 130 ввода / вывода передней панели поддерживает функциональные возможности кнопки 150 включения питания и кнопки извлечения 152, так же как любые LED (светоизлучающие диоды) или другие индикаторы, обеспеченные на внешней поверхности мультимедийной консоли 100. Модуль 136 электропитания системы обеспечивает энергию компонентам мультимедийной консоли 100. Вентилятор 138 охлаждает схему в мультимедийной консоли 100.
[0076] Центральный процессор 101, GPU 108, контроллер 110 памяти и различные другие компоненты в мультимедийной консоли 100 связаны через одну или более шин, включая последовательную и параллельную шины, шину памяти, шину периферийных устройств, и процессорную или локальную шину, используя любое множество шинных архитектур. В качестве примера такая архитектура может включать в себя шину соединения периферийных компонентов (PCI), шину PCI-Express и т.д.
[0077] Когда мультимедийная консоль100 включается, приложения могут быть загружены из системной памяти 143 в память 112 и/или кэш-памяти 102, 104 и выполнены в центральном процессоре 101. Приложение может предоставить графический пользовательский интерфейс, который обеспечивает последовательный пользовательский опыт, когда выполняется навигация к различным видам мультимедийной информации, доступным на мультимедийной консоли 100. Во время работы приложения и/или другая мультимедийная информация, содержащиеся в накопителе 144 мультимедийной информации, могут быть запущены или воспроизведены с накопителя 144 мультимедийной информации, чтобы обеспечить дополнительные функциональные возможности мультимедийной консоли 100.
[0078] Мультимедийной консолью 100 можно управлять как автономной системой, просто подсоединяя систему к телевизору или другому дисплею. В этом автономном режиме мультимедийная консоль100 разрешает одному или более пользователям взаимодействовать с системой, смотреть кино или слушать музыку. Однако, с интеграцией возможности широкополосного соединения, сделанной доступной через сетевой интерфейс 124 или беспроводный адаптер 148, мультимедийной консолью 100 можно также управлять как участником большего сетевого сообщества.
[0079] Когда мультимедийная консоль100 включается, установленное количество ресурсов аппаратного обеспечения сохраняют для системного использования посредством операционной системой мультимедийной консоли. Эти ресурсы могут включать в себя резервирование памяти (например, 16 МБ), циклы ЦПУ и GPU (например, 5%), сетевую полосу пропускания (например, 8 КБ), и т.д. Поскольку эти ресурсы сохранены во время загрузки системы, сохраненные ресурсы не существуют с точки зрения приложения.
[0080] В частности, резервирование памяти предпочтительно является достаточно большим, чтобы содержать ядро запуска, параллельные системные приложения и драйверы. Резервирование центрального процессора является предпочтительно постоянным таким образом, что, если зарезервированное использование центрального процессора не используется системными приложениями, поток ожидания будет потреблять любые неиспользованные циклы.
[0081] Относительно резервирования GPU, легковесные сообщения, сгенерированные системными приложениями (например, всплывающими элементами), отображаются посредством использования прерывания GPU, чтобы запланировать код для визуализации всплывающих элементов в оверлейном (накладывающемся) режиме. Объем памяти, требуемой для оверлейного режима, зависит от размера оверлейной области, и наложение предпочтительно масштабируется с разрешением экрана. Когда полный пользовательский интерфейс используется параллельным приложением системы, предпочтительно использовать разрешение, независимое от разрешения приложения. Блок масштабирования может использоваться, чтобы установить это разрешение таким образом, что устраняется необходимость изменять частоту и вызывать повторную синхронизацию телевизора.
[0082] После того как мультимедийная консоль 100 загружена и системные ресурсы зарезервированы, одновременные системные приложения выполняют, чтобы обеспечить функциональные возможности системы. Функциональные возможности системы инкапсулированы в наборе системных приложений, которые выполняются в зарезервированных системных ресурсах, описанных выше. Ядро операционной системы идентифицирует потоки, которые являются потоками системных приложений в зависимости от потоков игровых приложений. Системные приложения предпочтительно планируются для работы на центральном процессоре 101 в заранее определенные времена и интервалы, чтобы обеспечить согласованный вид системных ресурсов приложению. Планирование должно минимизировать разрушение кэш-памяти для игрового приложения, запущенного на консоли.
[0083] Когда одновременно выполняющееся системное приложение требует аудио, обработка аудио планируется асинхронно для игрового приложения из-за чувствительности времени. Администратор приложения мультимедийной консоли (описан ниже) управляет уровнем аудио игрового приложения (например, подавление, пониженный уровень), когда системные приложения являются активными.
[0084] Устройства ввода (например, контроллеры 142(1) и 142(2)) совместно используются игровыми приложениями и системными приложениями. Устройства ввода не являются зарезервированными ресурсами, но должны коммутироваться между системными приложениями и игровым приложением таким образом, что каждое будет иметь фокус устройства. Администратор приложения предпочтительно управляет коммутацией потока ввода без знания о знании игрового приложения, и драйвер поддерживают информацию состояния относительно коммутаторов фокуса. Камеры 26, 28 и устройство 20 захвата могут определять дополнительные устройства ввода для консоли 100.
[0085] Фиг. 4 иллюстрирует другой примерный вариант осуществления вычислительной среды 220, которая может быть вычислительной средой 12, показанной на фиг. 1-2, используемой, чтобы интерпретировать один или более жестов в системе отслеживания, анализа и распознавания цели. Вычислительная системная среда 220 является только одним примером подходящей вычислительной среды и не предназначена, чтобы предложить какое-либо ограничение относительно области использования или функциональных возможностей раскрытого предмета изобретения. Вычислительная среда 220 не должна интерпретироваться как имеющая какую-либо зависимость или требование, касающегося любого или комбинации компонентов, иллюстрированных в образцовой операционной среде 220. В некоторых вариантах осуществления различные изображенные вычислительные элементы могут включать в себя схемы, сконфигурированные, чтобы проиллюстрировать примерами конкретные аспекты настоящего описание. Например, термин «схемы», используемый в настоящем описании, может включать в себя специализированные компоненты аппаратного обеспечения, конфигурируемые, чтобы выполнять функцию(и) программно-аппаратными средствами или переключателями. В других примерных вариантах осуществления термин «схемы» может включать в себя блок обработки общего назначения, память и т.д., конфигурируемые инструкциями программного обеспечения, которые воплощают логику, действующую, чтобы выполнить функцию(и). В примерных вариантах осуществления, где схема включает в себя комбинацию аппаратного обеспечения и программного обеспечения, конструктор может написать исходный текст, воплощающий логику, и исходный текст может быть скомпилирован в машиночитаемый код, который может быть обработан блоком обработки общего назначения. Так как специалист в данной области техники может оценить, что состояние уровня техники достигло точки, где имеются немного различий между аппаратным обеспечением, программным обеспечением, или комбинацией аппаратного обеспечения/программного обеспечения, то выбор аппаратного обеспечения или программного обеспечения, чтобы реализовать конкретные функции, является выбором структуры, оставленным конструктору. Более конкретно, специалист может оценить, что программный процесс может быть преобразован в эквивалентную структуру аппаратного обеспечения, и структура аппаратного обеспечения сама может быть преобразована в эквивалентный программный процесс. Таким образом, выбор реализации аппаратного обеспечения или реализации программного обеспечения является выбором структуры и оставляется конструктору.
[0086] На фиг. 4 вычислительная среда 220 содержит компьютер 241, который обычно включает в себя различные считываемые компьютером носители. Считываемый компьютером носитель может быть любым доступным носителем, к которому может получить доступ компьютер 241, и включают в себя как энергозависимые, так и энергонезависимые носители, сменные и несменные носители. Системная память 222 включает в себя компьютерные носители данных в форме энергозависимой и/или энергонезависимой памяти, такой как память только для считывания (ROM) 223 и память с произвольным доступом (RAM) 260. Базовая система ввода/вывода 224 (BIOS), которая содержит основные подпрограммы, которые помогают передавать информацию между элементами в пределах компьютера 241, например, во время запуска, обычно хранится в ROM 223. RAM 260 обычно содержит данные и/или программные модули, которые доступны непосредственно для и/или выполняются на блоке 259 обработки. В качестве примера, а не ограничения, фиг. 4 иллюстрирует операционную систему 225, прикладные программы 226, другие программные модули 227 и программные данные 228.
[0087] Компьютер 241 может также включать в себя другие сменные/несменные, энергозависимые/энергонезависимые компьютерные носители данных. В качестве примера только, фиг. 4 иллюстрирует накопитель 238 на жестких дисках, который считывает с или записывает на несменный энергонезависимый магнитный носитель, накопитель 239 на магнитных дисках, который считывает с или записывает на сменный энергонезависимый магнитный диск 254, и накопитель 240 на оптических дисках, который считывает с или записывает на сменный энергонезависимый оптический диск 253, такой как CD-ROM или другие оптические носители. Другие сменные/несменные, энергозависимые/энергонезависимые компьютерные носители данных, которые могут использоваться в примерной операционной среде, включают в себя, но не ограничены ими, кассеты на магнитных лентах, карты флэш-памяти, цифровые универсальные диски, цифровую видеоленту, твердотельную RAM, твердотельную ROM и т.п. Накопитель 238 на жестких дисках обычно связывается с системной шиной 221 через интерфейс несменной памяти, такой как интерфейс 234, и накопитель 239 на магнитных дисках и накопитель 240 на оптических дисках обычно связываются с системной шиной 221 посредством интерфейса сменной памяти, такого как интерфейс 235.
[0088] Накопители и их ассоциированные компьютерные носители данных, описанные выше и проиллюстрированные на фиг. 4, обеспечивают хранение считываемых компьютером инструкций, структур данных, программных модулей и других данных для компьютера 241. На фиг. 4, например, накопитель 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 устройств вывода.
[0089] Компьютер 241 может работать в сетевой среде, используя логические соединения с одним или более удаленными компьютерами, такими как удаленный компьютер 246. Удаленный компьютер 246 может быть персональным компьютером, сервером, маршрутизатором, сетевым PC, одноранговым устройством или другим общим узлом сети, и обычно включает в себя многие или все элементы, описанные выше относительно компьютера 241, хотя только запоминающее устройство хранения 247 было иллюстрировано на фиг. 4. Логические соединения, изображенные на фиг. 2, включают в себя локальную сеть (ЛВС) 245 и глобальную сеть (WAN) 249, но могут также включать в себя другие сети. Такие сетевые среды являются общепринятыми в офисах, компьютерных сетях всего предприятия, интранете и Интернете.
[0090] Когда используется в среде, формирующей ЛВС, компьютер 241 связывается с ЛВС 245 через сетевой интерфейс или адаптер 237. Когда используется в сетевой среде WAN, компьютер 241 обычно включает в себя модем 250 или другое средство для установления связи по WAN 249, такой как Интернет. Модем 250, который может быть внутренним или внешним, может быть связан с системной шиной 221 через пользовательский интерфейс 236 устройств ввода, или другой соответствующий механизм. В сетевой среде программные модули, изображенные относительно компьютера 241 или его части, могут быть сохранены в удаленном запоминающем устройстве хранения. В качестве примера, а не ограничения, фиг. 4 иллюстрирует удаленные прикладные программы 248 как постоянно находящиеся на запоминающем устройстве 247. Понятно, что показанные соединения сети являются примерным и могут использоваться другие средства установления линии связи между компьютерами.
[0091] Считываемый компьютером носитель данных может содержать считываемые компьютером инструкции для модифицирования визуального представления. Инструкции могут содержать инструкции для визуализации визуального представления, приема данных сцены, причем данные включают в себя данные, представляющие жест модификации для пользователя в физическом пространстве, и модификации визуального представления на основании этого жеста модификации пользователя, при этом жест модификации является жестом, который ставится в соответствие к средству управления для модифицирования характеристики визуального представления.
[0092] Фиг. 5 изображает примерное скелетное отображение пользователя, которое может генерироваться из данных изображения, захваченных устройством 20 захвата. В этом варианте осуществления идентифицировано множество суставов и костей: каждая рука 502, каждое предплечье 504, каждый локоть 506, каждый бицепс 508, каждое плечо 510, каждый тазобедренный сустав 512, каждое бедро 514, каждое колено 516, каждая передняя нога 518, каждая ступня 520, голова 522, туловище 524, верхний конец 526 и нижний конец 528 позвоночника, и талия 530. Там где отслежено больше точек, могут быть идентифицированы дополнительные признаки, например, кости и суставы пальцев или пальцев ноги, или индивидуальные признаки лица, такие как нос и глаза.
[0093] Посредством передвижения своего тела пользователь может создавать жесты. Жест содержит движение или позу пользователя, которые могут быть захвачены как данные изображения и проанализированы для установления их значения. Жест может быть динамичным, содержащим движение, такое как имитация броска шара. Жест может быть статической позой, такой как удерживание скрещенных предплечий 504 перед его туловищем 524. Жест может также вовлекать реквизит, например, качание имитацией меча. Жест может вовлекать более чем одну часть тела, такая как хлопок в ладоши 502 вместе, или более тонкое движение, такие как сжатие губ.
[0094] Жесты пользователя могут использоваться для ввода данных в общем вычислительном контексте. Например, различные движения рук 502 или других частей тела могут соответствовать общесистемным широким задачам, таким как те, которые осуществляют навигацию вверх или вниз в иерархическом списке, открывают файл, закрывают файл и сохраняют файл. Например, пользователь может держать свою руку с пальцами, указывающими вверх и ладонью, обращенной к устройству 20 захвата. Он может затем сложить свои пальцы в ладонь, чтобы сделать кулак, и это может быть жестом, который указывает, что окно, на котором сосредоточен фокус в вычислительной среде с основанным на окне пользовательском интерфейсом, должно быть закрыто. Жесты могут также использоваться в конкретном для видеоигры контексте, в зависимости от игры. Например, в игре управления автомобилем различные движения рук 502 и ног 520 могут соответствовать управлению транспортным средством по направлению, переключению передач, ускорению и торможению. Таким образом, жест может указывать широкое разнообразие движений, которые поставлены в соответствие отображенному пользовательскому представлению, и в широком разнообразии приложений, таких как видеоигры, текстовые редакторы, текстовых процессорах, обработке данных и т.д.
[0095] Пользователь может генерировать жест, который соответствует ходьбе или бегу, вместо того, чтобы самому идти или бежать. Например, пользователь может поочередно поднимать и опускать каждую ногу 512-520, чтобы подражать ходьбе без перемещения. Система может проанализировать этот жест, анализируя каждый тазобедренный сустав 512 и каждое бедро 514. Шаг может быть распознан, когда один угол тазобедренный сустав - бедро (который измерен относительно вертикальной линии, в котором стоящая нога имеет угол тазобедренный сустав - бедро равный 0°, и передняя горизонтально вытянутая нога имеет угол тазобедренный сустав - бедро равный 90°), превышает некоторый порог относительно другого бедра. Ходьба или бег могут быть распознаны после некоторого количества последовательных шагов посредством чередования ног. Время между двумя новыми шагами можно понимать как период. После некоторого количества периодов, когда этот пороговый угол не удовлетворен, система может определить, что жест прогулки или бега прекратился.
[0096] При заданном жесте "прогулки или бега" приложение может установить значения для параметров, ассоциированных с этим жестом. Эти параметры могут включать в себя вышеупомянутый пороговый угол, количество шагов, требуемых, чтобы начать жест прогулки или бега, количество периодов, когда шагов не происходит, чтобы закончить жест, и пороговый период, который определяет, является ли жест прогулкой или бегом. Быстрый период может соответствовать бегу, поскольку пользователь будет двигать своими ногами быстро, и более медленный период может соответствовать прогулке.
[0097] Жест может быть ассоциирован с рядом параметров, заданных сначала по умолчанию, которые приложение может корректировать его собственными параметрами. В этом сценарии приложение не вынуждено обеспечивать параметры, но может вместо этого использовать набор параметров по умолчанию, которые позволяют распознать жест в отсутствии определенных приложением параметров. Информация, соотнесенная с жестом, может храниться в целях предварительно записанной анимации.
[0098] Есть множество выходных сигналов, которые могут быть ассоциированы с жестом. Может быть основание "да или нет" относительно того, встречается ли жест. Также может быть уровень достоверности, который соответствует вероятности, что отслеженное движение пользователя соответствует жесту. Это может быть линейным масштабом, который изменяется в числах с плавающей запятой между 0 и 1, включительно. При этом приложение, принимающее эту информацию жеста, не может принять ложные положительные выводы в качестве вводов, оно может использовать только те распознанные жесты, которые имеют высокий уровень достоверности, такой как по меньшей мере 0,95. Когда приложение должно распознать каждый экземпляр жеста, даже за счет ложных положительных выводов, оно может использовать жесты, которые имеют по меньшей мере намного более низкий уровень достоверности, такой как просто больше, чем 0,2. Жест может иметь выходной сигнал в течение времени между двумя недавними шагами, и когда только первый шаг был зарегистрирован, он может быть установлен в сохраненное значение, такое как -1 (так как время между любыми двумя шагами должно быть положительным). Жест может также иметь также выходной сигнал для самого высокого угла бедра, достигнутого во время нового шага.
[0099] Другим примерным жестом является "прыжок с подъемом пятки". При этом пользователь может создать жест, поднимая свои пятки от земли, но удерживая свои пальцы ноги на основании. Альтернативно, пользователь может подпрыгнуть в воздух, когда его ноги 520 полностью отрываются от основания. Система может проанализировать скелет для этого жеста, анализируя угловое отношение плеч 510, тазобедренного сустава 512 и коленей 516, чтобы видеть, находятся ли они в состоянии выравнивания, равного стоянию прямо. Затем эти точки и более верхние 526 и более низкие 528 точки позвоночника могут быть проверены на какое-либо ускорение вверх. Достаточная комбинация ускорения может активировать жест прыжка. Достаточная комбинация ускорения с конкретным жестом может удовлетворить параметрам точки перехода.
[0100] При заданном жесте "прыжок с подъемом пятки" приложение может установить значения для параметров, ассоциированных с этим жестом. Параметры могут включать в себя вышеупомянутый порог ускорения, который определяет, как быстро некоторая комбинация плеч пользователя 510, тазобедренного сустава 512 и коленей 516 должна переместиться вверх, чтобы вызвать жест, так же как максимальный угол выравнивания между плечами 510, тазобедренными суставами 512 и коленями 516, при котором все еще может быть активирован прыжок. Выходные сигналы могут содержать уровень достоверности, а также угол тела пользователя во время прыжка.
[0101] Установление параметров для жеста на основании особенностей приложения, которое будет принимать жест, важно для точной идентификации жестов. Должным образом идентифицированные жесты и намерение пользователя очень помогают в создании положительного пользовательского опыта.
[0102] Приложение может установить значения для параметров, ассоциированных с различными точками перехода, чтобы идентифицировать точки, чтобы использовать предварительно записанные анимации. Точки перехода могут быть определены различными параметрами, такими как идентификационная информация конкретного жеста, скорости, угла цели или объекта, или любой их комбинации. Если точка перехода определена, по меньшей мере частично, идентификационной информацией конкретного жеста, то правильная идентификация жестов помогает повысить уровень достоверности, что параметры точки перехода были удовлетворены.
[0103] Другой параметр для жеста может быть пройденным расстоянием. Когда жесты пользователя управляют действиями аватара в виртуальной среде, этот аватар может быть длиной руки от шара. Если пользователь желает взаимодействовать с шаром и захватывать его, это может потребовать, чтобы пользователь вытянул свою руку 502-510 на полную длину, делая жест захвата. В этой ситуации аналогичный жест захвата, когда пользователь только частично вытягивает свою руку 502-510, может не достигать результата взаимодействия с шаром. Аналогично, параметр точки перехода может быть идентификационной информацией жеста захвата, в которой, если пользователь только частично вытягивает свою руку 502-510, таким образом не достигая результата взаимодействия с шаром, жест пользователя также не будет удовлетворять параметрам точки перехода.
[0104] Жест или его часть могут иметь в качестве параметра объем пространства, в котором он должен произойти. Этот объем пространства может обычно выражаться относительно тела, когда жест содержит движение тела. Например, жест броска в футболе для пользователя-правши, может быть распознан только в объеме пространства не ниже правого плеча 510a, и на той же самой стороне головы 522, что бросающая рука 502a-310a. Может не быть необходимым определять все границы объема, например, для этого жеста броска, когда внешняя граница, удаленная от тела, остается неопределенной, и объем простирается неопределенно, или к краю сцены, которая контролируется.
[0105] Фиг. 6A и 6B изображают систему 600, которая может содержать устройство 608 захвата, вычислительное устройство 610 и устройство 612 отображения. Например, устройство 608 захвата, вычислительное устройство 610 и устройство 612 отображения может каждое содержать любое подходящее устройство, которое выполняет желательные функциональные возможности, такие как устройства, описанные со ссылками на фиг. 1-5. Предполагается, что единственное устройство может выполнить все функции в системе 600, или любая комбинация подходящих устройств может выполнить желательные функции. Например, вычислительное устройство 610 может обеспечить функциональные возможности, описанные относительно вычислительной среды 12, показанной на фиг. 2, или компьютера на фиг. 3. Как показано на фиг. 2, вычислительная среда 12 может включать в себя устройство отображения и процессор. Вычислительное устройство 610 может также содержать свой собственный компонент камеры или может быть соединено с устройством, имеющим компонент камеры, такой как устройство 608 захвата.
[0106] В этих примерах камера 608 глубины захватывает сцену в физическом пространстве 601, в котором присутствует пользователь 602. Камера 608 глубины обрабатывает информацию глубины и/или предоставляет информацию глубины на компьютер, такой как компьютер 610. Информация глубины может быть интерпретирована для отображения визуального представления пользователя 602. Например, камера 608 глубины или, как показано, вычислительное устройство 610, к которому она подсоединена, может выводить данные на дисплей 612. Частота, с которой кадры данных изображения захватываются и показываются, может определить уровень непрерывности отображенного движения визуального представления. Хотя дополнительные кадры данных изображения могут быть захвачены и показаны, кадры, изображенные в каждой из фиг. 6A и 6B, выбраны в целях примера. Также следует отметить, что визуальное представление может иметь другую цель в физическом пространстве 601, например, другой пользователь или нечеловеческий объект, или визуальное представление может быть частичным или полностью виртуальным объектом.
[0107] Способы, представленные здесь, раскрывают способность системы автоматически генерировать визуальное представление цели, которая имеет признаки, напоминающие обнаруженные признаки цели. Альтернативно, система может обеспечить поднабор выбираемых признаков, из которых может осуществлять выбор пользователь. Система может выбрать признаки на основании обнаруженных признаков цели, и применить эти выборы к визуальному представлению цели. Альтернативно, система может осуществлять выборы, которые сужают количество опций, из которых выбирает пользователь. Пользователю может не требоваться принимать так много решений или не должен выбрать из таких многих опций, если система может принять решения из имени пользователя. Таким образом, раскрытые способы могут удалить большое количество усилий пользователя. Например, система может осуществлять выбор от имени пользователя и применять их к визуальному представлению пользователя.
[0108] Как показано на фиг. 6A, система визуализирует визуальное представление 603, которое соответствует пользователю 602 в физическом пространстве 601. В этом примере система автоматически сгенерировала визуальное представление 603, посредством обнаружения признаков пользователя 602, сравнивая обнаруженные признаки с библиотекой опций признаков, выбирая опции признаков, которые напоминают обнаруженные признаки пользователя 602, и автоматически применяя их к визуальному представлению пользователя 603. Автоматическое генерирование визуального представления снимает работу с пользователя 602 и создает волшебный опыт для пользователя 602, поскольку они легко транспортируются в опыт приложения или игру.
[0109] Также раскрытые способы для отображения визуального представления в режиме реального времени и обновления выборов признаков, примененных к визуальному представлению в режиме реального времени. Система может отследить пользователя в физическом пространстве во времени и применить модификации или обновления признаков, примененных к визуальному представлению, также в режиме реального времени. Например, система может отследить пользователя и идентифицировать, что пользователь снял трикотажную футболку. Система может идентифицировать движения тела пользователя и распознать изменение в типе и цвете одежды для пользователя. Система может использовать любую из идентифицированных характеристик пользователя, чтобы помочь в процессе выбора признака и/или обновления признаков, выбранных из библиотеки признаков, и примененных к визуальному представлению. Таким образом, снова система может легко транспортировать пользователя в опыт приложения и обновить визуальное представление, чтобы соответствовать, в режиме реального времени, обнаруженным признакам пользователя, когда они могут измениться.
[0110] В примерном варианте осуществления, чтобы обнаружить признаки пользователя и использовать обнаруженные признаки для выбора вариантов для признаков визуального представления, система может генерировать модель пользователя. Чтобы сгенерировать модель, устройство захвата может захватывать изображение сцены и сканировать цели или объекты в сцене. Согласно одному варианту осуществления данные изображения могут включать в себя изображение глубины или изображение от камеры 608 глубины и/или камеры RGB, или изображение на любом другом детекторе. Система 600 может захватывать информацию глубины, информацию изображения, данные RGB и т.д. из этой сцены. Чтобы определить, соответствуют ли цель или объект в сцене цели-человеку, каждая из целей может быть «залита» цветом и сравнена с шаблоном модели человеческого тела. Каждая цель или объект, который соответствует человеческому шаблону, могут быть просканированы, чтобы сгенерировать модель, такую как скелетная модель, модель закрашивания заливкой, сеточную модель человека или аналогичное, ассоциированное с ним. Скелетная модель может быть затем предоставлена вычислительной среде для того, чтобы отследить скелетную модель, и визуализировать аватар, ассоциированный со скелетной моделью.
[0111] Данные изображения и/или информация глубины могут использоваться, чтобы идентифицировать признаки цели. Такие признаки цели для цели-человека могут включать в себя, например, рост и/или длину рук, и могут быть получены на основании, например, сканирования тела, скелетной модели, протяженность пользователя 602 в пиксельной области или на основании любого другого подходящего процесса или данных. Используя например, значения глубины во множестве наблюдаемых пикселей, которые ассоциированы с целью-человеком и протяженность одного или более аспектов цели-человека, таких как рост, ширина головы, или ширина плеч, или аналогичное, может быть определен размер цели-человека. Камера 608 может обработать данные изображения и использовать их, чтобы определить форму, цвет и размер различных частей пользователя, включая волосы пользователя, одежду и т.д. Обнаруженные признаки могут быть сравнены с каталогом опций признаков для приложения для визуального представления, таких как опции признаков визуального представления в библиотеке 197 признаков.
[0112] В другом примерном варианте осуществления, чтобы идентифицировать характеристики пользователя и использовать идентифицированные характеристики, чтобы выбрать признаки визуального представления, система может использовать способы оцифровывания цели, такие как описаны со ссылками на фиг. 2. Эти способы содержат идентификацию поверхностей, текстур и измерений объекта из облаков неорганизованных точек, полученных из устройства захвата, таких как устройство восприятия глубины. Использование оцифровывания цели может содержать извлечение поверхности, идентификацию точек в облаке точек, пометку нормалей к поверхностям, вычисление свойств объекта, отслеживание изменений в свойствах объекта в течение времени, и увеличение достоверности в границах объекта и идентичности, когда дополнительные кадры захвачены. Например, облако точек для точек данных, относящихся к объектам в физическом пространстве, может быть принято или наблюдаться. Облако точек затем может быть проанализировано, чтобы определить, включает ли облако точек в себя объект. Коллекция облаков точек может быть идентифицирована как объект и объединена вместе, чтобы представить единственный объект. Поверхность облаков точек может быть извлечена из идентифицированного объекта.
[0113] Любой известный способ или способ, раскрытый здесь, который обеспечивает способность сканировать известный/неизвестный объект, сканировать человека, и сканировать второстепенные аспекты в сцене (например, этажи, стены) могут использоваться, чтобы обнаружить признаки цели в физическом пространстве. Данные сканирования для каждого, которые могут включать в себя комбинацию глубины и данных RGB, могут использоваться, чтобы создать трехмерную модель объекта. Данные RGB применяют к соответствующей области модели. Временное отслеживание от кадра к кадру может повысить достоверность и адаптировать данные объекта в реальном времени. Таким образом, свойства объекта и отслеживание изменений в свойствах объекта в течение времени могут использоваться, чтобы надежно отслеживать объекты, которые изменяются в позиции и ориентации от кадра к кадру в режиме реального времени. Устройство захвата захватывает данные с интерактивными частотами, увеличивая точность данных и позволяя раскрытым способам обработать необработанные данные глубины, оцифровать объекты в сцене, извлечь поверхность и текстуру объекта, и выполнить любой из этих способов в реальном времени таким образом, что отображение может обеспечить описание сцены в реальном времени.
[0114] Технология распознавания камерой может использоваться, чтобы определить, какие элементы в библиотеке 197 признаков наиболее близко напоминают (похожи на) характеристики пользователя 602. Система может использовать способы распознавания лица и/или распознавания тела, чтобы обнаружить признаки пользователя 602. Например, система может обнаружить признаки пользователя на основании генерировании моделей из данных изображения, данных облаков точек, данных глубины, или аналогичного. Сканирование лица может иметь место, и система может обработать данные, захваченные относительно лицевых признаков пользователя и данных RGB. В примерном варианте осуществления, основанном на местоположении пяти ключевых точек данных (то есть, глаза, угловые точки рта, и нос), система предлагает рекомендацию лица для игрока. Рекомендация лица может включать в себя по меньшей мере один выбранный лицевой признак, весь набор лицевых признаков, или это может быть суженным поднабором опций для лицевых признаков из библиотеки 197 признаков. Система может выполнить способы распознавания тела, идентифицируя различные части/типы тела, исходя из сканирования тела. Например, сканирование тела пользователя может обеспечить предложение для роста пользователя. Для любого из этих сканирований пользователь может быть запрошен постоять в физическом пространстве в позиции, которая предусматривает лучшие результаты сканирования.
[0115] Другие признаки могут быть обнаружены из захваченных данных. Например, система может обнаружить данные цвета и данные одежды, анализируя пользователя и/или модель пользователя. Система может рекомендовать одежду для пользователя на основании идентичности этих пользовательских характеристик. Рекомендации одежды могут быть основаны на одежде в туалете пользователя или одежды, доступной для покупки на виртуальном мировом рынке. Например, пользователь может иметь персональный туалет с хранилищем элементов, принадлежащих и ассоциированных с конкретным визуальным представлением. Персональный туалет может содержать интерфейс для того, чтобы позволить пользователю рассматривать и изменять одежду и другие элементы, которые применены к визуальному представлению пользователя. Например, аксессуары, ботинки, и т.д., могут быть модифицированы. Пол пользователя может быть определен на основании захваченных данных или в результате доступа к профилю, ассоциированному с пользователем.
[0116] Система может обнаружить по меньшей мере один из признаков пользователя и выбрать признак из библиотеки 197 признаков, который является представительным для обнаруженного признака. Система может автоматически применить выбранный признак к визуальному представлению пользователя 603. Таким образом, визуальное представление пользователя 603 имеет образ пользователя, как выбрано системой. Например, способы извлечения признаков могут соответствовать лицевым признакам пользователя, и опции признаков, выбранные из библиотеки признаков, могут использоваться, чтобы создать представление анимации пользователя. Визуальное представление 603 автоматически генерируется с выбранными признаками из библиотеки признаков, которые напоминают обнаруженные признаки пользователя, но в этом примере визуальное представление является версией анимации пользователя 602. Визуальное представление имеет версию анимации волос, глаз, носа, одежды (например, джинсы, жакет, ботинки), позиции и типа тела и т.д. пользователя 602. Система может представить визуальное представление 603 пользователю 602, который создан, посредством применения признаков и визуализируя автоматически сгенерированное визуальное представление 603. Пользователь 602 может модифицировать автоматически сгенерированное визуальное представление 603 или продолжить делать выборы для приложения для визуального представления.
[0117] Визуальное представление пользователя, обнаруженного в физическом пространстве 601, может также принимать альтернативные формы, такие как анимация, персонаж, аватар или аналогичное. Примером визуального представления, показанного на фиг. 6B, является пример персонажа 605 обезьяны. Пользователь 602 может выбрать из множества моделей из хранилища, которые предоставлены системой или приложением, для представления на экране пользователя. Например, в приложении игры в бейсбол, модели из хранилища, доступные для визуального представления пользователя 602, могут включать в себя представление известного игрока в бейсбол к части конфеты или слона к причудливому персонажу или символу, такому как символ курсора или руки. В примере, показанном на фиг. 6B, персонаж обезьяны 605 может быть представлением модели из хранилища, предоставленным системой или приложением. Модель из хранилища может быть специфической для приложения, например, упакована с программой, или модель из хранилища может быть доступной для приложений или доступной для всей системы.
[0118] Визуальное представление может быть комбинацией 602 признаков пользователя и анимацией или моделью из хранилища. Например, представление 605 обезьяны может быть инициализировано из модели из хранилища для обезьяны, но различные признаки обезьяны могут быть модифицированы признаками, которые напоминают пользователя, как выбрано системой 600 из каталога опций признаков, таких как те, что в библиотеке 197 признаков. Система может инициализировать визуальное представление моделью из хранилища, но затем возобновить обнаружение признаков пользователя, сравнивать обнаруженные признаки с библиотекой 197 признаков, выбирать признаки, которые напоминают пользователя, и применять выбранные признаки к персонажу 605 обезьяны. Таким образом, обезьяна 605 может иметь тело обезьяны, но иметь лицевые признаки пользователя, такие как брови, глаза, и нос. Выражения лица пользователя, позиция тела, произнесенные слова или любая другая обнаружимая характеристика могут быть применены к виртуальной обезьяне 605 и модифицированы, если это применимо. Например, пользователь хмурится в физическом пространстве. Система обнаруживает это выражение лица, выбирает хмурый взгляд из библиотеки признаков, который наиболее близко напоминает хмурый взгляд пользователя, и применяет выбранный хмурый взгляд к обезьяне таким образом, что виртуальная обезьяна также хмурится. Далее, обезьяна сидит в позиции, аналогичной пользователю, за исключением модификации, чтобы соответствовать типу и размеру тела обезьяны в этой позиции. Система 600 может сравнить обнаруженные признаки типа тела цели с библиотекой 197 признаков, которая хранит коллекцию возможных признаков визуального представления типа тела. Система может выбрать признаки из поднабора признаков обезьяны в библиотеке признаков. Например, приложение может обеспечить специфические для обезьяны опции признаков в библиотеке признаков, чтобы соответствовать выбору персонажа обезьяны модели из хранилища, предварительно упакованного с приложением. Система или пользователь могут выбрать из опций для специфических для обезьяны признаков, которые наиболее близко напоминают обнаруженные признаки пользователя.
[0119] Может быть желательно, чтобы система обеспечила поднабор признаков из библиотеки 197 признаков. Например, больше одной опции в библиотеке 197 признаков может напоминать обнаруженный признак пользователя. Система может обеспечить малый поднабор признаков, из которых пользователь выбирает. Вместо пользователя, вручную выбирающего из десятков, сотен, даже тысячи опций признаков, система может обеспечить суженный поднабор опций. Например, фиг. 7 изображает систему 600, которая показана на фиг. 6A и 6B. На отображении 612 система показывает примерный набор опций признаков для волос визуального представления, опции 1-10. На фиг. 6A система автоматически выбрала опцию #5 волос для приложения для визуального представления пользователя. В примере, показанном на фиг. 7, однако, система выбрала поднабор опций 702 волос, которые наиболее близко напоминают обнаруженные признаки волос пользователя. Таким образом, пользователь может выбрать из поднабора опций 702 для приложения для визуального представления пользователя.
[0120] В этом примере поднабор опций 702 признаков для волос может включать в себя выборы, которые наиболее близко напоминают признаки пользователя, обнаруженные из сканирования тела и лица, включая форму, цвет и тип волос пользователя. Вместо огромного количества опций волос для выбора система может обеспечить меньший список опций для опций волос, которые наиболее близко напоминают форму, цвет и тип волос пользователя. Система может автоматически генерировать визуальное представление, но может быть также разработана, чтобы обеспечить больше чем одну опцию, из которых может выбирать пользователь, так чтобы пользователь мог сделать детализированные окончательные выборы между опциями признаков, которые более всего нравятся пользователю. Поднабор опций уменьшает потребность пользователя оценивать все опции.
[0121] Пользователь или приложение может иметь параметры настройки для модифицирования некоторых признаков, которые соответствуют характеристикам пользователя, прежде чем применить их к визуальному представлению. Например, система может обнаружить некоторый весовой диапазон для пользователя на основании захваченных данных (например, тип/размер тела). Однако, пользователь может установить, или само приложение может иметь, набор значений по умолчанию таким образом, что пользователь отображается в пределах некоторого весового диапазона, а не весового диапазона фактического пользователя. Таким образом, более лестное визуальное представление может быть показано для пользователя, а не то, в котором может весить больше нормы, например. В другом примере могут быть обнаружены лицевые признаки пользователя, и эти признаки, примененные к визуальному представлению пользователя, могут соответствовать обнаруженным признакам таким образом, что лицевые признаки визуального представления напоминают признаки пользователя по размеру, пропорции, пространственной компоновке относительно головы или аналогичному. Пользователь может модифицировать реалистические эффекты лицевых способов распознавания посредством изменения признаков. Например, пользователь может модифицировать признаки посредством изменения скользящего масштаба. Пользователь может сделать изменения к скользящему масштабу, чтобы модифицировать вес для применения к визуальному представлению, или изменить размер носа, который должен быть применен к визуальному представлению. Таким образом, некоторые признаки, выбранные системой, могут быть применены, другие могут быть модифицированы и затем применены.
[0122] Некоторые характеристики цели, обнаруженные системой, могут быть модифицированы для отображения. Например, характеристики цели могут быть модифицированы, чтобы соответствовать форме визуального представления, приложения, статуса приложения, и т.д. Например, некоторые характеристики могут не соответствовать непосредственно визуальному представлению пользователя, когда визуальное представление является причудливым персонажем. Любому визуальному представлению пользователя, такому как аватар 603, или представлению персонажа пользователя, такому как обезьяна 605, можно дать пропорции тела, например, которые аналогичны пользователю 602, но модифицированы для конкретного персонажа. Например, представлению 605 обезьяны можно дать рост, который аналогичен пользователю 602, но руки обезьяны могут быть пропорционально более длинными, чем руки пользователя. Движение рук обезьяны 605 могут соответствовать движению рук пользователя, как идентифицировано системой, но система может модифицировать анимацию рук обезьяны, чтобы отразить способ, которым переместились бы руки обезьяны.
[0123] Система может использовать захваченные данные, такие как сканированные данные, данные изображения или информация глубины, чтобы идентифицировать другие характеристики цели. Характеристики цели могут содержать любые другие признаки цели, такие как: размер, тип и цвет глаз; длина, тип и цвет волос; цвет кожи; одежда и цвета одежды. Например, цвета могут быть идентифицированы на основании соответствующего изображения RGB. Система может также поставить эти обнаружимые признаки в соответствие визуальному представлению. Например, система может обнаружить, что пользователь носит очки и надел красную рубашку и надел очки, и система может надеть очки и красную рубашку на виртуальную обезьяну 605, которая в этом примере является визуальным представлением пользователя.
[0124] Информация глубины и характеристики цели могут быть также объединены с дополнительной информацией, включая, например, информацию, которая может быть ассоциирована с конкретным пользователем 602, таким как конкретный жест, информацию распознавания голоса, или аналогичное. Модель может быть затем подана на вычислительное устройство 610 таким образом, что вычислительное устройство 610 может отследить модель, визуализировать визуальное представление, ассоциированное с моделью, и/или определить, какое средство управления выполнить при исполнении приложения на вычислительном устройстве 610 на основании, например, модели.
[0125] Фиг. 8 показывает примерный способ обеспечения выборов признака пользователю. Обеспечение выборов признаков может быть предоставлено посредством отображения визуального представления с примененными признаками или поднабора библиотеки признаков с суженным поднабором опций, из которых может выбирать пользователь. Например, на этапе 802 система принимает данные из физического пространства, которое включает в себя цель, такую как пользователь или объект - не человек.
[0126] Как описано выше, устройство захвата может захватывать данные сцены, такие как изображение глубины сцены и цели сканирования в сцене. Устройство захвата может определить, соответствует ли одна или более целей в сцене цели-человеку, такой как пользователь. Например, чтобы определить, соответствуют ли цель или объект в сцене цели-человеку, каждая из целей может быть закрашена «заливкой» и сравнена с образцом модели человеческого тела. Каждая цель или объект, которые соответствую модели человеческого тела, могут быть затем сканированы, чтобы сгенерировать скелетную модель, ассоциированную с ним. Например, цель, идентифицированная как человек, может быть сканирована, чтобы сгенерировать скелетную модель, ассоциированную с ним. Скелетная модель может быть затем предоставлена вычислительной среде для того, чтобы отслеживать скелетную модель, и визуализировать визуальное представление, ассоциированное со скелетной моделью. На этапе 804 система может преобразовать захваченные данные, чтобы идентифицировать признаки целей в физическом пространстве посредством использования любого подходящего способа, такого как сканирование тела, модели облака точек, скелетные модели, способы закрашивания заливкой или аналогичные.
[0127] На этапе 806 система может обнаружить характеристики цели и сравнить их с опциями признаков, такими как опции признаков в библиотеке признаков. Опции признаков могут быть коллекцией опций для различных признаков цели. Например, опции признаков для пользователя могут включать в себя варианты бровей, варианты волос, варианты носа и т.д. Опции признаков для мебели в комнате могут включать в себя варианты размера, варианты формы, варианты аппаратного обеспечения и т.д.
[0128] В примерном варианте осуществления система может обнаружить несколько признаков, доступных для приложения, для визуального представления, которые напоминают обнаруженные признаки пользователя. Таким образом, на этапе 806 система может обнаружить признак пользователя, сравнить обнаруженный признак с библиотекой 197 признаков для приложения для визуального представления пользователя, и на этапе 810 система может выбрать поднабор опций признаков на основании обнаруженного признака. Система может выбрать поднабор в качестве этих признаков посредством сравнения общих черт признаков в библиотеке 197 признаков с обнаруженными характеристиками пользователя. Иногда признак будет очень подобен, но система может все еще предоставить пользователю поднабор опций для выбора на этапе 810. В этом способе пользователь может выбрать признак из поднабора, который по меньшей мере аналогичен соответствующей характеристике пользователя, но может выбрать более лестный признак из этого подмножества, например. Система может принять выбор пользователя из поднабора опций на этапе 812. Таким образом, пользователь не должен фильтровать всю библиотеку опций для конкретного признака признаков, которые аналогичны пользователю. Система может фильтровать библиотеку опций и предоставить пользователю поднабор признаков для выбора.
[0129] Система может автоматически генерировать визуальное представление пользователя на этапе 814. Таким образом, при сравнении обнаруженных признаков цели с вариантами в библиотеке признаков система может автоматически генерировать визуальное представление цели, автоматически выбирая признаки, чтобы применить к визуальному представлению. Цель легко транспортируется в систему или опыт программного обеспечения, когда система автоматически визуализирует визуальное представление, которое соответствует пользователю, автоматически выбрав признаки из библиотеки признаков, которые напоминают обнаруженные признаки цели.
[0130] Визуальное представление может иметь комбинацию автоматически выбранных признаков и признаков, выбранных пользователем, на основании поднабора опций, предоставленных системой. Таким образом, визуальное представление может частично генерироваться и частично настраиваться пользователем.
[0131] Выборы, сделанные системой и/или пользователем, могут быть применены к визуальному представлению цели на этапе 816. Система может визуализировать визуальное представление пользователю. На этапе 818 система может продолжить контролировать цель в физическом пространстве, отслеживая обнаружимые признаки цели в течение времени. Модификации к визуальному представлению цели могут быть сделаны в режиме реального времени, чтобы отразить любые изменения к обнаруженным признакам цели. Например, если целью является пользователь, и пользователь снимает трикотажную рубашку в физическом пространстве, система может обнаружить новый стиль и/или цвет рубашки, и автоматически выбрать опцию из библиотеки признаков, которая близко напоминает рубашку пользователя.
Выбранная опция может быть применена к визуальному представлению пользователя в режиме реального времени. Таким образом, обработка на предыдущих этапах может быть выполнена в режиме реального времени таким образом, что отображение соответствует физическому пространству в режиме реального времени. В этом способе объект, пользователь или движение в физическом пространстве могут быть преобразованы для отображения в режиме реального времени так, что пользователь может взаимодействовать с выполняющимся приложением в режиме реального времени.
[0132] Обнаруженные признаки пользователя, выбранные системой признаки и любые выбранные признаки пользователем могут стать частью профиля на этапе 822. Профиль может быть специфическим для конкретного физического пространства или пользователя, например. Данные аватара, включая признаки пользователя, могут стать частью профиля пользователя. К профилю можно получить доступ после входа пользователя в сцену захвата. Если профиль соответствует пользователю на основании пароля, выбора пользователем, размера тела, распознавания голоса или аналогичного, то профиль может использоваться при определении визуального представления пользователя. Данные истории для пользователя могут быть проконтролированы, сохраняя информацию в профиль пользователя. Например, система может обнаружить признаки, специфические для пользователя, такие как признаки лица, типы тела пользователя и т.д. Система может выбрать признаки, которые напоминают обнаруженные признаки приложения, для визуального представления цели и для сохранения в целевом профиле.
[0133] Фиг. 9 изображает примерную систему 600 согласно фиг. 6, которая может обработать информацию, принятую для целей в физическом пространстве 601, и идентифицировать цели, используя способы оцифровывания цели. Захваченные цели могут быть поставлены в соответствие визуальным представлениям этих целей в виртуальной среде. В этом примере физическая сцена включает в себя шар 102, коробку 104, штору 106, лестничный поручень 108, стену #1 110, стену #2 112 и пол 115, которые показаны в физическом пространстве, изображенном на фиг. 1. Далее в сцене показан пользователь 602. В примерном варианте осуществления система 10 может распознать, проанализировать и/или отследить любой из этих объектов 102, 104, 106, 108, 110, 112 и 115, так же как другие цели, такие как цель-человек, такую как пользователь 602. Система 10 может собрать информацию, относящуюся к каждому из объектов 102, 104, 106, 108, 110, 112 и 114, и/или жестам пользователя 602 в физическом пространстве. Пользователь в физическом пространстве, такой как пользователь 602, может также войти в физическое пространство.
[0134] Цель может быть любым объектом или пользователем в физическом пространстве 601. Например, устройство 608 захвата может сканировать человеческий 602 или нечеловеческий объект, такие как шар 607, картонная коробка 609 или собака 605 в физическом пространстве 601. В этом примере система 600 может захватывать цель, просматривая физическое пространство 601 с использованием устройства 608 захвата. Например, камера 608 глубины может принять необработанные данные глубины. Система 600 может обработать необработанные данные глубины, интерпретировать данные глубины как данные облака точек, преобразовать данные облака точек в нормали к поверхности. Например, буфер глубины может быть захвачен и преобразован в упорядоченное облако точек.
[0135] Буфер глубины может быть буфером, который записывает глубины каждого пикселя, который визуализирован. Буфер глубины может хранить записи дополнительных пикселей, когда они визуализированы и определяют соотношения между глубинами различных пикселей, которые визуализированы. Например, буфер глубины может выполнить удаление скрытых поверхностей и сравнивать каждый пиксель, который должен быть визуализирован, с пикселем уже в буфере кадров в этой позиции. Также называемый z-буфером, буфер глубины может составить буфер кадров, который хранит меру расстояния от устройства захвата до каждой видимой точки в захваченном изображении.
[0136] На основании идентифицированных облаков точек и нормалей к поверхности система 600 может пометить объекты, проанализированные в сцене, убрать шум и вычислить ориентацию для каждого из объектов. Ограничивающий прямоугольник может быть сформирован вокруг объекта. Объект может быть затем отслежен от кадра к кадру для извлечения текстуры.
[0137] Согласно одному варианту осуществления данные изображения могут включать в себя изображение глубины или изображение от камеры глубины и/или камеры RGB, или изображение на любом другом детекторе. Например, камера 608 может обработать данные изображения и использовать их, чтобы определить форму, цвета и размер цели. В этом примере цели 602, 102, 104, 106, 108, 110, 112 и 114 в физическом пространстве 601 захвачены камерой 608 глубины, который обрабатывает информацию глубины и/или предоставляет информацию глубины на компьютер, такой как компьютер 610.
[0138] Информация глубины может быть интерпретирована для отображения визуального представления на дисплее 612. Система может использовать эту информацию, чтобы выбрать опции из библиотеки 197 признаков, чтобы сгенерировать виртуальные объекты для соответствия целям в физическом пространстве. Каждая цель или объект, который соответствует человеческому шаблону, могут быть сканированы, чтобы сгенерировать модель, такую как скелетная модель, сеточная модель человека или аналогичную, ассоциированную с ним. Каждая цель или объект, который соответствует библиотеке известных объектов, могут быть сканированы, чтобы сгенерировать модель, которая доступна для этого конкретного объекта. Неизвестные объекты могут быть также сканированы, чтобы сгенерировать модель, которая соответствует данным облака точек, данным RGB, нормалям к поверхностям, ориентации, ограничивающему прямоугольнику, и любой другой обработке необработанных данных глубины, которые соответствуют неизвестному объекту.
[0139] Частота, с которой кадры данных изображения захватываются и отображаются, определяет уровень непрерывности отображения визуального представления, поскольку цели могут перемещаться в физическом пространстве. Далее, с течением времени количество изображений от кадра к кадру может увеличить достоверность способа, которым данные облака точек анализируются (разбираются) в отдельно помеченные объекты. Движение объекта может дать дальнейшую информацию глубины относительно нормалей к поверхности и ориентации. Система 600 может быть в состоянии также отличить шум от желательных данных точек. Система 600 может также идентифицировать жест от движений пользователя 602, оценивая позиции 602 пользователя в единственном кадре данных захвата или по ряду кадров.
[0140] Система 600 может отследить любую из целей 602, 102, 104, 106, 108, 110, 112 и 114 в физическом пространстве 601 таким образом, что визуальное представление на дисплее 612 ставится в соответствие целям 602, 102, 104, 106, 108, 110, 112 и 114, и движениям любой из этих целей, захваченной в физическом пространстве 601. Объект в физическом пространстве может иметь характеристики, которые устройство захвата может захватывать и сканировать, чтобы сравнить с опциями признаков в библиотеке признаков, такой как библиотека 197 признаков, показанная на фиг. 2. Система может выбрать признаки из библиотеки признаков, которые наиболее близко напоминают обнаруженные признаки цели.
[0141] Раскрыты способы для компьютерного зрения, которые принадлежат реализации оцифровывания цели. Эти способы могут использоваться, чтобы позволить системе сравнивать признаки, захваченные с высокой точностью, чтобы обеспечить лучший выбор признаков из библиотеки признаков, которые напоминают признаки цели. Компьютерное зрения является понятием понимания содержимого сцены посредством создания моделей объектов в физическом пространстве из захваченных данных, таких как необработанные данные глубины или изображения. Например, эти способы могут включать в себя извлечение поверхности, интерпретацию точек в облаке точек на основании близости, чтобы восстановить нормаль поверхности, вычисление свойств объекта, отслеживание свойства объекта в течение времени, увеличение достоверности при идентификации объекта и формы в течение времени, и сканирование человека или известных/неизвестных объектов.
[0142] Устройство захвата может сканировать физическое пространство и принять данные диапазона относительно различных объектов в физическом пространстве 601. Сканирование может включать в себя сканирование поверхности объекта или сканирование всего тела. Беря необработанные данные глубины в форме двумерного буфера глубины, любое подходящее вычислительное устройство может интерпретировать большое количество точек на поверхности объекта и выводить облако точек. Облако точек может быть набором точек данных, определенных в трехмерной системе координат, таких как точки данных, определенные координатами x, y и z. Данные облака точек могут представлять видимые поверхности объектов в физическом пространстве, которое было сканировано. Таким образом, объект может быть оцифрован посредством представления объектов в сцене в качестве дискретного набора точек. Данные облака точек могут быть сохранены в файле данных как двумерный набор данных.
[0143] Данные диапазона могут быть захвачены в режиме реального времени, используя устройство захвата, такое как камера глубины или устройство восприятия глубины. Например, кадры данных могут быть захвачены при частоте по меньшей мере 20 герц, используя устройство восприятия глубины в форме буфера глубины. Данные могут быть интерпретированы в структурированное облако дискретных точек, причем каждая точка может содержать характеристики ассоциированной цели, такие как местоположение, ориентация, нормаль к поверхности, цвет или свойства текстуры. Данные облака точек могут храниться в двумерном наборе данных. Поскольку оптические свойства устройства захвата известны, данные диапазона могут быть спроецированы в полное трехмерное облако точек, которое может таким образом быть сохранено в упорядоченной структуре данных. Трехмерное облако точек может указывать топологию поверхности объекта. Например, соотношения между смежными частями поверхности могут быть определены из соседних точек в облаке. Данные облака точек могут быть преобразованы в поверхность, и поверхность объекта, представленного данными облака точек, может быть извлечена посредством оценки нормалей к поверхности по поверхности данных облака точек. Упорядоченная структура данных может быть аналогичной двумерному буферу глубины.
[0144] Облако точек может содержать ряд точек данных, относящихся к различным объектам в физическом пространстве. Данные облака точек могут быть приняты или наблюдаться устройством захвата, так как описано в данном описании. Облако точек может быть затем проанализировано, чтобы определить, включает ли облако точек в себя объект или набор объектов. Если данные включают в себя объект, может генерироваться модель объекта. Увеличение достоверности в идентификации объекта может произойти, когда кадры захвачены. Обратная связь модели, ассоциированной с конкретным объектом, может генерироваться и предоставлена в реальном времени пользователю. Далее, модель объекта может быть отслежена в ответ на любое движение объекта в физическом пространстве таким образом, что модель может быть настроена, чтобы подражать движению объекта.
[0145] Все это может быть сделано с частотой для обработки и отображения результатов в реальном времени. Отображение в реальном времени относится к отображению визуального представления жеста или отображению визуальной помощи, в котором отображение одновременно или почти одновременно отображается с выполнением жеста в физическом пространстве. Например, частота обновления отображения, при которой система может обеспечить отображение, которое повторяет пользователя и среду пользователя, может быть частотой 20 Гц или выше, при этом незначительные задержки обработки приводят к минимальной задержке отображения или вообще не видима пользователю. Таким образом, реальное время включает в себя любые незначительные задержки, относящиеся к своевременности данных, которые были задержаны на время, которое требуется для автоматической обработки данных.
[0146] Устройство захвата захватывает данные с интерактивными частотами, увеличивая точность данных и позволяя раскрытым способам обработать необработанные данные глубины, оцифровать объекты в сцене, извлечь поверхность и текстуру объекта, и выполнить любой из этих способов в реальном времени таким образом, что отображение может обеспечить описание в реальном времени сцены. Чтобы кластеризовать группы точек в облаке в дискретные объекты в сцене для любого заданного кадра, буфер глубины может быть пройден в линиях сканирования слева направо и затем сверху вниз. Каждая соответствующая точка или кластер точек в облаке могут быть обработаны во время сканирования.
[0147] Камера может захватывать данные глубины и цвета и назначить цвет облаку точек, которые соответствуют данным цвета. Таким образом, камера может интерпретировать данные глубины, чтобы представить физическое пространство в трехмерном виде, когда устройство захвата рассматривает его с точки зрения камеры. Трехмерные данные облака точек могут быть объединены и соединены таким образом, что точки становятся облаком точек, и поднабор точек в облаке может быть помечен как конкретный объект. Из этого помеченного облака точек трехмерные данные могут быть восстановлены для каждого помеченного объекта и соответствующей созданной сеточной модели. Поскольку информация цвета коррелирована с информацией глубины, текстура и поверхность для объекта также могут быть извлечены. Такое оцифровывание цели может быть полезным для игровых приложений или неигровых приложений, таким как операционные системы или программные приложения. Обеспечение обратной связи на устройстве отображения, т.е. в реальном времени относительно захвата и обработки данных глубины, предусматривает полезный интерактивный опыт, такой как игра в игру.
[0148] В примере, изображенном на фиг. 8, стены, потолки и пол находятся в физическом пространстве. Из анализа данных облака точек, полученного из обработки необработанных данных глубины, принятых устройством захвата, таких как данные облака точек, представленные на фиг. 7, система может помечать стены и этажи. Затем, дополнительная информация о физической сцене может быть извлечена, такая как форма комнаты. Используя основную информацию о физическом пространстве, система может выбирать из библиотеки признаков, чтобы генерировать виртуальное пространство, которое соответствует физическому пространству. Например, библиотека признаков может включать в себя рисунки анимации различных признаков, и таким образом автоматически сгенерированное виртуальное пространство может быть версией анимации физического пространства. Однако, версия анимации.
[0149] Информация в буфере глубины может использоваться, чтобы отделить поверхности от объектов, идентифицированных из необработанных данных глубины. Первый проход буфера глубины может использоваться, чтобы вычислить соответствие нормалей для буфера глубины, на основании нормалей к поверхности, выведенных из облака точек. Таким образом, вместо отдельных точек в пространстве, система может выводить направление, на которое указывает поверхность. Система может восстановить нормали к поверхности из буфера глубины и сохранить нормали к поверхности с точками в облаке, с которыми нормали к поверхности ассоциированы. Нормали к поверхности могут использоваться, чтобы идентифицировать формы и контуры объекта. Например, сфера может иметь постепенное постоянное изменение в направлении нормалей по всей поверхности. Нормали к поверхности для различных объектов могут отличаться в различных фильтрах объекта для сравнения с нормалями к поверхности, обнаруженными в сцене.
[0150] Хотя вычисление нормалей к поверхности и вычисления карты нормалей являются общими способами, раскрытыми здесь для того, чтобы идентифицировать поверхность из данных облака точек, любой подходящий способ отделения или извлечения поверхности может использоваться, такой как Hough-преобразование, составление карты нормалей, преобразование Фурье, curvelet-преобразование и т.д. Например, вычисление для отделения и/или извлечения поверхностей из облака точек могло быть достигнуто, используя Hough-преобразование для плоских поверхностей. Карта нормалей может не быть необходимой в таком случае, вместо этого может быть произведено Hough-преобразование облака точек. Таким образом, когда точки облака объединены в объекты и помечены, оценка Hough пространства для каждой точки может указывать, лежит ли точка на плоскости с соседними точками, позволяя системе отдельно помечать конкретную составляющую плоских поверхностей для конкретного объекта. Любой подходящий способ разделения/извлечения может использоваться, и может быть настроен для выполнения полной пометки и характеристик, зависящего от сценария. В то время как использование различных способов разделения/извлечения поверхности может изменить эвристику пометки, любой подходящий способ может использоваться для такой идентификации и пометки и все еще позволять системе обрабатывать данные глубины в режиме реального времени для генерирования и регенерации отображения в режиме реального времени пользователю.
[0151] Шум может быть результатом используемого типа датчика глубины. Первая фаза прохода может включать в себя проход подавления шума в отношении необработанных данных. Например, проход сглаживания может быть выполнен, чтобы удалить шум из карты нормалей.
[0152] Точки в облаке могут быть помечены в проходе двумерного сканирования по набору данных, когда опции, которые близки друг к другу и идентифицируют аналогичные поверхности, могут быть помечены как принадлежащие одному и тому же объекту. Например, если способ отделения поверхности вовлекает генерирование карты нормалей, наборы данных, которые являются наиболее близкими вместе и имеют аналогичные нормали к поверхности, могут быть помечены как принадлежащие одному и тому же объекту. Пометка обеспечивает различие между плоскими и мягко изгибающимися поверхностями, в то время как пространственно соединенные или не связные поверхности, подобные полам и стенам, могут быть помечены отдельно. Точки в связности с соседними точками могут быть помечены на основании расстояния между этими точками и соответствующими нормалями к поверхности, которые указывают в аналогичном направлении. Настройка порога расстояния и порога подобия нормалей может привести к различному размеру и искривлению объектов и поверхностей, помеченных дискретно. Порог и ожидаемые результаты для известных объектов могут быть сохранены в фильтрах объекта.
[0153] Как показано на фиг. 7, показаны облака точек для шара 102 и коробки 104. Оценка данных облака точек в близости и нормали к поверхности, идентифицированные из коллекции облаков точек, может отличить шар от коробки. Таким образом, каждый объект 102 и 104 может быть помечен. Пометка может просто быть уникальной идентификационной информацией. Комбинация позиции точек в облаке и нормалей к поверхности полезна для дифференцирования между объектами на поверхности или объектами, которые составляют объект. Например, если чашка находится на вершине коробки 104, чашка может быть помечена тем же самым уникальным ID, данным коробке, поскольку еще не может быть определено из данных облака точек, что объекты отделены. Однако, принимая во внимание нормали к поверхности, система может определить, что есть разница в девяносто градусов между нормалями к поверхности, и определить, что объекты должны быть помечены отдельно на основании близости точек и облаков точек. Таким образом, группы точек данных в облаке точек, которые совместимы со структурными поверхностными элементами, могут быть ассоциированы и помечены.
[0154] Система может повторно проецировать определенные ориентации поверхностей различных облаков точек и перестроить текстуру, как будто она была на плоской поверхности. Способ позволяет системе к повторно текстурировать объект более точно. Например, если пользователь держит журнал с печатным текстом, нет никакого ограничения ориентации, посредством которого пользователь может выставлять журнал на устройство захвата. Устройство захвата может повторно проецировать захваченную текстуру поверхности журнала и повторно проецировать эту текстуру, включая информацию цвета, текста и любую текстуру.
[0155] Объект, который помечен и имеет набор вычисленных параметров, которые он охватывает, система может выполнить или продолжить выполнять анализ в целях увеличения точности, организации, и структуры для виртуальной сцены. Например, наилучшим образом подогнанный ограничивающий прямоугольник может быть более точным способом отличить конкретный объект. Наилучшим образом подогнанный ограничивающий прямоугольник может задать ориентацию объекта в конкретном кадре. Например, коробке с кофейной чашкой сверху можно первоначально задать ограничивающий прямоугольник, который включает в себя и облако точек коробки и облако точек, представляющее кофейную чашку. В каждом кадре система может оценить эти объекты, которые находятся пространственно в том же самом местоположении как в последнем кадре, и определить, аналогична ли ориентация. Кофейная чашка может перемещаться от кадра к кадру, и система может идентифицировать, что чашка является отдельной от коробки и поэтому генерировать новый ограничивающий прямоугольник для чашки и пересматривать ограничивающий прямоугольник для картонной коробки.
[0156] Иногда шум вводится в систему из-за незначащих частиц или объектов в комнате, или на основании типа используемого датчика. Например, набор точек в облаке может представить набор для мухи, или тип используемого датчика может привести к посторонним точкам, которые являются лишними. Чтобы уменьшить шум, может быть выполнена фаза очистки, чтобы очистить данные датчика или удалить очень маленькие объекты и объекты, которые имеют только небольшое количество выборок составляющих точек. Например, частица пыли или муха в сцене могут быть захвачены, но небольшое количество выборок составляющих точек, представляющих муху, возможно, не является достаточно существенным, чтобы активировать идентичность нормалей к поверхности, ассоциированных с этим облаком точек. Таким образом, небольшое количество выборок составляющих точек, представляющих муху, может быть извлечено из анализа. Начальный проход по данным облака точек может использовать точки вместе в объектах, которые пространственно соотнесены, чтобы задать большое множество объектов. Например, большая коллекция точек может быть сиденьем и помечена конкретным ID; другой объект может быть полом. Некоторый порог может быть установлен, чтобы идентифицировать набор точек, которые должны быть удалены из анализа. Например, если только 20 точек идентифицированы для объекта, и пространственная компоновка 20 точек находится в относительно маленькой области по сравнению с физическим пространством или другими объектами в сцене, то система может устранить эти 20 точек.
[0157] Выровненный по оси ограничивающий прямоугольник может использоваться как быстрое измерение полного объема/пространства, занятое объектом. Выровненное по оси относится к специальной оси, такой как X, Y или Z, а не оси объекта в пространстве. Например, система может вычислить, сложна ли поверхность или проста (например, сфера или журнал имеют простую поверхность; кукла или завод имеют сложную поверхность). Вращение объекта может быть полезным для системы, чтобы проанализировать и определить более точные характеристики объекта. Устройство захвата может выполнить сплошное сканирование объекта для оценки объема. Устройство захвата может также обеспечить ссылки между облаками точек и объектами в сцене, таким образом что может быть идентифицировано конкретное местоположение для объекта в ссылке на физическое пространство.
[0158] Вычисление свойств объекта и отслеживание этих изменений в течение времени установили надежный способ для отслеживания объектов, которые могут измениться в позиции и ориентации от кадра к кадру в режиме реального времени. Использование временной информации, чтобы захватывать изменения, может придать дополнительную точность анализу, идентификационной информации, и пометке объектов в сцене, поскольку больше кадров захвачено. Из-за размера обычного набора данных, такого как 640x480 точек, даже сложная обработка может быть достигнута, используя раскрытые способы. Данные могут быть захвачены в последовательностях кадров с частотой по меньшей мере 20 Герц.
[0159] Параметры объекта могут быть сравнены с таковыми из предыдущего кадра, и объекты могут быть повторно помечены, чтобы позволить перемещать объекты, которые будут отслежены в реальном времени, также поддерживая выполнение непрерывной пометки из статических объектов. Достоверность может быть вычислена для каждого объекта, и коэффициент достоверности может увеличиться в течение времени. Таким образом, статические объекты могут приблизиться и удалиться из-за преграды, в то время как достоверность в объекте может остаться высокой. Временной анализ может содержать оценку последнего кадра и текущего кадра. Если объект является одним и тем же в каждом кадре, то объект может быть повторно помечен меткой, которая имела место в предыдущем кадре, чтобы дать согласованность меткам и объектам от кадра к кадру. Объект и поверхностная ориентация и местоположение могут использоваться, чтобы оценить ориентацию камеры глубины, а также собрать статистические данные, касающиеся окружения камеры. Например, местоположения главных плоских поверхностей во многих случаях будут эквивалентны стенам и этажам.
[0160] Нужно подразумевать, что конфигурации и/или подходы, описанные здесь, являются примерными по характеру, и что эти конкретные варианты осуществления или примеры нельзя рассматривать в качестве ограничений. Конкретные программы или способы, описанные здесь, могут представить одну или более из любого количества стратегий обработки. Также, различные иллюстрированные действия могут быть совершены в иллюстрированной последовательности, в других последовательностях, параллельно, или аналогично. Аналогично, порядок вышеописанных процессов может быть изменен.
[0161] Кроме того, в то время как настоящее описание было описано применительно к конкретным аспектам, как иллюстрировано на различных чертежах, подразумевается, что могут использоваться другие аналогичные аспекты или модификации, и дополнения могут быть сделаны к описанным аспектам для выполнения той же самой функции настоящего описание, не отклоняясь от него. Предмет настоящего описания включает в себя все новые и неочевидные комбинации и подкомбинации различных процессов, систем и конфигураций, и другие признаки, функции, действия и/или свойства, раскрытые здесь, так же как любой и все их эквиваленты. Таким образом, способы и устройство раскрытых вариантов осуществления, или некоторые аспекты или части их, могут принять форму программного кода (то есть, инструкций), воплощенного на материальных носителях, таких как гибкие дискеты, CD-ROM, накопители на жестких дисках, или любой другой машиносчитываемый носитель данных. Когда программный код загружен в и выполняется машиной, такой как компьютер, машина становится устройством, конфигурируемой для того, чтобы реализовать на практике раскрытые варианты осуществления.
[0162] В дополнение к конкретным реализациям, явно сформулированным здесь, другие аспекты и реализации будут очевидны для специалистов в данной области техники из рассмотрения описания, приведенного здесь. Поэтому, настоящее описание не должно быть ограничено единственным аспектом, а вместо этого рассмотрено в объеме и форме в соответствии с приложенной формулой изобретения. Например, различные процедуры, описанные здесь, могут быть реализованы аппаратным обеспечением или программным обеспечением, или их комбинацией.
Способы для автоматического генерирования визуального представления цели могут уменьшить или устранить ручной ввод, требуемый для генерирования визуального представления цели. Например, система, имеющая устройство захвата, может обнаружить различные признаки пользователя в физическом пространстве и осуществить выборы признаков из библиотеки опций признаков визуального представления на основании обнаруженных признаков. Система может автоматически применить выборы к визуальному представлению пользователя на основании обнаруженных признаков. Альтернативно, система может осуществлять выборы, которые сужают количество опций для признаков, из которых выбирает пользователь. Система может применить выборы к пользователю в режиме реального времени, так же как сделать обновления к признакам, выбранным и относящимся к визуальному представлению цели в режиме реального времени. Способ для генерирования визуального представления цели, причем способ содержит этапы: использование вычислительного устройства для приема данных сцены, при этом данные включают в себя данные, представляющие цель в физическом пространстве; обнаружение по меньшей мере одного признака цели из упомянутых данных; сравнение упомянутого по меньшей мере одного признака цели с опциями признаков визуального представления, при этом опции признаков визуального представления содержат выбираемые опции, сконфигурированные для применения к визуальному представлению упомянутой цели; выбора признака визуального представления из опций признаков визуального представления; применение признака визуального представления к визуальному предс