Meet YOLO26: next-gen vision AI.

Link to this section理解计算机视觉项目的关键步骤#

Link to this section简介#

计算机视觉是人工智能 (AI) 的一个子领域,旨在帮助计算机像人类一样观察和理解世界。它通过处理和分析图像或视频来提取信息、识别模式并基于这些数据做出决策。



Watch: How to Do Computer Vision Projects | A Step-by-Step Guide

诸如目标检测图像分类实例分割等计算机视觉技术,可应用于从自动驾驶医学影像的各个行业,以获取有价值的见解。

进行你自己的计算机视觉项目是理解和学习计算机视觉的好方法。然而,一个计算机视觉项目可能包含许多步骤,起初可能会让你感到困惑。读完本指南后,你将熟悉计算机视觉项目所涉及的各个步骤。我们将从头到尾引导你完成项目,并解释每个部分的重要性。

Link to this section计算机视觉项目概览#

在讨论计算机视觉项目每个步骤的细节之前,让我们先看看整个流程。如果你今天开始一个计算机视觉项目,你需要采取以下步骤:

  • 你的首要任务是了解项目的需求。
  • 然后,收集并准确标注有助于训练模型的图像。
  • 接下来,清理数据并应用增强技术,为模型训练做好准备。
  • 模型训练完成后,你需要彻底测试和评估你的模型,以确保其在不同条件下表现一致。
  • 最后,将模型部署到真实环境中,并根据新的见解和反馈进行更新。

Computer Vision Project Steps Overview

现在我们已经知道会发生什么,让我们直接深入了解这些步骤,推动你的项目向前发展。

Link to this section第 1 步:定义你的项目目标#

任何计算机视觉项目的第一步都是明确定义你要解决的问题。了解最终目标有助于你开始构建解决方案。这一点在计算机视觉领域尤为重要,因为你的项目目标将直接影响你需要关注的计算机视觉任务。

以下是一些项目目标以及可用于实现这些目标的计算机视觉任务示例:

  • 目标: 开发一个系统,能够监测和管理高速公路上不同车辆类型的流量,从而改善交通管理和安全性。

    • 计算机视觉任务: 目标检测非常适合交通监测,因为它能高效地定位和识别多个车辆。它比图像分割对计算资源的需求更低,后者在该任务中提供了不必要的细节,因此目标检测能确保更快的实时分析。
  • 目标: 开发一种工具,通过提供医学影像扫描中肿瘤的精确像素级轮廓来辅助放射科医生。

    • 计算机视觉任务: 图像分割适用于医学影像,因为它提供了对肿瘤大小、形状和治疗规划至关重要的准确、详细的边界。
  • 目标: 创建一个数字系统,对各种文档(如发票、收据、法律文书)进行分类,以提高组织效率和文档检索能力。

    • 计算机视觉任务: 图像分类在此非常理想,因为它一次处理一个文档,无需考虑文档在图像中的位置。这种方法简化并加速了分类流程。

Link to this section第 1.5 步:选择合适的模型和训练方法#

在理解项目目标和合适的计算机视觉任务后,定义项目目标的一个重要部分是选择合适的模型和训练方法。

根据目标的不同,你可能会选择先选定模型,或者在查看你在第 2 步中能够收集到的数据之后再做决定。例如,假设你的项目高度依赖于特定类型数据的可用性。在这种情况下,先收集和分析数据,然后再选择模型可能更实际。另一方面,如果你对模型需求有清晰的了解,你可以先选择模型,然后收集符合这些规格的数据。

选择从零开始训练还是使用迁移学习会影响你准备数据的方式。从零开始训练需要多样化的数据集,从头构建模型的理解力。另一方面,迁移学习允许你使用预训练模型,并利用更小、更具体的特定数据集对其进行调整。此外,选择特定的训练模型将决定你需要如何准备数据,例如根据模型的具体要求调整图像大小或添加标注。

