Need to compare a given face input image across an already stored labelled collection using AWS - amazon-web-services

I have a collection of profile images from customers I need to be able to pass a selfie of the person and scan it across the collection of images and pull up the customer information.
Need to do the following using AWS Rekognition -
Create a collection - Done
Add Images to the collection - Whats the REST API syntax for this
While adding the images to the collection also tag it with the customer name.
Take a selfie portrait and search across the collection and return the tag information which matches.
Im using Flutter as a platform hence there is no support for AWS SDK so will need to make REST API calls.
However the AWS docs don't provide much information for REST support.

The APIs are documented. For example to detect faces in an image and add them to a collection, see IndexFaces.
I'd personally recommend getting comfortable with Rekognition via the awscli (or Python/boto3) briefly before you move to the Rest API.
On the name tagging front, you assign an 'external ID' to faces when adding them to a collection. That external ID is the correlator that you supply and that Rekognition stores. Later, when you ask Rekognition if a given face matches one already in a collection, Rekognition will return you the external ID. That can then be used as a lookup into some database that you have to identify the person's name, date of birth, or whatever.

Related

AWS S3 filename

I’m trying to build application with backend in java that allows users to create a text with images in it (something like a a personal blog). I’m planning to store these images to s3 bucket. When uploading image files to bucket i’m hashing the original name and store the hashed one in the bucket. Images are for display purpose only, no user will be able to download them. Frontend displays these images by getting a path to them from the server. So the question is, is there any need to store original name of the image file in the database? And what are the reasons, if any, of doing so?
I guess in general it is not needed because what is more important is how these resources are used or managed in the system.
Assuming your service is something like data access (similar to google drive), I don't think it's necessary to store it in DB, unless you want to make faster search queries.

AWS Rekognition: Add Feature Vector instead of PNG File

According to the AWS Rekognition SDK documentation,
IndexFaces SDK PHP Documentation
IndexFaces receives a face Image in PGN or JPEG and then obtains the "feature vector" of that Image, then add the feature vector to the database for later face matching.
Now suppose I want to add the same person to different new collections. Is it possible to obtain the feature vector once, and add that feature vector directly to the collections, instead of re-processing the image over and over again ?
Thanks in advance

AWS Rekognition: Add extra faces of same person

I can manage to add an image to AWS Rekognition Collection using the IndexFacesRequest.
However, to improve accuracy I would like to add more images of the same user. How do I let the request know it is the same user?
Rekognition does not allow you to provide multiple face images for a single face ID. But you can upload multiple faces of the same person and give them the same ExternalImageId. That's the ID that you typically use to correlate a face match to your person database. When your app later presents a face for matching, Rekognition will return zero or more face matches.

AWS Rekognition Service: Improve facial recognition accuracy

I'm finding the right way to use AWS Rekognition service.
My problem is How to verify a person image on multi collections, I'm reading Build Your Own Face Recognition Service Using Amazon Rekognition | AWS Machine Learning Blog from Amazon but cannot find the implementation document for it. My point is Face verification title.
Update 1:
My target is: Using AWS Rekognition to get person's info by their face.
My problem is: How to make AWS Rekognition improves its accuracy when recognizing a face.
What I tried:
Upload multi captured portraits of a person with same ExternalImageID but I'm not sure it works or not.
Finding a way to create Collection for each person, then upload person's portraits to their Collection but I don't how to search a face through multiple Collections.
I'm trying use S3 for storage people's images then using Lambda function to do something that I've not got yet.
Update 2:
What is your input material: Input materials are some people's portrait photo with ExternalImageID is their name (eg: my portrait photo will have ExternalImageID is "Long").
What are you trying to do: I'm trying to get ExternalImageID when I send a portrait photo of a registered person. (eg: with my other portrait photo, AWS has to response ExternalImageID is "Long").
Do you have it working, but it is not recognizing some people? Yes, it's work but sometimes it cannot recognize exactly people.
Please tell us your use-case / scenario and what you are trying to accomplish:
Create an AWS Rekognition collection with sample name (eg facetest).
Register some people with their name is ExternalImageID.
Submit an image to AWS Rekognition API to get ExternalImageID - his name.
Okay, so basically you have it working but it doesn't always recognise the person. I'll assume it does not even list the person in the response, even with a low percentage.
I would recommend adding multiple images of the same person to the Face Collection, specifying the same ExternalImageId for each image. (Use one Face Collection with all people in it, including multiple images of the same person.)
Please note that "If you provide the same image, specify the same collection, and use the same external ID in the IndexFaces operation, Amazon Rekognition doesn't save duplicate face metadata." However, adding different images with the same ExternalImageId should be fine.

Selecting Categories using API in Amazon MWS

I am developing a integration between a desktop application and Amazon MWS and need to be able to offer users a choice of categories to put the product they are listing into. My problem is that I can't find any way of programmatically getting the current categories from MWS using the API.
Additionally once I have a category reference to use I will need a way to the pull in and add the category specific XML child of ProductData (eg Home, Jewelry, Computers, etc) but they don't seem to be linked in any well defined way. For example, I can't say "if the chosen category is reference nnnnn ask them to populate the Computers specific ProductData", unless I write something myself to map them.
Has anyone else come across these problems and found a workable solution?
Any help appreciated...
I am currently exploring the option of limiting users to only selling products already listed on Amazon but still can't figure out how to pull in the correct category specific XML.
There are various product look-ups but they all seem to work from either my SKU (which will not yet be there) or Amazons ASIN (which I don't yet know)
You can use amazon advertizement api for this.
You have to create account on amazon affiliate programme.From that you have to get security credentials also .
After That go to BrowseNode Tree Page and download root categories list and save it to file or database.From there you get categoryname and their browseNodeId.
Then call BrowseNodeApi to get Child Categories for parent Category.
Please Follow This Link
http://docs.aws.amazon.com/AWSECommerceService/latest/DG/ProgrammingGuide.html
code for calling BrowseNodeApi
SignedRequestHelper helper =
new SignedRequestHelper(appConfig["AWSAccessKey"], appConfig["AWSSecretKey"], appConfig["endpoint"]);
string url = helper.Sign("http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService&Operation=BrowseNodeLookup&BrowseNodeId=" + value + "&AssociateTag=beginners00-00&Version=2011-08-01");
HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
// Get response
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
}
and also download SignatureGenerator class HMAC