改进您的 Amazon Lookout for Vision 模型 - Amazon Lookout for Vision

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

改进您的 Amazon Lookout for Vision 模型

在训练期间,Lookout for Vision 会使用测试数据集测试您的模型,并利用结果创建性能指标。您可以使用性能指标来评估自己模型的性能。如有必要,您可以采取措施改进数据集,然后重新训练模型。

如果您对模型性能感到满意,就可以开始使用模型。有关更多信息,请参阅 运行经过训练的 Amazon Lookout for Vision 模型

步骤 1:评估模型的性能

您可以通过控制台和 DescribeModel 操作来访问性能指标。Amazon Lookout for Vision 提供了测试数据集的概要性能指标,以及所有个体图像的预测结果。如果您的模型是分割模型,则控制台还会显示每个异常标签的概要指标。

要在控制台中查看性能指标和测试图像预测,请参阅查看性能指标(控制台)。有关通过 DescribeModel 操作访问性能指标和测试图像预测的信息,请参阅查看性能指标 (SDK)

图像分类指标

Amazon Lookout for Vision 为模型在测试期间所做的分类提供了以下概要指标:

图像分割模型指标

如果模型是图像分割模型,Amazon Lookout for Vision 会提供概要图像分类指标和每个异常标签的概要性能指标:

精度

精度指标用于解答以下问题:当模型预测图像包含异常时,该预测的正确率是多少?

在假阳性成本很高的情况下,精度是一个有用的指标。例如,从组装好的机器上拆除没有缺陷的机器部件所造成的成本。

Amazon Lookout for Vision 为整个测试数据集提供了一种概要精度指标值。

精度 是预测正确的异常(真阳性)占所有预测异常(真阳性和假阳性)的比例。精度的公式如下所示。

精度值 = 真阳性数/(真阳性数 + 假阳性数)

可能的精度值介于 0-1 之间。Amazon Lookout for Vision 控制台以百分比值 (0-100) 的形式显示精度。

精度值越高,表示正确预测的异常越多。例如,假设您的模型预测 100 张图像异常。如果有 85 个预测正确(真阳性),15 个预测不正确(假阳性),则精度计算方法如下:

85 个真阳性 /(85 个真阳性 + 15 个假阳性)= 0.85 精度值

但是,如果模型在所做的 100 个异常预测中,仅正确预测了 40 张图像,则最终精度值为较低的 0.40(即 40 / (40 + 60) = 0.40)。在这种情况下,您的模型做出的错误预测多于正确预测。要解决这个问题,可以考虑对模型进行改进。有关更多信息,请参阅 步骤 2:改进您的模型

有关更多信息,请参阅精度和召回率

调用

召回率指标用于解答以下问题:在测试数据集的异常图像总数中,有多少被正确预测为异常?

在假阴性成本很高的情况下,召回率指标十分有用。例如,当不拆除缺陷零件所造成的成本很高时。Amazon Lookout for Vision 为整个测试数据集提供了一种概要召回率指标值。

召回率 是正确检测出的异常测试图像的比例。当测试数据集的图像中存在异常图像时,它可以衡量模型正确预测异常图像的频率。召回率的计算公式如下所示:

召回率值 = 真阳性数/(真阳性数 + 假阴性数)

召回率介于 0-1 之间。Amazon Lookout for Vision 控制台以百分比值 (0-100) 的形式显示召回率。

召回率值越高,表示正确识别出的异常图像越多。例如,假设测试数据集包含 100 张异常图像。如果模型正确检测出 100 张异常图像中的 90 张,则召回率如下所示:

90 个真阳性 /(90 个真阳性 + 10 个假阴性)= 0.90 召回率值

召回率值为 0.90 表示您的模型正确预测出了测试数据集中的大多数异常图像。如果模型仅正确预测出 20 张异常图像,则召回率为较低的 0.20(即 20 / (20 + 80) = 0.20)。

在此情况下,您应考虑对模型进行改进。有关更多信息,请参阅 步骤 2:改进您的模型

有关更多信息,请参阅精度和召回率

F1 分数

Amazon Lookout for Vision 为测试数据集提供了一种平均模型性能分数。具体而言,异常分类的模型性能通过 F1 分数指标来衡量,该分数是精度分数和召回率分数的调和平均值。

F1 分数 是一种同时考虑精度和召回率的综合指标。模型性能分数是介于 0 和 1 之间的值。该值越高,表明模型在召回率和精度方面的表现越好。例如,对于精度为 0.9、召回率为 1.0 的模型,F1 分数为 0.947。

