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);
        }
Exemple #2
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);
        }
    }
Exemple #3
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;
            }
        }
Exemple #4
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);
        }
Exemple #5
0
        internal DetectLabelsResponse DetectLabels(DetectLabelsRequest request)
        {
            var marshaller   = new DetectLabelsRequestMarshaller();
            var unmarshaller = DetectLabelsResponseUnmarshaller.Instance;

            return(Invoke <DetectLabelsRequest, DetectLabelsResponse>(request, marshaller, unmarshaller));
        }
Exemple #6
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);
        }
Exemple #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();
        }
Exemple #9
0
        /// <summary>
        /// Initiates the asynchronous execution of the DetectLabels operation.
        /// </summary>
        ///
        /// <param name="request">Container for the necessary parameters to execute the DetectLabels operation.</param>
        /// <param name="cancellationToken">
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// </param>
        /// <returns>The task object representing the asynchronous operation.</returns>
        public Task <DetectLabelsResponse> DetectLabelsAsync(DetectLabelsRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var marshaller   = new DetectLabelsRequestMarshaller();
            var unmarshaller = DetectLabelsResponseUnmarshaller.Instance;

            return(InvokeAsync <DetectLabelsRequest, DetectLabelsResponse>(request, marshaller,
                                                                           unmarshaller, cancellationToken));
        }
Exemple #10
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);
            }
        }
Exemple #12
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());
        }
Exemple #14
0
        public async Task Handler(S3Event s3Event)
        {
            // Level 1: Make this output when a file is uploaded to S3
            LambdaLogger.Log("Hello from The AutoMaTweeter!");

            // Level 2: Get the bucket name and key from event data and log to cloudwatch
            var bucketName = s3Event.Records[0].S3.Bucket.Name;
            var keyName    = s3Event.Records[0].S3.Object.Key;

            LambdaLogger.Log($"The AutoMaTweeter found a file path: {bucketName}/{keyName}");

            var file1 = await RetrieveBinaryPayload(bucketName, keyName);

            // Boss Level: Use Amazon Rekognition to get keywords about the image
            IEnumerable <string> labels = Enumerable.Empty <string>();

            using (var client = new AmazonRekognitionClient())
            {
                var request = new DetectLabelsRequest();
                request.Image       = new Image();
                request.Image.Bytes = new MemoryStream(file1);
                var response = await client.DetectLabelsAsync(request);

                labels = response.Labels.Select(x => x.Name);
            }

            // Level 3: Post the image and message to twitter
            var consumerKey       = "GCNunS5DfXGwh8rvFAterxmXP";
            var consumerSecret    = "fq03tBiAIAM7pB6DjRI8S69scCFiR3FibCbjz3HWfjEOPMLSQD";
            var accessToken       = "842206967632338944-XMAH3FU86RSak57FVJmglXn4HAvNmpy";
            var accessTokenSecret = "fiFvNoEASqyqWo3FuFr5JKBYyWlILihVLlGCTSxfqAtlv";

            Auth.SetUserCredentials(consumerKey, consumerSecret, accessToken, accessTokenSecret);

            var media = Upload.UploadImage(file1);

            var message = "Team1: " + string.Join(" ", labels);

            if (message.Length > 140)
            {
                message = message.Substring(0, 139);
            }

            var tweet = Tweet.PublishTweet(message, new PublishTweetOptionalParameters
            {
                Medias = new List <IMedia> {
                    media
                }
            });
        }
Exemple #15
0
        public async Task ExecuteAsync()
        {
            var keyName       = "TestIMage.png";
            var client        = new AmazonRekognitionClient(RegionEndpoint.USEast1);
            var labelsRequest = new DetectLabelsRequest
            {
                Image = new Image
                {
                    S3Object = new S3Object()
                    {
                        Name   = keyName,
                        Bucket = "rawimagestc1983"
                    }
                },
                MaxLabels     = 10,
                MinConfidence = 75f
            };

            var moderationRequest = new DetectModerationLabelsRequest
            {
                Image = new Image
                {
                    S3Object = new S3Object()
                    {
                        Name   = keyName,
                        Bucket = "rawimagestc1983"
                    }
                },
                MinConfidence = 60f
            };

            var labelsResponse = await client.DetectLabelsAsync(labelsRequest);

            var inappropriateResponse = await client.DetectModerationLabelsAsync(moderationRequest);

            Console.WriteLine("Detected Labels for Image");
            Console.WriteLine();

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

            foreach (ModerationLabel label in inappropriateResponse.ModerationLabels)
            {
                Console.WriteLine("Label: {0}\n Confidence: {1}\n Parent: {2}",
                                  label.Name, label.Confidence, label.ParentName);
            }
        }
