Exemple #1
0
 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;
 }
Exemple #2
0
        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;
 }