用于评估 Amazon Rekognition 和其他内容审核服务 PlatoBlockchain 数据智能中的内容审核的指标。 垂直搜索。 哎呀。

用于评估 Amazon Rekognition 和其他内容审核服务中的内容审核的指标

内容审核是在线筛选和监控用户生成内容的过程。 为了为用户和品牌提供安全的环境,平台必须对内容进行审核,以确保其符合预先确定的针对平台及其受众的可接受行为准则。

当平台审核内容时,可以创建可接受的用户生成内容 (UGC) 并与其他用户共享。 不适当的、有害的或禁止的行为可以被阻止、实时阻止或事后删除,这取决于平台拥有的内容审核工具和程序。

您可以使用 Amazon Rekognition 内容审核 检测不适当、不受欢迎或令人反感的内容,创造更安全的用户体验,为广告商提供品牌安全保证,并遵守当地和全球法规。

在这篇文章中,我们讨论了根据各种准确度指标评估内容审核服务的性能方面所需的关键要素,并提供了一个使用 Amazon Rekognition 的示例 内容审核 API.

评估什么

在评估内容审核服务时,我们建议执行以下步骤。

在评估 API 在用例上的性能之前,您需要准备一个有代表性的测试数据集。 以下是一些高级指南:

  • 购物 – 从您最终希望通过 Amazon Rekognition 运行的数据中抽取足够大的随机样本(图像或视频)。 例如,如果您计划审核用户上传的图像,则可以使用一周的用户图像进行测试。 我们建议选择具有足够图像且不会变得太大而无法处理的集合(例如 1,000–10,000 个图像),尽管更大的集合更好。
  • 定义 – 使用您的应用程序的内容指南来决定您有兴趣从 Amazon Rekognition 检测哪些类型的不安全内容 适度概念分类. 例如,您可能对检测所有类型的露骨和血腥暴力或血腥感兴趣。
  • 注解 – 现在,您需要使用所选标​​签为您的测试集提供人工生成的基本事实,以便您可以将机器预测与它们进行比较。 这意味着每个图像都针对您选择的概念的存在或不存在进行了注释。 要注释图像数据,您可以使用 亚马逊SageMaker地面真相 (GT) 管理图像注释。 你可以参考 用于图像标注的 GT, 合并注释处理注释输出.

使用 Amazon Rekognition 对您的测试数据集进行预测

接下来,您想要对测试数据集进行预测。

第一步是确定要衡量结果的最低置信度分数(阈值,例如 50%)。 我们的默认阈值设置为 50,这在检索大量不安全内容和不会对安全内容产生太多错误预测之间提供了良好的平衡。 但是,您的平台可能有不同的业务需求,因此您应该根据需要自定义此置信度阈值。 您可以使用 MinConfidence API 请求中的参数以平衡内容检测(召回)与检测准确性(精度)。 如果你减少 MinConfidence,您可能会检测到大部分不当内容,但也可能会挑选出实际上并非不当的内容。 如果你增加 MinConfidence 您可能会确保您检测到的所有内容确实不合适,但某些内容可能没有被标记。 我们建议尝试一些 MinConfidence 数据集上的值,并为您的数据域定量选择最佳值。

接下来,通过 Amazon Rekognition 审核 API (检测审核标签).

在图像上测量模型精度

您可以通过将人工生成的基本事实注释与模型预测进行比较来评估模型的准确性。 您对每个图像独立重复此比较,然后在整个测试集上进行聚合:

  • 每个图像的结果 – 模型预测被定义为对 {label_name, confidence_score} (其中置信度得分 >= 您之前选择的阈值)。 对于每张图像,当预测与基本事实 (GT) 匹配时,它就被认为是正确的。 预测是以下选项之一:
    • 真阳性 (TP): 预测和 GT 都是“不安全的”
    • 真阴性(TN): 预测和 GT 都是“安全的”
    • 假阳性 (FP): 预测说“不安全”,但 GT 是“安全的”
    • 假阴性 (FN):预测是“安全的”,但 GT 是“不安全的”
  • 所有图像的汇总结果 – 接下来,您可以将这些预测聚合到数据集级别的结果中:
    • 假阳性率 (FPR) – 这是测试集中图像被模型错误标记为包含不安全内容的百分比:(FP): FP / (TN+FP)。
    • 假阴性率 (FNR) – 这是模型遗漏的测试集中不安全图像的百分比:(FN): FN / (FN+TP)。
    • 真阳性率 (TPR) – 也称为召回率,它计算模型正确发现或预测的不安全内容(基本事实)的百分比:TP / (TP + FN) = 1 – FNR。
    • 平台精度 – 这计算正确预测(不安全内容)相对于所做预测总数的百分比:TP / (TP+FP)。

