private async void BtnGetFacialFeatures_Click(object sender, RoutedEventArgs e)
        {
            TxtCognitiveServicesAnalysisResponse.Text = string.Empty;

            if (!System.IO.File.Exists(_validatedImageFileLocation))
            {
                return;
            }

            var httpClient = new CognitiveServicesRestHttpClient();

            var imageStream = CommonFramework.Library.Helpers.ImagesHelpers.GetImagesAsStream(_validatedImageFileLocation);

            var request = new CognitiveServicesRequest
            {
                EndPointKey1          = Properties.Settings.Default.EndPointKey1,
                EndPoint              = Properties.Settings.Default.EndPoint,
                ImageStream           = imageStream,
                EndPointExtension     = "/face/v1.0/detect",
                RestRequestParameters = "returnFaceId=true&returnFaceLandmarks=false" +
                                        "&returnFaceAttributes=age,gender,headPose,smile,facialHair,glasses," +
                                        "emotion,hair,makeup,occlusion,accessories,blur,exposure,noise",
            };

            // ReSharper disable once PossibleNullReferenceException

            var response = await httpClient.GetRestHttpStringResponse(request);

            var visualFeatures = CommonFramework.Library.Helpers.JsonHelpers.JsonPrettyPrint(response.RestResponse);

            TxtCognitiveServicesAnalysisResponse.Text = response.Success
                ? visualFeatures
                : response.FailureInformation;
        }
        private async void BtnGetVisualFeatures_Click(object sender, RoutedEventArgs e)
        {
            TxtCognitiveServicesAnalysisResponse.Text = string.Empty;

            if (!System.IO.File.Exists(_validatedImageFileLocation))
            {
                return;
            }

            if (_computerVisionApi == null)
            {
                return;
            }

            var imageStream = CommonFramework.Library.Helpers.ImagesHelpers.GetImagesAsStream(_validatedImageFileLocation);

            var request = new CognitiveServicesRequest
            {
                EndPointKey1          = Properties.Settings.Default.EndPointKey1,
                EndPoint              = Properties.Settings.Default.EndPoint,
                ImageStream           = imageStream,
                EndPointExtension     = "/vision/v2.0/analyze",
                RestRequestParameters = "visualFeatures=Categories,Tags,Description,Faces,ImageType,Color,Adult&details=Celebrities,Landmarks&language=en",
            };

            var response = await _computerVisionApi.GetVisualFeatures(request);

            TxtCognitiveServicesAnalysisResponse.Text = response.Success
                ? response.VisualFeatures
                : response.FailureInformation;
        }
Esempio n. 3
0
        public async Task <ActionResult> TextInImages(string img)
        {
            img = string.IsNullOrWhiteSpace(img) ? "/images/Text/8.png" : img;

            var    subscriptionKey = ConfigurationManager.AppSettings["VisionApiKey"];
            string imageUrl        = $"{_baseUrl}{img}";

            // Using the SDK
            var        visionService = new VisionServiceClient(subscriptionKey);
            OcrResults result        = await visionService.RecognizeTextAsync(imageUrl);

            // Using the WebApi
            var url            = "https://westus.api.cognitive.microsoft.com/vision/v1.0/ocr";
            var requestService = new CognitiveServicesRequest();
            var response       = await requestService.MakeRequest(url, subscriptionKey, requestService.CreateImageRequestObject(imageUrl));

            var viewModel = new TextInImagesViewModel
            {
                Result     = result,
                JSONResult = response,
                ImageUrl   = imageUrl,
            };

            return(View(viewModel));
        }
