ultralytics 8.1.1__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.

Files changed (105) hide show
  1. ultralytics/__init__.py +1 -1
  2. ultralytics/cfg/__init__.py +1 -1
  3. ultralytics/cfg/datasets/Argoverse.yaml +5 -7
  4. ultralytics/cfg/datasets/DOTAv1.5.yaml +4 -4
  5. ultralytics/cfg/datasets/DOTAv1.yaml +4 -4
  6. ultralytics/cfg/datasets/GlobalWheat2020.yaml +2 -4
  7. ultralytics/cfg/datasets/ImageNet.yaml +4 -6
  8. ultralytics/cfg/datasets/Objects365.yaml +3 -5
  9. ultralytics/cfg/datasets/SKU-110K.yaml +4 -6
  10. ultralytics/cfg/datasets/VOC.yaml +0 -2
  11. ultralytics/cfg/datasets/VisDrone.yaml +4 -6
  12. ultralytics/cfg/datasets/coco-pose.yaml +6 -7
  13. ultralytics/cfg/datasets/coco.yaml +5 -7
  14. ultralytics/cfg/datasets/coco128-seg.yaml +4 -6
  15. ultralytics/cfg/datasets/coco128.yaml +4 -6
  16. ultralytics/cfg/datasets/coco8-pose.yaml +5 -6
  17. ultralytics/cfg/datasets/coco8-seg.yaml +4 -6
  18. ultralytics/cfg/datasets/coco8.yaml +4 -6
  19. ultralytics/cfg/datasets/dota8.yaml +3 -3
  20. ultralytics/cfg/datasets/open-images-v7.yaml +4 -6
  21. ultralytics/cfg/datasets/tiger-pose.yaml +4 -5
  22. ultralytics/cfg/datasets/xView.yaml +3 -5
  23. ultralytics/cfg/default.yaml +103 -103
  24. ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +27 -27
  25. ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +23 -23
  26. ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +23 -23
  27. ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +27 -27
  28. ultralytics/cfg/models/v3/yolov3-spp.yaml +32 -34
  29. ultralytics/cfg/models/v3/yolov3-tiny.yaml +24 -26
  30. ultralytics/cfg/models/v3/yolov3.yaml +32 -34
  31. ultralytics/cfg/models/v5/yolov5-p6.yaml +41 -43
  32. ultralytics/cfg/models/v5/yolov5.yaml +26 -28
  33. ultralytics/cfg/models/v6/yolov6.yaml +17 -17
  34. ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +25 -0
  35. ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +25 -0
  36. ultralytics/cfg/models/v8/yolov8-cls.yaml +7 -7
  37. ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +26 -26
  38. ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +27 -27
  39. ultralytics/cfg/models/v8/yolov8-ghost.yaml +23 -23
  40. ultralytics/cfg/models/v8/yolov8-obb.yaml +23 -23
  41. ultralytics/cfg/models/v8/yolov8-p2.yaml +23 -23
  42. ultralytics/cfg/models/v8/yolov8-p6.yaml +24 -24
  43. ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +25 -25
  44. ultralytics/cfg/models/v8/yolov8-pose.yaml +19 -19
  45. ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +23 -23
  46. ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +24 -24
  47. ultralytics/cfg/models/v8/yolov8-seg.yaml +18 -18
  48. ultralytics/cfg/models/v8/yolov8.yaml +23 -23
  49. ultralytics/cfg/trackers/botsort.yaml +7 -7
  50. ultralytics/cfg/trackers/bytetrack.yaml +6 -6
  51. ultralytics/data/annotator.py +1 -1
  52. ultralytics/data/augment.py +1 -2
  53. ultralytics/data/base.py +0 -1
  54. ultralytics/data/build.py +1 -2
  55. ultralytics/data/dataset.py +0 -1
  56. ultralytics/data/explorer/explorer.py +11 -12
  57. ultralytics/data/explorer/utils.py +3 -3
  58. ultralytics/data/split_dota.py +15 -23
  59. ultralytics/engine/model.py +12 -11
  60. ultralytics/engine/predictor.py +1 -1
  61. ultralytics/engine/trainer.py +1 -4
  62. ultralytics/hub/__init__.py +5 -3
  63. ultralytics/hub/auth.py +1 -2
  64. ultralytics/hub/session.py +14 -6
  65. ultralytics/hub/utils.py +4 -0
  66. ultralytics/models/fastsam/model.py +0 -1
  67. ultralytics/models/nas/model.py +0 -1
  68. ultralytics/models/rtdetr/train.py +0 -1
  69. ultralytics/models/rtdetr/val.py +1 -2
  70. ultralytics/models/sam/build.py +0 -1
  71. ultralytics/models/sam/model.py +0 -1
  72. ultralytics/models/sam/modules/encoders.py +1 -6
  73. ultralytics/models/sam/predict.py +0 -1
  74. ultralytics/models/utils/loss.py +0 -1
  75. ultralytics/models/yolo/detect/val.py +1 -2
  76. ultralytics/models/yolo/obb/val.py +14 -39
  77. ultralytics/nn/modules/head.py +5 -6
  78. ultralytics/nn/modules/utils.py +1 -1
  79. ultralytics/nn/tasks.py +1 -1
  80. ultralytics/solutions/ai_gym.py +9 -1
  81. ultralytics/solutions/distance_calculation.py +4 -8
  82. ultralytics/solutions/heatmap.py +16 -21
  83. ultralytics/solutions/object_counter.py +30 -29
  84. ultralytics/solutions/speed_estimation.py +19 -24
  85. ultralytics/trackers/track.py +0 -1
  86. ultralytics/trackers/utils/gmc.py +1 -1
  87. ultralytics/trackers/utils/matching.py +1 -3
  88. ultralytics/utils/benchmarks.py +2 -7
  89. ultralytics/utils/callbacks/base.py +1 -0
  90. ultralytics/utils/callbacks/comet.py +4 -22
  91. ultralytics/utils/callbacks/hub.py +1 -3
  92. ultralytics/utils/callbacks/neptune.py +1 -3
  93. ultralytics/utils/callbacks/tensorboard.py +2 -1
  94. ultralytics/utils/checks.py +2 -2
  95. ultralytics/utils/loss.py +3 -6
  96. ultralytics/utils/ops.py +8 -9
  97. ultralytics/utils/plotting.py +13 -15
  98. ultralytics/utils/tal.py +1 -2
  99. {ultralytics-8.1.1.dist-info → ultralytics-8.1.3.dist-info}/METADATA +15 -15
  100. ultralytics-8.1.3.dist-info/RECORD +190 -0
  101. ultralytics-8.1.1.dist-info/RECORD +0 -188
  102. {ultralytics-8.1.1.dist-info → ultralytics-8.1.3.dist-info}/LICENSE +0 -0
  103. {ultralytics-8.1.1.dist-info → ultralytics-8.1.3.dist-info}/WHEEL +0 -0
  104. {ultralytics-8.1.1.dist-info → ultralytics-8.1.3.dist-info}/entry_points.txt +0 -0
  105. {ultralytics-8.1.1.dist-info → ultralytics-8.1.3.dist-info}/top_level.txt +0 -0
