私はkinectセンサーで落下を検出するためのアルゴリズムを書いています。今、私はジョイントヘッドについて詳しく説明します。このビューで床からの距離を計算します。
public void verificaCaduta(SkeletonFrame skeletonFrame, KinectDati_Joints joints)
{
if (skeletonFrame != null && joints != null)
{
float A = skeletonFrame.FloorClipPlane.Item1;
float B = skeletonFrame.FloorClipPlane.Item2;
float C = skeletonFrame.FloorClipPlane.Item3;
float D = skeletonFrame.FloorClipPlane.Item4;
//dovrei calcolare la distanza dal pavimento
//joint head
float addendo1 = A * joints.head.Position.X;
float addendo2 = B * joints.head.Position.Y;
float addendo3 = C * joints.head.Position.Z;
float addendo1_d = A * A;
float addendo2_d = B * B;
float addendo3_d = C * C;
float numeratore = addendo1 + addendo2 + addendo3 + D;
float denominatore = addendo1_d + addendo2_d + addendo3_d;
float distanza = numeratore / (float)System.Math.Sqrt(denominatore);
// Console.WriteLine("probabile caduta " + distanza);
if (distanza <= 0.60)
{
Console.WriteLine("fall detection ?");
}
}
}
床からの距離が 0.6 i より前の場合、落下を検出します。しかし今、私はアルゴリズムを複雑にします。全JOINTの床からの距離を計算し、情報を組み合わせます。
私たちは私を助けることができますか????
よろしくお願いします