构建一个用于自动标注图像的主动学习管道,使用 AWS 服务 机器学习博客

2026-01-27 14:29:30

构建AWS服务的自动图像标注主动学习管道

关键要点

通过使用AWS服务构建一个有效的主动学习管道,可以显著降低图像标注的成本,并将处理时间从数周缩短至数小时。这种管道结合机器学习和人类专业知识,从而提高了图像标注的准确性和效率。

本文由Veoneer公司的Caroline Chung共同撰写。Veoneer是一家全球性的汽车电子公司,是汽车电子安全系统的世界领导者。该公司提供一流的约束控制系统,已向全球汽车制造商交付超过10亿个电子控制单元和碰撞传感器。Veoneer还在汽车安全开发方面拥有70年的历史,专注于尖端硬件和系统,以预防交通事故和减轻事故的影响。

汽车内部传感ICS是一个新兴领域,它利用摄像头、雷达等多种传感器以及人工智能AI和机器学习ML算法,旨在提高安全性和改善乘车体验。然而,构建这样的系统是一个复杂的任务,开发者须手动标注大量图像以进行训练和测试,这非常耗时且需要大量资源。完成这些任务的周转时间通常需要数周,此外,由于人为错误,标注不一致的问题也屡见不鲜。

免费加速器使用一小时

AWS致力于帮助您加快开发速度并降低构建此类系统的成本,通过ML等高级分析技术实现自动标注,以支持安全模型的再训练,并确保一致和可靠的性能指标。本文分享了我们如何通过与亚马逊全球专家组织和生成AI创新中心的合作,开发了用于车内图像头部边界框和关键点标注的主动学习管道。该解决方案将成本降低超过90,并将标注流程从几周缩短至几个小时,同时支持类似的ML数据标注任务的重用。

解决方案概述

主动学习是一种ML方法,涉及反复选择和标注最具信息量的数据以训练模型。通过小规模的标注数据和大量未标注数据的结合,主动学习可以提高模型性能,降低标注工作量,并整合人类专业知识以获得稳健的结果。本文中,我们将构建一个使用AWS服务的图像标注主动学习管道。

以下图示展示了我们主动学习管道的整体框架。标注管道从Amazon S3桶中获取图像,并通过ML模型和人类专业知识输出标注图像。训练管道对数据进行预处理,由此进行ML模型的训练。初始模型在少量手动标注的数据集上设置并训练,并将用于标注管道。标注管道和训练管道可以逐步迭代,通过更多的标注数据来提升模型的性能。

在标注管道中,当新的图像批次进入未标注数据存储S3桶时,会调用Amazon S3事件通知,激活标注管道。模型会对新图像进行推理,输出结果。自定义判断函数根据推理置信度分数或其他用户定义的函数选择数据部分。该数据及其推理结果将被送往由管道创建的Amazon SageMaker Ground Truth进行人类标注。人类标注过程有助于修正数据标注,最终的修改结果将与其余自动标注的数据结合,以供后续的训练管道使用。

模型的再训练发生在训练管道中,我们使用包含人工标注数据的数据集来再训练模型。会生成一个清单文件,描述文件存储的位置,并在新的数据上对初始模型进行再训练。再训练后,新模型将替代初始模型,下一轮的主动学习管道将开始。

模型部署

标注管道和训练管道均在AWS CodePipeline上部署。我们使用AWS CodeBuild实例进行实施,这在处理少量数据时灵活快速。当需要加快速度时,我们会使用基于GPU实例的Amazon SageMaker端点,以分配更多资源支持和加速流程。

在存在新数据集或者模型性能需要改进时,可以调用模型再训练管道。再训练管道中的一项关键任务是对训练数据和模型进行版本控制。尽管AWS服务如Amazon Rekognition具备内置的版本控制功能,使得管道的实施相对简单,但定制模型则需要进行元数据记录或使用额外的版本控制工具。

整个工作流程的实施使用了AWS云开发工具包AWS CDK,以创建所需的AWS组件,包括:

针对CodePipeline和SageMaker作业的两个角色两个CodePipeline作业,协调工作流程两个S3桶,用于管道的代码制品一个S3桶,用于标注作业的清单,数据集和模型针对SageMaker Ground Truth标注作业的预处理和后处理AWS Lambda函数

AWS CDK的堆栈高度模块化,并可在不同的任务中重复使用。训练、推理代码和SageMaker Ground Truth模板可以替换用于任何类似的主动学习场景。

模型训练

模型训练包括两个任务:头部边界框标注和关键点标注。我们在这一部分中将介绍这两个任务。

头部边界框标注

头部边界框标注的任务是预测图像中人头的边界框位置。我们使用Amazon Rekognition Custom Labels模型进行头部边界框的标注。以下样本笔记本提供了如何通过SageMaker训练Rekognition Custom Labels模型的逐步教程。

首先,我们需要准备数据以开始训练。我们为训练生成一个清单文件,并为测试数据集生成另一个清单文件。清单文件包含多个条目,每个条目对应一张图像。以下是清单文件的一个示例,其中包含图像路径、大小和注释信息:

