public List <CubicBoundingBox> DetectFromFiles(IEnumerable <string> imagePaths, string path) { IEnumerable <ImageNetData> images = ImageNetData.ReadFromFiles(imagePaths); IDataView imageDataView = mlContext.Data.LoadFromEnumerable(images); var modelScorer = new OnnxModelScorer(path, onnxPath, mlContext); var probabilities = modelScorer.Score(imageDataView); OutputParser outputParser = new OutputParser(probabilities, 13, 5); var boxes = outputParser.BoundingBoxes; return(boxes); }
public static void Run(string[] args) { var assetsRelativePath = @"../../../../Assets"; string assetsPath = GetAbsolutePath(assetsRelativePath); var modelFilePath = Path.Combine(assetsPath, "OnnxModel", "MultiObjectDetectionModel.onnx"); var imagesFolder = Path.Combine(assetsPath, "images"); var outputFolder = Path.Combine(assetsPath, "images", "output"); MLContext mlContext = new MLContext(); IEnumerable <ImageNetData> images = ImageNetData.ReadFromFile(imagesFolder); IDataView imageDataView = mlContext.Data.LoadFromEnumerable(images); var modelScorer = new OnnxModelScorer(imagesFolder, modelFilePath, mlContext); var probabilities = modelScorer.Score(imageDataView); OutputParser outputParser = new OutputParser(probabilities, 13, 5); var boxes = outputParser.BoundingBoxes; DrawBoundingBox(Path.Combine(imagesFolder, "000005.jpg"), null, "fuckoff.jpg", boxes); }