让我们来研究一个例子。 假设您的测试集包含 10,000 张图像:9,950 张安全图像和 50 张不安全图像。 该模型正确预测 9,800 张图像中的 9,950 张是安全的,45 张中的 50 张是不安全的:

  • TP = 45
  • TN = 9800
  • FP = 9950 - 9800 = 150
  • FN = 50 - 45 = 5
  • FPR = 150 / (9950 + 150) = 0.015 = 1.5%
  • FNR = 5 / (5 + 45) = 0.1 = 10%
  • TPR/召回 = 45 / (45 + 5) = 0.9 = 90%
  • 平台精度 = 45 / (45 + 150) = 0.23 = 23%

测量视频的模型准确性

如果您想评估视频的性能,则需要执行一些额外的步骤:

  1. 从每个视频中采样帧的子集。 我们建议以每秒 0.3-1 帧 (fps) 的速率进行均匀采样。 例如,如果视频以 24 fps 编码,并且您希望每 3 秒(0.3 fps)采样一帧,则需要每 72 帧选择一帧。
  2. 通过 Amazon Rekognition 内容审核运行这些采样帧。 您可以使用我们的视频 API,它已经为您采样帧(以 3 fps 的速率),或者使用图像 API,在这种情况下您想要更稀疏地采样。 考虑到视频中的信息冗余(连续帧非常相似),我们推荐后一种选择。
  3. 如上一节所述计算每帧结果(每图像结果)。
  4. 汇总整个测试集的结果。 根据对您的业务重要的结果类型,您有两种选择:
    1. 帧级结果 – 这将所有采样帧视为独立图像,并完全按照前面对图像的解释(FPR、FNR、召回、精度)聚合结果。 如果某些视频比其他视频长得多,它们将在总计数中贡献更多帧,从而使比较不平衡。 在这种情况下,我们建议将初始采样策略更改为每个视频的固定帧数。 例如,您可以对每个视频统一采样 50–100 帧(假设视频至少有 2–3 分钟长)。
    2. 视频级结果 – 对于某些用例,模型是否能够正确预测视频中 50% 或 99% 的帧并不重要。 即使是单个帧上的一个错误的不安全预测也可能触发下游的人工评估,并且只有具有 100% 正确预测的视频才真正被认为是正确的。 如果这是您的用例,我们建议您在每个视频的帧上计算 FPR/FNR/TPR,并按如下方式考虑视频:
视频标识 准确性 每视频分类
对视频 ID 的所有帧聚合的结果

总 FP = 0

总 FN = 0

完美的预测
. 总 FP > 0 误报 (FP)
. 总 FN > 0 假阴性 (FN)

在您为每个视频独立计算这些之后,您可以计算我们之前介绍的所有指标:

  • 被错误标记 (FP) 或遗漏 (FN) 的视频的百分比
  • 准确率和召回率

根据目标衡量绩效

最后,您需要根据您的目标和能力来解释这些结果。

首先,考虑以下方面的业务需求:

  • 时间 – 了解您的数据(每日数据量、数据类型等)以及不安全内容与安全内容的分布情况。 例如,它是平衡的(50/50)、偏斜的(10/90)还是非常偏斜的(1/99,意味着只有 1% 是不安全的)? 了解这种分布可以帮助您定义实际的指标目标。 例如,安全内容的数量通常比不安全内容大一个数量级(非常倾斜),这几乎是一个异常检测问题。 在这种情况下,误报的数量可能会超过真正的数量,您可以使用您的数据信息(分布偏度、数据量等)来决定您可以使用的 FPR。
  • 指标目标 – 您的业务最关键的方面是什么? 降低 FPR 通常会以更高的 FNR 为代价(反之亦然),找到适合您的正确平衡点很重要。 如果您不能错过任何不安全的内容,您可能希望接近 0% 的 FNR(100% 召回)。 但是,这将导致最大数量的误报,您需要根据您的后预测管道确定可以使用的目标(最大)FPR。 您可能希望允许某种程度的假阴性能够找到更好的平衡并降低您的 FPR:例如,接受 5% FNR 而不是 0% 可以将 FPR 从 2% 降低到 0.5%,从而显着减少数量标记的内容。

