Ejemplo n.º 1
0
        public IActionResult PredictCharacter(string data)
        {
            OCRCharacter charGuess = createCharacterFromBytes(data);
            int          guess     = MulticlassClassifier.predictChar(charGuess, ML_TRAINED_MODEL);

            return(Json(guess.ToString()));
        }
Ejemplo n.º 2
0
        private static string runNearesNeighbour(IDistance distCalc, string predictTest)
        {
            List <OCRCharacter> charactersTrain = new List <OCRCharacter>();

            OCRCharacter charGuess = createCharacterFromBytes(predictTest);

            ///List<OCRCharacter> charactersTest = new List<OCRCharacter>();
            ///addCharacter(charactersTest, predictTest, false);

            try
            {
                // Load the training file points
                loadDataFromFile(charactersTrain, DATASET_FILE_1, DATASET_FILE_CONTENT_1);

                // Load the training file points from dataset 2 as well.
                loadDataFromFile(charactersTrain, DATASET_FILE_2, DATASET_FILE_CONTENT_2);

                // Predict the number
                int answer = NearestNeighbourClassifier.processNNAndPredict(charactersTrain, charGuess, distCalc);

                return(answer.ToString());
            }
            catch (Exception e)
            {
                return("ERROR " + e.Message + " FILE: " + DATASET_FILE_1);
            }
        }
Ejemplo n.º 3
0
        private void TestSlice(string[] slice, string expectation)
        {
            var    character = new OCRCharacter(slice);
            string result    = OCRCharInterpreter.InterpreteChar(character);

            Assert.AreEqual(expectation, result);
        }
Ejemplo n.º 4
0
        public IActionResult PredictCharacterMLP(string data)
        {
            if (mlp == null)
            {
                runMLP(-1);
            }

            OCRCharacter charGuess = createCharacterFromBytes(data);
            int          guess     = mlp.recallNetworkGuess(charGuess);

            return(Json(guess.ToString()));
        }
Ejemplo n.º 5
0
        public IActionResult PredictCharacterKNN(string data)
        {
            List <OCRCharacter> charactersTrain = new List <OCRCharacter>();

            List <OCRCharacter> charactersTest = new List <OCRCharacter>();

            // Load the training file points
            loadDataFromFile(charactersTrain, DATASET_FILE_1, DATASET_FILE_CONTENT_1);

            // Load the training file points from dataset 2 as well.
            loadDataFromFile(charactersTrain, DATASET_FILE_2, DATASET_FILE_CONTENT_2);

            // Load the training file points from dataset 2 as well.
            ///loadDataFromFile(charactersTest, DATASET_FILE_2, DATASET_FILE_CONTENT_2);

            bool useDistanceScoring = true;

            OCRCharacter charGuess = createCharacterFromBytes(data);
            int          guess     = KNNClassifier.processKNNAndPredict(charactersTrain, charGuess, new EuclideanDistance(), 4, useDistanceScoring);

            return(Json(guess.ToString()));
        }
Ejemplo n.º 6
0
        public static int predictChar(OCRCharacter charTest, string fileMLTrainedModel)
        {
            ITransformer trainedModel = mlContext.Model.Load(fileMLTrainedModel, out var modelInputSchema);
            // Create prediction engine related to the loaded trained model
            var predEngine = mlContext.Model.CreatePredictionEngine <InputData, OutPutData>(trainedModel);

            var resultprediction1 = predEngine.Predict(new InputData()
            {
                Number = 1, PixelValues = charTest.getPointsFloatArr()
            });

            //Console.WriteLine($"Actual: 1     Predicted probability:       zero:  {resultprediction1.Score[0]:0.####}");
            //Console.WriteLine($"                                           One :  {resultprediction1.Score[1]:0.####}");
            //Console.WriteLine($"                                           two:   {resultprediction1.Score[2]:0.####}");
            //Console.WriteLine($"                                           three: {resultprediction1.Score[3]:0.####}");
            //Console.WriteLine($"                                           four:  {resultprediction1.Score[4]:0.####}");
            //Console.WriteLine($"                                           five:  {resultprediction1.Score[5]:0.####}");
            //Console.WriteLine($"                                           six:   {resultprediction1.Score[6]:0.####}");
            //Console.WriteLine($"                                           seven: {resultprediction1.Score[7]:0.####}");
            //Console.WriteLine($"                                           eight: {resultprediction1.Score[8]:0.####}");
            //Console.WriteLine($"                                           nine:  {resultprediction1.Score[9]:0.####}");

            int   ans    = -1;
            float ansVal = 0;

            // Chose the one cahracter with the highest likelihood score
            for (int i = 0; i < 10; i++)
            {
                if (resultprediction1.Score[i] > ansVal)
                {
                    ansVal = resultprediction1.Score[i];
                    ans    = i;
                }
            }
            return(ans);
        }