Уровень техники
Многие вычислительные приложения, такие как компьютерные игры, мультимедийные приложения или т.п., включают в себя аватары или персонажи, которые анимируются с использованием типовых методов захвата движений. Например, при разработке игры в гольф профессиональный игрок в гольф может быть приведен в студию, имеющую оборудование для захвата движений, включающее в себя, например, множество камер, направленных в конкретную точку в студии. Затем профессиональный игрок в гольф может быть экипирован в костюм для захвата движений, имеющий множество точечных указателей, которые могут быть сконфигурированы с камерами и могут отслеживаться камерами, так что камеры могут захватывать, например, движения при игре в гольф профессионального игрока в гольф. Движения затем могут быть применены к аватару или персонажу во время разработки игры в гольф. При завершении игры в гольф аватар или персонаж затем может анимироваться движениями профессионального игрока в гольф во время исполнения игры в гольф. К сожалению, типовые методы захвата движений являются дорогостоящими, связаны с разработкой конкретного приложения и не включают в себя движения, ассоциированные с фактическим игроком или пользователем приложения.
Сущность изобретения
В настоящем документе описаны системы и способы для захвата движений пользователя в сцене. Например, может приниматься или наблюдаться изображение, например, глубины сцены. Изображение глубины затем может анализироваться для определения, включает ли в себя изображение человеческую цель, ассоциированную с пользователем. Если изображение включает в себя человеческую цель, ассоциированную с пользователем, может генерироваться модель пользователя. Затем модель может отслеживаться в ответ на движение пользователя, так что модель может корректироваться для имитирования движения пользователя. Например, модель может представлять собой скелетную модель, имеющую суставы и кости, которые могут корректироваться в позы, соответствующие движению пользователя в физическом пространстве. Согласно примерному варианту осуществления файл захвата движений по отношению к движению пользователя затем может генерироваться в реальном времени, основываясь на отслеживаемой модели. Например, набор векторов, которые определяют суставы и кости для каждой позы скорректированной модели, может захватываться и визуализироваться в файле захвата движений.
Данный раздел «Сущность изобретения» предусматривается для введения подборки характерных принципов в упрощенном виде, которые дополнительно описываются ниже в разделе «Подробное описание». Данный раздел «Сущность изобретения» не предназначен для идентификации ключевых признаков или существенных признаков заявленного предмета изобретения и не предназначен для использования для ограничения объема заявленного предмета изобретения. Кроме того, заявленный предмет изобретения не ограничивается реализациями, которые решают какие-либо или все недостатки, отмеченные в любой части данного раскрытия.
Краткое описание чертежей
Фиг.1А и 1В изображают примерный вариант осуществления системы распознавания, анализа и отслеживания цели с пользователем, играющим в игру.
Фиг.2 изображает примерный вариант осуществления устройства захвата, которое может использоваться в системе распознавания, анализа и отслеживания цели.
Фиг.3 изображает примерный вариант осуществления вычислительной среды, которая может использоваться для интерпретации одного или нескольких жестов в системе распознавания, анализа и отслеживания цели и/или анимации аватара или экранного персонажа, отображаемых системой распознавания, анализа и отслеживания цели.
Фиг.4 изображает другой примерный вариант осуществления вычислительной среды, которая может использоваться для интерпретации одного или нескольких жестов в системе распознавания, анализа и отслеживания цели и/или анимации аватара или экранного персонажа, отображаемых системой распознавания, анализа и отслеживания цели.
Фиг.5 изображает блок-схему последовательности операций примерного способа для захвата движений человеческой цели.
Фиг.6 изображает примерный вариант осуществления изображения, которое может включать в себя человеческую цель.
Фиг.7 изображает примерный вариант осуществления модели, которая может генерироваться для человеческой цели.
Фиг.8А-8С изображают примерный вариант осуществления модели, которая может захватываться в различные моменты времени.
Фиг.9А-9С изображают примерный вариант осуществления аватара или персонажа игры, которые могут анимироваться, основываясь на модели, которая может захватываться в различные моменты времени.
Подробное описание иллюстративных вариантов осуществления
Как описано в данном документе, пользователь может управлять приложением, исполняющимся на вычислительной среде, такой как игровая консоль, компьютер или т.п., и/или может анимировать аватар или экранный персонаж посредством выполнения одного или нескольких жестов и/или движений. Согласно одному варианту осуществления жесты и/или движения могут приниматься, например, устройством захвата. Например, устройство захвата может захватывать изображение глубины сцены. В одном варианте осуществления устройство захвата может определять, соответствует ли одна или несколько целей или объектов в сцене человеческой цели, такой как пользователь. Каждая цель или объект, которая совпадает или соответствует человеческой цели, затем может сканироваться для генерирования модели, такой как скелетная модель, сеточная модель человека или т.п., ассоциированной с ними. Модель затем может быть предоставлена вычислительной среде, так что вычислительная среда может отслеживать модель, генерировать файл захвата движений отслеживаемой модели, визуализировать аватар, ассоциированный с моделью, анимировать аватар, основываясь на файле захвата движений отслеживаемой модели и/или определять, какой элемент управления выполнить в приложении, исполняющемся на вычислительной среде, основываясь, например, на отслеживаемой модели.
Фиг.1А и 1В изображают примерный вариант осуществления конфигурации системы 10 распознавания, анализа и отслеживания цели с пользователем 18, играющим в игру в бокс. В примерном варианте осуществления система 10 распознавания, анализа и отслеживания цели может использоваться для распознавания, анализа и/или отслеживания человеческой цели, такой как пользователь 18.
Как показано на фиг.1А, система 10 распознавания, анализа и отслеживания цели может включать в себя вычислительную среду 12. Вычислительная среда 12 может представлять собой компьютер, игровую систему или консоль или т.п. Согласно примерному варианту осуществления вычислительная среда 12 может включать в себя аппаратные компоненты и/или программные компоненты, так что вычислительная среда 12 может использоваться для исполнения приложений, таких как игровые приложения, неигровые приложения или т.п. В одном варианте осуществления вычислительная среда 12 может включать в себя процессор, такой как стандартизированный процессор, специализированный процессор, микропроцессор или т.п., которые могут исполнять инструкции, включающие в себя, например, инструкции для приема изображения, генерирования модели пользователя, захваченного в изображении, отслеживания модели, генерирования файла захвата движений, основываясь на отслеживаемой модели, применение файла захвата движений или любой другой подходящей инструкции, которые описаны более подробно ниже.
Как показано на фиг.1А, система 10 распознавания, анализа и отслеживания цели может дополнительно включать в себя устройство 20 захвата. Устройство 20 захвата может представлять собой, например, камеру, которая может использоваться для визуального контролирования одного или нескольких пользователей, таких как пользователь 18, так что жесты и/или движения, выполняемые одним или несколькими пользователями, могут захватываться, анализироваться и отслеживаться для выполнения одного или нескольких элементов управления или действий в приложении и/или анимации аватара или экранного персонажа, как более подробно описано ниже.
Согласно одному варианту осуществления система 10 распознавания, анализа и отслеживания цели может быть соединена с аудиовизуальным устройством 16, таким как телевизор, монитор, телевизор высокого разрешения (HDTV) или т.п., которые могут предоставлять визуальные сигналы и/или аудиоигры или приложения пользователю, такому как пользователь 18. Например, вычислительная среда 12 может включать в себя видеоадаптер, такой как графическая карта, и/или аудиоадаптер, такой как звуковая карта, которые могут обеспечивать аудиовизуальные сигналы, ассоциированные с игровым приложением, неигровым приложением или т.п. Аудиовизуальное устройство 16 может принимать аудиовизуальные сигналы от вычислительной среды 12 и может затем выводить визуальные сигналы и/или аудиоигры или приложения, ассоциированные с аудиовизуальными сигналами, пользователю 18. Согласно одному варианту осуществления аудиовизуальное устройство 16 может быть соединено с вычислительной средой 12 при помощи, например, кабеля S-Video (с раздельным видеосигналом), коаксиального кабеля, кабеля HDMI (мультимедийного интерфейса высокого разрешения), кабеля DVI (цифрового видеоинтерфейса), кабеля VGA (видеографического адаптера) или т.п.
Как показано на фиг.1А и 1В, система 10 распознавания, анализа и отслеживания цели может использоваться для распознавания, анализа и/или отслеживания человеческой цели, такой как пользователь 18. Например, пользователь 18 может отслеживаться с использованием устройства 20 захвата, так что жесты и/или движения пользователя 18 могут захватываться для анимации аватара или экранного персонажа и/или могут интерпретироваться в качестве элементов управления, которые могут использоваться для воздействия на приложение, исполняемое компьютерной средой 12. Таким образом, согласно одному варианту осуществления пользователь 18 может двигать свое тело для управления приложением и/или анимацией аватара или экранного персонажа.
Как показано на фиг.1А и 1В, в примерном варианте осуществления приложением, исполняющимся на вычислительной среде 12, может быть игра в бокс, в которую может играть пользователь 18. Например, вычислительная среда 12 может использовать аудиовизуальное устройство 16 для предоставления визуального представления соперника 38 в боксе пользователю 18. Вычислительная среда 12 также может использовать аудиовизуальное устройство 16 для предоставления визуального представления аватара 40 игрока, которым пользователь 18 может управлять при помощи своих движений. Например, как показано на фиг.1В, пользователь 18 может нанести удар в физическом пространстве, вызывая нанесение удара аватаром 40 игрока в игровом пространстве. Таким образом, согласно примерному варианту осуществления компьютерная среда 12 и устройство 20 захвата системы 10 распознавания, анализа и отслеживания цели могут использоваться для распознавания и анализа удара пользователя 18 в физическом пространстве, так что удар может интерпретироваться в качестве элемента управления игры аватаром 40 игрока в игровом пространстве, и/или движение удара может использоваться для анимации аватара 40 игрока в игровом пространстве.
Другие движения пользователя 18 также могут интерпретироваться в качестве других элементов управления или действий и/или использоваться для анимации аватара игрока, такие как элементы управления для легкого удара, качания, мелких боксерских шагов, блокирования, прямого удара по корпусу, или нанесения многочисленных разных мощных ударов. Кроме того, некоторые движения могут интерпретироваться в качестве элементов управления, которые могут соответствовать действиям кроме управления аватаром 40 игрока. Например, игрок может использовать движения для окончания, паузы или сохранения игры, выбора уровня, просмотра наивысших достижений, общения с другом и т.д. Кроме того, полный диапазон движения пользователя 18 может быть доступен, использоваться и анализироваться любым подходящим образом для взаимодействия с приложением.
В примерных вариантах осуществления человеческая цель, такая как пользователь 18, может иметь объект. В таких вариантах осуществления пользователь электронной игры может держать объект, так что движения игрока и объекта могут использоваться для корректирования и/или управления параметрами игры. Например, движение игрока, держащего ракетку, могут отслеживаться и использоваться для управления экранной ракеткой в электронной спортивной игре. В другом примерном варианте осуществления движение игрока, держащего объект, может отслеживаться и использоваться для управления экранным оружием в электронной военной игре.
Согласно другим примерным вариантам осуществления система 10 распознавания, анализа и отслеживания цели может дополнительно использоваться для интерпретации движений цели в качестве элементов управления операционной системой и/или приложением, которые находятся вне области действия игр. Например, фактически любой управляемый аспект операционной системы и/или приложения может управляться движениями цели, такой как пользователь 18.
Фиг.2 изображает примерный вариант осуществления устройства 20 захвата, которое может использоваться в системе 10 распознавания, анализа и отслеживания цели. Согласно примерному варианту осуществления устройство 20 захвата может быть выполнено с возможностью захвата видео с информацией глубины, включая изображение глубины, которое может включать в себя значения глубины посредством любого подходящего метода, включая в себя, например, метод времени пролета, структурированного света, стереоизображения или т.п. Согласно одному варианту осуществления устройство 20 захвата может организовывать информацию глубины в «Z-слоях» или слоях, которые могут быть перпендикулярны оси Z, отходящих от глубинной камеры вдоль ее линии прямой видимости.
Как показано на фиг.2, устройство 20 захвата может включать в себя компонент 22 камеры изображения. Согласно примерному варианту осуществления компонент 22 камеры изображения может представлять собой глубинную камеру, которая может захватывать изображение глубины сцены. Изображение глубины может включать в себя двумерную (2D) пиксельную область захваченной сцены, где каждый пиксель в пиксельной 2D-области может представлять значение глубины, такое как длина или расстояние, например, в сантиметрах, миллиметрах или т.п., объекта в захваченной сцене от камеры.
Как показано на фиг.2, согласно примерному варианту осуществления компонент 22 камеры изображения может включать в себя компонент 24 инфракрасного (IR) света, трехмерную (3D) камеру 26 и RGB-камеру 28, которые могут использоваться для захвата изображения глубины сцены. Например, в анализе времени пролета компонент 24 IR-света устройства 20 захвата может излучать инфракрасный свет в сцену и затем может использовать датчики (не показаны) для обнаружения света обратного рассеяния от поверхности одной или нескольких целей и объектов в сцене, используя, например, 3D-камеру 26 и/или RGB-камеру 28. В некоторых вариантах осуществления может использоваться импульсный инфракрасный свет, так что время между исходящим импульсом света и соответствующим входящим импульсом света может измеряться и использоваться для определения физического расстояния от устройства 20 захвата до конкретного расположения на целях или объектах в сцене. Кроме того, в других примерных вариантах осуществления фаза исходящей световой волны может сравниваться с фазой входящей световой волны для определения фазового сдвига. Фазовый сдвиг затем может использоваться для определения физического расстояния от устройства захвата до конкретного расположения на целях или объектах.
Согласно другому примерному варианту осуществления анализ времени пролета может использоваться для непосредственного определения физического расстояния от устройства 20 захвата до конкретного расположения на целях или объектах посредством анализа интенсивности отраженного луча света во времени посредством различных методов, включающих в себя, например, изображение импульса перекрываемого света.
В другом примерном варианте осуществления устройство 20 захвата может использовать структурированный свет для захвата информации о глубине. При таком анализе узорчатый свет (т.е. свет, отображаемый в виде известного узора, такого как сетчатый узор или полосовой узор) может проецироваться на сцену при помощи, например, компонента 24 IR-света. При падении на поверхность одной или нескольких целей или объектов в сцене узор может становиться в ответ деформированным. Такая деформация узора может захватываться, например, 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.11b, g, a или n. Согласно одному варианту осуществления вычислительная среда 12 может подавать тактовые импульсы на устройство 20 захвата, которые могут использоваться для определения, когда захватывать, например, сцену, посредством линии 36 связи.
Кроме того, устройство 20 захвата может предоставлять информацию глубины и изображения, захваченные, например, 3D-камерой 26 и/или RGB-камерой 28, и/или скелетную модель, которая может генерироваться устройством 20 захвата, вычислительной среде 12 при помощи линии 36 связи. Вычислительная среда 12 затем может использовать модель, информацию глубины и захваченные изображения, например, для управления приложением, таким как игра или текстовой процессор, и/или анимации аватара или экранного персонажа. Например, как показано на фиг.2, вычислительная среда 12 может включать в себя библиотеку 190 жестов. Библиотека 190 жестов может включать в себя коллекцию фильтров жестов, причем каждый содержит информацию, касающуюся жеста, который может выполняться скелетной моделью (когда пользователь движется). Данные, захваченные камерами 26, 28 и устройством 20 захвата в виде скелетной модели, и движения, ассоциированные с ними, могут сравниваться с фильтрами жестов в библиотеке 190 жестов для идентификации, когда пользователь (представленный скелетной моделью) выполнил одно или несколько жестов. Эти жесты могут ассоциироваться с различными элементами управления приложением. Таким образом, вычислительная среда 12 может использовать библиотеку 190 жестов для интерпретации движений скелетной модели и управления приложением на основе движений.
Фиг.3 изображает примерный вариант осуществления вычислительной среды, которая может использоваться для интерпретации одного или нескольких жестов в системе распознавания, анализа и отслеживания цели и/или анимации аватара или экранного персонажа, отображаемых системой распознавания, анализа и отслеживания цели. Вычислительная среда, такая как вычислительная среда 12, описанная выше в отношении фиг.1А-2, может представлять собой мультимедийную консоль 100, такую как игровая консоль. Как показано на фиг.3, мультимедийная консоль 100 имеет центральный блок 101 обработки (CPU), имеющий кэш 102 уровня 1, кэш 104 уровня 2 и флэш-ROM (постоянное запоминающее устройство) 106. Кэш 102 уровня 1 и кэш 104 уровня 2 временно хранят данные и, следовательно, уменьшают количество циклов обращения к памяти, тем самым повышая скорость обработки и производительность. CPU 101 может обеспечиваться имеющим более одного ядра, и, таким образом, дополнительные кэши 102 и 104 уровня 1 и уровня 2. Флэш-ROM 106 может хранить исполняемый код, который загружается во время начальной фазы процесса начальной загрузки, когда включается питание на мультимедийной консоли 100.
Блок 108 обработки графики (GPU) и видеокодер/видеокодек (кодер/декодер) 114 образуют конвейер обработки видео для обработки графики с высокой скоростью и высоким разрешением. Данные переносятся с блока 108 обработки графики на видеокодер/видеокодек 114 по шине. Конвейер обработки видео выводит данные на порт 140 аудио/видео (A/V) для передачи на телевизор или другое устройство отображения. Контроллер 110 памяти соединен с GPU 108, чтобы способствовать доступу процессора к различным типам памяти 112, такой как, но не ограничиваясь ей, оперативное запоминающее устройство (RAM).
Мультимедийная консоль 100 включает в себя контроллер 120 ввода/вывода (I/O), контроллер 122 администрирования системы, блок 123 обработки аудио, контроллер 124 сетевого интерфейса, первый контроллер 126 USB-хоста, второй контроллер 128 USB и подузел 130 ввода-вывода (I/O) на передней панели, которые предпочтительно реализованы на модуле 118. Контроллеры 126 и 128 USB служат в качестве хостов для периферийных органов управления 142(1)-142(2), беспроводного адаптера 148 и устройства 146 внешней памяти (например, флэш-памяти, внешнего накопителя на CD/DVD, съемного носителя и т.д.). Сетевой интерфейс 124 и/или беспроводный адаптер 148 обеспечивают доступ к сети (например, Интернету, домашней сети и т.д.) и могут быть любыми из многочисленных различных компонентов проводных или беспроводных адаптеров, включая карту Ethernet, модем, модуль Bluetooth, кабельный модем и т.п.
Системная память 143 обеспечивается для хранения данных приложения, которые загружаются во время процесса начальной загрузки. Обеспечивается накопитель 144 на носителе, и он может содержать накопитель на DVD/CD, накопитель на жестком диске или другой накопитель со съемным носителем и т.д. Накопитель 144 на носителе может быть внутренним или внешним для мультимедийной консоли 100. К данным приложения может обращаться накопитель 144 на носителе для исполнения, проигрывания и т.д. посредством мультимедийной консоли 100. Накопитель 144 на носителе соединен с контроллером 120 I/O посредством шины, такой как шины Serial ATA, или другого высокоскоростного соединения (например, IEEE 1394).
Контроллер 122 администрирования системы обеспечивает многочисленные функции обслуживания, относящиеся к обеспечению доступности мультимедийной консоли 100. Блок 123 обработки аудио и аудиокодек 132 образуют соответствующий конвейер обработки аудио с обработкой с высоким качеством и стерео. Аудиоданные переносятся между блоком 123 обработки аудио и аудиокодеком 132 при помощи линии связи. Конвейер обработки аудио выводит данные на порт 140 A/V для воспроизведения внешним аудиоплеером или устройством, имеющим аудиовозможности.
Подузел 130 I/O на передней панели поддерживает функциональную возможность кнопки 150 включения питания и кнопки 152 выброса, а также любых LED (светоизлучающих диодов) или других индикаторов, установленных открыто на внешней поверхности мультимедийной консоли 100. Модуль 136 источника питания системы обеспечивает питание для компонентов мультимедийной консоли 100. Вентилятор 138 охлаждает схемы в мультимедийной консоли 100.
CPU 101, GPU 108, контроллер 110 памяти и различные другие компоненты в мультимедийной консоли 100 соединены между собой посредством одной или нескольких шин, включая последовательные и параллельные шины, шину памяти, периферийную шину и процессорную или локальную шину, используя любую из многочисленных шинных архитектур. В качестве примера такие архитектуры могут включать в себя шину межсоединения периферийных компонентов (PCI), шину PCI-Express и т.д.
Когда мультимедийная консоль 100 включается, данные приложения могут загружаться из системной памяти 143 в память 112 и/или кэши 102, 104 и исполняться на CPU 101. Приложение может представлять графический пользовательский интерфейс, который обеспечивает единообразное пользовательское впечатление при навигации к другим типам носителей, доступным на мультимедийной консоли 100. При работе приложения и/или другие носители, содержащиеся в накопителе 144 на носителе, могут запускаться или проигрываться с накопителя 144 на носителе для обеспечения дополнительных функциональных возможностей мультимедийной консоли 100.
Мультимедийная консоль 100 может работать в качестве автономной системы посредством простого подключения системы к телевизору или другому устройству отображения. В этом автономном режиме мультимедийная консоль 100 позволяет одному или нескольким пользователям взаимодействовать с системой, смотреть фильмы или слушать музыку. Однако при интеграции возможности широкополосного подключения, выполненной доступной при помощи сетевого интерфейса 124 или беспроводного адаптера 148, мультимедийная консоль 100 может дополнительно работать в качестве участника в большем сетевом сообществе.
Когда подается питание на мультимедийную консоль 100, установленное количество аппаратных ресурсов резервируется для системного использования операционной системой мультимедийной консоли. Эти ресурсы могут включать в себя резервирование памяти (например, 16 Мбайт), циклов CPU и GPU (например, 5%), пропускной способности сети (например, 8 кбит/с) и т.д. Так как эти ресурсы резервируются во время начальной загрузки системы, зарезервированные ресурсы не существуют с точки зрения приложения.
В частности, резервирование памяти предпочтительно достаточно большое, чтобы содержать ядро запуска, одновременные системные приложения и драйверы. Резервирование CPU является предпочтительно постоянным, так что если зарезервированное использование CPU не используется системными приложениями, поток простоя потребляет любые неиспользованные циклы.
Что касается резервирования GPU, упрощенные сообщения, генерируемые системными приложениями (например, всплывающие элементы), отображаются посредством использования прерывания GPU кода планирования для визуализации всплывающего элемента в наложение. Количество памяти, требуемое для наложения, зависит от размера области наложения, и наложение предпочтительно масштабируется с разрешением экрана. Когда используется полный пользовательский интерфейс одновременным системным приложением, предпочтительно использовать разрешение, независимо от разрешения приложения. Может использоваться блок масштабирования для установки данного разрешения, так что устраняется необходимость изменения частоты и причина ресинхронизации телевизора.
После того как мультимедийная консоль 100 выполнит начальную загрузку и системные ресурсы будут зарезервированы, исполняются одновременные системные приложения для обеспечения системных функциональных возможностей. Системные функциональные возможности инкапсулируются в набор системных приложений, которые исполняются в пределах зарезервированных системных ресурсов, описанных выше. Ядро операционной системы идентифицирует потоки, которыми являются потоки системных приложений по отношению к потокам игровых приложений. Системные приложения предпочтительно планируются для выполнения на CPU 101 в предварительно заданные моменты времени и интервалы, чтобы обеспечить согласованное представление системных ресурсов приложению. Планирование предназначено для минимизирования прерывания кэша для игровых приложений, выполняющихся на консоли.
Когда одновременное системное приложение требует аудио, обработка аудио планируется асинхронно игровому приложению из-за зависимости от времени. Администратор приложений мультимедийной консоли (описан ниже) управляет уровнем аудио игрового приложения (например, заглушен, ослаблен), когда активны системные приложения.
Устройства ввода (например, органы управления 142(1) и 142(2)) совместно используются игровыми приложениями и системными приложениями. Устройствам ввода не резервируются ресурсы, но должны переключаться между системными приложениями и игровыми приложениями, так что каждое имеет фокус устройства. Администратор приложений предпочтительно управляет переключением входного потока, без знания относительно знания игрового приложения, и драйвер сохраняет информацию о состоянии, касающуюся переключателей фокуса. Камеры 26, 28 и устройство 20 захвата могут определять дополнительные устройства ввода для консоли 100.
Фиг.4 изображает другой примерный вариант осуществления вычислительной среды 220, которой может быть вычислительная среда 12, показанная на фиг.1А-2, используемой для интерпретации одного или нескольких жестов в системе распознавания, анализа и отслеживания цели и/или анимации аватара или экранного персонажа, отображаемых системой распознавания, анализа и отслеживания цели. Вычислительная системная среда 220 представляет собой только один пример подходящей вычислительной среды и, как предполагается, не предлагает никакого ограничения в отношении объема использования или функциональных возможностей раскрытого в настоящее время предмета изобретения. Вычислительная среда 220 также не должна интерпретироваться как имеющая какую-либо зависимость или требование, относящееся к любому одному или комбинации компонентов, изображенных в примерной операционной среде 220. В некоторых вариантах осуществления различные описанные вычислительные элементы могут включать в себя схемы, выполненные с возможностью реализации конкретных аспектов настоящего раскрытия. Например, термин «схемы», используемый в раскрытии, может включать в себя специализированные аппаратные компоненты, выполненные с возможностью выполнения функции(-ий) программно-аппаратными средствами или переключателями. В других примерных вариантах осуществления термин «схемы» может включать в себя блок обработки общего назначения, память и т.п., конфигурируемые программными инструкциями, которые воплощают логику, осуществимую для выполнения функции(-ий). В примерных вариантах осуществления, где схемы включают в себя комбинацию аппаратных и программных средств, конструктор может написать исходный код, воплощающий логику, и исходный код может компилироваться в считываемый машиной код, который может обрабатываться блоком обработки общего назначения. Так как специалист в данной области техники может оценить, что состояние техники эволюционировало до уровня, когда существует малая разница между аппаратными средствами, программными средствами или комбинацией аппаратных/программных средств, выбор аппаратных средств по отношению к программным средствам для осуществления конкретных функций представляет собой проектное решение, оставленное на усмотрение конструктора. Более конкретно, специалист в данной области техники может оценить, что программный процесс может быть преобразован в эквивалентную аппаратную конструкцию, и аппаратная конструкция сама может быть преобразована в эквивалентный программный процесс. Таким образом, выбор аппаратной реализации по отношению к программной реализации является одним из проектных решений и остается на усмотрение конструктора.
На фиг.4 вычислительная среда 220 содержит компьютер 241, который обычно включает в себя многочисленные считываемые компьютером носители. Считываемыми компьютером носителями могут быть любые доступные носители, к которым может обращаться компьютер 241, и они включают в себя как энергозависимые, так и энергонезависимые носители, как съемные, так и несъемные носители. Системная память 222 включает в себя носители данных компьютера в виде энергозависимой и/или энергонезависимой памяти, такой как постоянное запоминающее устройство (ROM) 223 и оперативное запоминающее устройство (RAM) 260. Базовая система 224 ввода/вывода (BIOS), содержащая базовые подпрограммы, которые способствуют переносу информации между элементами в компьютере 241, например, во время запуска, обычно хранится в ROM 223. RAM 260 обычно содержит данные и/или программные модули, которые являются немедленно доступными для блока 259 обработки и/или обрабатываются им в настоящий момент. В качестве примера, а не ограничения, фиг.4 изображает операционную систему 225, прикладные программы 226, другие программные модули 227 и программные данные 228.
Компьютер 241 также может включать в себя другие съемные/несъемные, энергозависимые/энергонезависимые носители данных компьютера. Исключительно в качестве примера фиг.4 изображает накопитель 238 на жестком диске, который считывает с несъемного, энергонезависимого магнитного носителя или записывает на него, накопитель 239 на магнитных дисках, который считывает со съемного, энергонезависимого магнитного диска 254 или записывает на него, и накопитель 240 на оптическом диске, который считывает со съемного энергонезависимого оптического диска 253, такого как CD-ROM или другие оптические носители, или записывает на них. Другие съемные/несъемные, энергозависимые/энергонезависимые носители данных компьютера, которые могут использоваться в примерной операционной среде, включают в себя, но не ограничиваются ими, кассеты с магнитной лентой, карты флэш-памяти, цифровые многофункциональные диски, цифровую видеоленту, твердотельное RAM, твердотельное ROM и т.п. Накопитель 238 на жестком диске обычно соединен с системной шиной 221 посредством интерфейса несъемной памяти, такого как интерфейс 234, и накопитель 239 на магнитных дисках и накопитель 240 на оптическом диске обычно соединены с системной шиной 221 посредством интерфейса съемной памяти, такого как интерфейс 235.
Накопители и связанные с ними носители данных компьютера, описанные выше и изображенные на фиг.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 вывода.
Компьютер 241 может работать в сетевой среде, используя логические соединения с одним или несколькими удаленными компьютерами, такими как удаленный компьютер 246. Удаленным компьютером 246 может быть персональный компьютер, сервер, маршрутизатор, сетевой персональный компьютер (PC), одноранговое устройство или другой общий узел сети и обычно включает в себя многие или все из элементов, описанных выше в отношении компьютера 241, хотя только запоминающее устройство 247 памяти изображено на фиг.4. Логические соединения, изображенные на фиг.2, включают в себя локальную сеть (LAN) 245 и глобальную сеть (WAN) 249, но также могут включать в себя другие сети. Такие сетевые среды являются обычными в офисах, компьютерных сетях масштаба предприятия, интрасетях и Интернете.
Когда компьютер 241 используется в сетевой среде LAN, он соединяется с LAN 245 посредством сетевого интерфейса или адаптера 237. Когда компьютер 241 используется в сетевой среде WAN, он обычно включает в себя модем 250 или другое средство для установления связи по WAN 249, такой как Интернет. Модем 250, который может быть внутренним или внешним, может быть соединен с системной шиной 221 при помощи интерфейса 236 ввода пользователя или другого соответствующего механизма. В сетевой среде программные модули, описанные в отношении компьютера 241 или его частей, могут храниться в удаленном запоминающем устройстве памяти. В качестве примера, а не ограничения, фиг.4 изображает удаленные прикладные программы 248 как постоянно находящиеся на устройстве 247 памяти. Понятно, что показанные сетевые соединения являются примерными, и могут использоваться другие средства установления линии связи между компьютерами.
Фиг.5 изображает блок-схему последовательности операций примерного способа 300 захвата движений пользователя в сцене. Примерный способ 300 может быть реализован с использованием, например, устройства 20 захвата и/или вычислительной среды 12 системы 10 распознавания, анализа и отслеживания цели, описанной в отношении фиг.1А-4. В примерном варианте осуществления примерный способ 300 может принимать вид программного кода (т.е. инструкций), которые могут исполняться, например, устройством 20 захвата и/или вычислительной средой 12 системы 10 распознавания, анализа и отслеживания цели, описанной в отношении фиг.1А-4.
Согласно одному варианту осуществления в позиции 305 может приниматься изображение. Например, система распознавания, анализа и отслеживания цели может включать в себя устройство захвата, такое как устройство 20 захвата, описанное выше в отношении фиг.1А-2. Устройство захвата может захватывать или наблюдать сцену, которая может включать в себя одну или несколько целей. В примерном варианте осуществления устройство захвата может представлять собой глубинную камеру, выполненную с возможностью получения изображения, такого как RGB-изображение, изображение глубины или т.п. сцены, используя любой подходящий метод, такой как анализ времени пролета, анализ структурированного света, анализ стереозрения или т.п.
Например, в одном варианте осуществления изображение может включать в себя изображение глубины. Изображение глубины может представлять собой множество наблюдаемых пикселей, где каждый наблюдаемый пиксель имеет значение наблюдаемой глубины. Например, изображение глубины может включать в себя двумерную (2D) пиксельную область захваченной сцены, где каждый пиксель в 2D пиксельной области может представлять значение глубины, такое как длина или расстояние, например, в сантиметрах, миллиметрах или т.п. объекта в захваченной сцене, от устройства захвата.
Фиг.6 изображает примерный вариант осуществления изображения 400 глубины, которое может приниматься в позиции 305. Согласно примерному варианту осуществления изображение 400 глубины может представлять собой изображение или кадр сцены, захваченной, например, посредством 3D-камеры 26 и/или RGB-камеры 28 устройства 20 захвата, описанного выше в отношении фиг.2. Как показано на фиг.6, изображение 400 глубины может включать в себя человеческую цель 402, соответствующую, например, пользователю, такому как пользователь 18, описанный выше в отношении фиг.1А и 1В, и одной или нескольким нечеловеческим целям 404, таким как стенка, стол, монитор или т.п. в захваченной сцене. Как описано выше, изображение 400 глубины может включать в себя множество наблюдаемых пикселей, где каждый наблюдаемый пиксель имеет значение наблюдаемой глубины, ассоциированное с ним. Например, изображение 400 глубины может включать в себя двумерную (2D) пиксельную область захваченной сцены, где каждый пиксель в 2D-пиксельной области может представлять значение глубины, такое как длина или расстояние, например, в сантиметрах, миллиметрах или т.п. цели или объекта в захваченной сцене от устройства захвата. В одном варианте осуществления изображение 400 глубины может быть окрашено, так что разные цвета пикселей изображения глубины соответствуют и/или визуально описывают разные расстояния человеческой цели 402 и нечеловеческих целей 404 от устройства захвата. Например, согласно одному варианту осуществления пиксели, ассоциированные с целью, ближайшей к устройству захвата, могут быть окрашены оттенками красного и/или оранжевого цвета в изображении глубины, тогда как пиксели, ассоциированные с целью дальше, могут быть окрашены оттенками зеленого и/или синего цвета в изображении глубины.
Возвращаясь к фиг.5, в одном варианте осуществления при приеме изображения в позиции 305 изображение может дискретизироваться с понижением до меньшего разрешения обработки, так что изображение глубины может легче использоваться и/или более быстро обрабатываться с меньшими вычислительными затратами. Кроме того, одно или несколько значений глубины с большой дисперсией и/или шумом могут быть удалены и/или сглажены из изображения глубины; части с отсутствующей и/или удаленной информацией глубины могут быть заполнены и/или восстановлены; и/или любая другая подходящая обработка может быть выполнена над принятой информацией глубины так, что информация глубины может использоваться для генерирования модели, такой как скелетная модель, которая описывается более подробно ниже.
В позиции 310 может генерироваться модель пользователя в изображении. Например, при приеме изображения система распознавания, анализа и отслеживания цели может определить, включает ли изображение глубины человеческую цель, соответствующую, например, пользователю, такому как пользователь 18, описанный выше в отношении фиг.1А-1В, посредством заливки каждой цели или объекта в изображении глубины и сравнения каждой цели или объекта с заливкой с шаблоном, ассоциированным с моделью тела человека в различных позициях или позах. Цель или объект с заливкой, который совпадает с образцом, затем может изолироваться и сканироваться для определения значений, включающих в себя, например, измерения различных частей тела. Согласно примерному варианту осуществления модель, такая как скелетная модель, сетчатая модель или т.п., затем может генерироваться на основе сканирования. Например, согласно одному варианту осуществления значения измерения, которые могут быть определены посредством сканирования, могут сохраняться в одной или нескольких структурах данных, которые могут использоваться для определения одного или нескольких суставов в модели. Один или несколько суставов могут использоваться для определения одной или нескольких костей, которые могут соответствовать части тела человека.
Фиг.7 изображает примерный вариант осуществления модели 500, которая может генерироваться для человеческой цели, например, в позиции 310. Согласно примерному варианту осуществления модель 500 может включать в себя одну или несколько структур данных, которые могут представлять, например, человеческую цель 402, описанную выше в отношении фиг.6, в качестве трехмерной модели. Каждая часть тела может характеризоваться в виде математического вектора, определяющего суставы и кости модели 500.
Как показано на фиг.7, модель 500 может включать в себя один или несколько суставов j1-j18. Согласно примерному варианту осуществления каждый из суставов j1-j18 может предоставлять возможность одной или нескольким частям тела, определенным между ними, двигаться относительно одной или нескольких других частей тела. Например, модель, представляющая человеческую цель, может включать в себя множество жестких и/или деформируемых частей тела, которые могут определяться одним или несколькими конструктивными элементами, такими как «кости» с суставами j1-j18, расположенными в точках пересечения соседних костей. Суставы j1-18 могут давать возможность различным частям тела, ассоциированным с костями и суставами j1-j18, двигаться независимо друг от друга. Например, кость, определенная между суставами j7 и j11, показанная на фиг.7, может соответствовать предплечью, которое может двигаться независимо, например, от кости, определенной между суставами j15 и j17, которая может соответствовать задней части голени.
Как описано выше, каждая часть тела может характеризоваться в качестве математического вектора, имеющего значение X, значение Y и значение Z, определяющие суставы и кости, показанные на фиг.7. В примерном варианте осуществления точка пересечения векторов, ассоциированных с костями, показанными на фиг.7, может определять соответствующую точку, ассоциированную с суставами j1-j18.
Возвращаясь обратно к фиг.5, в позиции 315 модель затем может отслеживаться, так что модель может корректироваться на основе движения пользователя. Согласно одному варианту осуществления модель, такая как модель 500, описанная выше в отношении фиг.7, может представлять собой представление пользователя, такого как пользователь 18, описанный выше в отношении фиг.1А и 1В. Система распознавания, анализа и отслеживания цели может наблюдать или захватывать движения от пользователя, такого как пользователь 18, которые могут использоваться для корректировки модели.
Например, устройство захвата, такое как устройство 20 захвата, описанное выше в отношении фиг.1А-2, может наблюдать или захватывать многочисленные изображения, такие как изображения глубины, RGB-изображения или т.п. сцены, которые могут использоваться для корректирования модели. Согласно одному варианту осуществления каждое изображение может наблюдаться или захватываться на основе определенной частоты. Например, устройство захвата может наблюдать или захватывать новое изображение сцены каждую миллисекунду, микросекунду или т.п.
При приеме каждого изображения информация, ассоциированная с конкретным изображением, может сравниваться с информацией, ассоциированной с моделью для определения, было ли выполнено движение пользователем. Например, в одном варианте осуществления модель может растеризоваться в синтезированное изображение, такое как синтезированное изображение глубины. Пиксели в синтезированном изображении могут сравниваться с пикселями, ассоциированными с человеческой целью в каждом принятом изображении для определения, выполнило ли движение человеческая цель в принятом изображении.
Согласно примерному варианту осуществления один или несколько векторов силы могут вычисляться на основе пикселей, сравниваемых между синтезированным изображением и принятым изображением. Одна или несколько сил затем могут быть приложены к или сопоставлены с одним или несколькими принимающими силу аспектами, такими как суставы модели, для корректирования модели в позу, которая более точно соответствует позе человеческой цели или пользователя в физическом пространстве.
Согласно другому варианту осуществления модель может корректироваться для подгонки к маске или представлению человеческой цели в каждом принятом изображении, чтобы корректировать модель на основе движения пользователя. Например, при приеме каждого наблюдаемого изображения векторы, включающие в себя значения X, Y и Z, которые могут определять каждую кость и сустав, могут корректироваться на основе маски человеческой цели в каждом принятом изображении. Например, модель может двигаться по направлению X и/или направлению Y, основываясь на значениях X и Y, ассоциированных с пикселями маски человека в каждом принятом изображении. Кроме того, суставы и кости модели могут поворачиваться в направлении Z на основе значений глубины, ассоциированных с пикселями маски человеческой цели в каждом из принятых изображений.
Фиг.8А-8С изображают примерный вариант осуществления модели, корректируемой на основе движения или жестов пользователя, такого как пользователь 18, описанный выше в отношении фиг.1А и 1В. Как показано на фиг.8А-8С, модель 500, описанная выше в отношении фиг.7, может корректироваться на основе движений или жестов пользователя в различных точках, наблюдаемых и захватываемых в изображениях глубины, принятых в различные моменты времени, как описано выше. Например, как показано на фиг.8А, суставы j4, j8 и j12 и кости, определенные между ними модели 500, могут корректироваться для представления позы 502, когда пользователь поднимает свою левую руку, применяя один или несколько векторов силы или корректируя модель для подгонки к маске для человеческой цели в изображениях, принятых в различные моменты времени, как описано выше. Суставы j8 и j12 и кость, определенная между ними, могут дополнительно корректироваться в позу 504 и 506, как показано на фиг.8В-8С, когда пользователь машет посредством движения своим левым предплечьем. Таким образом, согласно примерному варианту осуществления математический вектор, определяющий суставы j4, j8 и j12 и кости, ассоциированные с предплечьем и двуглавой мышцей между ними, может включать в себя векторы со значением X, значением Y и значением Z, которые могут корректироваться так, чтобы соответствовать позам 502, 504 и 506, приложением векторов силы или подгонкой к модели в маске, как описано выше.
Ссылаясь обратно на фиг.5, в позиции 320 может генерироваться файл захвата движений отслеживаемой модели. Например, система распознавания, анализа и отслеживания цели может визуализировать и сохранять файл захвата движений, который может включать в себя одно или несколько движений, таких как махающее движение, размахивающее движение, такое как гольф-взмах, ударяющее движение, шагающее движение, бегущее движение или т.п., характерное для пользователя, такого как пользователь 18, описанный выше в отношении фиг.1А и 1В. Согласно одному варианту осуществления файл захвата движений может генерироваться в реальном времени, основываясь на информации, ассоциированной с отслеживаемой моделью. Например, в одном варианте осуществления файл захвата движений может включать в себя, например, векторы, включающие в себя значения X, Y и Z, которые могут определять суставы и кости модели, когда она отслеживается в различные моменты времени.
В одном примерном варианте осуществления пользователю может быть подсказано выполнение различных движений, которые могут быть захвачены в файле захвата движений. Например, может отображаться интерфейс, который может подсказывать пользователю, например, пройти шагом или выполнить движение гольф-взмах. Как описано выше, затем отслеживаемая модель может корректироваться на основе движений в различные моменты времени, и файл захвата движений модели для подсказанного движения может генерироваться и сохраняться.
В другом варианте осуществления файл захвата движений может захватывать отслеживаемую модель во время естественного движения пользователя посредством взаимодействия пользователя с системой распознавания, анализа и отслеживания цели. Например, файл захвата движений может генерироваться, так что файл захвата движений может естественно захватывать любое движение или передвижение пользователем во время взаимодействия с системой распознавания, анализа и отслеживания цели.
Согласно одному варианту осуществления файл захвата движений может включать в себя кадры, соответствующие, например, моментальному снимку движения пользователя в разные моменты времени. При захвате отслеживаемой модели информация, ассоциированная с моделью, включающая в себя любые движения или корректирования, примененные к ней в конкретный момент времени, может визуализироваться в кадре файла захвата движений. Информация в кадре может включать в себя, например, векторы, включающие в себя значения X, Y и Z, которые могут определять суставы и кости отслеживаемой модели, и временную метку, которая может указывать момент времени, при котором, например, пользователь выполнил движение, соответствующее позе отслеживаемой модели.
Например, как описано выше в отношении фиг.8А-8С, модель 500 может отслеживаться и корректироваться, образуя позы 502, 504 и 506, которые могут указывать, что пользователь машет своей левой рукой в конкретные моменты времени. Информация, ассоциированная с суставами и костями модели 500 для каждой из поз 502, 504 и 506, может захватываться в файл захвата движений.
Например, поза 502 модели 500, показанной на фиг.8А, может соответствовать моменту времени, когда пользователь первоначально поднимает свою левую руку. Поза 502, включающая в себя информацию, такую как значения X, Y и Z суставов и костей для позы 502, может визуализироваться, например, в первом кадре файла захвата движений, имеющего первую временную метку, ассоциированную с моментом времени, после того как пользователь поднимет свою левую руку.
Аналогично, позы 504 и 506 модели 500, показанные на фиг.8В и 8С, могут соответствовать моменту времени, когда пользователь машет своей левой рукой. Позы 504 и 506, включающие в себя информацию, такую как значения X, Y и Z суставов и костей для поз 504 и 506, могут визуализироваться, например, в соответствующем втором и третьем кадрах файла захвата движений, имеющего соответствующие вторую и третью временные метки, ассоциированные с другим моментом времени, когда пользователь машет своей левой рукой.
Согласно примерному варианту осуществления первый, второй и третий кадры, ассоциированные с позами 502, 504 и 506, могут визуализироваться в файле захвата движений в последовательном временном порядке в соответствующие первую, вторую и третью временные метки. Например, первый кадр, визуализируемый для позы 502, может иметь первую временную метку 0 секунд, когда пользователь поднимает свою левую руку, второй кадр, визуализируемый для позы 504, может иметь вторую временную метку в 1 секунду, после того как пользователь передвинет свою левую руку в направлении наружу для начала махающего движения, и третий кадр, визуализируемый для позы 506, может иметь третью временную метку в 2 секунды, когда пользователь передвинет свою левую руку в направлении внутрь для завершения махающего движения.
В позиции 325 файл захвата движений может быть применен к аватару или персонажу игры. Например, система распознавания, анализа и отслеживания цели может применить одно или несколько движений отслеживаемой модели, захваченной в файле захвата движений, к аватару или персонажу игры, так что аватар или персонаж игры может анимироваться, имитируя движения, выполняемые пользователем, таким как пользователь 18, описанный выше в отношении фиг.1А и 1В. В примерном варианте осуществления суставы и кости в модели, захваченной в файле захвата движений, могут сопоставляться с конкретными частями персонажа игры или аватара. Например, сустав, ассоциированный с правым локтем, может сопоставляться с правым локтем аватара или персонажа игры. Правый локоть затем может анимироваться, имитируя движения правого локтя, ассоциированные с моделью пользователя в каждом кадре файла захвата движений.
Согласно примерному варианту осуществления система распознавания, анализа и отслеживания цели может применить одно или несколько движений, когда движения захватываются в файл захвата движений. Таким образом, когда кадр визуализируется в файле захвата движений, движения, захваченные в кадре, могут применяться к аватару или персонажу игры, так что аватар или персонаж игры могут анимироваться, немедленно имитируя движения, захваченные в кадре.
В другом варианте осуществления система распознавания, анализа и отслеживания цели может применять одно или несколько движений, после того как движения могут быть захвачены в файле захвата движений. Например, движение, такое как шагающее движение, может выполняться пользователем и захватываться и сохраняться в файле захвата движений. Движение, такое как шагающее движение, затем может применяться к аватару или персонажу игры каждый раз, например, когда пользователь впоследствии выполняет жест, распознаваемый в качестве элемента управления, ассоциированного с движением, таким как шагающее движение пользователя. Например, когда пользователь поднимает свою левую ногу, может инициироваться команда, которая вызывает ходьбу аватара. Аватар затем может начать ходьбу и может анимироваться на основе шагающего движения, ассоциированного с пользователем и сохраненного в файле захвата движений.
Фиг.9А-9С изображают примерный вариант осуществления аватара или персонажа 600 игры, которые могут анимироваться на основе файла захвата движений, например, в позиции 325. Как показано на фиг.9А-9С, аватар или персонаж 600 игры могут анимироваться для имитации махающего движения, захваченного для отслеживаемой модели 500, описанной выше в отношении фиг.8А-8С. Например, суставы j4, j8 и j12 и кости, определенные между ними, модели 500, показанной на фиг.8А-8С, могут сопоставляться с суставом j4' левого плеча, суставом j8' левого локтя и суставом j12' левого запястья и соответствующими костями аватара или персонажа 600 игры, как показано на фиг.9А-9С. Аватар или персонаж 600 игры затем может анимироваться в позы 602, 604 и 606, которые имитируют позы 502, 504 и 506 модели 500, показанной на фиг.8А-8С в соответствующие первую, вторую и третью временные метки в файле захвата движений.
Таким образом, в примерном варианте осуществления визуальный внешний вид экранного персонажа может изменяться под действием файла захвата движений. Например, играющий в игру, такой как пользователь 18, описанный выше в отношении фиг.1А-1В, играющий в электронную игру на игровой консоли, может отслеживаться игровой консолью, как описано в данном документе. Когда играющий в игру взмахивает рукой, игровая консоль может отслеживать это движение, затем в ответ на отслеживаемое движение корректировать модель, такую как скелетная модель, сетчатая модель или т.п., ассоциированные с пользователем соответствующим образом. Как описано выше, отслеживаемая модель может дополнительно захватываться в файле захвата движений. Файл захвата движений затем может применяться к экранному персонажу, так что экранный персонаж может анимироваться для имитации фактического движения пользователя, взмахивающего своей рукой. Согласно примерным вариантам осуществления экранный персонаж может анимироваться для взмаха, например, клюшкой для игры в гольф, битой, или нанесения удара в игре, точь-в-точь как пользователь взмахивает своей рукой.
Необходимо понять, что конфигурации и/или подходы, описанные в данном документе, являются примерными по своей сущности и что эти конкретные варианты осуществления или примеры не должны рассматриваться ограничивающими. Конкретные подпрограммы или способы, описанные в данном документе, могут представлять одну или несколько из любого количества стратегий обработки. По существу, различные изображенные действия могут выполняться в изображенной последовательности, в других последовательностях, параллельно или т.п. Аналогично порядок вышеупомянутых процессов может быть изменен.
Предмет изобретения настоящего раскрытия включает в себя все новые и неочевидные комбинации и субкомбинации различных процессов, систем и конфигураций и других признаков, функций, действий и/или свойств, описанных в данном документе, а также в любом и во всех его эквивалентах.
название | год | авторы | номер документа |
---|---|---|---|
СИСТЕМА И СПОСОБЫ ДЛЯ ПРИМЕНЕНИЯ АНИМАЦИЙ ИЛИ ДВИЖЕНИЙ К ПЕРСОНАЖУ | 2010 |
|
RU2544770C2 |
ВЫРАЖЕНИЕ ВИЗУАЛЬНОГО ПРЕДСТАВЛЕНИЯ, ОСНОВАННОЕ НА ВЫРАЖЕНИИ ИГРОКА | 2010 |
|
RU2560794C2 |
ВОПЛОЩЕНИЕ ВИЗУАЛЬНОГО ПРЕДСТАВЛЕНИЯ С ПОМОЩЬЮ ИЗУЧЕННОГО ВВОДА ОТ ПОЛЬЗОВАТЕЛЯ | 2010 |
|
RU2554548C2 |
АВТОМАТИЧЕСКОЕ ГЕНЕРИРОВАНИЕ ВИЗУАЛЬНОГО ПРЕДСТАВЛЕНИЯ | 2010 |
|
RU2560340C2 |
СВЯЗЫВАНИЕ АНИМАЦИЙ | 2010 |
|
RU2530708C2 |
МАНИПУЛИРОВАНИЕ ВИРТУАЛЬНЫМ ОБЪЕКТОМ | 2010 |
|
RU2555228C2 |
ЖЕСТОВЫЕ СОКРАЩЕНИЯ | 2010 |
|
RU2574830C2 |
СТАНДАРТНЫЕ ЖЕСТЫ | 2010 |
|
RU2534941C2 |
СИСТЕМА ДЛЯ РАСПОЗНАВАНИЯ И ОТСЛЕЖИВАНИЯ ПАЛЬЦЕВ | 2012 |
|
RU2605370C2 |
ВИЗУАЛЬНОЕ ОТСЛЕЖИВАНИЕ ЦЕЛИ | 2010 |
|
RU2530334C2 |
Изобретение относится к области захвата движений. Техническим результатом является эффективный захват движений пользователя в сцене. Изображение, такое как изображение глубины сцены, может приниматься, наблюдаться или захватываться устройством, и может генерироваться модель пользователя в изображении. Модель затем может корректироваться для имитации одного или нескольких движений пользователя. Например, моделью может быть скелетная модель, имеющая суставы и кости, которые могут корректироваться в позы, соответствующие движениям пользователя в физическом пространстве. Файл захвата движений по отношению к движению пользователя может генерироваться в реальном времени, основываясь на скорректированной модели. Например, набор векторов, который определяет суставы и кости для каждой позы скорректированной модели, может захватываться и визуализироваться в файле захвата движений. 3 н. и 12 з.п. ф-лы, 14 ил.
1. Система (10) для визуализации модели (500) пользователя (18), причем система (10) содержит:
интерфейс (236) ввода, выполненный с возможностью приема (305) изображения (400) глубины сцены от устройства (20) захвата, имеющего компонент (22) камеры; и
вычислительное устройство (12) для оперативной связи с интерфейсом (236) ввода, при этом вычислительное устройство (12) содержит процессор (101, 259), осуществленный с возможностью выполнения последовательности этапов с а) по d), на которых:
а) генерируют (310) модель (500), связанную с пользователем (18), захваченным в изображении (400) глубины, при этом генерирование дополнительно включает в себя:
определение объекта (402), захваченного в изображении (400) глубины, посредством изменения значения цвета пикселя объекта (402, 404) с первого значения на второе значение так, что цвет объекта (402, 404) отличается от части изображения (400) глубины, смежной с объектом (402, 404), независимо от значения глубины объекта (402, 404) или значения глубины части изображения (400) глубины, смежной с объектом (402, 404),
сравнение объекта (402, 404) с шаблоном, связанным с моделью тела пользователя (18),
отделение объекта (402) в ответ на определение, что объект (402, 404) связан с шаблоном,
измерение различных частей тела пользователя (18) отделенного объекта (402),
генерирование и сохранение значений измерения в структуре данных, содержащей один или более векторов, каждый вектор задает по меньшей мере один узел (j1-j18, j4′, j8′, j12′) или кость, соответствующие отделенному объекту (402), упомянутые по меньшей мере один узел (j1-j18, j4′, j8′, j12′) или кость определяются по меньшей мере частично на основе измерения и соответствуют некоторой части тела пользователя (18), и
задание характеристики модели (500) на основе структуры данных;
b) отслеживают (315) и корректируют модель (500) в ответ на перемещения пользователя (18),
c) генерируют (320) файл захвата движения для перемещений пользователя (18) в реальном времени на основе значений измерения отслеживаемой модели (500); и
d) применяют (325) перемещения пользователя (18) в реальном времени к отслеживаемой модели (500), хранимой в файле захвата движения аватара (40, 600), при этом визуальное представление аватара (40, 600), представляющего пользователя (18), управляется перемещениями пользователя для подражания перемещениям пользователя (18).
2. Система (10) по п. 1, при этом процессор (101, 259) осуществлен с возможностью применения (325) файла захвата движения к аватару (40, 600) посредством отображения узлов (j1-j18, j4′, j8′, j12′) и костей модели (500) на конкретные части аватара (40, 600) и анимации упомянутых конкретных частей аватара (40, 600) для подражания перемещениям пользователя (18), применяемым к узлам (j1-j18, j4′, j8′, j12′) и костям отслеживаемой модели (500).
3. Система (10) по п. 1 или 2, в которой вычислительное устройство (12) дополнительно содержит библиотеку (190) жестов, хранимую на нем, и при этом процессор (101, 259) осуществлен с возможностью сравнения одного или более перемещений, применяемых к отслеживаемой модели (500), с библиотекой (190) жестов для определения, применять ли файл захвата движения к аватару (40, 600).
4. Система (10) по п. 1, при этом система (10) является устройством для захвата движений пользователя (18) в сцене, при этом вычислительное устройство (12) и устройство (20) захвата объединены упомянутым устройством, при этом вычислительное устройство (12) содержит процессор (32), который осуществлен с возможностью исполнения исполняемых компьютером инструкций, содержащих инструкций для выполнения упомянутых этапов с а) по d).
5. Система (10) по п. 4, при этом перемещения пользователя (18) отслеживаемой модели (500), хранимой в файле захвата движения, представляют собой одно или более движений одной или более частями тела, связанными с пользователем (18) в физическом пространстве.
6. Система (10) по п. 1, при этом генерирование (320) файла захвата движения для перемещений пользователя в реальном времени на основе отслеживаемой модели (500) содержит инструкции для:
захвата первой позы (502, 504, 506) отслеживаемой модели (500) в ответ на перемещения пользователя (18); и
визуализации первого кадра во время первой временной метки в файле захвата движения, который включает в себя упомянутую первую позу (502, 504, 506) отслеживаемой модели (500).
7. Система (10) по п. 1, при этом генерирование (320) файла захвата движения для перемещений пользователя (18) в реальном времени на основе отслеживаемой модели (500) содержит инструкции для:
захвата второй позы (502, 504, 506) отслеживаемой модели (500) в ответ на перемещения пользователя (18); и
визуализации второго кадра во время второй временной метки в файле захвата движения, который включает в себя упомянутую вторую позу (502, 504, 506) отслеживаемой модели (500).
8. Система (10) по п. 7, при этом упомянутый первый кадр и упомянутый второй кадр визуализируются в файле захвата движения в последовательном порядке во времени, соответствующем упомянутой первой временной метке и упомянутой второй временной метке.
9. Система (10) по п. 8, при этом модель (500) содержит скелетную модель, имеющую узлы (j1-j18, j4′, j8′, j12′) и кости.
10. Система (10) по п. 9, при этом упомянутый первый кадр содержит первый набор векторов, которые задают узлы (j1-j18, j4′, j8′, j12′) и кости в упомянутой первой позе (502, 504, 506), и при этом упомянутый второй кадр содержит второй набор векторов, которые задают узлы (j1-j18, j4′, j8′, j12′) и кости в упомянутой второй позе (502, 504, 506).
11. Способ (300) для захвата движений пользователя (18) в сцене, причем способ (300) содержит последовательность этапов с а) по е), на которых:
a) принимают (305) изображение (400) глубины сцены от устройства (20) захвата, имеющего компонент (22) камеры;
b) генерируют (310) модель (500), связанную с пользователем, захваченным в изображении (400), при этом генерирование дополнительно включает в себя:
определение объекта (402), захваченного в изображении (400) глубины, посредством изменения значения цвета пикселя объекта (402, 404) с первого значения на второе значение так, что цвет объекта (402, 404) отличается от части изображения (400) глубины, смежной с объектом (402, 404), независимо от значения глубины объекта (402, 404) или значения глубины части изображения (400) глубины, смежной с объектом (402, 404),
сравнение объекта (402, 404) с шаблоном, связанным с моделью тела пользователя (18),
отделение объекта (402) в ответ на определение, что объект (402, 404) связан с шаблоном,
измерение различных частей тела пользователя (18) отделенного объекта (402),
генерирование и сохранение значений измерения в структуре данных, содержащей один или более векторов, каждый вектор задает по меньшей мере один узел (j1-j18, j4′, j8′, j12′) или кость, соответствующие отделенному объекту (402), упомянутые по меньшей мере один узел (j1-j18, j4′, j8′, j12′) или кость определяются по меньшей мере частично на основе измерения и соответствуют некоторой части тела пользователя (18), и
задание характеристики модели (500) на основе структуры данных;
c) отслеживают (315) и корректируют модель (500), и
d) генерируют (320) файл захвата движения для перемещений пользователя (18) на основе значений измерения корректируемой модели (500); и
e) применяют (325) перемещения пользователя (18) к отслеживаемой модели (500), хранимой в файле захвата движения, относительно аватара (40, 600), при этом визуальное представление аватара (40, 600), представленного пользователю (18), управляется перемещениями пользователя (18) для подражания перемещениям пользователя (18).
12. Способ (300) по п. 11, при этом перемещения пользователя (18) относительно отслеживаемой модели (500), хранимой в файле захвата движения, содержат одно или более движений одной или более частей тела, связанных с пользователем в физическом пространстве.
13. Способ (300) по п. 11 или 12, при этом инструкции для генерирования (320) файла захвата движения перемещений пользователя (18) на основе корректируемой модели (500) дополнительно содержат инструкции для:
захвата позы (502, 504, 506) корректируемой модели (500); и
визуализации кадра в файле захвата движения, который включает в себя позу (502, 504, 506) корректируемой модели (500).
14. Способ (300) по п. 13, при этом модель (500) содержит скелетную модель, имеющую узлы (j1-j18, j4′, j8′, j12′) и кости, и при этом кадр содержит набор векторов, которые задают узлы (j1-j18, j4′, j8′, j12′) и кости в упомянутой позе (502, 504, 506).
15. Считываемый компьютером носитель (34, 112, 143, 222, 253, 254) данных, имеющий хранимые на нем исполняемые компьютером инструкции, которые при исполнении процессором (32), побуждают процессор (32) выполнять способ (300) по любому из пп. 11-14.
Способ приготовления мыла | 1923 |
|
SU2004A1 |
Колосоуборка | 1923 |
|
SU2009A1 |
JP 2002058045 A, 22.02.2002 | |||
US 6075895 A, 13.06.2000 | |||
ИНТЕРАКТИВНАЯ ВИДЕОДИСПЛЕЙНАЯ СИСТЕМА | 2002 |
|
RU2298294C2 |
Авторы
Даты
2016-04-10—Публикация
2010-04-26—Подача