@@ -2,38 +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 # number of classes
6
- depth_multiple: 1.0 # model depth multiple
7
- width_multiple: 1.0 # layer channel multiple
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]], # 0
13
- [-1, 1, nn.MaxPool2d, [2, 2, 0]], # 1-P1/2
14
- [-1, 1, Conv, [32, 3, 1]],
15
- [-1, 1, nn.MaxPool2d, [2, 2, 0]], # 3-P2/4
16
- [-1, 1, Conv, [64, 3, 1]],
17
- [-1, 1, nn.MaxPool2d, [2, 2, 0]], # 5-P3/8
18
- [-1, 1, Conv, [128, 3, 1]],
19
- [-1, 1, nn.MaxPool2d, [2, 2, 0]], # 7-P4/16
20
- [-1, 1, Conv, [256, 3, 1]],
21
- [-1, 1, nn.MaxPool2d, [2, 2, 0]], # 9-P5/32
22
- [-1, 1, Conv, [512, 3, 1]],
23
- [-1, 1, nn.ZeroPad2d, [[0, 1, 0, 1]]], # 11
24
- [-1, 1, nn.MaxPool2d, [2, 1, 0]], # 12
25
- ]
12
+ - [-1, 1, Conv, [16, 3, 1]] # 0
13
+ - [-1, 1, nn.MaxPool2d, [2, 2, 0]] # 1-P1/2
14
+ - [-1, 1, Conv, [32, 3, 1]]
15
+ - [-1, 1, nn.MaxPool2d, [2, 2, 0]] # 3-P2/4
16
+ - [-1, 1, Conv, [64, 3, 1]]
17
+ - [-1, 1, nn.MaxPool2d, [2, 2, 0]] # 5-P3/8
18
+ - [-1, 1, Conv, [128, 3, 1]]
19
+ - [-1, 1, nn.MaxPool2d, [2, 2, 0]] # 7-P4/16
20
+ - [-1, 1, Conv, [256, 3, 1]]
21
+ - [-1, 1, nn.MaxPool2d, [2, 2, 0]] # 9-P5/32
22
+ - [-1, 1, Conv, [512, 3, 1]]
23
+ - [-1, 1, nn.ZeroPad2d, [[0, 1, 0, 1]]] # 11
24
+ - [-1, 1, nn.MaxPool2d, [2, 1, 0]] # 12
26
25
 
