コード例 #1
0
        //Modeling transition patterns between events for temporal human action segmentation and classification
        public static List <int[]> extractKeyPose_Angular(Instance inst)
        {
            List <int[]>          list_keyPose    = new List <int[]>();
            List <UKI_DataDouble> list_dataAngles = new List <UKI_DataDouble>();
            List <string>         output_print    = new List <string>();

            foreach (UKI_DataRaw d in inst.getDataRaw(false))
            {
                UKI_DataDouble dataAngles = new UKI_DataDouble();
                dataAngles.id = d.id;
                dataAngles.data.Add(ThePostureCal.calAngle_3Points(d.Spine, d.ShoulderLeft, d.ElbowLeft));
                dataAngles.data.Add(ThePostureCal.calAngle_3Points(d.ShoulderLeft, d.ElbowLeft, d.WristLeft));
                dataAngles.data.Add(ThePostureCal.calAngle_3Points(d.Spine, d.ShoulderRight, d.ElbowRight));
                dataAngles.data.Add(ThePostureCal.calAngle_3Points(d.ShoulderRight, d.ElbowRight, d.WristRight));
                dataAngles.data.Add(ThePostureCal.calAngle_3Points(d.Spine, d.HipLeft, d.KneeLeft));
                dataAngles.data.Add(ThePostureCal.calAngle_3Points(d.HipLeft, d.KneeLeft, d.AnkleLeft));
                dataAngles.data.Add(ThePostureCal.calAngle_3Points(d.Spine, d.HipRight, d.KneeRight));
                dataAngles.data.Add(ThePostureCal.calAngle_3Points(d.HipLeft, d.KneeLeft, d.AnkleLeft));
                dataAngles.data.Add(ThePostureCal.calAngle_3Points(d.Head, d.ShoulderCenter, d.Spine));
            }
            if (path_saveFolder != "")
            {
                output_print.Add("id,ShouldL,ElbowL,ShouldR,ElbowR,HipL,KneeL,HipR,KneeR,Neck");
                output_print.AddRange(TheUKI.UKI_DataDouble_convertToListString(list_dataAngles));
                TheTool.exportCSV_orTXT(path_saveFolder + @"/" + inst.name + ".csv", output_print, false);
            }
            return(list_keyPose);
        }
コード例 #2
0
 public List <UKI_DataDouble> getDataNorm()
 {
     this.data_norm = new List <UKI_DataDouble>();
     foreach (UKI_DataRaw raw in getDataRaw(false))
     {
         UKI_DataDouble d = new UKI_DataDouble();
         d.id = raw.id;
         d.data.Add(TheTool.calNorm(raw.Head));
         d.data.Add(TheTool.calNorm(raw.ShoulderCenter));
         d.data.Add(TheTool.calNorm(raw.ShoulderLeft));
         d.data.Add(TheTool.calNorm(raw.ShoulderRight));
         d.data.Add(TheTool.calNorm(raw.ElbowLeft));
         d.data.Add(TheTool.calNorm(raw.ElbowRight));
         d.data.Add(TheTool.calNorm(raw.WristLeft));
         d.data.Add(TheTool.calNorm(raw.WristRight));
         d.data.Add(TheTool.calNorm(raw.HandLeft));
         d.data.Add(TheTool.calNorm(raw.HandRight));
         d.data.Add(TheTool.calNorm(raw.Spine));
         d.data.Add(TheTool.calNorm(raw.HipCenter));
         d.data.Add(TheTool.calNorm(raw.HipLeft));
         d.data.Add(TheTool.calNorm(raw.HipRight));
         d.data.Add(TheTool.calNorm(raw.KneeLeft));
         d.data.Add(TheTool.calNorm(raw.KneeRight));
         d.data.Add(TheTool.calNorm(raw.AnkleLeft));
         d.data.Add(TheTool.calNorm(raw.AnkleRight));
         d.data.Add(TheTool.calNorm(raw.FootLeft));
         d.data.Add(TheTool.calNorm(raw.FootRight));
         this.data_norm.Add(d);
     }
     return(this.data_norm);
 }