如果模型表现不佳,例如精度低至 0.30,召回率高达 1.0,则 F1 分数为 0.46。同样,如果精度较高 (0.95),召回率较低 (0.20),则 F1 分数为 0.33。这两种情况下,F1 分数都较低,表明模型存在问题。

有关更多信息,请参阅 F1 分数

平均交并比 (IoU)

测试图像中的异常掩码与模型预测这些测试图像具有的异常掩码之间的平均重叠百分比。Amazon Lookout for Vision 会返回每个异常标签的平均 IoU,并且只能通过图像分割模型返回。

较低的百分比值表示,模型预测的标签掩码与测试图像中的掩码不准确匹配。

下面图像的 IoU 较低。橙色掩码是模型所做的预测,它不能紧密覆盖蓝色掩码,即测试图像中的掩码。

Close-up of a car's front bumper with blue and pink paint marks, indicating damage.

下面图像的 IoU 较高。蓝色掩码(测试图像)被橙色掩码(预测的掩码)紧密覆盖。

Close-up of a car's front section with purple paint scratches on the white body panel.

测试结果

在测试期间,模型会对测试数据集中的每张测试图像预测分类。每个预测的结果会与相应测试图像的标签(正常或异常)进行比较,如下所示:

  • 若正确预测图像异常,则视为真阳性

  • 若错误预测图像异常,则视为假阳性

  • 若正确预测图像正常,则视为真阴性

  • 若错误预测图像正常,则视为假阴性

如果模型是分割模型,则模型还会预测掩码和异常标签,用来表示测试图像上的异常位置。

Amazon Lookout for Vision 使用比较结果来生成绩效指标。

步骤 2:改进您的模型

性能指标可能表明您可以改进模型。例如,如果模型未检测出测试数据集中的所有异常,则表明您的模型的召回率较低(也就是说,召回率指标的值较低)。如果您需要改进模型,请考虑以下事项:

  • 检查训练及测试数据集图像是否正确标注。

  • 减少光照和物体姿态等图像捕获条件的可变性,并且使用相同类型的对象来训练模型。

  • 确保您的图像仅显示所需的内容。例如,如果您的项目要检测机器零件中的异常,请确保图像中不存在其他对象。

  • 向您的训练及测试数据集添加更多已标注的图像。如果测试数据集的召回率和精度非常出色,但模型在部署后表现不佳,则说明测试数据集可能代表性不足,您需要对其进行扩展。

  • 如果测试数据集导致召回率和精度不佳,请考虑训练及测试数据集中的异常和图像捕获条件的匹配程度。如果训练图像不能代表预期的异常和条件,但测试图像中的图像可以代表,请向训练数据集中添加具有预期异常和条件的图像。如果测试数据集图像不在预期条件下,但训练图像在,请更新测试数据集。

    有关更多信息,请参阅 添加更多图像。向训练数据集中添加已标注图像的另一种方法是,执行试用检测任务并验证结果。然后,您可以将经过验证的图像添加到训练数据集中。有关更多信息,请参阅 通过试用检测任务验证您的模型

  • 确保您的训练及测试数据集中具有足够多样的正常图像和异常图像。这些图像必须能够代表您的模型将会遇到的正常图像和异常图像类型。例如,在分析电路板时,您的正常图像应该能够代表电阻器和晶体管等组件的位置和焊接变化。异常图像应该能够代表系统可能会遇到的不同异常类型,如组件错位或缺失。

  • 如果您的模型在检测到的异常类型方面具有低平均 IoU,请检查分割模型的掩码输出。在诸如划痕等一些使用场景下,模型输出的划痕可能非常接近测试图像中的真值划痕,但像素重叠度较低。例如,两条相隔 1 个像素的平行线。在这些情况下,平均 IoU 在衡量预测成功率方面是不可靠的指标。

  • 如果图像尺寸较小或图像分辨率较低,请考虑以更高的分辨率捕获图像。图像尺寸可以从 64 x 64 像素到最高 4096 X 4096 像素。

  • 如果异常尺寸很小,可以考虑将图像分成多个单独的图块,然后使用平铺的图像进行训练和测试。这样,模型就可以看到图像中较大尺寸的缺陷。

在改进训练及测试数据集后,请重新训练并重新评估您的模型。有关更多信息,请参阅 训练您的模型

如果指标显示您的模型性能可接受,则可以将试用检测任务的结果添加到测试数据集,以此来验证其性能。重新训练后,性能指标应该确认上一次训练中的性能指标。有关更多信息,请参阅 通过试用检测任务验证您的模型