Exemple #16
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)));
        }
Exemple #18
0
        public async Task <DetectLabelsResponse> GetLabels(string image)
        {
            var imagebyte = Convert.FromBase64String(image);

            using (MemoryStream ms = new MemoryStream(imagebyte)) {
                DetectLabelsRequest request = new DetectLabelsRequest
                {
                    Image = new Image()
                    {
                        Bytes = ms
                    }
                };
                var result = await GetImageLabels(request);

                return(result);
            }
        }
Exemple #19
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);
            }
        }
Exemple #20
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);
        }
Exemple #21
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);
            }
        }
        public async Task <DetectLabelsResponse> DetectLabels(DetectLabelParams dlp)
        {
            var detectlabelsRequest = new DetectLabelsRequest()
            {
                Image = new Image()
                {
                    Bytes    = new MemoryStream(),
                    S3Object = new S3Object()
                    {
                        Bucket  = dlp.BucketName,
                        Name    = dlp.PhotoName,
                        Version = dlp.PhotoVersion
                    }
                },

                MinConfidence = dlp.MinConfidence,
                MaxLabels     = dlp.MaxLabels
            };

            Task <DetectLabelsResponse> detectLabelsResponse = null;

            try
            {
                using (AmazonRekognitionClient recognitionClient = new AmazonRekognitionClient())
                {
                    detectLabelsResponse = recognitionClient.DetectLabelsAsync(detectlabelsRequest);
                }

                Console.WriteLine("Detected labels for " + dlp.PhotoName);
                foreach (Label label in detectLabelsResponse.Result.Labels)
                {
                    Console.WriteLine("{0}: {1}", label.Name, label.Confidence);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            return(await detectLabelsResponse ?? throw new Exception("response is null"));
        }
Exemple #23
0
        static Amazon.Rekognition.Model.Image ToBytesStream(string filename)
        {
            var image = new Amazon.Rekognition.Model.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);
            }
            var client  = new AmazonRekognitionClient();
            var request = new DetectLabelsRequest()
            {
                Image         = image,
                MaxLabels     = 10,
                MinConfidence = 77F
            };

            return(image);
        }
        public static async Task Detect()
        {
            //Get picture from local storage
            var photo = "img/sheep.png";

            var image = new Image();

            try
            {
                await using var fs = new FileStream(photo, FileMode.Open, FileAccess.Read);
                var 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();

            //Set settings for label detection
            var detectlabelsRequest = new DetectLabelsRequest
            {
                Image         = image,
                MaxLabels     = 3,
                MinConfidence = 77F
            };


            var detectLabelsResponse = await rekognitionClient.DetectLabelsAsync(detectlabelsRequest);

            Console.WriteLine("Detected labels for " + photo);
            foreach (var label in detectLabelsResponse.Labels)
            {
                Console.WriteLine("{0}: {1}", label.Name, label.Confidence);
            }
        }
Exemple #25
0
        private Dictionary <string, float> GetLabels(MemoryStream image)
        {
            Dictionary <string, float> labels = new Dictionary <string, float>();

            IAmazonRekognition reg = new AmazonRekognitionClient(ConfigurationManager.AppSettings["AWSAccessKey"], ConfigurationManager.AppSettings["AWSSecretKey"], RegionEndpoint.EUWest1);
            var lbreq = new DetectLabelsRequest()
            {
                Image = new Amazon.Rekognition.Model.Image {
                    Bytes = image
                },
                MaxLabels     = 100,
                MinConfidence = 0
            };

            var tagRepo = reg.DetectLabels(lbreq);

            foreach (var item in tagRepo.Labels)
            {
                labels.Add(item.Name, item.Confidence);
            }
            return(labels);
        }
Exemple #26
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);
            }
        }
        public async Task <DetectLabelsResponse> DetectAsync(MemoryStream data)
        {
            try
            {
                var image = new Image()
                {
                    Bytes = data
                };

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

                return(await rekognitionClient.DetectLabelsAsync(detectlabelsRequest));
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                return(new DetectLabelsResponse());
            }
        }
