使用 AWS Rekognition 进行图像文本/面部识别👀 AWS Rekognition 是时候开始动手了

2025-06-07

使用 AWS Rekognition👀 进行图像文本/面部识别

AWS Rekognition

是时候动手了

AWS Rekognition

什么是 AWS Rekognition?

Rekognition 是一项 AWS 服务,可为您的图像提供深度学习视觉分析。只需向 AWS Rekognition API 提供图像或视频,即可轻松将 Rekognition 集成到您的应用程序中。该服务将识别以下对象:物体、人物、文本、场景和活动。“Amazon Rekognition 还提供高度准确的面部分析和面部识别。您可以检测、分析和比较面部特征,以用于各种用例,包括用户验证、分类、人数统计和公共安全。” - AWS 官方文档

现在让我们开始使用 AWS Rekognition。

让我们先尝试一些演示,看看 AWS Rekognition 是如何工作的。

1) 转到以下链接并播放演示。

是时候动手了

警告🚨:
1)您需要拥有一个 AWS 管理控制台帐户。2
)它会要求您提供信用卡信息,但由于它是免费套餐的一部分,因此您无需为本教程中使用的内容付费。

设置我们的 S3 存储桶

Amazon S3 或 Amazon Simple Storage Service 是 Amazon Web Services 提供的一项服务,通过 Web 服务接口提供对象存储。

1) 前往“查找服务”并查找 S3 2) 点击“创建存储桶” 3) 输入存储桶名称 thisdot-rk-YOUR_NAME。4 ) 点击“下一步”两次。5 ) 取消选中所有复选框以授予存储桶的公共访问权限。点击“下一步”




注意:我将这个存储桶公开,因为就本教程的目的而言,我并不担心安全性。


6) 点击“创建存储桶”
7) 是时候将一些图片上传到 S3 了。点击您刚刚创建的存储桶。8
)下载此图像并将其保存为 thisdot.png。https:
//thisdot-rk-pato.s3.amazonaws.com/thisdot.png
9) 单击“管理权限”下拉菜单,然后单击“授予对此对象的公共读取访问权限”。10 ) 单击“下一步” 11) 在“存储类”中,选择“标准”,然后单击“下一步” 12) 单击“上传”



设置我们的 Lambda 函数

AWS Lambda 是亚马逊提供的事件驱动的无服务器计算平台,是亚马逊网络服务 (AWS) 的一部分。它是一种计算服务,可响应事件运行代码并自动管理该代码所需的计算资源。

1) 前往“查找服务”并查找 Lambda 2) 点击“创建函数” 3) 在“Lambda 函数名称”中输入 thisdot-rk-YOUR_NAME 4) 在“运行时”下,点击下拉菜单,并选择“Python 3.7”。 5) 点击“创建函数” 6) 向下滚动到“函数代码”处。您应该会看到类似以下内容: 7) 删除​​编辑器中看到的所有内容,然后粘贴以下代码:








注意:将存储桶的名称更改为您创建的存储桶名称 thisdot-rk-YOUR_NAME。

以下代码将帮助我们使用 .detect_text 方法查找图像中的文本。

    import json
    import boto3

    s3 = boto3.resource('s3')
    def lambda_handler(event, context):
     print(event)
     dump = json.loads(json.dumps(event))
     fileName = dump['image']
     print(fileName)

     bucket='thisdot-rk-YOUR_NAME'

     client=boto3.client('rekognition')
     text=client.detect_text(Image={'S3Object': 
     {'Bucket':bucket,'Name':str(fileName)}})
     res = {
      "textFound": text
     }
     return res
Enter fullscreen mode Exit fullscreen mode

注意:要了解有关其他 AWS Boto Rekognition 功能的更多信息,请访问网站。

8) 向下滚动以更改Lambda 的基本设置
。9 ) 将内存更改为 512MB,并将超时更改为 2 分 30 秒。这是为了确保 Lambda 在处理图像时不会超时。10
) 一直滚动到顶部。在右上角,您应该会看到“保存”按钮。点击它。

使用 IAM 设置安全角色

AWS Identity and Access Management (IAM) 是一项 Web 服务,可帮助您安全地控制对 AWS 资源的访问。您可以使用 IAM 来控制哪些人经过身份验证(登录)并获得授权(具有权限)来使用资源。

1) 搜索 IAM 服务 (Services IAM)
2) 在左侧导航栏中,点击“角色”。3
) 您可以选择任何已创建的 Lambda 并赋予其特定角色。在本教程中,我们将选择以下 Lambda 以授予其访问 AWS Rekognition 的权限。

4) 然后单击“附加策略”
5) 搜索 rekognition
6) 选择 AmazonRekognitionFUllAccess 7) 单击“附加策略” 注意:您可以附加多个策略


测试时间

1) 返回您的 lambda 函数。2
) 在右上角,选择“选择测试事件”下拉菜单。3
) 然后选择“配置测试事件”
。4) 为您的事件命名
。5) 然后输入以下 JSON 对象。

        {
          "image": "thisdot.png"
        }    
Enter fullscreen mode Exit fullscreen mode

其中“thisdot.png”是您的 S3 存储桶内图像的名称。

6) 点击“创建”
。7) 右上角会出现“测试”按钮。点击它。8
) 你应该会看到一个绿色的框。点击“展开详细信息”。9 ) 查看响应对象。如你所见,它已经在图像中找到了我们的文本。


太棒了!对吧?

现在,我们来比较一下人脸。想象一下,你想看看一个人是否出现在同一张照片里。Rekognition 可以做到这一点。想象一下所有的可能性!

1)下载这两张图片。

源图像https://thepracticaldev.s3.amazonaws.com/i/ktpt1lx1ubzt3ilupph7.jpg

目标图像
https://thepracticaldev.s3.amazonaws.com/i/p5j8z6hiey8z8rkspms6.jpg

2) 按照前面提到的步骤将它们上传到 S3。

3) 返回你的 lambda,创建一个新的测试,或者编辑现有的测试。你的测试将如下所示:

      {
        "sourceImage": "source.jpg",
        "targetImage": "target.jpg"
      }
Enter fullscreen mode Exit fullscreen mode

4)然后,我们将修改 lambda 代码,以便能够比较人脸

    import json
    import boto3

    s3 = boto3.resource('s3')
    def lambda_handler(event, context):
     print(event)
     dump = json.loads(json.dumps(event))
     sourceImage = dump['sourceImage']
     targetImage = dump['targetImage']


     bucket='thisdot-rk-YOUR_NAME'

     client = boto3.client('rekognition')
     faceComparison= client.compare_faces(
     SourceImage={'S3Object': {'Bucket':bucket,'Name':str(sourceImage)}},
     TargetImage={'S3Object': {'Bucket':bucket,'Name':str(targetImage)}}
     )
     res = {
      "faceRecognition": faceComparison
     }
     return res
Enter fullscreen mode Exit fullscreen mode

5)查看执行结果,并分析数据。

在 Twitter 上告诉我您对本教程的看法或在下方发表评论!

喜欢这篇文章吗?快来This Dot Labs了解我们吧!我们是一家技术咨询公司,专注于 JavaScript 和前端领域。我们专注于 Angular、React 和 Vue 等开源软件。

文章来源:https://dev.to/thisdotmedia/image-text-face-recognition-with-aws-rekognition-4efa
PREV
这就是为什么你今天应该使用 Angular 9
NEXT
如何向 PWA 添加通知