你好 AWS - 使用 Amazon Rekognition 检测您自己的自定义标签 | Mendix

跳到主要内容

你好,AWS – 使用 Amazon Rekognition 检测您自己的自定义标签

在本博客中,我们将介绍 Amazon Rekognition 连接器,并了解在 Mendix.
Amazon Rekognition 是一项深度学习图像分析服务,允许您仅使用少量图像来训练自己的模型。
随着 Mendix 连接器,在您的应用中设置起来非常简单。从面部识别到创建您自己的自定义标签,您可以训练它来检测图像中的任何内容。
因此,我当然想出了一个非常实用且对日常生活有用的东西——我创建了一个应用程序来检测图像中不同种类的狗。这个灵感来自我自己的狗 Bean,它经常被问到:“它是什么品种的狗?”如果你曾经问过——它是什么品种的狗——那么,现在有一个应用程序可以解决这个问题!
抛开笑话不说,我想创建一些东西来展示训练 Rekognition 模型来检测任何你想要的东西是多么容易,而让它检测不同种类的狗似乎是一个有趣的例子。

在我们开始之前

在本篇博文中,我们将使用基于会话的凭证,这是我在上一篇文章中讨论过的。因此,如果您尚未阅读或观看过,请单击下面的链接返回并立即观看。今天,我们将继续上次所做的事情。

设置您的S3存储桶

创建 Rekognition 项目的第一步是创建将在其上训练模型的数据集。这意味着我们必须创建一个 Amazon S3 存储桶,然后我们可以上传图像来训练模型。要创建 S3 存储桶,请按照以下步骤操作:
  1. 登录 AWS 管理控制台并打开 Amazon S3控制台.然后我们要选择 创建存储桶.
  2. 输入存储桶的名称。我将命名为“HelloRekognition”。
  3. 在“Region”中,选择您希望存储桶所在的 AWS 区域。
    • 选择靠近您的区域以最大限度地减少延迟和成本并满足监管要求。
  4. 将其他所有内容保留为默认设置,向下滚动,我们可以点击 创建存储桶 按钮。
5 将图片上传到存储桶,但首先,请确保它们具有文件夹结构,并且文件夹名称正确。这些文件夹名称将用于创建 Amazon Rekognition 返回给您的标签。 
如果我们查看我的照片,我会将所有子文件夹放在一个父文件夹中,然后每个子文件夹都以狗的品种命名。一旦模型训练完成,Amazon Rekognition 就会将这些文件夹名称作为标签返回给我,同时返回一个介于 1 到 100 之间的确定性分数。
https://docs.aws.amazon.com/rekognition/latest/customlabels-dg/im-metrics-use.html

创建您的 Amazon Rekognition 模型

接下来,我们需要创建并训练您的 Amazon Rekognition 模型。这是一个非常简单的步骤
  1. 如果您以前从未在某个区域使用过 Amazon Rekognition,它会要求您创建一个 S3 存储桶。这与我们刚刚创建的存储桶是分开的 - 它只存储您的项目所需的信息。
    • 点击 创建 S3 存储桶 继续。
  2. 接下来,我们需要创建项目,我们将为此使用自定义标签。因此,在自定义标签页面上,我们可以单击“开始”
  3. 选择 创建项目.
    • 在“项目名称”中,输入项目名称。我将把我的项目命名为 你好AWS。 选 创建项目 在这里完成。
  4. 我们需要为新创建的项目创建一个数据集,在这里我们需要提供我们创建并上传照片的 s3 存储桶。
    • 选择 创建数据集.
    • 选择 从单个数据集开始
    • 选择从 Amazon S3 存储桶导入图像。
    • 在 S3 URI 中,输入 Amazon S3 存储桶位置和文件夹路径。我们需要父文件夹的路径
    • 接下来,我们可以选择根据文件夹自动为图像附加标签。
    • 选择 创建数据集. 现在应该打开您项目的数据集页面。

修改您的 s3 存储桶的策略

向下滚动并复制提供的策略。在新选项卡中,打开 S3 控制台并选择包含图像的存储桶。
点击 权限 标签向下滚动到 策略并点击 编辑 并粘贴该政策。
粘贴 Bucket 限制后,请确保删除所有前导空格:
更改校长 rekognition.amazonaws.com 服务到在每个实例中创建的角色的 ARN:
"Principal": {
  "Service" : "rekognition.amazonaws.com"
}
-
"Principal": {
  "AWS" : "arn:aws:iam::"
}
替换所有出现的项确实非常重要 — — 有四个实例需要替换。
点击 保存更改 保存策略更新。
返回 Amazon Rekognition 配置并单击 创建数据集 在 Amazon Rekognition 控制台中。根据图像数量,创建数据集可能需要几分钟时间。
最后,一旦创建了数据集,我们就需要打开它并训练模型,这可能需要一些时间,具体取决于数据集的大小
我们要做的最后一件事是 启动模型,这意味着我们实际上正在启动我们的模型以便我们可以使用它。
https://docs.aws.amazon.com/rekognition/latest/customlabels-dg/rm-start.html

设置你的 Mendix 应用

从 Studio Pro,我们可以打开 Marketplace 面板并搜索“Rekognition”。
在我的 Amazon Rekognition 页面上,我设置了一个简单的界面,允许我使用图片上传器小部件上传图片。我还有一个微流按钮,它将通过自定义微流调用 Amazon Rekognition。
您可以直接从工具箱中使用“检测自定义标签”,方法是从我们的工具箱中拖入 Amazon Rekognition 操作“检测自定义标签”,然后配置其余参数。我有一个简单的循环来保存数据并将其链接到我的 Amazon Rekognition 图像,以便标签可以显示在页面上。
请记住通过提供所有必需的参数来设置操作,正如我在下面的屏幕截图中所做的那样。

配置 Amazon Rekognition 常量

要完成 Amazon Rekognition Connector 的设置,我们只需在模块中设置一些常量,我们通过从 AWS 项目中复制 ARNS 来实现这一点。如果您查看文件常量和会话凭证,您可以找到在 Amazon Rekognition Connector 中填写所需的所有常量。
这些常量用于获取会话凭据操作,但还有一个文件夹,如果您愿意,也可以在其中使用获取静态凭据操作。在这种情况下,您必须确保配置了静态下的常量。虽然可以使用静态凭据,但首选的身份验证方法是基于会话的凭据。
一旦我们从这里完成了所有这些配置,连接器基本上就可以拖放到我们想要在应用程序中使用它的任何地方。
我确实需要做一个小改动,这是在微流“POST_v1_DetectCustomLabels”中。我在请求中添加了一个额外的标头“X-amz-security-token”,它将连接到凭证实体的会话令牌作为其值。

调用 Amazon Rekognition

一切都已完成,如果您已经按照步骤操作,您可以运行您的应用程序并进行测试!
如果你想看我测试一下,请观看视频并跳至#视频时间戳#
我知道我的应用程序的想法有点愚蠢——但我真正想向您展示的是,您可以使用非常小的数据集训练 Amazon Rekognition 来检测几乎任何您想要的东西。如果我可以训练它识别照片中的哈巴狗,那么想象一下创建检查应用程序或图像处理应用程序是多么容易。
如果你在任何时候遇到困难,请务必前往 AWS 研讨会并参加课程 使用 AWS 进行低代码应用程序开发 Mendix。它涵盖了我刚才所做的一切,但更加详细。此外,请务必前往我们的文档页面,了解有关连接器及其使用方法的另一个详细分析。

选择你的语言