Esempio n. 4
0
        public async Task <ActionResult> TextAnalytics(string text)
        {
            text = string.IsNullOrWhiteSpace(text) ? "I had a wonderful experience! The rooms were wonderful and the staff were helpful." : text;
            var subscriptionKey = ConfigurationManager.AppSettings["TextApiKey"];
            var requestService  = new CognitiveServicesRequest();
            var requestObject   = requestService.CreateTextRequestObject(text);

            // Text Language API
            var urlLanguage     = "https://westus.api.cognitive.microsoft.com/text/analytics/v2.0/languages";
            var responseLanuage = await requestService.MakeRequest(urlLanguage, subscriptionKey, requestObject);

            // Text Topics API
            var urlTopics      = "https://westus.api.cognitive.microsoft.com/text/analytics/v2.0/keyPhrases";
            var responseTopics = await requestService.MakeRequest(urlTopics, subscriptionKey, requestObject);

            //Text Sentiment API
            var urlSentiment      = "https://westus.api.cognitive.microsoft.com/text/analytics/v2.0/sentiment";
            var responseSentiment = await requestService.MakeRequest(urlSentiment, subscriptionKey, requestObject);

            var viewModel = new TextAnalyticsViewModel
            {
                Text = text,
                JsonResponseLanuage   = responseLanuage,
                JsonResponseTopics    = responseTopics,
                JsonResponseSentiment = responseSentiment
            };

            return(View(viewModel));
        }
Esempio n. 5
0
        public async Task <ActionResult> Object(string img)
        {
            img = string.IsNullOrWhiteSpace(img) ? "/images/Object/1.jpg" : img;
            var    subscriptionKey = ConfigurationManager.AppSettings["VisionApiKey"];
            string imageUrl        = $"{_baseUrl}{img}";

            // Using the SDK
            var            client = new VisionServiceClient(subscriptionKey);
            AnalysisResult result = await client.AnalyzeImageAsync(imageUrl, new [] { VisualFeature.Description, VisualFeature.Categories });

            // Using the WebApi
            var queryString = HttpUtility.ParseQueryString(string.Empty);

            queryString["visualFeatures"] = "Categories,Tags,Description,Faces,ImageType,Color,Adult ";
            queryString["details"]        = "Celebrities";
            queryString["language"]       = "en";

            var url            = "https://westus.api.cognitive.microsoft.com/vision/v1.0/analyze?" + queryString;
            var requestService = new CognitiveServicesRequest();
            var response       = await requestService.MakeRequest(url, subscriptionKey, requestService.CreateImageRequestObject(imageUrl));

            var viewModel = new ObjectViewModel
            {
                ImageUrl     = imageUrl,
                JsonResponse = response,
                SDKResult    = result
            };

            return(View(viewModel));
        }
        private async void BtnRunOcr_Click(object sender, RoutedEventArgs e)
        {
            TxtCognitiveServicesAnalysisResponse.Text = string.Empty;

            if (!System.IO.File.Exists(_validatedImageFileLocation))
            {
                return;
            }

            if (_computerVisionApi == null)
            {
                return;
            }

            var imageStream = CommonFramework.Library.Helpers.ImagesHelpers.GetImagesAsStream(_validatedImageFileLocation);

            var request = new CognitiveServicesRequest
            {
                EndPointKey1          = Properties.Settings.Default.EndPointKey1,
                EndPoint              = Properties.Settings.Default.EndPoint,
                ImageStream           = imageStream,
                EndPointExtension     = "/vision/v2.0/ocr",
                RestRequestParameters = "language=unk&detectOrientation=true",
            };

            var response = await _computerVisionApi.PerformOcr(request);

            if (response.Success)
            {
                var output = new StringBuilder();

                foreach (var word in response.WordsFound)
                {
                    output.AppendLine($"{word.Word}     ---     {word.Instances}");
                }

                output.AppendLine();
                output.AppendLine("=============================================");
                output.AppendLine();

                output.AppendLine(string.Join("\n", response.LinesFound));

                TxtCognitiveServicesAnalysisResponse.Text = output.ToString();
            }
            else
            {
                TxtCognitiveServicesAnalysisResponse.Text = response.FailureInformation;
            }
        }