27
26
  # YOLOv3-tiny head
28
27
  head:
29
- [[-1, 1, Conv, [1024, 3, 1]],
30
- [-1, 1, Conv, [256, 1, 1]],
31
- [-1, 1, Conv, [512, 3, 1]], # 15 (P5/32-large)
28
+ - [-1, 1, Conv, [1024, 3, 1]]
29
+ - [-1, 1, Conv, [256, 1, 1]]
30
+ - [-1, 1, Conv, [512, 3, 1]] # 15 (P5/32-large)
32
31
 
33
- [-2, 1, Conv, [128, 1, 1]],
34
- [-1, 1, nn.Upsample, [None, 2, 'nearest']],
35
- [[-1, 8], 1, Concat, [1]], # cat backbone P4
36
- [-1, 1, Conv, [256, 3, 1]], # 19 (P4/16-medium)
32
+ - [-2, 1, Conv, [128, 1, 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)
37
36
 
38
- [[19, 15], 1, Detect, [nc]], # Detect(P4, P5)
39
- ]
37
+ - [[19, 15], 1, Detect, [nc]] # Detect(P4, P5)
@@ -2,47 +2,45 @@
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 # number of classes
6
- depth_multiple: 1.0 # model depth multiple
7
- width_multiple: 1.0 # layer channel multiple
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]], # 0
13
- [-1, 1, Conv, [64, 3, 2]], # 1-P1/2
14
- [-1, 1, Bottleneck, [64]],
15
- [-1, 1, Conv, [128, 3, 2]], # 3-P2/4
16
- [-1, 2, Bottleneck, [128]],
17
- [-1, 1, Conv, [256, 3, 2]], # 5-P3/8
18
- [-1, 8, Bottleneck, [256]],
19
- [-1, 1, Conv, [512, 3, 2]], # 7-P4/16
20
- [-1, 8, Bottleneck, [512]],
21
- [-1, 1, Conv, [1024, 3, 2]], # 9-P5/32
22
- [-1, 4, Bottleneck, [1024]], # 10
23
- ]
12
+ - [-1, 1, Conv, [32, 3, 1]] # 0
13
+ - [-1, 1, Conv, [64, 3, 2]] # 1-P1/2
14
+ - [-1, 1, Bottleneck, [64]]
15
+ - [-1, 1, Conv, [128, 3, 2]] # 3-P2/4
16
+ - [-1, 2, Bottleneck, [128]]
17
+ - [-1, 1, Conv, [256, 3, 2]] # 5-P3/8
18
+ - [-1, 8, Bottleneck, [256]]
19
+ - [-1, 1, Conv, [512, 3, 2]] # 7-P4/16
20
+ - [-1, 8, Bottleneck, [512]]
21
+ - [-1, 1, Conv, [1024, 3, 2]] # 9-P5/32
22
+ - [-1, 4, Bottleneck, [1024]] # 10
24
23
 
