📢 转载信息
原文作者:Bishesh Adhikari, Akhil Anand, Elad Dwek, Hin Yee Liu, Palash Choudhury, and Zakaria Fanna
亚马逊作为一家全球性的电子商务和技术公司,运营着庞大的配送中心网络,用于全球客户的产品存储、处理和发货。亚马逊全球工程服务(GES)团队负责协调公司快速扩张的配送中心网络中的运营就绪性(Operational Readiness)。在新配送中心启动时,亚马逊必须验证每个设施是否已正确配备并准备好投入运营。这个过程称为运营就绪性测试(ORT),通常需要为每个设施提供 2,000 小时的手动工作量,以验证 10,500 个工作站上的 200,000 多个组件。通过使用 Amazon Nova 模型,我们开发了一个自动化解决方案,可显著减少验证时间,同时提高准确性。
在本文中,我们将讨论如何在 Amazon Bedrock 中使用 Amazon Nova 来实施一个由 AI 驱动的图像识别解决方案,该方案可以自动化模块组件的检测和验证,从而显著减少手动验证工作量并提高准确性。
了解 ORT 流程
ORT 是一个全面的验证过程,确保组件在我们的配送中心启动前已正确安装。物料清单 (BOM) 作为主清单,详细说明了设施每个模块中应存在的每个组件。配送中心中的每个组件或物品都被分配了一个唯一识别编号 (UIN),作为其独特的标识符。这些组件对于 ORT 过程及后续的准确跟踪、验证和库存管理至关重要。在本文中,我们将 UIN 和组件互换使用。
ORT 工作流程包含五个组成部分:
- 测试计划:测试人员收到一个测试计划,其中包括详细说明所需确切组件和数量的 BOM
- 巡检:测试人员巡视配送中心,并在每个模块处停下来,根据 BOM 检查设置情况。模块是指一个物理工作站或操作区域
- 验证:他们验证每个 UIN 的正确安装和配置
- 测试:他们对每个组件执行功能测试(即电源、连接性等)
- 记录:他们记录每个 UIN 的结果并转到下一个模块
寻找正确的方法
我们评估了多种方法来解决 ORT 自动化挑战,重点是利用基础模型 (FM) 的图像识别功能。决策过程中的关键因素包括:
图像检测能力:在测试了包括 Anthropic Claude Sonnet、Amazon Nova Pro、Amazon Nova Lite 和 Meta AI Segment Anything Model (SAM) 在内的多个 AI 模型后,我们选择了 Amazon Nova Pro 进行图像检测。Nova Pro 满足了生产实施的标准。
Amazon Nova Pro 特性:
对象检测能力
- 专为对象检测而构建
- 提供精确的边界框坐标
- 边界框检测结果一致
图像处理
- 内置图像调整大小以适应固定宽高比
- 无需手动调整大小
性能
- Amazon Bedrock 上的每分钟请求 (RPM) 配额更高
- 每分钟令牌 (TPM) 吞吐量更高
- 大规模检测的成本效益高
无服务器架构:我们使用 AWS Lambda 和 Amazon Bedrock 来维护一个具有成本效益、可扩展的解决方案,而无需复杂的基础设施管理或模型托管。
额外的上下文理解:为了提高检测效果并减少误报,我们使用了 Anthropic Claude Sonnet 4.0 为每个 UIN 生成文本描述并创建检测参数。
解决方案概述
智能运营就绪性 (IORA) 解决方案包括几项关键服务,如下面的架构图所示:
- API 网关:Amazon API Gateway 处理用户请求并路由到适当的 Lambda 函数
- 同步图像处理:Amazon Bedrock Nova Pro 分析图像,响应时间为 2-5 秒
- 进度跟踪:系统跟踪 UIN 检测进度(每个模块检测到的 UIN 百分比)
- 数据存储:Amazon Simple Storage Service (S3) 用于存储模块图像、UIN 参考图片和结果。Amazon DynamoDB 用于存储结构化验证数据
- 计算:AWS Lambda 用于图像分析和数据操作
- 模型推理:Amazon Bedrock 用于对象检测的实时推理以及用于描述生成的批量推理

