ВЫДЕЛЕНИЕ РЕСУРСОВ ДЛЯ МАШИННОГО ОБУЧЕНИЯ
ALLOCATION OF MACHINE LEARNING RESOURCE

Уровень техники
[0001] Множество сегодняшних систем машинного обучения испытывают значительные вычислительные сложности вследствие огромных объемов данных. Современные системы машинного обучения зачастую обрабатывают миллионы легко полученных выборок, формируя значительную вычислительную нагрузку. Для этих систем максимально эффективное осуществление логических выводов на основе очень больших объемов данных представляет собой постоянную сложность. Например, системы машинного обучения направлены на оценку того, сколько данных должно обрабатываться и в каком порядке, перед принятием решения, которое является корректным в пределах достижимой устойчивости к ошибкам. Конечные вычислительные ресурсы типично доступны, и система машинного обучения должна выделять ресурсы надлежащим образом.
[0002] Зачастую системы машинного обучения относятся к эффективному выделению конечных ресурсов, если имеется неопределенность относительно опций. Например, выяснение того, какое из многих возможных рекламных объявлений следует показывать клиенту, выделяет ресурс (вычислительный ресурс, экранное пространство) одной возможной опции (одному рекламному объявлению). Показ рекламного объявления и наблюдение пользовательской реакции (щелчок/отсутствие щелчка) раскрывает частичную информацию относительно демонстрации рекламного объявления, которая может использоваться для того, чтобы выполнять лучшие выделения ресурсов в будущем.
[0003] Варианты осуществления, описанные ниже, не ограничены реализациями, которые разрешают любые из недостатков известных систем машинного обучения.
Сущность изобретения
[0004] Далее представлена упрощенная сущность изобретения, для того чтобы предоставлять базовое понимание читателям. Это краткое изложение сущности изобретения не является всесторонним обзором раскрытия и не идентифицирует ключевые/критически важные элементы или не разграничивает объем подробного описания. Ее единственная цель состоит в том, чтобы представлять выбор понятий, раскрытых в данном документе, в упрощенной форме в качестве вступления в более подробное описание, которое представлено далее.
[0005] Выделение ресурсов для машинного обучения описывается, к примеру, для выбора между множеством возможных опций, например, в качестве части эффективного процесса обучения для обучения на основе случайных деревьев решений, для выбора того, какая из множества семейств моделей лучше всего описывает данные, для выбора того, какой из множества признаков лучше всего классифицирует элементы. В различных примерах выборки информации относительно неопределенных опций используются для того, чтобы количественно оценивать опции. В различных примерах доверительные интервалы вычисляются для балльных оценок и используются для того, чтобы выбирать одну или более опций. В примерах балльные оценки опций могут представлять собой статистические величины ограниченной разности, которые изменяются незначительно, когда любая выборка опускается из вычисления балльной оценки. В примере обучение на основе случайных деревьев решений становится более эффективным при одновременном ограничении точности для приложений, не ограниченных обнаружением поз человеческого тела из изображений с глубиной.
[0006] Многие сопутствующие признаки должны проще приниматься во внимание, поскольку они становятся лучше понимаемыми в отношении нижеприведенного подробного описания, рассматриваемого в связи с прилагаемыми чертежами.
Краткое описание чертежей
[0007] Настоящее описание должно лучше пониматься в результате прочтения нижеприведенного подробного описания наряду с прилагаемыми чертежами, на которых:
Фиг. 1 является принципиальной схемой модуля выбора опций, который может представлять собой компонент системы машинного обучения; а также модуля выбора моделей, модуля выбора признаков и модуля выбора функций разбиения на дерево, каждый из которых может представлять собой компонент системы машинного обучения;
Фиг. 2 является графиком увеличения объема информации в зависимости от числа обучающих примеров;
Фиг. 3 является блок-схемой последовательности операций способа в модуле выбора опций;
Фиг. 4 является более подробной блок-схемой последовательности операций способа поля 308 по фиг. 3;
Фиг. 5 иллюстрирует примерную систему машинного обучения на основе камеры для управления компьютерной игрой;
Фиг. 6 является принципиальной схемой устройства захвата изображений для использования с системой машинного обучения по фиг. 6;
Фиг. 7 является блок-схемой последовательности операций способа прогнозирования позиций сустава во входном изображении с глубиной;
Фиг. 8 является блок-схемой последовательности операций способа обучения случайного леса решений;
Фиг. 9 является принципиальной схемой случайного леса решений;
Фиг. 10 является блок-схемой последовательности операций способа прогнозирования позиций суставов во время тестирования;
Фиг. 11 иллюстрирует примерное вычислительное устройство, в котором могут реализовываться варианты осуществления системы машинного обучения с модулем выбора опций.
Аналогичные ссылки с номерами используются для того, чтобы обозначать аналогичные части на прилагаемых чертежах.
Подробное описание изобретения
[0008] Подробное описание, предоставленное ниже в связи с прилагаемыми чертежами, предназначено в качестве описания настоящих примеров и не имеет намерение представлять единственные формы, в которых может составляться и использоваться настоящий пример. Описание излагает функции примера и последовательность этапов для составления и управления примером. Тем не менее, идентичные или эквивалентные функции и последовательности могут осуществляться посредством других примеров.
[0009] Хотя настоящие примеры описываются и иллюстрируются в данном документе как реализованные в системе машинного обучения для управления игрой, описанная система предоставляется в качестве примера, а не ограничения. Специалисты в данной области техники должны принимать во внимание, что настоящие примеры являются подходящими для применения во множестве различных типов систем машинного обучения.
[0010] Фиг. 1 является принципиальной схемой модуля 102 выбора опций, который представляет собой компонент системы машинного обучения; а также модуля 112 выбора моделей, модуля 114 выбора признаков и модуля 116 выбора функций разбиения на дерево, каждый из которых может представлять собой компонент системы машинного обучения.
[0011] Модуль выбора опций выбирает одну или более опций из множества опций 100 посредством оценки балльных оценок опций с использованием логики 106 количественной оценки и выборок 110 информации относительно опций. Имеется неопределенность относительно опций, поскольку информация относительно опций доступна из выборок 110, которые становятся доступными в текущем процессе. Логика количественной оценки использует состязательную логику 108 для того, чтобы ускорять процесс выбора при поддержании указанной устойчивости к ошибкам. Как результат выбора опций, могут выделяться ресурсы 104. Например, каждая опция может представлять собой рекламное объявление, и ресурсы 104 могут представлять собой вычислительные ресурсы и экранное пространство для представления демонстрации рекламного объявления для пользователя. Каждая выборка 110 может представлять собой демонстрацию рекламного объявления и наблюдаемую пользовательскую реакцию на демонстрацию рекламного объявления (например, реакцию в виде щелчка/отсутствия щелчка). Модуль выбора опций может вычислять балльную оценку для рекламного объявления с использованием логики 106 количественной оценки и выборок. После того как наблюдаются множество тысяч или более выборок, балльные оценки для каждого рекламного объявления могут достигать устойчивого уровня, и эти уровни могут использоваться посредством модуля выбора опций для того, чтобы выделять ресурсы 104 посредством выбора того, какое рекламное объявление должно представляться. Чтобы ускорять процесс, может использоваться состязательная логика 108 для того, чтобы обеспечивать возможность оценки меньшего числа выборок до того, как осуществляется выбор, но при этом предоставляя указанную устойчивость к ошибкам результата выбора.
[0012] Каждый из модуля 102 выбора опций, логики 106 количественной оценки и состязательной логики 108 является машинореализованным с использованием программного обеспечения и/или аппаратных средств. Например, эти компоненты могут реализовываться полностью или частично с использованием аппаратных логических компонентов. Иными словами, альтернативно или помимо этого, функциональность, описанная в данном документе, может выполняться, по меньшей мере, частично, посредством одного или более аппаратных логических компонентов. Например, и без ограничения, иллюстративные типы аппаратных логических компонентов, которые могут быть использованы, включают в себя программируемые пользователем вентильные матрицы (FPGA), специализированные интегральные схемы (ASIC), специализированные микросхемы для массового производства (ASSP), внутрикристальные системы (SOC), комплексные программируемые логические устройства (CPLD), графические процессоры (GPU).
[0013] В примере модуль выбора опций представляет собой модуль 112 выбора моделей. В этом случае опции представляют собой различные семейства моделей 118, которые могут иметь различную сложность. Выборки 110 в этом случае могут представлять собой выборки из системы, которые требуется моделировать. Например, выборки могут представлять собой эмпирические измерения температуры, дождя и других факторов, если система, которая должна моделироваться, представляет собой климатическую систему. В другом примере выборки могут представлять собой помеченные элементы изображения из обучающих изображений, если система, которая должна моделироваться, представляет собой систему классификации изображений. Модуль выбора моделей формирует вывод, содержащий одно или более семейств моделей 118, которые должны использоваться для того, чтобы моделировать данные (выборки). Ресурсы 104 могут представлять собой вычислительные ресурсы, используемые посредством логики количественной оценки и состязательной логики. Ресурсы 104 могут представлять собой вычислительные ресурсы, используемые посредством нисходящих процессов вычисления, которые используют семейство моделей, выбранных посредством модуля выбора моделей. Логика количественной оценки и состязательная логика используются, аналогично вышеописанному, для того чтобы обеспечивать и ускорять процесс выбора.
[0014] В примере модуль выбора опций представляет собой модуль 120 выбора признаков. В этом случае опции представляют собой признаки 120, например, сборника документов или изображений объектов. Выборки 110 в этом случае могут быть примерами признаков наряду с наблюдениями за тем, насколько хорошо эти признаки классифицируют документы или объекты. Модуль выбора моделей формирует вывод, содержащий признаки, выбранные как хорошие при классификации документов или объектов. Ресурсы 104 могут представлять собой вычислительные ресурсы, используемые посредством логики количественной оценки и состязательной логики. Ресурсы 104 могут представлять собой вычислительные ресурсы, используемые посредством нисходящих процессов вычисления, которые используют функции, выбранные посредством модуля выбора признаков. Логика количественной оценки и состязательная логика используются, аналогично вышеописанному, для того чтобы обеспечивать и ускорять процесс выбора.
[0015] В примере модуль выбора опций представляет собой модуль 116 выбора функций разбиения на дерево, который является частью системы машинного обучения для обучения случайных деревьев решений. Случайное дерево решений представляет собой тип структуры данных, используемой для того, чтобы сохранять данные, накопленные во время фазы обучения, так что оно может использоваться для того, чтобы выполнять прогнозирование относительно примеров, ранее невидимых посредством случайного дерева решений. Случайное дерево решений обычно используется в качестве части множества случайных деревьев решений, обученных для конкретной области приложений, чтобы достигать обобщения (т.е. возможность выполнять хорошие прогнозирования относительно примеров, которые отличаются от примеров, используемых для того, чтобы обучать лес). Случайное дерево решений имеет корневой узел, множество узлов разбиения и множество концевых узлов. Во время обучения распознается структура дерева (число узлов и как они соединены), а также функции разбиения, которые должны использоваться в каждом из узлов разбиения. Помимо этого, данные накапливаются в концевых узлах во время обучения.
[0016] Функции разбиения могут быть произвольно сформированы и могут содержать опции 122 по фиг. 1. Данные (к примеру, элемент изображения для изображения) могут продвигаться через деревья случайного леса решений от корня до листа в процессе, посредством которого решение принимается в каждом узле разбиения. Решение может приниматься согласно характеристикам элемента изображения и функции разбиения, ассоциированной с узлом разбиения. Элемент изображения переходит к следующему уровню дерева вниз по ветви, выбранной согласно результатам решения.
[0017] Модуль 116 выбора функций разбиения на дерево выбирает, какие из функций разбиения следует использовать в конкретных узлах разбиения дерева решений. Чтобы выполнять выбор, используются выборки 110, которые являются примерами обучающих данных. Например, примеры обучающих данных могут представлять собой элементы изображения, которые помечаются как принадлежащие конкретному классу, либо могут представлять собой другие помеченные или непомеченные обучающие данные. Логика 106 количественной оценки вычисляет балльную оценку для различных опций 122 функции разбиения с использованием выборок 110. Состязательная логика 108 может использоваться для того, чтобы ускорять процесс выбора, как подробнее описано ниже со ссылкой на фиг. 3, 4, 7 и 8. Ресурсы 104 могут представлять собой вычислительные ресурсы, используемые посредством логики количественной оценки и состязательной логики. Ресурсы 104 могут представлять собой вычислительные ресурсы, используемые посредством нисходящих процессов вычисления, которые используют функцию разбиения на дерево, выбранную посредством модуля выбора моделей.
[0018] В примерах, описанных со ссылкой на фиг. 1, логика 106 количественной оценки используется для того, чтобы оценивать балльную оценку для каждой из опций 100. Например, балльная оценка может быть основана на статистической величине, описывающей поведение опции, такой как среднее, медиана, мода или другая статистическая величина. В различных примерах балльная оценка основана на статистической величине, которая является статистической величиной ограниченной разности. Статистическая величина ограниченной разности является числовым значением, которое описывает поведение объекта (к примеру, опции в примерах по фиг. 1) из множества наблюдений (выборок) поведения; и которое изменяет свое числовое значение только незначительно, если только одно из множества наблюдений изменяется. В некоторых примерах изменение наблюдения может достигаться посредством опускания наблюдения. Неполный список примеров статистических величин ограниченной разности: дисперсия, энтропия, увеличение объема информации, индекс Джини (Gini index).
[0019] Фиг. 2 является графиком увеличения объема информации в зависимости от числа обучающих примеров. Увеличение объема информации является примером статистической величины ограниченной разности, которая может измеряться посредством логики количественной оценки по мере того, как принимаются обучающие примеры. В примере по фиг. 2 имеется две опции, которые представляют собой признак A и признак B. Хотя на практике могут присутствовать гораздо больше опций (две показаны для ясности). Балльные оценки увеличения объема информации для признака A проиллюстрированы в качестве сплошной линии, а балльные оценки увеличения объема информации для признака B проиллюстрированы в качестве пунктирной линии. Предположим, что модуль выбора опций представляет собой модуль 114 выбора признаков по фиг. 1 и должен находить признак с наибольшим увеличением объема информации. Когда выборки первоначально принимаются, балльная оценка увеличения объема информации является зашумленной, поскольку доступно только небольшое число выборок. Когда более 500 выборок приняты, балльные оценки увеличения объема информации стабилизируются и четко разделяются для признаков A и B, при этом признак B имеет более высокую балльную оценку увеличения объема информации. Модуль 114 выбора признаков спроектирован с возможностью принимать решение в отношении того, признак A, или признак B имеет наибольшую балльную оценку увеличения объема информации в оптимальной точке. Иными словами, после того как достаточно обучающих примеров принято для того, чтобы предоставлять ответ, который является точным в пределах указанной устойчивости к ошибкам. Это предоставляет возможность выделения вычислительных ресурсов надлежащим образом как для самого процесса выбора признаков, так и для нисходящих процессов, которые используют результаты выбора признаков.
[0020] Модуль 114 выбора признаков может иметь состязательную логику 108, которая вычисляет строки погрешности, также известные как доверительные интервалы для балльных оценок увеличения объема информации (или балльных оценок другой статистической величины ограниченной разности). Доверительный интервал является диапазоном числовых значений, представляющих возможные значения балльной оценки с указанной точностью. На фиг. 2 доверительный интервал 200 показан для балльной оценки увеличения объема информации признака A, когда число обучающих примеров менее 500. Когда число обучающих примеров более 500, доверительный интервал 206 для балльной оценки признака A имеет меньший диапазон, поскольку имеется большая достоверность в отношении увеличения объема информации. Аналогичным образом доверительный интервал 202 для балльной оценки признака B является большим, когда число обучающих примеров составляет приблизительно 500, и является меньшим доверительным интервалом 204, когда число обучающих примеров увеличивается. Состязательная логика может использовать доверительные интервалы для того, чтобы определять, принято или нет достаточно обучающих примеров, чтобы обеспечивать выбор опций, который является точным в пределах указанной устойчивости к ошибкам. Например, могут отбрасываться опции, в которых доверительный интервал не перекрывается с доверительным интервалом для опции наивысшей количественной оценки. Постепенно число вариантов уменьшается, поскольку все большее число опций отбрасывается из состязания по мере того, как возрастает число выборок. Это поясняется далее со ссылкой на фиг. 3, который является блок-схемой последовательности операций способа в модуле выбора опций, который может представлять собой любое из модуля 102 выбора опций, модуля 112 выбора моделей, модуля 114 выбора признаков или модуля 116 выбора функций разбиения на дерево по фиг. 1.
[0021] Модуль выбора опций задает 300 устойчивость к ошибкам, которая должна использоваться посредством состязательной логики, когда она определяет, принято или нет достаточно обучающих примеров, чтобы обеспечивать выбор опций, который является точным в пределах устойчивости к ошибкам набора. Устойчивость к ошибкам может задаваться согласно пользовательскому вводу, может предварительно конфигурироваться или может быть автоматически выбрана согласно области приложений, доступным вычислительным ресурсам и другим факторам.
[0022] Модуль выбора опций осуществляет доступ 302 к списку или другой информации, идентифицирующей потенциальные опции, и принимает 304 один или более обучающих примеров для каждой из опций. Например, опции могут представлять собой произвольно сформированные функции разбиения дерева решений из процесса обучения дерева решений. К обучающим примерам может осуществляться доступ из хранилища данных, потока данных или другого источника. Модуль выбора опций использует логику 106 количественной оценки, чтобы вычислять 306 балльную оценку для каждой из опций с использованием принимаемых обучающих примеров. Например, балльная оценка является статистической величиной ограниченной разности, как описано выше. Состязательная логика 108 используется для того, чтобы вычислять 308 доверительный интервал для балльной оценки для каждой опции. Состязательная логика 108 идентифицирует те опции, которые удовлетворяют условиям доверительных интервалов. Например, идентифицируются опции, доверительные интервалы которых не перекрываются с доверительным интервалом опции наивысшей количественной оценки. Идентифицированные опции удаляются 314 из списка потенциальных опций на этапе 302, и процесс может повторяться до тех пор, пока только одна опция не останется 312, или только указанное число опций не останется.
[0023] Фиг. 4 является более подробной блок-схемой последовательности операций способа для части способа по фиг. 3. Состязательная логика осуществляет способ по фиг. 4 в ходе процесса вычисления доверительных интервалов балльных оценок для каждой опции (поле 308 по фиг. 3). Состязательная логика оценивает 400 дисперсию балльных оценок для каждой опции, которая вычислена к настоящему времени. Дисперсия является числовым значением, описывающим, насколько варьируется величина. Может использоваться любой подходящий способ оценки дисперсии. В некоторых примерах используется оценка дисперсии по методу складного ножа, как подробнее описано ниже. Оценка дисперсии по методу складного ножа выполняется посредством повторного вычисления балльной оценки многократно посредством поочередного удаления различных выборок. Повторно вычисленные балльные оценки затем используются для того, чтобы оценивать дисперсию посредством оценки того, насколько они варьируются относительно друг друга.
[0024] Состязательная логика может вычислять 402 доверительный интервал для одной из опций в качестве балльной оценки для этой опции, плюс или минус константа, умножить на квадратный корень оцененной дисперсии, умножить на логарифм двух, делить на устойчивость к ошибкам. Константа может принимать значение 5/2 или аналогичное значение.
[0025] Оцененная дисперсия может быть оценкой дисперсии по методу складного ножа, как описано выше, и может вычисляться любым подходящим способом. В примерах, в которых опции представляют собой возможные варианты функции разбиения в случайном дереве решений, выполняющем классификацию, а балльная оценка представляет собой увеличение объема информации или прирост Джини (Gini gain), оценку дисперсии по методу складного ножа может вычисляться так, как подробнее описано ниже в этом документе, чтобы сокращать времени вычисления при поддержании точности.
[0026] В некоторых примерах состязательная логика может регулировать вычисленный доверительный интервал для смещения, если известно, что логика количественной оценки вычисляет балльную оценку с использованием модуля оценки расширений, которая вводит смещение. Тем не менее, регулирование для смещения является необязательным этапом. Хорошие рабочие результаты могут достигаться, когда этап регулирования смещения опускается.
[0027] Более формально, состязательная логика может вычислять 402 доверительный интервал для одной из опций следующим образом:
[0028]
[0029]
[0030] Это может выражаться на словах как: диапазон от балльной оценки Z опции минус 5/2, умножить на квадратный корень оценки дисперсии по методу складного ножа дисперсии числа n выборок плюс коррекция , умножить на логарифм 2, делить на устойчивость σ к ошибкам, до балльной оценки Z опции плюс 5/2, умножить на квадратный корень оценки дисперсии по методу складного ножа дисперсии числа n выборок плюс коррекция , умножить на логарифм 2, делить на устойчивость σ к ошибкам плюс член смещения.
[0031] На практике обнаружено, что сходимость оценки дисперсии по методу складного ножа является чрезвычайно быстрой, и члены  коррекции могут опускаться посредством состязательной логики.
[0032] Состязательная логика может использоваться для того, чтобы вычислять доверительные интервалы этой формы для балльных оценок, которые основаны на статистических величинах ограниченной разности, к примеру, когда балльные оценки вычисляются с использованием гистограммы значений счетчика элементов выборки. Это обеспечивает возможность состязательной логике предоставлять рабочие результаты для многих форм балльных оценок и обеспечивает возможность намного более широкому диапазону приложений машинного обучения использовать состязательную логику, чем ранее возможно. Посредством увеличения или уменьшения размера устойчивости к ошибкам можно балансировать гарантированный уровень точности результата для времени вычисления.
[0033] Состязательная логика может быть выполнена с возможностью применять коррекцию смещения к доверительному интервалу, как описано выше, например, если балльная оценка вычисляется посредством логики количественной оценки с использованием модуля оценки расширений, такого как модуль оценки энтропии, модуль оценки увеличения объема информации, модуль оценки индексов Джини.
[0034] В случае если балльная оценка связана с увеличением объема информации, обнаружено, что смещение может задаваться следующим образом:
[0035]
[0036] Это может выражаться на словах как отношение: два умножить на число элементов выборки гистограммы, используемой для того, чтобы вычислять увеличение объема информации минус 1, к числу выборок.
[0037] В случае если балльная оценка связана с индексом Джини, обнаружено, что смещение может задаваться посредством следующим образом:
[0038]
[0039] Это может выражаться на словах как отношение: два умножить на число элементов выборки гистограммы, используемой для того, чтобы вычислять индекс Джини, минус 1, к числу выборок умножить на число элементов выборки гистограммы.
[0040] В случае если балльная оценка представляет собой усиление дисперсии, обнаружено, что член смещения не требуется.
[0041] Как упомянуто выше, оценка дисперсии по методу складного ножа выполняется посредством повторного вычисления балльной оценки многократно посредством поочередного удаления различных выборок (называется "оценкой с опусканием"). Повторно вычисленные балльные оценки затем используются для того, чтобы оценивать дисперсию посредством оценки того, насколько они варьируются относительно друг друга.
[0042] В случае если балльная оценка представляет собой увеличение объема информации, оценка дисперсии по методу складного ножа балльной оценки может вычисляться посредством состязательной логики следующим образом:
[0043],
[0044] при этом суммирование выполняется по членам с . Дисперсия может вычисляться с использованием взвешенных онлайновых обновлений.  является значением счетчика на гистограмме в ветви b и элементе j выборки. Это представляет собой число, которое является целым числом и больше или равно нулю и меньше или равно n, общему числу выборок.
[0045] Вышеуказанное равенство может выражаться на словах как: оценка дисперсии по методу складного ножа оценки расширения увеличения объема информации для n обучающих выборок, которые достигают узла разбиения, равна числу обучающих выборок минус одна, делить на число обучающих выборок, умножить на сумму по левому и правому дочерним узлам узла разбиения, суммы по всем элементам выборки гистограммы значения счетчика на гистограмме в элементе j выборки и ветви b, умножить на квадрат разности между оценкой расширения увеличения объема информации, когда одна выборка удаляется из ветви b, и элементом j выборки минус эмпирическое среднее увеличения объема информации. В таком случае эмпирическое среднее увеличения объема информации представлено посредством символа  и задается следующим образом:
[0046]
[0047] Это может выражаться на словах как: эмпирическое среднее увеличения объема информации равно единица делить на два, умножить на число элементов выборки гистограммы, умножить на сумму по левому и правому дочерним узлам суммы по всем элементам выборки гистограммы оценки расширения увеличения объема информации с удалением одной выборки в ветви b и элементе j выборки.
[0048] В случае если балльная оценка представляет собой прирост Джини, оценка дисперсии по методу складного ножа балльной оценки может вычисляться посредством состязательной логики посредством вычисления сначала эмпирического среднего прироста Джини следующим образом:
[0049]
[0050] Это может выражаться на словах как: эмпирическое среднее прироста Джини равно единица делить на два, умножить на число элементов выборки гистограммы, умножить на сумму по левому и правому дочерним узлам суммы по всем элементам выборки гистограммы оценки расширения прироста Джини.
[0051] Когда эмпирическое среднее вычисляется, состязательная логика имеет возможность вычислять:
[0052],
[0053] при этом суммирование выполняется по членам с .
[0054] Вышеуказанное равенство может выражаться на словах как: оценка дисперсии по методу складного ножа оценки расширения прироста Джини для n обучающих выборок, которые достигают узла разбиения, равна числу обучающих выборок минус одна, делить на число обучающих выборок, умножить на сумму по левому и правому дочерним узлам узла разбиения, суммы по всем элементам выборки гистограммы значения счетчика на гистограмме в ветви b и элементе j выборки, умножить на квадрат разности между оценкой расширения прироста Джини при удалении одной выборки в ветви b и элементе j выборки минус эмпирическое среднее приростов Джини, полученных посредством удаления отдельных выборок.
[0055] Далее описывается пример, в котором модуль выбора опций используется в качестве модуля выбора функций разбиения на дерево решений для обучения дерева решений в системе машинного обучения для управления игрой. Дерево решений может быть обучено с использованием модуля выбора опций или для задачи регрессии или классификации в зависимости от задачи машинного обучения.
[0056] Фиг. 5 показывает примерную систему 500 управления на основе камеры для управления компьютерной игрой. Фиг. 5 показывает пользователя 502, проводящего в этом иллюстративном примере боксерский поединок. В некоторых примерах система 500 управления на основе камеры может использоваться, в числе прочего, для того, чтобы определять позу тела, привязывать, распознавать, анализировать, отслеживать, ассоциироваться с человеческой целью, предоставлять обратную связь, интерпретировать жесты и/или адаптироваться к аспектам человеческой цели, к примеру пользователя 502.
[0057] Система 500 управления на основе камеры содержит вычислительное устройство 504. Вычислительное устройство 504 может представлять собой компьютер общего назначения, игровую приставку или устройство либо выделенное устройство обработки изображений. Вычислительное устройство 504 может включать в себя аппаратные компоненты и/или программные компоненты, так что вычислительное устройство 504 может использоваться для того, чтобы выполнять приложения, к примеру игровые приложения и/или неигровые приложения. Далее поясняется структура вычислительного устройства 504 со ссылкой на фиг. 11.
[0058] Система 100 управления на основе камеры дополнительно содержит устройство 506 захвата. Устройство 506 захвата может представлять собой, например, датчик или детектор изображений, который может использоваться для того, чтобы визуально отслеживать одного или более пользователей (к примеру, пользователя 502) таким образом, что жесты, выполняемые одним или более пользователей, могут захватываться, анализироваться, обрабатываться и отслеживаться, чтобы выполнять один или более элементов управления или действий в игре или приложении, как подробнее описано ниже.
[0059] Система 500 управления на основе камеры дополнительно может содержать устройство 508 отображения, соединенное с вычислительным устройством 504. Вычислительное устройство может представлять собой телевизионный приемник, монитор, телевизионный приемник высокой четкости (HDTV) и т.п., который может предоставлять видеоэлементы игры или приложения (и необязательно аудио) пользователю 502.
[0060] При работе пользователь 502 может отслеживаться с использованием устройства 506 захвата таким образом, что позиции сустава, перемещения и размер пользователя 502 могут интерпретироваться посредством вычислительного устройства 504 (и/или устройства 506 захвата) в качестве элементов управления, которые могут использоваться для того, чтобы влиять на приложение, выполняемое посредством вычислительного устройства 504. Как результат, пользователь 502 может перемещать свое тело для того, чтобы управлять выполняемой игрой или приложением.
[0061] В иллюстративном примере по фиг. 5 приложение, выполняющееся на вычислительном устройстве 504, является боксерским поединком, в который играет пользователь 502. В этом примере вычислительное устройство 504 управляет устройством 508 отображения, чтобы предоставлять визуальное представление оппонента по боксерскому поединку пользователю 502. Вычислительное устройство 504 также управляет устройством 508 отображения, чтобы предоставлять визуальное представление аватара пользователя, которым пользователь 502 может управлять с помощью своих перемещений. Например, пользователь 502 может нанести удар в физическом пространстве, чтобы заставлять аватар пользователя наносить удар в игровом пространстве. Таким образом, согласно этому примеру вычислительное устройство 504 и устройство 506 захвата системы 500 управления на основе камеры могут использоваться для того, чтобы распознавать и анализировать удар пользователя 502 в физическом пространстве таким образом, что удар может быть интерпретирован в качестве элемента управления игрой аватара пользователя в игровом пространстве.
[0062] Кроме того, некоторые перемещения могут быть интерпретированы в качестве элементов управления, которые соответствуют действиям, отличным от управления аватаром. Например, пользователь может использовать перемещения, чтобы входить, выходить, включать или выключать систему, приостанавливать, сохранять игру, выбирать уровень, профиль или меню, просматривать рекорды по очкам, обмениваться данными с другом и т.д. Кроме того, перемещение пользователя 502 может использоваться и анализироваться любым подходящим способом, чтобы взаимодействовать с приложениями, отличным от игр, например, вводить текст, выбирать значки или пункты меню, управлять воспроизведением мультимедиа, просматривать веб-узлы или управлять любым другим управляемым аспектом операционной системы или приложения.
[0063] Теперь следует обратиться к фиг. 6, которая иллюстрирует принципиальную схему устройства 506 захвата, которое может использоваться в системе 500 управления на основе камеры по фиг. 5. В примере по фиг. 6 устройство 506 захвата выполнено с возможностью захватывать видеоизображения с информацией глубины. Такое устройство захвата может упоминаться в качестве камеры с эффектом глубины. Информация глубины может иметь форму изображения с глубиной, которое включает в себя значения глубины, т.е. значение, ассоциированное с каждым элементом изображения для изображения с глубиной, которое связано с расстоянием между камерой с эффектом глубины и элементом или объектом, расположенным в этом элементе изображения.
[0064] Информация глубины может получаться с использованием любой подходящей технологии, включающей в себя, например, время пролета, структурированный свет, стереоизображение и т.п. В некоторых примерах устройство 506 захвата может организовывать информацию глубины в "Z-уровни" или уровни, которые могут быть перпендикулярными оси Z, идущей от камеры с эффектом глубины вдоль линии прямой видимости.
[0065] Как показано на фиг. 6, устройство 506 захвата содержит, по меньшей мере, один датчик 600 изображений. В примере, показанном на фиг. 6, датчик 600 изображений содержит камеру 602 с эффектом глубины, выполненную с возможностью захватывать изображение с глубиной сцены. Захваченное изображение с глубиной может включать в себя двумерную область захваченной сцены, причем каждый элемент изображения в двумерной области представляет значение глубины, такое как длина или расстояние объекта в захваченной сцене от камеры 602 с эффектом глубины.
[0066] Устройство захвата также может включать в себя излучатель 604, выполненный с возможностью освещать сцену таким образом, что информация глубины может выявляться посредством камеры 602 с эффектом глубины. Например, в случае если камера 602 с эффектом глубины является инфракрасной (IR) камерой на основе времени пролета, излучатель 604 испускает инфракрасный свет на сцену, и камера 602 с эффектом глубины выполнена с возможностью обнаруживать обратно рассеянный свет от поверхности одной или более целей и объектов в сцене. В некоторых примерах импульсный инфракрасный свет может испускаться из излучателя 604, так что время между исходящим световым импульсом и соответствующим входящим световым импульсом может обнаруживаться посредством камеры с эффектом глубины и измеряться и использоваться для того, чтобы определять физическое расстояние от устройства 506 захвата до позиции на целях или объектах в сцене. Кроме того, в некоторых примерах фаза исходящей световой волны из излучателя 604 может сравниваться с фазой входящей световой волны в камере 602 с эффектом глубины, чтобы определять сдвиг фаз. Сдвиг фаз затем может быть использован для того, чтобы определять физическое расстояние от устройства захвата до позиции на целях или объектах. В дополнительном примере анализ на основе времени пролета может быть использован для того, чтобы косвенно определять физическое расстояние от устройства 506 захвата до позиции на целях или объектах посредством анализа интенсивности отраженного луча света во времени через различные технологии, включающие в себя, например, формирование изображений на основе регулируемых световых импульсов.
[0067] В другом примере устройство 506 захвата может использовать структурированный свет, чтобы захватывать информацию глубины. В такой технологии шаблонный свет (например, свет, отображаемый в качестве известного шаблона, к примеру сетчатого шаблона или полоскового шаблона) может проецироваться на сцену с использованием излучателя 604. После нанесения удара по поверхности одной или более целей или объектов в сцене шаблон становится деформированным. Такая деформация шаблона может быть захвачена посредством камеры 602 с эффектом глубины и затем проанализирована, чтобы определять физическое расстояние от устройства 506 захвата до позиции на целях или объектах в сцене.
[0068] В другом примере камера 602 с эффектом глубины может иметь форму двух или более физически разделенных камер, которые показывают сцену с различных углов, так что получаются визуальные стереоданные, которые могут разрешаться для того, чтобы формировать информацию глубины. В этом случае излучатель 604 может использоваться для того, чтобы освещать сцену, или может опускаться.
[0069] В некоторых примерах в дополнение к камере 602 с эффектом глубины, устройство 506 захвата может содержать обычную видеокамеру, которая упоминается в качестве RGB-камеры 606. RGB-камера 606 выполнена с возможностью захватывать последовательности изображений сцены в частотах видимого света и, следовательно, может предоставлять изображения, которые могут использоваться для того, чтобы расширять изображения с глубиной. В альтернативных примерах RGB-камера 606 может использоваться вместо камеры 602 с эффектом глубины.
[0070] Устройство 506 захвата, показанное на фиг. 6, дополнительно содержит, по меньшей мере, один процессор 608, который поддерживает связь с датчиком 600 изображений (т.е. камерой 602 с эффектом глубины и RGB-камерой 606 в примере по фиг. 6), и излучатель 604. Процессор 608 может быть микропроцессором общего назначения или специализированным процессором сигналов/изображений. Процессор 608 выполнен с возможностью осуществлять инструкции, чтобы управлять датчиком 600 изображений и излучателем 604, чтобы захватывать изображения с глубиной и/или RGB-изображения. Процессор 608 также необязательно может быть выполнен с возможностью осуществлять обработку для этих изображений, как подробнее указано далее.
[0071] В некоторых примерах датчик изображений используется для того, чтобы предоставлять изображения силуэта, которые являются двумерными двоичными изображениями, идентифицирующими области переднего плана и фона глубины, и/или RGB-изображениями, захваченными посредством датчика изображений. Изображения силуэта могут формироваться в датчике изображений и/или процессоре 608 из захваченной глубины и RGB-изображений. Изображения силуэта могут обрабатываться с использованием способов, описанных в данном документе, чтобы прогнозировать двумерные позиции сустава. В этом случае изображения силуэта могут рассматриваться в качестве изображений с глубиной, сглаженных до фиксированной глубины. Захваченные изображения с глубиной могут использоваться для того, чтобы прогнозировать трехмерные позиции сустава, как подробнее описано ниже.
[0072] Устройство 506 захвата, показанное на фиг. 6, дополнительно включает в себя запоминающее устройство 610, выполненное с возможностью сохранять инструкции, которые предназначены для выполнения посредством процессора 608, изображения или кадры изображений, захваченные посредством камеры 602 с эффектом глубины или RGB-камеры 606, либо любую другую подходящую информацию, изображения и т.п. В некоторых примерах запоминающее устройство 610 может включать в себя оперативное запоминающее устройство (RAM), постоянное запоминающее устройство (ROM), кэш, флэш-память, жесткий диск или любой другой подходящий компонент хранения данных. Запоминающее устройство 610 может быть отдельным компонентом, поддерживающим связь с процессором 608, или интегрированным в процессор 608.
[0073] Устройство 506 захвата также содержит интерфейс 612 вывода, поддерживающий связь с процессором 608, и выполнено с возможностью предоставлять данные в вычислительное устройство 604 через линию связи. Линия связи может представлять собой, например, проводное соединение (к примеру, по стандарту USB, Firewire, Ethernet и т.п.) и/или беспроводное соединение (к примеру, WiFi, технология Bluetooth и т.п.). В других примерах интерфейс 612 вывода может взаимодействовать с одной или более сетей связи (к примеру, Интернет) и предоставлять данные в вычислительное устройство 504 через эти сети.
[0074] Фиг. 7 является блок-схемой последовательности операций способа прогнозирования позиций сустава во входном изображении 708 с глубиной, иллюстрирующем одного или более людей или животных или части людей или животных. Доступно множество обучающих изображений 700, которые могут быть изображениями с глубиной, которые имеют указанные позиции сустава. Изображения могут быть двумерными, трехмерными (или с более высокой размерностью) изображениями или последовательностями таких изображений. Примеры, описанные в данном документе, используют изображения с глубиной, но также являются применимыми к цветным изображениям, медицинским изображениям или другим типам изображения.
[0075] Случайный лес решений обучается 702 для того, чтобы предоставлять возможность элементам изображения для обучающих изображений 700 голосовать за позиции одного или более суставов, проиллюстрированных в этих изображениях. Процесс обучения может содержать использование модуля выбора функций разбиения на дерево, как описано выше со ссылкой на фиг. 1, для того чтобы ускорять обучение при поддержании точности. Результат процесса обучения представляет собой случайный лес 704 решений, который обучен с использованием модуля выбора функций разбиения на дерево.
[0076] Элементы изображения могут быть пикселами, группами пикселов, вокселами, группами вокселов, блобами, исправлениями или другими компонентами изображения. Случайный лес решений содержит одно или более деревьев решений, имеющих корневой узел, множество узлов разбиения и множество концевых узлов. Элементы изображения для изображения могут продвигаться через деревья случайного леса решений от корня до концевого узла в процессе, посредством которого решение принимается в каждом узле разбиения. Решение принимается согласно характеристикам элемента изображения и характеристикам тестовых элементов изображения, смещенных от него посредством пространственных смещений, указываемых посредством параметров в узле разбиения. Процесс принятия решений может выражаться с использованием функции разбиения. В узле разбиения элемент изображения переходит к следующему уровню дерева вниз по ветви, выбранной согласно результатам решения. Случайный лес решений может использовать регрессию или классификацию, как подробнее описано ниже. Во время обучения значения параметров (также называются "признаками") распознаются для использования в узлах разбиения, и данные накапливаются в концевых узлах. Процесс обучения параметров содержит выбор функции разбиения для использования в узле разбиения. Модуль выбора опций может использоваться для этого процесса выбора, как описано со ссылкой на фиг. 1 и с использованием процессов фиг. 3 и 4.
[0077] Голоса в пользу позиции сустава могут накапливаться в концевых узлах во время обучения. Голос в пользу позиции сустава является позицией (или областью) изображения, в которой согласно прогнозированию находится сустав относительно элемента изображения, составляющего голос. Голос в пользу позиции сустава может указываться любым подходящим способом. Например, в качестве вектора, выражающего относительное расстояние и направление прогнозной позиции сустава из элемента изображения, составляющего голос. Не принципиально использовать вектор, могут использоваться другие форматы.
[0078] Сохранение всех голосов в пользу позиции сустава в концевых узлах во время обучения может быть очень интенсивно использующим память, поскольку большие суммы обучающих данных типично используются для практических вариантов применения. В некоторых вариантах осуществления голоса агрегируются, чтобы они могли сохраняться компактно. Могут использоваться различные специальные процессы агрегирования, как подробнее описано ниже.
[0079] Во время тестирования ранее невидимое изображение 708 с глубиной  вводится в систему, чтобы прогнозировать позиции сустава. Это применяется к обученному случайному лесу 706 решений, чтобы получать прогнозные позиции 701 сустава. Каждый элемент изображения входного изображения 708 с глубиной может отправляться через каждое дерево обученного случайного леса решений, и голоса в пользу позиции сустава получаться из листов. Таким образом, голоса могут получаться посредством сравнения каждого элемента изображения с тестовыми элементами изображения, смещенными от него на распознанные пространственные смещения. Каждый элемент изображения может получать множество голосов для каждого сустава. Эти голоса могут быть агрегированы согласно различным специальным способам агрегирования, чтобы предоставлять прогнозные позиции 710 сустава. Процесс на основе времени тестирования в силу этого представляет собой одностадийный процесс применения входного изображения с глубиной к обученному случайному лесу решений, чтобы непосредственно получать прогнозные позиции сустава. Одностадийный процесс не заключает в себе промежуточные результаты, к примеру прогнозируемые части тела. Этот одностадийный процесс может выполняться быстрым и эффективным способом, чтобы предоставлять результаты в реальном времени и с высококачественными результатами.
[0080] Фиг. 8 является блок-схемой последовательности операций способа процесса для обучения леса решений, чтобы идентифицировать позиции сустава в изображении. Он также может рассматриваться в качестве формирования голосов в пользу позиции сустава из элементов изображения для изображения. Лес решений обучается с использованием набора обучающих изображений. Набор обучающих изображений содержит множество изображений, показывающих, по меньшей мере, одного человека или животное либо часть тела человека или животного. Тела или части тела, проиллюстрированные в обучающих изображениях, находятся в различных специальных позах (к примеру, сидение или стояние). Позиции сустава в обучающих изображениях указываются. Следовательно, обучающий набор формирует базу данных проверки экспериментальными данными.
[0081] В одном примере вместо захвата изображений с глубиной для многих других примеров поз тела обучающий набор может содержать синтетические машиногенерируемые изображения. Такие синтетические изображения реалистично моделируют тело человека или животного (или части тела человека или животного) в различных позах, взаимодействующих с различными объектами, и могут формироваться, чтобы просматриваться из любого угла или позиции. Они могут формироваться намного быстрее реальных изображений с глубиной и могут предоставлять более широкий спектр обучающих изображений.
[0082] Ссылаясь на фиг. 8, чтобы обучать деревья решений, обучающий набор, описанный выше, сначала принимается 800. Число деревьев решений, которые должны использоваться в случайном лесу решений, выбирается 802. Случайный лес решений является совокупностью детерминированных деревьев решений. Деревья решений могут использоваться в алгоритмах классификации или регрессии, но могут испытывать негативный эффект сверхподгонки, т.е. плохого обобщения. Тем не менее, множество многих произвольно обученных деревьев решений (случайный лес) обеспечивает в результате улучшенное обобщение. В ходе процесса обучения число деревьев является фиксированным.
[0083] Примерный случайный лес решений показан на фиг. 9. Иллюстративный лес решений по фиг. 9 содержит три дерева решений: первое дерево 900; второе дерево 902; и третье дерево 904. Каждое дерево решений содержит корневой узел (например, корневой узел 906 первого дерева 900 решений), множество внутренних узлов, называемых узлами разбиения (например, узел 908 разбиения первого дерева 900 решений) и множество концевых узлов (например, концевой узел 910 первого дерева 900 решений).
[0084] При работе каждый корневой узел и узел разбиения каждого дерева выполняет двоичный тест для входных данных и на основе результата направляет данные в левый или правый дочерний узел. Концевые узлы не выполняют действия; они сохраняют накопленные голоса в пользу позиции сустава (и необязательно другую информацию). Например, могут сохраняться распределения вероятностей, представляющие накопленные голоса в пользу позиции сустава. В некоторых примерах концевые узлы необязательно сохраняют другую информацию, такую как распределения вероятностей по частям тела. В этом случае лес имеет возможность выступать как в качестве леса регрессии, чтобы прогнозировать позиции сустава, так и в качестве леса классификации, чтобы прогнозировать поверхностные части тела.
[0085] Далее описывается способ, которым выбираются параметры, используемые посредством каждого из узлов разбиения, и то, как могут вычисляться вероятности концевого узла. Дерево решений из леса решений выбирается 804 (например, первое дерево 800 решений), и корневой узел 806 выбирается 806. По меньшей мере, поднабор элементов изображения из каждого из обучающих изображений затем выбирается 808. Например, изображение может быть сегментировано таким образом, что элементы изображения в областях переднего плана выбираются. Выбранный элемент изображения каждого обучающего изображения ассоциирован с множеством известных позиций сустава. Например, элемент изображения в торсе может быть ассоциирован с известной позицией сустава для левого бедра и известной позицией сустава для правого бедра. В другом примере элемент изображения в торсе может быть ассоциирован со всеми известными позициями сустава в изображении.
[0086] Случайный набор тестовых параметров (которые вместе с тестами формируют случайный набор функций разбиения) затем формируется 810 для использования посредством двоичного теста, выполняемого в корневом узле в качестве признаков возможного варианта. В одном примере двоичный тест является функцией, применяемой к элементу x изображения с параметрами y и с выводом функции, сравниваемыми с пороговыми значениями. Если результат теста находится в диапазоне между пороговыми значениями, то результат двоичного теста является истиной. В противном случае результат двоичного теста является ложью. В других примерах может использоваться только одно из пороговых значений, так что результат двоичного теста является истиной, если результат больше (или альтернативно меньше) порогового значения. В примере, описанном здесь, параметр может задавать признак изображения.
[0087] Процесс для формирования параметра может содержать формирование случайных значений пространственного смещения в форме двух- или трехмерного смещения. Результат функции разбиения затем вычисляется посредством наблюдения значения глубины для тестового элемента изображения, который смещен от интересующего элемента x изображения в изображении на пространственное смещение. Пространственные смещения необязательно становятся инвариантными по глубине посредством масштабирования на 1/глубины интересующего элемента изображения. Пороговые значения могут использоваться для того, чтобы определять, находится или нет тестовый элемент изображения в позиции сустава.
[0088] Результат двоичного теста (разбиения), выполняемого в корневом узле или узле разбиения, определяет, в какой дочерний узел передается элемент изображения. Например, если результат двоичного теста является истиной, элемент изображения передается в первый дочерний узел, тогда как, если результат является ложью, элемент изображения передается во второй дочерний узел.
[0089] Случайный набор сформированных тестовых параметров содержит множество случайных значений для параметра функции разбиения и пороговых значений. Чтобы вводить случайность в деревья решений, параметры функции каждого узла разбиения оптимизированы только для произвольно дискретизированного поднабора всех возможных параметров. Это представляет собой эффективный и простой способ ввода случайности в деревья и увеличивает обобщение.
[0090] Модуль выбора функций разбиения на дерево может использоваться 814 для того, чтобы выбирать, какие из произвольно сформированных функций разбиения должны использоваться в данном узле разбиения. Это ускоряет процесс обучения, поскольку более необязательно применять каждую комбинацию тестовых параметров к каждому элементу изображения в наборе обучающих изображений. Это обусловлено тем, что состязательная логика имеет возможность опускать опции функции разбиения согласно вычисленным доверительным интервалам, как описано выше со ссылкой на фиг. 3 и 4. Таким образом, можно значительно уменьшать времена обучения при поддержании точности с указанной величиной с использованием значения устойчивости к ошибкам.
[0091] Логика количественной оценки вычисляет балльную оценку, также называемую "критериями" или "целями". В примере вычисленная балльная оценка содержит увеличение объема информации (также известное как "относительная энтропия"). В другом примере вычисленная балльная оценка содержит прирост Джини. Функция разбиения, которая оптимизирует балльную оценку (к примеру, максимизирует увеличение объема информации) выбирается 814 и сохраняется в текущем узле для будущего использования. В качестве альтернативы увеличению объема информации могут использоваться другие критерии, к примеру дисперсия или другие статистические величины ограниченной разности.
[0092] Затем определяется 816, меньше (или больше) или нет значение для вычисленной балльной оценки порогового значения. Если значение для вычисленной балльной оценки меньше порогового значения, то это указывает, что дополнительное расширение дерева не предоставляет значительное преимущество. Это обуславливает асимметричные деревья, которые естественно прекращают рост, когда дополнительные узлы не являются полезными. В таких случаях текущий узел задается 818 в качестве концевого узла. Аналогично, текущая глубина дерева определяется (т.е. сколько уровней узлов предусмотрено между корневым узлом и текущим узлом). Если она превышает предварительно заданное максимальное значение, то текущий узел задается 818 в качестве концевого узла. Каждый концевой узел имеет голоса в пользу позиции сустава, которые накапливаются в этом концевом узле в ходе процесса обучения, как описано ниже.
[0093] Также можно использовать другой критерий прекращения в комбинации с уже упомянутыми критериями. Например, чтобы оценивать число примерных элементов изображения, которые достигают листа. Если имеется слишком мало примеров (например, по сравнению с пороговым значением), то процесс может быть выполнен с возможностью прекращать не допускать сверхподгонки. Тем не менее, не принципиально использовать этот критерий прекращения.
[0094] Если значение для вычисленных критериев превышает или равно пороговому значению, и древовидная глубина меньше максимального значения, то текущий узел задается 820 в качестве узла разбиения. Поскольку текущий узел представляет собой узел разбиения, он имеет дочерние узлы, и процесс далее переходит к обучению этих дочерних узлов. Каждый дочерний узел обучается с использованием поднабора элементов обучающего изображения в текущем узле. Поднабор элементов изображения, отправленных в дочерний узел, определяется с использованием параметров, которые оптимизируют критерии. Эти параметры используются в двоичном тесте, и двоичный тест выполняется 822 для всех элементов изображения в текущем узле. Элементы изображения, которые проходят двоичный тест, формируют первый поднабор, отправленный в первый дочерний узел, и элементы изображения, которые завершаются с ошибкой двоичный тест, формируют второй поднабор, отправленный во второй дочерний узел.
[0095] Для каждого из дочерних узлов процесс, как указано на этапах 810-822 по фиг. 8, рекурсивно выполняется 824 для поднабора элементов изображения, направленных на соответствующий дочерний узел. Другими словами, для каждого дочернего узла, новые случайные тестовые параметры формируются 810, применяются 812 к соответствующему поднабору элементов изображения, параметры, оптимизирующие критерии, выбираются 814, и тип узла (разбиения или концевой) определяется 816. Если он представляет собой концевой узел, то текущая ветвь рекурсии прекращается. Если он представляет собой узел разбиения, двоичные тесты выполняются 822, чтобы определять дополнительные поднаборы элементов изображения, и начинается другая ветвь рекурсии. Следовательно, этот процесс рекурсивно перемещается через дерево, обучая каждый узел до тех пор, пока концевые узлы не будут достигнуты в каждой ветви. Когда концевые узлы достигаются, процесс ожидает 826 до тех пор, пока узлы во всех ветвях не будут обучены. Следует отметить, что в других примерах идентичная функциональность может достигаться с использованием альтернативных технологий для рекурсии.
[0096] Когда все узлы в дереве обучены с возможностью определять параметры для двоичного теста, оптимизирующего критерии в каждом узле разбиения, и концевые узлы выбраны таким образом, чтобы завершать каждую ветвь, затем голоса могут накапливаться 828 в концевых узлах дерева. Это представляет собой стадию обучения, и в силу этого конкретные элементы изображения, которые достигают данный концевой узел, имеют указанные голоса в пользу относительной позиции сустава, известные из обучающих данных проверки экспериментальными данными. Представление накопленных голосов может сохраняться 830 с использованием различных специальных способов. Необязательно дискретизация может использоваться для того, чтобы выбирать голоса, которые должны накапливаться и сохраняться, чтобы поддерживать низкий объем потребляемого запоминающего устройства. Например, может использоваться дискретизация резервуара, за счет которой извлекается фиксированная выборка максимального размера голосов. Выбор может выполняться случайным или любым другим способом.
[0097] Когда сохранены накопленные голоса, определяется 832, присутствуют или нет еще деревья в лесе решений. Если да, то выбирается следующее дерево в лесе решений, и процесс повторяется. Если все деревья в лесу обучены, и других не остается, то процесс обучения закончен и процесс завершается 834.
[0098] Следовательно, как результат процесса обучения, одно или более деревьев решений обучены с использованием синтезированных или эмпирических обучающих изображений. Каждое дерево содержит множество узлов разбиения, сохраняющих оптимизированные тестовые параметры, и концевых узлов, сохраняющих ассоциированные голоса в пользу позиции сустава или представления агрегированных голосов в пользу позиции сустава. Вследствие случайного формирования параметров из ограниченного поднабора, используемого в каждом узле, деревья леса являются различными (т.е. отличающимися) друг от друга.
[0099] Процесс обучения может выполняться перед использованием обученной системы прогнозирования, чтобы идентифицировать позиции сустава в реальном изображении с глубиной. Лес решений и оптимизированные тестовые параметры могут сохраняться на устройстве хранения данных для использования при идентификации позиций сустава подробно изображения позднее.
[00100] Фиг. 10 иллюстрирует блок-схему последовательности операций способа процесса для прогнозирования позиций сустава в ранее невидимом изображении с глубиной с использованием леса решений, который обучен, как описано выше. Во-первых, невидимое изображение с глубиной принимается 1000. Изображение упоминается в качестве "невидимого", чтобы отличать его из обучающего изображения, который имеет позиции сустава, уже указываемые. Следует отметить, что невидимое изображение с глубиной может предварительно обрабатываться до степени, например, чтобы идентифицировать области переднего плана, что сокращает число элементов изображения, которые должны обрабатываться посредством леса решений. Тем не менее, предварительная обработка для того, чтобы идентифицировать области переднего плана, не принципиальна. В некоторых примерах невидимое изображение с глубиной представляет собой изображение силуэта, как описано выше, в котором изображение с глубиной эффективно сглажено до фиксированной глубины.
[00101] Элемент изображения из невидимого изображения выбирается 1002. Обученное дерево решений из леса решений также выбирается 1004. Выбранный элемент изображения продвигается 1006 через выбранное дерево решений, так что он тестируется при сравнении с обученными параметрами в узле и затем передается в соответствующий дочерний элемент в зависимости от результата теста, и процесс повторяется до тех пор, пока элемент изображения не достигнет концевого узла. Когда элемент изображения достигает концевого узла, накопленные голоса (из стадии обучения), ассоциированные с этим концевым узлом, сохраняются 1008 для этого элемента изображения.
[00102] Если определяется 1010, что имеются еще деревья решений в лесу, то новое дерево решений выбирается 1004, элемент изображения продвигается 1006 через дерево, и накопленные голоса сохраняются 1008. Это повторяется до тех пор, пока это не будет выполнено для всех деревьев решений в лесу. Следует отметить, что процесс для продвижения элемента изображения через множество деревьев в лесе решений также может выполняться параллельно, а не последовательно, как показано на фиг. 10.
[00103] Затем определяется 1012, присутствуют или нет дополнительные непроанализированные элементы изображения в невидимом изображении с глубиной, и если да, другой элемент изображения выбирается, и процесс повторяется. Когда все элементы изображения в невидимом изображении проанализированы, то голоса в пользу позиции сустава получаются для всех элементов изображения.
[00104] По мере того как элементы изображения продвигаются через деревья в лесе решений, голоса накапливаются. Эти накопленные голоса агрегируются 1014, чтобы формировать полное агрегирование голосов для каждого элемента изображения. Необязательно, выборка голосов может извлекаться для агрегирования. Например, N голосов могут быть выбраны произвольно или посредством извлечения первых N взвешенных голосов и последующего процесса агрегирования, применяемого только к этим N голосов. Это позволяет обеспечивать компромисс точности и скорости.
[00105] По меньшей мере, один набор позиций сустава затем может выводиться 1016, причем позиции сустава могут быть взвешиваться по доверию. Это помогает любому последующему алгоритму отслеживания (или другому процессу) оценивать, является или нет предположение хорошим. Несколько наборов позиций сустава могут выводиться, например, если имеется неопределенность. Кроме того, набор позиций сустава может содержать нули для одного или более суставов. Например, если позиция сустава находится вне поля зрения датчика изображений, и/или если отсутствуют голоса элементов изображения за позицию сустава.
[00106] Фиг. 11 иллюстрирует различные компоненты примерного вычислительного устройства 504, которое может быть реализовано как любая форма вычислительного и/или электронного устройства, и в котором могут реализовываться варианты осуществления системы машинного обучения. В этом примере вычислительное устройство 504 выполнено с возможностью обучать случайный лес решений для прогнозирования местоположений сустава (или других задач) из изображений с глубиной, например, управлять игрой с использованием перемещений человеческого тела. Тем не менее, это не принципиально; могут предоставляться другие приложения машинного обучения, которые заключают в себе выбор опции из множества неопределенных опций.
[00107] Вычислительное устройство 504 содержит один или более процессоров 1100, которые могут представлять собой микропроцессоры, контроллеры или любой другой подходящий тип процессоров для обработки машиноисполняемых инструкций, чтобы управлять работой устройства таким образом, чтобы осуществлять действия с системой машинного обучения, например, чтобы обучать случайный лес решений для прогнозирования местоположений сустава или других задач. В некоторых примерах например, в которых используется архитектура на основе внутрикристальной системы, процессоры 1100 могут включать в себя один или более фиксированных функциональных блоков (также называемых "акселераторами"), которые реализуют часть способа любого из фиг. 1, 3, 4, 7, 8 и 10 в аппаратных средствах (а не в программном обеспечении или микропрограммном обеспечении). Платформенное программное обеспечение, содержащее операционную систему 1114 или любое другое подходящее платформенное программное обеспечение, может предоставляться в вычислительном устройстве для того, чтобы обеспечивать возможность выполнения прикладного программного обеспечения 1116 на устройстве. Обучающая логика 1118 на основе деревьев может предоставляться, чтобы обучать одно или более случайных деревьев решений с использованием, по меньшей мере, части процесса по фиг. 7 и 8. Может предоставляться модуль 1124 выбора опций, который может представлять собой любое из модуля выбора опций, модуля выбора моделей, модуля выбора признаков и модуля выбора функций разбиения на дерево по фиг. 1. Хранилище 1122 данных может сохранять значение устойчивости к ошибкам, обученные случайные деревья решений, обучающие примеры, выбранные опции и другие данные. В случае если вычислительное устройство выполнено с возможностью осуществлять обнаружение местоположений сустава из изображений с глубиной или других изображений, предоставляется логика 1120 прогнозирования местоположений сустава. Логика 1120 прогнозирования местоположений сустава может реализовывать, по меньшей мере, часть способа по фиг. 10.
[00108] Машиноисполняемые инструкции могут предоставляться с использованием любых машиночитаемых носителей, которые являются доступными посредством вычислительного устройства 504. Машиночитаемые носители могут включать в себя, например, компьютерные носители хранения данных, к примеру запоминающее устройство 1112, и среды связи. Компьютерные носители хранения, такие как запоминающее устройство 1112, включают в себя энергозависимые и энергонезависимые, съемные и стационарные носители, реализованные любым способом или технологией для хранения информации, такой как машиночитаемые инструкции, структуры данных, программные модули или другие данные. Компьютерные носители хранения данных включают в себя, но не только, RAM, ROM, EPROM, EEPROM, флэш-память или другую технологию запоминающих устройств, CD-ROM, универсальные цифровые диски (DVD) или другое оптическое устройство хранения данных, магнитные кассеты, магнитную ленту, устройство хранения данных на магнитных дисках или другие магнитные устройства хранения данных либо любой другой непереносимый носитель, который может использоваться для того, чтобы сохранять информацию для доступа посредством вычислительного устройства. Напротив, среды связи могут осуществлять машиночитаемые инструкции, структуры данных, программные модули или другие данные в модулированном сигнале данных, таком как несущая или другой механизм транспортировки. Как задано в данном документе, компьютерные носители хранения данных не включают в себя среды связи. Следовательно, компьютерный носитель хранения данных не должен интерпретироваться в качестве распространяемого сигнала по сути. Распространяемые сигналы могут присутствовать в компьютерных носителях хранения данных, но распространяемые сигналы по сути не являются примерами компьютерных носителей хранения данных. Хотя компьютерные носители хранения данных (запоминающее устройство 1112) показаны в вычислительном устройстве 504, следует принимать во внимание, что устройство хранения может быть распределенным или расположенным удаленно и быть доступным через сеть либо другую линию связи (например, с использованием интерфейса 1113 связи).
[00109] Вычислительное устройство 504 также содержит интерфейс 1102 ввода и интерфейс 1110 вывода, выполненный с возможностью выводить информацию отображения в устройство 508 отображения, которое может быть отдельным или интегрированным в вычислительное устройство 504. Информация отображения может предоставлять графический пользовательский интерфейс. Интерфейс 1102 ввода также выполнен с возможностью принимать и обрабатывать ввод из одного или более устройств, таких как устройство пользовательского ввода (например, мышь 1108, клавиатура 1106, игровой контроллер 1104, камера 506, микрофон или другой датчик). В некоторых примерах интерфейс 1102 ввода может обнаруживать речевой ввод, пользовательские жесты или другие действия пользователя и может предоставлять естественный пользовательский интерфейс (NUI). Этот пользовательский ввод может использоваться для того, чтобы управлять игрой или другим приложением. В варианте осуществления устройство 508 отображения также может выступать в качестве устройства пользовательского ввода, если оно представляет собой сенсорное устройство отображения. Интерфейс 1110 вывода также может выводить данные в устройства, отличные от устройства отображения, например, в локально соединенное печатающее устройство.
[00110] Интерфейс 1102 ввода, интерфейс 1110 вывода и необязательно устройства пользовательского ввода (игровой контроллер 1104, клавиатура 1106, мышь 1108, устройство 506 захвата) могут содержать NUI-технологию, которая предоставляет возможность пользователю взаимодействовать с вычислительным устройством естественным способом, свободным от искусственных ограничений, налагаемых посредством устройств ввода, таких как мыши, клавиатуры, пульты дистанционного управления и т.п. Примеры NUI-технологии, которая может предоставляться, включают в себя, но не только, NUI-технологии, которые основываются на распознавании голоса и/или речи, распознавании касаний и/или действий стилуса (сенсорные дисплеи), распознавании жестов как на экране, так и рядом с экраном, воздушных жестах, слежении за положением головы и глаз, голосе и речи, зрении, касании, жестах и искусственном интеллекте. Другие примеры NUI-технологии, которая может использоваться, включают в себя системы понимания намерений и целей, системы обнаружения жестов движения с использованием камер с эффектом глубины (к примеру, системы стереоскопических камер, системы камер для съемки в инфракрасном диапазоне, системы RGB-камер и их комбинации), обнаружение жестов движения с использованием акселерометров/гироскопов, распознавание лиц, трехмерные дисплеи, слежение за положением головы, глаз и взгляда, иммерсивные системы дополненной реальности и виртуальной реальности и технологии для считывания мозговой активности с использованием электродов для считывания электрического поля (EEG и связанные способы).
[00111] Термин "компьютер" или "вычислительное устройство" используется в данном документе, чтобы означать любое устройство с такими характеристиками обработки, что оно может выполнять инструкции. Специалисты в данной области техники должны признавать, что такие характеристики обработки включены во множество различных устройств, и, следовательно, термины "компьютер" и "вычислительное устройство" включают в себя PC, серверы, мобильные телефоны (включающие в себя смартфоны), планшетные компьютеры, абонентские приставки, мультимедийные проигрыватели, игровые приставки, персональные цифровые устройства и многие другие устройства.
[00112] Способы, описанные в данном документе, могут осуществляться посредством программного обеспечения в машиночитаемой форме на материальном носителе хранения данных, например, в форме компьютерной программы, содержащей средство компьютерного программного кода, выполненное с возможностью осуществлять все этапы любого из способов, описанных в данном документе, когда программа выполняется на компьютере, и если компьютерная программа может быть осуществлена на машиночитаемом носителе. Примеры материальных носителей хранения данных включают в себя компьютерные устройства хранения данных, содержащие машиночитаемые носители, к примеру диски, карты флэш-памяти, запоминающее устройство и т.д., и не включают в себя распространяемые сигналы. Распространяемые сигналы могут присутствовать в материальных носителях хранения данных, но распространяемые сигналы по сути не являются примерами материальных носителей хранения данных. Программное обеспечение может быть подходящим для выполнения на параллельном процессоре или последовательном процессоре, так что этапы способа могут выполняться в любом подходящем порядке или одновременно.
[00113] Это подтверждает, что программное обеспечение может представлять собой ценный отдельно продаваемый актив. Оно имеет намерение охватывать программное обеспечение, которое работает или управляет "неинтеллектуальными" или стандартными аппаратными средствами таким образом, чтобы выполнять требуемые функции. Оно также имеет намерение охватывать программное обеспечение, которое "описывает" или задает конфигурацию аппаратных средств, к примеру программное обеспечение на HDL (языке описания аппаратных средств), которое используется для конструирования кремниевых кристаллов или для конфигурирования универсальных программируемых кристаллов, чтобы выполнять требуемые функции.
[00114] Специалисты в данной области техники должны признавать, что устройства хранения данных, используемые для того, чтобы сохранять программные инструкции, могут быть распределены в сети. Например, удаленный компьютер может сохранять пример процесса, описанного в качестве программного обеспечения. Локальный или терминальный компьютер может осуществлять доступ к удаленному компьютеру и загружать часть или все программное обеспечение, чтобы выполнять программу. Альтернативно локальный компьютер может загружать фрагменты программного обеспечения по мере необходимости или выполнять некоторые программные инструкции в локальном терминале, и некоторые – в удаленном компьютере (или компьютерной сети). Специалисты в данной области техники также должны признавать, что посредством использования традиционных технологий, известных специалистам в данной области техники, все или часть программных инструкций могут выполняться посредством специализированной схемы, такой как DSP, программируемая логическая матрица и т.п.
[00115] Все значения диапазона или устройств, приведенные в данном документе, могут быть расширены или изменены без потери искомого эффекта, как должно быть очевидным для специалистов в данной области техники.
[00116] Хотя изобретение описано на языке, характерном для структурных признаков и/или технологических этапов, следует понимать, что объем изобретения, определяемый прилагаемой формулой изобретения, не обязательно ограничен характерными признаками или этапами, описанными выше. Вместо этого характерные признаки и этапы, описанные выше, раскрываются как примерные формы реализации формулы изобретения.
[00117] Следует понимать, что выгоды и преимущества, описанные выше, могут быть связаны с одним вариантом осуществления или могут быть связаны с несколькими вариантами осуществления. Варианты осуществления не ограничены вариантами осуществления, которые разрешают любые из установленных проблем, либо вариантами осуществления, которые обладают всеми из установленных выгод и преимуществ. Дополнительно следует понимать, что ссылка на элемент означает один или более этих элементов.
[00118] Этапы способов, описанных в данном документе, могут выполняться в любом подходящем порядке или одновременно при необходимости. Кроме того, отдельные блоки могут удаляться из любого из способов без отступления от сущности и объема изобретения, описанного в данном документе. Аспекты любого из примеров, описанных выше, могут быть комбинированы с аспектами любого из других описанных примеров, чтобы формировать дополнительные примеры без потери искомого эффекта.
[00119] Термин "содержащий" используется в данном документе, чтобы означать включающий в себя идентифицированные этапы способа или элементы, но такие этапы или элементы не содержат исключающий список, и способ или устройство может содержать дополнительные этапы или элементы.
[00120] Следует понимать, что вышеприведенное описание приводится только в качестве примера и что различные модификации могут вноситься специалистами в данной области техники. Вышеприведенное подробное описание, примеры и данные предоставляют полное описание структуры и применения примерных вариантов осуществления. Хотя различные варианты осуществления описаны выше с конкретной степенью подробности либо в отношении одного или более отдельных вариантов осуществления, специалисты в данной области техники могут вносить множество изменений в раскрытые варианты осуществления без отступления от сущности или объема этого подробного описания.