使用计算机视觉通过 Amazon Rekognition 自定义标签 PlatoBlockchain 数据智能来衡量农业产量。 垂直搜索。 哎。

使用计算机视觉通过 Amazon Rekognition 自定义标签测量农业产量

在农业部门,识别和计算树上果实数量的问题在作物估算中起着重要作用。 租用和租赁树木的概念越来越流行,树主每年在收获前根据估计的果实产量出租树木。 手动计数水果的常见做法是一个耗时且劳动密集型的过程。 为了在您的作物管理系统中获得更好的结果,这是最困难但最重要的任务之一。 这种对水果和花卉数量的估计有助于农民做出更好的决策——不仅是在租赁价格方面,而且在种植实践和植物病害预防方面也是如此。

这就是用于计算机视觉 (CV) 的自动化机器学习 (ML) 解决方案可以帮助农民的地方。 Amazon Rekognition自定义标签 是一项完全托管的计算机视觉服务,允许开发人员构建自定义模型来分类和识别图像中特定于您的业务的对象。

Rekognition 自定义标签不要求您具备任何计算机视觉专业知识。 您只需上传数十张而不是数千张图片即可开始。 如果图像已被标记,您只需单击几下即可开始训练模型。 如果没有,您可以直接在 Rekognition 自定义标签控制台中标记它们,或者使用 亚马逊SageMaker地面真相 给它们贴上标签。 Rekognition Custom Labels 使用迁移学习来自动检查训练数据、选择正确的模型框架和算法、优化超参数并训练模型。 当您对模型的准确性感到满意时,您可以一键开始托管经过训练的模型。

在这篇博文中,我们展示了如何使用 Rekognition 自定义标签构建端到端解决方案来检测和计数水果以衡量农业产量。

解决方案概述

我们使用以下步骤创建自定义模型来检测水果:

  1. 使用包含水果的图像标记数据集 亚马逊SageMaker地面真相.
  2. 在 Rekognition 自定义标签中创建一个项目。
  3. 导入您的标记数据集。
  4. 训练模型。
  5. 使用自动生成的API端点测试新的自定义模型。

Rekognition 自定义标签可让您在 Amazon Rekognition 控制台上管理 ML 模型训练过程,从而简化端到端模型开发和推理过程。

先决条件

要创建农业产量测量模型,您首先需要准备一个数据集来训练模型。 对于这篇文章,我们的数据集由水果图像组成。 下图显示了一些示例。

我们从自己的花园中获取图像。 您可以从以下位置下载图像文件 GitHub回购.

在这篇文章中,我们仅使用少量图片来展示水果产量用例。 您可以进一步试验更多图像。

要准备数据集,请完成以下步骤:

  1. 创建 亚马逊简单存储服务 (Amazon S3)存储桶。
  2. 在此存储桶内创建两个文件夹,称为 raw_datatest_data, 存储用于标记和模型测试的图像。
  3. 上传 将图像从 GitHub 存储库上传到各自的文件夹。
    使用计算机视觉通过 Amazon Rekognition 自定义标签 PlatoBlockchain 数据智能来衡量农业产量。 垂直搜索。 哎。

上传的图片没有标签。 在以下步骤中标记图像。

使用 Ground Truth 标记您的数据集

要训​​练 ML 模型,您需要标记图像。 Ground Truth 提供了一个简单的过程来标记图像。 标记任务由人工执行; 在这篇文章中,您将创建一个私人劳动力。 您可以使用 亚马逊Mechanical Turk 用于大规模标记。

创建标签员工

让我们首先创建我们的标签劳动力。 完成以下步骤:

  1. 在SageMaker控制台上, 地面真相 在导航窗格中,选择 标记劳动力.
  2. 点击 私做 标签,选择 建立私人团队.
    使用计算机视觉通过 Amazon Rekognition 自定义标签 PlatoBlockchain 数据智能来衡量农业产量。 垂直搜索。 哎。
  3. 针对 队名,输入您的员工姓名(对于此帖子, labeling-team).
  4. 建立私人团队.
    使用计算机视觉通过 Amazon Rekognition 自定义标签 PlatoBlockchain 数据智能来衡量农业产量。 垂直搜索。 哎。
  5. 邀请新员工。
    使用计算机视觉通过 Amazon Rekognition 自定义标签 PlatoBlockchain 数据智能来衡量农业产量。 垂直搜索。 哎。
  6. 通过电子邮件地址添加工作人员 部分,输入您的工作人员的电子邮件地址。 对于这篇文章,请输入您自己的电子邮件地址。
  7. 邀请新员工.
    使用计算机视觉通过 Amazon Rekognition 自定义标签 PlatoBlockchain 数据智能来衡量农业产量。 垂直搜索。 哎。

