跳至内容

模型试验指南

导言

在对模型进行培训和评估之后,就该对其进行测试了。模型测试包括评估模型在实际场景中的表现。测试考虑的因素包括准确性、可靠性、公平性以及模型决策的易懂程度。目标是确保模型按照预期执行,提供预期结果,并符合应用程序或项目的总体目标。

模型测试与模型评估非常相似,但它们是计算机视觉项目中两个截然不同的步骤。模型评估通过度量和绘图来评估模型的准确性。另一方面,模型测试则是检查模型的学习行为是否与预期一致。在本指南中,我们将探讨测试计算机视觉模型的策略。

模型测试与模型评估模型评估

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

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

评估结束后,您将使用宠物店的图片对模型进行测试,看看它在更多样、更真实的条件下识别猫狗的能力如何。您要检查的是,当猫和狗移动时、在不同的光照条件下或被玩具或家具等物体部分遮挡时,模型能否正确标示出猫和狗。模型测试检查模型在受控评估环境之外的表现是否符合预期。

准备模型测试

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

在测试模型之前,有两点需要注意:

  • 真实呈现:之前未见过的测试数据应与模型部署时需要处理的数据相似。这有助于真实地了解模型的能力。
  • 足够大:测试数据集的规模必须足够大,以便可靠地了解模型的性能如何。

测试计算机视觉模型

以下是测试计算机视觉模型并了解其性能的关键步骤。

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

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

  • 分类错误的图像:识别并查看模型分类错误的图像,以了解错误出在哪里。
  • 错误分析:进行全面的错误分析,以了解错误类型(如假阳性与假阴性)及其潜在原因。
  • 偏差与公平:检查模型预测中是否存在偏差。确保模型在不同的数据子集中表现同样出色,尤其是在包含种族、性别或年龄等敏感属性的情况下。

测试您的YOLOv8 模型

要测试YOLOv8 模型,可以使用验证模式。这是了解模型优势和需要改进之处的直接方法。此外,您还需要正确格式化测试数据集,以便YOLOv8 。有关如何使用验证模式的详细信息,请查看模型验证文档页面。

使用YOLOv8 对多个测试图像进行预测

如果您想在文件夹中存储的多个图像上测试训练有素的YOLOv8 模型,您可以轻松地一次性完成测试。验证模式通常用于评估模型在验证集上的性能并提供详细指标,而不是使用验证模式,您可能只想查看测试集中所有图像的预测结果。为此,您可以使用预测模式。

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

  • 验证模式:通过将预测结果与已知标签(地面实况)进行比较来评估模型的性能。它可提供准确率、精确度、召回率和 F1 分数等详细指标。
  • 预测模式:用于在未见过的新数据上运行模型以生成预测结果。它不提供详细的性能指标,但可以让你看到模型在真实世界图像上的表现。

无需定制培训即可运行YOLOv8 预测

如果您有兴趣测试基本的YOLOv8 模型,以了解该模型是否可用于您的应用,而无需进行自定义训练,您可以使用预测模式。虽然该模型已在 COCO 等数据集上进行了预训练,但在您自己的数据集上运行预测可以让您快速了解该模型在您的特定环境中的表现。

机器学习中的过度拟合与欠拟合

在测试机器学习模型时,尤其是在计算机视觉领域,一定要注意过度拟合和拟合不足的问题。这些问题会严重影响模型处理新数据的效果。

过度拟合

过度拟合是指模型对训练数据的学习效果太好,包括对噪声和细节的学习效果,而对新数据的学习效果并不理想。在计算机视觉中,这意味着你的模型在处理训练图像时可能表现出色,但在处理新图像时却很吃力。

过度拟合的迹象

  • 训练准确率高,验证准确率低:如果模型在训练数据上表现很好,但在验证或测试数据上表现很差,那么很可能是过度拟合。
  • 视觉检测:有时,如果模型对图像中的微小变化或无关细节过于敏感,就会出现过度拟合的情况。

不合适

当模型无法捕捉数据中的基本模式时,就会出现拟合不足的情况。在计算机视觉中,拟合不足的模型甚至可能无法正确识别训练图像中的物体。

不合适的迹象

  • 训练精确度低:如果模型在训练集上无法达到很高的精确度,则可能是拟合不足。
  • 视觉分类错误:持续无法识别明显的特征或物体,表明拟合不足。

