From 443a7ee88eb6beab2fd0e329541f5e3c2e776d34 Mon Sep 17 00:00:00 2001 From: Emiliana <38952746+emilianavt@users.noreply.github.com> Date: Mon, 10 Feb 2020 21:46:01 +0100 Subject: [PATCH] The number of samples for expression learning is now 1000 per expression, because gathering the maximum number of samples is no longer enforced. --- Unity/OpenSeeExpression.cs | 10 +++++----- Unity/Plugins/SVMModel.cs | 4 ++-- Unity/Plugins/SVMModel.dll | Bin 76800 -> 76800 bytes 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Unity/OpenSeeExpression.cs b/Unity/OpenSeeExpression.cs index 2cef9ef..83ca321 100644 --- a/Unity/OpenSeeExpression.cs +++ b/Unity/OpenSeeExpression.cs @@ -41,7 +41,7 @@ public class OpenSeeExpression : MonoBehaviour [Tooltip("When enabled, the expression data will be saved to the specified filename and this flag is set back to false.")] public bool save = false; [Header("Information")] - [Tooltip("This is the of expressions for which calibration data was collected. The maximum number is 25.")] + [Tooltip("This is the of expressions for which calibration data was collected. The maximum number is 10.")] public int expressionNumber = 0; [Tooltip("This is the percentage of necessary training data collected for the current expression.")] public float percentRecorded = 0.0f; @@ -99,7 +99,7 @@ public class OpenSeeExpression : MonoBehaviour private Dictionary> expressions; private SVMModel model = null; private string[] classLabels = null; - private int maxSamples = 400; // Allows 25 expressions without exceeding 10000 rows in total for SVM training, which is a commonly seen upper limit. + private int maxSamples = 1000; // Allows 10 expressions without exceeding 10000 rows in total for SVM training, which is a commonly seen upper limit. // rightEyeOpen, leftEyeOpen, translation, rawQuaternion, rawEuler, confidence, points/(width, height), points3D private int cols = 1 + 1 + 3 + 4 + 3 + /*66 + 2 * 66 +*/ 3 * 66; private double lastCapture = 0.0; @@ -197,8 +197,8 @@ public class OpenSeeExpression : MonoBehaviour } } int classes = keys.Count; - if (classes < 2 || classes > 25) { - Debug.Log("[Training error] The number of expressions that can be used for training is " + classes + ", which is either below 2 or higher than 25."); + if (classes < 2 || classes > 10) { + Debug.Log("[Training error] The number of expressions that can be used for training is " + classes + ", which is either below 2 or higher than 10."); return false; } keys.Sort(); @@ -301,7 +301,7 @@ public class OpenSeeExpression : MonoBehaviour recordingSkip = 1; if (calibrationExpression == "") return false; - if (expressions.ContainsKey(calibrationExpression) || expressions.Keys.Count < 25) { + if (expressions.ContainsKey(calibrationExpression) || expressions.Keys.Count < 10) { OpenSee.OpenSeeData[] openSeeData = openSee.trackingData; if (openSeeData == null) return false; diff --git a/Unity/Plugins/SVMModel.cs b/Unity/Plugins/SVMModel.cs index 944cc9d..7ad3ad3 100644 --- a/Unity/Plugins/SVMModel.cs +++ b/Unity/Plugins/SVMModel.cs @@ -12,7 +12,7 @@ namespace OpenSee { public class SVMModel { #region DllImport [DllImport("SVMModel", CallingConvention = CallingConvention.Cdecl)] - private static extern System.IntPtr trainModel(float[] features, float[] labels, int rows, int cols); + private static extern System.IntPtr trainModel(float[] features, float[] labels, int rows, int cols, float C); [DllImport("SVMModel", CallingConvention = CallingConvention.Cdecl)] private static extern void predict(System.IntPtr model, float[] features, [Out] float[] predictions, int rows); @@ -143,7 +143,7 @@ public class SVMModel { maxClasses = max + 1; this.cols = cols; - model = trainModel(features, labels, rows, cols); + model = trainModel(features, labels, rows, cols, 32f); haveModel = true; return true; diff --git a/Unity/Plugins/SVMModel.dll b/Unity/Plugins/SVMModel.dll index b78b6298c978db4b906d6bc31c79484d6462eed7..831c85c495709c682ba97a5e320dff6b1c599b05 100644 GIT binary patch delta 5647 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 delta 5686 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 T`|#Ec