Skip to content

模型测试指南

简介

训练评估模型之后,是时候进行测试了。模型测试涉及评估模型在现实场景中的表现。测试考虑的因素包括准确性、可靠性、公平性以及理解模型决策的难易程度。目标是确保模型按预期执行,提供预期结果,并符合应用程序或项目的整体目标

模型测试与模型评估非常相似,但它们是计算机视觉项目中的两个不同步骤。模型评估涉及使用指标和图表来评估模型的准确性。另一方面,模型测试检查模型的学习行为是否符合预期。在本指南中,我们将探讨测试计算机视觉模型的策略。

模型测试与模型评估

首先,让我们通过一个例子来理解模型评估和测试之间的区别。

假设你已经训练了一个计算机视觉模型来识别猫和狗,并且你希望在宠物商店部署这个模型来监控动物。在模型评估阶段,你使用一个带标签的数据集来计算准确性、精确度召回率和F1分数等指标。例如,模型在给定数据集中区分猫和狗的准确率可能达到98%。

评估之后,你使用宠物商店的图像来测试模型,以查看它在更多样化和现实条件下的表现。你检查它是否能在动物移动、不同光照条件或部分被玩具或家具遮挡时正确标记猫和狗。模型测试检查模型在受控评估环境之外的行为是否符合预期。

准备模型测试

计算机视觉模型通过检测模式、进行预测和评估其表现来从数据集中学习。这些数据集通常分为训练集和测试集,以模拟现实世界条件。训练数据教授模型,而测试数据验证其准确性。

在测试模型之前,请记住以下两点:

  • 现实代表性: 之前未见过的测试数据应与模型部署时需要处理的数据相似。这有助于获得对模型能力的现实理解。
  • 足够大小: 测试数据集的大小需要足够大,以提供关于模型表现可靠的见解。

测试你的计算机视觉模型

以下是测试你的计算机视觉模型并理解其表现的关键步骤。

  • 运行预测: 使用模型对测试数据集进行预测。
  • 比较预测: 检查模型的预测与实际标签(真实值)的匹配程度。
  • 计算性能指标: 计算指标如准确性、精确度、召回率和F1分数,以了解模型的强项和弱项。测试关注这些指标如何反映现实世界的表现。
  • 可视化结果: 创建混淆矩阵和ROC曲线等视觉辅助工具。这些帮助你发现模型在实际应用中可能表现不佳的特定领域。

接下来,可以分析测试结果:

  • 错误分类的图像: 识别并审查模型错误分类的图像,以了解其错误之处。
  • 错误分析: 进行彻底的错误分析,以了解错误的类型(例如,假阳性与假阴性)及其潜在原因。
  • 偏见和公平性: 检查模型预测中的任何偏见。确保模型在数据的不同子集上表现同样良好,特别是在包含种族、性别或年龄等敏感属性的情况下。

测试你的YOLO11模型

要测试你的YOLO11模型,你可以使用验证模式。这是一种直接了解模型强项和需要改进领域的方法。此外,你需要为YOLO11正确格式化你的测试数据集。有关如何使用验证模式的更多详细信息,请查看模型验证文档页面。

使用 YOLO11 对多张测试图像进行预测

如果你想一次性测试存储在文件夹中的多张图像上的训练好的 YOLO11 模型,你可以轻松实现。与其使用通常用于评估模型在验证集上的性能并提供详细指标的验证模式,你可能只想查看测试集上所有图像的预测结果。为此,你可以使用预测模式

验证模式与预测模式的区别

  • 验证模式 用于通过将预测结果与已知标签(真实值)进行比较来评估模型的性能。它提供详细的指标,如准确率、精确率、召回率和 F1 分数。
  • 预测模式 用于在新数据上运行模型以生成预测结果。它不提供详细的性能指标,但允许你查看模型在实际图像上的表现。

在不进行自定义训练的情况下运行 YOLO11 预测

如果你有兴趣测试基本的 YOLO11 模型,以了解是否可以在不进行自定义训练的情况下用于你的应用,你可以使用预测模式。虽然该模型已经在 COCO 等数据集上进行了预训练,但在你自己的数据集上运行预测可以让你快速了解它在特定情境下的表现。

机器学习中的过拟合和欠拟合

在测试机器学习模型时,尤其是在计算机视觉领域,重要的是要注意过拟合和欠拟合。这些问题会显著影响模型在新数据上的表现。

过拟合

过拟合发生在模型对训练数据学习得过于好,包括那些不泛化到新数据的噪声和细节。在计算机视觉中,这意味着你的模型可能在训练图像上表现出色,但在新图像上表现不佳。

过拟合的迹象

  • 高训练准确率,低验证准确率: 如果你的模型在训练数据上表现非常好,但在验证或测试数据上表现不佳,则可能存在过拟合。
  • 视觉检查: 有时,如果你发现模型对图像中的微小变化或无关细节过于敏感,也可以看出过拟合。

欠拟合

欠拟合发生在模型无法捕捉数据中的潜在模式时。在计算机视觉中,欠拟合的模型可能甚至无法正确识别训练图像中的对象。

欠拟合的迹象

  • 低训练准确率: 如果你的模型无法在训练集上达到高准确率,则可能存在欠拟合。
  • 视觉误分类: 持续无法识别明显的特征或对象表明存在欠拟合。

平衡过拟合和欠拟合

关键在于找到过拟合和欠拟合之间的平衡。理想情况下,模型应在训练和验证数据集上都有良好的表现。通过定期监控模型的性能指标和视觉检查,并应用适当的策略,可以帮助你获得最佳结果。

过拟合和欠拟合概述

计算机视觉中的数据泄露及其避免方法

