Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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");
        }