接下来,问问自己将使用什么机制来解析标记的图像。 即使 API 可能无法提供 0% 的 FPR 和 FNR,它仍然可以带来巨大的节省和规模化(例如,通过仅标记 3% 的图像,您已经过滤掉了 97% 的内容)。 当您将 API 与一些下游机制(例如审查标记内容的人力)配对时,您可以轻松实现目标(例如,0.5% 的标记内容)。 请注意,这种配对比必须对 100% 的内容进行人工审查要便宜得多。

当您决定了您的下游机制后,我们建议您评估您可以支持的吞吐量。 例如,如果您的员工只能验证 2% 的日常内容,那么我们的内容审核 API 的目标目标是 2% 的标记率 (FPR+TPR)。

最后,如果获取 ground truth 注释太难或太昂贵(例如,您的数据量太大),我们建议对 API 标记的少量图像进行注释。 尽管这不允许进行 FNR 评估(因为您的数据不包含任何假阴性),但您仍然可以测量 TPR 和 FPR。

在下一节中,我们提供了一个图像审核评估的解决方案。 您可以采用类似的方法进行视频审核评估。

解决方案概述

下图说明了可用于评估 Amazon Rekognition 内容审核在您的测试数据集上的性能的各种 AWS 服务。

内容审核评估有以下步骤:

  1. 将您的评估数据集上传到 亚马逊简单存储服务 (亚马逊S3)。
  2. 使用 Ground Truth 分配 Ground Truth 审核标签。
  3. 使用 Amazon Rekognition 预训练的审核 API 使用几个阈值生成预测审核标签。 (例如,70%、75% 和 80%)。
  4. 通过计算真阳性、真阴性、假阳性和假阴性来评估每个阈值的性能。 为您的用例确定最佳阈值。
  5. 或者,您可以根据真假阳性来调整劳动力规模,并使用 亚马逊增强AI (Amazon A2I) 自动将所有标记的内容发送给您指定的员工进行人工审核。

以下部分提供了步骤 1、2 和 3 的代码片段。有关完整的端到端源代码,请参阅提供的 Jupyter笔记本.

先决条件

在开始之前,请完成以下步骤来设置Jupyter笔记本:

  1. 创建一个笔记本实例 in 亚马逊SageMaker.
  2. 笔记本电脑处于活动状态时,选择 打开Jupyter.
  3. 在Jupyter仪表板上,选择 全新,并选择 终端.
  4. 在终端中,输入以下代码:
    cd SageMaker
    git clone https://github.com/aws-samples/amazon-rekognition-code-samples.git

  5. 打开这篇文章的笔记本: content-moderation-evaluation/Evaluating-Amazon-Rekognition-Content-Moderation-Service.ipynb.
  6. 将您的评估数据集上传到 亚马逊简单存储服务 (亚马逊S3)。

我们现在将在 Jupyter 笔记本中完成步骤 2 到 4。

使用 Ground Truth 分配审核标签

