Skip to content

Automatic image tagging (captioning) in french for images using the Amazon Recognition API -> the serverless way

Notifications You must be signed in to change notification settings

guillim/dgm-image-tags-french

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tag an Image (stored on AWS S3) with Amazon Rekognition

This simple project shows how to label an image in an S3 bucket with Amazon Rekognition API and return a list of labels.

Setup

You need to create an S3 bucket and upload at least one file. Be sure the permissions on the folder and file allow public access and that CORS is configured to allow access.

  • Install npm packages
npm install

Deploy

In order to deploy the function run:

serverless deploy

The expected result should be similar to:

Serverless: Packaging service...
Serverless: Uploading CloudFormation file to S3...
Serverless: Uploading service .zip file to S3 (3.78 MB)...
Serverless: Updating Stack...
Serverless: Checking Stack update progress...
..............
Serverless: Stack update finished...
Service Information
service: rekognition-analysis-s3-image
stage: dev
region: us-east-1
api keys:
  None
endpoints:
  POST - https://6bbhhv5q22.execute-api.us-east-1.amazonaws.com/dev/analysis
functions:
  imageAnalysis: rekognition-analysis-s3-image-dev-imageAnalysis

Use

You can now send an HTTP POST request directly to the endpoint using a tool like curl

curl -XPOST 'https://6bbhhv5q22.execute-api.us-east-1.amazonaws.com/dev/analysis' \
--header 'Content-Type: application/json' \
--data-raw '{
  "bucket": "mycatphotos",
  "imageName": "cat.jpg"
}'

Or use the following CLI (you have to create post.json according to the previous json)

serverless invoke local -f imageAnalysis -p post.json

The expected result should be similar to:

{
    "Labels": [
        {
            "Confidence": 96.59198760986328,
            "Name": "Animal"
        },
        {
            "Confidence": 96.59198760986328,
            "Name": "Cat"
        },
        {
            "Confidence": 96.59198760986328,
            "Name": "Pet"
        },
        {
            "Confidence": 96.59198760986328,
            "Name": "Siamese"
        }
    ]
}

Scaling

By default, AWS Lambda limits the total concurrent executions across all functions within a given region to 100. The default limit is a safety limit that protects you from costs due to potential runaway or recursive functions during initial development and testing. To increase this limit above the default, follow the steps in To request a limit increase for concurrent executions.

Acknowledgment

This repo was originaly created by serverless and all the credit is for them

About

Automatic image tagging (captioning) in french for images using the Amazon Recognition API -> the serverless way

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published