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); }
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); } }
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; } }
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); }
internal DetectLabelsResponse DetectLabels(DetectLabelsRequest request) { var marshaller = new DetectLabelsRequestMarshaller(); var unmarshaller = DetectLabelsResponseUnmarshaller.Instance; return(Invoke <DetectLabelsRequest, DetectLabelsResponse>(request, marshaller, unmarshaller)); }
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); }
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(); }
/// <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)); }
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); } }
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()); }
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 } }); }
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); } }
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 <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); } }
// 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); } }
// 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); }
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")); }
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); } }
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); }
// 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()); } }
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); } }
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(); }
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!"); }