在一些 COCO 子类上重新训练 YOLOv9 并将迁移学习应用于包含 coco 中不存在的新类的自定义数据集

问题描述 投票:0回答:1

我正在着手一个利用 YOLOv9 的项目,该项目最初是在 COCO 数据集的 80 个类上进行训练的。我的重点是车辆检测,特别针对四个类别:汽车、摩托车、公共汽车和卡车。我打算修改 YOLO 架构和 COCO 数据集设置以仅包含这四个类,而不是在 Python 代码中将它们过滤掉。我计划调整 coco.yaml 文件以重新定义类 ID,如下所示:

0:汽车 1:摩托车 2:巴士 3:卡车 以这种方式更改类 ID 是否会影响 COCO 数据集上预先存在的训练?如果此更改需要重新培训,您能否指导我完成必要的步骤?

此外,在调整 YOLOv9 以仅检测这四种车辆类别后,我的目标是从我准备的自定义数据集中合并一个新类别“货车”。该数据集包括原始的四个类别以及新的“van”类别。我希望在这个新数据集上重新训练 YOLOv9,而不丢失预训练的 COCO 权重。

您能否提供有关如何执行以下操作的详细步骤:

调整模型和数据集设置以对四个特定类别进行有针对性的再训练? 整合并训练新类别,同时保留 COCO 预训练权重的有效性? 我对这个领域很陌生,发现其中一些概念令人困惑。清晰、分步的指导将不胜感激!

预先感谢您的协助。

将 coco .yaml 更改为:

0:汽车 1:摩托车 2:巴士 3:卡车


在必要的文件中将 nc 变量更改为 4


准备好包含 4 个类 + 新类的自定义数据集

deep-learning yolov8 roboflow coco ultralytics
1个回答
0
投票

我看到您用

roboflow
标签标记了您的问题,所以我认为值得指出您可以通过 Roboflow 平台实现您所要求的目标。

如果您转到 Roboflow 应用程序 并在那里创建一个帐户(您可以注册免费试用版),您可以在那里创建一个

workspace
。创建
workspace
时,您可以选择项目类型(即
object detection
classification
instance segmentation
keypoint detection
)。如果您选择
object detection
,您将获得指定对象类别的选项(即我在那里完成了一个棋盘检测项目,我想检测像
white pawn
black pawn
等类别)。然后,您将上传照片并对其进行注释并训练您的模型 - 您将获得多个选项来选择基本模型。结果,我得到了一个模型,当对其执行推理时,我只得到了我在数据集上指定的类。

希望这有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.