Esempio n. 7
0
        public override async Task <PerformOcrStringResponse> PerformOcr(CognitiveServicesRequest request)
        {
            var cognitiveServicesRestHttpClient = new CognitiveServicesRestHttpClient();
            var restHttpResponse = await cognitiveServicesRestHttpClient.GetRestHttpStringResponse(request);

            var performOcrResponse = new PerformOcrStringResponse
            {
                Success             = restHttpResponse.Success,
                ImplementedInModule = restHttpResponse.ImplementedInModule,
                FailureInformation  = restHttpResponse.FailureInformation,
                // LinesFound = new List<string>(),
                // WordsFound = new List<PerformOcrWordInstance>(),
            };

            performOcrResponse.LinesFound.Add(CommonFramework.Library.Helpers.JsonHelpers.JsonPrettyPrint(restHttpResponse.RestResponse));

            return(performOcrResponse);
        }
        public override async Task <GetVisualFeaturesStringResponse> GetVisualFeatures(CognitiveServicesRequest request)
        {
            var response = new GetVisualFeaturesStringResponse();

            try
            {
                var apiKeyServiceClientCredentials = new ApiKeyServiceClientCredentials(request.EndPointKey1);
                var delegatingHandlers             = new System.Net.Http.DelegatingHandler[] { };

                IComputerVisionClient computerVision = new ComputerVisionClient(
                    credentials: apiKeyServiceClientCredentials,
                    handlers: delegatingHandlers)
                {
                    Endpoint = request.EndPoint
                };

                IList <VisualFeatureTypes> features = new List <VisualFeatureTypes>()
                {
                    VisualFeatureTypes.ImageType,
                    VisualFeatureTypes.Faces,
                    VisualFeatureTypes.Adult,
                    VisualFeatureTypes.Categories,
                    VisualFeatureTypes.Color,
                    VisualFeatureTypes.Tags,
                    VisualFeatureTypes.Description,
                    VisualFeatureTypes.Objects,
                };

                var imageAnalysis = await computerVision.AnalyzeImageInStreamAsync(
                    image : request.ImageStream,
                    visualFeatures : features);

                var visualFeaturesTemp = new StringBuilder();

                visualFeaturesTemp.AppendLine("Description - Captions");
                foreach (var item in imageAnalysis.Description.Captions)
                {
                    visualFeaturesTemp.AppendLine($"{item.Text} ({item.Confidence})");
                }

                visualFeaturesTemp.AppendLine("");
                visualFeaturesTemp.AppendLine("Description - Tags");
                visualFeaturesTemp.AppendLine(string.Join(", ", imageAnalysis.Description.Tags));

                visualFeaturesTemp.AppendLine("");
                visualFeaturesTemp.AppendLine("Adult / Racy Content");
                visualFeaturesTemp.AppendLine($"({imageAnalysis.Adult.AdultScore}) , ({imageAnalysis.Adult.RacyScore})");

                visualFeaturesTemp.AppendLine("");
                visualFeaturesTemp.AppendLine("Categories - name, score, detail");
                foreach (var item in imageAnalysis.Categories)
                {
                    visualFeaturesTemp.AppendLine($"{item.Name} ({item.Score})");
                    visualFeaturesTemp.AppendLine($"{item.Detail}");
                }

                visualFeaturesTemp.AppendLine("");
                visualFeaturesTemp.AppendLine("Color");
                visualFeaturesTemp.AppendLine($"{imageAnalysis.Color}");

                visualFeaturesTemp.AppendLine("");
                visualFeaturesTemp.AppendLine("Faces - Age, Gender");
                foreach (var item in imageAnalysis.Faces)
                {
                    visualFeaturesTemp.AppendLine($"{item.Age} {item.Gender}");
                }

                visualFeaturesTemp.AppendLine("");
                visualFeaturesTemp.AppendLine("Image Type - ClipArtType, LineDrawingType");
                visualFeaturesTemp.AppendLine($"{imageAnalysis.ImageType.ClipArtType} {imageAnalysis.ImageType.LineDrawingType}");

                visualFeaturesTemp.AppendLine("");
                visualFeaturesTemp.AppendLine("Objects");
                foreach (var item in imageAnalysis.Objects)
                {
                    visualFeaturesTemp.AppendLine($"{item.ObjectProperty} ({item.Confidence})");
                }

                visualFeaturesTemp.AppendLine("");
                visualFeaturesTemp.AppendLine("Tags - Name, Confidence, Hint");
                foreach (var item in imageAnalysis.Tags)
                {
                    visualFeaturesTemp.AppendLine($"{item.Name} ({item.Confidence})");
                    visualFeaturesTemp.AppendLine($"{item.Hint}");
                }


                response.VisualFeatures = visualFeaturesTemp.ToString();
                response.Success        = true;
            }
            catch (Exception e)
            {
                response.FailureInformation = e.Message;
            }

            return(response);
        }
        public override async Task <PerformOcrStringResponse> PerformOcr(CognitiveServicesRequest request)
        {
            var response = new PerformOcrStringResponse();

            try
            {
                var apiKeyServiceClientCredentials = new ApiKeyServiceClientCredentials(request.EndPointKey1);
                var delegatingHandlers             = new System.Net.Http.DelegatingHandler[] { };

                IComputerVisionClient computerVision = new ComputerVisionClient(
                    credentials: apiKeyServiceClientCredentials,
                    handlers: delegatingHandlers)
                {
                    Endpoint = request.EndPoint
                };

                var contentString = await computerVision.RecognizePrintedTextInStreamAsync(
                    image : request.ImageStream,
                    detectOrientation : false,
                    language : OcrLanguages.En,
                    cancellationToken : CancellationToken.None);

                var resultsLinesFound = new List <string>();
                var resultsWordsFound = new List <string>();

                foreach (OcrRegion region in contentString.Regions)
                {
                    foreach (OcrLine line in region.Lines)
                    {
                        var words = line.Words.Select(word => word.Text).ToList();

                        resultsWordsFound.AddRange(words);

                        if (words.Count > 0)
                        {
                            resultsLinesFound.Add(string.Join <string>(" ", words));
                        }
                    }
                }

                var wordGrouping =
                    from word in resultsWordsFound
                    group word by word
                    into g
                    select new { InstanceFound = g.Key, Word = g };

                var groupedWordsFound = wordGrouping
                                        .Select(item => new PerformOcrWordInstance
                {
                    Word      = item.Word.Key,
                    Instances = item.Word.Count()
                });

                response.LinesFound = resultsLinesFound;
                response.WordsFound = groupedWordsFound.ToList();
                response.Success    = true;
            }
            catch (Exception e)
            {
                response.FailureInformation = e.Message;
            }

            return(response);
        }
Esempio n. 10
0
 public override async Task <PerformOcrStringResponse> PerformOcr(CognitiveServicesRequest request)
 {
     throw new System.NotImplementedException();
 }
Esempio n. 11
0
 public override async Task <GetVisualFeaturesStringResponse> GetVisualFeatures(CognitiveServicesRequest request)
 {
     throw new System.NotImplementedException();
 }
Esempio n. 12
0
        public override async Task <GetVisualFeaturesStringResponse> GetVisualFeatures(CognitiveServicesRequest request)
        {
            var cognitiveServicesRestHttpClient = new CognitiveServicesRestHttpClient();
            var restHttpResponse = await cognitiveServicesRestHttpClient.GetRestHttpStringResponse(request);

            var getVisualFeaturesResponse = new GetVisualFeaturesStringResponse
            {
                Success             = restHttpResponse.Success,
                ImplementedInModule = restHttpResponse.ImplementedInModule,
                FailureInformation  = restHttpResponse.FailureInformation,
                VisualFeatures      =
                    CommonFramework.Library.Helpers.JsonHelpers.JsonPrettyPrint(restHttpResponse.RestResponse),
            };

            return(getVisualFeaturesResponse);
        }