BR112017003220B1 - COMPUTER-IMPLEMENTED METHOD, COMPUTER STORAGE MEDIUM, AND MOTOR TASK CLASSIFIER FOR VIDEO PROCESSING FOR MOTOR TASK ANALYSIS - Google Patents

COMPUTER-IMPLEMENTED METHOD, COMPUTER STORAGE MEDIUM, AND MOTOR TASK CLASSIFIER FOR VIDEO PROCESSING FOR MOTOR TASK ANALYSIS Download PDF

Info

Publication number
BR112017003220B1
BR112017003220B1 BR112017003220-1A BR112017003220A BR112017003220B1 BR 112017003220 B1 BR112017003220 B1 BR 112017003220B1 BR 112017003220 A BR112017003220 A BR 112017003220A BR 112017003220 B1 BR112017003220 B1 BR 112017003220B1
Authority
BR
Brazil
Prior art keywords
video
machine learning
learning system
trained
motor task
Prior art date
Application number
BR112017003220-1A
Other languages
Portuguese (pt)
Other versions
BR112017003220A2 (en
BR112017003220A8 (en
Inventor
Peter Kontschieder
Jonas Dorn
Darko Zikic
Antonio Criminisi
Original Assignee
Microsoft Technology Licensing, Llc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US14/536,660 external-priority patent/US10083233B2/en
Application filed by Microsoft Technology Licensing, Llc filed Critical Microsoft Technology Licensing, Llc
Publication of BR112017003220A2 publication Critical patent/BR112017003220A2/en
Publication of BR112017003220A8 publication Critical patent/BR112017003220A8/en
Publication of BR112017003220B1 publication Critical patent/BR112017003220B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/78Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/783Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9566URL specific, e.g. using aliases, detecting broken or misspelled links
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2415Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
    • G06F18/24155Bayesian classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]

Abstract

A presente invenção se refere a um processamento de vídeo para análise de tarefas motoras. Em vários exemplos, um vídeo de pelo menos uma parte de uma pessoa ou animal executando uma tarefa motora, tal como colocando o dedo indicador sobre o nariz, é enviado para um sistema de aprendizado de máquina treinada para classificar a tarefa motora em uma dentre uma pluralidade de classes. Em um exemplo, descritores de movimento, tais como um fluxo óptico, são calculados a partir de pares de quadros de vídeo, e os descritores de movimento são enviados para o sistema de aprendizado de máquina. Por exemplo, durante o treinamento, o sistema de aprendizado de máquina identifica características de aceleração ou velocidade dependentes de posição e/ou dependentes do tempo, características essas que discriminam entre classes de tarefas motoras. Nos exemplos, o sistema de aprendizado de máquina treinada calcula, a partir dos descritores de movimento, as características de aceleração ou velocidade que aprendeu como sendo bons discriminadores. Em vários exemplos, uma característica é calculada usando subvolumes do vídeo.The present invention relates to video processing for analyzing motor tasks. In several examples, a video of at least a portion of a person or animal performing a motor task, such as placing an index finger on the nose, is sent to a machine learning system trained to classify the motor task into one of a number. plurality of classes. In one example, motion descriptors, such as an optical flow, are calculated from pairs of video frames, and the motion descriptors are sent to the machine learning system. For example, during training, the machine learning system identifies position-dependent and/or time-dependent acceleration or velocity characteristics, characteristics that discriminate between classes of motor tasks. In the examples, the trained machine learning system calculates, from the motion descriptors, the acceleration or velocity characteristics that it has learned to be good discriminators. In several examples, a feature is calculated using subvolumes of the video.

Description

ANTECEDENTES DA INVENÇÃOBACKGROUND OF THE INVENTION

[001] A execução de tarefas motoras, tais como levantar um braço, ficar de pé, levantar uma perna ou outros movimentos, tipicamente varia de forma considerável de pessoa para pessoa, dependendo. Por exemplo, da sua estrutura corporal, seu peso corporal, além de outros fatores, tais como a experiência ou habilidade do indivíduo, a experiência, a força ou sua capacidade física. Os métodos existentes de análise do desempenho de tarefas motoras tipicamente envolvem uma observação manual e, deste modo, são subjetivos e abertos a uma variação dependendo da habilidade do observador ao fazer tal análise.[001] The execution of motor tasks, such as lifting an arm, standing, lifting a leg or other movements, typically varies considerably from person to person, depending. For example, your body structure, your body weight, as well as other factors, such as the individual's experience or ability, experience, strength or physical capacity. Existing methods of analyzing motor task performance typically involve manual observation and are therefore subjective and open to variation depending on the skill of the observer in making such analysis.

[002] As modalidades abaixo descritas não se limitam a implementações que solucionam quaisquer ou todas as desvantagens dos sistemas de análise de tarefas motoras conhecidos.[002] The embodiments described below are not limited to implementations that solve any or all of the disadvantages of known motor task analysis systems.

SUMÁRIO DA INVENÇÃOSUMMARY OF THE INVENTION

[003] A seguir, é feito um sumário simplificado da presente invenção no sentido de oferecer uma compreensão básica ao leitor. Este sumário não chega a ser um amplo resumo introdutório da presente invenção, como também não identifica os elementos chave/críticos ou delineia o âmbito do presente relatório descritivo. A sua única finalidade é apresentar uma seleção dos conceitos descritos no presente documento de uma maneira simplificada como um prelúdio à descrição mais detalhada que será apresentada mais adiante.[003] Below, a simplified summary of the present invention is made in order to offer a basic understanding to the reader. This summary is not a broad introductory summary of the present invention, nor does it identify the key/critical elements or outline the scope of the present specification. Its sole purpose is to present a selection of the concepts described in this document in a simplified manner as a prelude to the more detailed description that will be presented later.

[004] É descrito um processamento de vídeo para a análise de tarefas motoras. Em vários exemplos, um vídeo de pelo menos uma parte de uma pessoa ou animal que realiza uma tarefa motora, tal como colocar o dedo indicador sobre o nariz, é enviado para um sistema de aprendizado de máquina treinado no sentido de classificar a tarefa motora dentre uma pluralidade de classes. Em um exemplo, descritores de movimento, tais como um fluxo óptico, são calculados a partir de pares de quadros de vídeo, e os descritores de movimento são enviados para o sistema de aprendizado de máquina. Por exemplo, durante um treinamento, o sistema de aprendizado de máquina identifica características de aceleração ou velocidade dependentes de posição e/ou dependentes do tempo, características essas que discriminam as classes de tarefas motoras. Nos exemplos, o sistema de aprendizado de máquina treinado calcula, a partir dos descritores de movimento, as características de aceleração ou velocidade dependentes de posição aprendidas como sendo bons discriminadores. Em vários exemplos, uma característica é calculada usando subvolumes do vídeo.[004] Video processing for the analysis of motor tasks is described. In several examples, a video of at least part of a person or animal performing a motor task, such as placing an index finger on the nose, is sent to a machine learning system trained to classify the motor task among a plurality of classes. In one example, motion descriptors, such as an optical flow, are calculated from pairs of video frames, and the motion descriptors are sent to the machine learning system. For example, during training, the machine learning system identifies position-dependent and/or time-dependent acceleration or velocity characteristics, characteristics that discriminate between classes of motor tasks. In the examples, the trained machine learning system calculates, from the motion descriptors, the learned position-dependent acceleration or velocity characteristics as being good discriminators. In several examples, a feature is calculated using subvolumes of the video.

[005] Muitas das presentes características serão mais facilmente apreciadas à medida as mesmas se tornam mais bem compreendidas com referência à descrição detalhada que se segue considerada em conjunto com os desenhos em anexo.[005] Many of the present features will be more easily appreciated as they become better understood with reference to the detailed description that follows considered in conjunction with the attached drawings.

BREVE DESCRIÇÃO DOS DESENHOSBRIEF DESCRIPTION OF THE DRAWINGS

[006] A presente descrição será mais bem compreendida a partir da descrição detalhada que se segue quando lida à luz dos desenhos em anexo, nos quais:[006] The present description will be better understood from the detailed description that follows when read in light of the attached drawings, in which:

[007] figura 1 é um diagrama esquemático de uma captura de vídeo de uma pessoa que realiza uma tarefa motora, e mostra o processamento do vídeo no sentido de analisar a tarefa motora;[007] figure 1 is a schematic diagram of a video capture of a person performing a motor task, and shows the processing of the video in order to analyze the motor task;

[008] figura 2 é um diagrama esquemático de exemplos de tarefas motoras;[008] figure 2 is a schematic diagram of examples of motor tasks;

[009] figura 3 é um diagrama esquemático de um dispositivo de captura que pode ser usado no cenário da Figura 1;[009] Figure 3 is a schematic diagram of a capture device that can be used in the scenario of Figure 1;

[0010] figura 4 é um diagrama esquemático de um quadro de vídeo da Figura 1 e o resultado do pré-processamento do quadro, bem como um aparelho de pré-processamento;[0010] Figure 4 is a schematic diagram of a video frame of Figure 1 and the result of pre-processing the frame, as well as a pre-processing apparatus;

[0011] figura 5 é um diagrama esquemático de um sistema para o treinamento de um sistema de aprendizado de máquina no sentido de analisar vídeos de tarefas motoras;[0011] figure 5 is a schematic diagram of a system for training a machine learning system to analyze videos of motor tasks;

[0012] figura 6 é um fluxograma de um método de treinamento de uma floresta de decisão aleatória no sentido de classificar vídeos de tarefas motoras;[0012] Figure 6 is a flowchart of a method for training a random decision forest to classify videos of motor tasks;

[0013] figura 7 é um diagrama esquemático de uma floresta de decisão aleatória;[0013] Figure 7 is a schematic diagram of a random decision forest;

[0014] figura 8 é um fluxograma de um método de uso de uma floresta de decisão aleatória treinada no sentido de classificar um vídeo de tarefas motoras;[0014] Figure 8 is a flowchart of a method of using a trained random decision forest to classify a video of motor tasks;

[0015] figura 9 ilustra um dispositivo de computação exemplar no qual modalidades de um sistema de processamento de vídeo podem ser implementadas.[0015] Figure 9 illustrates an exemplary computing device in which embodiments of a video processing system can be implemented.

[0016] Numerais de referência similares são usados no sentido de designar partes similares nos desenhos em anexo.[0016] Similar reference numerals are used to designate similar parts in the attached drawings.

DESCRIÇÃO DETALHADA DA INVENÇÃODETAILED DESCRIPTION OF THE INVENTION

[0017] A descrição detalhada apresentada a seguir em conjunto com os desenhos em apenso pretende ser uma descrição dos presentes exemplos e não se destina a representar as únicas formas nas quais o presente exemplo poderá ser construído ou utilizado. A descrição apresenta as funções do exemplo e a sequência de etapas para a construção e funcionamento do exemplo. No entanto, as mesmas funções e sequências ou funções e sequências equivalentes poderão ser obtidas por meio de outros exemplos.[0017] The detailed description presented below together with the attached drawings is intended to be a description of the present examples and is not intended to represent the only ways in which the present example may be constructed or used. The description presents the example functions and the sequence of steps for building and operating the example. However, the same functions and sequences or equivalent functions and sequences may be obtained through other examples.

[0018] A Figura 1 é um diagrama esquemático de uma pessoa 101que executa uma tarefa motora, tal como a colocação do dedo indicador sobre o nariz (tal como indicado pela posição de braço 112), movimento esse que se inicia a partir de uma posição na qual o braço fica estendido na horizontal (tal como indicado pela posição de braço 114). Este é apenas um exemplo de uma tarefa motora e outras mais serão feitas com referência à Figura 2 abaixo.[0018] Figure 1 is a schematic diagram of a person 101 who performs a motor task, such as placing the index finger on the nose (as indicated by arm position 112), which movement begins from a position in which the arm is extended horizontally (as indicated by arm position 114). This is just an example of a motor task and more will be done with reference to Figure 2 below.

[0019] Antes, a análise de tarefas motoras era feita manualmente (por exemplo, por meio de uma observação visual), análise essa que ficava sujeita a variabilidades, tais como enviesamentos do observador, o nível de experiência do observador, e o ambiente do observador. Em vários exemplos descritos abaixo, vídeos de tarefas motoras são processados no sentido de analisar as tarefas motoras, ou seja, no sentido de classificar as tarefas motoras em duas ou mais classes, tais como boa, média, fraca (por exemplo, no sentido de indicar o nível de desempenho da tarefa motora). Ao usar um sistema de processamento de vídeo automatizado, tal como descrito no presente documento, é possível se obter classificações/avaliações imparciais, precisas de uma maneira rápida e prática.[0019] Previously, the analysis of motor tasks was done manually (for example, through visual observation), which analysis was subject to variability, such as observer biases, the observer's level of experience, and the environment of the observer. In several examples described below, videos of motor tasks are processed in the sense of analyzing the motor tasks, that is, in the sense of classifying the motor tasks into two or more classes, such as good, average, poor (e.g., in the sense of indicate the level of performance of the motor task). By using an automated video processing system, as described in this document, it is possible to obtain impartial, accurate ratings/reviews in a quick and practical manner.

[0020] Um dispositivo de captura de vídeo 100 captura o vídeo de uma pessoa 101 que realiza uma tarefa motora em um ambiente, o qual, no exemplo da Figura 1, é um quarto com uma pintura 106 na parede, um sofá 110, e uma peça de roupa 108 pendurada na parede. No entanto, isto é apenas um exemplo e outros ambientes poderão ser usados. O dispositivo de captura de vídeo 100 pode ser montado na parede de frente para o usuário ou pode ser suportado de qualquer outra forma, tal como em um dispositivo de computação, em uma mesa ou outra estrutura. O dispositivo de captura de vídeo 100 é descrito em mais detalhe com referência à Figura 2. Esse dispositivo captura um fluxo de imagens 116 compreendendo uma pluralidade de quadros capturados a uma taxa de quadro de, por exemplo, 30 quadros por segundo ou mais. Outras taxas de quadro poderão ser usadas, dependendo do tipo de tarefa motora ou equipamento de captura de vídeo. Os vídeos de pessoas são capturados mediante apropriado consentimento e o material de vídeo é de preferência armazenado de uma maneira segura, privada.[0020] A video capture device 100 captures video of a person 101 performing a motor task in an environment, which, in the example of Figure 1, is a room with a painting 106 on the wall, a sofa 110, and a piece of clothing 108 hanging on the wall. However, this is just an example and other environments can be used. The video capture device 100 may be mounted on the wall facing the user or may be supported in any other manner, such as on a computing device, on a table, or other structure. Video capture device 100 is described in more detail with reference to Figure 2. This device captures a stream of images 116 comprising a plurality of frames captured at a frame rate of, for example, 30 frames per second or more. Other frame rates may be used depending on the type of motor task or video capture equipment. Videos of people are captured with appropriate consent and the video material is preferably stored in a secure, private manner.

[0021] Os quadros capturados podem ser enviados para um dispositivo de computação 104, o qual pode ser integral com o dispositivo de captura de vídeo 100 ou pode ser conectado ao dispositivo de captura de vídeo usando comunicações sem fio, uma conexão com fio ou de outras maneiras. O dispositivo de computação 104 pode estar na nuvem, fornecido como um serviço na nuvem. O exemplo da Figura 1 mostra um único dispositivo de computação 104. No entanto, é igualmente possível usar uma pluralidade de dispositivos de computação distribuídos, que, em conjunto, provêem funcionalidade.[0021] The captured frames may be sent to a computing device 104, which may be integral with the video capture device 100 or may be connected to the video capture device using wireless communications, a wired connection or other ways. The computing device 104 may be in the cloud, provided as a cloud service. The example of Figure 1 shows a single computing device 104. However, it is equally possible to use a plurality of distributed computing devices, which together provide functionality.

[0022] O dispositivo de computação 104 da Figura 1 compreende um componente de pré-processamento 118 que pré-processa o vídeo no sentido de produzir imagens pré-processadas 120. Esse dispositivo também dispõe de um sistema de aprendizado de máquina treinado 122, tal como uma floresta de decisão aleatória, um ensemble de máquinas de vetores de suporte, ou outro sistema de aprendizado de máquina treinado que gera dados de classificação de tarefa motora 124.[0022] The computing device 104 of Figure 1 comprises a pre-processing component 118 that pre-processes the video to produce pre-processed images 120. This device also has a trained machine learning system 122, such such as a random decision forest, an ensemble of support vector machines, or other trained machine learning system that generates 124 motor task classification data.

[0023] O sistema de aprendizado de máquina é treinado para aprender características de movimentos locais dependentes de posição, que são bons discriminadores de classes de tarefas motoras. Por exemplo, as características de movimentos locais aleatoriamente selecionadas podem ser avaliadas durante um treinamento e aquelas que realizam uma boa discriminação são selecionadas. As características dependentes de posição são características de um ou mais subvolumes do vídeo. A sequência de quadros que formam um vídeo pode ser considerada como aquela que forma um volume e um subvolume em uma região contígua de maior volume. As características de um subvolume são dependentes de posição, uma vez que o subvolume se encontra em um local específico no tempo e no espaço do vídeo. As características de movimentos locais são características de um ou mais subvolumes relacionados à maneira como os elementos de imagem dentro dos quadros do subvolume mudam de posição entre os quadros de imagem. Por exemplo, as características de movimentos locais podem estar relacionadas à velocidade ou à aceleração dos elementos de imagem. O termo aceleração é usado no presente documento de modo a se referir à taxa de mudança de magnitude de velocidade ou à taxa de mudança de direção da velocidade, ou a ambas as taxas de mudança de magnitude e de direção da velocidade. Foi observado que as características de movimentos locais dependentes de posição podem prover discriminadores eficazes para classes de tarefa motora, tal como explicado em mais detalhe no presente documento.[0023] The machine learning system is trained to learn position-dependent local movement features, which are good discriminators of motor task classes. For example, randomly selected local motion features can be evaluated during training and those that perform good discrimination are selected. Position-dependent features are features of one or more subvolumes of the video. The sequence of frames that form a video can be considered as one that forms a volume and a subvolume in a contiguous region of greater volume. The characteristics of a subvolume are position dependent, since the subvolume is located in a specific location in time and space in the video. Local motion characteristics are characteristics of one or more subvolumes related to the way image elements within frames of the subvolume change position between image frames. For example, local motion characteristics may be related to the speed or acceleration of image elements. The term acceleration is used herein to refer to the rate of change of velocity magnitude or the rate of change of velocity direction, or both rates of change of velocity magnitude and direction. It has been observed that position-dependent local movement characteristics can provide effective discriminators for motor task classes, as explained in more detail in the present document.

[0024] A Figura 2 é um diagrama esquemático de quatro tipos diferentes de tarefa motora que podem ser analisados. Uma tarefa de dedo sobre nariz 200 é mostrada quando uma pessoa levanta um braço em uma posição horizontal e aponta o dedo indicador; em seguida, a pessoa movimenta o braço de modo a colocar o dedo indicador sobre o nariz. Uma tarefa de dedo sobre dedo 204 envolve uma pessoa que levanta ambos os braços para posições horizontais com os dedos indicadores apontando para fora do corpo. A pessoa, em seguida, movimenta os dois braços de modo que os dedos indicadores se encontrem na frente do corpo. Uma tarefa de desenhar quadrados 202 envolve uma pessoa que desenha quadrados de tamanhos iguais no ar; um com cada dedo indicador. Uma tarefa de ataxia truncal 206 envolve uma pessoa que estende os dois braços horizontalmente para fora do corpo e mantém essa posição. Os exemplos de tarefas motoras dadas na Figura 2 não representam uma lista exaustiva de exemplos de possíveis tarefas motoras, mas são dados no sentido de ilustrar a tecnologia.[0024] Figure 2 is a schematic diagram of four different types of motor task that can be analyzed. A finger-over-nose task 200 is shown when a person raises an arm in a horizontal position and points the index finger; Then, the person moves their arm to place their index finger over their nose. A finger-over-finger 204 task involves a person raising both arms to horizontal positions with the index fingers pointing away from the body. The person then moves both arms so that the index fingers are in front of the body. A square-drawing task 202 involves a person drawing equal-sized squares in the air; one with each index finger. A truncal ataxia 206 task involves a person extending both arms horizontally away from the body and maintaining that position. The examples of motor tasks given in Figure 2 do not represent an exhaustive list of examples of possible motor tasks, but are given to illustrate the technology.

[0025] Em seguida, é feita referência à Figura 3, que ilustra um diagrama esquemático de um dispositivo de captura de vídeo exemplar 100 que pode ser usado no sistema baseado em câmera da Figura 1. No exemplo da Figura 3, o dispositivo de captura de vídeo 100 é configurado de modo a capturar vídeos de profundidade (usando uma câmera de profundidade 302), bem como vídeos coloridos (usando uma câmera RGB 306). No entanto, esta não vem a ser uma questão essencial. É igualmente possível capturar apenas vídeos coloridos, ou apenas vídeos de profundidade. Quando uma câmera de profundidade 302 é usada, a mesma poderá ser de qualquer tipo adequado, por exemplo, de tempo de vôo, de luz estruturada, estéreo. A câmera de profundidade pode usar uma decorrelação de granulados em alguns exemplos. Quando uma câmera de vídeo colorido é usada, as características faciais ou outras características visuais que podem identificar uma pessoa poderão ser excluídas do vídeo colorido.[0025] Reference is then made to Figure 3, which illustrates a schematic diagram of an exemplary video capture device 100 that may be used in the camera-based system of Figure 1. In the example of Figure 3, the video capture device video camera 100 is configured to capture depth videos (using a depth camera 302) as well as color videos (using an RGB camera 306). However, this is not an essential issue. It is equally possible to capture only color videos, or only depth videos. When a depth camera 302 is used, it may be of any suitable type, for example, time-of-flight, structured light, stereo. The depth camera may use grainy decorrelation in some examples. When a color video camera is used, facial features or other visual characteristics that can identify a person may be excluded from the color video.

[0026] O dispositivo de captura de vídeo 100 compreende pelo menos um sensor de imagem 300. No exemplo mostrado na Figura 3, o sensor de imagem 300 compreende uma câmera de profundidade 302 disposta de modo a capturar uma imagem de profundidade de uma cena. A imagem de profundidade capturada pode incluir uma área bidimensional (2D) da cena capturada na qual que cada elemento de imagem na área 2D representa um valor de profundidade, tal como um tamanho ou distância de um objeto na cena capturada a partir da câmera de profundidade 302.[0026] The video capture device 100 comprises at least one image sensor 300. In the example shown in Figure 3, the image sensor 300 comprises a depth camera 302 arranged to capture a depth image of a scene. The captured depth image may include a two-dimensional (2D) area of the captured scene in which each image element in the 2D area represents a depth value, such as a size or distance to an object in the scene captured from the depth camera. 302.

[0027] O dispositivo de captura pode incluir ainda um emissor 304 disposto de modo a iluminar a cena de tal maneira que a informação de profundidade possa ser determinada pela câmera de profundidade 302. Por exemplo, no caso em que a câmera de profundidade 302 é uma câmera de tempo de vôo de infravermelho (IR), o emissor 304 emite luz IR sobre a cena, e a câmera de profundidade 302 é disposta de modo a detectar a luz retroespalhada da superfície de um ou mais alvos ou objetos da cena. Em alguns exemplos, uma luz infravermelha pulsada poderá ser emitida a partir do emissor 304 de tal modo que o tempo entre um pulso de luz de saída e um correspondente pulso de luz de entrada possa ser detectado pela câmera de profundidade e medido e usado no sentido de determinar uma distância física do dispositivo de captura de vídeo 100 para uma posição sobre os alvos ou objetos da cena. Além disso, em alguns exemplos, a fase da onda de luz de saída a partir do emissor 304 pode ser comparada com a fase da onda de luz de entrada na câmera de profundidade 302 de modo a determinar um deslocamento de fase. O deslocamento de fase poderá, nesse caso, ser usado no sentido de determinar uma distância física a partir do dispositivo de captura 100 para uma posição sobre os alvos ou objetos. Em um outro exemplo, uma análise de tempo de vôo poderá ser usada no sentido de determinar indiretamente uma distância física a partir do dispositivo de captura 100 para uma posição sobre os alvos ou objetos por meio da análise da intensidade do feixe de luz refletido ao longo do tempo mediante várias técnicas, incluindo, por exemplo, a geração de imagem por pulso de luz obturado.[0027] The capture device may further include an emitter 304 arranged to illuminate the scene in such a manner that depth information can be determined by the depth camera 302. For example, in the case where the depth camera 302 is an infrared (IR) time-of-flight camera, emitter 304 emits IR light onto the scene, and depth camera 302 is arranged to detect backscattered light from the surface of one or more targets or objects in the scene. In some examples, a pulsed infrared light may be emitted from the emitter 304 such that the time between an output pulse of light and a corresponding pulse of input light may be detected by the depth camera and measured and used toward of determining a physical distance from the video capture device 100 to a position on the targets or objects in the scene. Furthermore, in some examples, the phase of the light wave exiting from the emitter 304 may be compared with the phase of the light wave entering the depth camera 302 in order to determine a phase shift. The phase shift may, in this case, be used to determine a physical distance from the capture device 100 to a position on the targets or objects. In another example, a time-of-flight analysis may be used to indirectly determine a physical distance from the capture device 100 to a position on targets or objects by analyzing the intensity of the light beam reflected along of time using various techniques, including, for example, image generation using shuttered light pulses.

[0028] Em outro exemplo, o dispositivo de captura 100 pode usar uma luz estruturada a fim de capturar informações de profundidade. Em tal técnica, uma luz padronizada (por exemplo, uma luz exibida como um padrão conhecido, tal como um padrão de grade ou um padrão de distribuição) poderá ser projetada sobre a cena usando o emissor 304. Ao atingir a superfície de um ou mais alvos ou objetos na cena, o padrão se torna deformado. Tal deformação do padrão pode ser capturada pela câmera de profundidade 302 e, em seguida, ser analisada no sentido de determinar uma distância física a partir do dispositivo de captura 100 para uma posição sobre os alvos ou objetos da cena.[0028] In another example, the capture device 100 may use a structured light in order to capture depth information. In such a technique, a patterned light (e.g., light displayed as a known pattern, such as a grid pattern or a distribution pattern) may be projected onto the scene using emitter 304. Upon reaching the surface of one or more targets or objects in the scene, the pattern becomes deformed. Such pattern deformation may be captured by the depth camera 302 and then be analyzed to determine a physical distance from the capture device 100 to a position on the targets or objects in the scene.

[0029] Em um outro exemplo, a câmera de profundidade 302 pode estar na forma de duas ou mais câmeras fisicamente separadas que visualizam uma cena a partir de diferentes ângulos, de tal modo que dados estéreos visuais sejam obtidos, os quais poderão ser solucionados de modo a gerar informações de profundidade. Neste caso, o emissor 304 poderá ser usado no sentido de iluminar a cena ou poderá ser omitido.[0029] In another example, the depth camera 302 may be in the form of two or more physically separate cameras that view a scene from different angles, such that visual stereo data is obtained, which can be resolved in a to generate depth information. In this case, emitter 304 may be used to illuminate the scene or may be omitted.

[0030] Em alguns exemplos, além da ou em vez da câmera de profundidade 302, o dispositivo de captura 100 poderá compreender uma câmera RGB 306. A câmera RGB 306 é disposta de modo a capturar sequências de imagens da cena em frequências de luz visível, e poderá, portanto, fornecer imagens que podem ser usadas no sentido de aumentar as imagens de profundidade. Em alguns exemplos, a profundidade poderá ser calculada a partir das imagens RGB sem necessidade de uma câmera de profundidade 306.[0030] In some examples, in addition to or instead of the depth camera 302, the capture device 100 may comprise an RGB camera 306. The RGB camera 306 is arranged to capture sequences of images of the scene at visible light frequencies , and can therefore provide images that can be used to increase depth images. In some examples, depth can be calculated from RGB images without the need for a 306 depth camera.

[0031] Por exemplo, as imagens RGB podem ser capturadas sem o uso de uma câmera de profundidade, e a profundidade pode ser calculada a partir das imagens RGB de modo a prover dados que poderão ser usados de uma forma semelhante às imagens de profundidade.[0031] For example, RGB images can be captured without the use of a depth camera, and depth can be calculated from the RGB images to provide data that can be used in a similar way to depth images.

[0032] O dispositivo de captura 306 mostrado na Figura 3 compreende ainda pelo menos um processador 308, que fica em comunicação com o sensor de imagem 300 (isto é, com a câmera de profundidade 302 e com a câmera RGB 306, no exemplo da Figura 3) e com o emissor 304. O processador 308 pode ser um microprocessador de uso geral, ou um processador de imagem / sinal especial. O processador 308 é disposto de modo a executar instruções no sentido de controlar o sensor de imagem 300 e o emissor 304 na captura de vídeos de profundidade e/ou vídeos RGB. O processador 308 pode também, opcionalmente, ser disposto de modo a executar um processamento nesses vídeos, tal como descrito em mais detalhe a seguir.[0032] The capture device 306 shown in Figure 3 further comprises at least one processor 308, which is in communication with the image sensor 300 (that is, with the depth camera 302 and the RGB camera 306, in the example of Figure 3) and with emitter 304. Processor 308 may be a general purpose microprocessor, or a special image/signal processor. The processor 308 is arranged to execute instructions to control the image sensor 300 and the emitter 304 in capturing depth videos and/or RGB videos. Processor 308 may also optionally be arranged to perform processing on these videos, as described in more detail below.

[0033] O dispositivo de captura 306 mostrado na Figura 3 inclui ainda uma memória 310 disposta de modo a armazenar instruções para execução, por parte do processador 308, de vídeos ou quadros de vídeos capturados pela câmera de profundidade 302 ou pela câmera RGB 306, ou quaisquer outras informações adequadas, imagens ou similar. Em alguns exemplos, a memória 310 pode incluir uma memória de acesso aleatório (RAM), uma memória de somente leitura (ROM), uma memória cache, uma memória flash, um disco rígido ou qualquer outro componente de armazenamento adequado. A memória 310 pode ser um componente separado em comunicação com o processador 308 ou integrada no processador 308.[0033] The capture device 306 shown in Figure 3 further includes a memory 310 arranged to store instructions for executing, by the processor 308, videos or video frames captured by the depth camera 302 or the RGB camera 306, or any other suitable information, images or similar. In some examples, memory 310 may include a random access memory (RAM), a read-only memory (ROM), a cache memory, a flash memory, a hard disk, or any other suitable storage component. Memory 310 may be a separate component communicating with processor 308 or integrated into processor 308.

[0034] O dispositivo de captura 100 compreende também uma interface de saída 312 em comunicação com o processador 308 e fica disposto de modo a prover dados para o dispositivo de computação 104 por meio de um enlace de comunicação. O enlace de comunicação pode ser, por exemplo, uma conexão com fio (tal como um barramento USB™, uma interface Firewire™, a Ethernet™ ou similar) e/ou uma conexão sem fio (por exemplo, uma conexão Wi-Fi™, Bluetooth™ ou similar). Em outros exemplos, a interface de saída 312 pode fazer interface com uma ou mais redes de comunicação (tal como a Internet) e prover dados ao dispositivo de computação 104 através dessas redes.[0034] The capture device 100 also comprises an output interface 312 in communication with the processor 308 and is arranged to provide data to the computing device 104 via a communication link. The communication link may be, for example, a wired connection (such as a USB™ bus, a Firewire™ interface, Ethernet™ or similar) and/or a wireless connection (e.g. a Wi-Fi™ connection , Bluetooth™ or similar). In other examples, the output interface 312 may interface with one or more communication networks (such as the Internet) and provide data to the computing device 104 over these networks.

[0035] A Figura 4 é um diagrama esquemático de um quadro 400 do vídeo da Figura 1 e o resultado 410 do pré-processamento do quadro, bem como um aparelho de pré-processamento 118. O quadro de vídeo 400 descreve a pessoa ligeiramente fora do centro neste exemplo, e a uma profundidade arbitrária a partir do dispositivo de captura. O aparelho de pré-processamento 118 opcionalmente executa uma técnica Inpainting 402, realiza uma extração de primeiro plano 404, faz a centralização 406 e, no caso de informações de profundidade estarem disponíveis, mapeia o primeiro plano para uma profundidade canônico. Desta maneira, as comparações entre os quadros do vídeo pré-processado poderão ser feitas de forma mais simples do que se um pré-processamento não ocorresse. A técnica Inpainting 402 é usada quando um primeiro plano compreende elementos de imagem com valores de profundidade inexistentes ou errados, por exemplo, devido a um ruído. Isto é particularmente útil quando uma câmera de vídeo de profundidade é usada. A técnica Inpainting pode compreender a inclusão de valores de elementos de imagem inexistentes com valores calculados com base nos vizinhos mais próximos do elemento de imagem faltante, ou de outras maneiras bem conhecidas.[0035] Figure 4 is a schematic diagram of a frame 400 of the video of Figure 1 and the result 410 of pre-processing the frame, as well as a pre-processing apparatus 118. Video frame 400 depicts the person slightly off from the center in this example, and at an arbitrary depth from the capture device. The preprocessing apparatus 118 optionally performs an Inpainting technique 402, performs a foreground extraction 404, performs centering 406 and, in case depth information is available, maps the foreground to a canonical depth. In this way, comparisons between frames of the pre-processed video can be made more simply than if pre-processing did not occur. The Inpainting 402 technique is used when a foreground comprises image elements with non-existent or incorrect depth values, for example due to noise. This is particularly useful when a depth video camera is used. The Inpainting technique may comprise including values of non-existent picture elements with values calculated based on the nearest neighbors of the missing picture element, or in other well-known ways.

[0036] A extração de primeiro plano 404 pode ser realizada usando dados de profundidade (no caso de dados de profundidade estarem disponíveis), por exemplo, usando um modelo gaussiano de profundidades, seguido de um estágio de refinamento geodésico. Um modelo gaussiano de profundidades pode compreender um modelo de mistura Gaussiana equipado com um histograma das profundidades observadas em um quadro. Em um exemplo, o primeiro modo Gaussiano é tomado como correspondendo ao primeiro plano. No entanto, podem ser usados outros modos ou combinações de modos. O estágio de refinamento geodésico pode compreender o uso de elementos de imagem que têm valores de profundidade que recaem na faixa de profundidade mais frequente como uma região semente, e o cálculo das distâncias geodésicas de cada elemento de imagem a partir da região semente. As distâncias geodésicas poderão, nesse caso, ser usadas no sentido de refinar a região de primeiro plano usando a técnica de limiarização (thresholding).[0036] Foreground extraction 404 can be performed using depth data (if depth data is available), for example, using a Gaussian depth model, followed by a geodetic refinement stage. A Gaussian depth model may comprise a Gaussian mixture model equipped with a histogram of the observed depths in a frame. In one example, the first Gaussian mode is taken to correspond to the foreground. However, other modes or combinations of modes may be used. The geodetic refinement stage may comprise using images that have depth values that fall within the most frequent depth range as a seed region, and calculating the geodesic distances of each image element from the seed region. Geodesic distances can, in this case, be used to refine the foreground region using the thresholding technique.

[0037] No caso de vídeos coloridos serem usados, uma extração de primeiro plano 404 poderá ser realizada através do uso de dados de cor, através da identificação de bordas na imagem, ou de outras maneiras.[0037] In case color videos are used, a foreground extraction 404 may be performed by using color data, by identifying edges in the image, or in other ways.

[0038] O processo de centralização 406 pode compreender o uso de um casamento de padrões a fim de detectar a cabeça ou outra parte específica do corpo de uma pessoa retratada no quadro. Uma vez detectada, esta parte do corpo poderá ser centralizada na imagem pré- processada 410 e dimensionada ou mapeada 408 em uma profundidade canônica (no caso de quadros de profundidade serem envolvidos). Em outros exemplos, o processo de centralização compreende o cálculo de um centro de massa da região de primeiro plano e o alinhamento do centro de massa com um centro da imagem pré-processada. No caso de um vídeo colorido ser usado, a parte do corpo é dimensionada para um tamanho específico em vez de mapear para uma profundidade canônica.[0038] The centering process 406 may comprise the use of pattern matching in order to detect the head or other specific part of the body of a person depicted in the frame. Once detected, this body part may be centered in the preprocessed image 410 and scaled or mapped 408 to a canonical depth (in case depth frames are involved). In other examples, the centering process comprises calculating a center of mass of the foreground region and aligning the center of mass with a center of the preprocessed image. In case a color video is used, the body part is scaled to a specific size instead of mapping to a canonical depth.

[0039] Tal como acima mencionado, um sistema de aprendizado de máquina é treinado no sentido de encontrar características de movimentos locais dependentes de posição, que são bons discriminadores das classes de tarefas motoras. O sistema de aprendizado de máquina é treinado usando os vídeos rotulados 500 de tarefas motoras. Os rótulos indicam em qual classe a tarefa motora ilustrada recai. Os rótulos podem ser atribuídos por juízes humanos, por exemplo. Os vídeos rotulados podem ser de diferentes tamanhos. Os vídeos rotulados são pré-processados usando o aparelho de pré- processamento 118 descrito acima a fim de produzir dados de treinamento 502. Os descritores de movimento são calculados 504 a partir dos vídeos de dados de treinamento e os descritores de movimento são usados por um treinador 506 a fim de produzir um sistema de aprendizado de máquina treinado 508. Por exemplo, o sistema de aprendizado de máquina treinado compreende uma floresta de decisão aleatória, um ensemble de máquinas de vetores de suporte aleatórios, redes neurais, ou sistemas de alimentação.[0039] As mentioned above, a machine learning system is trained to find position-dependent local movement characteristics, which are good discriminators of motor task classes. The machine learning system is trained using the 500 labeled videos of motor tasks. The labels indicate which class the illustrated motor task falls into. Labels can be assigned by human judges, for example. Labeled videos can be of different sizes. The labeled videos are preprocessed using the preprocessing apparatus 118 described above in order to produce training data 502. Motion descriptors are calculated 504 from the training data videos and the motion descriptors are used by a trainer 506 in order to produce a trained machine learning system 508. For example, the trained machine learning system comprises a random decision forest, an ensemble of random support vector machines, neural networks, or feeder systems.

[0040] O processo de calcular os descritores de movimento 504 pode compreender a seleção de pares de quadros de vídeo 510 de um dos vídeos (a partir dos dados de treinamento 502) e o cálculo dos descritores de movimento indicando a magnitude e/ou a direção de movimento (ou uma mudança nessas quantidades) de elementos de imagem entre os pares de quadros de vídeo, também conhecido como uma "análise pareada". Um par de quadros pode ser dois quadros consecutivos. Por exemplo, descritores de movimento podem ser calculados para cada par de quadros consecutivos em um vídeo de treinamento e enviados para o treinador. Em um exemplo, os descritores de movimento 504 compreendem valores de fluxo óptico. Os valores de fluxo óptico são os valores de deslocamento vertical e horizontal de um elemento de imagem que ilustra o mesmo elemento de cena um par de quadros de vídeo. Foi descoberto que o uso de valores de fluxo óptico como os descritores de movimento proporciona resultados precisos e robustos. Em outro exemplo, os descritores de movimento 504 compreendem deslocamentos de posições conjuntas do corpo entre pares de quadros de vídeo. Em outro exemplo, os descritores de movimento 504 compreendem deslocamentos de centróides de partes do corpo entre pares de quadros de vídeo. Em outro exemplo, os descritores de movimento compreendem uma área de não sobreposição entre a região de primeiro plano de um quadro e a região de primeiro plano de um outro quadro.[0040] The process of calculating motion descriptors 504 may comprise selecting pairs of video frames 510 from one of the videos (from training data 502) and calculating motion descriptors indicating the magnitude and/or direction of movement (or a change in such quantities) of image elements between pairs of video frames, also known as a "paired analysis". A frame pair can be two consecutive frames. For example, motion descriptors can be calculated for each pair of consecutive frames in a training video and sent to the trainer. In one example, motion descriptors 504 comprise optical flow values. Optical flow values are the vertical and horizontal displacement values of an image element that illustrates the same scene element in a pair of video frames. It was found that using optical flow values as the motion descriptors provides accurate and robust results. In another example, motion descriptors 504 comprise displacements of joint body positions between pairs of video frames. In another example, motion descriptors 504 comprise displacements of body part centroids between pairs of video frames. In another example, the motion descriptors comprise a non-overlapping area between the foreground region of one frame and the foreground region of another frame.

[0041] No exemplo da Figura 5, os descritores de movimento são calculados antes do envio ao treinador. Isso também pode ser feito em um momento de teste. Quando o vídeo é longo e o tamanho da imagem é grande, o número de descritores de movimento a ser calculado será potencialmente muito grande, (para todos os pares de quadros consecutivos, por exemplo) e, portanto, poderá ser benéfico pré-calcular os descritores de movimento. No entanto, é igualmente possível calcular os descritores de movimento como parte do treinamento e/ou das fases de teste. A fase de teste é quando o sistema de aprendizado de máquina treinado é usado em vídeos inéditos (ou seja, em vídeos ainda não vistos ou ainda não apresentados ao sistema de aprendizado de máquina).[0041] In the example of Figure 5, movement descriptors are calculated before sending to the trainer. This can also be done at a testing time. When the video is long and the image size is large, the number of motion descriptors to be calculated will potentially be very large, (for all pairs of consecutive frames, for example) and therefore it may be beneficial to pre-calculate the motion descriptors. However, it is equally possible to calculate motion descriptors as part of the training and/or testing phases. The testing phase is when the trained machine learning system is used on unseen videos (that is, videos not yet seen or not yet presented to the machine learning system).

[0042] Em alguns exemplos, o sistema de aprendizado de máquina compreende uma floresta de decisão aleatória. Uma floresta de decisão aleatória compreende uma ou mais árvores de decisão, cada qual tendo um nó raiz, uma pluralidade de nós de divisão e uma pluralidade de nós folha. Um vídeo é empurrado através das árvores de uma floresta de decisão aleatória a partir da raiz para um nó folha em um processo, em função do que uma decisão é tomada em cada nó de divisão. A decisão é feita de acordo com as características de movimentos locais dependentes de posição, tal como descrito em mais detalhe abaixo. Em um nó de divisão, o vídeo prossegue para o próximo nível da árvore abaixo de um ramo escolhido de acordo com os resultados da decisão. A floresta de decisão aleatória pode usar uma regressão ou uma classificação, tal como descrito em mais detalhe abaixo. Durante um treinamento, os valores dos parâmetros (que especificam as características de movimentos locais dependentes de posição) são aprendidos para uso nos nós de divisão e os dados (os vídeos rotulados) são acumulados nos nós folha. Os rótulos dos vídeos acumulados em um nó folha podem ser armazenados como um histograma, ou de uma maneira agregada, tal como ao se usar uma média, uma mediana ou um modo ou ao se ajustar uma distribuição de probabilidade ao histograma ou ao se armazenar estatísticas que descrevem a distribuição de probabilidade.[0042] In some examples, the machine learning system comprises a random decision forest. A random decision forest comprises one or more decision trees, each having a root node, a plurality of split nodes, and a plurality of leaf nodes. A video is pushed through the trees of a random decision forest from the root to a leaf node in a process, whereupon a decision is made at each split node. The decision is made according to the characteristics of position-dependent local movements, as described in more detail below. At a split node, the video proceeds to the next level of the tree below a branch chosen according to the decision results. The random decision forest can use regression or classification, as described in more detail below. During training, parameter values (which specify the characteristics of position-dependent local movements) are learned for use at the split nodes and data (the labeled videos) are accumulated at the leaf nodes. Video labels accumulated at a leaf node can be stored as a histogram, or in an aggregated manner, such as by using a mean, a median, or a mode, or by fitting a probability distribution to the histogram, or by storing statistics. that describe the probability distribution.

[0043] No momento do teste, um vídeo ainda não visto é enviado para o sistema tendo uma ou mais classes de tarefas motoras previstas. Isto é descrito com referência à Figura 8.[0043] At the time of testing, an unseen video is sent to the system having one or more classes of predicted motor tasks. This is described with reference to Figure 8.

[0044] Com referência à Figura 6, para treinar as árvores de decisão, o treinamento definido e descrito acima é primeiramente recebido 600. O número de árvores de decisão a ser usadas em uma floresta de decisão aleatória é selecionado 602. Uma floresta de decisão aleatória é uma coleção de árvores de decisão deterministas. As árvores de decisão podem ser usadas em algoritmos de classificação ou de regressão, porém poderão sofrer de sobreajuste, ou seja, de uma generalização insuficiente. No entanto, um ensemble de muitas árvores de decisão aleatoriamente treinadas (uma floresta aleatória) produzirá uma generalização aperfeiçoada. Durante o processo de treinamento, o número de árvores é fixo.[0044] With reference to Figure 6, to train the decision trees, the training defined and described above is first received 600. The number of decision trees to be used in a random decision forest is selected 602. A decision forest random is a collection of deterministic decision trees. Decision trees can be used in classification or regression algorithms, but they may suffer from overfitting, that is, from insufficient generalization. However, an ensemble of many randomly trained decision trees (a random forest) will produce improved generalization. During the training process, the number of trees is fixed.

[0045] Um exemplo de floresta de decisão aleatória é mostrado e ilustrado na Figura 7. A floresta de decisão ilustrativa da Figura 7 compreende três árvores de decisão: uma primeira árvore 700; uma segunda árvore 702; e uma terceira árvore 704. Cada árvore de decisão compreende um nó raiz (por exemplo, o nó raiz 706 da primeira árvore de decisão 700), uma pluralidade de nós internos, chamados de nós de divisão (por exemplo, o nó de divisão 708 da primeira árvore de decisão 700), e uma pluralidade de nós folha (por exemplo, o nó folha 710 da primeira árvore de decisão 700).[0045] An example of a random decision forest is shown and illustrated in Figure 7. The illustrative decision forest of Figure 7 comprises three decision trees: a first tree 700; a second tree 702; and a third tree 704. Each decision tree comprises a root node (e.g., the root node 706 of the first decision tree 700), a plurality of internal nodes, called split nodes (e.g., the split node 708 of the first decision tree 700), and a plurality of leaf nodes (e.g., the leaf node 710 of the first decision tree 700).

[0046] Uma árvore de decisão da floresta de decisão 604 é selecionada 604 (por exemplo, a primeira árvore de decisão 600) e o nó raiz 606 é selecionado 606. Em seguida, é gerado um conjunto aleatório de parâmetros de teste 610 para uso por uma análise binária realizada no nó raiz como características candidatas. Nos exemplos descritos no presente documento, são usadas as características de movimentos locais dependentes de posição. As posições dentro do vídeo, em 2D dentro de um quadro e/ou em um tempo dentro da sequência de quadros, são aleatoriamente selecionadas. As características são aleatoriamente geradas a partir de uma pluralidade de diferentes tipos de características. Por exemplo, os seguintes quatro tipos de característica são usados, os quais se referem a subvolumes do vídeo. Um subvolume do vídeo pode ser um cubóide que seleciona uma janela de tempo e espaço no vídeo. Um subvolume pode ser indicado pelo símbolo B e pode ser especificado por coordenadas de imagem 2D horizontais e verticais dentro de um primeiro quadro, e por coordenadas de imagem 2D horizontais e verticais dentro de um segundo quadro, sendo que o número de quadros entre o primeiro e o segundo quadros é especificado. Por exemplo, B = (x1, y1, x2, y2, T'1, T'2). No entanto, não é imprescindível o uso de subvolumes cubóides em forma. Poderão também ser usadas outras formas 3D de subvolumes.[0046] A decision tree from the decision forest 604 is selected 604 (e.g., the first decision tree 600) and the root node 606 is selected 606. Then, a random set of test parameters 610 is generated for use by a binary analysis performed on the root node as candidate features. In the examples described in this document, the characteristics of position-dependent local movements are used. Positions within the video, in 2D within a frame and/or at a time within the sequence of frames, are randomly selected. Features are randomly generated from a plurality of different feature types. For example, the following four feature types are used, which refer to subvolumes of the video. A subvolume of the video can be a cuboid that selects a window of time and space in the video. A subvolume may be indicated by the symbol B and may be specified by horizontal and vertical 2D image coordinates within a first frame, and by horizontal and vertical 2D image coordinates within a second frame, where the number of frames between the first and the second frame is specified. For example, B = (x1, y1, x2, y2, T'1, T'2). However, it is not essential to use cuboidal shaped subvolumes. Other 3D shapes of subvolumes can also be used.

[0047] Um primeiro tipo de característica é uma função de um único subvolume. Um exemplo de um primeiro tipo de característica é indicado pela equação:[0047] A first type of characteristic is a function of a single subvolume. An example of a first type of characteristic is indicated by the equation:

[0048] f (d1, B1), que pode ser expressa em palavras como uma função de um parâmetro d1 que indica o tipo de característica de movimento local para fins de cálculo dentro do subvolume B1. Mais detalhes sobre exemplos de funções f que podem ser usadas são apresentados abaixo.[0048] f (d1, B1), which can be expressed in words as a function of a parameter d1 that indicates the type of local motion characteristic for calculation purposes within the subvolume B1. More details about example functions f that can be used are presented below.

[0049] Um segundo tipo de característica é uma função de dois subvolumes. Um exemplo de um segundo tipo de característica é indicado pela equação:[0049] A second type of characteristic is a function of two subvolumes. An example of a second type of characteristic is indicated by the equation:

[0050] f (d1, B1), + f (d2, B2), que pode ser expressa em palavras como a soma de: uma função de um parâmetro d1 que indica o tipo de característica de movimento local para fins de cálculo dentro do subvolume B1, e uma função de um parâmetro d1 que indica o tipo de característica de movimento local para fins de cálculo dentro do subvolume B1.[0050] f (d1, B1), + f (d2, B2), which can be expressed in words as the sum of: a function of a parameter d1 that indicates the type of local motion characteristic for calculation purposes within the subvolume B1, and a one-parameter function d1 that indicates the type of local motion characteristic for calculation purposes within the subvolume B1.

[0051] Um terceiro tipo de característica é uma função de dois subvolumes. Um exemplo de um terceiro tipo de característica é indicado pela equação:[0051] A third type of characteristic is a function of two subvolumes. An example of a third type of characteristic is indicated by the equation:

[0052] f (di, Bi) - f (d2, B2) que pode ser expressa em palavras como a diferença de: uma função de um parâmetro d1 que indica o tipo de característica de movimento local para fins de cálculo dentro do subvolume B1, e uma função de um parâmetro d1 que indica o tipo de característica de movimento local para fins de cálculo dentro do subvolume B1.[0052] f (di, Bi) - f (d2, B2) which can be expressed in words as the difference of: a function of a parameter d1 that indicates the type of local motion characteristic for calculation purposes within the subvolume B1 , and a one-parameter function d1 that indicates the type of local motion characteristic for calculation purposes within subvolume B1.

[0053] Um quarto tipo de característica é uma função de dois subvolumes. Um exemplo de um quarto tipo de característica é indicado pela equação:[0053] A fourth type of characteristic is a function of two subvolumes. An example of a fourth type of characteristic is indicated by the equation:

[0054] | f (di, Bi) - f (d2, B2) | que pode ser expressa em palavras como a diferença absoluta dentre: uma função de um parâmetro d1 que indica o tipo de característica de movimento local para fins de cálculo dentro do subvolume B1 e uma função de um parâmetro d1 que indica o tipo de característica de movimento local para fins de cálculo dentro do subvolume B1.[0054] | f (di, Bi) - f (d2, B2) | which can be expressed in words as the absolute difference between: a one-parameter function d1 that indicates the type of local motion characteristic for calculation purposes within subvolume B1 and a one-parameter function d1 that indicates the type of motion characteristic location for calculation purposes within subvolume B1.

[0055] A função f pode ser calculada através da agregação das características de movimentos locais como características de aceleração ou de velocidade. Um exemplo no qual as características de aceleração são calculadas é apresentado na equação abaixo. [0055] The function f can be calculated by aggregating local movement characteristics as acceleration or speed characteristics. An example in which acceleration characteristics are calculated is presented in the equation below.

[0056] - na qual T(B) é o número de quadros de um subvolume e o símbolo à é uma característica de aceleração estimada (um exemplo de uma característica de movimento local) que pode ser calculada tal como explicado abaixo para cada posição de elemento de imagem no subvolume (ou em um subconjunto dessas posições). A função acima pode ser expressa em palavras como uma função f de um determinado tipo de característica de movimento local, e um dado subvolume é calculado como uma média das características de aceleração por quadro do subvolume.[0056] - where T(B) is the number of frames of a subvolume and the symbol à is an estimated acceleration characteristic (an example of a local motion characteristic) that can be calculated as explained below for each position of image element in the subvolume (or a subset of these positions). The above function can be expressed in words as a function f of a certain type of local motion characteristic, and a given subvolume is calculated as an average of the per-frame acceleration characteristics of the subvolume.

[0057] A característica de aceleração estimadapode ser calculada ao se contar o número de vezes que a taxa de mudança dos vetores de fluxo ótico muda de direção, mas ignorando as mudanças de direção nas quais a magnitude dos vetores de fluxo óptico é muito pequena (usando uma função degrau de Heaviside ou um limiar ou outras maneiras).[0057] The estimated acceleration characteristic can be calculated by counting the number of times the rate of change of the optical flow vectors changes direction, but ignoring changes in direction in which the magnitude of the optical flow vectors is very small (using a Heaviside step function or a threshold or other ways).

[0058] Em um outro exemplo, uma característica de velocidade estimada pode ser usada no lugar da característica de aceleração estimativa acima. Por exemplo, ao se contar o número de vezes que os vetores de fluxo óptico mudam de direção ao invés de considerar a taxa de mudança dos vetores de fluxo óptico.[0058] In another example, an estimated velocity characteristic can be used in place of the estimated acceleration characteristic above. For example, by counting the number of times optical flow vectors change direction instead of considering the rate of change of optical flow vectors.

[0059] Na etapa 610 da Figura 6, um conjunto aleatório de parâmetros de teste é gerado 610 para ser usado por uma análise binária realizada em um nó de divisão como características candidatas. Em um exemplo, esses parâmetros podem incluir os parâmetros dos subvolumes (ou seja, a especificação das posições e a duração dos subvolumes a ser usados), um parâmetro limiar (para fins de comparação das características contra a análise binária), o parâmetro d que indica o tipo de característica de movimento local a calcular (por exemplo, a velocidade na direção x, a velocidade na direção y, a aceleração na direção x, a aceleração na direção y), e uma variável k que seleciona um dos quatro (ou outro número de) características acima.[0059] In step 610 of Figure 6, a random set of test parameters is generated 610 to be used by a binary analysis performed on a split node as candidate features. In an example, these parameters may include the subvolume parameters (i.e., specifying the positions and duration of the subvolumes to be used), a threshold parameter (for the purpose of comparing characteristics against binary analysis), the d parameter that indicates the type of local motion characteristic to calculate (e.g., velocity in the x direction, velocity in the y direction, acceleration in the x direction, acceleration in the y direction), and a variable k that selects one of the four (or other number of) features above.

[0060] Em seguida, todas as combinações de parâmetro de teste poderão ser aplicadas 612 para cada vídeo que atingiu o nó corrente. Para cada combinação, critérios (também referidos como objetivos) são calculados 614. Em um exemplo, os critérios calculados compreendem o ganho de informação (também conhecido como a entropia relativa). A combinação de parâmetros que otimizam os critérios (por exemplo, a maximização do ganho de informação é selecionada 614 e armazenada no nó em questão para uso futuro. Como uma alternativa ao ganho de informação, outros critérios poderão ser usados, tais como a entropia de Gini, ou o critério "two-ing", ou outros.[0060] Then, all test parameter combinations can be applied 612 to each video that reached the current node. For each combination, criteria (also referred to as objectives) are calculated 614. In one example, the calculated criteria comprise the information gain (also known as relative entropy). The combination of parameters that optimize the criteria (e.g. information gain maximization) is selected 614 and stored at the node in question for future use. As an alternative to information gain, other criteria may be used, such as data entropy. Gini, or the "two-ing" criterion, or others.

[0061] Em seguida, é determinado 616 se o valor para os critérios calculados é menor do que (ou maior do que) um limiar. Quando o valor para os critérios calculado é menor do que o limiar, nesse caso, isto indica que uma maior expansão da árvore não irá proporcionar benefícios significativos. Isto dá origem a árvores assimétricas que, naturalmente, param de crescer quando quaisquer outros nós serão benéficos. Em tais casos, o nó corrente é definido 618 como um nó folha. Do mesmo modo, a profundidade corrente da árvore é determinada (ou seja, quantos níveis de nós se encontram entre o nó raiz e o nó corrente). Quando esta profundidade é maior do que um valor máximo predefinido, nesse caso o nó corrente é definido 618 como um nó folha. Cada nó folha tem vídeos rotulados que se acumulam naquele nó folha durante o processo de treinamento, tal como descrito abaixo.[0061] Next, it is determined 616 whether the value for the calculated criteria is less than (or greater than) a threshold. When the value for the calculated criteria is less than the threshold, in this case it indicates that further expansion of the tree will not provide significant benefits. This gives rise to asymmetrical trees that naturally stop growing when any other nodes will be beneficial. In such cases, the current node is defined 618 as a leaf node. In the same way, the current depth of the tree is determined (i.e., how many node levels lie between the root node and the current node). When this depth is greater than a predefined maximum value, in that case the current node is defined 618 as a leaf node. Each leaf node has labeled videos that accumulate at that leaf node during the training process, as described below.

[0062] É igualmente possível usar um outro critério de parada em combinação com os já mencionados, a fim de avaliar, por exemplo, o número de vídeos que alcançam o nó. Quando existem muito poucos exemplos (em comparação com um limiar, por exemplo), nesse caso o processo poderá ser disposto de modo a parar e evitar um sobreajuste. No entanto, não vem a ser uma questão essencial o uso deste critério de parada.[0062] It is also possible to use another stopping criterion in combination with those already mentioned, in order to evaluate, for example, the number of videos that reach the node. When there are very few examples (compared to a threshold, for example), then the process can be arranged to stop and avoid overfitting. However, the use of this stopping criterion is not an essential issue.

[0063] Quando o valor para os critérios calculados é maior do que ou igual ao limiar, e a profundidade de árvore é menor que o valor máximo, nesse caso, o nó corrente será definido 620 como um nó de divisão. Uma vez que o nó corrente é um nó de divisão, o mesmo terá nós filhos, e o processo, em seguida, se movimenta para o treinamento desses nós filhos. Cada nó filho é treinado usando um subconjunto dos vídeos de treinamento no nó corrente. O subconjunto de vídeos enviados para um nó filho é determinado mediante o uso dos parâmetros que otimizaram os critérios. Esses parâmetros são usados na análise binária, e a análise binária é realizada 622 em todos os vídeos no nó corrente. Os vídeos que passam na análise binária formam um primeiro subconjunto enviado para um primeiro nó filho, e os elementos de imagem que falham na análise binária formam um segundo subconjunto enviado para um segundo nó filho.[0063] When the value for the calculated criteria is greater than or equal to the threshold, and the tree depth is less than the maximum value, in that case, the current node will be defined 620 as a split node. Since the current node is a division node, it will have child nodes, and the process then moves to training these child nodes. Each child node is trained using a subset of the training videos on the current node. The subset of videos sent to a child node is determined using the parameters that optimized the criteria. These parameters are used in binary analysis, and binary analysis is performed 622 on all videos in the current node. Videos that pass binary analysis form a first subset sent to a first child node, and image elements that fail binary analysis form a second subset sent to a second child node.

[0064] Para cada um dos nós filhos, o processo, tal como delineado nos blocos 610 a 622 da Figura 6, é executado de forma recursiva 624 para o subconjunto de vídeos direcionados ao respectivo nó filho. Em outras palavras, para cada nó filho, novos parâmetros de teste aleatórios são gerados 610 e aplicados 612 ao respectivo subconjunto de vídeos, os parâmetros otimizando os critérios selecionados 614, e o tipo de nó (de divisão ou folha) é determinado 616. Quando o mesmo é um nó folha, nesse caso o ramo corrente de recursão cessa. Quando o mesmo é um nó de divisão, análises binárias são realizadas 622 no sentido de determinar mais subconjuntos de vídeos e um outro ramo da recursão se inicia. Sendo assim, este processo se move de forma recursiva através da árvore, treinando cada nó até que nós folha sejam alcançados em cada ramo. Quando os nós folha são alcançados, o processo aguarda 626 até que os nós de todos os ramos tenham sido treinados. Deve-se notar que, em outros exemplos, a mesma funcionalidade poderá ser obtida mediante o uso de técnicas alternativas para recursão.[0064] For each of the child nodes, the process, as outlined in blocks 610 to 622 of Figure 6, is performed recursively 624 for the subset of videos directed to the respective child node. In other words, for each child node, new random test parameters are generated 610 and applied 612 to the respective subset of videos, the parameters optimizing the selected criteria 614, and the type of node (split or leaf) is determined 616. When it is a leaf node, in which case the current branch of recursion ceases. When it is a division node, binary analyzes are performed 622 in order to determine more subsets of videos and another branch of the recursion begins. Therefore, this process moves recursively through the tree, training each node until leaf nodes are reached on each branch. When the leaf nodes are reached, the process waits 626 until the nodes on all branches have been trained. It should be noted that in other examples, the same functionality may be achieved by using alternative techniques for recursion.

[0065] Assim que todos os nós da árvore são treinados no sentido de determinar os parâmetros para a análise binária, ocorre uma otimização dos critérios em cada nó de divisão, e os nós folha são selecionados de modo a finalizar cada ramo; em seguida, os rótulos de vídeo poderão ser acumulados 628 nos nós folha da árvore. Uma representação dos rótulos de vídeo acumulados poderá ser armazenada 630 mediante o uso de diversos métodos.[0065] Once all nodes in the tree are trained to determine the parameters for binary analysis, an optimization of the criteria occurs at each division node, and the leaf nodes are selected in order to finalize each branch; then video labels can be accumulated 628 at the leaf nodes of the tree. A representation of the accumulated video tags may be stored 630 using various methods.

[0066] Assim que os rótulos acumulados são armazenados, é determinado 632 se mais árvores se encontram presentes ou não na floresta de decisão. Caso positivo, a próxima árvore na floresta de decisão é selecionada, e o processo se repete. Quando todas as árvores da floresta são treinadas, e nenhuma outra permanece, em seguida, o processo de treinamento se completa e o processo se finaliza 634.[0066] Once the accumulated labels are stored, it is determined 632 whether or not more trees are present in the decision forest. If so, the next tree in the decision forest is selected, and the process repeats. When all the trees in the forest are trained, and no others remain, then the training process is complete and the process is finished.

[0067] Deste modo, como resultado do processo de treinamento, uma ou mais árvores de decisão são treinadas usando vídeos de treinamento empíricos. Cada árvore compreende uma pluralidade de nós de divisão que armazenam parâmetros de teste otimizados, e os nós folha que armazenam os vídeos rotulados associados ou representações de rótulos de vedação agregados. Devido à geração aleatória de parâmetros a partir de um subconjunto limitado usado em cada nó, as árvores da floresta se tornam distintas (ou seja, diferentes) uma da outra.[0067] In this way, as a result of the training process, one or more decision trees are trained using empirical training videos. Each tree comprises a plurality of split nodes that store optimized test parameters, and leaf nodes that store the associated labeled videos or aggregated seal label representations. Due to the random generation of parameters from a limited subset used at each node, the forest trees become distinct (i.e. different) from each other.

[0068] O processo de treinamento pode ser realizado antes do uso do sistema de predição treinado para identificar classes de tarefas motoras em um vídeo. A floresta de decisão e os parâmetros de teste otimizados podem ser armazenados em um dispositivo de armazenamento para uso na identificação de classes de tarefas motoras em um momento posterior.[0068] The training process can be performed before using the trained prediction system to identify classes of motor tasks in a video. The decision forest and optimized test parameters can be stored on a storage device for use in identifying motor task classes at a later time.

[0069] A Figura 8 ilustra um fluxograma de um processo para a predição de classes de tarefas motoras em um vídeo previamente não visto usando uma floresta de decisão que foi treinada tal como acima descrito. Em primeiro lugar, um vídeo inédito é recebido 800. Um vídeo é referido como "inédito" no sentido de distinguir o mesmo de um vídeo de treinamento que tem a classe de tarefa motora especificada. Deve- se notar que o vídeo inédito poderá ser pré-processado até certo ponto, tal como descrito acima, com referência à Figura 4.[0069] Figure 8 illustrates a flowchart of a process for predicting classes of motor tasks in a previously unseen video using a decision forest that was trained as described above. First, an unreleased video is received 800. A video is referred to as "unreleased" in the sense of distinguishing it from a training video that has the motor task class specified. It should be noted that unreleased video may be pre-processed to some extent, as described above with reference to Figure 4.

[0070] O fluxo óptico ou outros descritores de movimento são calculados 802. Uma árvore de decisão treinada a partir da floresta de decisão é também selecionada 804. O vídeo selecionado é empurrado 806 através da árvore de decisão selecionada (de uma maneira similar ao descrita acima com referência às Figuras 6 e 7), de tal modo que o mesmo seja testado com relação aos parâmetros treinados em um nó, e, em seguida, passado para o filho apropriado na dependência do resultado do teste, e o processo se repete até que o vídeo chegue a um nó folha. Assim que o vídeo atinge um nó folha, os rótulos acumulados associados a esse nó folha são armazenados 808 para esse vídeo.[0070] Optical flow or other motion descriptors are calculated 802. A decision tree trained from the decision forest is also selected 804. The selected video is pushed 806 through the selected decision tree (in a manner similar to that described above with reference to Figures 6 and 7), such that it is tested against the parameters trained on a node, and then passed to the appropriate child depending on the test result, and the process repeats until for the video to reach a leaf node. Once the video reaches a leaf node, the accumulated labels associated with that leaf node are stored 808 for that video.

[0071] Quando é determinado 810 que existem mais árvores de decisão na floresta, nesse caso, uma nova árvore de decisão é selecionada 804, o vídeo é empurrado 806 através da árvore e os rótulos acumulados são armazenados 808. Este processo se repete até que o mesmo seja realizado em todas as árvores de decisão da floresta. Deve-se notar que o processo para o envio de um vídeo através da pluralidade de árvores da floresta de decisão pode também ser feito em paralelo, em vez de em sequência, tal como mostrado na Figura 8.[0071] When it is determined 810 that there are more decision trees in the forest, in which case a new decision tree is selected 804, the video is pushed 806 through the tree, and the accumulated labels are stored 808. This process repeats until the same is carried out in all decision trees in the forest. It should be noted that the process for sending a video through the plurality of decision forest trees can also be done in parallel, rather than sequentially, as shown in Figure 8.

[0072] Os dados dos nós folha indexados são agregados 814 por meio de cálculo de média ou de outras formas. Por exemplo, quando os histogramas de rótulos de classe são armazenados nos nós folha, os histogramas dos nós folha indexados são combinados e usados no sentido de identificar uma ou mais tarefas motoras associadas ao vídeo. O processo produz 816 pelo menos uma classe de tarefa motora como um resultado, e é capaz de produzir um coeficiente de confiança da classe de tarefa motora. Isso ajuda qualquer avaliação subsequente do algoritmo, no sentido de saber se a proposta é boa ou não. Mais de uma classe motora poderá ser produzida; por exemplo, quando houver incerteza.[0072] Data from indexed leaf nodes is aggregated 814 through averaging or other means. For example, when class label histograms are stored in leaf nodes, the histograms of indexed leaf nodes are combined and used to identify one or more motor tasks associated with the video. The process produces 816 at least one motor task class as a result, and is capable of producing a confidence coefficient of the motor task class. This helps any subsequent evaluation of the algorithm, in order to know whether the proposal is good or not. More than one motor class can be produced; for example, when there is uncertainty.

[0073] Em outro exemplo, o sistema de aprendizado de máquina compreende um ensemble de máquinas de vetores de suporte. Uma máquina de vetores de suporte é um classificador binário não probabilístico que usa hiperplanos em um espaço de características de modo a obter uma classificação.[0073] In another example, the machine learning system comprises an ensemble of support vector machines. A support vector machine is a non-probabilistic binary classifier that uses hyperplanes in a feature space in order to obtain a classification.

[0074] Em um exemplo, uma máquina de vetores de suporte é associada a (ou substitui) um nó de divisão de uma floresta de decisão aleatória tal como descrito acima com referência às Figuras 6 a 8. A máquina de vetores de suporte toma como entrada os vídeos de treinamento que tenham atingido o respectivo nó de divisão. Estes vídeos de treinamento recebidos formam o seu espaço de características e calcula um ou mais hiperplanos de modo a produzir uma classificação binária do espaço de características. Desta maneira, as máquinas de vetores de suporte são usadas para fazer decisões binárias ao invés de avaliar o ganho de informação ou outros critérios, tal como descrito acima com relação às árvores de decisão aleatórias. Desta forma, o processo da Figura 6 para o treinamento de uma floresta de decisão aleatória poderá ser adaptado de modo a formar um ensemble de máquinas de vetores de suporte, usando uma máquina de vetores de suporte em cada nó de divisão. Da mesma forma, é possível usar misturas de tipos de nós de divisão (nós de divisão de decisão aleatórios ou nós de divisão de máquina de vetores de suporte). O ensemble resultante das máquinas de vetores de suporte ou da mistura de máquinas de vetores de suporte / nós de decisão aleatórios pode ser usado no momento do teste, modificando o processo da Figura 8. Desta maneira, é possível se usar, de um modo prático, a tecnologia de máquinas de vetores de suporte para uma tarefa envolvendo um número variável e extremamente elevado de dimensões. O treinamento é feito em uma escala de tempo prática, uma vez que cada máquina de vetores de suporte recebe apenas os vídeos de treinamento que chegam à mesma através da estrutura de árvore binária e, deste modo, o seu espaço de características é limitado.[0074] In one example, a support vector machine is associated with (or replaces) a split node of a random decision forest as described above with reference to Figures 6 to 8. The support vector machine takes as input the training videos that have reached the respective split node. These incoming training videos form your feature space and calculate one or more hyperplanes in order to produce a binary classification of the feature space. In this way, support vector machines are used to make binary decisions rather than evaluating information gain or other criteria, as described above with respect to random decision trees. In this way, the process in Figure 6 for training a random decision forest can be adapted to form an ensemble of support vector machines, using a support vector machine at each division node. Similarly, you can use mixtures of split node types (random decision split nodes or support vector machine split nodes). The resulting ensemble of support vector machines or the mixture of support vector machines / random decision nodes can be used at the time of testing, modifying the process in Figure 8. In this way, it is possible to use, in a practical way, , support vector machine technology for a task involving a variable and extremely high number of dimensions. Training is done on a practical time scale, since each support vector machine only receives the training videos that arrive at it through the binary tree structure and, therefore, its feature space is limited.

[0075] Um outro exemplo no qual um ensemble de máquinas de vetores de suporte aleatórias é usado será explicado a seguir. A fim de treinar o ensemble de máquinas de vetores de suporte aleatórias, um vetor de característica de tamanho fixo é calculado a partir de cada vídeo de treinamento rotulado. O vetor de característica de tamanho fixo compreende uma pluralidade de características de movimentos locais dependentes de posição do vídeo. Por exemplo, poderá ser usada qualquer combinação de uma ou mais dentre as quatro características acima descritas na descrição com relação à floresta de decisão aleatória (embora outras características possam também ser usadas). Ao se criar um descritor de característica de tamanho fixo, tal como um vetor ou uma lista, o sistema resultante se tornará operável independentemente da duração do vídeo. Isto será obtido sem perda das características de movimento nos vídeos; diferentemente das técnicas de normalização temporais.[0075] Another example in which an ensemble of random support vector machines is used will be explained below. In order to train the ensemble of random support vector machines, a fixed-size feature vector is calculated from each labeled training video. The fixed-size feature vector comprises a plurality of position-dependent local motion features of the video. For example, any combination of one or more of the four characteristics described above in the description with respect to the random decision forest may be used (although other characteristics may also be used). By creating a fixed-length feature descriptor, such as a vector or a list, the resulting system becomes operable regardless of the length of the video. This will be achieved without loss of motion characteristics in the videos; unlike temporal normalization techniques.

[0076] As características de cada descritor de característica são selecionadas aleatoriamente. Os descritores de características definem um espaço de características, no qual as máquinas de vetores de suporte realizam um aprendizado. Em um exemplo, uma máquina de vetores de suporte individual do ensemble é treinada no sentido de encontrar um hiperplano que maximize a margem entre as amostras de vídeos de treinamento rotulados nas diferentes classes. Cada uma das máquinas de vetores de suporte é treinada desta maneira. O ensemble resultante das máquinas de vetores de suporte aleatórias poderá ser usado no momento do teste, modificando o processo da Figura 8.[0076] The features of each feature descriptor are randomly selected. Feature descriptors define a feature space, in which support vector machines perform learning. In one example, an individual support vector machine from the ensemble is trained to find a hyperplane that maximizes the margin between training video samples labeled in different classes. Each of the support vector machines is trained in this way. The resulting ensemble of random support vector machines can be used at the time of testing, modifying the process in Figure 8.

[0077] Nos exemplos acima descritos, o sistema de aprendizado de máquina classifica os vídeos de tarefas motoras em classes ou índices. No entanto, é igualmente possível que o sistema de aprendizado de máquina use regressão no lugar da classificação de modo que saídas de valor contínuas sejam obtidas por parte do sistema de aprendizado de máquina treinado, em oposição aos rótulos de classe discretos. Por exemplo, essas saídas de valor contínuas podem ser valores numéricos em uma escala de avaliação de tarefa motora.[0077] In the examples described above, the machine learning system classifies videos of motor tasks into classes or indices. However, it is equally possible for the machine learning system to use regression in place of classification so that continuous value outputs are obtained from the trained machine learning system, as opposed to discrete class labels. For example, these continuous value outputs could be numerical values on a motor task rating scale.

[0078] A Figura 9 ilustra os vários componentes de um dispositivo baseado em computação exemplar 104 que pode ser implementado como qualquer forma de dispositivo de computação e/ou dispositivo eletrônico, e no qual modalidades de sistemas de classificação de tarefa motora poderão ser implementadas.[0078] Figure 9 illustrates the various components of an exemplary computing-based device 104 that may be implemented as any form of computing device and/or electronic device, and in which embodiments of motor task classification systems may be implemented.

[0079] O dispositivo baseado em computação 104 compreende um ou mais processadores 900, que podem ser microprocessadores, controladores, unidades de processamento gráfico, unidades de processamento paralelo, ou qualquer outro tipo adequado de processadores para o processamento de instruções executáveis em computador de modo a controlar a operação do dispositivo a fim de fazer a predição de classes de tarefas motoras em vídeos. Em alguns exemplos, por exemplo, quando um sistema em uma arquitetura de chip é usado, os processadores 900 podem incluir um ou mais blocos de função fixos (também referidos como aceleradores) que implementam uma parte do método de classificação de tarefa motora em um hardware (ao invés de em um software ou firmware).[0079] The computing-based device 104 comprises one or more processors 900, which may be microprocessors, controllers, graphics processing units, parallel processing units, or any other suitable type of processors for processing computer-executable instructions in a manner to control the operation of the device in order to predict classes of motor tasks in videos. In some examples, for example, when a system on a chip architecture is used, the processors 900 may include one or more fixed function blocks (also referred to as accelerators) that implement a portion of the motor task classification method in a hardware (rather than in software or firmware).

[0080] O dispositivo baseado em computação 104 compreende uma ou mais interfaces de entrada 902 dispostas de modo a receber e processar uma entrada de um ou mais dispositivos, tais como dispositivos de entrada de usuário (por exemplo, um dispositivo de captura 100, um teclado 906 e/ou um mouse 908). Esta entrada de usuário pode ser usada no sentido de controlar os aplicativos de software executados no dispositivo de computação 104.[0080] The computing-based device 104 comprises one or more input interfaces 902 arranged to receive and process input from one or more devices, such as user input devices (e.g., a capture device 100, a keyboard 906 and/or a mouse 908). This user input can be used to control software applications running on computing device 104.

[0081] O dispositivo baseado em computação 104 compreende ainda uma interface de saída 910 disposta de modo a exibir informações de saída para um dispositivo de vídeo 924 que pode ser separado do ou integral com o dispositivo de computação 104. Por exemplo, a fim de exibir os vídeos com dados de classificação de tarefa motora sobrepostos, as informações de vídeo poderão prover uma interface gráfica de usuário. Em um exemplo, o dispositivo de vídeo 924 poderá também atuar como um dispositivo de entrada de usuário quando o mesmo é um dispositivo de vídeo sensível ao toque. A interface de saída pode também ceder dados para outros dispositivos além do dispositivo de vídeo, por exemplo, para um dispositivo de impressão localmente conectado.[0081] The computing-based device 104 further comprises an output interface 910 arranged to display output information to a video device 924 that may be separate from or integral with the computing device 104. For example, in order to displaying videos with overlaid motor task classification data, the video information may provide a graphical user interface. In one example, video device 924 may also act as a user input device when it is a touch-sensitive video device. The output interface may also pass data to devices other than the video device, for example, to a locally connected printing device.

[0082] As instruções executáveis por computador podem ser providas mediante o uso de quaisquer meios legíveis por computador que sejam acessíveis pelo dispositivo baseado em computação 104. Os meios legíveis por computador podem incluir, por exemplo, um meio de armazenamento em computador 1212, tal como uma memória ou um meio de comunicação. Os meios de armazenamento em computador 1212, tais como a memória 912, incluem meios voláteis e não voláteis, removíveis e não removíveis implementados em qualquer método ou tecnologia para o armazenamento de informações, tais como instruções legíveis por computador, estruturas de dados, módulos de programa ou outros dados. Os meios de armazenamento em computador incluem, mas não estão limitados à, memória RAM, memória ROM, memória EEPROM, memória flash ou outra tecnologia de memória, CD-ROM, discos versáteis digitais (DVD) ou outro armazenador de disco óptico, cassetes magnéticos, fita magnética, armazenador de disco magnético ou outros dispositivos de armazenamento magnético, ou qualquer outro meio de não transmissão que possa ser usado para armazenar informações para acesso por parte de um dispositivo de computação. Em contrapartida, os meios de comunicação poderão incorporar instruções legíveis por computador, estruturas de dados, módulos de programas ou outros dados em um sinal de dados modulado, tal como uma onda portadora ou outro mecanismo de transporte. Tal como definido no presente documento, os meios de armazenamento em computador não incluem meios de comunicação. Por conseguinte, um meio de armazenamento em computador não deve ser interpretado como um sinal de propagação por si só. Sinais propagados podem estar presentes em um meio de armazenamento em computador, porém os sinais propagados por si sós não são exemplos de meios de armazenamento em computador. Embora os meios de armazenamento em computador (a memória 912) sejam mostrados no interior do dispositivo baseado em computação 104, deve-se observar que o armazenamento poderá ser distribuído ou remotamente localizado e acessado através de uma rede ou outro enlace de comunicação (por exemplo, usando uma interface de comunicação 913).[0082] The computer-executable instructions may be provided using any computer-readable media that is accessible by the computing-based device 104. The computer-readable media may include, for example, a computer storage medium 1212, such as a memory or a means of communication. Computer storage media 1212, such as memory 912, includes volatile and non-volatile, removable and non-removable media implemented in any method or technology for storing information, such as computer-readable instructions, data structures, modules, program or other data. Computer storage media includes, but is not limited to, RAM memory, ROM memory, EEPROM memory, flash memory or other memory technology, CD-ROM, digital versatile discs (DVD) or other optical disc storage, magnetic cassettes , magnetic tape, magnetic disk storage or other magnetic storage devices, or any other non-transmission medium that can be used to store information for access by a computing device. In contrast, the communication means may incorporate computer-readable instructions, data structures, program modules or other data into a modulated data signal, such as a carrier wave or other transport mechanism. As defined herein, computer storage media does not include communication media. Therefore, a computer storage medium should not be interpreted as a propagation signal in itself. Propagated signals may be present on a computer storage medium, but propagated signals alone are not examples of computer storage media. Although the computer storage means (memory 912) is shown within the computing-based device 104, it should be noted that the storage may be distributed or remotely located and accessed via a network or other communications link (e.g. , using a 913 communication interface).

[0083] Uma plataforma de software compreendendo um sistema operacional 914 ou qualquer outra plataforma de software adequada poderá ser provida no dispositivo de computação 104 de modo a permitir que um aplicativo de software 916 seja executado no dispositivo. Outro software que pode ser executado no dispositivo de computação 104 inclui: uma lógica de treinamento 918 (ver, por exemplo, Figuras 6 e 7 e descrição acima); uma lógica de predição 920 (ver, por exemplo, a Figura 8 e descrição acima). Um armazenador de dados 922 é provido de modo a armazenar dados, tais como vídeos previamente recebidos; resultados de função intermediários; parâmetros da treinamento de árvore, distribuições de probabilidade, rótulos de classificação, objetivos de regressão, objetivos de classificação, além de outros dados.[0083] A software platform comprising an operating system 914 or any other suitable software platform may be provided on the computing device 104 so as to allow a software application 916 to be executed on the device. Other software that can be executed on the computing device 104 includes: a training logic 918 (see, for example, Figures 6 and 7 and description above); a prediction logic 920 (see, for example, Figure 8 and description above). A data store 922 is provided for storing data such as previously received videos; intermediate function results; tree training parameters, probability distributions, classification labels, regression objectives, classification objectives, and other data.

[0084] Qualquer um dentre a interface de entrada 902, a interface de saída 910, o dispositivo de vídeo 924 e os dispositivos de entrada de usuário 906, 908 podem compreender uma tecnologia NUI (Interface Natural de Usuário) que permite ao usuário interagir com o dispositivo baseado em computação de uma forma natural, livre das restrições artificiais impostas pelos dispositivos de entrada, tais como mouses, teclados, controles remotos ou similares. Exemplos de tecnologia NUI que podem ser providos incluem, mas não estão limitados àqueles que se baseiam no reconhecimento de voz e/ou no reconhecimento de voz, no reconhecimento de toque e/ou caneta (telas sensíveis ao toque), no reconhecimento de gestos tanto na tela como também ao lado da tela, gestos no ar, monitoramento da cabeça e dos olhos, voz e fala, visão, tato, gestos e inteligência de máquina. Outros exemplos de tecnologia NUI que podem ser usados incluem sistemas de entendimento de intenção e alvo, sistemas de detecção de movimento de gestos usando câmeras de profundidade (tais como os sistemas de câmeras estereoscópicas, os sistemas de câmera com infravermelho, os sistemas de câmera RGB ou combinações dos mesmos), sistemas de detecção de movimento de gestos usando acelerômetros / giroscópios, sistemas de reconhecimento facial, sistemas de vídeo 3D, sistemas de monitoramento de cabeça, de olho ou do olhar, sistemas e tecnologias de realidade virtual ou de realidade aumentada imersiva para a detecção de atividade cerebral usando eletrodos de detecção de campos elétricos (EEG), ou métodos relacionados.[0084] Any of the input interface 902, the output interface 910, the video device 924, and the user input devices 906, 908 may comprise a NUI (Natural User Interface) technology that allows the user to interact with the device based on computing in a natural way, free from the artificial constraints imposed by input devices such as mice, keyboards, remote controls or the like. Examples of NUI technology that may be provided include, but are not limited to, those that are based on voice recognition and/or speech recognition, touch and/or pen recognition (touch screens), gesture recognition, or on screen as well as beside the screen, mid-air gestures, head and eye monitoring, voice and speech, vision, touch, gestures and machine intelligence. Other examples of NUI technology that can be used include intent and target understanding systems, gesture motion detection systems using depth cameras (such as stereoscopic camera systems, infrared camera systems, RGB camera systems or combinations thereof), gesture motion detection systems using accelerometers/gyroscopes, facial recognition systems, 3D video systems, head, eye or gaze monitoring systems, virtual reality or augmented reality systems and technologies immersive technology for detecting brain activity using electrical field detection (EEG) electrodes, or related methods.

[0085] Em um exemplo, é provido um método implementado por computador, que compreende: - o recebimento de um vídeo que ilustra pelo menos uma parte de uma pessoa ou animal que executa uma tarefa motora; - o envio do vídeo para um sistema de aprendizado de máquina treinado, o qual é treinado para encontrar características de movimentos locais dependentes de posição dentre os vídeos que discriminam uma pluralidade de classes de tarefas motoras; - o recebimento, por parte do sistema de aprendizado de máquina treinado, de dados sobre a que classe, dentre a pluralidade de classes, a tarefa motora é prevista pertencer.[0085] In one example, a computer-implemented method is provided, comprising: - receiving a video that illustrates at least a part of a person or animal performing a motor task; - sending the video to a trained machine learning system, which is trained to find position-dependent local movement features among the videos that discriminate a plurality of motor task classes; - the receipt, by the trained machine learning system, of data about which class, among the plurality of classes, the motor task is predicted to belong to.

[0086] Deste modo, as tarefas motoras realizadas por pessoas podem ser analisadas e avaliadas de uma forma precisa, reprodutível, automatizada e, portanto, objetiva.[0086] In this way, motor tasks performed by people can be analyzed and evaluated in a precise, reproducible, automated and, therefore, objective way.

[0087] Nos exemplos, as características de movimentos locais compreendem características de velocidade ou aceleração. Esses tipos de características podem ser calculados com precisão e de forma eficiente como também podem ser calculados antes do treinamento de aprendizado de máquina e suas fases de teste. Isto melhora a qualidade dos dados de tarefas motoras obtidos a partir do sistema de aprendizado de máquina, como também a velocidade de obtenção desses dados.[0087] In the examples, local motion characteristics comprise speed or acceleration characteristics. These types of features can be calculated accurately and efficiently and can also be calculated before the machine learning training and testing phases. This improves the quality of motor task data obtained from the machine learning system, as well as the speed of obtaining this data.

[0088] Nos exemplos, os métodos acima compreendem o cálculo, para os pares de quadros do vídeo, de descritores de movimento, sendo que o envio do vídeo para o sistema de aprendizado de máquina treinado compreende o envio dos descritores de movimento.[0088] In the examples, the above methods comprise the calculation, for pairs of video frames, of motion descriptors, and sending the video to the trained machine learning system comprises sending the motion descriptors.

[0089] Por exemplo, os descritores de movimento são valores de fluxo óptico. Quando são usados valores de fluxo óptico, o sistema resultante se torna muito robusto ao ruído ou aos erros dos vídeos.[0089] For example, motion descriptors are optical flow values. When optical flow values are used, the resulting system becomes very robust to noise or errors in videos.

[0090] Em alguns exemplos, os métodos acima compreendem, no sistema de aprendizado de máquina, o cálculo das características de movimentos locais usando uma pluralidade de descritores de movimento, por exemplo, levando em consideração os descritores de movimento em pelo menos um subvolume do vídeo, como também o cálculo das características de movimentos locais, levando em consideração os descritores de movimento em dois subvolumes do vídeo, e ainda o cálculo das características de movimentos locais, levando em consideração as diferenças entre os descritores de movimento nos subvolumes do vídeo. O uso de subvolumes de vídeos destas maneiras é considerado como particularmente eficaz na discriminação de classes de tarefas motoras.[0090] In some examples, the above methods comprise, in the machine learning system, calculating local motion characteristics using a plurality of motion descriptors, for example, taking into account motion descriptors in at least one subvolume of the video, as well as the calculation of local movement characteristics, taking into account the movement descriptors in two subvolumes of the video, and also the calculation of local movement characteristics, taking into account the differences between the movement descriptors in the video subvolumes. The use of subvolumes of videos in these ways is considered to be particularly effective in discriminating classes of motor tasks.

[0091] Alguns exemplos compreendem o cálculo das características de aceleração, levando em consideração a frequência da mudança de direção e a taxa de mudança dos valores de fluxo óptico em um subvolume do vídeo. O uso de uma característica de aceleração direcional é considerado como muito eficaz na discriminação de classes de tarefas motoras.[0091] Some examples comprise the calculation of acceleration characteristics, taking into account the frequency of change of direction and the rate of change of optical flow values in a subvolume of the video. The use of a directional acceleration feature is considered to be very effective in discriminating classes of motor tasks.

[0092] Alguns exemplos compreendem a desconsideração das mudanças de direção e da taxa de mudança dos valores de fluxo óptico quando a magnitude do fluxo óptico se encontra abaixo de um limiar. Isto ajuda a distinguir entre um movimento devido a um ruído e o movimento corrente de uma pessoa.[0092] Some examples include disregarding changes in direction and the rate of change of optical flow values when the magnitude of the optical flow is below a threshold. This helps to distinguish between movement due to noise and the current movement of a person.

[0093] Alguns exemplos compreendem o pré-processamento do vídeo antes de enviar o vídeo para o sistema de aprendizado de máquina treinado, por meio de escalabilidade, centralização e realização de uma extração de primeiro plano. Isto simplifica o uso do sistema de aprendizado de máquina treinado no momento do teste e reduz a duração do processamento no momento do teste.[0093] Some examples comprise pre-processing the video before sending the video to the trained machine learning system, through scaling, centering and performing a foreground extraction. This simplifies the use of the trained machine learning system at test time and reduces processing time at test time.

[0094] Em um exemplo o vídeo é de qualquer tamanho, e as características de movimentos locais são calculadas de uma maneira que leva em consideração o tamanho do vídeo. Isto será muito útil quando as tarefas motoras exibem uma grande variabilidade de duração entre pessoas.[0094] In one example the video is of any size, and the local motion characteristics are calculated in a manner that takes the size of the video into account. This will be very useful when motor tasks exhibit great variability in duration between people.

[0095] Um exemplo compreende o treinamento do sistema de aprendizado de máquina usando vídeos de pessoas realizando uma tarefa motora, sendo que os vídeos são rotulados com rótulos que indicam à qual, dentre uma pluralidade de possíveis classes, a tarefa motora pertence, e sendo que os vídeos são de diferentes tamanhos.[0095] An example comprises training the machine learning system using videos of people performing a motor task, the videos being labeled with labels that indicate to which, among a plurality of possible classes, the motor task belongs, and being that the videos are of different sizes.

[0096] Os exemplos acima podem compreender o envio do vídeo para um sistema de aprendizado de máquina treinado compreendendo qualquer um dentre: uma floresta de decisão aleatória, uma floresta de gráficos acíclicos direcionados, um ensemble de máquinas de vetores de suporte.[0096] The above examples may comprise sending the video to a trained machine learning system comprising any of: a random decision forest, a forest of directed acyclic graphs, an ensemble of support vector machines.

[0097] Alguns exemplos compreendem o envio do vídeo para um sistema de aprendizado de máquina treinado compreendendo um ensemble de máquinas de vetores de suporte, cada máquina de vetores de suporte sendo um nó de divisão de uma árvore de decisão binária. Isto proporciona uma maneira prática de se usar as máquinas de vetores de suporte, apesar do número elevado e variável de dimensões dos dados de vídeo.[0097] Some examples comprise sending the video to a trained machine learning system comprising an ensemble of support vector machines, each support vector machine being a split node of a binary decision tree. This provides a practical way to use support vector machines despite the high and variable number of dimensions of video data.

[0098] Alguns exemplos compreendem o envio do vídeo para um sistema de aprendizado de máquina treinado compreendendo um ensemble de máquinas de vetores de suporte, cada uma das máquinas de vetores de suporte sendo treinada usando descritores de características de tamanho fixo que compreendem características aleatórias de movimentos locais dependentes de posição que são calculadas a partir de vídeos de treinamento rotulados. O ensemble resultante de máquinas de vetores de suporte pode ser referido como um ensemble aleatório de máquinas de vetores de suporte.[0098] Some examples comprise sending the video to a trained machine learning system comprising an ensemble of support vector machines, each of the support vector machines being trained using fixed-size feature descriptors comprising random features of position-dependent local movements that are calculated from labeled training videos. The resulting ensemble of support vector machines can be referred to as a random ensemble of support vector machines.

[0099] Outro exemplo provê um classificador de tarefa motora, compreendendo: - uma memória que armazena um vídeo que ilustra pelo menos uma parte de uma pessoa ou animal que executa uma tarefa motora; - um sistema de aprendizado de máquina treinado, o qual é treinado para encontrar as características de movimentos locais dependentes de posição de vídeos que discriminam uma pluralidade de classes de tarefas motoras; e - um processador disposto de modo a calcular os descritores de movimento de um vídeo, aplicar os descritores de movimento ao sistema de aprendizado de máquina treinado, e receber, em resposta, os dados sobre a que classe, dentre a pluralidade de classes, a tarefa motora é prevista pertencer.[0099] Another example provides a motor task classifier, comprising: - a memory that stores a video that illustrates at least one part of a person or animal performing a motor task; - a trained machine learning system, which is trained to find position-dependent local movement characteristics from videos that discriminate a plurality of motor task classes; and - a processor arranged to calculate the motion descriptors of a video, apply the motion descriptors to the trained machine learning system, and receive, in response, data about which class, among the plurality of classes, the motor task is predicted to belong.

[00100] O termo 'computador' ou 'dispositivo baseado em computação' é usado no presente documento de modo a se referir a qualquer dispositivo com capacidade de processamento, de tal modo que o mesmo possa executar instruções. Os versados na técnica poderão perceber que tais capacidades de processamento são incorporadas em muitos dispositivos diferentes e, por conseguinte, os termos "computador" e "dispositivo baseado em computação' incluem, cada um dos mesmos, computadores PC, servidores, telefones celulares (incluindo os smartfones), computadores do tipo tablet, aparelhos conversores set-top box, leitores de multimídia, consoles de jogos, assistentes pessoais digitais, além de muitos outros dispositivos.[00100] The term 'computer' or 'computing-based device' is used herein to refer to any device with processing capability such that it can execute instructions. Those skilled in the art will appreciate that such processing capabilities are incorporated into many different devices, and therefore the terms "computer" and "computing-based device" each include PC computers, servers, cellular telephones (including smartphones), tablet computers, set-top box converters, multimedia players, game consoles, personal digital assistants, as well as many other devices.

[00101] Os métodos descritos no presente documento podem ser executados por um software de uma forma legível por máquina em um meio de armazenamento tangível, por exemplo, sob a forma de um programa de computador que compreende um meio de código de programa de computador adaptado de modo a realizar todas as etapas de qualquer um dos métodos descritos no presente documento, quando o programa é executado em um computador ou quando o programa de computador pode ser incorporado em um meio legível por computador. Exemplos de meios de armazenamento tangíveis incluem dispositivos de armazenamento em computador, compreendendo meios legíveis por computador, tais como discos, pen drives, memória, etc., e não incluem sinais propagados. Sinais propagados podem estar presentes em um meio de armazenamento tangível, porém os sinais propagados por si sós não são exemplos de meios de armazenamento tangíveis. O software pode ser adequado para execução em um processador paralelo ou em um processador em série de modo que as etapas do método podem ser realizados em qualquer ordem adequada, ou simultaneamente.[00101] The methods described herein may be performed by software in a machine-readable form on a tangible storage medium, for example, in the form of a computer program comprising an adapted computer program code medium. so as to carry out all steps of any of the methods described herein when the program is executed on a computer or when the computer program can be embodied in a computer readable medium. Examples of tangible storage media include computer storage devices, comprising computer-readable media such as disks, flash drives, memory, etc., and do not include propagated signals. Propagated signals may be present on a tangible storage medium, but propagated signals alone are not examples of tangible storage media. The software may be suitable for execution on a parallel processor or on a series processor so that the steps of the method may be performed in any suitable order, or simultaneously.

[00102] A presente invenção reconhece que um software pode ser uma valiosa mercadoria, separadamente negociável. O termo é concebido de modo a abranger um software que é executado em que controla um hardware padrão ou "burro", para realizar as funções desejadas. O termo pretende também abranger um software que "descreve" ou define uma configuração de hardware, tal como um software HDL (de linguagem de descrição de hardware), quando o mesmo é usado para projetar chips de silício, ou configurar chips programáveis universais, a fim de realizar suas funções desejadas.[00102] The present invention recognizes that software can be a valuable, separately tradable commodity. The term is designed to encompass software that runs on what controls standard or "dumb" hardware to perform desired functions. The term is also intended to cover software that "describes" or defines a hardware configuration, such as HDL (hardware description language) software when it is used to design silicon chips, or configure universal programmable chips, the in order to perform its desired functions.

[00103] Os versados na técnica poderão perceber que os dispositivos de armazenamento usados para armazenar instruções de programa podem ser distribuídos através de uma rede. Por exemplo, um computador remoto pode armazenar um exemplo do processo descrito como software. Um computador local ou terminal pode acessar o computador remoto e baixar uma parte ou a totalidade do software a fim de executar um programa. De maneira alternativa, o computador local pode baixar partes de um software, conforme necessário, ou executar algumas instruções de software no terminal local e algumas no computador remoto (ou rede de computador). Os versados na técnica poderão também compreender que, ao usar as técnicas convencionais conhecidas dos versados na técnica, a totalidade ou uma parte das instruções de software poderá ser realizada por um circuito dedicado, tal como um processador DSP, uma matriz lógica programável, ou similar.[00103] Those skilled in the art will appreciate that storage devices used to store program instructions can be distributed across a network. For example, a remote computer may store an example of the described process as software. A local computer or terminal can access the remote computer and download some or all of the software in order to run a program. Alternatively, the local computer can download portions of software as needed, or execute some software instructions on the local terminal and some on the remote computer (or computer network). Those skilled in the art will also understand that, when using conventional techniques known to those skilled in the art, all or a portion of the software instructions may be carried out by a dedicated circuit, such as a DSP processor, a programmable logic array, or the like. .

[00104] Qualquer faixa ou valor de dispositivo descrito no presente documento poderá ser ampliado ou modificado, sem perder o efeito pretendido, tal como se tornará evidente à pessoa versada na técnica.[00104] Any range or device value described in this document may be expanded or modified, without losing the intended effect, as will become apparent to the person skilled in the art.

[00105] Embora a matéria da presente invenção tenha sido descrita em uma linguagem específica às características estruturais e/ou às etapas metodológicas, deve-se entender que a matéria definida nas concretizações em apenso não está necessariamente limitada às características ou etapas específicas descritas acima. Em vez disso, as características e etapas específicas descritas acima devem ser entendidas como formas exemplares de se implementar as concretizações.[00105] Although the subject matter of the present invention has been described in a language specific to the structural characteristics and/or methodological steps, it should be understood that the subject matter defined in the appended embodiments is not necessarily limited to the specific features or steps described above. Instead, the specific features and steps described above should be understood as exemplary ways of implementing the achievements.

[00106] Deve-se entender que os benefícios e as vantagens descritas acima podem estar relacionados a uma modalidade como também poderão se referir a várias modalidades. As modalidades não estão limitadas àquelas que solucionam quaisquer ou todos os problemas indicados ou àquelas que possuem quaisquer ou todos os benefícios e vantagens indicadas. Deve-se ainda entender que a referência a "um" item se refere a um ou mais desses itens.[00106] It should be understood that the benefits and advantages described above may be related to one modality or may also refer to several modalities. The modalities are not limited to those that solve any or all of the indicated problems or to those that have any or all of the indicated benefits and advantages. It should also be understood that the reference to "an" item refers to one or more of those items.

[00107] As etapas de método descritas no presente documento podem ser realizadas em qualquer ordem adequada, ou simultaneamente quando apropriado. Além disso, blocos individuais podem ser excluídos de qualquer um dos métodos, sem se afastar do espírito ou âmbito de aplicação da matéria descrita no presente documento. Aspectos de qualquer um dos exemplos descritos acima podem ser combinados com aspectos de qualquer um dos exemplos descritos de modo a formar outros exemplos, sem se perder o efeito desejado.[00107] The method steps described herein can be performed in any suitable order, or simultaneously when appropriate. Furthermore, individual blocks may be excluded from any of the methods, without departing from the spirit or scope of the matter described in this document. Aspects of any of the examples described above may be combined with aspects of any of the examples described to form other examples, without losing the desired effect.

[00108] O termo "compreendendo" é usado no presente documento no sentido de "incluindo" no que diz respeito aos blocos de método ou aos elementos identificados. Contudo, esses blocos ou elementos não compreendem uma lista exclusiva, como também um método ou dispositivo poderá conter outros blocos ou elementos adicionais.[00108] The term "comprising" is used herein in the sense of "including" with respect to the identified method blocks or elements. However, these blocks or elements do not comprise an exclusive list, nor can a method or device contain other additional blocks or elements.

[00109] O termo "subconjunto" é usado no presente documento para se referir a um subconjunto apropriado de tal modo que um subconjunto de um conjunto não contenha todos os elementos do conjunto (ou seja, pelo menos um dos elementos do conjunto poderá estar omitido do subconjunto).[00109] The term "subset" is used herein to refer to an appropriate subset such that a subset of a set does not contain all of the elements of the set (i.e., at least one of the elements of the set may be omitted of the subset).

[00110] Deve-se entender que a descrição acima é feita tão somente a título de exemplo e, deste modo, várias modificações podem ser feitas por aqueles versados na técnica. O relatório descritivo acima, os exemplos e os dados oferecem uma descrição completa da estrutura e do uso das modalidades exemplares. Embora diversas modalidades tenham sido descritas acima com um certo grau de particularidade ou com referência a uma ou mais modalidades individuais, os versados na técnica poderão fazer inúmeras alterações às modalidades descritas, sem se afastar do espírito ou âmbito de aplicação do presente relatório descritivo.[00110] It should be understood that the above description is made solely by way of example and, therefore, various modifications can be made by those skilled in the art. The above specification, examples, and data provide a complete description of the structure and use of the exemplary embodiments. Although several modalities have been described above with a certain degree of particularity or with reference to one or more individual modalities, those skilled in the art may make numerous changes to the described modalities without departing from the spirit or scope of the present specification.

Claims (19)

1. Método implementado por computador caracterizado pelo fato de que compreende etapas de: receber um vídeo ilustrando pelo menos parte de um usuário realizando uma tarefa motora; excluir características do vídeo que possam identificar o usuário; inserir o vídeo em um sistema de aprendizado de máquina (122, 508) treinado, o sistema de aprendizado de máquina (122, 508) treinado tendo sido treinado para detectar múltiplas sequências de características de movimentos locais dependentes de posição de vídeos que discriminam entre uma pluralidade de classes das tarefas motoras; e receber, do sistema de aprendizado de máquina (122, 508) treinado, um rótulo identificando uma classe de tarefa motora da pluralidade de classes, a pluralidade de classes incluindo uma indicação de um nível de desempenho da tarefa motora com base em pelo menos uma dentre as múltiplas sequências de características de movimentos locais dependentes de posição no vídeo detectadas pelo sistema de aprendizado de máquina (122, 508) treinado.1. Computer-implemented method characterized by the fact that it comprises steps of: receiving a video illustrating at least part of a user performing a motor task; exclude characteristics from the video that could identify the user; inputting the video into a trained machine learning system (122, 508), the trained machine learning system (122, 508) having been trained to detect multiple sequences of position-dependent local motion features from videos that discriminate between a plurality of classes of motor tasks; and receiving, from the trained machine learning system (122, 508), a label identifying a motor task class of the plurality of classes, the plurality of classes including an indication of a level of performance of the motor task based on at least one among the multiple sequences of position-dependent local motion features in the video detected by the trained machine learning system (122, 508). 2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que as características de movimentos locais compreendem características de velocidade ou aceleração.2. Method according to claim 1, characterized by the fact that the local movement characteristics comprise speed or acceleration characteristics. 3. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que ainda compreende etapa de calcular as características de aceleração ao levar em consideração frequência de mudança de direção de taxa de mudança de valores de fluxo óptico de um subvolume do vídeo.3. Method, according to claim 2, characterized by the fact that it further comprises the step of calculating the acceleration characteristics when taking into account frequency of change of direction and rate of change of optical flow values of a subvolume of the video. 4. Método, de acordo com a reivindicação 3, caracterizado pelo fato de que ainda compreende etapa de desconsiderar mudanças de direção da taxa de mudança dos valores de fluxo óptico, onde a magnitude dos valores de fluxo óptico está abaixo de um limiar.4. Method, according to claim 3, characterized by the fact that it further comprises the step of disregarding changes in direction of the rate of change of the optical flow values, where the magnitude of the optical flow values is below a threshold. 5. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que ainda compreende etapa de calcular descritores de movimento (504) para pares de quadros do vídeo, e em que inserir o vídeo no sistema de aprendizado de máquina (122, 508) treinado compreende inserir os descritores de movimento (504).5. Method, according to claim 1, characterized by the fact that it further comprises the step of calculating motion descriptors (504) for pairs of video frames, and in which inserting the video into the machine learning system (122, 508 ) trained comprises entering the movement descriptors (504). 6. Método, de acordo com a reivindicação 5, caracterizado pelo fato de que os descritores de movimento (504) incluem valores de fluxo óptico.6. Method according to claim 5, characterized by the fact that the motion descriptors (504) include optical flow values. 7. Método, de acordo com a reivindicação 5, caracterizado pelo fato de que ainda compreende etapa de, no sistema de aprendizado de máquina (122, 508), calcular as características de movimentos locais usando uma pluralidade dos descritores de movimento (504).7. Method, according to claim 5, characterized by the fact that it further comprises the step of, in the machine learning system (122, 508), calculating the characteristics of local movements using a plurality of movement descriptors (504). 8. Método, de acordo com a reivindicação 5, caracterizado pelo fato de que o sistema de aprendizado de máquina (122, 508) treinado encontra as características de movimentos locais ao realizar um cálculo com base pelo menos em parte nos descritores de movimento (504) em pelo menos um subvolume do vídeo.8. Method according to claim 5, characterized by the fact that the trained machine learning system (122, 508) finds the characteristics of local movements by performing a calculation based at least in part on the movement descriptors (504 ) in at least one subvolume of the video. 9. Método, de acordo com a reivindicação 5, caracterizado pelo fato de que ainda compreende etapa de calcular as características de movimentos locais ao levar em consideração diferenças entre descritores de movimento (504) em subvolumes do vídeo.9. Method, according to claim 5, characterized by the fact that it further comprises the step of calculating local movement characteristics by taking into account differences between movement descriptors (504) in subvolumes of the video. 10. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que ainda compreende etapa de pré-processar o vídeo antes de inserir o vídeo no sistema de aprendizado de máquina (122, 508) treinado, pelo menos por meio de um ou mais dentre escalabilidade, centralização, e realização de uma extração de primeiro plano (404).10. Method according to claim 1, characterized by the fact that it further comprises the step of pre-processing the video before inserting the video into the machine learning system (122, 508) trained, at least by means of one or more between scalability, centralization, and performing a foreground extraction (404). 11. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que: o vídeo é de qualquer comprimento, e o sistema de aprendizado de máquina (122, 508) treinado calcula as características de movimentos locais com base pelo menos em parte no comprimento do vídeo.11. The method of claim 1, wherein: the video is of any length, and the trained machine learning system (122, 508) calculates local motion characteristics based at least in part on the video length. 12. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que ainda compreende etapa de treinar o sistema de aprendizado de máquina (122, 508) usando vídeos de pessoas (101) realizando a tarefa motora, onde os vídeos são rotulados com rótulos indicando à qual dentre uma pluralidade de possíveis classes a tarefa motora pertence, e onde os vídeos são de diferentes comprimentos.12. Method, according to claim 1, characterized by the fact that it further comprises the step of training the machine learning system (122, 508) using videos of people (101) performing the motor task, where the videos are labeled with labels indicating which of a plurality of possible classes the motor task belongs to, and where the videos are of different lengths. 13. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que ainda compreende etapa de inserir o vídeo em um sistema de aprendizado de máquina (122, 508) treinado compreendendo um ou mais dentre: uma floresta de decisão aleatória, uma floresta de gráficos acíclicos direcionados, e um ensemble de máquinas de vetores de suporte.13. Method, according to claim 1, characterized by the fact that it further comprises the step of inserting the video into a machine learning system (122, 508) trained comprising one or more of: a random decision forest, a forest of directed acyclic graphs, and an ensemble of support vector machines. 14. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que ainda compreende etapa de inserir o vídeo em um sistema de aprendizado de máquina (122, 508) treinado compreendendo um ensemble de máquinas de vetores de suporte, uma máquina de vetores de suporte do ensemble incluindo um nó de divisão (708) de uma árvore de decisão binária.14. Method, according to claim 1, characterized by the fact that it further comprises the step of inserting the video into a trained machine learning system (122, 508) comprising an ensemble of support vector machines, a vector machine ensemble support including a split node (708) of a binary decision tree. 15. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que ainda compreende etapa de inserir o vídeo em um sistema de aprendizado de máquina (122, 508) treinado compreendendo um ensemble de máquinas de vetores de suporte, cada uma das máquinas de vetores de suporte individualmente tendo sido treinada usando descritores de características de comprimento fixo compreendendo características de movimentos locais dependentes de posições aleatórias calculadas a partir de vídeos de treinamento rotulados.15. Method, according to claim 1, characterized by the fact that it further comprises the step of inserting the video into a machine learning system (122, 508) trained comprising an ensemble of support vector machines, each of the machines of support vectors individually having been trained using fixed-length feature descriptors comprising random position-dependent local motion features computed from labeled training videos. 16. Meio de armazenamento de computador (1212) caracterizado pelo fato de que armazena um método compreendendo etapas de: receber um vídeo ilustrando pelo menos parte de uma pessoa (101) ou animal realizando uma tarefa motora; inserir o vídeo em um sistema de aprendizado de máquina (122, 508) treinado, tendo sido treinado para detectar múltiplas sequências de características de acelerações locais dependentes de posição de vídeos que discriminam entre uma pluralidade de classes das tarefas motoras, as características de acelerações locais calculadas ao levar em consideração frequência de mudança de direção de taxa de mudança de valores de fluxo óptico de um subvolume do vídeo; e receber, do sistema de aprendizado de máquina (122, 508) treinado, um rótulo identificando uma classe de tarefa motora da pluralidade de classes, em que a pluralidade de classes inclui uma indicação de um nível de desempenho da tarefa motora com base em pelo menos uma dentre as múltiplas sequências de características de movimentos locais dependentes de posição no vídeo detectadas pelo sistema de aprendizado de máquina (122, 508) treinado.16. Computer storage medium (1212) characterized by the fact that it stores a method comprising steps of: receiving a video illustrating at least part of a person (101) or animal performing a motor task; input the video into a trained machine learning system (122, 508) having been trained to detect multiple sequences of position-dependent local acceleration features from videos that discriminate between a plurality of motor task classes, the local acceleration features calculated by taking into account frequency of change of direction and rate of change of optical flow values of a subvolume of the video; and receiving, from the trained machine learning system (122, 508), a label identifying a motor task class from the plurality of classes, wherein the plurality of classes includes an indication of a level of performance of the motor task based on at least least one of multiple sequences of position-dependent local motion features in the video detected by the trained machine learning system (122, 508). 17. Classificador de tarefa motora, caracterizado pelo fato de que compreende: uma memória (310) armazenando um vídeo ilustrando pelo menos parte de uma pessoa (101) ou animal realizando uma tarefa motora; um sistema de aprendizado de máquina (122, 508) treinado, tendo sido treinado para detectar múltiplas sequências de características de movimentos locais dependentes de posição de vídeos que discriminam entre uma pluralidade de classes das tarefas motoras, o treinamento compreendendo otimizar um critério com base pelo menos em parte em uma duração de um subvolume; e um processador (308) disposto para: computar descritores de movimento (504) de um vídeo; inserir os descritores de movimento (504) no sistema de aprendizado de máquina (122, 508) treinado; e receber, do sistema de aprendizado de máquina (122, 508) treinado, um rótulo identificando uma classe de tarefa motora da pluralidade de classes, em que a pluralidade de classes inclui uma indicação de um nível de desempenho da tarefa motora com base em pelo menos uma dentre as múltiplas sequências de características de movimentos locais dependentes de posição no vídeo detectadas pelo sistema de aprendizado de máquina (122, 508) treinado.17. Motor task classifier, characterized by the fact that it comprises: a memory (310) storing a video illustrating at least part of a person (101) or animal performing a motor task; a trained machine learning system (122, 508) having been trained to detect multiple sequences of position-dependent local motion features from videos that discriminate between a plurality of classes of motor tasks, the training comprising optimizing a criterion based on the least in part in a duration of a subvolume; and a processor (308) arranged to: compute motion descriptors (504) of a video; inputting the motion descriptors (504) into the trained machine learning system (122, 508); and receiving, from the trained machine learning system (122, 508), a label identifying a motor task class from the plurality of classes, wherein the plurality of classes includes an indication of a level of performance of the motor task based on at least least one of multiple sequences of position-dependent local motion features in the video detected by the trained machine learning system (122, 508). 18. Classificador de tarefa motora, de acordo com a reivindicação 17, caracterizado pelo fato de que as características de movimentos locais compreendem características de velocidade ou aceleração.18. Motor task classifier according to claim 17, characterized in that the local movement characteristics comprise speed or acceleration characteristics. 19. Classificador de tarefa motora, de acordo com a reivindicação 17, caracterizado pelo fato de que computar descritores de movimento (504) do vídeo inclui calcular descritores de movimento (504) para pares de quadros do vídeo.19. The motor task classifier of claim 17, wherein computing motion descriptors (504) of the video includes computing motion descriptors (504) for pairs of frames of the video.
BR112017003220-1A 2014-09-09 2015-09-07 COMPUTER-IMPLEMENTED METHOD, COMPUTER STORAGE MEDIUM, AND MOTOR TASK CLASSIFIER FOR VIDEO PROCESSING FOR MOTOR TASK ANALYSIS BR112017003220B1 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462048132P 2014-09-09 2014-09-09
US62/048,132 2014-09-09
US14/536,660 2014-11-09
US14/536,660 US10083233B2 (en) 2014-09-09 2014-11-09 Video processing for motor task analysis
PCT/US2015/048753 WO2016040207A1 (en) 2014-09-09 2015-09-07 Video processing for motor task analysis

Publications (3)

Publication Number Publication Date
BR112017003220A2 BR112017003220A2 (en) 2017-11-28
BR112017003220A8 BR112017003220A8 (en) 2023-03-07
BR112017003220B1 true BR112017003220B1 (en) 2024-04-16

Family

ID=

Similar Documents

Publication Publication Date Title
US10083233B2 (en) Video processing for motor task analysis
US9373087B2 (en) Decision tree training in machine learning
CN106796656B (en) Depth from time-of-flight camera
JP6333844B2 (en) Resource allocation for machine learning
US8571263B2 (en) Predicting joint positions
CN107466411B (en) Two-dimensional infrared depth sensing
US9613298B2 (en) Tracking using sensor data
US9311534B2 (en) Method and apparatus for tracking object
US9886094B2 (en) Low-latency gesture detection
US9087241B2 (en) Intelligent part identification for use with scene characterization or motion capture
US9619035B2 (en) Gesture detection and recognition
US20140204013A1 (en) Part and state detection for gesture recognition
US8660306B2 (en) Estimated pose correction
US20150199592A1 (en) Contour-based classification of objects
BR112017003220B1 (en) COMPUTER-IMPLEMENTED METHOD, COMPUTER STORAGE MEDIUM, AND MOTOR TASK CLASSIFIER FOR VIDEO PROCESSING FOR MOTOR TASK ANALYSIS
Ballester Ripoll Gesture recognition using a depth sensor and machine learning techniques
Cordo Fingerpointer-Pointing Gestures for Collaborative Robots
Suau Cuadros Human body analysis using depth data