描述生成管道
描述生成管道是协同工作以实现 ORT 过程自动化的关键系统之一。第一个是描述生成管道,它在引入新模块时作为批量流程运行,为组件识别创建标准化的知识库。在配送中心拍摄的图像具有不同的光照条件和拍摄角度,这可能会影响模型一致检测到正确组件的能力。通过使用高质量的参考图像,我们可以为每个 UIN 生成标准化的描述。然后,我们使用 BOM 生成检测规则,该 BOM 列出了每个模块中所需的 UIN、其相关的数量和规格。此过程确保每个 UIN 都有标准化的描述和适当的检测规则,为后续的检测和评估过程奠定坚实的基础。
工作流程如下:
- 管理员上传 UIN 图像和 BOM 数据
- Lambda 函数触发两个并行流程:
- 路径 A:UIN 描述生成
- 通过 Claude Sonnet 4.0 处理每个 UIN 的参考图像
- 生成详细的 UIN 描述
- 将多个描述合并为一个 UIN 描述
- 将合并后的描述存储在 DynamoDB 中
- 路径 B:检测规则创建
- 将 UIN 描述与 BOM 数据结合
- 生成特定于模块的检测规则
- 创建误报检测模式
- 将规则存储在 DynamoDB 中
- 路径 A:UIN 描述生成
# UIN Description Generation Process def generate_uin_descriptions(uin_images, bedrock_client): """ Generate enhanced UIN descriptions using Claude Sonnet """ for uin_id, image_set in uin_images.items(): # First pass: Generate initial descriptions from multiple angles initial_descriptions = [] for image in image_set: response = bedrock_client.invoke_model( modelId='anthropic.claude-4-sonnet-20240229-v1:0', body=json.dumps({ 'messages': [ { 'role': 'user', 'content': [ {'type': 'image', 'source': {'type': 'base64', 'data': image}}, {'type': 'text', 'text': 'Describe this UIN component in detail, including physical characteristics, typical installation context, and identifying features.'} ] } ] }) ) initial_descriptions.append(response['content'][0]['text']) # Second pass: Consolidate and enrich descriptions consolidated_description = consolidate_descriptions(initial_descriptions, bedrock_client) # Store in DynamoDB for quick retrieval store_uin_description(uin_id, consolidated_description)
误报检测模式
为了提高输出的一致性,我们通过添加常见误报的规则来优化提示词。这有助于过滤掉与检测无关的对象。例如,三角形标志应具有门号和箭头,而通用标志不应被检测到。
3:
generic_object: "Any triangular sign or warning marker"
confused_with: "SIGN.GATE.TRIANGLE"
▼ distinguishing_features:
0: "Gate number text in black at top (e.g., 'GATE 2350')"
1: "Red downward-pointing arrow at bottom"
2: "Red border with white background"
3: "Black mounting system with suspension hardware"
trap_description: "Generic triangle sign ≠ SIGN.GATE.TRIANGLE without gate number and red arrow"
UIN 检测评估管道
该管道处理实时组件验证。我们通过 Amazon Bedrock 将测试人员拍摄的图像、特定于模块的检测规则和 UIN 描述输入到 Nova Pro。输出是带有边界框的检测到的 UIN,以及安装状态、缺陷识别和置信度分数。
# UIN Detection Configuration detection_config = { 'model_selection': 'nova-pro', # or 'claude-sonnet' 'module_config': module_id, 'prompt_engineering': { 'system_prompt': system_prompt_template, 'agent_prompt': agent_prompt_template }, 'data_sources': { 's3_images_path': f's3://amzn-s3-demo-bucket/images/{module_id}/', 'descriptions_table': 'uin-descriptions', 'ground_truth_path': f's3://amzn-s3-demo-bucket/ground-truth/{module_id}/' } }
Lambda 函数使用选定的配置处理每个模块图像:
def detect_uins_in_module(image_data, module_bom, uin_descriptions): """ Detect UINs in module images using Nova Pro """ # Retrieve relevant UIN descriptions for the module relevant_descriptions = get_descriptions_for_module(module_bom, uin_descriptions) # Construct detection prompt with descriptions detection_prompt = f""" Analyze this module image to detect the following components: {format_uin_descriptions(relevant_descriptions)} For each UIN, provide: - Detection status (True/False) - Bounding box coordinates if detected - Confidence score - Installation status verification - Any visible defects """ # Process with Amazon Bedrock Nova Pro response = bedrock_client.invoke_model( modelId='amazon.nova-pro-v1:0', body=json.dumps({ 'messages': [ { 'role': 'user', 'content': [ {'type': 'image', 'source': {'type': 'base64', 'data': image_data}}, {'type': 'text', 'text': detection_prompt} ] } ] }) ) return parse_detection_results(response)
端到端应用管道
该应用程序将所有内容整合在一起,为配送中心的测试人员提供了一个生产就绪的用户界面。它还提供全面的分析,包括精确的 UIN 识别、边界框坐标、安装状态验证和带有置信度评分的缺陷检测。
工作流程(反映在 UI 中)如下:
- 测试人员通过拍照或手动上传的方式,将图像安全地上传到 Amazon S3 前端。图像在 S3 中静态存储时会自动使用 AWS Key Management Service (AWS KMS) 进行加密。
- 这会触发验证过程,该过程会调用 UIN 验证的 API 端点。服务之间的 API 调用使用 AWS Identity and Access Management (IAM) 基于角色的身份验证。
- Lambda 函数从 S3 中检索图像。
- Amazon Nova Pro 从每张图像中检测所需的 UIN。
- UIN 检测结果会启用加密后存储在 DynamoDB 中。
下图显示了上传和处理图像后 UI 的情况。信息包括 UIN 名称、描述、最后更新时间等。

下图是 UI 中用户可以用来查看结果并根据需要手动覆盖任何输入的仪表板。

