public async Task <string> PredictImage(string url) { try { CustomVisionPredictionClient client = new CustomVisionPredictionClient() { ApiKey = predictionKey, Endpoint = endpoint }; var result = await client.PredictImageUrlAsync(projectId, new ImageUrl(url), iterationId : iterationId); if (result != null) { return(result.Predictions.OrderByDescending(p => p.Probability).FirstOrDefault().TagName); } else { return(null); } } catch { return(null); } }
public async Task <IActionResult> Recognize(string photoId) { var photoUrl = _imageStorageService.UriFor(photoId); ImageUrl imgUrl = new ImageUrl { Url = photoUrl }; RecognizeViewModel recognizeViewModel = new RecognizeViewModel() { PhotoURL = photoUrl, ImagePrediction = await endpoint.PredictImageUrlAsync(projectID, imgUrl) }; //// //recognize from current default project //var defaultProject = _context.DefaultProjectHistories.OrderByDescending(x => x.SettingTime).FirstOrDefault(); //Guid projectPredictionID; //if (defaultProject != null) // projectPredictionID = defaultProject.MyProjectId; //else // projectPredictionID = projectID; //RecognizeViewModel recognizeViewModel = new RecognizeViewModel() //{ // PhotoURL = photoUrl, // ImagePrediction = await endpoint.PredictImageUrlAsync(projectPredictionID, imgUrl) //}; //// //RecognizeViewModel recognizeViewModel = new RecognizeViewModel() //{ // PhotoURL = photoUrl, // ImagePrediction = await endpoint.PredictImageUrlAsync(projectID, imgUrl) //}; //RecognizeViewModel recognizeViewModel; //var proj = _context.DefaultProjectHistories.OrderByDescending(x => x.SettingTime).FirstOrDefault(); //if (proj != null) //{ // recognizeViewModel = new RecognizeViewModel() // { // PhotoURL = photoUrl, // ImagePrediction = await endpoint.PredictImageUrlAsync(proj.MyProjectId, imgUrl) // }; //} //else //{ // recognizeViewModel = new RecognizeViewModel() // { // PhotoURL = photoUrl, // ImagePrediction = await endpoint.PredictImageUrlAsync(projectID, imgUrl) // }; //} return(View(recognizeViewModel)); }
public async Task <List <PredictionModel> > PredictionImages(string url) { ImageUrl imgUrl = new ImageUrl(); imgUrl.Url = url; var predictions = new List <PredictionModel>(); var resultImageUrl = await endpoint.PredictImageUrlAsync(Guid.Parse("cbfa66a3-9815-47d6-a389-7438e468ac15"), imgUrl); foreach (var item in resultImageUrl.Predictions.OrderBy(x => x.Probability)) { var resultPredction = new PredictionModel(Math.Round(item.Probability * 100), item.TagId, item.TagName, item.BoundingBox); if (resultPredction.Probability > 70) { resultPredction.BoundingBox.Top = Convert.ToInt32(resultPredction.BoundingBox.Top * 380); resultPredction.BoundingBox.Height = Convert.ToInt32(resultPredction.BoundingBox.Height * 380); resultPredction.BoundingBox.Left = Convert.ToInt32(resultPredction.BoundingBox.Left * 700); resultPredction.BoundingBox.Width = Convert.ToInt32(resultPredction.BoundingBox.Width * 700); predictions.Add(resultPredction); count++; } } if (count == 0) { var plowForecast = resultImageUrl.Predictions.OrderBy(x => x.Probability).ToList(); var resultPredction = new PredictionModel(Convert.ToInt32(plowForecast[plowForecast.Count - 1].Probability * 100), plowForecast[plowForecast.Count - 1].TagId, plowForecast[plowForecast.Count - 1].TagName, plowForecast[plowForecast.Count - 1].BoundingBox); predictions.Add(resultPredction); } return(predictions); }