Training From Scratch Vs. Using Transfer Learning

注意:在选择模型时,请考虑其部署以确保兼容性和性能。例如,轻量级模型因其在资源受限设备上的高效率而非常适合边缘计算。要了解更多关于定义项目相关的关键点,请阅读我们的指南,了解如何定义项目目标并选择合适的模型。

在进入计算机视觉项目的实际操作之前,清楚地了解这些细节非常重要。在进入第 2 步之前,请仔细检查你是否考虑了以下内容:

  • 明确定义你要解决的问题。
  • 确定你项目的最终目标。
  • 确定所需的特定计算机视觉任务(例如目标检测、图像分类、图像分割)。
  • 决定是从零开始训练模型,还是使用迁移学习。
  • 为你的任务和部署需求选择合适的模型。

Link to this section第 2 步:数据收集与数据标注#

计算机视觉模型的质量取决于数据集的质量。你可以从互联网上收集图像、拍摄自己的照片,或使用现有的数据集。以下是一些下载高质量数据集的绝佳资源:Google Dataset Search EngineUC Irvine Machine Learning RepositoryKaggle Datasets

一些库,如 Ultralytics,提供对各种数据集的内置支持,让你更容易上手使用高质量数据。这些库通常包含无缝使用流行数据集的工具,可以在项目初期节省大量时间和精力。

但是,如果你选择收集图像或自己拍照,则需要标注你的数据。数据标注是将知识传授给模型的过程。你将使用的数据标注类型取决于你的特定计算机视觉技术。以下是一些示例:

  • 图像分类: 你将整个图像标记为一个单一类别。
  • 目标检测 你将在图像中的每个对象周围绘制边界框,并对每个框进行标注。
  • 图像分割 你将根据对象所属类别标记图像中的每个像素,从而创建详细的对象边界。

Bounding box, polygon, and keypoint annotations

数据收集与标注可能是一项耗时的手动工作。标注工具可以帮助简化此过程。以下是一些有用的开源标注工具:Label StudioCVATLabelme

Link to this section第 3 步:数据增强与数据集划分#

在收集和标注图像数据后,在进行数据增强之前,先将数据集划分为训练集、验证集和测试集非常重要。在增强之前划分数据集对于在原始、未更改的数据上测试和验证模型至关重要。这有助于准确评估模型对新的、未见数据的泛化能力。

以下是划分数据的方法:

  • 训练集: 这是你数据中最大的部分,通常占总量的 70-80%,用于训练你的模型。
  • 验证集: 通常占你数据的 10-15% 左右;此集用于调整超参数并在训练期间验证模型,有助于防止过拟合
  • 测试集: 其余 10-15% 的数据作为测试集。它用于在训练完成后评估模型在未见数据上的性能。

划分数据后,你可以通过应用旋转、缩放和翻转图像等变换来进行数据增强,从而人工增加数据集的规模。数据增强使你的模型对变化更加鲁棒,并提高了其在未见图像上的性能。

Data augmentation examples

OpenCVAlbumentationsTensorFlow 等库提供了灵活的增强函数。此外,一些库(如 Ultralytics)在其模型训练函数中内置了增强设置,从而简化了该过程。

为了更好地了解你的数据,你可以使用像 MatplotlibSeaborn 这样的工具来可视化图像并分析其分布和特征。可视化数据有助于识别模式、异常情况以及增强技术的有效性。Ultralytics PlatformCharts 选项卡可以通过自动生成分割分布、类别计数、图像尺寸直方图和标注位置热图,无需任何代码即可为你上传的每个数据集呈现许多此类见解。

通过正确地理解、划分和增强你的数据,你可以开发出一个经过良好训练、验证和测试的模型,从而在实际应用中表现出色。

Link to this section第 4 步:模型训练#

一旦数据集准备就绪,你就可以专注于设置必要的环境、管理数据集并训练模型。

