Invoking the Rekognition service using the AWS CLI

Now, let's invoke the object detection capability of Amazon Rekognition via the AWS CLI. This time, let's perform the object detection on an image that's stored in one of our S3 buckets. We will be using a sample image from Pexels, a website with thousands of royalty-free images. Download the image at https://www.pexels.com/photo/animal-beagle-canine-close-up-460823/ and upload it to the contents S3 bucket.

Here, we can see an adorable beagle puppy laying on what appears to be a bed of gravel: 

You should see the following output when you list the objects in your contents bucket:

$ aws s3 ls s3://<YOUR BUCKET>
2018-12-02 13:31:32 362844 animal-beagle-canine-460823.jpg

Now that we have an image, we can invoke the object detection capability of Rekognition via the following CLI command. Note that we must escape the { and } characters with a \, and we must not include any spaces when specifying the S3 object on the command line:

$ aws rekognition detect-labels --image S3Object=\{Bucket=<YOUR BUCKET>,Name=animal-beagle-canine-460823.jpg\}

The results come back almost instantly:

{
"Labels": [
{
"Name": "Mammal",
"Confidence": 98.9777603149414
},
{
"Name": "Pet",
"Confidence": 98.9777603149414
},
{
"Name": "Hound",
"Confidence": 98.9777603149414
},
{
"Name": "Dog",
"Confidence": 98.9777603149414
},
{
"Name": "Canine",
"Confidence": 98.9777603149414
},
{
"Name": "Animal",
"Confidence": 98.9777603149414
},
{
"Name": "Beagle",
"Confidence": 98.0347900390625
},
{
"Name": "Road",
"Confidence": 82.47952270507812
},
{
"Name": "Gravel",
"Confidence": 74.52912902832031
},
{
"Name": "Dirt Road",
"Confidence": 74.52912902832031
}
]
}

The output is in JSON format, just like we configured the CLI to the output. From the output, the Rekognition service detected several objects or labels. Rekognition is very sure that it detected a dog; it even identified the breed of the dog as a beagle! Rekognition also detected the gravel in the image, which could be a part of a dirt road. The AWS CLI can be very useful when trying out an AWS service, and to see how the output is structured when we are developing our applications.