25
24
  # YOLOv3 head
26
25
  head:
27
- [[-1, 1, Bottleneck, [1024, False]],
28
- [-1, 1, Conv, [512, 1, 1]],
29
- [-1, 1, Conv, [1024, 3, 1]],
30
- [-1, 1, Conv, [512, 1, 1]],
31
- [-1, 1, Conv, [1024, 3, 1]], # 15 (P5/32-large)
26
+ - [-1, 1, Bottleneck, [1024, False]]
27
+ - [-1, 1, Conv, [512, 1, 1]]
28
+ - [-1, 1, Conv, [1024, 3, 1]]
29
+ - [-1, 1, Conv, [512, 1, 1]]
30
+ - [-1, 1, Conv, [1024, 3, 1]] # 15 (P5/32-large)
32
31
 
33
- [-2, 1, Conv, [256, 1, 1]],
34
- [-1, 1, nn.Upsample, [None, 2, 'nearest']],
35
- [[-1, 8], 1, Concat, [1]], # cat backbone P4
36
- [-1, 1, Bottleneck, [512, False]],
37
- [-1, 1, Bottleneck, [512, False]],
38
- [-1, 1, Conv, [256, 1, 1]],
39
- [-1, 1, Conv, [512, 3, 1]], # 22 (P4/16-medium)
32
+ - [-2, 1, Conv, [256, 1, 1]]
33
+ - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
34
+ - [[-1, 8], 1, Concat, [1]] # cat backbone P4
35
+ - [-1, 1, Bottleneck, [512, False]]
36
+ - [-1, 1, Bottleneck, [512, False]]
37
+ - [-1, 1, Conv, [256, 1, 1]]
38
+ - [-1, 1, Conv, [512, 3, 1]] # 22 (P4/16-medium)
40
39
 
41
- [-2, 1, Conv, [128, 1, 1]],
42
- [-1, 1, nn.Upsample, [None, 2, 'nearest']],
43
- [[-1, 6], 1, Concat, [1]], # cat backbone P3
44
- [-1, 1, Bottleneck, [256, False]],
45
- [-1, 2, Bottleneck, [256, False]], # 27 (P3/8-small)
40
+ - [-2, 1, Conv, [128, 1, 1]]
41
+ - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
42
+ - [[-1, 6], 1, Concat, [1]] # cat backbone P3
43
+ - [-1, 1, Bottleneck, [256, False]]
44
+ - [-1, 2, Bottleneck, [256, False]] # 27 (P3/8-small)
46
45
 
47
- [[27, 22, 15], 1, Detect, [nc]], # Detect(P3, P4, P5)
48
- ]
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 # number of classes
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,48 +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]], # 0-P1/2
18
- [-1, 1, Conv, [128, 3, 2]], # 1-P2/4
19
- [-1, 3, C3, [128]],
20
- [-1, 1, Conv, [256, 3, 2]], # 3-P3/8
21
- [-1, 6, C3, [256]],
22
- [-1, 1, Conv, [512, 3, 2]], # 5-P4/16
23
- [-1, 9, C3, [512]],
24
- [-1, 1, Conv, [768, 3, 2]], # 7-P5/32
25
- [-1, 3, C3, [768]],
26
- [-1, 1, Conv, [1024, 3, 2]], # 9-P6/64
27
- [-1, 3, C3, [1024]],
28
- [-1, 1, SPPF, [1024, 5]], # 11
29
- ]
17
+ - [-1, 1, Conv, [64, 6, 2, 2]] # 0-P1/2
18
+ - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
19
+ - [-1, 3, C3, [128]]
20
+ - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8
21
+ - [-1, 6, C3, [256]]
22
+ - [-1, 1, Conv, [512, 3, 2]] # 5-P4/16
23
+ - [-1, 9, C3, [512]]
24
+ - [-1, 1, Conv, [768, 3, 2]] # 7-P5/32
25
+ - [-1, 3, C3, [768]]
26
+ - [-1, 1, Conv, [1024, 3, 2]] # 9-P6/64
27
+ - [-1, 3, C3, [1024]]
28
+ - [-1, 1, SPPF, [1024, 5]] # 11
30
29
 