首先,你需要确保环境配置正确。通常包括以下内容:

  • 安装必要的库和框架,如 TensorFlow、PyTorchUltralytics
  • 如果你正在使用 GPU,安装 CUDA 和 cuDNN 等库将有助于启用 GPU 加速并加快训练过程。

然后,你可以将训练集和验证集加载到你的环境中。通过调整大小、格式转换或增强来标准化和预处理数据。选定模型后,配置层并指定超参数。通过设置损失函数、优化器和性能指标来编译模型。

像 Ultralytics 这样的库简化了训练过程。你可以通过输入最少的代码将数据馈入模型,从而开始训练。这些库会自动处理权重调整、反向传播和验证。它们还提供了监控进度和轻松调整超参数的工具。训练完成后,用几个命令即可保存模型及其权重。

需要牢记的是,适当的数据集管理对于高效训练至关重要。使用数据集的版本控制来跟踪变更并确保可复现性。DVC (Data Version Control) 等工具可以帮助管理大型数据集。

Link to this section第 5 步:模型评估与模型微调#

使用各种指标评估模型的性能并进行优化以提高准确率非常重要。评估有助于识别模型的优势所在以及需要改进的地方。微调可确保模型优化到最佳性能。

  • 性能指标 使用准确率、精确率召回率和 F1 分数等指标来评估模型性能。这些指标提供了关于模型预测效果的见解。
  • 超参数调整 调整超参数以优化模型性能。网格搜索或随机搜索等技术有助于找到最佳的超参数值。
  • 微调: 对模型架构或训练过程进行微调以提高性能。这可能涉及调整学习率批次大小或其他模型参数。

想要深入了解模型评估和微调技术,请查看我们的模型评估洞察指南

Link to this section第 6 步:模型测试#

在此步骤中,你可以确保模型在完全未见的数据上表现良好,确认其已准备好进行部署。模型测试与模型评估的区别在于,它专注于验证最终模型的性能,而不是对其进行迭代改进。

彻底测试并调试可能出现的任何常见问题非常重要。在训练或验证期间未使用的单独测试集上测试你的模型。此数据集应代表真实场景,以确保模型的性能一致且可靠。

此外,解决诸如过拟合、欠拟合和数据泄露等常见问题。使用交叉验证异常检测等技术来识别并修复这些问题。关于全面的测试策略,请参考我们的模型测试指南

Link to this section第 7 步:模型部署#

一旦模型经过彻底测试,就该进行部署了。模型部署涉及将模型投入生产环境以供使用。部署计算机视觉模型的步骤如下:

  • 设置环境: 为你选择的部署选项配置必要的基础设施,无论是基于云(AWS、Google Cloud、Azure)还是基于边缘(本地设备、IoT)。
  • 导出模型 将模型导出为适当的格式(例如用于 YOLO26 的 ONNX、TensorRT、CoreML),以确保与部署平台的兼容性。
  • 部署模型: 通过设置 API 或端点并将其与你的应用程序集成来部署模型。
  • 确保可扩展性: 实现负载均衡器、自动伸缩组和监控工具,以管理资源并处理不断增长的数据和用户请求。

有关部署策略和最佳实践的更多详细指南,请查看我们的模型部署实践指南Ultralytics Platform 还提供跨 43 个全球区域进行自动扩缩容的托管部署端点,可自动处理基础设施设置。

Link to this section第 8 步:监控、维护与文档记录#

模型部署后,持续监控其性能、维护以处理任何问题,并记录整个过程以供日后参考和改进非常重要。

监控工具可以帮助你跟踪关键性能指标 (KPI) 并检测异常或准确率下降。通过监控模型,你可以了解模型漂移,即由于输入数据变化导致模型性能随时间下降。定期使用更新的数据重新训练模型,以保持其准确性和相关性。

Model monitoring and maintenance lifecycle