要在 Ground Truth 中分配标签,请完成以下步骤:

  1. 创建清单输入文件 用于您的 Ground Truth 作业并将其上传到 Amazon S3。
  2. 创建标签配置,其中包含 Ground Truth 标记作业所需的所有审核标签。要检查您可以使用的标签类别数量的限制,请参阅 标签类别配额. 在下面的代码片段中,我们使用了五个标签(参考 Amazon Rekognition 中使用的分层分类法 了解更多详情)加一个标签(Safe_Content) 将内容标记为安全:
    # customize CLASS_LIST to include all labels that can be used to classify sameple data, it's up to 10 labels
    # In order to easily match image label with content moderation service supported taxonomy, 
    
    CLASS_LIST = ["

  3. 创建自定义工作人员任务模板,为 Ground Truth 员工提供标签说明并将其上传到 Amazon S3。
    Ground Truth 标签作业被定义为图像分类(多标签)任务。 有关自定义指令模板的说明,请参阅源代码。
  4. 确定您希望使用哪些劳动力来完成 Ground Truth 工作。 您有两种选择(有关详细信息,请参阅源代码):
    1. 使用 私人劳动力 在您自己的组织中标记评估数据集。
    2. 使用 公共劳动力 标记评估数据集。
  5. 创建并提交 Ground Truth 标记作业。 也可以调整下面的代码来配置 标记作业参数 以满足您的特定业务需求。 有关创建和配置 Ground Truth 作业的完整说明,请参阅源代码。
    human_task_config = {
        "AnnotationConsolidationConfig": {
            "AnnotationConsolidationLambdaArn": acs_arn,
        },
        "PreHumanTaskLambdaArn": prehuman_arn,
        "MaxConcurrentTaskCount": 200,  # 200 images will be sent at a time to the workteam.
        "NumberOfHumanWorkersPerDataObject": 3,  # 3 separate workers will be required to label each image.
        "TaskAvailabilityLifetimeInSeconds": 21600,  # Your workteam has 6 hours to complete all pending tasks.
        "TaskDescription": task_description,
        "TaskKeywords": task_keywords,
        "TaskTimeLimitInSeconds": 180,  # Each image must be labeled within 3 minutes.
        "TaskTitle": task_title,
        "UiConfig": {
            "UiTemplateS3Uri": "s3://{}/{}/instructions.template".format(BUCKET, EXP_NAME),
        },
    }

提交作业后,您应该会看到类似于以下内容的输出:

Labeling job name is: ground-truth-cm-1662738403

等待评估数据集上的标记作业成功完成,然后继续下一步。

使用 Amazon Rekognition 审核 API 生成预测审核标签。

以下代码段显示了如何使用 Amazon Rekognition 审核 API 生成审核标签:

client=boto3.client('rekognition')
def moderate_image(photo, bucket):
    response = client.detect_moderation_labels(Image={'S3Object':{'Bucket':bucket,'Name':photo}})
    return len(response['ModerationLabels'])

评估表现

您首先从评估数据集的 Ground Truth 标记作业结果中检索了 Ground Truth 审核标签,然后运行 ​​Amazon Rekognition 审核 API 以获取同一数据集的预测审核标签。 因为这是一个二元分类问题(安全与不安全内容),我们计算以下指标(假设不安全内容为正):

我们还计算了相应的评价指标:

以下代码片段显示了如何计算这些指标:

FPR = FP / (FP + TN)
FNR = FN / (FN + TP)
Recall = TP / (TP + FN)
Precision = TP / (TP + FP)

结论

这篇文章讨论了根据各种准确度指标评估内容审核服务的性能方面所需的关键要素。 但是,准确性只是您在选择特定内容审核服务时需要评估的众多维度之一。 包含其他参数至关重要,例如服务的总功能集、易用性、现有集成、隐私和安全性、自定义选项、可扩展性影响、客户服务和定价。 要了解有关 Amazon Rekognition 中内容审核的更多信息,请访问 Amazon Rekognition 内容审核.


关于作者

用于评估 Amazon Rekognition 和其他内容审核服务 PlatoBlockchain 数据智能中的内容审核的指标。 垂直搜索。 哎呀。阿米特·古普塔(Amit Gupta) 是 AWS 的高级 AI 服务解决方案架构师。 他热衷于为客户大规模地提供架构良好的机器学习解决方案。

用于评估 Amazon Rekognition 和其他内容审核服务 PlatoBlockchain 数据智能中的内容审核的指标。 垂直搜索。 哎呀。大卫·莫多洛 是 AWS AI 实验室的应用科学经理。 他拥有爱丁堡大学(英国)的计算机视觉博士学位,热衷于为现实世界的客户问题开发新的科学解决方案。 工作之余,他喜欢旅行和参加任何运动,尤其是足球。

用于评估 Amazon Rekognition 和其他内容审核服务 PlatoBlockchain 数据智能中的内容审核的指标。 垂直搜索。 哎呀。吴建 是 AWS 的高级企业解决方案架构师。 他在 AWS 工作了 6 年,与各种规模的客户合作。 他热衷于通过采用云和 AI/ML 来帮助客户更快地进行创新。 在加入 AWS 之前,Jian 花了 10 多年的时间专注于软件开发、系统实施和基础设施管理。 工作之余,他喜欢保持活跃并与家人共度时光。

时间戳记:

更多来自 AWS机器学习