Esempio n. 1
0
        public DTWExperiment(bool includeTime, string setName, bool crossValidate, int nTrainingOrSubsets, double pointDistance = 0)
        {
            this.includeTime        = includeTime;
            this.dataSourceName     = setName;
            this.nTrainingOrSubsets = nTrainingOrSubsets;
            this.crossValidate      = crossValidate;
            this.pointDistance      = pointDistance;

            ISubsetCreator subsetCreator = crossValidate ?
                                           new CrossvalidationSubsetCreator(nTrainingOrSubsets) :
                                           (ISubsetCreator) new SimpleSplitSubsetCreator(nTrainingOrSubsets);

            var traceProcessor = (pointDistance > 0) ? new DynamicAreaPointSampling(pointDistance) : null;

            GestureDataSet allGestures = DataSets.getTrajectoryDataSet(setName);

            if (traceProcessor != null)
            {
                allGestures = traceProcessor.processAllGestures(allGestures);
            }

            subsetCreator.createSubsets(allGestures);
            trainingSubSets = subsetCreator.getTrainingSubsets();
            testSubSets     = subsetCreator.getTestSubsets();
        }
Esempio n. 2
0
        public void execute()
        {
            var            dtwRec        = new DTWRecognitionSystem(includeTime);
            ISubsetCreator subsetCreator = crossValidate ?
                                           new CrossvalidationSubsetCreator(nTrainingOrSubsets) :
                                           (ISubsetCreator) new SimpleSplitSubsetCreator(nTrainingOrSubsets);

            var tracePreprocessor     = (pointDistance > 0) ? new DynamicAreaPointSampling(pointDistance) : null;
            var recognitionExperiment = new RecognitionExperiment(dtwRec, subsetCreator, tracePreprocessor, dataSourceName);

            var results = recognitionExperiment.execute();

            var    txtTime  = (includeTime) ? "withTime" : "withoutTime";
            string fileName = $"GestureRecognition_DTW{txtTime}_{dataSourceName}_5trains.csv";

            GestureRecognitionResults.saveResultsToFile("..\\..\\ExperimentResults\\" + fileName, results);
        }
Esempio n. 3
0
        public DollarExperiment(string setName, bool crossValidate, int nTrainingOrSubsets)
        {
            this.dataSourceName     = setName;
            this.nTrainingOrSubsets = nTrainingOrSubsets;
            this.crossValidate      = crossValidate;

            ISubsetCreator subsetCreator = crossValidate ?
                                           new CrossvalidationSubsetCreator(nTrainingOrSubsets) :
                                           (ISubsetCreator) new SimpleSplitSubsetCreator(nTrainingOrSubsets);


            GestureDataSet allGestures = DataSets.getTrajectoryDataSet(setName);

            subsetCreator.createSubsets(allGestures);
            trainingSubSets = subsetCreator.getTrainingSubsets();
            testSubSets     = subsetCreator.getTestSubsets();
        }
Esempio n. 4
0
        public RecognitionExperiment(IRecognitionSystem recognizer, ISubsetCreator subsetCreator, ITraceDataProcessor traceProcessor, string setName)
        {
            gestureSetName      = setName;
            this.recognizer     = recognizer;
            this.subsetCreator  = subsetCreator;
            this.traceProcessor = traceProcessor;

            GestureDataSet allGestures = DataSets.getTrajectoryDataSet(setName);

            if (traceProcessor != null)
            {
                allGestures = traceProcessor.processAllGestures(allGestures);
            }

            subsetCreator.createSubsets(allGestures);
            trainingSubSets = subsetCreator.getTrainingSubsets();
            testSubSets     = subsetCreator.getTestSubsets();
        }
Esempio n. 5
0
        public void execute()
        {
            var results = new LinkedList <GestureRecognitionResults.CrossValidationResult>();

            foreach (var config in configs)
            {
                var            chnmmRec      = new CHnMMRecognitionSystem(config);
                ISubsetCreator subsetCreator = crossValidate ?
                                               new CrossvalidationSubsetCreator(nTrainingOrSubsets) :
                                               (ISubsetCreator) new SimpleSplitSubsetCreator(nTrainingOrSubsets);

                var recognitionExperiment = new RecognitionExperiment(chnmmRec, subsetCreator, null, dataSourceName);

                results.AddLast(new GestureRecognitionResults.CrossValidationResult(config, recognitionExperiment.execute().ToArray(), -1));
            }
            var    txt      = (crossValidate) ? $"{nTrainingOrSubsets}subsets" : $"{nTrainingOrSubsets}trainingtraces";
            string fileName = $"GestureRecognition_CHnMM_{dataSourceName}_{txt}.csv";

            GestureRecognitionResults.saveResultsToFile("..\\..\\ExperimentResults\\" + fileName, results.ToArray());
        }
Esempio n. 6
0
        public CHnMMRecognitionExperiment(string setName, bool crossValidate, int nTrainingOrSubsets, IEnumerable <Configuration> configs, ITraceDataProcessor traceProcessor = null)
        {
            this.dataSourceName     = setName;
            this.nTrainingOrSubsets = nTrainingOrSubsets;
            this.crossValidate      = crossValidate;
            this.configs            = configs;

            ISubsetCreator subsetCreator = crossValidate ?
                                           new CrossvalidationSubsetCreator(nTrainingOrSubsets) :
                                           (ISubsetCreator) new SimpleSplitSubsetCreator(nTrainingOrSubsets);

            GestureDataSet allGestures = DataSets.getTrajectoryDataSet(setName);

            if (traceProcessor != null)
            {
                allGestures = traceProcessor.processAllGestures(allGestures);
            }

            subsetCreator.createSubsets(allGestures);
            trainingSubSets = subsetCreator.getTrainingSubsets();
            testSubSets     = subsetCreator.getTestSubsets();
        }