检测
用法参考:Detect - Ultralytics YOLOv8 Docs
数据集准备
将图片放到/home/data/images下
将标注的txt文件放到/home/data/labels下
labels中是每张图片的标注文件(txt),格式为<object-class> <cx> <cy> <width> <height>,中间点坐标和宽高都经过归一化。
将train.txt和val.txt放到/project/train/src_repo/yolov8/dataset/下,train.txt和val.txt形式如下:
train
从ultralytics/datasets下复制coco128.yaml命名为my.yaml,填写train,test的路径(数据集划分时生成的)和类别
train: /project/train/src_repo/yolov8/dataset/train.txt
val: /project/train/src_repo/yolov8/dataset/val.txt
names:
0: head
1: person
2: hat
从ultralytics/models/v8下复制yolov8.yaml(根据自己需要),把类别数改成自己的。
yolo task=detect mode=train data=ultralytics/datasets/my.yaml model=ultralytics/models/v8/yolov8s.yaml pretrained=yolov8s.pt epochs=2 imgsz=640 batch=8 save_period=2
参考:https://docs.ultralytics.com/modes/train/#arguments
export
yolo export model=yolov8s.pt format=onnx opset=12
或者:
from ultralytics import YOL
model = YOLO('yolov8s.pt')
model.export(format='onnx', opset=12)
predict
yolo predict model=yolov8s.pt source='bus.jpg'
# source写链接(https://ultralytics.com/images/bus.jpg)也可,model也支持onnx.输出结果在runs/detect/predict下
或者:
results = model('bus.jpg') # 包含前处理、推理以及后处理
分割
用法参考:https://docs.ultralytics.com/tasks/segment/
数据集准备(以coco数据集为例)
将图片放到/home/data/images下
将分割标注的txt文件放到/home/data/labels下
将train.txt和val.txt放到/project/train/src_repo/yolov8/dataset/下
从ultralytics/datasets下复制coco128-seg.yaml到当前目录,命名为my-seg.yaml,改train,val数据集路径和类别
从ultralytics/models/v8下复制yolov8-seg.yaml到当前目录。
labels中是每张图片的标注文件(txt),格式为<class-index> <x1> <y1> <x2> <y2> ... <xn> <yn>,坐标经过归一化。
train.txt和val.txt形式如下:
train
参数参考:Configuration - Ultralytics YOLOv8 Docs
yolo task=segment mode=train data=my-seg.yaml model=yolov8s-seg.yaml pretrained=yolov8s-seg.pt epochs=2 save_period=2 imgsz=640
训练的模型默认会保存在:runs/segment/train/。除模型外还会保存多种评估文件。
默认训练结束会进行验证:
predict
参数参考:Segment - Ultralytics YOLOv8 Docs
yolo task=segment mode=predict model=yolov8s-seg.pt source='bus.jpg'
预测结果默认保存在:runs/segment/predict
export
yolo export model=path/to/best.pt format=onnx
pose
用法参考:Pose - Ultralytics YOLOv8 Docs
数据集准备(以coco数据集为例)
将图片放到/home/data/images下
将标注的txt文件放到/home/data/labels下
将train.txt和val.txt放到/project/train/src_repo/yolov8/dataset/下
从ultralytics/datasets下复制yolov8-pose.yaml到当前目录,命名为my-pose.yaml
train: /project/train/src_repo/yolov8/dataset/train.txt
val: /project/train/src_repo/yolov8/dataset/val.txt
# Keypoints
kpt_shape: [17, 2] # number of keypoints, number of dims (2 for x,y or 3 for x,y,visible)
flip_idx: [0, 2, 1, 4, 3, 6, 5, 8, 7, 10, 9, 12, 11, 14, 13, 16, 15]
# Classes
names:
0: person
从ultralytics/models/v8下复制yolov8-pose.yaml到当前目录。
labels中是每张图片的标注文件(txt),坐标经过归一化。
2d:<class-index> <x> <y> <width> <height> <px1> <py1> <px2> <py2> ... <pxn> <pyn>
3d:<class-index> <x> <y> <width> <height> <px1> <py1> <p1-visibility> <px2> <py2> <p2-visibility> <pxn> <pyn> <p2-visibility>
train.txt和val.txt形式如下:
train
yolo task=pose mode=train data=my-pose.yaml model=yolov8s-pose.yaml pretrained=yolov8s-pose.pt epochs=2 imgsz=640
训练的模型默认会保存在:runs/pose/train/, 默认训练结束会进行验证:
predict
yolo task=pose mode=predict model=yolov8s-pose.pt source='bus.jpg'
预测结果默认保存在:runs/pose/predict