Exemple #28
0
        public static void Example()
        {
            const string photo  = "recognition/BM.jpg";
            const string bucket = "bhavesh-aws-bucket";

            var rekognitionClient = new AmazonRekognitionClient(RegionEndpoint.APSouth1);

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

            try
            {
                var detectLabels         = rekognitionClient.DetectLabelsAsync(detectlabelsRequest);
                var detectLabelsResponse = detectLabels.Result;
                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);
            }
        }
Exemple #29
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();
        }
Exemple #30
0
        private static async Task Main(string[] args)
        {
            const string AWS_ACCESS_KEY_ID     = "AWS_ACCESS_KEY_ID";
            const string AWS_SECRET_ACCESS_KEY = "AWS_SECRET_ACCESS_KEY";

            Console.WriteLine("Hello World!");

            var self = await File.ReadAllBytesAsync("assets\\self.jpg");

            var front = await File.ReadAllBytesAsync("assets\\front.png");

            var back = await File.ReadAllBytesAsync("assets\\back.png");

            var command = new AnalizeDocumentCommand {
                Self = self, Back = back, Front = front
            };

            var region = RegionEndpoint.USEast1;
            var client = new AmazonRekognitionClient(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, region);

            #region Analiza se é documento
            using (var stream = new MemoryStream(command.Back))
            {
                var request = new DetectLabelsRequest {
                    Image = new Image {
                        Bytes = stream
                    }
                };

                var response = await client.DetectLabelsAsync(request);

                var labels = response.Labels;

                foreach (var label in labels)
                {
                    var accuracy = Accuracy.GetAccuracy(label.Confidence);

                    if (DocumentTypes.IsValidDocument(label.Name))
                    {
                        if (accuracy.IsLow)
                        {
                            Console.WriteLine("Não é um documento");
                        }
                        if (accuracy.IsMedium)
                        {
                            Console.WriteLine("Pode ser que seja um documento");
                        }
                        if (accuracy.IsHigh)
                        {
                            Console.WriteLine("É muito provável que seja um documento");
                        }

                        break;
                    }
                }
            }
            #endregion

            #region Compara com a self
            using (var source = new MemoryStream(command.Self))
                using (var target = new MemoryStream(command.Front))
                {
                    var request = new CompareFacesRequest {
                        SourceImage = new Image {
                            Bytes = source
                        }, TargetImage = new Image {
                            Bytes = target
                        }
                    };

                    var response = await client.CompareFacesAsync(request);

                    var faces = response.FaceMatches;

                    if (faces.Count != 1)
                    {
                        Console.WriteLine("Resultado inconsistente");
                    }

                    var accuracy = Accuracy.GetAccuracy(faces.First().Similarity);

                    if (accuracy.IsLow)
                    {
                        Console.WriteLine("Esse documento não da mesma pessoa");
                    }
                    if (accuracy.IsMedium)
                    {
                        Console.WriteLine("Pode ser que este documento seja da mesma pessoa");
                    }
                    if (accuracy.IsHigh)
                    {
                        Console.WriteLine("É muito provável que este documento seja da mesma pessoa");
                    }
                }
            #endregion

            #region Verifica se é do portador válido
            using (var stream = new MemoryStream(command.Back))
            {
                var request = new DetectTextRequest {
                    Image = new Image {
                        Bytes = stream
                    }
                };

                var response = await client.DetectTextAsync(request);

                var texts = response.TextDetections;

                foreach (var text in texts)
                {
                    var accuracy = Accuracy.GetAccuracy(text.Confidence);

                    if ("CPF".Equals(text.DetectedText, StringComparison.InvariantCultureIgnoreCase))
                    {
                        if (accuracy.IsLow)
                        {
                            Console.WriteLine("não contém um número de CPF");
                        }
                        if (accuracy.IsMedium)
                        {
                            Console.WriteLine("Pode ser que contenha um número de CPF");
                        }
                        if (accuracy.IsHigh)
                        {
                            Console.WriteLine("É muito provável que contenha um número de CPF");
                        }

                        break;
                    }
                }
            }
            #endregion

            Console.WriteLine("That's all folks!");
        }