计算机视觉是人工智能 (AI) 的一个畛域,借助于价格合理且基于云的训练计算,更高性能的算法,优化的可扩大模型的部署和推理,该畛域越来越受到人们的关注和欢送。然而,只管在单个人工智能 (AI) 和机器学习 (ML) 畛域获得了这些停顿,然而将机器学习管道简化为统一且可察看的工作流程,以便规模较小的业务部门可能更轻松地拜访,这依然是一个很有挑战的指标。这一点在农业科技领域尤为显著,在这个畛域中,计算机视觉在通过自动化进步产能方面具备微小后劲。这种状况也存在于衰弱和平安畛域,在这些畛域中,危险的工作能够由人工智能而不是农民来实现。亚马逊云科技客户采纳的农业利用包含依据产品的等级和缺点对农产品进行分类(IntelloLabs、Clarifruit 和 Hectre),以及尽早无效地被动确定害虫控制措施 (Bayer Crop Science),这些都是计算机视觉大有可为的一些畛域。
只管这些计算机视觉利用具备肯定的吸引力,但通常只有大型农业企业能力应用,因为特定边缘硬件架构的训练–编译–部署–推断序列非常复杂,导致技术与能够从中取得最大利益的从业人员之间呈现某种程度的拆散。许多状况下,这种脱节的本源在于人工智能 / 机器学习的复杂性,以及其在农业、林业和园艺等高级畛域的端到端利用中不足明确的门路。在大多数状况下,雇用经验丰富的合格数据科学家来摸索机会,而管理人员和运营商无奈间接进行试验和翻新,这样的前景在财务和组织方面都是不切实际的。最近在新西兰举办的一次农业科技演讲中,一位高管与会者强调,不足端到端的亚马逊云科技计算机视觉解决方案是试验的限度因素,为了证实组织买进更弱小的技术评估是正当之举,须要进行试验。
这篇博文旨在揭开亚马逊云科技 AI/ML 服务如何协同工作的神秘面纱,并特地阐明如何生成带标记的图像,针对该图像训练计算机视觉模型,以及如何应用 Amazon Rekognition 自定义标签部署自定义图像识别模型。依照本教程进行操作,您应该可能在大概一小时内启动并运行自定义计算机视觉模型,并依据与您的特定需要相干的数据,做出对于进一步投资 AI/ML 翻新的更理智的判断。
训练图像存储
如以下管道中所示,生成自定义计算机视觉模型的第一步是生成用于训练模型的带标签的图像。为此,咱们首先将未标记的训练图像加载到账户中的 Amazon Simple Storage Service (Amazon S3) 存储桶中,每个类别都存储在存储桶下其本人的文件夹中。在此示例中,咱们的预测分类为两种猕猴桃(黄金和蒙蒂),并具备已知类型的图像。收集每个训练类别的图像后,只需通过 Amazon S3 API 或亚马逊云科技治理控制台将图像上传到您的 Amazon S3 存储桶下其各自对应的文件夹中即可。
设置 Amazon Rekognition
要开始应用 Amazon Rekognition,请实现以下步骤:
- 在 Amazon Rekognition 管制台上,抉择 Use Custom Labels (应用自定义标签)。
- 抉择 Get started (开始) 以创立一个新我的项目。
我的项目用于存储模型和训练配置。 - 输出项目名称(例如,Kiwifruit-classifier-project)。
- 抉择 Create (创立)。
- 在 Datasets (数据集) 页面上,抉择 Create new dataset (创立新数据集)。
- 输出数据集的名称(例如,kiwifruit classifier)。
- 对于 Image location (图像地位),请抉择 Import images from Amazon S3 bucket (从 Amazon S3 存储桶导入图像)。
- 对于 S3 folder location (S3 文件夹地位),输出存储图像的地位。
- 对于 Automatic labeling (主动标记),抉择 Automatically attach a label to my images based on the folder they’re stored in (依据存储的文件夹主动将标签附加到我的图像)。
这意味着文件夹的标签作为该图像的分类利用于每个图像。
- 对于 Policy (策略),将提供的 JSON 输出 Amazon S3 存储桶,以确保 Amazon Rekognition 能够拜访该数据来训练模型。
- 抉择 Submit (提交)。
训练模型
当初咱们曾经应用存储这些图像的文件夹名称胜利生成了标记的图像,咱们能够训练咱们的模型。
- 抉择 Train model (训练模型) 以创立一个用于在训练后存储模型的我的项目。
- 对于 Choose project (抉择我的项目),输入您创立的我的项目的 ARN。
- 对于 Choose a training dataset (抉择训练数据集),抉择您创立的数据集。
- 对于 Create test set (创立测试集),抉择 Split training dataset (拆分训练数据集)。
这会主动保留已标记的数据局部,用于评估咱们训练后的模型的性能。
- 抉择 Train (训练) 开始训练作业。
训练可能须要一些工夫(取决于您提供的带标签图像的数量),您能够在 Projects (我的项目) 页面监控进度。
- 训练实现后,抉择我的项目下的模型以查看其在每个分类中的性能。
- 在 Use your model (应用您的模型) 下,抉择 API Code (API 代码)。
这将容许您获取代码示例以启动和进行模型,并应用亚马逊云科技命令行界面 (Amazon CLI) 进行推理。
启动模型后部署推理终端节点可能须要几分钟的工夫。
应用新训练的模型
当初,您领有了一个感到称心的经过训练的模型,应用该模型就像应用提供的示例 API 代码援用 Amazon S3 存储桶中的图像来生成推理一样简略。以下代码是应用 boto3 库来剖析图像的 Python 代码示例:
client = boto3.client('rekognition',
region_name='us-east-1',
aws_access_key_id=access_key_id,
aws_secret_access_key=access_key
)
api_output = client.detect_custom_labels(
ProjectVersionArn=modelProject,
Image={
'S3Object': {
'Bucket': bucket,
'Name': 'images/' + filepath
}
}
)
return api_output
只需解析 JSON 响应即可拜访负载的 Name (名称) 和 Confidence (置信度) 字段以进行图像推理。
总结
在这篇博文中,咱们学习了如何应用 Amazon Rekognition 自定义标签和 Amazon S3 文件夹标签性能来训练图像分类模型,部署该模型并应用它进行推理。接下来的步骤可能是遵循实用于多类分类器的相似步骤,或者应用 Amazon SageMaker Ground Truth 生成除了带分类标签之外还带有边界框正文的数据。无关在农业中应用计算机视觉的其余办法的更多信息和想法,请参阅 Amazon Machine Learning 博客和 Amazon for Industries:农业博客。
本篇作者
Steffen Merten
亚马逊云科技初创公司解决方案架构师
在退出亚马逊云科技之前,Steffen 在 Marsello 负责首席数据官,五年后又在 Palantir 负责嵌入分析师。
Steffen 善于简单系统分析,曾用十多年的工夫来钻研美国国家平安行业以及整个中东、南亚和中亚地区的生态和社会零碎。