Overview
AWS Rekognition is a machine learning service that automates image and video analysis. It provides capabilities for developers to integrate computer vision into their applications without requiring expertise in machine learning. The service offers a range of pre-trained models for common tasks such as identifying objects and scenes, detecting faces, recognizing celebrities, and analyzing text within images. For more specialized use cases, developers can train custom models using the Rekognition Custom Labels feature to detect specific objects, brands, or activities relevant to their domain.
The service is designed for scalability and can process large volumes of visual content. Use cases span across various industries, including media and entertainment for content tagging and moderation, security for identity verification and fraud prevention, and retail for product recognition. AWS Rekognition integrates with other AWS services, such as Amazon S3 for storage and AWS Lambda for event-driven processing, enabling developers to build comprehensive visual analysis workflows.
For instance, an application could automatically moderate user-generated content by identifying inappropriate images or videos. Another example involves enhancing search capabilities by making image and video archives searchable based on their visual content, such as finding all videos containing a specific product or person. The API provides operations to analyze both static images and streaming or stored video, offering both synchronous and asynchronous processing options depending on the application's requirements. Developers can interact with Rekognition through its API, various SDKs, or the AWS Management Console to set up and manage their computer vision tasks. For detailed API interactions, developers can consult the AWS Rekognition API Reference.
The service's deployment model leverages AWS infrastructure, allowing for global availability and high reliability. The underlying machine learning models are continuously updated by AWS, aiming to improve accuracy and introduce new capabilities over time. This approach allows developers to benefit from ongoing improvements without manual model retraining. For comparison, Google Cloud Vision AI offers similar functionalities, including object detection and text recognition, showcasing common patterns in cloud-based computer vision services.
Key features
- Image Moderation: Automatically detects explicit, suggestive, or violent content in images and videos, assisting in content filtering.
- Face Detection and Analysis: Locates faces in images and videos, providing attributes such as gender, age range, emotions, and presence of eyeglasses or facial hair.
- Face Search: Compares detected faces against a collection of known faces to verify identity or find matches.
- Text in Image: Extracts text from images, useful for digitizing documents, license plate recognition, or understanding signs and labels.
- Custom Labels: Enables users to train custom machine learning models to identify objects, logos, and scenes specific to their business, using their own datasets.
- Video Analysis: Detects objects, activities, and faces in videos, tracks paths of objects and people, and recognizes celebrities, through both streaming and stored video analysis.
- Celebrity Recognition: Identifies well-known personalities in images and videos from a database of millions of celebrities.
Pricing
AWS Rekognition operates on a pay-as-you-go model. Costs are typically based on the number of images processed, the minutes of video analyzed, and usage of custom model training and inference. A free tier is available for new users.
| Service Component | Pricing Metric | Details (as of 2026-05-27) |
|---|---|---|
| Image Analysis | Images processed | First 1 million images/month: $1.00 per 1,000 images |
| Video Analysis | Minutes of video processed | First 10,000 minutes/month: $0.10 per minute |
| Custom Labels Training | Training hours | First 10 hours/month: $3.00 per hour |
| Custom Labels Inference | Inference units | First 1 million units/month: $0.001 per unit |
| Face Liveness | Checks performed | First 1 million checks/month: $0.10 per check |
For more detailed and up-to-date pricing information, refer to the official AWS Rekognition pricing page.
Common integrations
- Amazon S3: For storing images and videos that Rekognition will analyze. Developers can configure S3 Event Notifications to trigger Rekognition processing upon new object uploads.
- AWS Lambda: To execute serverless functions in response to Rekognition events or to orchestrate Rekognition API calls. Refer to the AWS Lambda Developer Guide for integration patterns.
- Amazon Kinesis Video Streams: For real-time video analysis and processing of live camera feeds. The Kinesis Video Streams Developer Guide provides details on streaming integration.
- Amazon DynamoDB: To store metadata and analysis results returned by Rekognition, enabling quick retrieval and search functionalities.
- Amazon CloudWatch: For monitoring Rekognition API usage, performance, and setting up alarms for operational issues.
- AWS Identity and Access Management (IAM): To manage permissions for who can access and use Rekognition services and resources securely.
Alternatives
- Google Cloud Vision AI: Offers a suite of pre-trained models for image analysis, including object detection, optical character recognition (OCR), and safe search detection.
- Azure AI Vision: Provides capabilities for image and video understanding, including image classification, object detection, and facial recognition, as part of Microsoft's AI services.
- Clarifai: A platform offering AI models for image, video, and text analysis, with options for custom model training and a focus on developer tools.
Getting started
The following Python example demonstrates how to detect labels (objects/scenes) in an image stored in an S3 bucket using the AWS SDK for Python (Boto3). Ensure you have configured your AWS credentials and replaced 'your-bucket-name' and 'your-image-key' with your specific details.
import boto3
def detect_labels_in_s3_image(bucket_name, photo_key):
client = boto3.client('rekognition')
response = client.detect_labels(
Image={
'S3Object': {
'Bucket': bucket_name,
'Name': photo_key
}
},
MaxLabels=10,
MinConfidence=70
)
print('Detected labels for ' + photo_key)
for label in response['Labels']:
print(" Label: " + label['Name'])
print(" Confidence: " + str(label['Confidence']))
print(" Instances:")
for instance in label['Instances']:
print(" Bounding box: ")
print(" Top: " + str(instance['BoundingBox']['Top']))
print(" Left: " + str(instance['BoundingBox']['Left']))
print(" Width: " + str(instance['BoundingBox']['Width']))
print(" Height: " + str(instance['BoundingBox']['Height']))
print(" Confidence: " + str(instance['Confidence']))
print(" Parents:")
for parent in label['Parents']:
print(" " + parent['Name'])
print("----------")
if __name__ == "__main__":
bucket = 'your-bucket-name' # Replace with your S3 bucket name
photo = 'your-image-key' # Replace with the key of your image in S3
detect_labels_in_s3_image(bucket, photo)
This script initializes the Rekognition client, calls the detect_labels API, and then prints the detected labels, their confidence scores, and any bounding box information for instances found in the image. For more examples and detailed instructions, consult the AWS Rekognition documentation.