我之前使用过 Tensorflow,现在是 PyTorch 和 Ultralytics YOLOv8 的新手。我最近学会了训练(微调)YOLOv8 对象检测模型以适应我自己的数据集。然而,官方文档只展示了如何使用YAML文件以COCO8格式进行训练。 Label Studio 导出的数据集仅为 JSON,而不是 YAML(甚至导出为 YOLO 格式!)。
然后我尝试直接将
model.train(data="coco8.yaml", epochs=100, imgsz=640)
替换为model.train(data="coco/result.json", epochs=100, imgsz=640)
。但毫不奇怪,它不起作用。
所以,我有两个问题:
编辑:
通过查看 GitHub 中的示例 coco8.yaml 文件,我发现 yaml 文件可以轻松地手动硬编码。不过我还是想知道Label Studio导出的数据集怎么用,为什么会出现格式接口的问题。
https://docs.ultralytics.com/datasets/detect/不可以,Ultralytics YOLOv8 仅支持 YOLO 格式的数据集,如官方文档中所述:用于对象检测
,用于定向边界框检测 https:// docs.ultralytics.com/datasets/obb/,等等。
那么Label Studio中的YOLO和YOLOv8 OBB选项有什么问题吗?正如预期的那样
,从Label Studio以YOLO格式导出的数据将具有以下内容:notes.json、classes.txt、images和labels文件夹。您仍然需要进行一些预处理才能从这些文件创建 YOLO 数据集。
我可以在 Label Studio 中导出 COCO8 格式的 YAML 文件吗?这里的YAML文件只是YOLO数据集的简短文本描述(数据集路径和类列表),在这种情况下您需要手动创建它。
首先,将图像及其相应的标签划分为训练集和验证集,这样您将拥有
# Train/val/test sets as 1) dir: path/to/imgs
path: "../datasets/mydataset" # dataset root dir
train: "train" # train folder (relative to 'path')
val: "val" # validation folder (relative to 'path')
test: # test folder (optional)
# Classes list
names:
0: person
1: bicycle
2: car
from ultralytics import YOLO
# Load a model
model = YOLO("yolov8n.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="/path/to/mydataset.yaml", epochs=100, imgsz=640)