Rastreamento lateral do esqueleto Kinect
Atualmente estou usando o Microsoft Kinect para medir os ângulos entre as juntas. A maioria das medições está funcionando corretamente. Sempre que uma pessoa está sentada de lado (em uma cadeira), o Kinect não rastreará o esqueleto com precisão. Para ilustrar meu problema, adicionei 3 fotos da visão de profundidade do Kinect.
Como você pode ver, 2 de 3 medições funcionam "corretamente". Sempre que eu levanto minha perna, o Kinect interrompe o rastreamento do esqueleto corretamente. Alguém tem uma solução para este problema, ou isso é apenas uma limitação do Kinect?
Obrigado.
Atualização 1: oJointTrackingState-Enumeration
nessas juntas rastreadas mostradas na captura de tela 2 são marcadas comoInferred
, no entanto, a visão de profundidade está acompanhando meu corpo inteiro.
Atualização 2: Na captura de tela 2, estou tentando rastrear minha perna da frente, destacada como verde. Eu sei que a outra perna não é rastreada, mas isso não importa, eu acho.
Atualização 3: O código a seguir seleciona um esqueleto:
<code>private Skeleton StickySkeleton(Skeleton[] skeletons) { if (skeletons.Count<Skeleton>(skeleton => skeleton.TrackingId == _trackedSkeletonId) <= 0) { _trackedSkeletonId = -1; _skeleton = null; } if (_trackedSkeletonId == -1) { Skeleton foundSkeleton = skeletons.FirstOrDefault<Skeleton>(skeleton => skeleton.TrackingState == SkeletonTrackingState.Tracked); if (foundSkeleton != null) { _trackedSkeletonId = foundSkeleton.TrackingId; return foundSkeleton; } } return _skeleton; } </code>
Sempre que um esqueleto é rastreado, os dados serão usados para desenhar os pontos de junção e calcular o ângulo entre as juntas.
Atualização 4: Eu testei sentado em um 'bloco', muito mais simplificado do que uma cadeira. Infelizmente o Kinect ainda age da mesma forma.
Abaixo de 2 capturas de tela: