public GestureModel(IEnumerable <ICollection <Touch> > userTraces) { models = new HiddenModel[activeFeatures.Length]; var modelCreator = new SimpleMultiplePathsModelCreator(); //calc features foreach trace foreach (var trace in userTraces) { featureTraces.Add(new TraceFeatures(trace)); } int iModel = 0; foreach (var feature in activeFeatures) { var symbolTracesByFeature = new LinkedList <ICollection <Observation> >(); var symbolGenerator = new ExtremaSymbolGenerator(feature, true); foreach (var featureTrace in featureTraces) { var symbolTraces = symbolGenerator.generateSymbolTrace(featureTrace); symbolTracesByFeature.AddLast(symbolTraces); } models[iModel++] = modelCreator.createModel(symbolTracesByFeature); } }
static void Main(string[] args) { //Shaik_Circle = 54 //Shaik_Square = 55 /* * var tracesShaikCircle = SymbolGenerator.getTraces(54,7); * var tracesShaikSquare = SymbolGenerator.getTraces(55, 7); * var tracesUserCircle = SymbolGenerator.getTraces(134, 7); * * Model model = ModelCreator.createGridModel(tracesShaikCircle); * * model.saveToFile("C:\\test.model"); * * Model reconstructedModel = Model.readFromFile("C:\\test.model"); * * foreach (var t in tracesShaikCircle) * { * double res = model.evaluate(t); * Console.WriteLine(res); * } */ //var fg = new XFeatureGenerator(); //var generator = new ExtremaSymbolGenerator(); //var creator = new SimpleModelCreator(); //var squareTraces = readUserSymbolTraces("OwnForm_1Finger", generator); //var model = creator.createModel(squareTraces.First().Value); //Console.WriteLine(model.evaluate(squareTraces.First().Value.First())); int nSubsets = 5; //var generator = new DirectionSymbolGenerator(); var creator = new SimpleMultiplePathsModelCreator(); var circleTraces = readUserSymbolTraces("Circle_1Finger"); var squareTraces = readUserSymbolTraces("Square_1Finger"); var ownFormTraces = readUserSymbolTraces("OwnForm_1Finger"); var crossValidator = new CrossValidator(); ////saveSymbolTracesToDatabase(); var resCircle = crossValidator.validate(circleTraces, "Circle_1Finger", nSubsets); var resSquare = crossValidator.validate(squareTraces, "Square_1Finger", nSubsets); var resOwnForm = crossValidator.validate(ownFormTraces, "OwnForm_1Finger", nSubsets); var resAll = resCircle.Concat(resSquare).Concat(resOwnForm); saveResultsToFile(@"F:\Dropbox\LfS\Code\GestureRecognitionTests\crossValidation_Extrema.csv", resAll);//resAll); ////DBtoExcel(@"D:\Dropbox\LfS\Data\Multitouch_Userstudy\Traces.csv"); }