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,36 +2,36 @@
|
|
|
2
2
|
# YOLOv3-tiny object detection model with P4-P5 outputs. For details see https://docs.ultralytics.com/models/yolov3
|
|
3
3
|
|
|
4
4
|
# Parameters
|
|
5
|
-
nc: 80
|
|
6
|
-
depth_multiple: 1.0
|
|
7
|
-
width_multiple: 1.0
|
|
5
|
+
nc: 80 # number of classes
|
|
6
|
+
depth_multiple: 1.0 # model depth multiple
|
|
7
|
+
width_multiple: 1.0 # layer channel multiple
|
|
8
8
|
|
|
9
9
|
# YOLOv3-tiny backbone
|
|
10
10
|
backbone:
|
|
11
11
|
# [from, number, module, args]
|
|
12
|
-
- [-1, 1, Conv, [16, 3, 1]]
|
|
13
|
-
- [-1, 1, nn.MaxPool2d, [2, 2, 0]]
|
|
12
|
+
- [-1, 1, Conv, [16, 3, 1]] # 0
|
|
13
|
+
- [-1, 1, nn.MaxPool2d, [2, 2, 0]] # 1-P1/2
|
|
14
14
|
- [-1, 1, Conv, [32, 3, 1]]
|
|
15
|
-
- [-1, 1, nn.MaxPool2d, [2, 2, 0]]
|
|
15
|
+
- [-1, 1, nn.MaxPool2d, [2, 2, 0]] # 3-P2/4
|
|
16
16
|
- [-1, 1, Conv, [64, 3, 1]]
|
|
17
|
-
- [-1, 1, nn.MaxPool2d, [2, 2, 0]]
|
|
17
|
+
- [-1, 1, nn.MaxPool2d, [2, 2, 0]] # 5-P3/8
|
|
18
18
|
- [-1, 1, Conv, [128, 3, 1]]
|
|
19
|
-
- [-1, 1, nn.MaxPool2d, [2, 2, 0]]
|
|
19
|
+
- [-1, 1, nn.MaxPool2d, [2, 2, 0]] # 7-P4/16
|
|
20
20
|
- [-1, 1, Conv, [256, 3, 1]]
|
|
21
|
-
- [-1, 1, nn.MaxPool2d, [2, 2, 0]]
|
|
21
|
+
- [-1, 1, nn.MaxPool2d, [2, 2, 0]] # 9-P5/32
|
|
22
22
|
- [-1, 1, Conv, [512, 3, 1]]
|
|
23
|
-
- [-1, 1, nn.ZeroPad2d, [[0, 1, 0, 1]]]
|
|
24
|
-
- [-1, 1, nn.MaxPool2d, [2, 1, 0]]
|
|
23
|
+
- [-1, 1, nn.ZeroPad2d, [[0, 1, 0, 1]]] # 11
|
|
24
|
+
- [-1, 1, nn.MaxPool2d, [2, 1, 0]] # 12
|
|
25
25
|
|
|
26
26
|
# YOLOv3-tiny head
|
|
27
27
|
head:
|
|
28
28
|
- [-1, 1, Conv, [1024, 3, 1]]
|
|
29
29
|
- [-1, 1, Conv, [256, 1, 1]]
|
|
30
|
-
- [-1, 1, Conv, [512, 3, 1]]
|
|
30
|
+
- [-1, 1, Conv, [512, 3, 1]] # 15 (P5/32-large)
|
|
31
31
|
|
|
32
32
|
- [-2, 1, Conv, [128, 1, 1]]
|
|
33
|
-
- [-1, 1, nn.Upsample, [None, 2,
|
|
34
|
-
- [[-1, 8], 1, Concat, [1]]
|
|
35
|
-
- [-1, 1, Conv, [256, 3, 1]]
|
|
33
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
34
|
+
- [[-1, 8], 1, Concat, [1]] # cat backbone P4
|
|
35
|
+
- [-1, 1, Conv, [256, 3, 1]] # 19 (P4/16-medium)
|
|
36
36
|
|
|
37
|
-
- [[19, 15], 1, Detect, [nc]]
|
|
37
|
+
- [[19, 15], 1, Detect, [nc]] # Detect(P4, P5)
|
|
@@ -2,24 +2,24 @@
|
|
|
2
2
|
# YOLOv3 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov3
|
|
3
3
|
|
|
4
4
|
# Parameters
|
|
5
|
-
nc: 80
|
|
6
|
-
depth_multiple: 1.0
|
|
7
|
-
width_multiple: 1.0
|
|
5
|
+
nc: 80 # number of classes
|
|
6
|
+
depth_multiple: 1.0 # model depth multiple
|
|
7
|
+
width_multiple: 1.0 # layer channel multiple
|
|
8
8
|
|
|
9
9
|
# darknet53 backbone
|
|
10
10
|
backbone:
|
|
11
11
|
# [from, number, module, args]
|
|
12
|
-
- [-1, 1, Conv, [32, 3, 1]]
|
|
13
|
-
- [-1, 1, Conv, [64, 3, 2]]
|
|
12
|
+
- [-1, 1, Conv, [32, 3, 1]] # 0
|
|
13
|
+
- [-1, 1, Conv, [64, 3, 2]] # 1-P1/2
|
|
14
14
|
- [-1, 1, Bottleneck, [64]]
|
|
15
|
-
- [-1, 1, Conv, [128, 3, 2]]
|
|
15
|
+
- [-1, 1, Conv, [128, 3, 2]] # 3-P2/4
|
|
16
16
|
- [-1, 2, Bottleneck, [128]]
|
|
17
|
-
- [-1, 1, Conv, [256, 3, 2]]
|
|
17
|
+
- [-1, 1, Conv, [256, 3, 2]] # 5-P3/8
|
|
18
18
|
- [-1, 8, Bottleneck, [256]]
|
|
19
|
-
- [-1, 1, Conv, [512, 3, 2]]
|
|
19
|
+
- [-1, 1, Conv, [512, 3, 2]] # 7-P4/16
|
|
20
20
|
- [-1, 8, Bottleneck, [512]]
|
|
21
|
-
- [-1, 1, Conv, [1024, 3, 2]]
|
|
22
|
-
- [-1, 4, Bottleneck, [1024]]
|
|
21
|
+
- [-1, 1, Conv, [1024, 3, 2]] # 9-P5/32
|
|
22
|
+
- [-1, 4, Bottleneck, [1024]] # 10
|
|
23
23
|
|
|
24
24
|
# YOLOv3 head
|
|
25
25
|
head:
|
|
@@ -27,20 +27,20 @@ head:
|
|
|
27
27
|
- [-1, 1, Conv, [512, 1, 1]]
|
|
28
28
|
- [-1, 1, Conv, [1024, 3, 1]]
|
|
29
29
|
- [-1, 1, Conv, [512, 1, 1]]
|
|
30
|
-
- [-1, 1, Conv, [1024, 3, 1]]
|
|
30
|
+
- [-1, 1, Conv, [1024, 3, 1]] # 15 (P5/32-large)
|
|
31
31
|
|
|
32
32
|
- [-2, 1, Conv, [256, 1, 1]]
|
|
33
|
-
- [-1, 1, nn.Upsample, [None, 2,
|
|
34
|
-
- [[-1, 8], 1, Concat, [1]]
|
|
33
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
34
|
+
- [[-1, 8], 1, Concat, [1]] # cat backbone P4
|
|
35
35
|
- [-1, 1, Bottleneck, [512, False]]
|
|
36
36
|
- [-1, 1, Bottleneck, [512, False]]
|
|
37
37
|
- [-1, 1, Conv, [256, 1, 1]]
|
|
38
|
-
- [-1, 1, Conv, [512, 3, 1]]
|
|
38
|
+
- [-1, 1, Conv, [512, 3, 1]] # 22 (P4/16-medium)
|
|
39
39
|
|
|
40
40
|
- [-2, 1, Conv, [128, 1, 1]]
|
|
41
|
-
- [-1, 1, nn.Upsample, [None, 2,
|
|
42
|
-
- [[-1, 6], 1, Concat, [1]]
|
|
41
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
42
|
+
- [[-1, 6], 1, Concat, [1]] # cat backbone P3
|
|
43
43
|
- [-1, 1, Bottleneck, [256, False]]
|
|
44
|
-
- [-1, 2, Bottleneck, [256, False]]
|
|
44
|
+
- [-1, 2, Bottleneck, [256, False]] # 27 (P3/8-small)
|
|
45
45
|
|
|
46
|
-
- [[27, 22, 15], 1, Detect, [nc]]
|
|
46
|
+
- [[27, 22, 15], 1, Detect, [nc]] # Detect(P3, P4, P5)
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# YOLOv5 object detection model with P3-P6 outputs. For details see https://docs.ultralytics.com/models/yolov5
|
|
3
3
|
|
|
4
4
|
# Parameters
|
|
5
|
-
nc: 80
|
|
5
|
+
nc: 80 # number of classes
|
|
6
6
|
scales: # model compound scaling constants, i.e. 'model=yolov5n-p6.yaml' will call yolov5-p6.yaml with scale 'n'
|
|
7
7
|
# [depth, width, max_channels]
|
|
8
8
|
n: [0.33, 0.25, 1024]
|
|
@@ -14,46 +14,46 @@ scales: # model compound scaling constants, i.e. 'model=yolov5n-p6.yaml' will ca
|
|
|
14
14
|
# YOLOv5 v6.0 backbone
|
|
15
15
|
backbone:
|
|
16
16
|
# [from, number, module, args]
|
|
17
|
-
- [-1, 1, Conv, [64, 6, 2, 2]]
|
|
18
|
-
- [-1, 1, Conv, [128, 3, 2]]
|
|
17
|
+
- [-1, 1, Conv, [64, 6, 2, 2]] # 0-P1/2
|
|
18
|
+
- [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
|
|
19
19
|
- [-1, 3, C3, [128]]
|
|
20
|
-
- [-1, 1, Conv, [256, 3, 2]]
|
|
20
|
+
- [-1, 1, Conv, [256, 3, 2]] # 3-P3/8
|
|
21
21
|
- [-1, 6, C3, [256]]
|
|
22
|
-
- [-1, 1, Conv, [512, 3, 2]]
|
|
22
|
+
- [-1, 1, Conv, [512, 3, 2]] # 5-P4/16
|
|
23
23
|
- [-1, 9, C3, [512]]
|
|
24
|
-
- [-1, 1, Conv, [768, 3, 2]]
|
|
24
|
+
- [-1, 1, Conv, [768, 3, 2]] # 7-P5/32
|
|
25
25
|
- [-1, 3, C3, [768]]
|
|
26
|
-
- [-1, 1, Conv, [1024, 3, 2]]
|
|
26
|
+
- [-1, 1, Conv, [1024, 3, 2]] # 9-P6/64
|
|
27
27
|
- [-1, 3, C3, [1024]]
|
|
28
|
-
- [-1, 1, SPPF, [1024, 5]]
|
|
28
|
+
- [-1, 1, SPPF, [1024, 5]] # 11
|
|
29
29
|
|
|
30
30
|
# YOLOv5 v6.0 head
|
|
31
31
|
head:
|
|
32
32
|
- [-1, 1, Conv, [768, 1, 1]]
|
|
33
|
-
- [-1, 1, nn.Upsample, [None, 2,
|
|
34
|
-
- [[-1, 8], 1, Concat, [1]]
|
|
35
|
-
- [-1, 3, C3, [768, False]]
|
|
33
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
34
|
+
- [[-1, 8], 1, Concat, [1]] # cat backbone P5
|
|
35
|
+
- [-1, 3, C3, [768, False]] # 15
|
|
36
36
|
|
|
37
37
|
- [-1, 1, Conv, [512, 1, 1]]
|
|
38
|
-
- [-1, 1, nn.Upsample, [None, 2,
|
|
39
|
-
- [[-1, 6], 1, Concat, [1]]
|
|
40
|
-
- [-1, 3, C3, [512, False]]
|
|
38
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
39
|
+
- [[-1, 6], 1, Concat, [1]] # cat backbone P4
|
|
40
|
+
- [-1, 3, C3, [512, False]] # 19
|
|
41
41
|
|
|
42
42
|
- [-1, 1, Conv, [256, 1, 1]]
|
|
43
|
-
- [-1, 1, nn.Upsample, [None, 2,
|
|
44
|
-
- [[-1, 4], 1, Concat, [1]]
|
|
45
|
-
- [-1, 3, C3, [256, False]]
|
|
43
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
44
|
+
- [[-1, 4], 1, Concat, [1]] # cat backbone P3
|
|
45
|
+
- [-1, 3, C3, [256, False]] # 23 (P3/8-small)
|
|
46
46
|
|
|
47
47
|
- [-1, 1, Conv, [256, 3, 2]]
|
|
48
|
-
- [[-1, 20], 1, Concat, [1]]
|
|
49
|
-
- [-1, 3, C3, [512, False]]
|
|
48
|
+
- [[-1, 20], 1, Concat, [1]] # cat head P4
|
|
49
|
+
- [-1, 3, C3, [512, False]] # 26 (P4/16-medium)
|
|
50
50
|
|
|
51
51
|
- [-1, 1, Conv, [512, 3, 2]]
|
|
52
|
-
- [[-1, 16], 1, Concat, [1]]
|
|
53
|
-
- [-1, 3, C3, [768, False]]
|
|
52
|
+
- [[-1, 16], 1, Concat, [1]] # cat head P5
|
|
53
|
+
- [-1, 3, C3, [768, False]] # 29 (P5/32-large)
|
|
54
54
|
|
|
55
55
|
- [-1, 1, Conv, [768, 3, 2]]
|
|
56
|
-
- [[-1, 12], 1, Concat, [1]]
|
|
57
|
-
- [-1, 3, C3, [1024, False]]
|
|
56
|
+
- [[-1, 12], 1, Concat, [1]] # cat head P6
|
|
57
|
+
- [-1, 3, C3, [1024, False]] # 32 (P6/64-xlarge)
|
|
58
58
|
|
|
59
|
-
- [[23, 26, 29, 32], 1, Detect, [nc]]
|
|
59
|
+
- [[23, 26, 29, 32], 1, Detect, [nc]] # Detect(P3, P4, P5, P6)
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5
|
|
3
3
|
|
|
4
4
|
# Parameters
|
|
5
|
-
nc: 80
|
|
5
|
+
nc: 80 # number of classes
|
|
6
6
|
scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n'
|
|
7
7
|
# [depth, width, max_channels]
|
|
8
8
|
n: [0.33, 0.25, 1024]
|
|
@@ -14,36 +14,35 @@ scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call
|
|
|
14
14
|
# YOLOv5 v6.0 backbone
|
|
15
15
|
backbone:
|
|
16
16
|
# [from, number, module, args]
|
|
17
|
-
- [-1, 1, Conv, [64, 6, 2, 2]]
|
|
18
|
-
- [-1, 1, Conv, [128, 3, 2]]
|
|
17
|
+
- [-1, 1, Conv, [64, 6, 2, 2]] # 0-P1/2
|
|
18
|
+
- [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
|
|
19
19
|
- [-1, 3, C3, [128]]
|
|
20
|
-
- [-1, 1, Conv, [256, 3, 2]]
|
|
20
|
+
- [-1, 1, Conv, [256, 3, 2]] # 3-P3/8
|
|
21
21
|
- [-1, 6, C3, [256]]
|
|
22
|
-
- [-1, 1, Conv, [512, 3, 2]]
|
|
22
|
+
- [-1, 1, Conv, [512, 3, 2]] # 5-P4/16
|
|
23
23
|
- [-1, 9, C3, [512]]
|
|
24
|
-
- [-1, 1, Conv, [1024, 3, 2]]
|
|
24
|
+
- [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32
|
|
25
25
|
- [-1, 3, C3, [1024]]
|
|
26
|
-
- [-1, 1, SPPF, [1024, 5]]
|
|
27
|
-
|
|
26
|
+
- [-1, 1, SPPF, [1024, 5]] # 9
|
|
28
27
|
|
|
29
28
|
# YOLOv5 v6.0 head
|
|
30
29
|
head:
|
|
31
30
|
- [-1, 1, Conv, [512, 1, 1]]
|
|
32
|
-
- [-1, 1, nn.Upsample, [None, 2,
|
|
33
|
-
- [[-1, 6], 1, Concat, [1]]
|
|
34
|
-
- [-1, 3, C3, [512, False]]
|
|
31
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
32
|
+
- [[-1, 6], 1, Concat, [1]] # cat backbone P4
|
|
33
|
+
- [-1, 3, C3, [512, False]] # 13
|
|
35
34
|
|
|
36
35
|
- [-1, 1, Conv, [256, 1, 1]]
|
|
37
|
-
- [-1, 1, nn.Upsample, [None, 2,
|
|
38
|
-
- [[-1, 4], 1, Concat, [1]]
|
|
39
|
-
- [-1, 3, C3, [256, False]]
|
|
36
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
37
|
+
- [[-1, 4], 1, Concat, [1]] # cat backbone P3
|
|
38
|
+
- [-1, 3, C3, [256, False]] # 17 (P3/8-small)
|
|
40
39
|
|
|
41
40
|
- [-1, 1, Conv, [256, 3, 2]]
|
|
42
|
-
- [[-1, 14], 1, Concat, [1]]
|
|
43
|
-
- [-1, 3, C3, [512, False]]
|
|
41
|
+
- [[-1, 14], 1, Concat, [1]] # cat head P4
|
|
42
|
+
- [-1, 3, C3, [512, False]] # 20 (P4/16-medium)
|
|
44
43
|
|
|
45
44
|
- [-1, 1, Conv, [512, 3, 2]]
|
|
46
|
-
- [[-1, 10], 1, Concat, [1]]
|
|
47
|
-
- [-1, 3, C3, [1024, False]]
|
|
45
|
+
- [[-1, 10], 1, Concat, [1]] # cat head P5
|
|
46
|
+
- [-1, 3, C3, [1024, False]] # 23 (P5/32-large)
|
|
48
47
|
|
|
49
|
-
- [[17, 20, 23], 1, Detect, [nc]]
|
|
48
|
+
- [[17, 20, 23], 1, Detect, [nc]] # Detect(P3, P4, P5)
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
# YOLOv6 object detection model with P3-P5 outputs. For Usage examples see https://docs.ultralytics.com/models/yolov6
|
|
3
3
|
|
|
4
4
|
# Parameters
|
|
5
|
-
nc: 80
|
|
6
|
-
activation: nn.ReLU()
|
|
5
|
+
nc: 80 # number of classes
|
|
6
|
+
activation: nn.ReLU() # (optional) model default activation function
|
|
7
7
|
scales: # model compound scaling constants, i.e. 'model=yolov6n.yaml' will call yolov8.yaml with scale 'n'
|
|
8
8
|
# [depth, width, max_channels]
|
|
9
9
|
n: [0.33, 0.25, 1024]
|
|
@@ -15,39 +15,39 @@ scales: # model compound scaling constants, i.e. 'model=yolov6n.yaml' will call
|
|
|
15
15
|
# YOLOv6-3.0s 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, 6, Conv, [128, 3, 1]]
|
|
21
|
-
- [-1, 1, Conv, [256, 3, 2]]
|
|
21
|
+
- [-1, 1, Conv, [256, 3, 2]] # 3-P3/8
|
|
22
22
|
- [-1, 12, Conv, [256, 3, 1]]
|
|
23
|
-
- [-1, 1, Conv, [512, 3, 2]]
|
|
23
|
+
- [-1, 1, Conv, [512, 3, 2]] # 5-P4/16
|
|
24
24
|
- [-1, 18, Conv, [512, 3, 1]]
|
|
25
|
-
- [-1, 1, Conv, [1024, 3, 2]]
|
|
25
|
+
- [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32
|
|
26
26
|
- [-1, 6, Conv, [1024, 3, 1]]
|
|
27
|
-
- [-1, 1, SPPF, [1024, 5]]
|
|
27
|
+
- [-1, 1, SPPF, [1024, 5]] # 9
|
|
28
28
|
|
|
29
29
|
# YOLOv6-3.0s head
|
|
30
30
|
head:
|
|
31
31
|
- [-1, 1, Conv, [256, 1, 1]]
|
|
32
32
|
- [-1, 1, nn.ConvTranspose2d, [256, 2, 2, 0]]
|
|
33
|
-
- [[-1, 6], 1, Concat, [1]]
|
|
33
|
+
- [[-1, 6], 1, Concat, [1]] # cat backbone P4
|
|
34
34
|
- [-1, 1, Conv, [256, 3, 1]]
|
|
35
|
-
- [-1, 9, Conv, [256, 3, 1]]
|
|
35
|
+
- [-1, 9, Conv, [256, 3, 1]] # 14
|
|
36
36
|
|
|
37
37
|
- [-1, 1, Conv, [128, 1, 1]]
|
|
38
38
|
- [-1, 1, nn.ConvTranspose2d, [128, 2, 2, 0]]
|
|
39
|
-
- [[-1, 4], 1, Concat, [1]]
|
|
39
|
+
- [[-1, 4], 1, Concat, [1]] # cat backbone P3
|
|
40
40
|
- [-1, 1, Conv, [128, 3, 1]]
|
|
41
|
-
- [-1, 9, Conv, [128, 3, 1]]
|
|
41
|
+
- [-1, 9, Conv, [128, 3, 1]] # 19
|
|
42
42
|
|
|
43
43
|
- [-1, 1, Conv, [128, 3, 2]]
|
|
44
|
-
- [[-1, 15], 1, Concat, [1]]
|
|
44
|
+
- [[-1, 15], 1, Concat, [1]] # cat head P4
|
|
45
45
|
- [-1, 1, Conv, [256, 3, 1]]
|
|
46
|
-
- [-1, 9, Conv, [256, 3, 1]]
|
|
46
|
+
- [-1, 9, Conv, [256, 3, 1]] # 23
|
|
47
47
|
|
|
48
48
|
- [-1, 1, Conv, [256, 3, 2]]
|
|
49
|
-
- [[-1, 10], 1, Concat, [1]]
|
|
49
|
+
- [[-1, 10], 1, Concat, [1]] # cat head P5
|
|
50
50
|
- [-1, 1, Conv, [512, 3, 1]]
|
|
51
|
-
- [-1, 9, Conv, [512, 3, 1]]
|
|
51
|
+
- [-1, 9, Conv, [512, 3, 1]] # 27
|
|
52
52
|
|
|
53
|
-
- [[19, 23, 27], 1, Detect, [nc]]
|
|
53
|
+
- [[19, 23, 27], 1, Detect, [nc]] # Detect(P3, P4, P5)
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Ultralytics YOLO 🚀, AGPL-3.0 license
|
|
2
|
+
# YOLOv8-cls image classification model. For Usage examples see https://docs.ultralytics.com/tasks/classify
|
|
3
|
+
|
|
4
|
+
# Parameters
|
|
5
|
+
nc: 1000 # number of classes
|
|
6
|
+
scales: # model compound scaling constants, i.e. 'model=yolov8n-cls.yaml' will call yolov8-cls.yaml with scale 'n'
|
|
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, 1024]
|
|
11
|
+
l: [1.00, 1.00, 1024]
|
|
12
|
+
x: [1.00, 1.25, 1024]
|
|
13
|
+
|
|
14
|
+
# YOLOv8.0n backbone
|
|
15
|
+
backbone:
|
|
16
|
+
# [from, repeats, module, args]
|
|
17
|
+
- [-1, 1, ResNetLayer, [3, 64, 1, True, 1]] # 0-P1/2
|
|
18
|
+
- [-1, 1, ResNetLayer, [64, 64, 1, False, 3]] # 1-P2/4
|
|
19
|
+
- [-1, 1, ResNetLayer, [256, 128, 2, False, 4]] # 2-P3/8
|
|
20
|
+
- [-1, 1, ResNetLayer, [512, 256, 2, False, 23]] # 3-P4/16
|
|
21
|
+
- [-1, 1, ResNetLayer, [1024, 512, 2, False, 3]] # 4-P5/32
|
|
22
|
+
|
|
23
|
+
# YOLOv8.0n head
|
|
24
|
+
head:
|
|
25
|
+
- [-1, 1, Classify, [nc]] # Classify
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Ultralytics YOLO 🚀, AGPL-3.0 license
|
|
2
|
+
# YOLOv8-cls image classification model. For Usage examples see https://docs.ultralytics.com/tasks/classify
|
|
3
|
+
|
|
4
|
+
# Parameters
|
|
5
|
+
nc: 1000 # number of classes
|
|
6
|
+
scales: # model compound scaling constants, i.e. 'model=yolov8n-cls.yaml' will call yolov8-cls.yaml with scale 'n'
|
|
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, 1024]
|
|
11
|
+
l: [1.00, 1.00, 1024]
|
|
12
|
+
x: [1.00, 1.25, 1024]
|
|
13
|
+
|
|
14
|
+
# YOLOv8.0n backbone
|
|
15
|
+
backbone:
|
|
16
|
+
# [from, repeats, module, args]
|
|
17
|
+
- [-1, 1, ResNetLayer, [3, 64, 1, True, 1]] # 0-P1/2
|
|
18
|
+
- [-1, 1, ResNetLayer, [64, 64, 1, False, 3]] # 1-P2/4
|
|
19
|
+
- [-1, 1, ResNetLayer, [256, 128, 2, False, 4]] # 2-P3/8
|
|
20
|
+
- [-1, 1, ResNetLayer, [512, 256, 2, False, 6]] # 3-P4/16
|
|
21
|
+
- [-1, 1, ResNetLayer, [1024, 512, 2, False, 3]] # 4-P5/32
|
|
22
|
+
|
|
23
|
+
# YOLOv8.0n head
|
|
24
|
+
head:
|
|
25
|
+
- [-1, 1, Classify, [nc]] # Classify
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# YOLOv8-cls image classification model. For Usage examples see https://docs.ultralytics.com/tasks/classify
|
|
3
3
|
|
|
4
4
|
# Parameters
|
|
5
|
-
nc: 1000
|
|
5
|
+
nc: 1000 # number of classes
|
|
6
6
|
scales: # model compound scaling constants, i.e. 'model=yolov8n-cls.yaml' will call yolov8-cls.yaml with scale 'n'
|
|
7
7
|
# [depth, width, max_channels]
|
|
8
8
|
n: [0.33, 0.25, 1024]
|
|
@@ -14,16 +14,16 @@ scales: # model compound scaling constants, i.e. 'model=yolov8n-cls.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
26
|
|
|
27
27
|
# YOLOv8.0n head
|
|
28
28
|
head:
|
|
29
|
-
- [-1, 1, Classify, [nc]]
|
|
29
|
+
- [-1, 1, Classify, [nc]] # Classify
|
|
@@ -2,53 +2,53 @@
|
|
|
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] # YOLOv8n-ghost-p2 summary: 491 layers, 2033944 parameters, 2033928 gradients, 13.8 GFLOPs
|
|
9
9
|
s: [0.33, 0.50, 1024] # YOLOv8s-ghost-p2 summary: 491 layers, 5562080 parameters, 5562064 gradients, 25.1 GFLOPs
|
|
10
|
-
m: [0.67, 0.75,
|
|
11
|
-
l: [1.00, 1.00,
|
|
12
|
-
x: [1.00, 1.25,
|
|
10
|
+
m: [0.67, 0.75, 768] # YOLOv8m-ghost-p2 summary: 731 layers, 9031728 parameters, 9031712 gradients, 42.8 GFLOPs
|
|
11
|
+
l: [1.00, 1.00, 512] # YOLOv8l-ghost-p2 summary: 971 layers, 12214448 parameters, 12214432 gradients, 69.1 GFLOPs
|
|
12
|
+
x: [1.00, 1.25, 512] # YOLOv8x-ghost-p2 summary: 971 layers, 18664776 parameters, 18664760 gradients, 103.3 GFLOPs
|
|
13
13
|
|
|
14
14
|
# YOLOv8.0-ghost backbone
|
|
15
15
|
backbone:
|
|
16
16
|
# [from, repeats, module, args]
|
|
17
|
-
- [-1, 1, Conv, [64, 3, 2]]
|
|
18
|
-
- [-1, 1, GhostConv, [128, 3, 2]]
|
|
17
|
+
- [-1, 1, Conv, [64, 3, 2]] # 0-P1/2
|
|
18
|
+
- [-1, 1, GhostConv, [128, 3, 2]] # 1-P2/4
|
|
19
19
|
- [-1, 3, C3Ghost, [128, True]]
|
|
20
|
-
- [-1, 1, GhostConv, [256, 3, 2]]
|
|
20
|
+
- [-1, 1, GhostConv, [256, 3, 2]] # 3-P3/8
|
|
21
21
|
- [-1, 6, C3Ghost, [256, True]]
|
|
22
|
-
- [-1, 1, GhostConv, [512, 3, 2]]
|
|
22
|
+
- [-1, 1, GhostConv, [512, 3, 2]] # 5-P4/16
|
|
23
23
|
- [-1, 6, C3Ghost, [512, True]]
|
|
24
|
-
- [-1, 1, GhostConv, [1024, 3, 2]]
|
|
24
|
+
- [-1, 1, GhostConv, [1024, 3, 2]] # 7-P5/32
|
|
25
25
|
- [-1, 3, C3Ghost, [1024, True]]
|
|
26
|
-
- [-1, 1, SPPF, [1024, 5]]
|
|
26
|
+
- [-1, 1, SPPF, [1024, 5]] # 9
|
|
27
27
|
|
|
28
28
|
# YOLOv8.0-ghost-p2 head
|
|
29
29
|
head:
|
|
30
|
-
- [-1, 1, nn.Upsample, [None, 2,
|
|
31
|
-
- [[-1, 6], 1, Concat, [1]]
|
|
32
|
-
- [-1, 3, C3Ghost, [512]]
|
|
30
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
31
|
+
- [[-1, 6], 1, Concat, [1]] # cat backbone P4
|
|
32
|
+
- [-1, 3, C3Ghost, [512]] # 12
|
|
33
33
|
|
|
34
|
-
- [-1, 1, nn.Upsample, [None, 2,
|
|
35
|
-
- [[-1, 4], 1, Concat, [1]]
|
|
36
|
-
- [-1, 3, C3Ghost, [256]]
|
|
34
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
35
|
+
- [[-1, 4], 1, Concat, [1]] # cat backbone P3
|
|
36
|
+
- [-1, 3, C3Ghost, [256]] # 15 (P3/8-small)
|
|
37
37
|
|
|
38
|
-
- [-1, 1, nn.Upsample, [None, 2,
|
|
39
|
-
- [[-1, 2], 1, Concat, [1]]
|
|
40
|
-
- [-1, 3, C3Ghost, [128]]
|
|
38
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
39
|
+
- [[-1, 2], 1, Concat, [1]] # cat backbone P2
|
|
40
|
+
- [-1, 3, C3Ghost, [128]] # 18 (P2/4-xsmall)
|
|
41
41
|
|
|
42
42
|
- [-1, 1, GhostConv, [128, 3, 2]]
|
|
43
|
-
- [[-1, 15], 1, Concat, [1]]
|
|
44
|
-
- [-1, 3, C3Ghost, [256]]
|
|
43
|
+
- [[-1, 15], 1, Concat, [1]] # cat head P3
|
|
44
|
+
- [-1, 3, C3Ghost, [256]] # 21 (P3/8-small)
|
|
45
45
|
|
|
46
46
|
- [-1, 1, GhostConv, [256, 3, 2]]
|
|
47
|
-
- [[-1, 12], 1, Concat, [1]]
|
|
48
|
-
- [-1, 3, C3Ghost, [512]]
|
|
47
|
+
- [[-1, 12], 1, Concat, [1]] # cat head P4
|
|
48
|
+
- [-1, 3, C3Ghost, [512]] # 24 (P4/16-medium)
|
|
49
49
|
|
|
50
50
|
- [-1, 1, GhostConv, [512, 3, 2]]
|
|
51
|
-
- [[-1, 9], 1, Concat, [1]]
|
|
52
|
-
- [-1, 3, C3Ghost, [1024]]
|
|
51
|
+
- [[-1, 9], 1, Concat, [1]] # cat head P5
|
|
52
|
+
- [-1, 3, C3Ghost, [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,55 +2,55 @@
|
|
|
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] # YOLOv8n-ghost-p6 summary: 529 layers, 2901100 parameters, 2901084 gradients, 5.8 GFLOPs
|
|
9
9
|
s: [0.33, 0.50, 1024] # YOLOv8s-ghost-p6 summary: 529 layers, 9520008 parameters, 9519992 gradients, 16.4 GFLOPs
|
|
10
|
-
m: [0.67, 0.75, 768]
|
|
11
|
-
l: [1.00, 1.00, 512]
|
|
12
|
-
x: [1.00, 1.25, 512]
|
|
10
|
+
m: [0.67, 0.75, 768] # YOLOv8m-ghost-p6 summary: 789 layers, 18002904 parameters, 18002888 gradients, 34.4 GFLOPs
|
|
11
|
+
l: [1.00, 1.00, 512] # YOLOv8l-ghost-p6 summary: 1049 layers, 21227584 parameters, 21227568 gradients, 55.3 GFLOPs
|
|
12
|
+
x: [1.00, 1.25, 512] # YOLOv8x-ghost-p6 summary: 1049 layers, 33057852 parameters, 33057836 gradients, 85.7 GFLOPs
|
|
13
13
|
|
|
14
14
|
# YOLOv8.0-ghost backbone
|
|
15
15
|
backbone:
|
|
16
16
|
# [from, repeats, module, args]
|
|
17
|
-
- [-1, 1, Conv, [64, 3, 2]]
|
|
18
|
-
- [-1, 1, GhostConv, [128, 3, 2]]
|
|
17
|
+
- [-1, 1, Conv, [64, 3, 2]] # 0-P1/2
|
|
18
|
+
- [-1, 1, GhostConv, [128, 3, 2]] # 1-P2/4
|
|
19
19
|
- [-1, 3, C3Ghost, [128, True]]
|
|
20
|
-
- [-1, 1, GhostConv, [256, 3, 2]]
|
|
20
|
+
- [-1, 1, GhostConv, [256, 3, 2]] # 3-P3/8
|
|
21
21
|
- [-1, 6, C3Ghost, [256, True]]
|
|
22
|
-
- [-1, 1, GhostConv, [512, 3, 2]]
|
|
22
|
+
- [-1, 1, GhostConv, [512, 3, 2]] # 5-P4/16
|
|
23
23
|
- [-1, 6, C3Ghost, [512, True]]
|
|
24
|
-
- [-1, 1, GhostConv, [768, 3, 2]]
|
|
24
|
+
- [-1, 1, GhostConv, [768, 3, 2]] # 7-P5/32
|
|
25
25
|
- [-1, 3, C3Ghost, [768, True]]
|
|
26
|
-
- [-1, 1, GhostConv, [1024, 3, 2]]
|
|
26
|
+
- [-1, 1, GhostConv, [1024, 3, 2]] # 9-P6/64
|
|
27
27
|
- [-1, 3, C3Ghost, [1024, True]]
|
|
28
|
-
- [-1, 1, SPPF, [1024, 5]]
|
|
28
|
+
- [-1, 1, SPPF, [1024, 5]] # 11
|
|
29
29
|
|
|
30
30
|
# YOLOv8.0-ghost-p6 head
|
|
31
31
|
head:
|
|
32
|
-
- [-1, 1, nn.Upsample, [None, 2,
|
|
33
|
-
- [[-1, 8], 1, Concat, [1]]
|
|
34
|
-
- [-1, 3, C3Ghost, [768]]
|
|
32
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
33
|
+
- [[-1, 8], 1, Concat, [1]] # cat backbone P5
|
|
34
|
+
- [-1, 3, C3Ghost, [768]] # 14
|
|
35
35
|
|
|
36
|
-
- [-1, 1, nn.Upsample, [None, 2,
|
|
37
|
-
- [[-1, 6], 1, Concat, [1]]
|
|
38
|
-
- [-1, 3, C3Ghost, [512]]
|
|
36
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
37
|
+
- [[-1, 6], 1, Concat, [1]] # cat backbone P4
|
|
38
|
+
- [-1, 3, C3Ghost, [512]] # 17
|
|
39
39
|
|
|
40
|
-
- [-1, 1, nn.Upsample, [None, 2,
|
|
41
|
-
- [[-1, 4], 1, Concat, [1]]
|
|
42
|
-
- [-1, 3, C3Ghost, [256]]
|
|
40
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
41
|
+
- [[-1, 4], 1, Concat, [1]] # cat backbone P3
|
|
42
|
+
- [-1, 3, C3Ghost, [256]] # 20 (P3/8-small)
|
|
43
43
|
|
|
44
44
|
- [-1, 1, GhostConv, [256, 3, 2]]
|
|
45
|
-
- [[-1, 17], 1, Concat, [1]]
|
|
46
|
-
- [-1, 3, C3Ghost, [512]]
|
|
45
|
+
- [[-1, 17], 1, Concat, [1]] # cat head P4
|
|
46
|
+
- [-1, 3, C3Ghost, [512]] # 23 (P4/16-medium)
|
|
47
47
|
|
|
48
48
|
- [-1, 1, GhostConv, [512, 3, 2]]
|
|
49
|
-
- [[-1, 14], 1, Concat, [1]]
|
|
50
|
-
- [-1, 3, C3Ghost, [768]]
|
|
49
|
+
- [[-1, 14], 1, Concat, [1]] # cat head P5
|
|
50
|
+
- [-1, 3, C3Ghost, [768]] # 26 (P5/32-large)
|
|
51
51
|
|
|
52
52
|
- [-1, 1, GhostConv, [768, 3, 2]]
|
|
53
|
-
- [[-1, 11], 1, Concat, [1]]
|
|
54
|
-
- [-1, 3, C3Ghost, [1024]]
|
|
53
|
+
- [[-1, 11], 1, Concat, [1]] # cat head P6
|
|
54
|
+
- [-1, 3, C3Ghost, [1024]] # 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)
|
|
@@ -3,45 +3,45 @@
|
|
|
3
3
|
# Employs Ghost convolutions and modules proposed in Huawei's GhostNet in https://arxiv.org/abs/1911.11907v2
|
|
4
4
|
|
|
5
5
|
# Parameters
|
|
6
|
-
nc: 80
|
|
6
|
+
nc: 80 # number of classes
|
|
7
7
|
scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n'
|
|
8
8
|
# [depth, width, max_channels]
|
|
9
|
-
n: [0.33, 0.25, 1024]
|
|
10
|
-
s: [0.33, 0.50, 1024]
|
|
11
|
-
m: [0.67, 0.75, 768]
|
|
12
|
-
l: [1.00, 1.00, 512]
|
|
13
|
-
x: [1.00, 1.25, 512]
|
|
9
|
+
n: [0.33, 0.25, 1024] # YOLOv8n-ghost summary: 403 layers, 1865316 parameters, 1865300 gradients, 5.8 GFLOPs
|
|
10
|
+
s: [0.33, 0.50, 1024] # YOLOv8s-ghost summary: 403 layers, 5960072 parameters, 5960056 gradients, 16.4 GFLOPs
|
|
11
|
+
m: [0.67, 0.75, 768] # YOLOv8m-ghost summary: 603 layers, 10336312 parameters, 10336296 gradients, 32.7 GFLOPs
|
|
12
|
+
l: [1.00, 1.00, 512] # YOLOv8l-ghost summary: 803 layers, 14277872 parameters, 14277856 gradients, 53.7 GFLOPs
|
|
13
|
+
x: [1.00, 1.25, 512] # YOLOv8x-ghost summary: 803 layers, 22229308 parameters, 22229292 gradients, 83.3 GFLOPs
|
|
14
14
|
|
|
15
15
|
# YOLOv8.0n-ghost backbone
|
|
16
16
|
backbone:
|
|
17
17
|
# [from, repeats, module, args]
|
|
18
|
-
- [-1, 1, Conv, [64, 3, 2]]
|
|
19
|
-
- [-1, 1, GhostConv, [128, 3, 2]]
|
|
18
|
+
- [-1, 1, Conv, [64, 3, 2]] # 0-P1/2
|
|
19
|
+
- [-1, 1, GhostConv, [128, 3, 2]] # 1-P2/4
|
|
20
20
|
- [-1, 3, C3Ghost, [128, True]]
|
|
21
|
-
- [-1, 1, GhostConv, [256, 3, 2]]
|
|
21
|
+
- [-1, 1, GhostConv, [256, 3, 2]] # 3-P3/8
|
|
22
22
|
- [-1, 6, C3Ghost, [256, True]]
|
|
23
|
-
- [-1, 1, GhostConv, [512, 3, 2]]
|
|
23
|
+
- [-1, 1, GhostConv, [512, 3, 2]] # 5-P4/16
|
|
24
24
|
- [-1, 6, C3Ghost, [512, True]]
|
|
25
|
-
- [-1, 1, GhostConv, [1024, 3, 2]]
|
|
25
|
+
- [-1, 1, GhostConv, [1024, 3, 2]] # 7-P5/32
|
|
26
26
|
- [-1, 3, C3Ghost, [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, C3Ghost, [512]]
|
|
31
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
32
|
+
- [[-1, 6], 1, Concat, [1]] # cat backbone P4
|
|
33
|
+
- [-1, 3, C3Ghost, [512]] # 12
|
|
34
34
|
|
|
35
|
-
- [-1, 1, nn.Upsample, [None, 2,
|
|
36
|
-
- [[-1, 4], 1, Concat, [1]]
|
|
37
|
-
- [-1, 3, C3Ghost, [256]]
|
|
35
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
36
|
+
- [[-1, 4], 1, Concat, [1]] # cat backbone P3
|
|
37
|
+
- [-1, 3, C3Ghost, [256]] # 15 (P3/8-small)
|
|
38
38
|
|
|
39
39
|
- [-1, 1, GhostConv, [256, 3, 2]]
|
|
40
|
-
- [[-1, 12], 1, Concat, [1]]
|
|
41
|
-
- [-1, 3, C3Ghost, [512]]
|
|
40
|
+
- [[-1, 12], 1, Concat, [1]] # cat head P4
|
|
41
|
+
- [-1, 3, C3Ghost, [512]] # 18 (P4/16-medium)
|
|
42
42
|
|
|
43
43
|
- [-1, 1, GhostConv, [512, 3, 2]]
|
|
44
|
-
- [[-1, 9], 1, Concat, [1]]
|
|
45
|
-
- [-1, 3, C3Ghost, [1024]]
|
|
44
|
+
- [[-1, 9], 1, Concat, [1]] # cat head P5
|
|
45
|
+
- [-1, 3, C3Ghost, [1024]] # 21 (P5/32-large)
|
|
46
46
|
|
|
47
|
-
- [[15, 18, 21], 1, Detect, [nc]]
|
|
47
|
+
- [[15, 18, 21], 1, Detect, [nc]] # Detect(P3, P4, P5)
|