public Recognition(byte[] dat, BBaseContext context) { float[] f_data = new float[dat.Length]; for (int i = 0; i < dat.Length; ++i) { float buf = (float)dat[i]; f_data[i] = buf / 255.0f; } this.f_data = f_data; this.b_data = dat; baseContext = context; }
public int Run_For_File(string file, string model_path, int[] dimentions) { byte[] byte_im = b_data; using (BBaseContext db = new BBaseContext()) { var answer = db.Blobs.Where(p => p.File_Name == file).FirstOrDefault(); if (answer != null) { var im = answer.Image; if (im.SequenceEqual(byte_im)) { return(answer.Answer); } } } var session = new InferenceSession(model_path); var inputMeta = session.InputMetadata; var inputs = new List <NamedOnnxValue>(); foreach (var name in inputMeta.Keys) { Add_File(inputs, dimentions, name); } var results = session.Run(inputs); foreach (var result in results) { var arr = result.AsEnumerable <float>().ToArray(); var expected_cl = Most_Possible_Result(arr); using (BBaseContext db = new BBaseContext()) { db.Blobs.Add(new ImgBloB { Answer = expected_cl, File_Name = file, Image = byte_im }); db.SaveChanges(); } return(expected_cl); } return(-1); }
public RecognitionController(BBaseContext context) { this.db = context; }