平衡过度拟合与欠拟合

关键是要在过拟合和欠拟合之间找到平衡。理想情况下,模型应该在训练数据集和验证数据集上都表现良好。通过指标和可视化检查定期监控模型的性能,同时采用正确的策略,可以帮助您取得最佳结果。

过拟合和欠拟合概述

计算机视觉中的数据泄露及如何避免

在测试模型时,需要注意的是数据泄漏。当训练数据集之外的信息不小心被用于训练模型时,就会发生数据泄漏。在训练过程中,模型可能看起来非常准确,但当数据泄漏发生时,它在新的、未见过的数据上就不会有很好的表现。

为什么会发生数据泄漏

数据泄漏很难发现,通常来自训练数据中隐藏的偏差。以下是计算机视觉中发生数据泄露的几种常见方式:

  • 摄像机偏差:不同的角度、光线、阴影和摄像机移动都会带来不必要的模式。
  • 叠加偏差:图像中的徽标、时间戳或其他叠加物会误导模型。
  • 字体和对象偏差:经常出现在某些类别中的特定字体或对象会影响模型的学习。
  • 空间偏差:前景-背景、边界框分布和物体位置的不平衡会影响训练。
  • 标签和域偏差:不正确的标签或数据类型的变化会导致泄漏。

检测数据泄漏

要查找数据泄漏,您可以

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

避免数据泄露

为防止数据泄露,应使用不同的数据集,包括来自不同相机和环境的图像或视频。仔细查看数据,检查是否存在隐藏的偏差,例如所有阳性样本都是在一天中的某个特定时间拍摄的。避免数据泄露将有助于提高计算机视觉模型在真实世界中的可靠性和有效性。

模型试验之后的工作

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

加入人工智能对话

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

社区资源

  • GitHub 问题:访问YOLOv8 GitHub 代码库,使用 "问题 "选项卡提问、报告错误和建议新功能。社区和维护者非常活跃,随时准备提供帮助。
  • Ultralytics Discord 服务器:加入Ultralytics Discord 服务器,与其他用户和开发人员聊天,获得支持并分享经验。

官方文件

  • Ultralytics YOLOv8 文档:查看 YOLOv8 官方文档,了解各种计算机视觉项目的详细指南和有用技巧。

这些资源将帮助您应对挑战,了解计算机视觉领域的最新趋势和实践。

综述

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

常见问题

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

模型评估和模型测试是计算机视觉项目中截然不同的步骤。模型评估包括使用标注数据集计算准确率、精确度、召回率和 F1 分数等指标,从而深入了解模型在受控数据集中的表现。而模型测试则是通过将模型应用于新的、未见过的数据来评估模型在真实世界场景中的性能,确保模型的学习行为符合评估环境之外的预期。有关详细指南,请参阅计算机视觉项目的步骤。

如何在多个图像上测试我的Ultralytics YOLOv8 模型?

要在多个图像上测试Ultralytics YOLOv8 模型,可以使用预测模式。该模式允许您在新的、未见过的数据上运行模型,生成预测结果,而不提供详细的指标。这非常适合在文件夹中存储的较大图像集上进行实际性能测试。要评估性能指标,请使用验证模式。

如果计算机视觉模型出现拟合过度或拟合不足的迹象,该怎么办?

解决过度拟合问题:

  • 正则化技术,如滤除。
  • 增加训练数据集的规模。
  • 简化模型结构。

解决拟合不足的问题:

  • 使用更复杂的模型。
  • 提供更多相关功能。
  • 增加训练迭代或历时。

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

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

检测数据泄漏:

  • 验证测试性能是否异常高。
  • 检查功能的重要性,获得意想不到的见解。
  • 直观审查模型决策。
  • 确保在处理前正确划分数据。

避免数据泄漏:

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

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

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

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

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

从 "模型测试与模型评估 "部分获得见解,以完善和提高模型在实际应用中的有效性。从模型测试与模型评估部分获得见解,以完善和提高模型在实际应用中的有效性。

如何在没有自定义训练的情况下运行YOLOv8 预测?

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



创建于 2024-07-04,更新于 2024-07-05
作者:glenn-jocher(2)、abirami-vina(1)

评论