使用 Amazon Rekognition 自定义标签和 AWS Step Functions 优化 Purina Petfinder 应用程序的宠物档案 | 亚马逊网络服务

使用 Amazon Rekognition 自定义标签和 AWS Step Functions 优化 Purina Petfinder 应用程序的宠物档案 | 亚马逊网络服务

Purina US 是雀巢的子公司,在帮助人们更轻松地通过以下方式收养宠物方面有着悠久的历史: 寻宝,一个由美国、加拿大和墨西哥超过 11,000 个动物收容所和救援组织组成的数字市场。 作为领先的宠物收养平台,Petfinder 已帮助数百万宠物找到了永远的家。

Purina 始终致力于寻求让 Petfinder 平台更好地服务于收容所、救援组织和宠物收养者的方法。 他们面临的挑战之一是充分反映待收养的特定动物品种。 由于许多收容所动物都是混合品种,因此需要手动操作才能在宠物资料中正确识别品种和属性,这非常耗时。 Purina 使用人工智能 (AI) 和机器学习 (ML) 来大规模自动化动物品种检测。

这篇文章详细介绍了普瑞纳如何使用 Amazon Rekognition自定义标签, AWS步骤功能和其他 AWS 服务来创建一个 ML 模型,该模型从上传的图像中检测宠物品种,然后使用预测结果自动填充宠物属性。 该解决方案重点关注开发数据准备、模型训练、模型评估和模型监控等 AI/ML 应用工作流程的基本原则。

解决方案概述

从图像预测动物品种需要自定义 ML 模型。 开发用于分析图像的自定义模型是一项艰巨的任务,需要时间、专业知识和资源,通常需要数月才能完成。 此外,它通常需要数千或数万张手工标记的图像来为模型提供足够的数据来准确地做出决策。 设置审核或审查模型预测的工作流程以验证是否符合您的要求可能会进一步增加整体复杂性。

借助 Rekognition 自定义标签,该标签建立在现有功能的基础上 亚马逊重新认识,您可以识别图像中特定于您的业务需求的对象和场景。 它已经接受了多个类别的数千万张图像的训练。 您可以上传一小组特定于您的用例的训练图像(通常每个类别几百张或更少),而不是数千张图像。

该解决方案使用以下服务:

  • Amazon API网关 是一项完全托管的服务,使开发人员可以轻松发布、维护、监控和保护任何规模的 API。
  • AWS云开发套件 (AWS CDK) 是一个开源软件开发框架,用于使用现代编程语言将云基础设施定义为代码,并通过 AWS CloudFormation.
  • AWS 代码构建 是云中完全托管的持续集成服务。 CodeBuild 编译源代码、运行测试并生成可供部署的包。
  • Amazon DynamoDB 是一种适用于任何规模的快速、灵活的非关系数据库服务。
  • AWS Lambda 是一种事件驱动的计算服务,让您可以运行几乎任何类型的应用程序或后端服务的代码,而无需配置或管理服务器。
  • 亚马逊重新认识 提供预先训练和可定制的计算机视觉 (CV) 功能,以从图像和视频中提取信息和见解。 和 Amazon Rekognition自定义标签,您可以识别图像中特定于您的业务需求的对象和场景。
  • AWS步骤功能 是一项完全托管的服务,可以更轻松地使用可视化工作流程协调分布式应用程序和微服务的组件。
  • AWS系统经理 是一种安全的端到端管理解决方案,适用于 AWS 以及多云和混合环境中的资源。 参数存储是 Systems Manager 的一项功能,为配置数据管理和机密管理提供安全的分层存储。

普瑞纳的解决方案被部署为 API网关HTTP 端点,用于路由获取宠物属性的请求。 它使用 Rekognition 自定义标签来预测宠物品种。 机器学习模型是根据从 Purina 数据库中提取的宠物资料进行训练的,假设主要品种标签是真实标签。 DynamoDB用于存储宠物属性。 Lambda 用于通过在 API Gateway、Amazon Rekognition 和 DynamoDB 之间进行编排来处理宠物属性请求。

