public IActionResult PredictCharacter(string data) { OCRCharacter charGuess = createCharacterFromBytes(data); int guess = MulticlassClassifier.predictChar(charGuess, ML_TRAINED_MODEL); return(Json(guess.ToString())); }
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); } }
private void TestSlice(string[] slice, string expectation) { var character = new OCRCharacter(slice); string result = OCRCharInterpreter.InterpreteChar(character); Assert.AreEqual(expectation, result); }
public IActionResult PredictCharacterMLP(string data) { if (mlp == null) { runMLP(-1); } OCRCharacter charGuess = createCharacterFromBytes(data); int guess = mlp.recallNetworkGuess(charGuess); return(Json(guess.ToString())); }
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())); }
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); }