Пример #1
0
        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();
                }
            }
        }
Пример #2
0
        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();
                }
            }
        }