yolov8可以用作目标检测,分割,姿态,跟踪。这里举例目标检测从标注到训练的过程。
官网连接
先把代码下载下来,这个不用说了。
然后准备数据集,创建一个文件夹dataset(自己命名),下面有images和labels.
images和labels文件夹下分别创建train和val文件夹,
把用作训练的图片放进train, 用作validation的图片放进val.
这时labels文件夹下的train和val都为空,因为还没有标注。
标注
可以用labelme或者其他工具标注,这里用makesense.ai,
这个只支持目标框和图像分类,并不支持分割。
点get started,打开train或val整个文件夹的image, 选择“目标检测”,然后点start project就可以开始标注,
标完框之后,选择右边的select label, 会提示label为空,点击label为空的地方,会出现编辑label。
编辑完保存之后下次标注就能直接选择label.
train文件夹或者val文件夹中的所有图片标完之后,选择“Export Annotations"。然后选择YOLO格式。会得到zip文件。
分别解压到labels文件夹下的train, val中,标注结束。
训练
数据集放在ultralytics/datasets下面。
创建自己的custom.yaml文件,放在ultralytics/datasets下面。
编辑路径,label.
写训练代码:
from ultralytics import YOLO
if __name__ == "__main__":
#train
model = YOLO('yolov8n.pt')
model.train(
data="ultralytics/datasets/custom.yaml",
epochs=50,
imgsz=640,
batch=2,
save_period=10,
)
测试效果