用Kinect骨骼关节进行静态姿势识别的最佳算法是什么? [英] What is the best algorithm for static posture recognition with Kinect skeletal joints?

查看:364
本文介绍了用Kinect骨骼关节进行静态姿势识别的最佳算法是什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您知道任何可靠的静态姿势识别方法吗?

我尝试以给定的间隔Xmax,Xmin,Ymax,Ymin,Zmax,Zmin保存每个关节位置,然后尝试查看20个关节是否在给定的间隔内,但是效果不佳.

此后,我尝试使用相对于父关节的相对坐标,但是再次...它不起作用...

我不知道该怎么做...有人这样做吗?这里我仅指静态姿势,而不是动态姿势.

解决方案

您可以尝试定义两个姿势之间的距离.

首先,您应该标准化"每个姿势,以便获得相对位置.您应该选择一个基本关节"(例如Spine或Head),然后从所有关节坐标中减去基本关节坐标.

示例:

在上图中,您可以将关节编号2作为基础关节.因此,当对所有关节进行归一化时,基础关节将始终具有等于(0,0,0)的相对坐标.

然后,您可以定义两个姿势之间的距离.假设这些姿势是 Posture A Posture B .在我的一个项目中,我使用了以下内容:

在上面的公式中,姿势 A [Joint i ] 表示姿势的第i个关节一个 ,由关节数关节组成. distance3D 是指经典的三维欧几里得距离

然后,您应该定义一个恒定的阈值距离(将其命名为 T D ).

现在,如果出现以下情况,您可以说两个姿势是相等的"(或更精确地说,足够相似,可以认为是相等的)

T D >姿势距离

我不知道这是否是最好的方法,但就我而言,它工作得很好(并且很容易实现).

Do you know any robust way of recognizing a static posture?

I have tried saving every joint position with a given interval Xmax, Xmin, Ymax, Ymin, Zmax, Zmin and then try to see if 20 joints are within the given intervals, but it does not work well at all.

After this I have tried with relative coordinates to the parent joint, but again... it does not work...

I don't know how to do this... Anyone who did this? I refer here only to static postures, not dynamic ones.

解决方案

You can try by defining a distance between two postures.

First of all, you should "normalize" every postures, in order to have a relative position. You should chose a "base joint" (for instance, Spine or Head), and then subtract the base joint coordinates from all the joints coordinates.

Example:

In the above image, you can consider the joint number 2 as a base joint. So when you normalize all the joints, the base joint will have always relative coordinates equal to (0, 0, 0).

Then, you can define a distance between two postures. Let's assume that those postures are PostureA and PostureB. In one of my projects, I have used the following:

In the above formula, PostureA[Jointi] indicate the i-th joint of the PostureA, which is made by Number of joints Joints. The distance3D refers to a classical three-dimensional Euclidean distance.

Then, you should define a constant threshold distance (let's name it as TD).

Now you can say that two postures are "equal" (or, more precisely, similar enough to be considered equivalent) if:

TD > PostureDistance

I don't know if this is the best method, but in my case it worked quite well (and it is simple to implement).

这篇关于用Kinect骨骼关节进行静态姿势识别的最佳算法是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