架构实现如下:

  1. Petfinder 应用程序通过 API 网关路由获取宠物属性的请求。
  2. API Gateway调用Lambda函数获取宠物属性。
  3. Lambda 函数调用 Rekognition 自定义标签推理端点来预测宠物品种。
  4. Lambda 函数使用预测的宠物品种信息在 DynamoDB 表中执行宠物属性查找。 它收集宠物属性并将其发送回 Petfinder 应用程序。

下图说明了解决方案的工作流程。

使用 Amazon Rekognition 自定义标签和 AWS Step Functions 优化 Purina Petfinder 应用程序的宠物档案 | 亚马逊网络服务柏拉图区块链数据智能。 垂直搜索。 人工智能。

Purina 的 Petfinder 团队希望有一个自动化解决方案,他们可以在最少的维护的情况下进行部署。 为了实现这一目标,我们使用 Step Functions 创建一个状态机,使用最新数据训练模型,检查其在基准集上的性能,并在模型有所改进时重新部署模型。 模型重新训练是根据用户提交个人资料信息进行的品种修正次数触发的。

模型训练

开发自定义模型来分析图像是一项艰巨的任务,需要时间、专业知识和资源。 此外,它通常需要数千或数万张手工标记的图像来为模型提供足够的数据来准确地做出决策。 生成这些数据可能需要几个月的时间来收集,并且需要付出巨大的努力来标记它以用于机器学习。 一种技术称为 转移学习 通过借用预训练模型的参数来帮助生成更高质量的模型,并允许使用更少的图像来训练模型。

我们面临的挑战是我们的数据没有完美标记:输入个人资料数据的人可能而且确实会犯错误。 然而,我们发现,对于足够大的数据样本,错误标记的图像所占的比例足够小,并且模型性能的准确度影响不超过 2%。

ML 工作流程和状态机

Step Functions 状态机旨在帮助自动重新训练 Amazon Rekognition 模型。 在个人资料输入期间收集反馈——每次用户将从图像推断出的品种修改为不同的品种时,都会记录更正。 该状态机由可配置阈值数量的校正和附加数据触发。

状态机通过几个步骤来创建解决方案:

  1. 创建包含以下列表的训练和测试清单文件 亚马逊简单存储服务 (Amazon S3) 供 Amazon Rekognition 使用的图像路径及其标签。
  2. 使用清单文件创建 Amazon Rekognition 数据集。
  3. 创建数据集后训练 Amazon Rekognition 模型版本。
  4. 训练完成后启动模型版本。
  5. 评估模型并生成性能指标。
  6. 如果性能指标令人满意,请更新 Parameter Store 中的模型版本。
  7. 等待新模型版本在 Lambda 函数中传播(20 分钟),然后停止以前的模型。

模型评估

我们使用从数据样本中抽取的随机 20% 保留集来验证我们的模型。 由于我们检测到的品种是可配置的,因此我们在训练期间不使用固定的数据集进行验证,但我们确实使用手动标记的评估集进行集成测试。 手动标记集和模型的可检测品种的重叠用于计算指标。 如果模型的品种检测准确度高于指定阈值,我们会推广该模型在端点中使用。

以下是 Rekognition 自定义标签的宠物预测工作流程的一些屏幕截图。

使用 Amazon Rekognition 自定义标签和 AWS Step Functions 优化 Purina Petfinder 应用程序的宠物档案 | 亚马逊网络服务柏拉图区块链数据智能。 垂直搜索。 人工智能。

使用 Amazon Rekognition 自定义标签和 AWS Step Functions 优化 Purina Petfinder 应用程序的宠物档案 | 亚马逊网络服务柏拉图区块链数据智能。 垂直搜索。 人工智能。

使用 AWS CDK 进行部署

Step Functions 状态机和关联基础设施(包括 Lambda 函数、CodeBuild 项目和 Systems Manager 参数)使用 Python 与 AWS CDK 一起部署。 AWS CDK 代码合成了一个 CloudFormation 模板,用于部署解决方案的所有基础设施。

与 Petfinder 应用程序集成

