使用 Roboflow 为 YOLOv10 构建自定义目标检测数据集与模型全流程指南【免费下载链接】yolov10YOLOv10: Real-Time End-to-End Object Detection [NeurIPS 2024]项目地址: https://gitcode.com/GitHub_Trending/yo/yolov10导读本指南基于当前仓库YOLOv10: Real-Time End-to-End Object DetectionNeurIPS 2024的 Roboflow 集成文档系统讲解如何借助 Roboflow 平台完成「数据收集 → 标注 → 数据集管理 → 版本化与导出 → 训练 → 部署 → 模型评估」的完整闭环。读完本文你将掌握在 Roboflow Universe 中获取现成数据集、使用在线标注工具含 SAM 智能标注与 Label Assist为 YOLO 格式制作数据、通过 Health Check 诊断数据集质量、以 YOLOv8 格式导出数据集并在本仓库的 Ultralytics 环境中完成 YOLOv10 自定义训练最后上传模型权重到 Roboflow 进行部署与混淆矩阵评估。说明本文所述工作流与本仓库源码强绑定训练与推理部分均可在仓库内ultralytics包中直接运行。Roboflow 在本仓库工作流中的定位Roboflow 提供了构建与部署计算机视觉模型所需的一站式能力既可以通过 API 和 SDK 接入管线中的任意环节也可以使用其端到端界面自动化「从图像到推理」的整个流程。对于本仓库的 YOLOv10 自定义训练场景Roboflow 主要承担四个角色数据采集借助 Universe 公共数据集仓库和 Collect 边缘采集工具获取图像数据标注通过在线 Annotate 工具生成 YOLO 格式的边界框 / 多边形标注数据工程完成预处理、增强、版本化并导出为 Ultralytics 可直接消费的数据集格式模型托管与评估上传训练好的权重托管推理 API并提供混淆矩阵与向量分析。本仓库采用 AGPL-3.0 开源协议见仓库根目录 LICENSE对于学生与爱好者可免费使用如需将模型集成进商业产品请留意相应商用授权要求。收集 YOLOv10 训练数据Roboflow 提供两种数据收集服务均可为自定义 YOLOv10 模型提供训练素材。1. Roboflow Universe公共数据集仓库Universe 是一个公开的视觉数据集在线仓库汇集了超过 25 万个视觉数据集、总计超过 1 亿张图像。注册免费 Roboflow 账号后即可导出 Universe 上任意数据集在任意数据集页面点击Download this Dataset按钮在导出格式中选择YOLOv8该格式与本仓库 Ultralytics 的数据标注约定完全兼容见下文导出数据一节。此外Universe 还聚合了公开的微调 YOLO 模型页面可以用来探索预训练模型用于快速原型验证作为**模型辅助标注Model-Assisted Labeling**的自动标注工具配合 Roboflow inference 进行推理试点。2. Roboflow Collect边缘自动采集如果希望自行采集图像Roboflow Collect 是开源项目可通过边缘设备上的摄像头自动采集数据。它支持文本或图像提示来指定采集内容从而只捕获构建视觉模型真正需要的数据。上传、转换与标注制作 YOLOv10 格式的数据Roboflow Annotate 是在线标注工具支持为目标检测、分类、分割任务标注图像。为 YOLOv10 目标检测模型准备数据的完整步骤如下。创建项目并上传数据在 Roboflow 中新建一个项目选择对应的目标检测类型上传图像以及从其他工具带来的既有标注支持 40 种导入格式上传完成后进入 Annotate 页面选中刚上传的图像批次点击Start Annotating开始标注。标注操作速查标注类型键盘快捷键操作方式边界框B点击起点并拖拽生成框松开后弹出窗口选择类别多边形P逐个点击图像中的点绘制多边形轮廓SAM 智能标注助手Roboflow 内置基于 SAMSegment Anything Model的标注助手可将多边形标注从逐点点击的繁琐过程简化为几次点击点击侧边栏的光标图标SAM 会自动加载到项目中将鼠标悬停在图像中的任意目标上SAM 会推荐一个标注点击即可确认创建标注如需调整标注的精细程度可在 SAM 生成的标注内部或外部再次点击进行修正。Label Assist用 YOLO 模型自动推荐标注Roboflow 上托管的模型可以与 Label Assist 配合使用——这是利用你自己的 YOLO 模型自动推荐标注的辅助工具。启用步骤先将训练好的 YOLO 模型上传到 Roboflow操作见下文部署一节点击左侧边栏的魔法棒图标选择要用于 Label Assist 的模型点击Continue启用。之后每打开新的待标注图像Label Assist 都会自动触发并推荐标注大幅提升标注吞吐量。标签Tags管理在侧边栏的 Tags 面板可以给图像打标签例如标记某个采集区域、某台特定摄像头拍摄的数据等。标签有两个用途按标签搜索匹配的图像生成只包含特定标签或标签组合图像的数据集版本用于精细化构建训练子集。数据集管理搜索、过滤与健康检查Roboflow 提供一套数据集理解与治理工具用于在训练前诊断数据质量。数据集搜索与标签过滤点击侧边栏的Dataset即可在搜索框输入语义化文本描述例如查找所有包含行人的图像或按标签过滤语义文本查询查找满足文字描述如 contain people的图像标签过滤通过 Tags 选择器将搜索范围收窄到带有特定标签的图像集合。Health Check训练前的数据体检在训练前官方建议先使用 RoboflowHealth Check工具对数据集做一次体检。点击侧边栏的Health Check链接后会展示一系列统计信息数据集中图像的平均尺寸各类别的样本平衡情况class balance标注在图像中分布的热力图可直观看出标注是否集中在图像中心区域其他有助于发现数据问题的指标。Health Check 还会给出改进建议。典型场景是class balance 显示类别严重不均衡而修正类别不均衡往往能直接提升模型性能——这与 YOLO 训练中数据分布对收敛效果的影响机理一致值得在生成数据集版本前先解决。版本化与导出为训练生成冻结数据集创建数据集版本VersionRoboflow 的**版本Version**是数据集在某一时刻的冻结快照。创建步骤点击侧边栏的Versions点击Create New Version在该页面选择要应用的**预处理preprocessing和增强augmentation**步骤。每个增强项选中后都会弹出参数面板可按需微调例如将亮度增强限制在指定范围内。需要注意Ultralytics 训练本身内置在线增强Mosaic、HSV 扰动等叠加 Roboflow 的离线增强时应有意识地设计避免过度增强导致分布漂移。导出数据集版本生成完毕后点击版本页面上的Export Dataset按钮即可导出。Roboflow 支持 40 种导出格式面向本仓库场景请选择YOLOv8格式。导出的压缩包解压后即为标准 Ultralytics 数据集目录结构dataset/ ├── train/ │ ├── images/ │ └── labels/ ├── valid/ │ ├── images/ │ └── labels/ ├── test/ # 可选 └── data.yaml其中data.yaml是 Ultralytics 训练器读取的关键配置其结构与仓库内置的 coco8.yaml 一致path: ../datasets/coco8 # 数据集根目录 train: images/train # 训练图像路径相对 path val: images/val # 验证图像路径相对 path test: # 测试图像路径可选 # 类别名称索引从 0 开始顺序必须与标注文件中的类别 id 一致 names: 0: person 1: bicycle ...拿到导出的数据集后将解压目录放到便于引用的位置并确认data.yaml中的path指向该目录即可开始训练。在本仓库中训练 YOLOv10 自定义模型数据集就绪后可以直接使用本仓库的ultralytics包开始训练。仓库通过 ultralytics/models/yolov10/model.py 中的task_map将 YOLOv10 检测任务映射到对应的训练器 YOLOv10DetectionTrainer、验证器与预测器因此YOLO(...)统一入口即可覆盖训练、验证、推理全流程。命令行方式# 使用预训练权重从头/迁移训练 yolo train modelyolov10n.pt data/path/to/dataset/data.yaml epochs100 imgsz640Python 方式from ultralytics import YOLO # 加载预训练权重也支持传入自定义 yaml 从头构建模型 model YOLO(yolov10n.pt) # 传入 Roboflow 导出的 data.yaml 开始训练 model.train(data/path/to/dataset/data.yaml, epochs100, imgsz640)训练完成后权重与训练日志保存在runs/detect/train/目录下默认输出目录也可通过project/name参数自定义。更多训练参数学习率、批量大小、早停、设备选择等请参阅仓库的 训练模式文档 与 默认配置。提示Roboflow 的 YOLOv8 导出格式与 Ultralytics 生态含本仓库的 YOLOv10共用同一套data.yaml images/ labels/约定因此无需任何格式转换即可直接训练。上传自定义 YOLO 模型权重测试与部署Roboflow 为已部署模型提供可无限扩展的推理 API并提供面向 NVIDIA Jetson、Luxonis OAK、Raspberry Pi、GPU 设备等平台的 SDK。上传 YOLO 权重只需几行 Python 代码import roboflow # install with pip install roboflow roboflow.login() rf roboflow.Roboflow() project rf.workspace(WORKSPACE_ID).project(football-players-detection-3zvbc) dataset project.version(VERSION).download(yolov8) project.version(dataset.version).deploy(model_typeyolov8, model_pathf{HOME}/runs/detect/train/)使用要点将代码中的WORKSPACE_ID、项目 ID、VERSION替换为你账号下的实际值运行后需完成账号认证随后模型会被上传并为项目创建推理 API上传与 API 创建过程最长可能需要 30 分钟请耐心等待。部署完成后可在 Roboflow 侧边栏的Deploy标签页进行测试页面顶部的组件支持使用摄像头实时测试也支持上传图像或视频进行推理。此外已上传的模型还可以作为标注助手Model-Assisted Labeling在 Roboflow 上为新图像自动推荐标注形成「训练 → 部署 → 数据回流 → 再训练」的迭代闭环。评估 YOLOv10 模型混淆矩阵与向量分析模型上传后Roboflow 提供两类评估工具帮助你定位模型改进方向。混淆矩阵Confusion Matrix在模型页面点击View Detailed Evaluation弹出窗口即显示混淆矩阵。交互能力包括悬停矩阵中的单元格查看对应的数值点击单元格查看落入该类别的图像点击单张图像查看该图像的模型预测与真实标注ground truth对照。混淆矩阵能够直观揭示类别混淆模式例如车辆检测中 car/truck/bus 的相互误判是决定是否需要补充特定类别训练样本的重要依据。向量分析Vector Analysis点击Vector Analysis可查看基于 CLIP 计算的图像语义散点图。图中每张图像是一个点点与点距离越近表示图像在语义上越相似点的颜色从白到红渐变越红表示模型在该图像上表现越差。向量分析的典型用途发现图像簇找到语义相似的数据聚集区定位模型表现差的簇红色密集区域即模型薄弱环节可视化共性分析模型表现不佳图像之间的共同特征反推数据缺口如光照条件、拍摄角度、遮挡程度。配套学习资源仓库内索引训练模式文档完整的训练参数与 CLI/Python 用法参考数据集配置参考 与 coco8.yaml 示例理解data.yaml字段语义YOLOv8 模型文档同源 Ultralytics 生态内其他检测模型说明集成方案索引查看更多第三方工具与本仓库的集成方式本仓库 README 中提供了 Roboflow 出品的 YOLOv10 自定义数据集训练 Colab 演示入口见 README.md可一键在云端复现上述完整流程。总结将 Roboflow 与本仓库的 Ultralytics 生态组合使用可以在一条清晰的流水线中完成 YOLOv10 自定义模型的完整生命周期从 Universe/Collect 收集数据用 Annotate含 SAM 与 Label Assist高效标注通过 Health Check 与向量分析诊断数据质量在版本化导出为 YOLOv8 格式后直接交给YOLO(...).train()训练最后将权重回传 Roboflow 实现部署托管与混淆矩阵评估。对于需要持续迭代的视觉项目而言这一闭环也天然支持主动学习策略——模型部署后发现的失败样本可以快速回流到标注流程推动数据与模型的共同进化。【免费下载链接】yolov10YOLOv10: Real-Time End-to-End Object Detection [NeurIPS 2024]项目地址: https://gitcode.com/GitHub_Trending/yo/yolov10创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考