public async Task <DetectLabelsResponse> RecognizeImage(string fileName)
        {
            Image image = new Image();

            using (FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read))
            {
                byte[] data = null;
                data = new byte[fs.Length];
                fs.Read(data, 0, (int)fs.Length);
                image.Bytes = new MemoryStream(data);
            }


            AmazonRekognitionClient rekognitionClient = new AmazonRekognitionClient();

            DetectLabelsRequest detectlabelsRequest = new DetectLabelsRequest()
            {
                Image         = image,
                MaxLabels     = 10,
                MinConfidence = 77F
            };

            DetectLabelsResponse detectLabelsResponse = await rekognitionClient.DetectLabelsAsync(detectlabelsRequest);

            return(detectLabelsResponse);
        }
Beispiel #2
0
        public async Task <List <Label> > AnalizeImageAmazonRekognition(string pImageName, string pBucketName, Amazon.RegionEndpoint pAmazonRegion, string pAmazonAdminUser, string pAmazonAdminPassword)
        {
            Amazon.Rekognition.AmazonRekognitionClient mAmazonClient = new Amazon.Rekognition.AmazonRekognitionClient(pAmazonAdminUser, pAmazonAdminPassword, pAmazonRegion);

            Amazon.Rekognition.Model.S3Object mS3Object = new Amazon.Rekognition.Model.S3Object();
            mS3Object.Bucket = pBucketName;
            mS3Object.Name   = pImageName;

            DetectLabelsRequest  mRequest = new DetectLabelsRequest();
            DetectLabelsResponse mDetectLabelsResponse = new DetectLabelsResponse();
            Image mImage = new Image();

            mImage.S3Object = mS3Object;
            mRequest.Image  = mImage;

            try
            {
                var detectResponses = await mAmazonClient.DetectLabelsAsync(mRequest);


                //foreach (var label in detectResponses.Labels)
                //{

                //}

                ////return mResponse.Labels;

                return(detectResponses.Labels);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Beispiel #3
0
        /// <summary>
        /// Unmarshaller the response from the service to the response class.
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public override AmazonWebServiceResponse Unmarshall(JsonUnmarshallerContext context)
        {
            DetectLabelsResponse response = new DetectLabelsResponse();

            context.Read();
            int targetDepth = context.CurrentDepth;

            while (context.ReadAtDepth(targetDepth))
            {
                if (context.TestExpression("LabelModelVersion", targetDepth))
                {
                    var unmarshaller = StringUnmarshaller.Instance;
                    response.LabelModelVersion = unmarshaller.Unmarshall(context);
                    continue;
                }
                if (context.TestExpression("Labels", targetDepth))
                {
                    var unmarshaller = new ListUnmarshaller <Label, LabelUnmarshaller>(LabelUnmarshaller.Instance);
                    response.Labels = unmarshaller.Unmarshall(context);
                    continue;
                }
                if (context.TestExpression("OrientationCorrection", targetDepth))
                {
                    var unmarshaller = StringUnmarshaller.Instance;
                    response.OrientationCorrection = unmarshaller.Unmarshall(context);
                    continue;
                }
            }

            return(response);
        }
Beispiel #4
0
        public async Task <List <string> > LabelImage(byte[] imgBytes)
        {
            List <string> lstLabels = new List <string>();

            try
            {
                MemoryStream        memStream           = new MemoryStream(imgBytes);
                DetectLabelsRequest detectlabelsRequest = new DetectLabelsRequest()
                {
                    Image = new Image {
                        Bytes = memStream
                    },
                    MaxLabels     = _maxLabels,
                    MinConfidence = _minConfidence
                };

                DetectLabelsResponse response = await client.DetectLabelsAsync(detectlabelsRequest);

                foreach (Label label in response.Labels)
                {
                    lstLabels.Add(label.Name);
                }
            }
            catch (Exception ex)
            {
                _logger.Error("Error getting info from AWS", ex);
                return(null);
            }

            return(lstLabels);
        }
        public async static Task <List <Label> > GetObjectDetailFromStream(IAmazonRekognition rekognitionClient, MemoryStream stream)
        {
            List <Label>        result = null;
            DetectLabelsRequest detectLabelsRequest = new DetectLabelsRequest()
            {
                Image = new Image {
                    Bytes = stream
                },
                MaxLabels     = 10,
                MinConfidence = 75F
            };

            try
            {
                Task <DetectLabelsResponse> detectTask           = rekognitionClient.DetectLabelsAsync(detectLabelsRequest);
                DetectLabelsResponse        detectLabelsResponse = await detectTask;

                result = detectLabelsResponse.Labels;
                //PrintObjectDetails(result);
            }
            catch (AmazonRekognitionException rekognitionException)
            {
                Console.WriteLine(rekognitionException.Message, rekognitionException.InnerException);
            }
            return(result);
        }
Beispiel #6
0
    public static void Example()
    {
        String photo  = "input.jpg";
        String bucket = "bucket";

        AmazonRekognitionClient rekognitionClient = new AmazonRekognitionClient();

        DetectLabelsRequest detectlabelsRequest = new DetectLabelsRequest()
        {
            Image = new Image()
            {
                S3Object = new S3Object()
                {
                    Name   = photo,
                    Bucket = bucket
                },
            },
            MaxLabels     = 10,
            MinConfidence = 75F
        };

        try
        {
            DetectLabelsResponse detectLabelsResponse = rekognitionClient.DetectLabels(detectlabelsRequest);
            Console.WriteLine("Detected labels for " + photo);
            foreach (Label label in detectLabelsResponse.Labels)
            {
                Console.WriteLine("{0}: {1}", label.Name, label.Confidence);
            }
        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message);
        }
    }
Beispiel #7
0
        public async static Task <FaceDetail> GetObjectDetailFromStream(IAmazonRekognition rekognitionClient, MemoryStream stream)
        {
            FaceDetail          result = null;
            DetectLabelsRequest detectLabelsRequest = new DetectLabelsRequest()
            {
                Image = new Image {
                    Bytes = stream
                },
                MaxLabels     = 10,
                MinConfidence = 75F
            };

            try
            {
                Task <DetectLabelsResponse> detectTask           = rekognitionClient.DetectLabelsAsync(detectLabelsRequest);
                DetectLabelsResponse        detectLabelsResponse = await detectTask;

                PrintObjectDetails(detectLabelsResponse.Labels);

                // if (detectFacesResponse.FaceDetails.Count > 0)
                //     result = detectFacesResponse.FaceDetails[0]; // take the 1st face only
            }
            catch (AmazonRekognitionException rekognitionException)
            {
                Console.WriteLine(rekognitionException.Message, rekognitionException.InnerException);
            }
            return(result);
        }
Beispiel #8
0
        static void Main(string[] args)
        {
            List <string> filePaths = new List <string>();

            filePaths.Add("CoupleWithDog.jpg");
            filePaths.Add("HouseWithCar.jpg");
            filePaths.Add("KidsPlayingOnstreet.jpg");
            filePaths.Add("ManOnBike.jpg");
            filePaths.Add("TwoDogsRunning.jpg");
            filePaths.Add("building_pond.jpg");
            filePaths.Add("chairs.jpg");
            filePaths.Add("pond_people.jpg");

            foreach (var photo in filePaths)
            {
                Image image = new Image();
                try
                {
                    using (FileStream fs = new FileStream(photo, FileMode.Open, FileAccess.Read))
                    {
                        byte[] data = null;
                        data = new byte[fs.Length];
                        fs.Read(data, 0, (int)fs.Length);
                        image.Bytes = new MemoryStream(data);
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    Console.WriteLine("Failed to load file " + photo);
                }


                AmazonRekognitionClient client  = new AmazonRekognitionClient(Amazon.RegionEndpoint.USEast1);
                DetectLabelsRequest     request = new DetectLabelsRequest
                {
                    Image         = image,
                    MinConfidence = 90f
                };

                try
                {
                    Console.WriteLine("Image : " + photo + "\n");
                    DetectLabelsResponse response = client.DetectLabels(request);
                    foreach (Label label in response.Labels)
                    {
                        Console.WriteLine("\t{0} : {1}", label.Name, label.Confidence);
                    }

                    Console.WriteLine();
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }

            Console.ReadLine();
        }
Beispiel #9
0
        public async Task <DetectLabelsResponse> GetS3ImageLabels(DetectLabelsRequest request)
        {
            DetectLabelsResponse response = await _Client.DetectLabelsAsync(request);

            if (response.HttpStatusCode.Equals(HttpStatusCode.OK) && response.Labels.Count > 0)
            {
                return(response);
            }
            return(null);
        }
        private void ImageForm_Load(object sender, EventArgs e)
        {
            // Load images

            var image = new Amazon.Rekognition.Model.Image();

            try
            {
                using (var fs = new FileStream(imageUrl, FileMode.Open, FileAccess.Read))
                {
                    byte[] data = null;
                    data = new byte[fs.Length];
                    fs.Read(data, 0, (int)fs.Length);
                    image.Bytes = new MemoryStream(data);
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Không thể mở tệp " + imageUrl, "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            var rekognitionClient = new AmazonRekognitionClient();

            var detectlabelsRequest = new DetectLabelsRequest()
            {
                Image         = image,
                MaxLabels     = 10,
                MinConfidence = 77F
            };

            try
            {
                DetectLabelsResponse detectLabelsResponse = rekognitionClient.DetectLabels(detectlabelsRequest);
                //MessageBox.Show("Detected labels for " + imageUrl);
                foreach (var label in detectLabelsResponse.Labels)
                {
                    //MessageBox.Show(label.Name + " : " + label.Confidence);
                    foreach (var item in label.Instances)
                    {
                        //MessageBox.Show("Left : " + item.BoundingBox.Left);
                        boundingEnum.Add(new PositionClass(
                                             item.BoundingBox.Top * bmpHeight,
                                             item.BoundingBox.Left * bmpWidth,
                                             item.BoundingBox.Width * bmpWidth,
                                             item.BoundingBox.Height * bmpHeight)
                                         );
                    }
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Không thể phân tích hình ảnh", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Beispiel #11
0
        public void FindObject()
        {
            Amazon.Rekognition.Model.Image image = new Amazon.Rekognition.Model.Image();
            try
            {
                using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read))
                {
                    byte[] data = null;
                    data = new byte[fs.Length];
                    fs.Read(data, 0, (int)fs.Length);
                    image.Bytes = new MemoryStream(data);
                }
            }
            catch (Exception)
            {
                Console.WriteLine("Failed to load file " + filePath);
                return;
            }

            AmazonRekognitionClient rekognitionClient = new AmazonRekognitionClient();

            DetectLabelsRequest detectlabelsRequest = new DetectLabelsRequest()
            {
                Image         = image,
                MaxLabels     = 10,
                MinConfidence = 77F
            };

            try
            {
                DetectLabelsResponse detectLabelsResponse = rekognitionClient.DetectLabels(detectlabelsRequest);

                double width  = imgPictureFrame.Width;
                double height = imgPictureFrame.Height;

                foreach (Label label in detectLabelsResponse.Labels)
                {
                    List <Instance> instances = label.Instances;
                    foreach (Instance instance in instances)
                    {
                        string      data        = $"{label.Name}: {Math.Round(instance.Confidence,2)}%";
                        BoundingBox boundingBox = instance.BoundingBox;
                        BindingBox  bindingBox  = new BindingBox(width * boundingBox.Width, height * boundingBox.Height, height * boundingBox.Top, width * boundingBox.Left, data);
                        gContainer.Children.Add(bindingBox);
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
        public async Task <IEnumerable <Rectangle> > ExtractLicensePlatesAsync()
        {
            if (_objectsResponse == null)
            {
                var objectsRequest = new DetectLabelsRequest()
                {
                    Image = _rekognitionImage
                };
                _objectsResponse = await _client.DetectLabelsAsync(objectsRequest);
            }

            return(ExtractLicensePlates());
        }
Beispiel #13
0
        public static DetectLabelsResponse GetInfo(string filePath)
        {
            String photo = filePath;

            Amazon.Rekognition.Model.Image image = new Amazon.Rekognition.Model.Image();
            try
            {
                using (FileStream fs = new FileStream(photo, FileMode.Open, FileAccess.Read))
                {
                    byte[] data = null;
                    data = new byte[fs.Length];
                    fs.Read(data, 0, (int)fs.Length);
                    image.Bytes = new MemoryStream(data);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Failed to load file " + photo);
                return(null);
            }

            AmazonRekognitionClient rekognitionClient = new AmazonRekognitionClient();

            DetectLabelsRequest detectlabelsRequest = new DetectLabelsRequest()
            {
                Image         = image,
                MaxLabels     = 10,
                MinConfidence = 77F
            };

            try
            {
                DetectLabelsResponse detectLabelsResponse = rekognitionClient.DetectLabels(detectlabelsRequest);

                Console.WriteLine("Detected labels for " + photo);
                foreach (Label label in detectLabelsResponse.Labels)
                {
                    Console.WriteLine("{0}: {1}", label.Name, label.Confidence);
                }

                return(detectLabelsResponse);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            return(null);
        }
        public IEnumerable <Rectangle> ExtractLicensePlates()
        {
            if (_objectsResponse == null)
            {
                var objectsRequest = new DetectLabelsRequest()
                {
                    Image = _rekognitionImage
                };
                _objectsResponse = _client.DetectLabelsAsync(objectsRequest).Result;
            }

            return(_objectsResponse.Labels.Where(l => l.Name == "License Plate")
                   .SelectMany(l => l.Instances).Select(i =>
                                                        AmazonRekognitionCoordinateTranslator.RelativeBoxToAbsolute(i.BoundingBox, _width,
                                                                                                                    _height)));
        }
        public async Task <IActionResult> UploadAsync(IFormFile[] imgs)
        {
            IPainter painter = new rekognition.service.Implementation.RectangleMarker();

            try
            {
                var file   = Request.Form.Files[0];
                var stream = ImageHelper.ConvertFormFileToMemoryStream(file);
                if (stream != null)
                {
                    var response = new DetectLabelsResponse();

                    response = await _detectLabels.DetectAsync(stream);

                    string markedImg = "";

                    if (response.Labels.Count > 0)
                    {
                        System.Drawing.Image output = System.Drawing.Image.FromStream(stream);

                        foreach (Label box in response.Labels)
                        {
                            foreach (Instance instance in box.Instances)
                            {
                                var boundingBox = instance.BoundingBox;
                                output = painter.DrawOnImage(output, file.FileName,
                                                             boundingBox.Height, boundingBox.Width,
                                                             boundingBox.Top, boundingBox.Left, GetRandomColor());
                            }
                        }

                        markedImg = ImageHelper.ConvertImageToBase64(output);
                    }


                    return(Ok(new { response, markedImg }));
                }
                else
                {
                    return(BadRequest());
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(500, "Internal server error"));
            }
        }
Beispiel #16
0
        // snippet-start:[Rekognition.dotnetv3.DetectLabelsLocalFile]
        public static async Task Main()
        {
            string photo = "input.jpg";

            var image = new Amazon.Rekognition.Model.Image();

            try
            {
                using var fs = new FileStream(photo, FileMode.Open, FileAccess.Read);
                byte[] data = null;
                data = new byte[fs.Length];
                fs.Read(data, 0, (int)fs.Length);
                image.Bytes = new MemoryStream(data);
            }
            catch (Exception)
            {
                Console.WriteLine("Failed to load file " + photo);
                return;
            }

            var rekognitionClient = new AmazonRekognitionClient();

            var detectlabelsRequest = new DetectLabelsRequest
            {
                Image         = image,
                MaxLabels     = 10,
                MinConfidence = 77F,
            };

            try
            {
                DetectLabelsResponse detectLabelsResponse = await rekognitionClient.DetectLabelsAsync(detectlabelsRequest);

                Console.WriteLine($"Detected labels for {photo}");
                foreach (Label label in detectLabelsResponse.Labels)
                {
                    Console.WriteLine($"{label.Name}: {label.Confidence}");
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
Beispiel #17
0
        // Uses the Amazon Rekognition service to detect labels within an image.
        public async Task <List <WorkItem> > DetectLabels(string bucketName, string photo)
        {
            var rekognitionClient   = new AmazonRekognitionClient(RegionEndpoint.USWest2);
            var labelList           = new List <WorkItem>();
            var detectlabelsRequest = new DetectLabelsRequest
            {
                Image = new Image()
                {
                    S3Object = new Amazon.Rekognition.Model.S3Object()
                    {
                        Name   = photo,
                        Bucket = bucketName,
                    },
                },
                MaxLabels     = 10,
                MinConfidence = 75F,
            };

            try
            {
                DetectLabelsResponse detectLabelsResponse = await rekognitionClient.DetectLabelsAsync(detectlabelsRequest);

                Console.WriteLine("Detected labels for " + photo);
                WorkItem workItem;
                foreach (Label label in detectLabelsResponse.Labels)
                {
                    workItem            = new WorkItem();
                    workItem.Key        = photo;
                    workItem.Confidence = label.Confidence.ToString();
                    workItem.Name       = label.Name;
                    labelList.Add(workItem);
                }

                return(labelList);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

            return(null);
        }
Beispiel #18
0
        static void Main(string[] args)
        {
            String bucket = ExtFunc.Read("\nAmazon S3 Bucket-Name with a picture:");
            String photo  = ExtFunc.Read("\nPicture Filename in Bucket:");

            AmazonRekognitionClient rekognitionClient =
                new AmazonRekognitionClient(Amazon.RegionEndpoint.USEast1);

            var analyzed_image = new Image()
            {
                S3Object = new Amazon.Rekognition.Model.S3Object()
                {
                    Name   = photo,
                    Bucket = bucket
                },
            };

            DetectLabelsRequest detectlabelsRequest = new DetectLabelsRequest()
            {
                Image         = analyzed_image,
                MaxLabels     = 10,
                MinConfidence = 75F
            };

            try
            {
                DetectLabelsResponse detectLabelsResponse = rekognitionClient.DetectLabels(detectlabelsRequest);
                Console.WriteLine("Detected labels for " + photo);

                foreach (Label label in detectLabelsResponse.Labels)
                {
                    Console.WriteLine("{0}: {1}", label.Name, label.Confidence);
                }

                var tempUrl = GetS3Url(RegionEndpoint.USEast1, photo, bucket, 1);
                System.Diagnostics.Process.Start(tempUrl);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
Beispiel #19
0
        // snippet-start:[Rekognition.dotnetv3.DetectLabelsExample]
        public static async Task Main()
        {
            string photo  = "del_river_02092020_01.jpg"; // "input.jpg";
            string bucket = "igsmiths3photos";           // "bucket";

            var rekognitionClient = new AmazonRekognitionClient();

            var detectlabelsRequest = new DetectLabelsRequest
            {
                Image = new Image()
                {
                    S3Object = new S3Object()
                    {
                        Name   = photo,
                        Bucket = bucket,
                    },
                },
                MaxLabels     = 10,
                MinConfidence = 75F,
            };

            try
            {
                DetectLabelsResponse detectLabelsResponse = await rekognitionClient.DetectLabelsAsync(detectlabelsRequest);

                Console.WriteLine("Detected labels for " + photo);
                foreach (Label label in detectLabelsResponse.Labels)
                {
                    Console.WriteLine($"Name: {label.Name} Confidence: {label.Confidence}");
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
Beispiel #20
0
        private void btnLoad_Click(object sender, RoutedEventArgs e)
        {
            OpenFileDialog op = new OpenFileDialog();

            op.Title  = "Select a picture";
            op.Filter = "All supported graphics|*.jpg;*.jpeg;*.png|" +
                        "JPEG (*.jpg;*.jpeg)|*.jpg;*.jpeg|" +
                        "Portable Network Graphic (*.png)|*.png";
            if (op.ShowDialog() == true)
            {
                imgPhoto.Source = new BitmapImage(new Uri(op.FileName));
            }

            if (boundingBoxes.Children.Count != 0)
            {
                boundingBoxes.Children.Clear();
            }

            var originalSize = GetOriginalImageSize(imgPhoto);

            String photo = imgPhoto.Source.ToString().Substring(8);

            Amazon.Rekognition.Model.Image image = new Amazon.Rekognition.Model.Image();
            try
            {
                using (FileStream fs = new FileStream(photo, FileMode.Open, FileAccess.Read))
                {
                    byte[] data = null;
                    data = new byte[fs.Length];
                    fs.Read(data, 0, (int)fs.Length);
                    image.Bytes = new MemoryStream(data);
                }
            }
            catch (Exception)
            {
                Console.WriteLine("Failed to load file " + photo);
                return;
            }

            AmazonRekognitionClient rekognitionClient = new AmazonRekognitionClient();

            DetectLabelsRequest detectlabelsRequest = new DetectLabelsRequest()
            {
                Image         = image,
                MaxLabels     = 10,
                MinConfidence = 77F
            };

            try
            {
                DetectLabelsResponse detectLabelsResponse = rekognitionClient.DetectLabels(detectlabelsRequest);
                foreach (Amazon.Rekognition.Model.Label label in detectLabelsResponse.Labels)
                {
                    foreach (var instance in label.Instances)
                    {
                        var Left   = instance.BoundingBox.Left;
                        var Top    = instance.BoundingBox.Top;
                        var Width  = instance.BoundingBox.Width;
                        var Height = instance.BoundingBox.Height;
                        var Name   = label.Name;

                        DrawBoundingBox(Left, Top, Width, Height, Name, originalSize.Width, originalSize.Height);
                    }
                }
            }
            catch
            {
            }
        }
Beispiel #21
0
        //[Route("[action]")]
        //public async Task<ActionResult<FileVM>> PostImage(FileVM UploadedImage)
        public async Task <IActionResult> PostImage(FileVM UploadedImage)
        {
            byte[] bytes = Convert.FromBase64String(UploadedImage.FileAsBase64);

            var credentials = new BasicAWSCredentials("AKIAYFOXPUFXRIBLXF4O", "kt30oEKBt35RZRxXD6rLRd2uxITL0aYX24qFXnox");

            var config = new AmazonS3Config
            {
                RegionEndpoint = Amazon.RegionEndpoint.USEast1
            };

            var image = new Image();

            using (var client = new AmazonS3Client(credentials, config))
            {
                using (var newMemoryStream = new MemoryStream(bytes))
                {
                    //file.CopyTo(newMemoryStream);

                    var uploadRequest = new TransferUtilityUploadRequest
                    {
                        InputStream = newMemoryStream,
                        Key         = UploadedImage.FileName,
                        BucketName  = "quickquoteitem",
                        CannedACL   = S3CannedACL.PublicRead
                    };

                    var fileTransferUtility = new TransferUtility(client);

                    try
                    {
                        await fileTransferUtility.UploadAsync(uploadRequest);
                    }
                    catch (Exception err)
                    {
                        throw err;
                    }
                }
            }

            AmazonRekognitionClient rekognitionClient = new AmazonRekognitionClient(credentials, Amazon.RegionEndpoint.USEast1);

            DetectLabelsRequest detectlabelsRequest = new DetectLabelsRequest()
            {
                Image = new Image()
                {
                    S3Object = new S3Object()
                    {
                        Name   = UploadedImage.FileName,
                        Bucket = "quickquoteitem"
                    },
                },
                MaxLabels     = 10,
                MinConfidence = 75F
            };

            try
            {
                var Labels = new List <LabelVM>();

                DetectLabelsResponse detectLabelsResponse =
                    await rekognitionClient.DetectLabelsAsync(detectlabelsRequest);

                //Console.WriteLine("Detected labels for " + photo);
                foreach (Label label in detectLabelsResponse.Labels)
                {
                    var item = new LabelVM();
                    item.LabelName       = label.Name;
                    item.LabelConfidence = label.Confidence.ToString();
                    Labels.Add(item);
                }
                return(Ok(Labels));
                //Console.WriteLine("{0}: {1}", label.Name, label.Confidence);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            //return CreatedAtAction("GetQuote", new { id = quote.QuoteID }, quote);
            return(Ok());
        }
        public void ScoreLabels(DetectLabelsResponse detectLabelsResponse)
        {
            LogInfo(JsonConvert.SerializeObject(detectLabelsResponse));

            // LEVEL 1: determine if photo meets your label criteria
        }
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            Console.WriteLine("show");
            string defaultURL = @"C:\Users\Admin\Desktop\121-1217434_transparent-crowd-of-people-png-people-walking-illustration.png";
            String photo      = txtURL.Text == string.Empty? defaultURL : txtURL.Text;


            Amazon.Rekognition.Model.Image image = new Amazon.Rekognition.Model.Image();
            try
            {
                using (FileStream fs = new FileStream(photo, FileMode.Open, FileAccess.Read))
                {
                    byte[] data = null;
                    data = new byte[fs.Length];
                    fs.Read(data, 0, (int)fs.Length);
                    image.Bytes = new MemoryStream(data);
                }
            }
            catch (Exception)
            {
                Console.WriteLine("Failed to load file " + photo);
                return;
            }

            AmazonRekognitionClient rekognitionClient = new AmazonRekognitionClient();

            DetectLabelsRequest detectlabelsRequest = new DetectLabelsRequest()
            {
                Image         = image,
                MaxLabels     = 30,
                MinConfidence = 40F
            };

            try
            {
                DetectLabelsResponse detectLabelsResponse = rekognitionClient.DetectLabels(detectlabelsRequest);
                //Console.WriteLine("Label " + detectLabelsResponse.Labels);
                //int count = 0;
                foreach (Label label in detectLabelsResponse.Labels)
                {
                    Console.WriteLine("{0}: {1}", label.Name, label.Confidence);
                    if (label.Instances != null && label.Instances.Count > 0)
                    {
                        foreach (var item in label.Instances)
                        {
                            if (item.BoundingBox != null)
                            {
                                double width  = item.BoundingBox.Width;
                                double height = item.BoundingBox.Height;
                                double left   = item.BoundingBox.Left;
                                double top    = item.BoundingBox.Top;

                                LayoutRoot.Children.Add(CreateARectangle(width * imageSource.Width, height * imageSource.Height, left * imageSource.Width, top * imageSource.Height));
                                //Console.WriteLine("Bouding box: " + item.BoundingBox.Top);
                            }
                        }
                    }
                }
            }
            catch (Exception)
            {
                //Console.WriteLine(e.Message);
            }
            //LayoutRoot.Children.Add(CreateARectangle(0.5*300, 0.3*200, ));
            //LayoutRoot.Children.Add(CreateARectangle(0.1*300, 0.2*200));
        }
Beispiel #24
0
        static void Main(string[] args)
        {
            const float MIN_CONFIDENCE = 90F;

            try
            {
                string[] imagesList = GetListOfImages();
                if (imagesList == null || imagesList.Length == 0)
                {
                    Console.WriteLine("No images found in the Images folder");
                    return;
                }

                // Constructs a SharedCredentialsFile object from the default credentials file.
                SharedCredentialsFile sharedCredentialsFile = new SharedCredentialsFile();

                // Get the [default] profile from the credentials file.
                CredentialProfile defaultProfile = GetDefaultProfile(sharedCredentialsFile);

                if (defaultProfile != null)
                {
                    // Get the credentials (access key, secret access key, etc.)
                    AWSCredentials credentials = AWSCredentialsFactory.GetAWSCredentials(defaultProfile, new SharedCredentialsFile());

                    AmazonRekognitionClient rekognitionClient = new AmazonRekognitionClient(credentials, RegionEndpoint.USEast1);

                    CompareFacesRequest detectFacesRequest = new CompareFacesRequest()
                    {
                        SourceImage = GetImage(@"C:\Temp\TomCruise1.jpg"),
                        TargetImage = GetImage(@"C:\Temp\TomCruise2.jpg")
                    };

                    CompareFacesResponse     response = rekognitionClient.CompareFaces(detectFacesRequest);
                    List <CompareFacesMatch> list     = response.FaceMatches;

                    foreach (string filePath in imagesList)
                    {
                        Image image = GetImage(filePath);
                        if (image == null)
                        {
                            continue;
                        }

                        DetectLabelsRequest detectLabelsRequest = new DetectLabelsRequest()
                        {
                            Image         = image,
                            MinConfidence = MIN_CONFIDENCE,
                        };

                        DetectLabelsResponse detectLabelsResponse = rekognitionClient.DetectLabels(detectLabelsRequest);

                        Console.WriteLine("Image: {0}\n", filePath);
                        foreach (Label label in detectLabelsResponse.Labels)
                        {
                            Console.WriteLine("\t{0} ({1})", label.Name, label.Confidence);
                        }

                        Console.WriteLine();
                    }
                }
                else
                {
                    Console.WriteLine("AWS [default] profile not found");
                }
            }
            catch (AmazonRekognitionException ex)
            {
                Console.WriteLine("AWS Rekognition ERROR: {0}", ex.Message);
            }
            catch (Exception ex)
            {
                Console.WriteLine("ERROR: {0}", ex.Message);
            }

            Console.WriteLine("\nDONE");
            Console.ReadLine();
        }