// Use this for initialization void Start() { if (!stream.IsOpen) { stream.Open(); //Open the Serial Stream. Debug.Log("Cactus Controller Serial Port opened."); if (EnableAcceleration) { PollAcceleration(); } } // Load Gestures string[] gestureNames = { "universal" }; foreach (string gestureName in gestureNames) { string fileName = "Assets\\Gestures\\gesture_" + gestureName + ".xml"; // Application.persistentDataPath+"/gesture_"+gestureName+".xml"; Debug.Log("Loading from: " + fileName); gestureLibrary[gestureName] = new GestureModel(); gestureLibrary[gestureName].load(fileName); } ResetLEDs(); }
private void SendGesture(int gestureNumber) { gestureButton.GetComponent <Image> ().sprite = gestureImage; GestureModel gesture = new GestureModel(gestureNumber); SystemFirebaseDBController.Instance.SetParam(MyConst.RPC_DATA_GESTURE, gesture); }
public void OnNotify(Firebase.Database.DataSnapshot dataSnapShot) { try { Dictionary <string, System.Object> rpcReceive = (Dictionary <string, System.Object>)dataSnapShot.Value; bool userHome = (bool)rpcReceive [MyConst.RPC_DATA_USERHOME]; Dictionary <string, System.Object> param = (Dictionary <string, System.Object>)rpcReceive [MyConst.RPC_DATA_PARAM]; if (param.ContainsKey(MyConst.RPC_DATA_GESTURE)) { GestureModel gesture = JsonUtility.FromJson <GestureModel> (param [MyConst.RPC_DATA_GESTURE].ToString()); if (userHome.Equals(!GameManager.isHost)) { SetEnemyGesture(gesture.gestureNumber); } } } catch (System.Exception e) { //do something with exception in future } }
public void SetGestureParam(GestureModel gesture) { SetParam(gesture.ToDictionary()); }
public GestureEventArgs(GestureModel gesture, double probability) { Gesture = gesture; Probability = probability; }
public LinkedList <ResultRow> validate(Dictionary <string, ICollection <ICollection <Touch> > > dataSets, string gesture, int nSubsets) { var results = new LinkedList <ResultRow>(); foreach (var entry in dataSets) { var trueUser = entry.Key; var trueUserData = entry.Value; var subsetSize = trueUserData.Count / nSubsets; var subsets = new LinkedList <ICollection <Touch> > [nSubsets]; var enu = trueUserData.GetEnumerator(); //fill subsets for (int i = 0; i < nSubsets; i++) { subsets[i] = new LinkedList <ICollection <Touch> >(); for (int j = 0; j < subsetSize; j++) { enu.MoveNext(); subsets[i].AddLast(enu.Current); } } int curSubset = 1; foreach (var testSet in subsets) { //build trainSet var trainSet = new LinkedList <ICollection <Touch> >(); foreach (var subSet in subsets) { if (subSet != testSet) { foreach (var trace in subSet) { trainSet.AddLast(trace); } } } //use trainSet to train the model var model = new GestureModel(trainSet); //true positives, false negatives, false positives and true negatives int TP = 0; int FN = 0; int FP = 0; int TN = 0; //calc estimated FRR foreach (var testTrace in testSet) { if (model.evaluate(testTrace, true) == 0) { FN++; } else { TP++; } } //double FRR = (double)nRejections / n; //calc estimated FAR foreach (var entry2 in dataSets) { var falseUser = entry2.Key; var falseUserData = entry2.Value; if (trueUser == falseUser) { continue; } foreach (var falseUserTrace in falseUserData) { if (model.evaluate(falseUserTrace, true) == 0) { TN++; } else { FP++; } } } //save result var result = new ResultRow(); result.gesture = gesture; result.user = trueUser; result.subset = curSubset++; result.FN = FN; result.FP = FP; result.TP = TP; result.TN = TN; results.AddLast(result); } } return(results); }
public MaximaTrackingSystem(TrackingSystem trackingSystem, int gestureId) { this._trackingSystem = trackingSystem; GestureModel = new GestureModel(gestureId); }