I am developing a game using Kinect with Windows Kinect SDK 1.5. The Kinect camera is put on the desk and I am standing sideways towards Kinect.
I want to display skeleton of the player, like figure 1 and 2.
Figure 1
Figure 2
These need the position of joint detected by Kinect Skeleton Stream. But in most case, some joints hidden behind cannot be detected by Kinect when the player is standing sideways. As you see in figure 1, when I overlap my arms, I don’t want the joints of the hidden arm to display on the screen. I just want to display the joints in my left arm. The other situation is that, when I put my arms in normal ways, as you see in figure 2, I want to display both of them.
My idea is to use the position information and tracked state of joints to decide whether one arm is behind another part of your body (There are many kinds of overlap, arm-arm, arm-body, arm-head, -arm to leg). But I don’t think it is enough just do not display joints which are not tracked by Kinect. Maybe we can detect whether two arms overlap or not by calculating distance between the two wrist, the two elbows and the two shoulders. If the distance between the two wrists and the two elbows are all within in the threshold, there is overlap of both arms and we can just display the joints of the tracked arm skeleton.
But there is another problem that there are many ways for an arm to overlap with anther parts of body, and so does legs. So this solution needs so many threshold and checks before display. Besides, I am not sure about the effects of this solution.
Do you guys have cooler ideas to settle this problem?