0%

YOLO_v8

大部分都是网上粘的,只是记录一下方便自己查找

置信度

在YOLO中,置信度是一个介于0和1之间的数值,表示模型对检测到的目标的确信程度。如果置信度接近1,那么模型相信该框中包含了目标对象。如果置信度接近0,模型认为该框中可能没有目标。所以,置信度可以看作是一个概率值,表示目标的存在概率。

在YOLO中,置信度代表了算法对于其预测结果的自信程度。简单地说,就是算法觉得“这个框里真的有一个物体”的概率

开始

在当前目录下

1
pip install ultralytics

训练.yaml配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 这里的path需要指向你项目中数据集的目录
path: C:/Users/admin/Desktop/CSDN/YOLOV8_DEF/ultralytics-detect/datasets/coco128/
# 这里分别指向你训练、验证、测试的文件地址,只需要指向图片的文件夹即可。但是要注意图片和labels名称要对应
train: images/train2017 # train images (relative to 'path') 128 images
val: images/test2017 # val images (relative to 'path') 128 images
test: images/test2017 # test images (optional)

# Classes
names:
0: person
1: bicycle
2: car
3: motorcycle
4: airplane
......
75: vase
76: scissors
77: teddy bear
78: hair drier
79: toothbrush

数据集标注信息(txt)

  • 类别ID:对应.yaml中的names,代表对象的类别
  • 中心X、Y坐标:对象边界框中心的水平、垂直方向坐标(比例)
  • 边界框宽、高度:这个值是相对于整个图像的比例

若一个图片的txt标注文件中某一行为:1 0.5 0.5 0.2 0.3则代表:

  • 类别:1
  • 边界框中心坐标对应图像水平、垂直的各50%处(中心)
  • 边界框宽度为图像宽度的20%,高度为图像高度的30%

训练对应的各参数说明

超详细YOLOv8全解:学v8只用看一篇文章-CSDN博客

最好在运行时通过命令行或.train函数添加参数实现,不在default.yaml中修改

预测大概步骤

训练自带的coco128数据集

1
2
3
4
5
6
7
from ultralytics import YOLO

model = YOLO("./yolov8n.pt")

if __name__ == '__main__':

result = model.train(data='coco128.yaml',epochs=5, lr0=0.01)

查看coco128.yaml:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
path: ../datasets/coco128 # dataset root dir
train: images/train2017 # train images (relative to 'path') 128 images
val: images/train2017 # val images (relative to 'path') 128 images
test: # test images (optional)

# Classes
names:
0: person
1: bicycle
2: car
3: motorcycle
4: airplane
5: bus
6: train
7: truck
8: boat
9: traffic light
10: fire hydrant
11: stop sign
12: parking meter
13: bench
14: bird
15: cat
16: dog
17: horse
18: sheep
19: cow
20: elephant
21: bear
22: zebra
23: giraffe
24: backpack
25: umbrella
26: handbag
27: tie
28: suitcase
29: frisbee
30: skis
31: snowboard
32: sports ball
33: kite
34: baseball bat
35: baseball glove
36: skateboard
37: surfboard
38: tennis racket
39: bottle
40: wine glass
41: cup
42: fork
43: knife
44: spoon
45: bowl
46: banana
47: apple
48: sandwich
49: orange
50: broccoli
51: carrot
52: hot dog
53: pizza
54: donut
55: cake
56: chair
57: couch
58: potted plant
59: bed
60: dining table
61: toilet
62: tv
63: laptop
64: mouse
65: remote
66: keyboard
67: cell phone
68: microwave
69: oven
70: toaster
71: sink
72: refrigerator
73: book
74: clock
75: vase
76: scissors
77: teddy bear
78: hair drier
79: toothbrush

在数据集中随便找张图和其标注信息:

训练完毕后用训练后的模型预测这张图:

1
result=model.predict(source='F:\\python\\ultralytics-main\\ultralytics-main\\ultralytics\\models\\yolo\\detect\\datasets\\coco128\\images\\train2017\\000000000009.jpg',save=True)

可得:

注意:

用命令行得到的数据在文件根目录的runs文件夹下,而python代码得到的数据在ultralytics/runs下

结果分析

yolov8实战第二天——yolov8训练过程、结果分析(保姆式解读)_yolov8跑出来的指标怎么看-CSDN博客