static void Main(string[] args) { string directoryPath; if (args.Length == 0) { directoryPath = "..//..//s02170130/ImageNetSample"; } else { directoryPath = args[0]; } OnnxClassifier.OnnxClassifier onnxModel = new OnnxClassifier.OnnxClassifier(); ThreadClassification task_1 = new ThreadClassification(directoryPath, onnxModel, RecognitionCompletedHandler); Console.WriteLine("Press any key to stop..."); task_1.Run(); Console.ReadKey(true); task_1.Stopper(); }
public ClassificationVM() { Classes = new ObservableCollection <Tuple <string, int> >(); Result = new ObservableCollection <ResultClassification>(); SelectedResult = new ObservableCollection <ResultClassification>(); onnxModel = new OnnxClassifier.OnnxClassifier(); }
public ThreadClassification(ConcurrentQueue <string> pathImages, OnnxClassifier onnxModel, Action <ResultClassification> handler) { Model = onnxModel; ImageRecognitionCompleted = handler; PathImages = pathImages; }
public ThreadClassification(string currentDirectory, OnnxClassifier onnxModel, Action <ResultClassification> handler) { Model = onnxModel; ImageRecognitionCompleted = handler; PathImages = new ConcurrentQueue <string>(Directory.GetFiles(currentDirectory).Where(s => s.EndsWith(".JPEG") || s.EndsWith(".jpg"))); }
public ClassificationVM() { Classes = new ObservableCollection <Tuple <string, int> >(); Result = new ObservableCollection <ResultClassification>(); SelectedResult = new ObservableCollection <RecognitionImage>(); stat = new ObservableCollection <Tuple <int, int> >(); db = new ApplicationContext(); onnxModel = new OnnxClassifier.OnnxClassifier(); }
public ResultClassification PredictModel(string imageFilePath) { DenseTensor <float> TensorImage = OnnxClassifier.PreprocImage(imageFilePath); var inputs = new List <NamedOnnxValue> { NamedOnnxValue.CreateFromTensor(session.InputMetadata.Keys.First(), TensorImage) }; using IDisposableReadOnlyCollection <DisposableNamedOnnxValue> results = session.Run(inputs); var output = results.First().AsEnumerable <float>().ToArray(); float sum = output.Sum(x => (float)Math.Exp(x)); var softmax = output.Select(x => (float)Math.Exp(x) / sum).ToList(); string cl = LabelMap.Labels[softmax.IndexOf(softmax.Max())]; ResultClassification result = new ResultClassification(imageFilePath, cl, softmax.Max()); return(result); }
public ResultClassification Post([FromBody] ImageString obj) { ResultClassification result; OnnxClassifier.OnnxClassifier onnxModel; using (var db = new ApplicationContext()) { result = db.FindInDataBase(obj); if (result != null) { return(result); } onnxModel = new OnnxClassifier.OnnxClassifier(); result = onnxModel.PredictModel(obj.path); obj.path = result._PathImage; obj.Probability = result._Probability; obj.ClassImage = result._ClassImage; db.AddToDataBase(obj); } return(result); }