ultralytics 8.1.2__py3-none-any.whl → 8.1.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of ultralytics might be problematic. Click here for more details.
- ultralytics/__init__.py +1 -1
- ultralytics/cfg/datasets/Argoverse.yaml +4 -6
- ultralytics/cfg/datasets/DOTAv1.5.yaml +4 -4
- ultralytics/cfg/datasets/DOTAv1.yaml +4 -4
- ultralytics/cfg/datasets/GlobalWheat2020.yaml +1 -3
- ultralytics/cfg/datasets/ImageNet.yaml +4 -6
- ultralytics/cfg/datasets/Objects365.yaml +3 -5
- ultralytics/cfg/datasets/SKU-110K.yaml +4 -6
- ultralytics/cfg/datasets/VOC.yaml +0 -2
- ultralytics/cfg/datasets/VisDrone.yaml +4 -6
- ultralytics/cfg/datasets/coco-pose.yaml +5 -6
- ultralytics/cfg/datasets/coco.yaml +4 -6
- ultralytics/cfg/datasets/coco128-seg.yaml +4 -6
- ultralytics/cfg/datasets/coco128.yaml +4 -6
- ultralytics/cfg/datasets/coco8-pose.yaml +5 -6
- ultralytics/cfg/datasets/coco8-seg.yaml +4 -6
- ultralytics/cfg/datasets/coco8.yaml +4 -6
- ultralytics/cfg/datasets/dota8.yaml +3 -3
- ultralytics/cfg/datasets/open-images-v7.yaml +4 -6
- ultralytics/cfg/datasets/tiger-pose.yaml +4 -5
- ultralytics/cfg/datasets/xView.yaml +3 -5
- ultralytics/cfg/default.yaml +103 -103
- ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +27 -27
- ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +23 -23
- ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +23 -23
- ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +27 -27
- ultralytics/cfg/models/v3/yolov3-spp.yaml +18 -18
- ultralytics/cfg/models/v3/yolov3-tiny.yaml +16 -16
- ultralytics/cfg/models/v3/yolov3.yaml +18 -18
- ultralytics/cfg/models/v5/yolov5-p6.yaml +24 -24
- ultralytics/cfg/models/v5/yolov5.yaml +18 -19
- ultralytics/cfg/models/v6/yolov6.yaml +17 -17
- ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +25 -0
- ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +25 -0
- ultralytics/cfg/models/v8/yolov8-cls.yaml +7 -7
- ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +26 -26
- ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +27 -27
- ultralytics/cfg/models/v8/yolov8-ghost.yaml +23 -23
- ultralytics/cfg/models/v8/yolov8-obb.yaml +23 -23
- ultralytics/cfg/models/v8/yolov8-p2.yaml +23 -23
- ultralytics/cfg/models/v8/yolov8-p6.yaml +24 -24
- ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +25 -25
- ultralytics/cfg/models/v8/yolov8-pose.yaml +19 -19
- ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +23 -23
- ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +24 -24
- ultralytics/cfg/models/v8/yolov8-seg.yaml +18 -18
- ultralytics/cfg/models/v8/yolov8.yaml +23 -23
- ultralytics/cfg/trackers/botsort.yaml +7 -7
- ultralytics/cfg/trackers/bytetrack.yaml +6 -6
- ultralytics/data/build.py +1 -1
- ultralytics/engine/model.py +8 -6
- ultralytics/engine/trainer.py +1 -4
- ultralytics/hub/session.py +1 -1
- ultralytics/utils/ops.py +1 -1
- ultralytics/utils/plotting.py +1 -1
- {ultralytics-8.1.2.dist-info → ultralytics-8.1.3.dist-info}/METADATA +1 -1
- {ultralytics-8.1.2.dist-info → ultralytics-8.1.3.dist-info}/RECORD +61 -59
- {ultralytics-8.1.2.dist-info → ultralytics-8.1.3.dist-info}/LICENSE +0 -0
- {ultralytics-8.1.2.dist-info → ultralytics-8.1.3.dist-info}/WHEEL +0 -0
- {ultralytics-8.1.2.dist-info → ultralytics-8.1.3.dist-info}/entry_points.txt +0 -0
- {ultralytics-8.1.2.dist-info → ultralytics-8.1.3.dist-info}/top_level.txt +0 -0
|
@@ -2,45 +2,45 @@
|
|
|
2
2
|
# YOLOv8 Oriented Bounding Boxes (OBB) model with P3-P5 outputs. For Usage examples see https://docs.ultralytics.com/tasks/detect
|
|
3
3
|
|
|
4
4
|
# Parameters
|
|
5
|
-
nc: 80
|
|
5
|
+
nc: 80 # number of classes
|
|
6
6
|
scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n'
|
|
7
7
|
# [depth, width, max_channels]
|
|
8
|
-
n: [0.33, 0.25, 1024]
|
|
9
|
-
s: [0.33, 0.50, 1024]
|
|
10
|
-
m: [0.67, 0.75, 768]
|
|
11
|
-
l: [1.00, 1.00, 512]
|
|
12
|
-
x: [1.00, 1.25, 512]
|
|
8
|
+
n: [0.33, 0.25, 1024] # YOLOv8n summary: 225 layers, 3157200 parameters, 3157184 gradients, 8.9 GFLOPs
|
|
9
|
+
s: [0.33, 0.50, 1024] # YOLOv8s summary: 225 layers, 11166560 parameters, 11166544 gradients, 28.8 GFLOPs
|
|
10
|
+
m: [0.67, 0.75, 768] # YOLOv8m summary: 295 layers, 25902640 parameters, 25902624 gradients, 79.3 GFLOPs
|
|
11
|
+
l: [1.00, 1.00, 512] # YOLOv8l summary: 365 layers, 43691520 parameters, 43691504 gradients, 165.7 GFLOPs
|
|
12
|
+
x: [1.00, 1.25, 512] # YOLOv8x summary: 365 layers, 68229648 parameters, 68229632 gradients, 258.5 GFLOPs
|
|
13
13
|
|
|
14
14
|
# YOLOv8.0n backbone
|
|
15
15
|
backbone:
|
|
16
16
|
# [from, repeats, module, args]
|
|
17
|
-
- [-1, 1, Conv, [64, 3, 2]]
|
|
18
|
-
- [-1, 1, Conv, [128, 3, 2]]
|
|
17
|
+
- [-1, 1, Conv, [64, 3, 2]] # 0-P1/2
|
|
18
|
+
- [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
|
|
19
19
|
- [-1, 3, C2f, [128, True]]
|
|
20
|
-
- [-1, 1, Conv, [256, 3, 2]]
|
|
20
|
+
- [-1, 1, Conv, [256, 3, 2]] # 3-P3/8
|
|
21
21
|
- [-1, 6, C2f, [256, True]]
|
|
22
|
-
- [-1, 1, Conv, [512, 3, 2]]
|
|
22
|
+
- [-1, 1, Conv, [512, 3, 2]] # 5-P4/16
|
|
23
23
|
- [-1, 6, C2f, [512, True]]
|
|
24
|
-
- [-1, 1, Conv, [1024, 3, 2]]
|
|
24
|
+
- [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32
|
|
25
25
|
- [-1, 3, C2f, [1024, True]]
|
|
26
|
-
- [-1, 1, SPPF, [1024, 5]]
|
|
26
|
+
- [-1, 1, SPPF, [1024, 5]] # 9
|
|
27
27
|
|
|
28
28
|
# YOLOv8.0n head
|
|
29
29
|
head:
|
|
30
|
-
- [-1, 1, nn.Upsample, [None, 2,
|
|
31
|
-
- [[-1, 6], 1, Concat, [1]]
|
|
32
|
-
- [-1, 3, C2f, [512]]
|
|
30
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
31
|
+
- [[-1, 6], 1, Concat, [1]] # cat backbone P4
|
|
32
|
+
- [-1, 3, C2f, [512]] # 12
|
|
33
33
|
|
|
34
|
-
- [-1, 1, nn.Upsample, [None, 2,
|
|
35
|
-
- [[-1, 4], 1, Concat, [1]]
|
|
36
|
-
- [-1, 3, C2f, [256]]
|
|
34
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
35
|
+
- [[-1, 4], 1, Concat, [1]] # cat backbone P3
|
|
36
|
+
- [-1, 3, C2f, [256]] # 15 (P3/8-small)
|
|
37
37
|
|
|
38
38
|
- [-1, 1, Conv, [256, 3, 2]]
|
|
39
|
-
- [[-1, 12], 1, Concat, [1]]
|
|
40
|
-
- [-1, 3, C2f, [512]]
|
|
39
|
+
- [[-1, 12], 1, Concat, [1]] # cat head P4
|
|
40
|
+
- [-1, 3, C2f, [512]] # 18 (P4/16-medium)
|
|
41
41
|
|
|
42
42
|
- [-1, 1, Conv, [512, 3, 2]]
|
|
43
|
-
- [[-1, 9], 1, Concat, [1]]
|
|
44
|
-
- [-1, 3, C2f, [1024]]
|
|
43
|
+
- [[-1, 9], 1, Concat, [1]] # cat head P5
|
|
44
|
+
- [-1, 3, C2f, [1024]] # 21 (P5/32-large)
|
|
45
45
|
|
|
46
|
-
- [[15, 18, 21], 1, OBB, [nc, 1]]
|
|
46
|
+
- [[15, 18, 21], 1, OBB, [nc, 1]] # OBB(P3, P4, P5)
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# YOLOv8 object detection model with P2-P5 outputs. For Usage examples see https://docs.ultralytics.com/tasks/detect
|
|
3
3
|
|
|
4
4
|
# Parameters
|
|
5
|
-
nc: 80
|
|
5
|
+
nc: 80 # number of classes
|
|
6
6
|
scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n'
|
|
7
7
|
# [depth, width, max_channels]
|
|
8
8
|
n: [0.33, 0.25, 1024]
|
|
@@ -14,41 +14,41 @@ scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call
|
|
|
14
14
|
# YOLOv8.0 backbone
|
|
15
15
|
backbone:
|
|
16
16
|
# [from, repeats, module, args]
|
|
17
|
-
- [-1, 1, Conv, [64, 3, 2]]
|
|
18
|
-
- [-1, 1, Conv, [128, 3, 2]]
|
|
17
|
+
- [-1, 1, Conv, [64, 3, 2]] # 0-P1/2
|
|
18
|
+
- [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
|
|
19
19
|
- [-1, 3, C2f, [128, True]]
|
|
20
|
-
- [-1, 1, Conv, [256, 3, 2]]
|
|
20
|
+
- [-1, 1, Conv, [256, 3, 2]] # 3-P3/8
|
|
21
21
|
- [-1, 6, C2f, [256, True]]
|
|
22
|
-
- [-1, 1, Conv, [512, 3, 2]]
|
|
22
|
+
- [-1, 1, Conv, [512, 3, 2]] # 5-P4/16
|
|
23
23
|
- [-1, 6, C2f, [512, True]]
|
|
24
|
-
- [-1, 1, Conv, [1024, 3, 2]]
|
|
24
|
+
- [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32
|
|
25
25
|
- [-1, 3, C2f, [1024, True]]
|
|
26
|
-
- [-1, 1, SPPF, [1024, 5]]
|
|
26
|
+
- [-1, 1, SPPF, [1024, 5]] # 9
|
|
27
27
|
|
|
28
28
|
# YOLOv8.0-p2 head
|
|
29
29
|
head:
|
|
30
|
-
- [-1, 1, nn.Upsample, [None, 2,
|
|
31
|
-
- [[-1, 6], 1, Concat, [1]]
|
|
32
|
-
- [-1, 3, C2f, [512]]
|
|
30
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
31
|
+
- [[-1, 6], 1, Concat, [1]] # cat backbone P4
|
|
32
|
+
- [-1, 3, C2f, [512]] # 12
|
|
33
33
|
|
|
34
|
-
- [-1, 1, nn.Upsample, [None, 2,
|
|
35
|
-
- [[-1, 4], 1, Concat, [1]]
|
|
36
|
-
- [-1, 3, C2f, [256]]
|
|
34
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
35
|
+
- [[-1, 4], 1, Concat, [1]] # cat backbone P3
|
|
36
|
+
- [-1, 3, C2f, [256]] # 15 (P3/8-small)
|
|
37
37
|
|
|
38
|
-
- [-1, 1, nn.Upsample, [None, 2,
|
|
39
|
-
- [[-1, 2], 1, Concat, [1]]
|
|
40
|
-
- [-1, 3, C2f, [128]]
|
|
38
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
39
|
+
- [[-1, 2], 1, Concat, [1]] # cat backbone P2
|
|
40
|
+
- [-1, 3, C2f, [128]] # 18 (P2/4-xsmall)
|
|
41
41
|
|
|
42
42
|
- [-1, 1, Conv, [128, 3, 2]]
|
|
43
|
-
- [[-1, 15], 1, Concat, [1]]
|
|
44
|
-
- [-1, 3, C2f, [256]]
|
|
43
|
+
- [[-1, 15], 1, Concat, [1]] # cat head P3
|
|
44
|
+
- [-1, 3, C2f, [256]] # 21 (P3/8-small)
|
|
45
45
|
|
|
46
46
|
- [-1, 1, Conv, [256, 3, 2]]
|
|
47
|
-
- [[-1, 12], 1, Concat, [1]]
|
|
48
|
-
- [-1, 3, C2f, [512]]
|
|
47
|
+
- [[-1, 12], 1, Concat, [1]] # cat head P4
|
|
48
|
+
- [-1, 3, C2f, [512]] # 24 (P4/16-medium)
|
|
49
49
|
|
|
50
50
|
- [-1, 1, Conv, [512, 3, 2]]
|
|
51
|
-
- [[-1, 9], 1, Concat, [1]]
|
|
52
|
-
- [-1, 3, C2f, [1024]]
|
|
51
|
+
- [[-1, 9], 1, Concat, [1]] # cat head P5
|
|
52
|
+
- [-1, 3, C2f, [1024]] # 27 (P5/32-large)
|
|
53
53
|
|
|
54
|
-
- [[18, 21, 24, 27], 1, Detect, [nc]]
|
|
54
|
+
- [[18, 21, 24, 27], 1, Detect, [nc]] # Detect(P2, P3, P4, P5)
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# YOLOv8 object detection model with P3-P6 outputs. For Usage examples see https://docs.ultralytics.com/tasks/detect
|
|
3
3
|
|
|
4
4
|
# Parameters
|
|
5
|
-
nc: 80
|
|
5
|
+
nc: 80 # number of classes
|
|
6
6
|
scales: # model compound scaling constants, i.e. 'model=yolov8n-p6.yaml' will call yolov8-p6.yaml with scale 'n'
|
|
7
7
|
# [depth, width, max_channels]
|
|
8
8
|
n: [0.33, 0.25, 1024]
|
|
@@ -14,43 +14,43 @@ scales: # model compound scaling constants, i.e. 'model=yolov8n-p6.yaml' will ca
|
|
|
14
14
|
# YOLOv8.0x6 backbone
|
|
15
15
|
backbone:
|
|
16
16
|
# [from, repeats, module, args]
|
|
17
|
-
- [-1, 1, Conv, [64, 3, 2]]
|
|
18
|
-
- [-1, 1, Conv, [128, 3, 2]]
|
|
17
|
+
- [-1, 1, Conv, [64, 3, 2]] # 0-P1/2
|
|
18
|
+
- [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
|
|
19
19
|
- [-1, 3, C2f, [128, True]]
|
|
20
|
-
- [-1, 1, Conv, [256, 3, 2]]
|
|
20
|
+
- [-1, 1, Conv, [256, 3, 2]] # 3-P3/8
|
|
21
21
|
- [-1, 6, C2f, [256, True]]
|
|
22
|
-
- [-1, 1, Conv, [512, 3, 2]]
|
|
22
|
+
- [-1, 1, Conv, [512, 3, 2]] # 5-P4/16
|
|
23
23
|
- [-1, 6, C2f, [512, True]]
|
|
24
|
-
- [-1, 1, Conv, [768, 3, 2]]
|
|
24
|
+
- [-1, 1, Conv, [768, 3, 2]] # 7-P5/32
|
|
25
25
|
- [-1, 3, C2f, [768, True]]
|
|
26
|
-
- [-1, 1, Conv, [1024, 3, 2]]
|
|
26
|
+
- [-1, 1, Conv, [1024, 3, 2]] # 9-P6/64
|
|
27
27
|
- [-1, 3, C2f, [1024, True]]
|
|
28
|
-
- [-1, 1, SPPF, [1024, 5]]
|
|
28
|
+
- [-1, 1, SPPF, [1024, 5]] # 11
|
|
29
29
|
|
|
30
30
|
# YOLOv8.0x6 head
|
|
31
31
|
head:
|
|
32
|
-
- [-1, 1, nn.Upsample, [None, 2,
|
|
33
|
-
- [[-1, 8], 1, Concat, [1]]
|
|
34
|
-
- [-1, 3, C2, [768, False]]
|
|
32
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
33
|
+
- [[-1, 8], 1, Concat, [1]] # cat backbone P5
|
|
34
|
+
- [-1, 3, C2, [768, False]] # 14
|
|
35
35
|
|
|
36
|
-
- [-1, 1, nn.Upsample, [None, 2,
|
|
37
|
-
- [[-1, 6], 1, Concat, [1]]
|
|
38
|
-
- [-1, 3, C2, [512, False]]
|
|
36
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
37
|
+
- [[-1, 6], 1, Concat, [1]] # cat backbone P4
|
|
38
|
+
- [-1, 3, C2, [512, False]] # 17
|
|
39
39
|
|
|
40
|
-
- [-1, 1, nn.Upsample, [None, 2,
|
|
41
|
-
- [[-1, 4], 1, Concat, [1]]
|
|
42
|
-
- [-1, 3, C2, [256, False]]
|
|
40
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
41
|
+
- [[-1, 4], 1, Concat, [1]] # cat backbone P3
|
|
42
|
+
- [-1, 3, C2, [256, False]] # 20 (P3/8-small)
|
|
43
43
|
|
|
44
44
|
- [-1, 1, Conv, [256, 3, 2]]
|
|
45
|
-
- [[-1, 17], 1, Concat, [1]]
|
|
46
|
-
- [-1, 3, C2, [512, False]]
|
|
45
|
+
- [[-1, 17], 1, Concat, [1]] # cat head P4
|
|
46
|
+
- [-1, 3, C2, [512, False]] # 23 (P4/16-medium)
|
|
47
47
|
|
|
48
48
|
- [-1, 1, Conv, [512, 3, 2]]
|
|
49
|
-
- [[-1, 14], 1, Concat, [1]]
|
|
50
|
-
- [-1, 3, C2, [768, False]]
|
|
49
|
+
- [[-1, 14], 1, Concat, [1]] # cat head P5
|
|
50
|
+
- [-1, 3, C2, [768, False]] # 26 (P5/32-large)
|
|
51
51
|
|
|
52
52
|
- [-1, 1, Conv, [768, 3, 2]]
|
|
53
|
-
- [[-1, 11], 1, Concat, [1]]
|
|
54
|
-
- [-1, 3, C2, [1024, False]]
|
|
53
|
+
- [[-1, 11], 1, Concat, [1]] # cat head P6
|
|
54
|
+
- [-1, 3, C2, [1024, False]] # 29 (P6/64-xlarge)
|
|
55
55
|
|
|
56
|
-
- [[20, 23, 26, 29], 1, Detect, [nc]]
|
|
56
|
+
- [[20, 23, 26, 29], 1, Detect, [nc]] # Detect(P3, P4, P5, P6)
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
# YOLOv8-pose-p6 keypoints/pose estimation model. For Usage examples see https://docs.ultralytics.com/tasks/pose
|
|
3
3
|
|
|
4
4
|
# Parameters
|
|
5
|
-
nc: 1
|
|
6
|
-
kpt_shape: [17, 3]
|
|
5
|
+
nc: 1 # number of classes
|
|
6
|
+
kpt_shape: [17, 3] # number of keypoints, number of dims (2 for x,y or 3 for x,y,visible)
|
|
7
7
|
scales: # model compound scaling constants, i.e. 'model=yolov8n-p6.yaml' will call yolov8-p6.yaml with scale 'n'
|
|
8
8
|
# [depth, width, max_channels]
|
|
9
9
|
n: [0.33, 0.25, 1024]
|
|
@@ -15,43 +15,43 @@ scales: # model compound scaling constants, i.e. 'model=yolov8n-p6.yaml' will ca
|
|
|
15
15
|
# YOLOv8.0x6 backbone
|
|
16
16
|
backbone:
|
|
17
17
|
# [from, repeats, module, args]
|
|
18
|
-
- [-1, 1, Conv, [64, 3, 2]]
|
|
19
|
-
- [-1, 1, Conv, [128, 3, 2]]
|
|
18
|
+
- [-1, 1, Conv, [64, 3, 2]] # 0-P1/2
|
|
19
|
+
- [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
|
|
20
20
|
- [-1, 3, C2f, [128, True]]
|
|
21
|
-
- [-1, 1, Conv, [256, 3, 2]]
|
|
21
|
+
- [-1, 1, Conv, [256, 3, 2]] # 3-P3/8
|
|
22
22
|
- [-1, 6, C2f, [256, True]]
|
|
23
|
-
- [-1, 1, Conv, [512, 3, 2]]
|
|
23
|
+
- [-1, 1, Conv, [512, 3, 2]] # 5-P4/16
|
|
24
24
|
- [-1, 6, C2f, [512, True]]
|
|
25
|
-
- [-1, 1, Conv, [768, 3, 2]]
|
|
25
|
+
- [-1, 1, Conv, [768, 3, 2]] # 7-P5/32
|
|
26
26
|
- [-1, 3, C2f, [768, True]]
|
|
27
|
-
- [-1, 1, Conv, [1024, 3, 2]]
|
|
27
|
+
- [-1, 1, Conv, [1024, 3, 2]] # 9-P6/64
|
|
28
28
|
- [-1, 3, C2f, [1024, True]]
|
|
29
|
-
- [-1, 1, SPPF, [1024, 5]]
|
|
29
|
+
- [-1, 1, SPPF, [1024, 5]] # 11
|
|
30
30
|
|
|
31
31
|
# YOLOv8.0x6 head
|
|
32
32
|
head:
|
|
33
|
-
- [-1, 1, nn.Upsample, [None, 2,
|
|
34
|
-
- [[-1, 8], 1, Concat, [1]]
|
|
35
|
-
- [-1, 3, C2, [768, False]]
|
|
33
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
34
|
+
- [[-1, 8], 1, Concat, [1]] # cat backbone P5
|
|
35
|
+
- [-1, 3, C2, [768, False]] # 14
|
|
36
36
|
|
|
37
|
-
- [-1, 1, nn.Upsample, [None, 2,
|
|
38
|
-
- [[-1, 6], 1, Concat, [1]]
|
|
39
|
-
- [-1, 3, C2, [512, False]]
|
|
37
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
38
|
+
- [[-1, 6], 1, Concat, [1]] # cat backbone P4
|
|
39
|
+
- [-1, 3, C2, [512, False]] # 17
|
|
40
40
|
|
|
41
|
-
- [-1, 1, nn.Upsample, [None, 2,
|
|
42
|
-
- [[-1, 4], 1, Concat, [1]]
|
|
43
|
-
- [-1, 3, C2, [256, False]]
|
|
41
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
42
|
+
- [[-1, 4], 1, Concat, [1]] # cat backbone P3
|
|
43
|
+
- [-1, 3, C2, [256, False]] # 20 (P3/8-small)
|
|
44
44
|
|
|
45
45
|
- [-1, 1, Conv, [256, 3, 2]]
|
|
46
|
-
- [[-1, 17], 1, Concat, [1]]
|
|
47
|
-
- [-1, 3, C2, [512, False]]
|
|
46
|
+
- [[-1, 17], 1, Concat, [1]] # cat head P4
|
|
47
|
+
- [-1, 3, C2, [512, False]] # 23 (P4/16-medium)
|
|
48
48
|
|
|
49
49
|
- [-1, 1, Conv, [512, 3, 2]]
|
|
50
|
-
- [[-1, 14], 1, Concat, [1]]
|
|
51
|
-
- [-1, 3, C2, [768, False]]
|
|
50
|
+
- [[-1, 14], 1, Concat, [1]] # cat head P5
|
|
51
|
+
- [-1, 3, C2, [768, False]] # 26 (P5/32-large)
|
|
52
52
|
|
|
53
53
|
- [-1, 1, Conv, [768, 3, 2]]
|
|
54
|
-
- [[-1, 11], 1, Concat, [1]]
|
|
55
|
-
- [-1, 3, C2, [1024, False]]
|
|
54
|
+
- [[-1, 11], 1, Concat, [1]] # cat head P6
|
|
55
|
+
- [-1, 3, C2, [1024, False]] # 29 (P6/64-xlarge)
|
|
56
56
|
|
|
57
|
-
- [[20, 23, 26, 29], 1, Pose, [nc, kpt_shape]]
|
|
57
|
+
- [[20, 23, 26, 29], 1, Pose, [nc, kpt_shape]] # Pose(P3, P4, P5, P6)
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
# YOLOv8-pose keypoints/pose estimation model. For Usage examples see https://docs.ultralytics.com/tasks/pose
|
|
3
3
|
|
|
4
4
|
# Parameters
|
|
5
|
-
nc: 1
|
|
6
|
-
kpt_shape: [17, 3]
|
|
5
|
+
nc: 1 # number of classes
|
|
6
|
+
kpt_shape: [17, 3] # number of keypoints, number of dims (2 for x,y or 3 for x,y,visible)
|
|
7
7
|
scales: # model compound scaling constants, i.e. 'model=yolov8n-pose.yaml' will call yolov8-pose.yaml with scale 'n'
|
|
8
8
|
# [depth, width, max_channels]
|
|
9
9
|
n: [0.33, 0.25, 1024]
|
|
@@ -15,33 +15,33 @@ scales: # model compound scaling constants, i.e. 'model=yolov8n-pose.yaml' will
|
|
|
15
15
|
# YOLOv8.0n backbone
|
|
16
16
|
backbone:
|
|
17
17
|
# [from, repeats, module, args]
|
|
18
|
-
- [-1, 1, Conv, [64, 3, 2]]
|
|
19
|
-
- [-1, 1, Conv, [128, 3, 2]]
|
|
18
|
+
- [-1, 1, Conv, [64, 3, 2]] # 0-P1/2
|
|
19
|
+
- [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
|
|
20
20
|
- [-1, 3, C2f, [128, True]]
|
|
21
|
-
- [-1, 1, Conv, [256, 3, 2]]
|
|
21
|
+
- [-1, 1, Conv, [256, 3, 2]] # 3-P3/8
|
|
22
22
|
- [-1, 6, C2f, [256, True]]
|
|
23
|
-
- [-1, 1, Conv, [512, 3, 2]]
|
|
23
|
+
- [-1, 1, Conv, [512, 3, 2]] # 5-P4/16
|
|
24
24
|
- [-1, 6, C2f, [512, True]]
|
|
25
|
-
- [-1, 1, Conv, [1024, 3, 2]]
|
|
25
|
+
- [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32
|
|
26
26
|
- [-1, 3, C2f, [1024, True]]
|
|
27
|
-
- [-1, 1, SPPF, [1024, 5]]
|
|
27
|
+
- [-1, 1, SPPF, [1024, 5]] # 9
|
|
28
28
|
|
|
29
29
|
# YOLOv8.0n head
|
|
30
30
|
head:
|
|
31
|
-
- [-1, 1, nn.Upsample, [None, 2,
|
|
32
|
-
- [[-1, 6], 1, Concat, [1]]
|
|
33
|
-
- [-1, 3, C2f, [512]]
|
|
31
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
32
|
+
- [[-1, 6], 1, Concat, [1]] # cat backbone P4
|
|
33
|
+
- [-1, 3, C2f, [512]] # 12
|
|
34
34
|
|
|
35
|
-
- [-1, 1, nn.Upsample, [None, 2,
|
|
36
|
-
- [[-1, 4], 1, Concat, [1]]
|
|
37
|
-
- [-1, 3, C2f, [256]]
|
|
35
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
36
|
+
- [[-1, 4], 1, Concat, [1]] # cat backbone P3
|
|
37
|
+
- [-1, 3, C2f, [256]] # 15 (P3/8-small)
|
|
38
38
|
|
|
39
39
|
- [-1, 1, Conv, [256, 3, 2]]
|
|
40
|
-
- [[-1, 12], 1, Concat, [1]]
|
|
41
|
-
- [-1, 3, C2f, [512]]
|
|
40
|
+
- [[-1, 12], 1, Concat, [1]] # cat head P4
|
|
41
|
+
- [-1, 3, C2f, [512]] # 18 (P4/16-medium)
|
|
42
42
|
|
|
43
43
|
- [-1, 1, Conv, [512, 3, 2]]
|
|
44
|
-
- [[-1, 9], 1, Concat, [1]]
|
|
45
|
-
- [-1, 3, C2f, [1024]]
|
|
44
|
+
- [[-1, 9], 1, Concat, [1]] # cat head P5
|
|
45
|
+
- [-1, 3, C2f, [1024]] # 21 (P5/32-large)
|
|
46
46
|
|
|
47
|
-
- [[15, 18, 21], 1, Pose, [nc, kpt_shape]]
|
|
47
|
+
- [[15, 18, 21], 1, Pose, [nc, kpt_shape]] # Pose(P3, P4, P5)
|
|
@@ -2,45 +2,45 @@
|
|
|
2
2
|
# YOLOv8 object detection model with P3-P5 outputs. For Usage examples see https://docs.ultralytics.com/tasks/detect
|
|
3
3
|
|
|
4
4
|
# Parameters
|
|
5
|
-
nc: 80
|
|
5
|
+
nc: 80 # number of classes
|
|
6
6
|
scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n'
|
|
7
7
|
# [depth, width, max_channels]
|
|
8
|
-
n: [0.33, 0.25, 1024]
|
|
9
|
-
s: [0.33, 0.50, 1024]
|
|
10
|
-
m: [0.67, 0.75, 768]
|
|
11
|
-
l: [1.00, 1.00, 512]
|
|
12
|
-
x: [1.00, 1.25, 512]
|
|
8
|
+
n: [0.33, 0.25, 1024] # YOLOv8n summary: 225 layers, 3157200 parameters, 3157184 gradients, 8.9 GFLOPs
|
|
9
|
+
s: [0.33, 0.50, 1024] # YOLOv8s summary: 225 layers, 11166560 parameters, 11166544 gradients, 28.8 GFLOPs
|
|
10
|
+
m: [0.67, 0.75, 768] # YOLOv8m summary: 295 layers, 25902640 parameters, 25902624 gradients, 79.3 GFLOPs
|
|
11
|
+
l: [1.00, 1.00, 512] # YOLOv8l summary: 365 layers, 43691520 parameters, 43691504 gradients, 165.7 GFLOPs
|
|
12
|
+
x: [1.00, 1.25, 512] # YOLOv8x summary: 365 layers, 68229648 parameters, 68229632 gradients, 258.5 GFLOPs
|
|
13
13
|
|
|
14
14
|
# YOLOv8.0n backbone
|
|
15
15
|
backbone:
|
|
16
16
|
# [from, repeats, module, args]
|
|
17
|
-
- [-1, 1, Conv, [64, 3, 2]]
|
|
18
|
-
- [-1, 1, Conv, [128, 3, 2]]
|
|
17
|
+
- [-1, 1, Conv, [64, 3, 2]] # 0-P1/2
|
|
18
|
+
- [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
|
|
19
19
|
- [-1, 3, C2f, [128, True]]
|
|
20
|
-
- [-1, 1, Conv, [256, 3, 2]]
|
|
20
|
+
- [-1, 1, Conv, [256, 3, 2]] # 3-P3/8
|
|
21
21
|
- [-1, 6, C2f, [256, True]]
|
|
22
|
-
- [-1, 1, Conv, [512, 3, 2]]
|
|
22
|
+
- [-1, 1, Conv, [512, 3, 2]] # 5-P4/16
|
|
23
23
|
- [-1, 6, C2f, [512, True]]
|
|
24
|
-
- [-1, 1, Conv, [1024, 3, 2]]
|
|
24
|
+
- [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32
|
|
25
25
|
- [-1, 3, C2f, [1024, True]]
|
|
26
|
-
- [-1, 1, SPPF, [1024, 5]]
|
|
26
|
+
- [-1, 1, SPPF, [1024, 5]] # 9
|
|
27
27
|
|
|
28
28
|
# YOLOv8.0n head
|
|
29
29
|
head:
|
|
30
|
-
- [-1, 1, nn.Upsample, [None, 2,
|
|
31
|
-
- [[-1, 6], 1, Concat, [1]]
|
|
32
|
-
- [-1, 3, C2f, [512]]
|
|
30
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
31
|
+
- [[-1, 6], 1, Concat, [1]] # cat backbone P4
|
|
32
|
+
- [-1, 3, C2f, [512]] # 12
|
|
33
33
|
|
|
34
|
-
- [-1, 1, nn.Upsample, [None, 2,
|
|
35
|
-
- [[-1, 4], 1, Concat, [1]]
|
|
36
|
-
- [-1, 3, C2f, [256]]
|
|
34
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
35
|
+
- [[-1, 4], 1, Concat, [1]] # cat backbone P3
|
|
36
|
+
- [-1, 3, C2f, [256]] # 15 (P3/8-small)
|
|
37
37
|
|
|
38
38
|
- [-1, 1, Conv, [256, 3, 2]]
|
|
39
|
-
- [[-1, 12], 1, Concat, [1]]
|
|
40
|
-
- [-1, 3, C2f, [512]]
|
|
39
|
+
- [[-1, 12], 1, Concat, [1]] # cat head P4
|
|
40
|
+
- [-1, 3, C2f, [512]] # 18 (P4/16-medium)
|
|
41
41
|
|
|
42
42
|
- [-1, 1, Conv, [512, 3, 2]]
|
|
43
|
-
- [[-1, 9], 1, Concat, [1]]
|
|
44
|
-
- [-1, 3, C2f, [1024]]
|
|
43
|
+
- [[-1, 9], 1, Concat, [1]] # cat head P5
|
|
44
|
+
- [-1, 3, C2f, [1024]] # 21 (P5/32-large)
|
|
45
45
|
|
|
46
|
-
- [[15, 18, 21], 1, RTDETRDecoder, [nc]]
|
|
46
|
+
- [[15, 18, 21], 1, RTDETRDecoder, [nc]] # Detect(P3, P4, P5)
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# YOLOv8-seg-p6 instance segmentation model. For Usage examples see https://docs.ultralytics.com/tasks/segment
|
|
3
3
|
|
|
4
4
|
# Parameters
|
|
5
|
-
nc: 80
|
|
5
|
+
nc: 80 # number of classes
|
|
6
6
|
scales: # model compound scaling constants, i.e. 'model=yolov8n-seg-p6.yaml' will call yolov8-seg-p6.yaml with scale 'n'
|
|
7
7
|
# [depth, width, max_channels]
|
|
8
8
|
n: [0.33, 0.25, 1024]
|
|
@@ -14,43 +14,43 @@ scales: # model compound scaling constants, i.e. 'model=yolov8n-seg-p6.yaml' wil
|
|
|
14
14
|
# YOLOv8.0x6 backbone
|
|
15
15
|
backbone:
|
|
16
16
|
# [from, repeats, module, args]
|
|
17
|
-
- [-1, 1, Conv, [64, 3, 2]]
|
|
18
|
-
- [-1, 1, Conv, [128, 3, 2]]
|
|
17
|
+
- [-1, 1, Conv, [64, 3, 2]] # 0-P1/2
|
|
18
|
+
- [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
|
|
19
19
|
- [-1, 3, C2f, [128, True]]
|
|
20
|
-
- [-1, 1, Conv, [256, 3, 2]]
|
|
20
|
+
- [-1, 1, Conv, [256, 3, 2]] # 3-P3/8
|
|
21
21
|
- [-1, 6, C2f, [256, True]]
|
|
22
|
-
- [-1, 1, Conv, [512, 3, 2]]
|
|
22
|
+
- [-1, 1, Conv, [512, 3, 2]] # 5-P4/16
|
|
23
23
|
- [-1, 6, C2f, [512, True]]
|
|
24
|
-
- [-1, 1, Conv, [768, 3, 2]]
|
|
24
|
+
- [-1, 1, Conv, [768, 3, 2]] # 7-P5/32
|
|
25
25
|
- [-1, 3, C2f, [768, True]]
|
|
26
|
-
- [-1, 1, Conv, [1024, 3, 2]]
|
|
26
|
+
- [-1, 1, Conv, [1024, 3, 2]] # 9-P6/64
|
|
27
27
|
- [-1, 3, C2f, [1024, True]]
|
|
28
|
-
- [-1, 1, SPPF, [1024, 5]]
|
|
28
|
+
- [-1, 1, SPPF, [1024, 5]] # 11
|
|
29
29
|
|
|
30
30
|
# YOLOv8.0x6 head
|
|
31
31
|
head:
|
|
32
|
-
- [-1, 1, nn.Upsample, [None, 2,
|
|
33
|
-
- [[-1, 8], 1, Concat, [1]]
|
|
34
|
-
- [-1, 3, C2, [768, False]]
|
|
32
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
33
|
+
- [[-1, 8], 1, Concat, [1]] # cat backbone P5
|
|
34
|
+
- [-1, 3, C2, [768, False]] # 14
|
|
35
35
|
|
|
36
|
-
- [-1, 1, nn.Upsample, [None, 2,
|
|
37
|
-
- [[-1, 6], 1, Concat, [1]]
|
|
38
|
-
- [-1, 3, C2, [512, False]]
|
|
36
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
37
|
+
- [[-1, 6], 1, Concat, [1]] # cat backbone P4
|
|
38
|
+
- [-1, 3, C2, [512, False]] # 17
|
|
39
39
|
|
|
40
|
-
- [-1, 1, nn.Upsample, [None, 2,
|
|
41
|
-
- [[-1, 4], 1, Concat, [1]]
|
|
42
|
-
- [-1, 3, C2, [256, False]]
|
|
40
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
41
|
+
- [[-1, 4], 1, Concat, [1]] # cat backbone P3
|
|
42
|
+
- [-1, 3, C2, [256, False]] # 20 (P3/8-small)
|
|
43
43
|
|
|
44
44
|
- [-1, 1, Conv, [256, 3, 2]]
|
|
45
|
-
- [[-1, 17], 1, Concat, [1]]
|
|
46
|
-
- [-1, 3, C2, [512, False]]
|
|
45
|
+
- [[-1, 17], 1, Concat, [1]] # cat head P4
|
|
46
|
+
- [-1, 3, C2, [512, False]] # 23 (P4/16-medium)
|
|
47
47
|
|
|
48
48
|
- [-1, 1, Conv, [512, 3, 2]]
|
|
49
|
-
- [[-1, 14], 1, Concat, [1]]
|
|
50
|
-
- [-1, 3, C2, [768, False]]
|
|
49
|
+
- [[-1, 14], 1, Concat, [1]] # cat head P5
|
|
50
|
+
- [-1, 3, C2, [768, False]] # 26 (P5/32-large)
|
|
51
51
|
|
|
52
52
|
- [-1, 1, Conv, [768, 3, 2]]
|
|
53
|
-
- [[-1, 11], 1, Concat, [1]]
|
|
54
|
-
- [-1, 3, C2, [1024, False]]
|
|
53
|
+
- [[-1, 11], 1, Concat, [1]] # cat head P6
|
|
54
|
+
- [-1, 3, C2, [1024, False]] # 29 (P6/64-xlarge)
|
|
55
55
|
|
|
56
|
-
- [[20, 23, 26, 29], 1, Segment, [nc, 32, 256]]
|
|
56
|
+
- [[20, 23, 26, 29], 1, Segment, [nc, 32, 256]] # Pose(P3, P4, P5, P6)
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# YOLOv8-seg instance segmentation model. For Usage examples see https://docs.ultralytics.com/tasks/segment
|
|
3
3
|
|
|
4
4
|
# Parameters
|
|
5
|
-
nc: 80
|
|
5
|
+
nc: 80 # number of classes
|
|
6
6
|
scales: # model compound scaling constants, i.e. 'model=yolov8n-seg.yaml' will call yolov8-seg.yaml with scale 'n'
|
|
7
7
|
# [depth, width, max_channels]
|
|
8
8
|
n: [0.33, 0.25, 1024]
|
|
@@ -14,33 +14,33 @@ scales: # model compound scaling constants, i.e. 'model=yolov8n-seg.yaml' will c
|
|
|
14
14
|
# YOLOv8.0n backbone
|
|
15
15
|
backbone:
|
|
16
16
|
# [from, repeats, module, args]
|
|
17
|
-
- [-1, 1, Conv, [64, 3, 2]]
|
|
18
|
-
- [-1, 1, Conv, [128, 3, 2]]
|
|
17
|
+
- [-1, 1, Conv, [64, 3, 2]] # 0-P1/2
|
|
18
|
+
- [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
|
|
19
19
|
- [-1, 3, C2f, [128, True]]
|
|
20
|
-
- [-1, 1, Conv, [256, 3, 2]]
|
|
20
|
+
- [-1, 1, Conv, [256, 3, 2]] # 3-P3/8
|
|
21
21
|
- [-1, 6, C2f, [256, True]]
|
|
22
|
-
- [-1, 1, Conv, [512, 3, 2]]
|
|
22
|
+
- [-1, 1, Conv, [512, 3, 2]] # 5-P4/16
|
|
23
23
|
- [-1, 6, C2f, [512, True]]
|
|
24
|
-
- [-1, 1, Conv, [1024, 3, 2]]
|
|
24
|
+
- [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32
|
|
25
25
|
- [-1, 3, C2f, [1024, True]]
|
|
26
|
-
- [-1, 1, SPPF, [1024, 5]]
|
|
26
|
+
- [-1, 1, SPPF, [1024, 5]] # 9
|
|
27
27
|
|
|
28
28
|
# YOLOv8.0n head
|
|
29
29
|
head:
|
|
30
|
-
- [-1, 1, nn.Upsample, [None, 2,
|
|
31
|
-
- [[-1, 6], 1, Concat, [1]]
|
|
32
|
-
- [-1, 3, C2f, [512]]
|
|
30
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
31
|
+
- [[-1, 6], 1, Concat, [1]] # cat backbone P4
|
|
32
|
+
- [-1, 3, C2f, [512]] # 12
|
|
33
33
|
|
|
34
|
-
- [-1, 1, nn.Upsample, [None, 2,
|
|
35
|
-
- [[-1, 4], 1, Concat, [1]]
|
|
36
|
-
- [-1, 3, C2f, [256]]
|
|
34
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
35
|
+
- [[-1, 4], 1, Concat, [1]] # cat backbone P3
|
|
36
|
+
- [-1, 3, C2f, [256]] # 15 (P3/8-small)
|
|
37
37
|
|
|
38
38
|
- [-1, 1, Conv, [256, 3, 2]]
|
|
39
|
-
- [[-1, 12], 1, Concat, [1]]
|
|
40
|
-
- [-1, 3, C2f, [512]]
|
|
39
|
+
- [[-1, 12], 1, Concat, [1]] # cat head P4
|
|
40
|
+
- [-1, 3, C2f, [512]] # 18 (P4/16-medium)
|
|
41
41
|
|
|
42
42
|
- [-1, 1, Conv, [512, 3, 2]]
|
|
43
|
-
- [[-1, 9], 1, Concat, [1]]
|
|
44
|
-
- [-1, 3, C2f, [1024]]
|
|
43
|
+
- [[-1, 9], 1, Concat, [1]] # cat head P5
|
|
44
|
+
- [-1, 3, C2f, [1024]] # 21 (P5/32-large)
|
|
45
45
|
|
|
46
|
-
- [[15, 18, 21], 1, Segment, [nc, 32, 256]]
|
|
46
|
+
- [[15, 18, 21], 1, Segment, [nc, 32, 256]] # Segment(P3, P4, P5)
|
|
@@ -2,45 +2,45 @@
|
|
|
2
2
|
# YOLOv8 object detection model with P3-P5 outputs. For Usage examples see https://docs.ultralytics.com/tasks/detect
|
|
3
3
|
|
|
4
4
|
# Parameters
|
|
5
|
-
nc: 80
|
|
5
|
+
nc: 80 # number of classes
|
|
6
6
|
scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n'
|
|
7
7
|
# [depth, width, max_channels]
|
|
8
|
-
n: [0.33, 0.25, 1024]
|
|
9
|
-
s: [0.33, 0.50, 1024]
|
|
10
|
-
m: [0.67, 0.75, 768]
|
|
11
|
-
l: [1.00, 1.00, 512]
|
|
12
|
-
x: [1.00, 1.25, 512]
|
|
8
|
+
n: [0.33, 0.25, 1024] # YOLOv8n summary: 225 layers, 3157200 parameters, 3157184 gradients, 8.9 GFLOPs
|
|
9
|
+
s: [0.33, 0.50, 1024] # YOLOv8s summary: 225 layers, 11166560 parameters, 11166544 gradients, 28.8 GFLOPs
|
|
10
|
+
m: [0.67, 0.75, 768] # YOLOv8m summary: 295 layers, 25902640 parameters, 25902624 gradients, 79.3 GFLOPs
|
|
11
|
+
l: [1.00, 1.00, 512] # YOLOv8l summary: 365 layers, 43691520 parameters, 43691504 gradients, 165.7 GFLOPs
|
|
12
|
+
x: [1.00, 1.25, 512] # YOLOv8x summary: 365 layers, 68229648 parameters, 68229632 gradients, 258.5 GFLOPs
|
|
13
13
|
|
|
14
14
|
# YOLOv8.0n backbone
|
|
15
15
|
backbone:
|
|
16
16
|
# [from, repeats, module, args]
|
|
17
|
-
- [-1, 1, Conv, [64, 3, 2]]
|
|
18
|
-
- [-1, 1, Conv, [128, 3, 2]]
|
|
17
|
+
- [-1, 1, Conv, [64, 3, 2]] # 0-P1/2
|
|
18
|
+
- [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
|
|
19
19
|
- [-1, 3, C2f, [128, True]]
|
|
20
|
-
- [-1, 1, Conv, [256, 3, 2]]
|
|
20
|
+
- [-1, 1, Conv, [256, 3, 2]] # 3-P3/8
|
|
21
21
|
- [-1, 6, C2f, [256, True]]
|
|
22
|
-
- [-1, 1, Conv, [512, 3, 2]]
|
|
22
|
+
- [-1, 1, Conv, [512, 3, 2]] # 5-P4/16
|
|
23
23
|
- [-1, 6, C2f, [512, True]]
|
|
24
|
-
- [-1, 1, Conv, [1024, 3, 2]]
|
|
24
|
+
- [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32
|
|
25
25
|
- [-1, 3, C2f, [1024, True]]
|
|
26
|
-
- [-1, 1, SPPF, [1024, 5]]
|
|
26
|
+
- [-1, 1, SPPF, [1024, 5]] # 9
|
|
27
27
|
|
|
28
28
|
# YOLOv8.0n head
|
|
29
29
|
head:
|
|
30
|
-
- [-1, 1, nn.Upsample, [None, 2,
|
|
31
|
-
- [[-1, 6], 1, Concat, [1]]
|
|
32
|
-
- [-1, 3, C2f, [512]]
|
|
30
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
31
|
+
- [[-1, 6], 1, Concat, [1]] # cat backbone P4
|
|
32
|
+
- [-1, 3, C2f, [512]] # 12
|
|
33
33
|
|
|
34
|
-
- [-1, 1, nn.Upsample, [None, 2,
|
|
35
|
-
- [[-1, 4], 1, Concat, [1]]
|
|
36
|
-
- [-1, 3, C2f, [256]]
|
|
34
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
35
|
+
- [[-1, 4], 1, Concat, [1]] # cat backbone P3
|
|
36
|
+
- [-1, 3, C2f, [256]] # 15 (P3/8-small)
|
|
37
37
|
|
|
38
38
|
- [-1, 1, Conv, [256, 3, 2]]
|
|
39
|
-
- [[-1, 12], 1, Concat, [1]]
|
|
40
|
-
- [-1, 3, C2f, [512]]
|
|
39
|
+
- [[-1, 12], 1, Concat, [1]] # cat head P4
|
|
40
|
+
- [-1, 3, C2f, [512]] # 18 (P4/16-medium)
|
|
41
41
|
|
|
42
42
|
- [-1, 1, Conv, [512, 3, 2]]
|
|
43
|
-
- [[-1, 9], 1, Concat, [1]]
|
|
44
|
-
- [-1, 3, C2f, [1024]]
|
|
43
|
+
- [[-1, 9], 1, Concat, [1]] # cat head P5
|
|
44
|
+
- [-1, 3, C2f, [1024]] # 21 (P5/32-large)
|
|
45
45
|
|
|
46
|
-
- [[15, 18, 21], 1, Detect, [nc]]
|
|
46
|
+
- [[15, 18, 21], 1, Detect, [nc]] # Detect(P3, P4, P5)
|