使用 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
注意:要了解有关其他 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"
}
其中“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"
}
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
5)查看执行结果,并分析数据。
在 Twitter 上告诉我您对本教程的看法或在下方发表评论!
喜欢这篇文章吗?快来This Dot Labs了解我们吧!我们是一家技术咨询公司,专注于 JavaScript 和前端领域。我们专注于 Angular、React 和 Vue 等开源软件。
文章来源:https://dev.to/thisdotmedia/image-text-face-recognition-with-aws-rekognition-4efa