Связывание анимаций
Иллюстрации
Показать всеИзобретение относится к компьютерной технике. Технический результат - обеспечение эффективного распознавания жестов. Способ связывания анимаций, содержащий этапы, на которых: принимают данные изображения, которые представляют снятое движение; выбирают предварительно подготовленную анимацию; изменяют положение в предварительно подготовленной анимации в качестве реакции на данные предыстории, связанные с пользователем; идентифицируют по меньшей мере один параметр, который обозначает точку перехода, причем удовлетворение этому по меньшей мере одному параметру инициирует связывание анимации снятого движения и предварительно подготовленной анимации; связывают анимацию снятого движения и предварительно подготовленную анимацию посредством по меньшей мере последовательного отображения снятого движения и предварительно подготовленной анимации. 3 н. и 19 з.п. ф-лы, 15 ил.
Реферат
Предшествующий уровень техники
Во многих компьютерных приложениях, таких как компьютерные игры, мультимедийные приложения, офисные приложения или тому подобное, используются элементы управления, которые позволяют пользователям управлять персонажами игры или другими аспектами приложения. Типично, ввод в отношении таких элементов управления осуществляется, используя, например, контроллеры, пульты дистанционного управления, клавиатуру, мышь или тому подобное. К сожалению, такие элементы управления могут быть трудными для обучения, что, таким образом, формирует барьер между пользователем и такими играми и приложениями. Кроме того, такие элементы управления могут отличаться от фактических действий в ходе игры или других действий приложения, для которых эти элементы управления используются. Например, элемент управления игрой, который обеспечивает взмах персонажем игры бейсбольной битой, может не соответствовать фактическому движению замаха бейсбольной битой.
Сущность изобретения
В некоторых системах монитор может отображать обратную связь от пользователя, которая вводится в соответствие движениям пользователя, снятым системой. Например, обратная связь от пользователя может отображаться как аватар на экране, причем движением аватара можно управлять посредством постановки движения аватара в соответствие движениям пользователя. Часто пользователь может делать движения, которые не являются необходимыми для исполнения приложения. В некоторых случаях движения пользователя, которые не применимы к конкретному приложению, являются избыточными или очень похожи у разных пользователей.
В некоторых сценариях может быть полезным вставлять предварительно подготовленную анимацию для персонажа вместо представления фактического движения пользователя. Например, замах при игре в теннис, броске мяча и движение при подаче мяча могут представлять собой предварительно подготовленную анимацию, тогда как анимация маха вперед может быть поставлена в соответствие движению пользователя. Здесь раскрыты технологии для определения границ и точек перехода для связывания предварительно подготовленной анимации и анимации, которая представляет движение в физическом пространстве, а также технологии для смешивания двух типов анимации. Такие технологии связывания и смешивания анимаций могут быть желательными с целью обеспечения эффективности анимаций.
Связывание анимаций может содержать выбор предварительно подготовленной анимации и перехода между анимациями, такого как от предварительно подготовленной анимации к анимации отснятого движения или от анимации отснятого движения к предварительно подготовленной анимации. Например, анимация жеста пользователя может быть связана вместе последовательно с предварительно подготовленной анимацией. Технологии смешения анимаций могут обеспечить более плавный переход между анимацией жестов. Предысторию жестов, включая положение соединения, скорость и ускорение, можно использовать для определения намерения пользователя, исходных параметров для последующих анимаций и управления игрой, и определения последующих жестов для инициирования.
Данный раздел "Сущность изобретения" предусмотрен для представления подборки концепций в упрощенной форме, которые дополнительно описаны ниже в разделе "Подробное описание изобретения". Данный раздел "Сущность изобретения" не предназначен для идентификации ключевых особенностей или существенных свойств заявленного изобретения и также не предназначен для ограничения объема заявленного изобретения. Кроме того, заявленное изобретение не ограничено вариантами осуществления, которые решают любые или все недостатки, отмеченные в любой части данного раскрытия.
Краткое описание чертежей
Системы, способы и считываемый компьютером носитель для архитектуры системы распознавания жестов в соответствии с описанием дополнительно описаны со ссылкой на приложенные чертежи, на которых:
На фиг.1A и 1B представлен примерный вариант осуществления системы распознавания, анализа и отслеживания цели с пользователем, играющим в игру.
На фиг.2 показан вариант осуществления примерного устройства съемки, которое может использоваться в системе распознавания, анализа и отслеживания цели, и включающего в себя технологии связывания и смешивания анимаций.
На фиг.3 показан вариант осуществления примера вычислительного окружения, в котором могут быть воплощены описанные здесь технологии анимации.
На фиг.4 показан другой вариант осуществления примера вычислительного окружения, в котором могут быть воплощены описанные здесь технологии анимации.
На фиг.5 показана скелетная карта пользователя, сгенерированная по изображению с глубиной.
На фиг.6A-6F представлены примеры кадров, которые представляют снятые движения пользователя в различных точках во времени, используемые для получения изображения пользователя с глубиной в сцене и выявления жеста, выполняемого пользователем.
На фиг.7A и 7B представлена последовательность движений пользователя и примерный вариант осуществления реализации технологии связывания и смешивания анимаций.
На фиг.8 показан пример блок-схемы последовательности операций для использования предварительно подготовленной анимации и смешивания предварительно подготовленной анимации с анимацией снятого движения.
Подробное описание изобретения
Компьютерная система может моделировать и отображать представление пользователя, например, в виде аватара. Например, управляемая камерой компьютерная система может снимать данные изображения пользователя и отображать обратную связь от пользователя, которая поставлена в соответствие жестам пользователя. Обратная связь от пользователя может отображаться как аватар на экране, где движениями аватара можно непосредственно управлять путем постановки движений аватара в соответствие жестам пользователя. Жест может представлять собой любое движение пользователя, такое как бег, движение пальцем или статическую позу. Анимацией снятого движения пользователя или жеста пользователя можно управлять посредством входных команд, поступающих из устройства съемки изображения.
Может быть желательным некоторых ситуациях использовать предварительно подготовленную анимацию для визуального представления снятого движения вместо постановки в соответствие фактически снятому движению. Снятое движение может представлять собой любое движение в физическом пространстве, снятое устройством съемки изображения, таким как камера. Снятое движение может включать в себя движение цели в физическом пространстве, такое как пользователь или объект. Снятое движение может включать в себя жест, который преобразуется в элемент управления в операционной системе или приложении. Движение может быть динамическим, таким как движение во время бега, или движение может быть статическим, например, когда пользователь находится в позе с небольшим количеством движений.
Предварительно подготовленная анимация может представлять собой заранее заданную анимацию персонажа или предварительно записанный жест. Может быть желательным в некоторых сценариях ввести предварительно подготовленную анимацию вместо представления фактической цели или движения пользователя. Например, при выполнении взмаха во время игры в теннис может быть желательным использовать заранее заданное движение для представления жестов подбрасывания мяча и отклонения назад при подаче путем вставки предварительно подготовленной анимации. После подачи может быть желательным вернуться к использованию снятого движения пользователя, например вернуться к отображению движения пользователя при выполнении фактического маха вперед.
Здесь раскрыты технологии для связывания типов анимаций, включая определение границ и точек перехода между анимациями, управляемыми разными устройствами (например, предварительно подготовленная анимация и анимация, полученная на основе входных команд камеры). Типы анимации могут быть связаны через любой соответствующий способ. Способ связывания может зависеть от уровня сглаживания, который требуется между связанными анимациями. Например, компьютерная система может вставлять такое количество предварительно подготовленных анимаций в связанную последовательность анимаций, которая необходима для того, чтобы сделать переход между анимацией снятого движения пользователя и предварительной подготовленной анимацией в виде достаточно плавного перехода. В другом примере компьютерная система может анализировать параметры снятого движения пользователя в точке перехода и модифицировать предварительно подготовленную анимацию, с тем, чтобы более близко представлять снятое движение пользователя в этой точке. Анимации могут быть достаточно похожими в точке перехода, таким образом, что анимации могут быть связаны вместе просто путем последовательного отображения анимаций. В другом примере технологии смешивания анимаций можно использовать для обеспечения очень плавного перехода между различными типами анимации.
Используемые здесь и в формуле изобретения ссылки на смешивание или связывание между анимацией живого движения и предварительно подготовленной анимацией включают в себя как связывание или смешение при переходе от анимации снятого жеста к предварительно подготовленной анимации, так и, наоборот, связывание или смешивание при переходе от предварительно подготовленной анимации к анимации снятого жеста. Кроме того, любая комбинация технологии связывания может использоваться по отдельности или в комбинации. Например, вычислительная система может модифицировать предварительно подготовленную анимацию перед связыванием, и технологии смешивания анимаций можно также использовать для сглаживания перехода между анимацией снятого движения и модифицированной предварительно подготовленной анимацией.
Система, способы и компоненты для связывания, описанные здесь, могут быть воплощены в виде мультимедийной консоли, такой как игровая консоль, или в любом другом вычислительном устройстве, в котором требуется смешивать входные команды пользователя с предварительно подготовленными данными, включающими в себя, в качестве примера и без какого-либо преднамеренного ограничения, спутниковые приемники, телевизионные приставки, приставки для аркадных игр, персональные компьютеры (PC, ПК), портативные телефоны, карманные персональные компьютеры (PDA, КПК) и другие портативные устройства.
На фиг.1A и 1B иллюстрируется примерный вариант осуществления конфигурации управляемой камерой системы 10 распознавания, анализа и отслеживания цели, которая может использовать технологии связывания и смешивания анимаций. В системе показан пользователь 18, играющий в боулинг. В примерном варианте осуществления система 10 может распознавать, анализировать и/или отслеживать цель - человека, такого как пользователь 18. Система 10 распознавания, анализа и отслеживания цели может собирать информацию, относящуюся к движениям пользователя в физическом пространстве. Система 10 может сохранять информацию, относящуюся к предварительно подготовленным анимациям. В определенных точках движений пользователя 18 во время игры в боулинг, вместо отслеживания, анализа и отображения для представления анимации, которая представляет фактические движения или жесты пользователя 18, может быть желательным вставлять предварительно подготовленные анимации в определенных участках движения во время игры в боулинг.
Как показано на фиг.1A, система 10 распознавания, анализа и отслеживания цели может включать в себя вычислительное окружение 12. Вычислительное окружение 12 может представлять собой компьютер, игровую систему или консоль или тому подобное. В соответствии с примерным вариантом осуществления, вычислительное окружение 12 может включать в себя аппаратные компоненты и/или программные компоненты, такие что вычислительное окружение 12 может использоваться для исполнения таких приложений, как игровые приложения, неигровые приложения или тому подобное.
Как показано на фиг.1A, система 10 распознавания, анализа и отслеживания цели дополнительно включает в себя устройство 20 съемки. Устройство 20 съемки может представлять собой, например, камеру, которая может использоваться для визуального отслеживания одного или больше пользователей, таких как пользователь 18, таким образом, что жесты, выполняемые одним или больше пользователями, могут быть захвачены, проанализированы и могут отслеживаться для выполнения одного или больше управлений или действий в пределах приложения, как будет более подробно описано ниже.
В соответствии с одним вариантом осуществления, система 10 распознавания, анализа и отслеживания цели может быть соединена с аудиовизуальным устройством 16, таким как телевизор, монитор, телевизор высокой четкости (HDTV) или тому подобное, которые могут обеспечивать визуальное представление игры или приложения и/или звука для пользователя, такого как пользователь 18. Например, вычислительное окружение 12 может включать в себя видеоадаптер, такой как видеокарта, и/или аудиоадаптер, такой как звуковая карта, которые могут обеспечивать аудиовизуальный сигнал, ассоциированный с игровым приложением, неигровым приложением, или тому подобное. Аудиовизуальное устройство 16 может принимать аудиовизуальные сигналы из вычислительного окружения 12 и может затем выводить визуальное представление игры или приложение и/или звук, ассоциированный с аудиовизуальными сигналами для пользователя 18. В соответствии с одним вариантом осуществления, аудиовизуальное устройство 16 может быть соединено с вычислительным окружением 12, например, через кабель S-Video, коаксиальный кабель, кабель HDMI, кабель DVI, VGA или тому подобное.
Как показано на фиг.1A и 1B, система 10 распознавания, анализа и отслеживания цели может использоваться для распознавания, анализа и/или отслеживания цели - человека, такого как пользователь 18. Например, пользователя 18 можно отслеживать, используя устройство 20 съемки, таким образом, что движения пользователя 18 могут быть интерпретированы как элементы управления, которые можно использовать для обеспечения исполнения приложения в вычислительном окружении 12. Таким образом, в соответствии с одним вариантом осуществления, пользователь 18 может двигать своим телом для управления приложением.
Система 10 может преобразовывать входные сигналы, поступающие в устройство 20 съемки, в анимацию, при этом входные сигналы представляют движения пользователя, так что управление анимацией будет осуществляться этими входными сигналами. Таким образом, движения пользователя могут ставиться в соответствие аватару так, что движения пользователя в физическом пространстве будут выполняться аватаром. Движения пользователя могут представлять собой жесты, применимые для управления в приложении. Например, на каждой из фиг.1A и 1B представлен примерный вариант осуществления приложения, исполняемого в вычислительном окружении 12, которое может представлять собой игру в боулинг, в которую может играть пользователь 18. Вычислительное окружение 12 может использовать аудиовизуальное устройство 16 для обеспечения визуального представления площадки для боулинга и дорожки для боулинга для пользователя 18. Вычислительное окружение 12 также может использовать аудиовизуальное устройство 16 для обеспечения визуального представления аватара 22 игрока, которым пользователь 18 может управлять своими движениями. В соответствии с примерным вариантом осуществления, вычислительное окружение 12 и устройство 20 съемки из состава системы 10 распознавания, анализа и отслеживания цели могут использоваться для распознавания и анализа жестов, выполняемых пользователем 18 в трехмерном физическом пространстве пользователя таким образом, что жесты пользователя могут быть интерпретированы для управления аватаром 24 игрока в пространстве игры. Например, как показано на фиг.1B, пользователь 18 может выполнять движение для игры в боулинг в физическом пространстве для обеспечения выполнения аватаром 24 игрока движений при игре в боулинг в игровом пространстве. Другие движения, выполняемые пользователем 18, также могут быть интерпретированы как элементы управления или действия, такие как элементы управления для ходьбы, выбора мяча, положения аватара на дорожке для боулинга, замаха мячом и т.д.
Система 10 может вставлять предварительно подготовленные анимации вместо использования анимации фактического движения или снятого жеста пользователя 18. Например, некоторые сегменты управления игрой могут быть представлены предварительно подготовленной анимацией. В описанном выше примере игры в боулинг, например, съемка мяча для боулинга или движение в направлении дорожки могут представлять собой участки смешанного движения, которые представлены предварительно подготовленными анимациями.
Жесты или движение пользователя могут быть интерпретированы как элементы управления, которые могут соответствовать действиям, отличающимся от управления аватаром 24 игрока. Например, игрок может использовать движения для окончания, паузы или сохранения игры, выбора уровня, просмотра результатов игры, для общения с друзьями и т.д. Жесты пользователя могут представлять собой элементы управления, применимые в операционной системе, в неигровых аспектах игры или в неигровых приложениях. Например, жесты пользователя могут быть интерпретированы как манипуляции с объектом, такие как управление интерфейсом пользователя. Например, рассмотрим интерфейс пользователя, имеющий интерфейс с закладками или ярлычками, выровненный вертикально слева направо, где выбор каждой закладки или ярлычка раскрывает варианты выбора (опции) для различных элементов управления в пределах приложения или системы. Система может идентифицировать жест руки пользователя как движение в направлении закладки, где рука пользователя в физическом пространстве виртуально выровнена с закладкой в пространстве приложения. Жест, включающий в себя паузу, движение захвата и затем взмах руки влево, может быть интерпретирован как выбор закладки, с последующим перемещением его в сторону, с тем чтобы открыть следующую закладку.
Может быть желательным вставлять предварительно подготовленную анимацию для представления других элементов управления, таких как движение пользователя для выбора закладки/ярлычка. В приведенном выше примере интерфейса пользователя, например, система может интерпретировать жест пользователя как выбор или перемещение закладки или ярлычка и вставки предварительно подготовленной анимации с целью отображения вместо постановки снятого жеста пользователя в соответствие анимации. Например, для перехода между закладками может быть желательным вставлять предварительно подготовленную анимацию с установленной по сценарию скоростью перехода для движения закладки вместо перемещения этой закладки со скоростью, которая ставится в соответствие фактическому движению руки пользователя. Таким образом, система может выполнять захват и интерпретацию жеста пользователя как выбор и движение закладки, но выполняет переход к предварительно подготовленному движению, как только скорость перемещения руки пользователя, обозначающая желание переключиться между закладками, будет детектирована.
Смешивание анимаций между предварительно подготовленной анимацией и анимацией, которая представляет живое движение, может обеспечить более эффективную анимацию. Таким образом, система может переключаться между постановкой фактического движения или снятого жеста пользователя в соответствие анимации вместо отображения и реализации предварительно подготовленной анимации.
Некоторые движения игрока могут быть интерпретированы и идентифицированы как имеющие параметры, которые обозначают точку перехода. Точка перехода может представлять собой точку, в которой система 10 переходит между анимацией снятого движения или жеста пользователя или предварительно подготовленной анимацией. В примерном варианте осуществления точка перехода может представлять собой точку идентификации в снятом жесте пользователя, которая подсказывает системе, что необходимо выполнить переход к предварительно подготовленной анимации. В другом примерном варианте осуществления точка перехода представляет собой точку идентификации в предварительно подготовленной анимации, которая инициирует возврат системы к использованию снятых жестов пользователя.
Таким образом, идентификация точки перехода может инициировать переход системы между представлением движения пользователя и представлением предварительно подготовленной анимации. Например, игрок 18 может выполнить движение захвата, которое система 10 может интерпретировать как элемент управления для выбора шара для боулинга. Интерпретация движения захвата может инициировать переход системы от отображения жестов захвата пользователя в точке выбора шара до отображения предварительно подготовленной анимации для движения, которое следует после выбора шара, например переход к дорожке для боулинга.
Может использоваться любой соответствующий способ установки точек перехода. Само приложение может устанавливать точки перехода на основе типа приложения или уровня подготовки или опыта пользователя. Например, большее количество предварительно подготовленных анимаций может быть воплощено для начинающего игрока в игре таким образом, что более трудные жесты для достижения успеха являются предварительно подготовленными. Пользователь может установить точки перехода таким образом, чтобы предварительно подготовленные анимации использовались для определенных движений, или пользователь может запрашивать большее или меньшее использование предварительно подготовленных анимаций во время выполнения приложения.
В примерном варианте осуществления, показанном на фиг.1B, объект представляет собой шар для игры в боулинг, и пользователь перемещается в трехмерном физическом пространстве, как если бы он фактически обращался с шаром для боулинга. Жесты пользователя в физическом пространстве могут управлять шаром для боулинга, отображаемым на экране 14. В примерных вариантах осуществления цель - человек, такой как пользователь 18, может фактически удерживать объект. В таких вариантах осуществления пользователь электронной игры может удерживать объект таким образом, чтобы движения игрока и объекта можно было использовать для регулирования и/или управления параметрами игры. Например, движение игрока, удерживающего ракетку, могут отслеживаться и использоваться для управления ракеткой, представленной на экране в электронной спортивной игре. В другом примерном варианте осуществления движения игрока, удерживающего объект, можно отслеживать и использовать для управления оружием, представленным на экране в электронной боевой игре.
В соответствии с другими примерными вариантами осуществления, система 10 распознавания, анализа и отслеживания цели может интерпретировать движения цели для управления аспектами операционной системы и/или приложения, которые находятся за пределами области игр. Например, любым виртуально управляемым аспектом операционной системы и/или приложения можно управлять с помощью движений цели, такой как пользователь 18.
На фиг.2 иллюстрируется примерный вариант осуществления устройства 20 съемки, которое может использоваться для распознавания, анализа и отслеживания цели, в случае когда цель может представлять собой пользователя или объект. В соответствии с примерным вариантом осуществления, устройство 20 съемки может быть выполнено с возможностью захвата видеоизображения с информацией с глубиной, включающей в себя изображение с глубиной, которое может включать в себя значения с глубиной, используя любую соответствующую технологию, включая, например, время пролета, структурированный свет, стереоизображение или тому подобное. В соответствии с одним вариантом осуществления, устройство 20 съемки может организовать расчетную информацию с глубиной на "уровнях Z" или в уровнях, которые могут быть перпендикулярны оси Z, продолжающейся от камеры с глубиной вдоль ее линии обзора.
Как показано на фиг.2, устройство 20 съемки может включать в себя компонент 22 камеры изображения. В соответствии с примерным вариантом осуществления, компонент 22 камеры изображения может представлять собой камеру с глубиной, которая может снимать изображение с глубиной сцены. Изображение с глубиной может включать в себя двумерную (2D) область пикселей снимаемой камерой сцены, где каждый пиксель в 2D области пикселя может представлять значение с глубиной, такое как длина или расстояние, например, в сантиметрах, миллиметрах или тому подобное объекта в снимаемой сцене.
Как показано на фиг.2, в соответствии с примерным вариантом осуществления, компонент 22 камеры изображения может включать в себя компонент 24 инфракрасного света, трехмерную (3D) камеру 26 и камеру 28 RGB, которые могут использоваться для съемки изображения с глубиной сцены. Например, при анализе времени пролета, компонент 24 инфракрасного света из состава устройства 20 съемки может излучать инфракрасный свет на сцену и может затем использовать датчики (не показаны) для детектирования обратно рассеянного света от поверхности одной или больше целей и объектов в сцене, используя, например, 3D камеру 26 и/или RGB камеру 28. В некоторых вариантах осуществления пульсирующий инфракрасный свет можно использовать таким образом, что время между исходящим импульсом света и соответствующим входящим импульсом света может быть измерено и может использоваться для определения физического расстояния от устройства 20 съемки до определенного местоположения на целях или объектах в сцене. Кроме того, в других примерных вариантах осуществления фазу исходящего света можно сравнивать с фазой входящей волны света для определения сдвига фазы. Сдвиг фазы можно затем использовать для определения физического расстояния от устройства съемки до определенного местоположения на целях или объектах.
В соответствии с другим примерным вариантом осуществления, анализ по времени пролета можно использовать для опосредованного определения физического расстояния от устройства 20 съемки до определенного местоположения на целях или объектах путем анализа интенсивности отраженного луча света с течением времени, используя различные технологии, включая, например, формирование изображений с использованием стробированных импульсов света.
В другом примерном варианте осуществления устройство 20 съемки может использовать структурированный свет для захвата информации с глубиной. При таком анализе структурированный свет (то есть свет, отображаемый как известная структура, такая как структура сетки или структура полоски), может быть спроецирован на сцену через, например, компонент 24 инфракрасного света. После падения на поверхность одной или больше целей или объектов на сцене структура может стать деформированной в отклике. Такая деформация структуры может быть захвачена, например, 3D камерой 26 и/или RGB камерой 28 и может быть затем проанализирована для определения физического расстояния от устройства съемки до конкретного местоположения на целях или объектах.
В соответствии с другим вариантом осуществления, устройство 20 съемки может включать в себя две или больше физически разделенных камер, которые могут просматривать сцену под разными углами, получать визуальные стереоскопические данные, по которым может быть сгенерирована информация с глубиной.
Устройство 20 съемки может дополнительно включать в себя микрофон 30 или массив микрофонов. Микрофон 30 может включать в себя преобразователь или датчик, который может принимать и преобразовывать звук в электрический сигнал. В соответствии с одним вариантом осуществления, микрофон 30 может использоваться для уменьшения обратной связи между устройством 20 съемки и вычислительным окружением 12 в системе 10 распознавания, анализа и отслеживания цели. Кроме того, микрофон 30 может использоваться для приема аудиосигналов, которые также могут быть предоставлены пользователем для управления приложениями, такими как игровые приложения, неигровые приложения или тому подобное, которое может выполняться вычислительным окружением 12.
В примерном варианте осуществления устройство 20 съемки может дополнительно включать в себя процессор 32, который может быть функционально связан с компонентом 22 камеры изображения. Процессор 32 может включать в себя стандартизированный процессор, специализированный процессор, микропроцессор или тому подобное, который может выполнять инструкции, которые могут включать в себя инструкции для приема изображения с глубиной, определения того, может ли быть подходящая цель включена в изображение с глубиной, преобразования подходящей цели в скелетное представление или модель цели или любую другую соответствующую инструкцию.
Устройство 20 съемки может дополнительно включать в себя компонент 34 запоминающего устройства, который может сохранять инструкции, которые могут быть выполнены с помощью процессора 32, изображения или кадры изображений, захваченные 3D камерой или камерой RGB, или любую соответствующую информацию, изображения или тому подобное. В соответствии с примерным вариантом осуществления, компонент 34 запоминающего устройства может включать в себя оперативное запоминающее устройство (RAM), постоянное запоминающее устройство (ROM), кэш, запоминающее устройство типа флэш, жесткий диск или любой другой соответствующий компонент накопителя. Как показано на фиг.2, в одном варианте осуществления, компонент 34 запоминающего устройства может представлять собой отдельный компонент при выполнении обмена данными с компонентом 22 захвата изображения и процессором 32. В соответствии с другим вариантом осуществления, компонент 34 запоминающего устройства может быть интегрирован в процессор 32 и/или в компонент 22 захвата изображения.
Как показано на фиг.2, устройство 20 съемки может находиться в состоянии обмена данными с вычислительным окружением 12 через линию 36 связи. Линия 36 связи может представлять собой проводное соединение, включающее в себя, например, соединение USB (универсальная последовательная шина), соединение FireWire, кабельное соединение Ethernet или тому подобное, и/или беспроводное соединение, такое как беспроводное соединение 802.1 lb, g, a или n. В соответствии с одним вариантом осуществления, вычислительное окружение 12 может предоставлять тактовый сигнал в устройство 20 съемки, который может использоваться для определения того, когда следует выполнить захват, например, сцены, через линию 35 связи.
Дополнительно, устройство 20 съемки может предоставлять информацию с глубиной и изображения, снятые, например, с помощью 3D камеры 26 и/или RGB камеры 28, и скелетную модель, которая может быть сгенерирована с помощью устройства 20 съемки, для вычислительного окружения 12 через линию 36 связи. Вычислительное окружение 12 может затем использовать скелетную модель, информацию с глубиной и захваченные изображения, для того, чтобы, например, управлять приложением, таким как игра или текстовый редактор. Например, как показано, на фиг.2, вычислительное окружение 12 может включать в себя библиотеку 190 жестов.
Библиотека 190 жестов может включать в себя подборку фильтров 191 жестов. Каждый фильтр 191 может включать в себя информацию, определяющую жест, вместе с параметрами или метаданными для этого жеста. Например, бросок, который содержит движение одной из рук из-за задней части тела с проходом в переднюю часть тела, может быть воплощен как фильтр жестов, содержащий информацию, представляющую движение одной из рук пользователя из положения позади тела мимо тела в переднюю его часть, поскольку это движение может быть захвачено камерой с глубиной. Затем могут быть установлены параметры для этого жеста. В случае, когда жест представляет собой бросок, параметр может представлять собой пороговое значение скорости, которого должна достичь рука, расстояние, на которое рука должна переместиться (либо выраженная в абсолютных значениях, либо относительно размера пользователя в целом), и оценку степени уверенности, выполненную подсистемой распознавания, в том, что такой жест произошел. Эти параметры для жеста могут изменяться от приложения к приложению с учетом контекстов отдельного приложения или в пределах одного контекста одного приложения с течением времени.
Данные, снятые камерами 26, 28 и устройством 20 в форме скелетной модели, и движения, связанные с нею, можно сравнивать с фильтрами 191 жестов в библиотеке 190 жестов для идентификации того, когда пользователь (представленный в виде скелетной модели) выполнил один или больше жестов. Таким образом, входные сигналы в фильтр, такой как фильтр 191, могут содержать такие данные, как объединенные данные о положении пользователя, совпавшие углы, формируемые костями, которые соединяются в местах соединения, данные цветов RGB из сцены, и скорости изменения аспекта пользователя. Как отмечено выше, параметры могут быть установлены для этого жеста. Выходы фильтра 191 могут содержать такие данные, как степень уверенности в том, что данный жест выполнен, скорость, при которой жест был выполнен, и время, в которое возник жест.
Вычислительное окружение 12 может включать в себя процессор 196, который может обрабатывать изображение с глубиной для определения того, какие цели находятся в сцене, такие как пользователь 18 или объект в помещении. Это может быть выполнено, например, путем группирования пикселей изображения с глубиной, для которых совместно используется аналогичное значение расстояния. Изображение также можно разбирать путем получения скелетного представления пользователя, в случае когда идентифицированы характерные элементы, такие как суставы и ткани, которые протягиваются между суставами. При этом существуют технологии скелетной карты для захвата человека с помощью камеры с глубиной и определяющие на этой основе различные точки на скелете этого пользователя, суставы рук, запястья, локти, колени, нос, лодыжки, плечи и место, где таз соединятся со спиной. Другие технологии включают в себя преобразование изображения в представление модели тела человека и преобразование изображения в представление сетчатой модели человека.
В варианте осуществления обработку выполняют в самом устройстве 20 съемки, и необработанные данные, представляющие значения с глубиной и цвета (в случае, когда устройство съемки содержит 3D камеру), передаются в вычислительное окружение 12 через линию 36 связи. В другом варианте осуществления обработка выполняется с помощью процессора 32, соединенного с камерой 402, и затем данные выявленного изображения передаются в вычислительное окружение 12. В еще одном, другом варианте осуществления как необработанные данные изображения, так и данные выявленного изображения передаются в вычислительное окружение 12. Вычислительное окружение 12 может принимать данные выявленного изображения, но оно все еще может принимать необработанные данные для выполнения текущей обработки или приложения. Например, если изображение сцены передается через компьютерную сеть другому пользователю, вычислительное окружение 12 может передавать необработанные данные для их обработки другим вычислительным окружением.
Вычислительное окружение 12 может использовать библиотеку 190 жестов для интерпретации движений скелетной модели и для управления приложением на основе движений. Вычислительное окружение 12 может моделировать и отображать представление пользователя, такое как в форме аватара или указателя на дисплее, такое как в устройстве 193 дисплея. Устройство 193 дисплея может включать в себя компьютерный монитор, телевизионный экран или любое подходящее устройство дисплея. Например, компьютерная система, управляемая камерой, может захватывать данные изображения пользователя и отображать обратную связь от пользователя на телевизионном экране, которая ставится в соответствие жестам пользовате