您已经创建了一个标签劳动力,您将在下一步创建标签作业时使用它。

创建 Ground Truth 标记作业

要出色地完成标记工作,请完成以下步骤:

  1. 在SageMaker控制台上, 地面真相,选择 标签工作.
  2. 创建标签作业.
    使用计算机视觉通过 Amazon Rekognition 自定义标签 PlatoBlockchain 数据智能来衡量农业产量。 垂直搜索。 哎。
  3. 针对 工作名称,输入 fruits-detection.
  4. 选择 我想指定与标签作业名称不同的标签属性名称.
  5. 针对 标签属性名称¸输入 Labels.
  6. 针对 输入数据设置, 选择 自动数据设置.
  7. 针对 输入数据集的 S3 位置,输入图像的 S3 位置,使用您之前创建的存储桶 (s3://{your-bucket-name}/raw-data/images/).
  8. 针对 输出数据集的 S3 位置, 选择 指定新位置 并输入带注释数据的输出位置(s3://{your-bucket-name}/annotated-data/).
  9. 针对 数据类型,选择 图片.
  10. 完成数据设置.
    这将创建映像清单文件并更新 S3 输入位置路径。 等待消息“输入数据连接成功”。
    使用计算机视觉通过 Amazon Rekognition 自定义标签 PlatoBlockchain 数据智能来衡量农业产量。 垂直搜索。 哎。
  11. 扩大 附加配置.
  12. 确认它 完整数据集 被选中。
    这用于指定是要将所有图像提供给标记作业还是基于过滤器或随机采样的图像子集。
    使用计算机视觉通过 Amazon Rekognition 自定义标签 PlatoBlockchain 数据智能来衡量农业产量。 垂直搜索。 哎。
  13. 针对 任务类别,选择 图片 因为这是图像注释的任务。
  14. 因为这是一个对象检测用例,对于 任务选择, 选择 边界框.
  15. 将其他选项保留为默认值并选择 下一页.
    使用计算机视觉通过 Amazon Rekognition 自定义标签 PlatoBlockchain 数据智能来衡量农业产量。 垂直搜索。 哎。
  16. 下一页.
    使用计算机视觉通过 Amazon Rekognition 自定义标签 PlatoBlockchain 数据智能来衡量农业产量。 垂直搜索。 哎。
    现在您指定您的工作人员并配置标签工具。
  17. 针对 工人类型, 选择 私做.对于这篇文章,您使用内部劳动力来注释图像。 您还可以选择公共合同工(亚马逊机械土耳其人) 或合作伙伴劳动力(供应商管理) 取决于您的用例。
  18. 对于私人团队¸ 选择您之前创建的团队。使用计算机视觉通过 Amazon Rekognition 自定义标签 PlatoBlockchain 数据智能来衡量农业产量。 垂直搜索。 哎。
  19. 将其他选项保留为默认值并向下滚动到 边界框标注工具.在标签工具中为自有标签团队提供明确的说明至关重要。 这些说明在标注时充当注释者的指南。 好的说明是简洁的,因此我们建议将口头或文字说明限制在两个句子内,并专注于视觉说明。 在图像分类的情况下,我们建议在每个类别中提供一个标记图像作为说明的一部分。
  20. 添加两个标签: fruitno_fruit.
  21. 输入详细说明 要提供的描述字段 对工人的指示。 例如: You need to label fruits in the provided image. Please ensure that you select label 'fruit' and draw the box around the fruit just to fit the fruit for better quality of label data. You also need to label other areas which look similar to fruit but are not fruit with label 'no_fruit'.您还可以选择提供良好和不良标签图像的示例。 您需要确保这些图像可公开访问。
  22. 创建 创建标签作业。
    使用计算机视觉通过 Amazon Rekognition 自定义标签 PlatoBlockchain 数据智能来衡量农业产量。 垂直搜索。 哎。

成功创建作业后,下一步是标记输入图像。

开始贴标作业

成功创建作业后,作业的状态为 InProgress. 这意味着创建工作并通过电子邮件通知私人劳动力分配给他们的任务。 由于您已将任务分配给自己,因此您应该会收到一封电子邮件,其中包含登录 Ground Truth Labeling 项目的说明。

使用计算机视觉通过 Amazon Rekognition 自定义标签 PlatoBlockchain 数据智能来衡量农业产量。 垂直搜索。 哎。

  1. 打开电子邮件并选择提供的链接。
  2. 输入电子邮件中提供的用户名和密码。
    您可能需要在登录后将电子邮件中提供的临时密码更改为新密码。
  3. 登录后,选择您的工作并选择 开始工作.
    使用计算机视觉通过 Amazon Rekognition 自定义标签 PlatoBlockchain 数据智能来衡量农业产量。 垂直搜索。 哎。
    您可以使用提供的工具在图像中放大、缩小、移动和绘制边界框。
  4. 选择您的标签 (fruit or no_fruit) 然后在图像中绘制一个边界框来对其进行注释。
  5. 完成后,选择 提交.

现在,您已经正确标记了 ML 模型将用于训练的图像。

创建您的 Amazon Rekognition 项目

要创建您的农业产量测量项目,请完成以下步骤:

  1. 在Amazon Rekognition控制台上,选择 自定义标签.
  2. 立即购买.
  3. 针对 项目名,输入 fruits_yield.
  4. 创建项目.
    使用计算机视觉通过 Amazon Rekognition 自定义标签 PlatoBlockchain 数据智能来衡量农业产量。 垂直搜索。 哎。

您也可以在 项目 页。 您可以访问 项目 页面通过导航窗格。 下一步是提供图像作为输入。

导入您的数据集

要创建您的农业产量测量模型,您首先需要导入一个数据集来训练模型。 对于这篇文章,我们的数据集已经使用 Ground Truth 进行了标记。

  1. 针对 导入图像, 选择 导入由 SageMaker Ground Truth 标记的图像.
    使用计算机视觉通过 Amazon Rekognition 自定义标签 PlatoBlockchain 数据智能来衡量农业产量。 垂直搜索。 哎。
  2. 针对 清单文件位置,输入清单文件的 S3 存储桶位置 (s3://{your-bucket-name}/fruits_image/annotated_data/fruits-labels/manifests/output/output.manifest).
  3. 创建数据集.
    使用计算机视觉通过 Amazon Rekognition 自定义标签 PlatoBlockchain 数据智能来衡量农业产量。 垂直搜索。 哎。

您可以看到您的标记数据集。

使用计算机视觉通过 Amazon Rekognition 自定义标签 PlatoBlockchain 数据智能来衡量农业产量。 垂直搜索。 哎。

现在您有了 ML 模型的输入数据集,可以开始对其进行训练。

训练你的模型

标记图像后,就可以训练模型了。

  1. 火车模型.
  2. 针对 选择项目, 选择你的项目 fruits_yield.
  3. 火车模型.
    使用计算机视觉通过 Amazon Rekognition 自定义标签 PlatoBlockchain 数据智能来衡量农业产量。 垂直搜索。 哎。

等待训练完成。 现在您可以开始测试这个经过训练的模型的性能了。

测试你的模型

您的农业产量测量模型现在可以使用了,应该在 Running 状态。 要测试模型,请完成以下步骤:

第 1 步:启动模型

在您的模型详细信息页面上, 使用型号 标签,选择 Start 开始.
使用计算机视觉通过 Amazon Rekognition 自定义标签 PlatoBlockchain 数据智能来衡量农业产量。 垂直搜索。 哎。
Rekognition 自定义标签还提供用于启动、使用和停止模型的 API 调用。

第 2 步:测试模型

当模型在 Running 状态,您可以使用示例测试脚本 analyzeImage.py 计算图像中水果的数量。

  1. 从 下载此脚本 GitHub回购.
  2. 编辑此文件以替换参数 bucket 使用您的存储桶名称和 model 使用您的 Amazon Rekognition 模型 ARN。

我们使用参数 photomin_confidence 作为此 Python 脚本的输入。

使用计算机视觉通过 Amazon Rekognition 自定义标签 PlatoBlockchain 数据智能来衡量农业产量。 垂直搜索。 哎。

您可以使用 AWS命令行界面 (AWS CLI) 或使用 AWS 云外壳. 在我们的示例中,我们通过 CloudShell 控制台运行脚本。 请注意,CloudShell 是 免费使用.

确保使用命令安装所需的依赖项 pip3 install boto3 PILLOW 如果尚未安装。
使用计算机视觉通过 Amazon Rekognition 自定义标签 PlatoBlockchain 数据智能来衡量农业产量。 垂直搜索。 哎。

  1. 上传文件 analyzeImage.py 到 CloudShell 使用 行动 菜单。
    使用计算机视觉通过 Amazon Rekognition 自定义标签 PlatoBlockchain 数据智能来衡量农业产量。 垂直搜索。 哎。

以下屏幕截图显示了输出,它在输入图像中检测到两个水果。 我们提供了 15.jpeg 作为照片参数和 85 作为 min_confidence 计算值。

使用计算机视觉通过 Amazon Rekognition 自定义标签 PlatoBlockchain 数据智能来衡量农业产量。 垂直搜索。 哎。

以下示例显示带有两个边界框的图像 15.jpeg。

使用计算机视觉通过 Amazon Rekognition 自定义标签 PlatoBlockchain 数据智能来衡量农业产量。 垂直搜索。 哎。

您可以对其他图像运行相同的脚本,并通过进一步更改置信度分数进行实验。

第 3 步:停止模型

完成后,请记住停止模型以避免产生不必要的费用。 在您的模型详细信息页面上,在使用模型选项卡上,选择停止。

清理

为避免产生不必要的费用,请在不使用时删除本演练中使用的资源。 我们需要删除 Amazon Rekognition 项目和 S3 存储桶。

删除 Amazon Rekognition 项目

要删除 Amazon Rekognition 项目,请完成以下步骤:

  1. 在Amazon Rekognition控制台上,选择 使用自定义标签.
  2. 前往在线商城.
  3. 在导航窗格中,选择 项目.
  4. 点击 项目 页面,选择要删除的项目。
    1. 删除.
      删除项目 出现对话框。
  5. 如果项目没有关联模型:
    1. 输入 删除 删除项目。
    2. 删除 删除项目。
  6. 如果项目有关联的模型或数据集:
    1. 输入 删除 确认您要删除模型和数据集。
    2. 选择任一 删除关联模型, 删除关联数据集删除关联的数据集和模型,取决于模型是否具有数据集、模型或两者兼有。

    模型删除可能需要一段时间才能完成。 请注意,Amazon Rekognition 控制台无法删除正在训练或运行的模型。 停止列出的所有正在运行的模型后重试,并等待列出的训练模型完成。 如果在模型删除过程中关闭对话框,模型仍会被删除。 稍后,您可以通过重复此过程来删除该项目。

  7. 输入 删除 以确认您要删除该项目。
  8. 删除 删除项目。

删除您的 S3 存储桶

您首先需要清空存储桶,然后将其删除。

  1. 点击 Amazon S3 控制台,选择 水桶.
  2. 选择要清空的存储桶,然后选择 空的.
  3. 通过在文本字段中输入存储桶名称来确认您要清空存储桶,然后选择 空的.
  4. 删除.
  5. 通过在文本字段中输入存储桶名称来确认您要删除存储桶,然后选择 删除存储桶.

结论

在这篇文章中,我们向您展示了如何使用 Rekognition 自定义标签创建对象检测模型。 此功能使训练自定义模型变得容易,该模型可以检测对象类,而无需指定其他对象或失去结果的准确性。

有关使用自定义标签的更多信息,请参见 什么是Amazon Rekognition自定义标签?


关于作者

使用计算机视觉通过 Amazon Rekognition 自定义标签 PlatoBlockchain 数据智能来衡量农业产量。 垂直搜索。 哎。德拉伊·塔库尔(Dhiraj Thakur) 是Amazon Web Services的解决方案架构师。 他与AWS客户和合作伙伴合作,提供有关企业云采用,迁移和策略的指南。 他对技术充满热情,并喜欢在分析和AI / ML领域中进行构建和试验。

使用计算机视觉通过 Amazon Rekognition 自定义标签 PlatoBlockchain 数据智能来衡量农业产量。 垂直搜索。 哎。萨默尔·戈尔(Sameer Goel) 是荷兰的高级解决方案架构师,他通过在尖端计划上构建原型来推动客户成功。 在加入 AWS 之前,Sameer 毕业于波士顿,获得硕士学位,主修数据科学。 他喜欢在 Raspberry Pi 上构建和试验 AI/ML 项目。 你可以找到他 LinkedIn.

时间戳记:

更多来自 AWS机器学习