コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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));
        }
コード例 #3
0
ファイル: CustomVision.cs プロジェクト: eriksty/Custom-Vision
        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);
        }