コード例 #1
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);
        }
    }
コード例 #2
0
ファイル: Program.cs プロジェクト: slarsen88/CloudComputing
        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();
        }
コード例 #3
0
        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);
            }
        }
コード例 #4
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);
            }
        }
コード例 #5
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);
        }
コード例 #6
0
        private string DetectObjects(MemoryStream memoryStream, out bool isDetectFace)
        {
            List <string> responseText     = new List <string>();
            string        detectedResponse = "";

            isDetectFace = false;
            try
            {
                var detectResponses = client.DetectLabels(new DetectLabelsRequest
                {
                    MinConfidence = 80,
                    Image         = new Image
                    {
                        Bytes = memoryStream
                    },
                    MaxLabels = 10
                });
                if (detectResponses != null && detectResponses.HttpStatusCode == HttpStatusCode.OK && detectResponses.Labels.Count > 0)
                {
                    foreach (var item in detectResponses.Labels)
                    {
                        if (item.Name.Contains("Human") || item.Name.Contains("People") || item.Name.Contains("Person"))
                        {
                            isDetectFace = true;
                        }
                        else
                        {
                            responseText.Add(item.Name);
                        }
                    }
                    if (responseText.Count > 0)
                    {
                        detectedResponse = "And you also seeing " + string.Join(", ", responseText.ToArray());
                    }
                }
                else
                {
                    detectedResponse = "No objects Detected";
                }
            }
            catch
            {
                detectedResponse = "No objects Detected";
            }
            return(detectedResponse);
        }
コード例 #7
0
ファイル: Program.cs プロジェクト: softfactories/ai_labs
        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);
            }
        }
コード例 #8
0
        public void RekognitionDetectLabels()
        {
            #region to-detect-labels-1481834255770

            var client   = new AmazonRekognitionClient();
            var response = client.DetectLabels(new DetectLabelsRequest
            {
                Image = new Image {
                    S3Object = new S3Object {
                        Bucket = "mybucket",
                        Name   = "myphoto"
                    }
                },
                MaxLabels     = 123,
                MinConfidence = 70
            });

            List <Label> labels = response.Labels;

            #endregion
        }
コード例 #9
0
ファイル: ValuesController.cs プロジェクト: daknes/AuHack2017
        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);
        }
コード例 #10
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();
        }
コード例 #11
0
        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));
        }
コード例 #12
0
ファイル: MainWindow.xaml.cs プロジェクト: hoanglong1698/AWS
        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
            {
            }
        }