除了监控和维护之外,文档记录也是关键。彻底记录整个过程,包括模型架构、训练程序、超参数、数据预处理步骤以及部署和维护期间所做的任何更改。良好的文档记录可确保可复现性,并使未来的更新或故障排除更容易。通过有效地监控、维护和记录你的模型,你可以确保模型在其生命周期内保持准确、可靠且易于管理。

Link to this section参与社区#

与计算机视觉爱好者社区建立联系可以帮助你更有信心地解决在计算机视觉项目中遇到的任何问题。以下是一些有效学习、故障排除和建立人脉的方法。

Link to this section社区资源#

  • GitHub Issues: 查看 YOLO26 GitHub 仓库,并使用 Issues 选项卡提问、报告错误和建议新功能。活跃的社区和维护者随时准备帮助解决特定问题。
  • Ultralytics Discord 服务器: 加入 Ultralytics Discord 服务器,与其他用户和开发者互动、获取支持并分享见解。

Link to this section官方文档#

  • Ultralytics YOLO26 文档: 探索官方 YOLO26 文档,获取有关不同计算机视觉任务和项目的详细指南和实用技巧。

利用这些资源将帮助你克服挑战,并紧跟计算机视觉社区的最新趋势和最佳实践。

Link to this section后续步骤#

开展计算机视觉项目既令人兴奋又收获颇丰。通过遵循本指南中的步骤,你可以为成功打下坚实的基础。每个步骤对于开发出符合目标且在现实场景中表现良好的解决方案都至关重要。随着经验的积累,你将发现先进的技术和工具来提升你的项目。

Link to this section常见问题解答#

Link to this section如何为我的项目选择合适的计算机视觉任务?#

选择合适的计算机视觉任务取决于你项目的最终目标。例如,如果你想监测交通,目标检测就很合适,因为它可以实时定位和识别多种车辆类型。对于医学影像,图像分割是理想选择,可以提供详细的肿瘤边界,辅助诊断和治疗规划。了解更多关于特定任务的信息,如目标检测实例分割语义分割图像分类

Link to this section为什么数据标注在计算机视觉项目中至关重要?#

数据标注对于教导模型识别模式至关重要。标注类型随任务而异:

  • 图像分类:整个图像标记为单个类别。
  • 目标检测:在对象周围绘制边界框。
  • 图像分割:根据对象所属类别标记每个像素。

Label StudioCVATLabelme 等工具可以协助此过程。有关更多详细信息,请参考我们的数据收集与标注指南

Link to this section我应该遵循哪些步骤来有效地增强和划分我的数据集?#

在增强之前划分数据集有助于在原始、未更改的数据上验证模型性能。请遵循以下步骤:

  • 训练集:占数据的 70-80%。
  • 验证集:占 10-15%,用于超参数调整
  • 测试集:其余 10-15%,用于最终评估。

拆分数据后,应用旋转、缩放和翻转等数据增强技术来提高数据集的多样性。Albumentations 和 OpenCV 等库可以为你提供帮助。Ultralytics 还提供内置增强设置,方便你使用。

Link to this section我该如何导出训练好的计算机视觉模型以便部署?#

导出模型可确保其与不同的部署平台兼容。Ultralytics 提供多种格式,包括 ONNXTensorRTCoreML。若要导出你的 YOLO26 模型,请遵循此指南:

  • 使用带有所需格式参数的 export 函数。
  • 确保导出的模型符合你部署环境的规格(例如边缘设备、云端)。

欲了解更多信息,请查阅模型导出指南

Link to this section监控和维护已部署的计算机视觉模型的最佳实践有哪些?#

持续的监控和维护对于模型的长期成功至关重要。实施工具以跟踪关键绩效指标 (KPI) 并检测异常情况。定期使用更新的数据重新训练模型以抵消模型漂移。记录整个过程,包括模型架构、超参数和变更,以确保可重复性并简化未来的更新。在我们的监控和维护指南中了解更多信息。

评论