中文内容
传统计算机视觉解决方案可能需要大量前期投入。搭建数据管道、模型训练基础设施、计算资源以及专门的数据科学团队,对于小型公司或团队来说往往成本过高,难以承受。通过 Amazon Bedrock 提供的 Amazon Nova 2 Lite 是一个颇具吸引力的替代方案。这个多模态基础模型可通过自然语言提示检测对象,无需训练。指定“vehicle”、“person”或“dent”,Nova 就会以结构化 JSON 格式返回精确的边界框坐标。
在本文中,我们将介绍如何使用 Amazon Nova 2 Lite 实现对象检测。你将了解如何使用 Amazon Bedrock、AWS Lambda 和 Amazon API Gateway 部署对象检测应用程序。你还将学习如何编写有效的提示、处理结构化 JSON 输出并可视化结果。我们会探讨其在制造业、农业和物流领域的实际应用。
解决方案概览
在开始之前,请确保你具备以下条件:
AWS 账户和权限
- 已启用 Amazon Bedrock 访问权限的有效 AWS 账户
- bedrock:InvokeModel 的 IAM 权限
- 在您所在区域访问 Amazon Nova 2 Lite 模型的权限
- 已配置 AWS Command Line Interface(AWS CLI)(用于部署)
开发环境(用于本地测试)
- Python 3.8 或更高版本
- AWS SDK for Python(Boto3)版本 1.28.0+
- 正文:Python Imaging Library(PIL/Pillow)
安装:
pip install boto3 pillow
估算成本
- Amazon Bedrock:每千个输入 token 0.0003 美元,每千个输出 token 0.0025 美元
- 典型图像:230 个输入 token(约每张图像 $0.000069)和约 200 个输出 token(约每张图像 $0.0005)
- 示例:10,000 张图像 ≈ $5.69
- AWS Lambda、Amazon API Gateway:按使用量付费(测试时费用极低)
时间估计:30-45 分钟
该目标检测解决方案使用四个主要步骤来识别并定位图像中的对象。
步骤:
- 提示词工程——构建提示词,以指定对象和预期的 JSON 输出格式
- Amazon Bedrock——调用 Amazon Bedrock 以在无需管理基础设施的情况下访问 Amazon Nova 2 Lite,并从响应中提取边界框信息
- 坐标处理——将 Nova 的归一化坐标(0-1000 比例)转换为像素位置
- 可视化——在图像上渲染边界框以进行验证
你通过 Amazon Bedrock 的 Converse API 发送一张图像和一组要检测的对象。Amazon Nova 2 Lite 会分析该图像,并返回包含每个检测到的对象的边界框坐标的 JSON 响应。然后,你根据图像尺寸将归一化坐标(0-1000 比例)转换为像素位置。最后,你通过在原始图像上绘制边界框来可视化结果。
最快可在数小时内部署对象检测——无需模型训练、机器学习(ML)专业知识或基础设施管理。
提示词
提示词工程在实现准确检测方面发挥着重要作用。提示词模板(如下例所示)包含一组精心设计的指令,明确了关键要求。提示词模板中的两个变量 elements 和 schema 会根据检测到的对象类型动态构建,使提示词模板无需修改即可处理任意对象类别。
# Object Detection and Localization
## Objective
Your task is to detect and localize objects in the target image with high precision and recall.
## Instruction
- The objects to be detected are: {elements}
- Analyze the provided target image and return only the reasoning and a JSON object with bounding box data for detected objects
- Think step-by-step and then provide precise bounding box coordinates for each detection
- Detect all instances of the specified objects
- Fit bounding boxes tightly around each object
- Do not output duplicate bounding boxes
- Coordinates should use the format [x_min, y_min, x_max, y_max] where:
* (x_min, y_min) is the top-left corner of the bounding box
* (x_max, y_max) is the bottom-right corner of the bounding box
## Output Requirements and Examples
The JSON output should strictly follow this structure including the word json:
```json
{schema}
```
### Example JSON Structure:
```json
{{
"car": [{{
"bbox": [321, 432, 543, 876],
}}],
"pedestrian": [{{
"bbox": [432, 543, 654, 987],
}},
{{
"bbox": [123, 234, 345, 678],
}}],
// Continue for all detected elements...
}}
```
Briefly explain the detection results and provide the specified JSON format wrapped within triple backticks.
有关完整实现细节,请参见我们的 GitHub 仓库。
示例:街景检测
我们在一张街景图像上测试了 Nova 2 Lite。在没有任何训练或微调的情况下,我们要求 Nova 检测两类对象:“vehicle”和“stop sign”。
如图 1 所示,Nova 不仅能准确检测明显的对象,也能检测那些较小、较远或被部分遮挡的对象。边界框紧密贴合对象边界,间隙极小。Nova 仅使用“vehicle”和“stop sign”这类基本对象名称,而不需要任何详细描述,就实现了这种准确性。
部署在云端
Amazon Bedrock 提供对 Amazon Nova 2 Lite 的 API 访问,这意味着你可以从任何 AWS 计算服务调用它。请选择最适合你的工作负载的服务。
选择你的计算平台
对于事件驱动型工作负载和 API 端点,AWS Lambda 提供自动扩展和按调用付费模式,从而消除空闲成本。如果你需要对运行时环境拥有更多控制权,或者有长期运行的进程,Amazon Elastic Compute Cloud(Amazon EC2)可让你完全灵活地按需配置实例。对于基于容器的部署,请使用 Amazon Elastic Container Service(Amazon ECS)或 Amazon Elastic Kubernetes Service(Amazon EKS),并配合自动扩展。
无论你选择哪种计算服务,它们都会调用同一个 Amazon Bedrock Converse API 来与 Nova 模型交互。这种一致性使你能够轻松地将目标检测集成到现有基础设施中,或在需求演变时在不同计算平台之间迁移。
构建对象检测应用程序
我们构建了一个示例无服务器 Web 应用程序,用于展示使用 Amazon Nova 2 Lite 进行对象检测。这个概念验证包括 Web 界面、安全基础设施和自动扩展。你可以在几分钟内将其部署到自己的 AWS 账户中。
该应用程序采用无服务器优先架构,由多个 AWS 服务协同工作。Amazon CloudFront 从私有 Amazon Simple Storage Service(Amazon S3)存储桶提供单页应用程序,通过 Origin Access Control 实现全球分发和 HTTPS 强制执行。当用户上传图像并指定要检测的对象时,前端会将请求发送到 Amazon API Gateway,后者将其路由到 AWS Lambda 函数。
Lambda 函数充当编排层,调用 Amazon Bedrock 的 Converse API,将图像和检测提示发送到 Amazon Nova 2 Lite。Nova 会返回每个检测到的对象的归一化边界框坐标,Lambda 函数将其转换为像素位置,并在图像上渲染为带注释的框。带注释的结果沿相同路径返回:从 Lambda 到 API Gateway,再到前端。随后,用户会看到其图像中检测到的对象被高亮显示。
Amazon CloudFront 在全球范围内分发前端。API Gateway 将请求路由到 Lambda,后者调用 Amazon Bedrock 来运行目标检测。该架构可自动扩展,并使每个组件专注于一项任务。
自行尝试
完整源代码,包括所有 AWS Cloud Development Kit (AWS CDK) 基础设施定义和 Lambda 函数,可在 GitHub 代码库中获取。安装 AWS CLI 和 AWS CDK,并在 Amazon Bedrock 控制台中启用 Amazon Nova 2 Lite 访问权限后,部署过程很简单。
此无服务器模式展示了如何使用 Nova 模型快速构建 AI 应用程序。由于一切都是基础设施即代码,你可以对整个应用程序堆栈进行版本控制,并在多个环境或 AWS 账户中一致地部署它。
清理
为避免持续产生费用,请删除本演练中创建的资源。
如果你已部署示例应用程序:
# Delete the AWS CloudFormation stack
cdk destroy
# Verify resources are removed
aws cloudformation list-stacks --stack-status-filter DELETE_COMPLETE
手动清理(如有需要):
- 删除 Amazon S3 存储桶及其内容
- 移除 AWS Lambda 函数
- 删除 Amazon API Gateway 端点
- 移除 Amazon CloudFront 分配
成本影响:Amazon Bedrock API 调用按使用量付费,没有持续的基础设施成本。删除部署资源后,只有在进行 API 调用时才会产生费用。
实际应用
以下示例展示了 Amazon Nova 2 Lite 如何应用于各行业的现实用例。
制造质量控制
一家金属制造工厂每月加工 10,000 个零件。每个发货的缺陷零件会因退货和返工产生 50–200 美元的成本。训练传统计算机视觉模型所需的高额前期投入,往往使其难以在运营中采用。
借助 Amazon Nova 2 Lite,该工厂实现了质量检测自动化。他们指定“划痕”、“凹痕”或“锈斑”等缺陷,系统会自动识别这些缺陷。每个零件分析 5 张图像的成本约为每月 8 美元。
精准农业
一家占地 5,000 英亩的农场在为期 20 周的生长季中每周采集无人机图像,以便及早发现作物问题。早期发现可防止化学品过量施用和作物受损。
该农场指定:“病叶”、“虫害”、“真菌”。每个季节处理 120 万张高分辨率图像的成本约为 200 美元。
同样的方法使 GPS 引导设备能够检测障碍物(例如“车辆”、“设备”、“碎片”),从而可能实现自主田间作业。
物流与履约
配送中心通过指定“箱子破损”、“包裹压坏”、“水损”等来识别受损包裹。系统会自动标记需要检查的物品,并将其路由至质量控制区域,从而确保整个运营流程中的标准一致。
这种方法还可扩展到库存监控(例如,“空货架”、“物品错放”)和安全合规(例如,“安全帽”、“安全背心”、“护目镜”),使任何规模的运营都能使用计算机视觉。
结论
在本文中,我们展示了 Amazon Nova 2 Lite 如何让目标检测变得易于使用。通过自然语言提示指定对象名称,你可以在数小时而非数月内部署计算机视觉应用,而无需管理任何基础设施。它通过单一 API 提供目标检测性能,采用按需付费的成本结构,并且无需机器学习(ML)专业知识。
准备好尝试了吗?从我们的 GitHub 存储库部署示例应用程序,或在 Amazon Bedrock 控制台中探索 Amazon Nova 模型。
关于作者





