//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); }
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); }