31
30
  # YOLOv5 v6.0 head
32
31
  head:
33
- [[-1, 1, Conv, [768, 1, 1]],
34
- [-1, 1, nn.Upsample, [None, 2, 'nearest']],
35
- [[-1, 8], 1, Concat, [1]], # cat backbone P5
36
- [-1, 3, C3, [768, False]], # 15
37
-
38
- [-1, 1, Conv, [512, 1, 1]],
39
- [-1, 1, nn.Upsample, [None, 2, 'nearest']],
40
- [[-1, 6], 1, Concat, [1]], # cat backbone P4
41
- [-1, 3, C3, [512, False]], # 19
42
-
43
- [-1, 1, Conv, [256, 1, 1]],
44
- [-1, 1, nn.Upsample, [None, 2, 'nearest']],
45
- [[-1, 4], 1, Concat, [1]], # cat backbone P3
46
- [-1, 3, C3, [256, False]], # 23 (P3/8-small)
47
-
48
- [-1, 1, Conv, [256, 3, 2]],
49
- [[-1, 20], 1, Concat, [1]], # cat head P4
50
- [-1, 3, C3, [512, False]], # 26 (P4/16-medium)
51
-
52
- [-1, 1, Conv, [512, 3, 2]],
53
- [[-1, 16], 1, Concat, [1]], # cat head P5
54
- [-1, 3, C3, [768, False]], # 29 (P5/32-large)
55
-
56
- [-1, 1, Conv, [768, 3, 2]],
57
- [[-1, 12], 1, Concat, [1]], # cat head P6
58
- [-1, 3, C3, [1024, False]], # 32 (P6/64-xlarge)
59
-
60
- [[23, 26, 29, 32], 1, Detect, [nc]], # Detect(P3, P4, P5, P6)
61
- ]
32
+ - [-1, 1, Conv, [768, 1, 1]]
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
+
37
+ - [-1, 1, Conv, [512, 1, 1]]
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
+
42
+ - [-1, 1, Conv, [256, 1, 1]]
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
+
47
+ - [-1, 1, Conv, [256, 3, 2]]
48
+ - [[-1, 20], 1, Concat, [1]] # cat head P4
49
+ - [-1, 3, C3, [512, False]] # 26 (P4/16-medium)
50
+
51
+ - [-1, 1, Conv, [512, 3, 2]]
52
+ - [[-1, 16], 1, Concat, [1]] # cat head P5
53
+ - [-1, 3, C3, [768, False]] # 29 (P5/32-large)
54
+
55
+ - [-1, 1, Conv, [768, 3, 2]]
56
+ - [[-1, 12], 1, Concat, [1]] # cat head P6
57
+ - [-1, 3, C3, [1024, False]] # 32 (P6/64-xlarge)
58
+
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 # number of classes
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,37 +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]], # 0-P1/2
18
- [-1, 1, Conv, [128, 3, 2]], # 1-P2/4
19
- [-1, 3, C3, [128]],
20
- [-1, 1, Conv, [256, 3, 2]], # 3-P3/8
21
- [-1, 6, C3, [256]],
22
- [-1, 1, Conv, [512, 3, 2]], # 5-P4/16
23
- [-1, 9, C3, [512]],
24
- [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32
25
- [-1, 3, C3, [1024]],
26
- [-1, 1, SPPF, [1024, 5]], # 9
27
- ]
17
+ - [-1, 1, Conv, [64, 6, 2, 2]] # 0-P1/2
18
+ - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
19
+ - [-1, 3, C3, [128]]
20
+ - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8
21
+ - [-1, 6, C3, [256]]
22
+ - [-1, 1, Conv, [512, 3, 2]] # 5-P4/16
23
+ - [-1, 9, C3, [512]]
24
+ - [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32
25
+ - [-1, 3, C3, [1024]]
26
+ - [-1, 1, SPPF, [1024, 5]] # 9
28
27
 
29
28
  # YOLOv5 v6.0 head
30
29
  head:
31
- [[-1, 1, Conv, [512, 1, 1]],
32
- [-1, 1, nn.Upsample, [None, 2, 'nearest']],
33
- [[-1, 6], 1, Concat, [1]], # cat backbone P4
34
- [-1, 3, C3, [512, False]], # 13
30
+ - [-1, 1, Conv, [512, 1, 1]]
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
- [-1, 1, Conv, [256, 1, 1]],
37
- [-1, 1, nn.Upsample, [None, 2, 'nearest']],
38
- [[-1, 4], 1, Concat, [1]], # cat backbone P3
39
- [-1, 3, C3, [256, False]], # 17 (P3/8-small)
35
+ - [-1, 1, Conv, [256, 1, 1]]
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
- [-1, 1, Conv, [256, 3, 2]],
42
- [[-1, 14], 1, Concat, [1]], # cat head P4
43
- [-1, 3, C3, [512, False]], # 20 (P4/16-medium)
40
+ - [-1, 1, Conv, [256, 3, 2]]
41
+ - [[-1, 14], 1, Concat, [1]] # cat head P4
42
+ - [-1, 3, C3, [512, False]] # 20 (P4/16-medium)
44
43
 
45
- [-1, 1, Conv, [512, 3, 2]],
46
- [[-1, 10], 1, Concat, [1]], # cat head P5
47
- [-1, 3, C3, [1024, False]], # 23 (P5/32-large)
44
+ - [-1, 1, Conv, [512, 3, 2]]
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]], # Detect(P3, P4, P5)
50
- ]
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 # number of classes
6
- activation: nn.ReLU() # (optional) model default activation function
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]] # 0-P1/2
19
- - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
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]] # 3-P3/8
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]] # 5-P4/16
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]] # 7-P5/32
25
+ - [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32
26
26
  - [-1, 6, Conv, [1024, 3, 1]]
27
- - [-1, 1, SPPF, [1024, 5]] # 9
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]] # cat backbone P4
33
+ - [[-1, 6], 1, Concat, [1]] # cat backbone P4
34
34
  - [-1, 1, Conv, [256, 3, 1]]