Petfinder 应用程序使用包含 JSON 负载的 POST 请求,通过 API Gateway 终端节点访问图像分类终端节点,其中包含图像的 Amazon S3 路径字段和要返回的结果数量。

受影响的 KPI

为了证明运行图像推理端点所增加的成本是合理的,我们进行了实验来确定该端点为 Petfinder 添加的价值。 端点的使用提供了两种主要类型的改进:

  • 减少宠物收容所创建宠物档案的工作量
  • 更完整的宠物档案,有望提高搜索相关性

衡量工作量和个人资料完整性的指标包括已更正的自动填充字段的数量、填充的字段总数以及上传宠物个人资料的时间。 搜索相关性的改进是通过衡量与采用率相关的关键绩效指标间接推断出来的。 据普瑞纳介绍,该解决方案上线后,在 Petfinder 应用程序上创建宠物档案的平均时间从 7 分钟缩短至 4 分钟。 这是一个巨大的进步并节省了时间,因为到 2022 年,上传了 4 万份宠物资料。

安保行业

流经架构图的数据在传输过程中和静态时均根据以下规则进行加密: AWS 架构完善的最佳实践。 在所有 AWS 项目中,安全专家都会审查解决方案,以确保提供安全的实施。

结论

借助基于 Rekognition Custom Labels 的解决方案,Petfinder 团队能够加快为宠物收容所创建宠物档案的速度,从而减轻收容所工作人员的管理负担。 基于 AWS CDK 的部署部署了 Step Functions 工作流程以自动化训练和部署过程。 要开始使用 Rekognition 自定义标签,请参阅 Amazon Rekognition自定义标签入门. 你也可以看看一些 步骤函数示例开始使用 AWS CDK.


作者简介

使用 Amazon Rekognition 自定义标签和 AWS Step Functions 优化 Purina Petfinder 应用程序的宠物档案 | 亚马逊网络服务柏拉图区块链数据智能。 垂直搜索。 人工智能。梅森·卡希尔 是 AWS 专业服务的高级开发运营顾问。 他喜欢帮助组织实现其业务目标,并热衷于在 AWS 云上构建和交付自动化解决方案。 工作之余,他喜欢与家人共度时光、徒步旅行和踢足球。

使用 Amazon Rekognition 自定义标签和 AWS Step Functions 优化 Purina Petfinder 应用程序的宠物档案 | 亚马逊网络服务柏拉图区块链数据智能。 垂直搜索。 人工智能。马修·查斯 是 Amazon Web Services 的数据科学顾问,帮助客户构建可扩展的机器学习解决方案。 马修拥有数学博士学位,空闲时间喜欢攀岩和音乐。

使用 Amazon Rekognition 自定义标签和 AWS Step Functions 优化 Purina Petfinder 应用程序的宠物档案 | 亚马逊网络服务柏拉图区块链数据智能。 垂直搜索。 人工智能。拉什凯什·贾格塔普 是一位解决方案架构师,在 AWS 分析服务方面拥有 5 年以上经验。 他热衷于帮助客户构建可扩展的现代数据分析解决方案,以从数据中获取见解。 工作之余,他喜欢观看一级方程式赛车、打羽毛球和卡丁车比赛。

使用 Amazon Rekognition 自定义标签和 AWS Step Functions 优化 Purina Petfinder 应用程序的宠物档案 | 亚马逊网络服务柏拉图区块链数据智能。 垂直搜索。 人工智能。塔约·奥拉吉德 是一位经验丰富的云数据工程通才,在云环境中架构和实施数据解决方案方面拥有十多年的经验。 Tayo 热衷于将原始数据转化为有价值的见解,在设计和优化各行业(包括金融、医疗保健和汽车行业)的数据管道方面发挥了关键作用。 作为该领域的思想领袖,Tayo 相信数据的力量在于其推动明智决策的能力,并致力于帮助企业在云时代充分利用数据的潜力。 当 Tayo 不制作数据管道时,您会发现 Tayo 正在探索最新的技术趋势、在户外徒步旅行或摆弄小工具和软件。

时间戳记:

更多来自 AWS机器学习