结果与经验教训
在构建原型后,我们使用 Amazon Kindle 平板电脑在多个配送中心测试了该解决方案。我们在具有代表性的一组测试模块上实现了 92% 的准确率,每张图片的延迟时间为 2-5 秒。与手动运营就绪性测试相比,IORA 将总测试时间减少了 60%。Amazon Nova Pro 还能够识别地面实况数据中缺失的标签,这为我们改进数据集质量提供了机会。
“准确率结果直接转化为时间节省——40% 的覆盖率相当于我们的现场团队节省了 40% 的时间。当解决方案检测到 UIN 时,我们的配送中心团队可以放心地只关注查找缺失的组件。”
– Wayne Jones,亚马逊全球工程服务高级项目经理
关键经验教训:
- 当提供丰富的上下文描述时,Amazon Nova Pro 在视觉识别任务中表现出色,其准确性优于单独的图像比较。
- 地面实况数据质量对模型性能有显著影响。该解决方案识别出了原始数据集中缺失的标签,并有助于改进人工标记数据。
- UIN 少于 20 个的模块性能最佳,而对于包含 40 个或更多 UIN 的模块,我们观察到了性能下降。对于超过 40 个组件的模块,需要进行分层处理。
- 使用 Lambda 和 Amazon Bedrock 的无服务器架构提供了具有成本效益的可扩展性,且没有基础设施复杂性。
结论
本文演示了如何在 Amazon Bedrock 中使用 Amazon Nova 和 Anthropic Claude Sonnet 构建自动化的图像识别解决方案来进行运营就绪性测试。我们向您展示了如何:
- 使用 Amazon Nova 模型处理和分析大规模图像
- 生成和丰富组件描述以提高检测准确性
- 构建可靠的实时组件验证管道
- 使用托管存储服务高效地存储和管理结果
这种方法可以适应需要自动化视觉检查和验证的类似用例,涉及制造、物流和质量保证等各个行业。未来,我们计划增强系统的功能、进行试点实施,并在亚马逊的运营中探索更广泛的应用。
有关 Amazon Nova 和 Amazon Bedrock 中其他基础模型的更多信息,请访问 Amazon Bedrock 文档页面。
作者简介
Bishesh Adhikari 是 AWS 的高级机器学习原型设计师,在软件工程和 AI/ML 方面拥有十多年的经验。他专注于生成式 AI、LLM、NLP、CV 和地理空间机器学习,与 AWS 客户合作,通过联合开发解决具有挑战性的问题。他的专业知识加速了客户从概念到生产的历程,解决了各个行业的复杂用例。在业余时间,他喜欢徒步旅行、旅行和与家人朋友共度时光。
Hin Yee Liu 是 AWS 的高级生成式 AI 参与经理。她通过敏捷方法领导复杂的技术挑战方面的 AI 原型设计工作,与客户密切合作,利用生成式 AI、AI/ML、大数据和无服务器技术交付生产就绪的解决方案。工作之余,她喜欢陶艺、旅行和在伦敦尝试新餐馆。
Akhil Anand 是亚马逊的项目经理,热衷于利用技术和数据来解决关键业务问题并推动创新。他专注于将数据作为核心基础,将 AI 作为加速业务增长的强大层。Akhil 与亚马逊的技术和业务团队密切合作,将想法转化为可扩展的解决方案,促进了强大的用户至上方法和快速的产品开发。工作之余,Akhil 喜欢持续学习、与朋友协作构建新解决方案以及观看一级方程式赛车。
Zakaria Fanna 是亚马逊的高级 AI 原型设计师,在网络、DevOps、自动化和 AI/ML 等各种 IT 领域拥有超过 15 年的经验。他专注于为内部用户快速开发最小可行产品 (MVP)。Zakaria 热衷于解决复杂的技术问题,并帮助客户利用尖端技术扩展他们的解决方案。在业余时间,Zakaria 喜欢持续学习、运动,并珍惜与孩子和家人的时光。
Elad Dwek
是亚马逊的高级 AI 业务开发人员,在工程、维护和可持续性部门工作。他与业务和技术方面的利益相关者合作,确定 AI 可以增强业务挑战或完全转变流程的机会,从而推动从原型设计到生产的创新。凭借在建筑和物理工程方面的背景,他专注于变革管理、技术采用以及构建可扩展、可转移的解决方案,从而在各个行业中实现持续改进。工作之余,他喜欢与家人环游世界。
Palash Choudhury 是 AWS 企业财务规划与分析 (FP&A) 的软件开发工程师,在前端、后端和 DevOps 技术方面拥有超过 10 年的经验。他专注于为企业财务分配挑战开发可扩展的解决方案,并积极利用 AI/ML 技术来自动化工作流程和解决复杂的业务问题。Palash 热衷于创新,喜欢试验新兴技术以改造传统业务流程。
🚀 想要体验更好更全面的AI调用?
欢迎使用青云聚合API,约为官网价格的十分之一,支持300+全球最新模型,以及全球各种生图生视频模型,无需翻墙高速稳定,文档丰富,小白也可以简单操作。
评论区