35
- - [-1, 9, Conv, [256, 3, 1]] # 14
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]] # cat backbone P3
39
+ - [[-1, 4], 1, Concat, [1]] # cat backbone P3
40
40
  - [-1, 1, Conv, [128, 3, 1]]
41
- - [-1, 9, Conv, [128, 3, 1]] # 19
41
+ - [-1, 9, Conv, [128, 3, 1]] # 19
42
42
 
43
43
  - [-1, 1, Conv, [128, 3, 2]]
44
- - [[-1, 15], 1, Concat, [1]] # cat head P4
44
+ - [[-1, 15], 1, Concat, [1]] # cat head P4
45
45
  - [-1, 1, Conv, [256, 3, 1]]
46
- - [-1, 9, Conv, [256, 3, 1]] # 23
46
+ - [-1, 9, Conv, [256, 3, 1]] # 23
47
47
 
48
48
  - [-1, 1, Conv, [256, 3, 2]]
49
- - [[-1, 10], 1, Concat, [1]] # cat head P5
49
+ - [[-1, 10], 1, Concat, [1]] # cat head P5
50
50
  - [-1, 1, Conv, [512, 3, 1]]
51
- - [-1, 9, Conv, [512, 3, 1]] # 27
51
+ - [-1, 9, Conv, [512, 3, 1]] # 27
52
52
 
53
- - [[19, 23, 27], 1, Detect, [nc]] # Detect(P3, P4, P5)
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 # number of classes
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]] # 0-P1/2
18
- - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
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]] # 3-P3/8
20
+ - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8
21
21
  - [-1, 6, C2f, [256, True]]
22
- - [-1, 1, Conv, [512, 3, 2]] # 5-P4/16
22
+ - [-1, 1, Conv, [512, 3, 2]] # 5-P4/16
23
23
  - [-1, 6, C2f, [512, True]]