在测试模型时,需要注意的一个重要问题是数据泄露。数据泄露发生在训练数据集外的信息意外地被用于训练模型时。模型在训练过程中可能看起来非常准确,但在发生数据泄露时,它在新数据上的表现会很差。

数据泄露的原因

数据泄露可能难以察觉,通常源于训练数据中的隐藏偏差。以下是计算机视觉中数据泄露的一些常见原因:

  • 相机偏差: 不同的角度、光线、阴影和相机移动可能会引入不需要的模式。
  • 叠加偏差: 图像中的标志、时间戳或其他叠加元素可能会误导模型。
  • 字体和对象偏差: 特定字体或频繁出现在某些类别中的对象可能会扭曲模型的学习。
  • 空间偏差: 前景-背景、边界框分布和对象位置的不平衡会影响训练。
  • 标签和领域偏差: 错误的标签或数据类型的变化可能会导致数据泄露。

检测数据泄露

要发现数据泄露,你可以:

  • 检查性能: 如果模型的结果出奇地好,可能存在数据泄露。
  • 查看特征重要性: 如果某个特征比其他特征重要得多,可能表明存在数据泄露。
  • 视觉检查: 仔细检查模型的决策是否在直觉上合理。
  • 验证数据分离: 确保在任何处理之前数据已正确划分。

避免数据泄露

为了防止数据泄露,使用来自不同摄像头和环境的多样化数据集(图像或视频)。仔细审查您的数据,并检查是否存在隐藏的偏差,例如所有正样本都是在一天中的特定时间拍摄的。避免数据泄露将有助于使您的计算机视觉模型在现实世界中更加可靠和有效。

模型测试之后的工作

在测试模型之后,下一步取决于结果。如果您的模型表现良好,您可以将其部署到现实环境中。如果结果不令人满意,您需要进行改进。这可能涉及分析错误、收集更多数据、提高数据质量、调整超参数以及重新训练模型。

加入AI对话

成为计算机视觉爱好者社区的一部分可以帮助更有效地解决问题和学习。以下是一些连接、寻求帮助和分享想法的方式。

社区资源

  • GitHub Issues: 探索 YOLO11 GitHub 仓库 并使用 Issues 标签提问、报告错误和建议新功能。社区和维护者非常活跃,随时准备提供帮助。
  • Ultralytics Discord 服务器: 加入 Ultralytics Discord 服务器 与其他用户和开发者聊天、获取支持并分享您的经验。

官方文档

  • Ultralytics YOLO11 文档: 查看 官方 YOLO11 文档 以获取详细的指南和有关各种计算机视觉项目的实用技巧。

这些资源将帮助您应对挑战,并保持对计算机视觉社区最新趋势和实践的更新。

总结

构建可信赖的计算机视觉模型依赖于严格的模型测试。通过使用之前未见过的数据测试模型,我们可以分析并发现诸如过拟合和数据泄露等弱点。在部署之前解决这些问题有助于模型在现实应用中表现良好。重要的是要记住,模型测试与模型评估同样重要,以确保模型的长期成功和有效性。

常见问题

计算机视觉中模型评估和模型测试的关键区别是什么?

模型评估和模型测试是计算机视觉项目中的不同步骤。模型评估涉及使用带标签的数据集计算诸如准确率、精确率、召回率和F1分数等指标,提供关于模型在受控数据集上性能的见解。另一方面,模型测试通过将其应用于新的、未见过的数据来评估模型在现实场景中的性能,确保模型学习到的行为与评估环境之外的预期一致。有关详细指南,请参阅计算机视觉项目步骤

如何在多张图像上测试我的 Ultralytics YOLO11 模型?

要在多张图像上测试您的 Ultralytics YOLO11 模型,您可以使用预测模式。此模式允许您在新数据上运行模型以生成预测,而无需提供详细的指标。这对于在文件夹中存储的大量图像上进行现实性能测试是理想的。要评估性能指标,请改用验证模式

如果我的计算机视觉模型显示出过拟合或欠拟合的迹象,我该怎么办?

要解决过拟合

  • 使用诸如 dropout 的正则化技术。
  • 增加训练数据集的大小。
  • 简化模型架构。

要解决欠拟合

  • 使用更复杂的模型。
  • 提供更多相关特征。
  • 增加训练迭代次数或epoch

审查错误分类的图像,进行彻底的错误分析,并定期跟踪性能指标以保持平衡。有关这些概念的更多信息,请浏览我们的机器学习中的过拟合和欠拟合部分。

如何在计算机视觉中检测和避免数据泄露?

要检测数据泄露:

  • 验证测试性能是否异常高。
  • 检查特征重要性以获取意外的见解。
  • 直观地审查模型决策。
  • 确保在处理前正确划分数据。

要避免数据泄露:

  • 使用具有各种环境的不同数据集。
  • 仔细审查数据以查找隐藏的偏差。
  • 确保训练集和测试集之间没有重叠信息。

有关防止数据泄露的详细策略,请参阅我们关于计算机视觉中的数据泄露的部分。

测试计算机视觉模型后我应该采取哪些步骤?

测试后,如果模型性能符合项目目标,则继续进行部署。如果结果不理想,请考虑:

  • 错误分析。
  • 收集更多样化和高质量的数据。
  • 超参数调优
  • 重新训练模型。

模型测试与模型评估部分获取见解,以优化和增强模型在实际应用中的有效性。

如何在不进行自定义训练的情况下运行YOLO11预测?

您可以使用预训练的YOLO11模型在您的数据集上运行预测,以查看其是否符合您的应用需求。利用预测模式快速了解性能结果,而无需深入进行自定义训练。


📅 Created 3 months ago ✏️ Updated 13 days ago

Comments