protected void LoadMeleeClassifier() { foreach (var option in new string[] { OFFENSE, DEFENSE }) { try { ClassifierTree cTree; string contents; AssetManager assets = this.Assets; var filename = $"{option}.{Classifier.FileExtension}"; var filepath = $"{GetExternalFilesDir(null)}/{filename}"; using (StreamReader sr = new StreamReader(assets.Open(filename))) { contents = sr.ReadToEnd(); cTree = Serializer.Deserialize <ClassifierTree>(contents); if (cTree != null) { Log.Debug("Loading classifier", $"Loaded our {option} classifier tree (from asset file)."); } } if (cTree == null) { using (var streamReader = new StreamReader(filepath)) { contents = streamReader.ReadToEnd(); Log.Debug("Loading classifier", $"Loading our {option} classifier tree, it currently contains: \n\n{contents}\n"); cTree = Serializer.Deserialize <ClassifierTree>(contents); } } if (cTree == null) { throw new Exception($"Classifier deserialization failed - filename {filepath}"); } CueClassifiers[option] = cTree.MainClassifier; Dataset = new DataSet <DKS> { Name = cTree.MainClassifier.MatchingDatasetName }; foreach (var gClass in cTree.GestureClasses) { Dataset.AddClass(gClass); //if (cTree.CueClassifiers.ContainsKey(gClass.className)) CueClassifiers.Add(gClass.className, cTree.CueClassifiers[gClass.className]); } SelectedGestureClass = Dataset.Classes.FirstOrDefault(); } catch (Exception ex) { Log.Debug("MachineLearning|Load Classifier", ex.ToString()); Speech.SayAllOf("Cannot launch melee - no melee classifier found.").Wait(); Finish(); } } }
protected void LoadHackingClassifier() { foreach (var option in new string[] { HACKING }) // Might want to add more classifiers later on. { try { ClassifierTree cTree = null; string contents; AssetManager assets = this.Assets; var filename = $"{option}.{Classifier.FileExtension}"; var filepath = $"{GetExternalFilesDir(null)}/{filename}"; try { using (var streamReader = new StreamReader(filepath)) { contents = streamReader.ReadToEnd(); cTree = Serializer.Deserialize <ClassifierTree>(contents); if (cTree != null) { Log.Debug("Loading classifier", $"Loading our {option} classifier tree (from phone-specific file)"); } } } catch (Exception) { cTree = null; } if (cTree == null) { using (StreamReader sr = new StreamReader(assets.Open(filename))) { contents = sr.ReadToEnd(); cTree = Serializer.Deserialize <ClassifierTree>(contents); if (cTree != null) { Log.Debug("Loading classifier", $"Loaded our {option} classifier tree (from asset file)."); } } } if (cTree == null) { throw new Exception($"Classifier deserialization failed - filename {filepath}"); } CueClassifiers[option] = cTree.MainClassifier; if (option == HACKING) { Classifier = cTree.MainClassifier; } Dataset = new DataSet <DKS> { Name = cTree.MainClassifier.MatchingDatasetName }; foreach (var gClass in cTree.GestureClasses) { Dataset.AddClass(gClass); } SelectedGestureClass = Dataset.Classes.FirstOrDefault(); } catch (Exception ex) { Log.Debug("MachineLearning|Load Classifier", ex.ToString()); Speech.Say("Cannot launch hacking - no hacking classifier found."); Finish(); } } }