24
- - [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32
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]] # Classify
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 # number of classes
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, 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
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]] # 0-P1/2
18
- - [-1, 1, GhostConv, [128, 3, 2]] # 1-P2/4
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]] # 3-P3/8
20
+ - [-1, 1, GhostConv, [256, 3, 2]] # 3-P3/8
21
21
  - [-1, 6, C3Ghost, [256, True]]
22
- - [-1, 1, GhostConv, [512, 3, 2]] # 5-P4/16
22
+ - [-1, 1, GhostConv, [512, 3, 2]] # 5-P4/16
23
23
  - [-1, 6, C3Ghost, [512, True]]
24
- - [-1, 1, GhostConv, [1024, 3, 2]] # 7-P5/32
24
+ - [-1, 1, GhostConv, [1024, 3, 2]] # 7-P5/32
25
25
  - [-1, 3, C3Ghost, [1024, True]]
26
- - [-1, 1, SPPF, [1024, 5]] # 9
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, 'nearest']]
31
- - [[-1, 6], 1, Concat, [1]] # cat backbone P4
32
- - [-1, 3, C3Ghost, [512]] # 12
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, 'nearest']]
35
- - [[-1, 4], 1, Concat, [1]] # cat backbone P3
36
- - [-1, 3, C3Ghost, [256]] # 15 (P3/8-small)
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, 'nearest']]
39
- - [[-1, 2], 1, Concat, [1]] # cat backbone P2
40
- - [-1, 3, C3Ghost, [128]] # 18 (P2/4-xsmall)
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]] # cat head P3
44
- - [-1, 3, C3Ghost, [256]] # 21 (P3/8-small)
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]] # cat head P4
48
- - [-1, 3, C3Ghost, [512]] # 24 (P4/16-medium)
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]] # cat head P5
52
- - [-1, 3, C3Ghost, [1024]] # 27 (P5/32-large)
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]] # Detect(P2, P3, P4, P5)
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 # number of classes
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] # 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
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]] # 0-P1/2
18
- - [-1, 1, GhostConv, [128, 3, 2]] # 1-P2/4
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]] # 3-P3/8
20
+ - [-1, 1, GhostConv, [256, 3, 2]] # 3-P3/8
21
21
  - [-1, 6, C3Ghost, [256, True]]
22
- - [-1, 1, GhostConv, [512, 3, 2]] # 5-P4/16
22
+ - [-1, 1, GhostConv, [512, 3, 2]] # 5-P4/16
23
23
  - [-1, 6, C3Ghost, [512, True]]
24
- - [-1, 1, GhostConv, [768, 3, 2]] # 7-P5/32
24
+ - [-1, 1, GhostConv, [768, 3, 2]] # 7-P5/32
25
25
  - [-1, 3, C3Ghost, [768, True]]
26
- - [-1, 1, GhostConv, [1024, 3, 2]] # 9-P6/64
26
+ - [-1, 1, GhostConv, [1024, 3, 2]] # 9-P6/64
27
27
  - [-1, 3, C3Ghost, [1024, True]]
28
- - [-1, 1, SPPF, [1024, 5]] # 11
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, 'nearest']]
33
- - [[-1, 8], 1, Concat, [1]] # cat backbone P5
34
- - [-1, 3, C3Ghost, [768]] # 14
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, 'nearest']]
37
- - [[-1, 6], 1, Concat, [1]] # cat backbone P4
38
- - [-1, 3, C3Ghost, [512]] # 17
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, 'nearest']]
41
- - [[-1, 4], 1, Concat, [1]] # cat backbone P3
42
- - [-1, 3, C3Ghost, [256]] # 20 (P3/8-small)
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]] # cat head P4
46
- - [-1, 3, C3Ghost, [512]] # 23 (P4/16-medium)
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]] # cat head P5
50
- - [-1, 3, C3Ghost, [768]] # 26 (P5/32-large)
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]] # cat head P6
54
- - [-1, 3, C3Ghost, [1024]] # 29 (P6/64-xlarge)
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]] # Detect(P3, P4, P5, P6)
56
+ - [[20, 23, 26, 29], 1, Detect, [nc]] # Detect(P3, P4, P5, P6)