{"id":34369,"date":"2024-06-05T07:00:00","date_gmt":"2024-06-05T14:00:00","guid":{"rendered":"https:\/\/cloudinary.com\/blog\/?p=34369"},"modified":"2025-11-26T17:38:34","modified_gmt":"2025-11-27T01:38:34","slug":"auto-tag-faces-aws-rekognition","status":"publish","type":"post","link":"https:\/\/cloudinary.com\/blog\/auto-tag-faces-aws-rekognition","title":{"rendered":"Auto-Tag Faces Using Cloudinary and AWS Rekognition"},"content":{"rendered":"\n<p><a href=\"https:\/\/riseaboveresearch.com\/rar-reports\/2024-worldwide-image-capture-forecast-2023-2028\/\">Rise Above Research<\/a> estimates that 1.6 trillion photos were taken in 2023, a 7.5% increase over 2022. Given the sheer volume of photos generated these days, indexing them by the person in the image has become humanly impossible.<\/p>\n\n\n\n<p>In this blog post, I\u2019ll show you how to \u201ctrain\u201d and tag faces by using Cloudinary and AWS Rekognition. (This post builds upon a <a href=\"https:\/\/aws.amazon.com\/blogs\/apn\/how-to-use-amazon-rekognition-on-cloudinary-to-auto-tag-faces-with-names\/\">previous one<\/a> that introduced the same idea.)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why Tag Faces?<\/h2>\n\n\n\n<p>You can identify and search based on the person in an image to save time and organize your image assets better.<\/p>\n\n\n\n<p>Use cases:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>You\u2019re an e-commerce company that works with influencers or models.&nbsp;<\/li>\n\n\n\n<li>You\u2019re a platform hosting marketing content or training material. The presenters and trainers are known.<\/li>\n\n\n\n<li>You\u2019re a sports agency and want to identify athletes in images.&nbsp;<\/li>\n<\/ul>\n\n\n\n<p><a href=\"https:\/\/docs.aws.amazon.com\/rekognition\/latest\/dg\/collections.html\">AWS Rekognition<\/a> can help you tag and group faces. Cloudinary\u2019s DAM then hosts your images. By combining the two, you can identify, tag, and offer search capability.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Set Up the Solution<\/h2>\n\n\n\n<p>Here\u2019s how you can set up the solution:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Set up AWS Lambda code to trigger from Cloudinary\u2019s <a href=\"https:\/\/cloudinary.com\/documentation\/notifications\">webhook notifications<\/a>.<\/li>\n\n\n\n<li>Create a structured metadata field for a person&#8217;s name.<\/li>\n\n\n\n<li>Add known people&#8217;s names.<\/li>\n\n\n\n<li>Train images for each person, which requires two to three images per person.<\/li>\n\n\n\n<li>Analyze each new uploaded image and add the person\u2019s name, if their face is recognized.<\/li>\n<\/ol>\n\n\n\n<p>In this blog post, steps 2, 3, and 4 use the DAM UI. It can be accomplished using <a href=\"https:\/\/cloudinary.com\/documentation\/admin_api#metadata_fields\">metadata APIs<\/a> as well. Let\u2019s look at each step in detail.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">AWS Lambda With Webhooks<\/h3>\n\n\n\n<p>This code requires AWS Lambda and <a href=\"https:\/\/docs.aws.amazon.com\/secretsmanager\/latest\/userguide\/intro.html\">AWS Secrets Manager<\/a>. Secrets manager is necessary for storing Cloudinary\u2019s API credentials on AWS without exposing it to the Lambda code.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Step 1: API Secrets<\/h4>\n\n\n\n<p>Using AWS Secrets Manager, create a secret. It should look like this:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/v1764207312\/blog-Auto-Tag_Faces_Using_Cloudinary_and_AWS_Rekognition-1.avif\" alt=\"AWS Secrets Manager\" style=\"width:606px;height:auto\"\/><\/figure><\/div>\n\n\n<p>Copy the ARN and keep it handy.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Step 2: Create Build<\/h4>\n\n\n\n<p>Clone the repo: <a href=\"https:\/\/github.com\/CloudinarySolutions\/cld-face-rekognition\">https:\/\/github.com\/CloudinarySolutions\/cld-face-rekognition<\/a>&nbsp;<\/p>\n\n\n\n<p>git clone <a href=\"https:\/\/github.com\/CloudinarySolutions\/cld-face-rekognition\">https:\/\/github.com\/CloudinarySolutions\/cld-face-rekognition<\/a><br>Once cloned, edit the file template.yaml. In the last line, copy and paste the ARN of your secret that you copied in the previous step.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/akshayranganath-res.cloudinary.com\/image\/upload\/f_auto,q_auto\/blog\/rekognition\/configure-secrets-manager.png \" alt=\"\"\/><\/figure>\n\n\n\n<p>Now, we can build the code. The code can be deployed using <a href=\"https:\/\/aws.amazon.com\/serverless\/sam\/\">AWS Sam<\/a>. The deployment process is as follows:<\/p>\n\n\n\n<p>Build the code locally by installing the dependencies. The code is then packaged into a ZIP file.<\/p>\n\n\n\n<p><code>sam build -m lambda\/requirements.txt<\/code><\/p>\n\n\n\n<p>Once built, it can be deployed with the following command:<\/p>\n\n\n\n<p><code>sam deploy --guided --profile my_profile<\/code><\/p>\n\n\n\n<p>This will deploy the code by creating a Lambda and setting up an AWS gateway.<\/p>\n\n\n\n<p>All the configurable parameters are defined in the file lambda\/params.py. To set up your Lambda, you may want to override the defaults and use Lambda\u2019s environment variables.<\/p>\n\n\n\n<p>In my case, I\u2019ll use one override for the field <code>EXTERNAL_ID<\/code>. This is the name of the metadata field that will hold the person\u2019s name. I\u2019ll set up this value to person_name. I\u2019ll create this metadata field after the next step.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/v1764207314\/blog-Auto-Tag_Faces_Using_Cloudinary_and_AWS_Rekognition-2.png\" alt=\"Environment variables with the key and value filed out\"\/><\/figure><\/div>\n\n\n<p>Once the Lambda and API gateway are set up, copy the URL for the API gateway. We\u2019ll need it for the next step. Alternatively, you can set this up as a Lambda function and not require the use of API Gateway.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Step 3: Webhook Notification<\/h4>\n\n\n\n<p>Navigate to <strong>Settings<\/strong> &gt; <strong>Webhook Notifications<\/strong>. Enter the API Gateway URL and enable the notifications for two events: <strong>Upload<\/strong> and <strong>Resource Metadata Changed<\/strong>.<\/p>\n\n\n\n<p>Here\u2019s a video on how to set this up.<\/p>\n\n\n<cld-video-player\n      cloud-name='akshayranganath'\n      public-id='\/blog\/rekognition\/setup-webhook'\n      js-config='{\"playbackRates\":[0.5,1,1.5,2]}'\n      style='max-width: ;'\n      class='c-video-player'\n      \n      core-version='2.12.3'\n      player-version='1.7.0'\n      >\n      <video\n        id='_video-player69d2abab9e11c'\n        data-cld-big-play-button='init'\n        data-cld-source-types='[\"hls\",\"webm\\\/vp9\",\"mp4\\\/h265\",\"mp4\"]'\n        controls\n        muted\n        class='cld-video-player cld-fluid wp-block-cloudinary-video-player  cld-video-player-skin-dark'\n      ><\/video>\n    <\/cld-video-player>\n\n\n<h3 class=\"wp-block-heading\">Create and Add People\u2019s Names&nbsp;<\/h3>\n\n\n\n<p>Once the code is ready and the integration between Cloudinary and Lambda is completed, we can create the metadata and add people&#8217;s names.<\/p>\n\n\n\n<p>Here\u2019s how to create a <strong>Structured Metadata<\/strong> field as a single-select value. It means that a single image can be associated with one person.<\/p>\n\n\n<cld-video-player\n      cloud-name='akshayranganath'\n      public-id='\/blog\/rekognition\/creating-metadata'\n      js-config='{\"playbackRates\":[0.5,1,1.5,2]}'\n      style='max-width: ;'\n      class='c-video-player'\n      \n      core-version='2.12.3'\n      player-version='1.7.0'\n      >\n      <video\n        id='_video-player69d2abab9e98d'\n        data-cld-big-play-button='init'\n        data-cld-source-types='[\"hls\",\"webm\\\/vp9\",\"mp4\\\/h265\",\"mp4\"]'\n        controls\n        muted\n        class='cld-video-player cld-fluid wp-block-cloudinary-video-player  cld-video-player-skin-dark'\n      ><\/video>\n    <\/cld-video-player>\n\n\n<h3 class=\"wp-block-heading\">Train to Recognize Faces<\/h3>\n\n\n\n<p>At this point, we\u2019ve finalized the Lamba code, webhook notifications, metadata field, and people\u2019s names.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/v1764207315\/blog-Auto-Tag_Faces_Using_Cloudinary_and_AWS_Rekognition-3.png\" alt=\"Lamba code. webhook notifications, metadata field, and names\"\/><\/figure><\/div>\n\n\n<p>You can now train by uploading a few sample images. Based on my tests, you\u2019ll need at least three images per person. Here\u2019s how you can train:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Add the person\u2019s name (if it isn\u2019t already added).<\/li>\n\n\n\n<li>Identify the folder marked for training. This is controlled by the <code>TRAIN_PATH<\/code> environment variable. The default is <code>test\/rekognition<\/code>.<\/li>\n\n\n\n<li>Upload images to the folder marked as \u201cTraining\u201d.&nbsp;<\/li>\n\n\n\n<li>Select an image or images.&nbsp;<\/li>\n\n\n\n<li>Set the <strong>Person Name<\/strong> field to your desired value.<\/li>\n<\/ul>\n\n\n\n<p>The webhook notification will send a message to Lambda. When it executes, it will invoke and add this face to the <a href=\"https:\/\/docs.aws.amazon.com\/rekognition\/latest\/dg\/create-collection-procedure.html\">faces collection<\/a>. Here\u2019s the training process in action:<\/p>\n\n\n<cld-video-player\n      cloud-name='akshayranganath'\n      public-id='\/blog\/rekognition\/train-for-new-faces'\n      js-config='{\"playbackRates\":[0.5,1,1.5,2]}'\n      style='max-width: ;'\n      class='c-video-player'\n      \n      core-version='2.12.3'\n      player-version='1.7.0'\n      >\n      <video\n        id='_video-player69d2abab9f2e5'\n        data-cld-big-play-button='init'\n        data-cld-source-types='[\"hls\",\"webm\\\/vp9\",\"mp4\\\/h265\",\"mp4\"]'\n        controls\n        muted\n        class='cld-video-player cld-fluid wp-block-cloudinary-video-player  cld-video-player-skin-dark'\n      ><\/video>\n    <\/cld-video-player>\n\n\n<h3 class=\"wp-block-heading\">Analyze Newly Uploaded Images<\/h3>\n\n\n\n<p>When you upload a new image, it\u2019s automatically analyzed by the Lamda code. Cloudinary will fire a webhook notification that triggers Lambda. Afterwards, it will:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Verify the notification is for an image upload.<\/li>\n\n\n\n<li>Verify that the uploaded image isn\u2019t in the same folder as training images.<\/li>\n\n\n\n<li>Pass the image to Rekognition for face identification.<\/li>\n<\/ul>\n\n\n\n<p>If a known face is found, invoke the <a href=\"https:\/\/cloudinary.com\/documentation\/image_upload_api_reference#metadata\">metadata<\/a> to update the metadata for the image.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/v1764207317\/blog-Auto-Tag_Faces_Using_Cloudinary_and_AWS_Rekognition-4.png\" alt=\"Update metadata field for person's name\"\/><\/figure>\n\n\n\n<p>Once images are updated with the face metadata, searching becomes easier. Here\u2019s how to test the new face being indexed and to also search for the images based on the person\u2019s name.<\/p>\n\n\n<cld-video-player\n      cloud-name='akshayranganath'\n      public-id='blog\/rekognition\/testing-and-searching'\n      js-config='{\"playbackRates\":[0.5,1,1.5,2]}'\n      style='max-width: ;'\n      class='c-video-player'\n      \n      core-version='2.12.3'\n      player-version='1.7.0'\n      >\n      <video\n        id='_video-player69d2abab9fd6c'\n        data-cld-big-play-button='init'\n        data-cld-source-types='[\"hls\",\"webm\\\/vp9\",\"mp4\\\/h265\",\"mp4\"]'\n        controls\n        muted\n        class='cld-video-player cld-fluid wp-block-cloudinary-video-player  cld-video-player-skin-dark'\n      ><\/video>\n    <\/cld-video-player>\n\n\n<p>In this video, I used the upload interface from Cloudinary\u2019s portal. To check the metadata status, I used Cloudinary\u2019s <a href=\"https:\/\/cloudinary.com\/documentation\/programmatic_asset_management_tutorials#cloudinary_cli\">CLI<\/a>. Within the CLI, I used the <a href=\"https:\/\/cloudinary.com\/documentation\/admin_api\">Admin API<\/a>\u2019s <a href=\"https:\/\/cloudinary.com\/documentation\/admin_api#get_details_of_a_single_resource_by_public_id\">Get Details of Single Resource<\/a> endpoint.<\/p>\n\n\n\n<p>That wraps up how to set up Lambda code, webhook notifications, training images for new faces, and automatically identifying and enriching newly uploaded images with face information. Now it\u2019s your turn to try it out!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Go Deeper Into Code<\/h2>\n\n\n\n<p>I wrote the code for Python 3.10 runtime. Here\u2019s an overview of the files:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>main.py<\/code>. The entry-point for lambda handler, it orchestrates the execution and decides if a request is for training or inference.<\/li>\n\n\n\n<li><code>awsutils.py<\/code>. Currently, it\u2019s used for accessing the Cloudinary\u2019s secrets from AWS Secrets Manager and returning back the values.<\/li>\n\n\n\n<li><code>facerecog.py<\/code>. Handles AWS Rekognition API calls, including creating a face collection, adding a new face to the collection, and extracting face match for a new image.<\/li>\n\n\n\n<li><code>cld_utils.py<\/code>. Works with Cloudinary\u2019s APIs to update the existing asset if a face match is found.<\/li>\n\n\n\n<li><code>params.py<\/code>. Holds some basic defaults. All the values specified in this file can be superseded by setting environment variables in the Lambda environment.<\/li>\n<\/ul>\n\n\n\n<p>For more in-depth details, please refer to the README file in the GitHub repository.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Rise Above Research estimates that 1.6 trillion photos were taken in 2023, a 7.5% increase over 2022. Given the sheer volume of photos generated these days, indexing them by the person in the image has become humanly impossible. In this blog post, I\u2019ll show you how to \u201ctrain\u201d and tag faces by using Cloudinary and [&hellip;]<\/p>\n","protected":false},"author":87,"featured_media":34413,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_cloudinary_featured_overwrite":false,"footnotes":""},"categories":[1],"tags":[332,370],"class_list":["post-34369","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-api","tag-image"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.6 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Auto-Tag Faces Using Cloudinary and AWS Rekognition<\/title>\n<meta name=\"description\" content=\"Rise Above Research estimates that 1.6 trillion photos were taken in 2023, a 7.5% increase over 2022. Given the sheer volume of photos generated these\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cloudinary.com\/blog\/auto-tag-faces-aws-rekognition\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Auto-Tag Faces Using Cloudinary and AWS Rekognition\" \/>\n<meta property=\"og:description\" content=\"Rise Above Research estimates that 1.6 trillion photos were taken in 2023, a 7.5% increase over 2022. Given the sheer volume of photos generated these\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cloudinary.com\/blog\/auto-tag-faces-aws-rekognition\" \/>\n<meta property=\"og:site_name\" content=\"Cloudinary Blog\" \/>\n<meta property=\"article:published_time\" content=\"2024-06-05T14:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-11-27T01:38:34+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1715373588\/aws_cloudinary_faces-blog\/aws_cloudinary_faces-blog.jpg?_i=AA\" \/>\n\t<meta property=\"og:image:width\" content=\"2000\" \/>\n\t<meta property=\"og:image:height\" content=\"1100\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"melindapham\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"NewsArticle\",\"@id\":\"https:\/\/cloudinary.com\/blog\/auto-tag-faces-aws-rekognition#article\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/auto-tag-faces-aws-rekognition\"},\"author\":{\"name\":\"melindapham\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/0d5ad601e4c3b5be89245dfb14be42d9\"},\"headline\":\"Auto-Tag Faces Using Cloudinary and AWS Rekognition\",\"datePublished\":\"2024-06-05T14:00:00+00:00\",\"dateModified\":\"2025-11-27T01:38:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/auto-tag-faces-aws-rekognition\"},\"wordCount\":1081,\"publisher\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/auto-tag-faces-aws-rekognition#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1715373588\/aws_cloudinary_faces-blog\/aws_cloudinary_faces-blog.jpg?_i=AA\",\"keywords\":[\"API\",\"Image\"],\"inLanguage\":\"en-US\",\"copyrightYear\":\"2024\",\"copyrightHolder\":{\"@id\":\"https:\/\/cloudinary.com\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/cloudinary.com\/blog\/auto-tag-faces-aws-rekognition\",\"url\":\"https:\/\/cloudinary.com\/blog\/auto-tag-faces-aws-rekognition\",\"name\":\"Auto-Tag Faces Using Cloudinary and AWS Rekognition\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/auto-tag-faces-aws-rekognition#primaryimage\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/auto-tag-faces-aws-rekognition#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1715373588\/aws_cloudinary_faces-blog\/aws_cloudinary_faces-blog.jpg?_i=AA\",\"datePublished\":\"2024-06-05T14:00:00+00:00\",\"dateModified\":\"2025-11-27T01:38:34+00:00\",\"description\":\"Rise Above Research estimates that 1.6 trillion photos were taken in 2023, a 7.5% increase over 2022. Given the sheer volume of photos generated these\",\"breadcrumb\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/auto-tag-faces-aws-rekognition#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/cloudinary.com\/blog\/auto-tag-faces-aws-rekognition\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/auto-tag-faces-aws-rekognition#primaryimage\",\"url\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1715373588\/aws_cloudinary_faces-blog\/aws_cloudinary_faces-blog.jpg?_i=AA\",\"contentUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1715373588\/aws_cloudinary_faces-blog\/aws_cloudinary_faces-blog.jpg?_i=AA\",\"width\":2000,\"height\":1100},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/cloudinary.com\/blog\/auto-tag-faces-aws-rekognition#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/cloudinary.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Auto-Tag Faces Using Cloudinary and AWS Rekognition\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#website\",\"url\":\"https:\/\/cloudinary.com\/blog\/\",\"name\":\"Cloudinary Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/cloudinary.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\",\"name\":\"Cloudinary Blog\",\"url\":\"https:\/\/cloudinary.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA\",\"contentUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA\",\"width\":312,\"height\":60,\"caption\":\"Cloudinary Blog\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/0d5ad601e4c3b5be89245dfb14be42d9\",\"name\":\"melindapham\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/e6f989fa97fe94be61596259d8629c3df65aec4c7da5c0000f90d810f313d4f4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/e6f989fa97fe94be61596259d8629c3df65aec4c7da5c0000f90d810f313d4f4?s=96&d=mm&r=g\",\"caption\":\"melindapham\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Auto-Tag Faces Using Cloudinary and AWS Rekognition","description":"Rise Above Research estimates that 1.6 trillion photos were taken in 2023, a 7.5% increase over 2022. Given the sheer volume of photos generated these","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/cloudinary.com\/blog\/auto-tag-faces-aws-rekognition","og_locale":"en_US","og_type":"article","og_title":"Auto-Tag Faces Using Cloudinary and AWS Rekognition","og_description":"Rise Above Research estimates that 1.6 trillion photos were taken in 2023, a 7.5% increase over 2022. Given the sheer volume of photos generated these","og_url":"https:\/\/cloudinary.com\/blog\/auto-tag-faces-aws-rekognition","og_site_name":"Cloudinary Blog","article_published_time":"2024-06-05T14:00:00+00:00","article_modified_time":"2025-11-27T01:38:34+00:00","og_image":[{"width":2000,"height":1100,"url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1715373588\/aws_cloudinary_faces-blog\/aws_cloudinary_faces-blog.jpg?_i=AA","type":"image\/jpeg"}],"author":"melindapham","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"NewsArticle","@id":"https:\/\/cloudinary.com\/blog\/auto-tag-faces-aws-rekognition#article","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/auto-tag-faces-aws-rekognition"},"author":{"name":"melindapham","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/0d5ad601e4c3b5be89245dfb14be42d9"},"headline":"Auto-Tag Faces Using Cloudinary and AWS Rekognition","datePublished":"2024-06-05T14:00:00+00:00","dateModified":"2025-11-27T01:38:34+00:00","mainEntityOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/auto-tag-faces-aws-rekognition"},"wordCount":1081,"publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/auto-tag-faces-aws-rekognition#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1715373588\/aws_cloudinary_faces-blog\/aws_cloudinary_faces-blog.jpg?_i=AA","keywords":["API","Image"],"inLanguage":"en-US","copyrightYear":"2024","copyrightHolder":{"@id":"https:\/\/cloudinary.com\/#organization"}},{"@type":"WebPage","@id":"https:\/\/cloudinary.com\/blog\/auto-tag-faces-aws-rekognition","url":"https:\/\/cloudinary.com\/blog\/auto-tag-faces-aws-rekognition","name":"Auto-Tag Faces Using Cloudinary and AWS Rekognition","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/auto-tag-faces-aws-rekognition#primaryimage"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/auto-tag-faces-aws-rekognition#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1715373588\/aws_cloudinary_faces-blog\/aws_cloudinary_faces-blog.jpg?_i=AA","datePublished":"2024-06-05T14:00:00+00:00","dateModified":"2025-11-27T01:38:34+00:00","description":"Rise Above Research estimates that 1.6 trillion photos were taken in 2023, a 7.5% increase over 2022. Given the sheer volume of photos generated these","breadcrumb":{"@id":"https:\/\/cloudinary.com\/blog\/auto-tag-faces-aws-rekognition#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cloudinary.com\/blog\/auto-tag-faces-aws-rekognition"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/auto-tag-faces-aws-rekognition#primaryimage","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1715373588\/aws_cloudinary_faces-blog\/aws_cloudinary_faces-blog.jpg?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1715373588\/aws_cloudinary_faces-blog\/aws_cloudinary_faces-blog.jpg?_i=AA","width":2000,"height":1100},{"@type":"BreadcrumbList","@id":"https:\/\/cloudinary.com\/blog\/auto-tag-faces-aws-rekognition#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cloudinary.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Auto-Tag Faces Using Cloudinary and AWS Rekognition"}]},{"@type":"WebSite","@id":"https:\/\/cloudinary.com\/blog\/#website","url":"https:\/\/cloudinary.com\/blog\/","name":"Cloudinary Blog","description":"","publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cloudinary.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/cloudinary.com\/blog\/#organization","name":"Cloudinary Blog","url":"https:\/\/cloudinary.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA","width":312,"height":60,"caption":"Cloudinary Blog"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/0d5ad601e4c3b5be89245dfb14be42d9","name":"melindapham","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/e6f989fa97fe94be61596259d8629c3df65aec4c7da5c0000f90d810f313d4f4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e6f989fa97fe94be61596259d8629c3df65aec4c7da5c0000f90d810f313d4f4?s=96&d=mm&r=g","caption":"melindapham"}}]}},"jetpack_featured_media_url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1715373588\/aws_cloudinary_faces-blog\/aws_cloudinary_faces-blog.jpg?_i=AA","_links":{"self":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/34369","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/users\/87"}],"replies":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/comments?post=34369"}],"version-history":[{"count":25,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/34369\/revisions"}],"predecessor-version":[{"id":39440,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/34369\/revisions\/39440"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media\/34413"}],"wp:attachment":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media?parent=34369"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/categories?post=34369"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/tags?post=34369"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}