{ sourceref s3//mlslsandox/rekognitionimages/train/IMS0000000000000R21900010100000compressedfronttofamp000jpeg boundingboxattributename { imagesize [{ width 640 height 480 depth 3 } ] annotations [{ classid 1 top 189 left 209 width 97 height 121 } ] } boundingboxattributenamemetadata { objects [{ confidence 1 } ] classmap { 1 Head } type groundtruth/objectdetection humanannotated yes creationdate 20230407T200442 jobname testjob }}

使用清单文件,我们可以将数据集加载到Rekognition Custom Labels模型进行训练和测试。我们使用不同数量的训练数据来迭代模型,并在239张未见图像上进行测试。在此测试中,mAP50分数从114个训练图像的033提高到957个训练图像的095。以下截图展示了最终Rekognition Custom Labels模型的性能指标,在F1分数、精确率和召回率方面表现出色。

我们进一步在一个包含1128张图像的保留数据集上测试模型。模型在未见数据上始终能准确预测边界框,mAP50达到了949。以下示例展示了带有头部边界框的自动标注图像。

关键点标注

关键点标注会产生多个关键点的位置,包括眼睛、耳朵、鼻子、嘴、脖子、肩膀、肘部、手腕、臀部和脚踝。除了位置预测外,还需要预测每个点的可见性,我们为此设计了一种新方法。

在关键点标注方面,我们在SageMaker上使用Yolo 8 Pose模型作为初始模型。我们首先为训练准备数据,包括生成标签文件和遵循Yolo要求的配置yaml文件。在准备好数据后,我们训练模型并保存工件,包括模型权重文件。使用训练后的模型权重文件,我们可以对新图像进行标注。

在训练阶段,所有带有位置的标注点包括可见点和遮挡点都用于训练。因此,这个模型默认提供预测的位置和置信度。在下图中,置信度阈值主阈值接近06的情况下,可以将可见点与遮挡点和不在相机视野中的点区分开来。然而,遮挡点和可见点在置信度上并没有分开,这意味着预测置信度对于可见性的预测并不有效。

为了获得可见性的预测,我们引入了一个额外的模型,该模型仅在包含可见点的数据集上进行训练,排除了遮挡点和相机视野外的点。下图展示了不同可见性点的分布。额外模型中可以区分可见点和其他点。我们可以使用近06的阈值附加阈值来获得可见点。通过结合这两个模型,我们设计了一种预测位置和可见性的方法。

构建一个用于自动标注图像的主动学习管道,使用 AWS 服务 机器学习博客

关键点首先由主模型预测并给出位置和主置信度,然后根据额外模型获取附加置信度预测,其可见性分类如下:

可见:如果主置信度超过主阈值,且附加置信度超过附加阈值;遮挡:如果主置信度超过主阈值,且附加置信度小于或等于附加阈值;相机视野外:否则。

以下图像展示了关键点标注的例子,其中实心标记为可见点,空心标记为遮挡点。相机视野外的点未显示。

基于MSCOCO数据集上的标准OKS定义,我们的方法能够在未见测试数据集上获得984的mAP50可见。就可见性而言,该方法在同一数据集上的分类准确率为792。

人工标注与再训练

尽管模型在测试数据上表现出色,但在新实际数据上仍有可能出现错误。人工标注是纠正这些错误的过程,旨在利用再训练提升模型性能。我们设计了一个判断函数,该函数结合了从ML模型输出的头部边界框或关键点的置信值,我们使用最终得分来识别错误并找出需要进行人工标注的错误图像。

除了错误标注的图像外,还随机选择少量图像进行人工标注。经过人工标注的图像会被添加到当前版本的训练集中以用于再训练,从而提升模型性能和整体标注准确性。

在具体实现中,我们使用SageMaker Ground Truth进行人工标注过程。SageMaker Ground Truth提供了用户友好的直观界面用于数据标注。以下截图展示了用于头部边界框标注的SageMaker Ground Truth标注作业。

下图演示了用于关键点标注的SageMaker Ground Truth标注作业。

成本、速度与重用性

与人工标注相比,成本和速度是我们解决方案的关键优势,如下表所示。我们使用这些表格展示节省的成本和加快的速度。使用加速的GPU SageMaker实例mlg4dnxlarge,基于100000张图像的整体训练和推理成本比人工标注低99,速度则比人工标注快10到10000倍,具体取决于任务。

第一张表总结了成本性能指标。

模型1128张测试图像的mAP50基于100000张图像的训练成本基于100000张图像的推理成本相较于人工标注的成本减少基于100000张图像的推理时间相较于人工标注的时间加速Rekognition头部边界框094942299更少55小时天Yolo关键点09842720 10999更少几分钟周

以下表格总结了性能指标。

标注任务mAP50 ()训练成本 ()推理成本 ()推理时间头部边界框94942255小时关键点98427105分钟

此外,我们的解决方案还在相似任务中提供重用性。其他系统如高级驾驶辅助系统(ADAS)和车内系统的相机感知开发也可以采用我们的解决方案。

总结

本文展示了如何利用AWS服务构建用于自动标注车内图像的主动学习管道。我们展示了ML的强大力量,使您能够自动化和加速标注过程,以及使用AWS服务支持或在SageMaker上定制模型的灵活框架。借助Amazon S3、SageMaker、Lambda和SageMaker Ground Truth,您可以简化数据存储、标注、训练和部署,同时大幅降低成本并实现重用。通过实施这一解决方案,汽车公司能够利用基于ML的先进分析技术如自动图像标注变得更加灵活和经济高效。

今天开始解锁[AWS服务](https//awsamazoncom/free/trk=fce796e84ceb48e0976789f7873fac3dampscchannel=psampefid=Cj0KCQjw7aqkBhDPARIsAKGa0oJpiwHcssx7A4ww3EgWv3y2GByuMPShKoQFW65RzFcAPk9rdu4iMaAnDyEALwwcBGsampskwcid=AL!4422!3!432339156150!e!!g!!aws!1644045032!68366401852ampallfreetiersortby=itemadditional

最新文章