diff --git a/checkpoints/imagenet/hole_benchmark/dis_00465000.pt b/checkpoints/imagenet/hole_benchmark/dis_00465000.pt new file mode 100644 index 0000000000000000000000000000000000000000..af43eccb3ef0c8928a0672ea3c9e7273b64841f4 --- /dev/null +++ b/checkpoints/imagenet/hole_benchmark/dis_00465000.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f339a818bfd4eb4a4e37f64238f518201fd5c0c9e483a1932648943b340d1cc4 +size 21679378 diff --git a/checkpoints/imagenet/hole_benchmark/gen_00435000.pt b/checkpoints/imagenet/hole_benchmark/gen_00435000.pt new file mode 100644 index 0000000000000000000000000000000000000000..bd4240d59fc9ae8b25d86b0f903e5d1ae4689805 --- /dev/null +++ b/checkpoints/imagenet/hole_benchmark/gen_00435000.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79e19187dc6ed94d994e5ac3e64a6b99b7ad6914f4ab0cb9bb6e4f4e2fcefd06 +size 14443538 diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-AIFI.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-AIFI.yaml new file mode 100644 index 0000000000000000000000000000000000000000..8465510f2a6f12e93d2fe26acbfb8b669a1b288e --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-AIFI.yaml @@ -0,0 +1,51 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3, [1024]], + [-1, 1, Conv, [256, 1]], # 9 + [-1, 1, AIFI, [1024, 8]], # 10 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3, [512, False]], # 14 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3, [256, False]], # 18 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3, [512, False]], # 21 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3, [1024, False]], # 24 (P5/32-large) + + [[18, 21, 24], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-ASF-DySample.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-ASF-DySample.yaml new file mode 100644 index 0000000000000000000000000000000000000000..107b9d0cfca07129e9a0e9c88e611f4c4253d89b --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-ASF-DySample.yaml @@ -0,0 +1,54 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], # 10 + [4, 1, Conv, [512, 1, 1]], # 11 + [[-1, 6, -2], 1, Zoom_cat, []], # 12 cat backbone P4 + [-1, 3, C3, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], # 14 + [2, 1, Conv, [256, 1, 1]], # 15 + [[-1, 4, -2], 1, Zoom_cat, []], # 16 cat backbone P3 + [-1, 3, C3, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], # 18 + [[-1, 14], 1, Concat, [1]], # 19 cat head P4 + [-1, 3, C3, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], # 21 + [[-1, 10], 1, Concat, [1]], # 22 cat head P5 + [-1, 3, C3, [1024, False]], # 23 (P5/32-large) + + [[4, 6, 8], 1, DynamicScalSeq, [256]], # 24 args[inchane] + [[17, -1], 1, Add, []], # 25 + # [[17, -1], 1, asf_attention_model, []] # 25 + + [[25, 20, 23], 1, Detect, [nc]], # RTDETRDecoder(P3, P4, P5) + ] \ No newline at end of file diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-ASF-P2.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-ASF-P2.yaml new file mode 100644 index 0000000000000000000000000000000000000000..3f91b9edbc7d272f0b3d2e6eb35ed78d1397ed5b --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-ASF-P2.yaml @@ -0,0 +1,62 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], # 10 + [4, 1, Conv, [512, 1, 1]], # 11 + [[-1, 6, -2], 1, Zoom_cat, []], # 12 cat backbone P4 + [-1, 3, C3, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], # 14 + [2, 1, Conv, [256, 1, 1]], # 15 + [[-1, 4, -2], 1, Zoom_cat, []], # 16 cat backbone P3 + [-1, 3, C3, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], # 18 + [[-1, 14], 1, Concat, [1]], # 19 cat head P4 + [-1, 3, C3, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], # 21 + [[-1, 10], 1, Concat, [1]], # 22 cat head P5 + [-1, 3, C3, [512, False]], # 23 (P5/32-large) + + [[4, 6, 8], 1, ScalSeq, [256]], # 24 args[inchane] + [[17, -1], 1, Add, []], # 25 + # [[17, -1], 1, asf_attention_model, []] # 25 + + [-1, 1, nn.Upsample, [None, 2, 'nearest']], # 26 + [[-1, 2], 1, Concat, []], # 27 cat backbone P2 + [-1, 3, C3, [128]], # 28 (P2/4-small) + + [[2, 25, 20], 1, ScalSeq, [128]], # 29 args[channel] + [[28, -1], 1, Add, []], # 30 + # [[28, -1], 1, asf_attention_model, []] # 30 + + [[30, 25, 20, 23], 1, Detect, [nc]], # RTDETRDecoder(P3, P4, P5) + ] \ No newline at end of file diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-ASF.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-ASF.yaml new file mode 100644 index 0000000000000000000000000000000000000000..8a34646e47c203ba392b74b6b3957db6559374dd --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-ASF.yaml @@ -0,0 +1,54 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], # 10 + [4, 1, Conv, [512, 1, 1]], # 11 + [[-1, 6, -2], 1, Zoom_cat, []], # 12 cat backbone P4 + [-1, 3, C3, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], # 14 + [2, 1, Conv, [256, 1, 1]], # 15 + [[-1, 4, -2], 1, Zoom_cat, []], # 16 cat backbone P3 + [-1, 3, C3, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], # 18 + [[-1, 14], 1, Concat, [1]], # 19 cat head P4 + [-1, 3, C3, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], # 21 + [[-1, 10], 1, Concat, [1]], # 22 cat head P5 + [-1, 3, C3, [1024, False]], # 23 (P5/32-large) + + [[4, 6, 8], 1, ScalSeq, [256]], # 24 args[inchane] + [[17, -1], 1, Add, []], # 25 + # [[17, -1], 1, asf_attention_model, []] # 25 + + [[25, 20, 23], 1, Detect, [nc]], # RTDETRDecoder(P3, P4, P5) + ] \ No newline at end of file diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-AKConv.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-AKConv.yaml new file mode 100644 index 0000000000000000000000000000000000000000..7f2085f58790f295afd1b67da3752abcc6ae7859 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-AKConv.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3_AKConv, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3_AKConv, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3_AKConv, [512]], + [-1, 1, AKConv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3_AKConv, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-AggregatedAtt.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-AggregatedAtt.yaml new file mode 100644 index 0000000000000000000000000000000000000000..78728e5813b3cc761f25cbb51fc2010854d6146d --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-AggregatedAtt.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3_AggregatedAtt, [512, 40, 2]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3_AggregatedAtt, [1024, 20, 1]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-CloAtt.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-CloAtt.yaml new file mode 100644 index 0000000000000000000000000000000000000000..4daeb601760a00b933425a20e289e8b3f19c6a8b --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-CloAtt.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3_CloAtt, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3_CloAtt, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3_CloAtt, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3_CloAtt, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-ContextGuided.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-ContextGuided.yaml new file mode 100644 index 0000000000000000000000000000000000000000..ef905fb096033df3fcafc7d31f8c1357fb53d669 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-ContextGuided.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3_ContextGuided, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3_ContextGuided, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3_ContextGuided, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3_ContextGuided, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3_ContextGuided, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3_ContextGuided, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3_ContextGuided, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3_ContextGuided, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-DAttention.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-DAttention.yaml new file mode 100644 index 0000000000000000000000000000000000000000..98f12deda6a36366787b9c1340fe0886b176cdda --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-DAttention.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3_DAttention, [1024, [20, 20]]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-DBB.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-DBB.yaml new file mode 100644 index 0000000000000000000000000000000000000000..6aa205e77a64d7ef78d4aa98e3f723d3f0c78fc5 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-DBB.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3_DBB, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3_DBB, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3_DBB, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3_DBB, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3_DBB, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3_DBB, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3_DBB, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3_DBB, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-DCNV2-Dynamic.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-DCNV2-Dynamic.yaml new file mode 100644 index 0000000000000000000000000000000000000000..6ba6ae9c8dc0365731f580da74b35b0e5e605cab --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-DCNV2-Dynamic.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3_DCNv2_Dynamic, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-DCNV2.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-DCNV2.yaml new file mode 100644 index 0000000000000000000000000000000000000000..c9bfb383efce68efd7c9a99377b920c51588cf5a --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-DCNV2.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3_DCNv2, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-DCNV3.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-DCNV3.yaml new file mode 100644 index 0000000000000000000000000000000000000000..afb21c150d40ec3f19126c7a22817871db2cdacc --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-DCNV3.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3_DCNv3, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-DCNV4.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-DCNV4.yaml new file mode 100644 index 0000000000000000000000000000000000000000..3efc3f0fbc1d274b0e9eb4d0a6bddb7c9921707c --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-DCNV4.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3_DCNv4, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-DLKA.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-DLKA.yaml new file mode 100644 index 0000000000000000000000000000000000000000..850c89bc6e1216b2786ce421dd4102570af4e9ce --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-DLKA.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3_DLKA, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-DRB.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-DRB.yaml new file mode 100644 index 0000000000000000000000000000000000000000..b881dd5ce00869e09f7b9ddcaea3d4f6e28e4d24 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-DRB.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3_DRB, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3_DRB, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3_DRB, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3_DRB, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3_DRB, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3_DRB, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3_DRB, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3_DRB, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-DWR-DRB.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-DWR-DRB.yaml new file mode 100644 index 0000000000000000000000000000000000000000..70bec68df619ed8412ae63a1f51170ba4f22e7b8 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-DWR-DRB.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3_DWR_DRB, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3_DWR_DRB, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-DWR.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-DWR.yaml new file mode 100644 index 0000000000000000000000000000000000000000..14e015f65e4280c1053da76a27867354fee66f3a --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-DWR.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3_DWR, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3_DWR, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-DySnakeConv.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-DySnakeConv.yaml new file mode 100644 index 0000000000000000000000000000000000000000..b8b6c7044265a2c120763816efabe0206411bafa --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-DySnakeConv.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3_DySnakeConv, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-EMBC.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-EMBC.yaml new file mode 100644 index 0000000000000000000000000000000000000000..398a6c3202baf1ddda96361d8961fb2e8538cce2 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-EMBC.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3_EMBC, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3_EMBC, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3_EMBC, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3_EMBC, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3_EMBC, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3_EMBC, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3_EMBC, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3_EMBC, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-EMSC-OREPA.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-EMSC-OREPA.yaml new file mode 100644 index 0000000000000000000000000000000000000000..66995e990d9d6bbd60ba19b8ab2544a80cef198d --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-EMSC-OREPA.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3_EMSC_OREPA, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3_EMSC_OREPA, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3_EMSC_OREPA, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3_EMSC_OREPA, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-EMSC.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-EMSC.yaml new file mode 100644 index 0000000000000000000000000000000000000000..8db857bf8630afe4b1f82ad1017a56b5c1441ce0 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-EMSC.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3_EMSC, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3_EMSC, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3_EMSC, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3_EMSC, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-EMSCP-OREPA.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-EMSCP-OREPA.yaml new file mode 100644 index 0000000000000000000000000000000000000000..63eca548920e6ef952f0318e72bb969b885cba0f --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-EMSCP-OREPA.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3_EMSCP_OREPA, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3_EMSCP_OREPA, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3_EMSCP_OREPA, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3_EMSCP_OREPA, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-EMSCP.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-EMSCP.yaml new file mode 100644 index 0000000000000000000000000000000000000000..9fbf20e7b4a31534b949e69388f3f75513dc7811 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-EMSCP.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3_EMSCP, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3_EMSCP, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3_EMSCP, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3_EMSCP, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-Faster-EMA.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-Faster-EMA.yaml new file mode 100644 index 0000000000000000000000000000000000000000..e8069c83e68f1ad227815e237f81d8db1fb62a73 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-Faster-EMA.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3_Faster_EMA, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3_Faster_EMA, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3_Faster_EMA, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3_Faster_EMA, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3_Faster_EMA, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3_Faster_EMA, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3_Faster_EMA, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3_Faster_EMA, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-Faster.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-Faster.yaml new file mode 100644 index 0000000000000000000000000000000000000000..db70b5d409ab8cf29ae0483dd804f1a7966674ef --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-Faster.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3_Faster, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3_Faster, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3_Faster, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3_Faster, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3_Faster, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3_Faster, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3_Faster, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3_Faster, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-FocusedLinearAttention.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-FocusedLinearAttention.yaml new file mode 100644 index 0000000000000000000000000000000000000000..f8785da7e5284bccae36d942df00837901aac323 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-FocusedLinearAttention.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3_FocusedLinearAttention, [1024, [20, 20]]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-LVMB.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-LVMB.yaml new file mode 100644 index 0000000000000000000000000000000000000000..b955212355ab9c05df0a360d61bd393b0583f2de --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-LVMB.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3_LVMB, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3_LVMB, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3_LVMB, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3_LVMB, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-MLCA.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-MLCA.yaml new file mode 100644 index 0000000000000000000000000000000000000000..7675957e49f8b4c9ff8d56d0c717b2063680a151 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-MLCA.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3_MLCA, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3_MLCA, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3_MLCA, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3_MLCA, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-MSBlock.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-MSBlock.yaml new file mode 100644 index 0000000000000000000000000000000000000000..fbfc1348d746c4a101fe9457de9921a67446b71b --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-MSBlock.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3_MSBlock, [128, [1, 3, 3], 3, 2, 3, 2]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3_MSBlock, [256, [1, 5, 5], 3, 2, 3, 2]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3_MSBlock, [512, [1, 7, 7], 3, 2, 3, 2]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3_MSBlock, [1024, [1, 9, 9], 3, 2, 3, 2]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-ODConv.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-ODConv.yaml new file mode 100644 index 0000000000000000000000000000000000000000..aaced8c83460156dcfafcffc4138c43a1cc721c4 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-ODConv.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3_ODConv, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3_ODConv, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3_ODConv, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3_ODConv, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3_ODConv, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3_ODConv, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3_ODConv, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3_ODConv, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-OREPA.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-OREPA.yaml new file mode 100644 index 0000000000000000000000000000000000000000..871f5843dd27a85f7493c48b5f9e6e6bf1d945d0 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-OREPA.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3_OREPA, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3_OREPA, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3_OREPA, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3_OREPA, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3_OREPA, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3_OREPA, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3_OREPA, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3_OREPA, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-Parc.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-Parc.yaml new file mode 100644 index 0000000000000000000000000000000000000000..55f2eca2fe10d4806ac4c6bbe3deb037b57d82c6 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-Parc.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3_Parc, [128, [160, 160]]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3_Parc, [256, [80, 80]]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3_Parc, [512, [40, 40]]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3_Parc, [1024, [20, 20]]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3_Parc, [512, [40, 40], False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3_Parc, [256, [80, 80], False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3_Parc, [512, [40, 40], False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3_Parc, [1024, [20, 20], False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-REPVGGOREPA.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-REPVGGOREPA.yaml new file mode 100644 index 0000000000000000000000000000000000000000..2fcf87aab837494e3be1870a08b2500c96e2eb04 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-REPVGGOREPA.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3_REPVGGOREPA, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3_REPVGGOREPA, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3_REPVGGOREPA, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3_REPVGGOREPA, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3_REPVGGOREPA, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3_REPVGGOREPA, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3_REPVGGOREPA, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3_REPVGGOREPA, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-RFAConv.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-RFAConv.yaml new file mode 100644 index 0000000000000000000000000000000000000000..69ddd57e433475b429acfb3873bb524299cbfdb3 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-RFAConv.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, RFAConv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3_RFAConv, [128]], + [-1, 1, RFAConv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3_RFAConv, [256]], + [-1, 1, RFAConv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3_RFAConv, [512]], + [-1, 1, RFAConv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3_RFAConv, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3_RFAConv, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3_RFAConv, [256, False]], # 17 (P3/8-small) + + [-1, 1, RFAConv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3_RFAConv, [512, False]], # 20 (P4/16-medium) + + [-1, 1, RFAConv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3_RFAConv, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-RFCAConv.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-RFCAConv.yaml new file mode 100644 index 0000000000000000000000000000000000000000..8bb06c5320cc8764d0cf77a44e8f368b50f843a1 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-RFCAConv.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, RFCAConv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3_RFCAConv, [128]], + [-1, 1, RFCAConv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3_RFCAConv, [256]], + [-1, 1, RFCAConv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3_RFCAConv, [512]], + [-1, 1, RFCAConv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3_RFCAConv, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3_RFCAConv, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3_RFCAConv, [256, False]], # 17 (P3/8-small) + + [-1, 1, RFCAConv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3_RFCAConv, [512, False]], # 20 (P4/16-medium) + + [-1, 1, RFCAConv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3_RFCAConv, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-RFCBAMConv.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-RFCBAMConv.yaml new file mode 100644 index 0000000000000000000000000000000000000000..5f0832104a4e8f38137abe24121136ec2cc47091 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-RFCBAMConv.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, RFCBAMConv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3_RFCBAMConv, [128]], + [-1, 1, RFCBAMConv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3_RFCBAMConv, [256]], + [-1, 1, RFCBAMConv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3_RFCBAMConv, [512]], + [-1, 1, RFCBAMConv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3_RFCBAMConv, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3_RFCBAMConv, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3_RFCBAMConv, [256, False]], # 17 (P3/8-small) + + [-1, 1, RFCBAMConv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3_RFCBAMConv, [512, False]], # 20 (P4/16-medium) + + [-1, 1, RFCBAMConv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3_RFCBAMConv, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-SCConv.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-SCConv.yaml new file mode 100644 index 0000000000000000000000000000000000000000..dea0116ff4538ce224a52a8450feb4bfcef9e913 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-SCConv.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3_SCConv, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3_SCConv, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3_SCConv, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3_SCConv, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3_SCConv, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3_SCConv, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3_SCConv, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3_SCConv, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-SCcConv.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-SCcConv.yaml new file mode 100644 index 0000000000000000000000000000000000000000..12d0dd134ef18dad807c26321241cc289da66a76 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-SCcConv.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3_ScConv, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3_ScConv, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3_ScConv, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3_ScConv, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3_ScConv, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3_ScConv, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3_ScConv, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3_ScConv, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-SWC.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-SWC.yaml new file mode 100644 index 0000000000000000000000000000000000000000..6a2f974a2ca7c086ad05fb1e1bb5a5f12fd7a3d7 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-SWC.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3_SWC, [128, 11]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3_SWC, [256, 9]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3_SWC, [512, 7]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3_SWC, [1024, 7]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] \ No newline at end of file diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-UniRepLKNetBlock.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-UniRepLKNetBlock.yaml new file mode 100644 index 0000000000000000000000000000000000000000..b3ae371656334b5e893ffc38ae953e8e3d2bb45c --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-UniRepLKNetBlock.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3_UniRepLKNetBlock, [128, 7]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3_UniRepLKNetBlock, [256, 7]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3_UniRepLKNetBlock, [512, 13]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3_UniRepLKNetBlock, [1024, 13]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-VSS.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-VSS.yaml new file mode 100644 index 0000000000000000000000000000000000000000..f3298e4b9935d223fcaaaf5cb8d109ef233e8201 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-VSS.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3_VSS, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3_VSS, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3_VSS, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3_VSS, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-iRMB-Cascaded.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-iRMB-Cascaded.yaml new file mode 100644 index 0000000000000000000000000000000000000000..b08496d461c823a5d77f5fffd624af0ec82a2893 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-iRMB-Cascaded.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3_iRMB_Cascaded, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3_iRMB_Cascaded, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3_iRMB_Cascaded, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3_iRMB_Cascaded, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-iRMB-DRB.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-iRMB-DRB.yaml new file mode 100644 index 0000000000000000000000000000000000000000..bb2f997ed6748a6c95623a72874f5924b148dc69 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-iRMB-DRB.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3_iRMB_DRB, [128, 13]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3_iRMB_DRB, [256, 11]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3_iRMB_DRB, [512, 9]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3_iRMB_DRB, [1024, 7]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] \ No newline at end of file diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-iRMB-SWC.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-iRMB-SWC.yaml new file mode 100644 index 0000000000000000000000000000000000000000..425ca38fd73c3ed18a26a16730d615470573ac6f --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-iRMB-SWC.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3_iRMB_SWC, [128, 13]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3_iRMB_SWC, [256, 11]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3_iRMB_SWC, [512, 9]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3_iRMB_SWC, [1024, 7]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] \ No newline at end of file diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-iRMB.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-iRMB.yaml new file mode 100644 index 0000000000000000000000000000000000000000..a7c9044319ae4074ba95a99c80fdcccaf060004d --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-C3-iRMB.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3_iRMB, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3_iRMB, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3_iRMB, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3_iRMB, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-CARAFE.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-CARAFE.yaml new file mode 100644 index 0000000000000000000000000000000000000000..4ab3f93c3dd7ca8848f43bc5a0e0889584013288 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-CARAFE.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, CARAFE, []], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, CARAFE, []], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-CSP-EDLAN.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-CSP-EDLAN.yaml new file mode 100644 index 0000000000000000000000000000000000000000..937d037e668e704d002c7f2e2cbec233043026d6 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-CSP-EDLAN.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, CSP_EDLAN, [128, 4]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, CSP_EDLAN, [256, 4]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, CSP_EDLAN, [512, 4]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, CSP_EDLAN, [1024, 4]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, CSP_EDLAN, [512, 4]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, CSP_EDLAN, [256, 4]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, CSP_EDLAN, [512, 4]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, CSP_EDLAN, [1024, 4]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] \ No newline at end of file diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-CSwinTransformer.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-CSwinTransformer.yaml new file mode 100644 index 0000000000000000000000000000000000000000..9e5dfd70c0e13231d4f24d9d3100169a45fe2874 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-CSwinTransformer.yaml @@ -0,0 +1,47 @@ +# YOLOv5 🚀 by Ultralytics, GPL-3.0 license + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# 0-P1/2 +# 1-P2/4 +# 2-P3/8 +# 3-P4/16 +# 4-P5/32 + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, CSWin_tiny, []], # 4 + [-1, 1, SPPF, [1024, 5]], # 5 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], # 6 + [-1, 1, nn.Upsample, [None, 2, 'nearest']], # 7 + [[-1, 3], 1, Concat, [1]], # cat backbone P4 8 + [-1, 3, C3, [512, False]], # 9 + + [-1, 1, Conv, [256, 1, 1]], # 10 + [-1, 1, nn.Upsample, [None, 2, 'nearest']], # 11 + [[-1, 2], 1, Concat, [1]], # cat backbone P3 12 + [-1, 3, C3, [256, False]], # 13 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], # 14 + [[-1, 10], 1, Concat, [1]], # cat head P4 15 + [-1, 3, C3, [512, False]], # 16 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], # 17 + [[-1, 5], 1, Concat, [1]], # cat head P5 18 + [-1, 3, C3, [1024, False]], # 19 (P5/32-large) + + [[13, 16, 19], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] \ No newline at end of file diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-ContextGuidedDown.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-ContextGuidedDown.yaml new file mode 100644 index 0000000000000000000000000000000000000000..1693f76e723f06487961c4f38884282388e6f28d --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-ContextGuidedDown.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, ContextGuidedBlock_Down, []], # 1-P2/4 + [-1, 3, C3, [128]], + [-1, 1, ContextGuidedBlock_Down, []], # 3-P3/8 + [-1, 6, C3, [256]], + [-1, 1, ContextGuidedBlock_Down, []], # 5-P4/16 + [-1, 9, C3, [512]], + [-1, 1, ContextGuidedBlock_Down, []], # 7-P5/32 + [-1, 3, C3, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3, [256, False]], # 17 (P3/8-small) + + [-1, 1, ContextGuidedBlock_Down, []], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3, [512, False]], # 20 (P4/16-medium) + + [-1, 1, ContextGuidedBlock_Down, []], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-EfficientHead.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-EfficientHead.yaml new file mode 100644 index 0000000000000000000000000000000000000000..f65848e5bbd84369c2b6baeb9c839a15218a009f --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-EfficientHead.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect_Efficient, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-EfficientRepBiPAN.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-EfficientRepBiPAN.yaml new file mode 100644 index 0000000000000000000000000000000000000000..99349c67d4416e13eb114cceb9709c4efd5a021f --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-EfficientRepBiPAN.yaml @@ -0,0 +1,48 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [256]], # 10 + [[-1, 6, 4], 1, BiFusion, [256]], # 11 + [-1, 12, RepBlock, [256]], # 12 + + [-1, 1, Conv, [128]], # 13 + [[-1, 4, 2], 1, BiFusion, [128]], # 14 + [-1, 12, RepBlock, [128]], # 15 + + [-1, 1, Conv, [128, 3, 2]], # 16 + [[-1, 13], 1, Concat, [1]], # 17 + [-1, 12, RepBlock, [256]], # 18 + + [-1, 1, Conv, [256, 3, 2]], # 19 + [[-1, 10], 1, Concat, [1]], # 20 + [-1, 12, RepBlock, [512]], # 21 + + [[15, 18, 21], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] \ No newline at end of file diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-FocalModulation.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-FocalModulation.yaml new file mode 100644 index 0000000000000000000000000000000000000000..3e11003fad513373c869169c1e45b63a12127a5d --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-FocalModulation.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3, [1024]], + [-1, 1, FocalModulation, []], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-GDFPN.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-GDFPN.yaml new file mode 100644 index 0000000000000000000000000000000000000000..b706e4b75286d4d335c5d249d74060ec198cd4b5 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-GDFPN.yaml @@ -0,0 +1,53 @@ +# YOLOv5 🚀 by Ultralytics, GPL-3.0 license + +# Parameters +nc: 80 # number of classes +depth_multiple: 0.33 # model depth multiple +width_multiple: 0.25 # layer channel multiple +anchors: + - [10,13, 16,30, 33,23] # P3/8 + - [30,61, 62,45, 59,119] # P4/16 + - [116,90, 156,198, 373,326] # P5/32 + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# DAMO-YOLO GFPN Head +head: + [[-1, 1, Conv, [512, 1, 1]], # 10 + [6, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], + [-1, 3, CSPStage, [512]], # 13 + + [-1, 1, DySample, [2, 'lp']], #14 + [4, 1, Conv, [256, 3, 2]], # 15 + [[14, -1, 6], 1, Concat, [1]], + [-1, 3, CSPStage, [512]], # 17 + + [-1, 1, DySample, [2, 'lp']], + [[-1, 4], 1, Concat, [1]], + [-1, 3, CSPStage, [256]], # 20 + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 17], 1, Concat, [1]], + [-1, 3, CSPStage, [512]], # 23 + + [17, 1, Conv, [256, 3, 2]], # 24 + [23, 1, Conv, [256, 3, 2]], # 25 + [[13, 24, -1], 1, Concat, [1]], + [-1, 3, CSPStage, [1024]], # 27 + + [[20, 23, 27], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] \ No newline at end of file diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-GFPN.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-GFPN.yaml new file mode 100644 index 0000000000000000000000000000000000000000..00825089e28c0829f1f19b187c2ba0a1ef9d67c7 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-GFPN.yaml @@ -0,0 +1,53 @@ +# YOLOv5 🚀 by Ultralytics, GPL-3.0 license + +# Parameters +nc: 80 # number of classes +depth_multiple: 0.33 # model depth multiple +width_multiple: 0.25 # layer channel multiple +anchors: + - [10,13, 16,30, 33,23] # P3/8 + - [30,61, 62,45, 59,119] # P4/16 + - [116,90, 156,198, 373,326] # P5/32 + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# DAMO-YOLO GFPN Head +head: + [[-1, 1, Conv, [512, 1, 1]], # 10 + [6, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], + [-1, 3, CSPStage, [512]], # 13 + + [-1, 1, nn.Upsample, [None, 2, 'nearest']], #14 + [4, 1, Conv, [256, 3, 2]], # 15 + [[14, -1, 6], 1, Concat, [1]], + [-1, 3, CSPStage, [512]], # 17 + + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], + [-1, 3, CSPStage, [256]], # 20 + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 17], 1, Concat, [1]], + [-1, 3, CSPStage, [512]], # 23 + + [17, 1, Conv, [256, 3, 2]], # 24 + [23, 1, Conv, [256, 3, 2]], # 25 + [[13, 24, -1], 1, Concat, [1]], + [-1, 3, CSPStage, [1024]], # 27 + + [[20, 23, 27], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] \ No newline at end of file diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-GhostHGNetV2.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-GhostHGNetV2.yaml new file mode 100644 index 0000000000000000000000000000000000000000..c93b2b668a5e077bea921127813cf01f35dd69dc --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-GhostHGNetV2.yaml @@ -0,0 +1,53 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, HGStem, [32, 48]], # 0-P1/2 + [-1, 6, Ghost_HGBlock, [48, 128, 3]], # 1-P2/4 + [-1, 1, DWConv, [128, 3, 2, 1, False]], # 2-P3/8 + [-1, 6, Ghost_HGBlock, [96, 512, 3]], # stage 2 + + [-1, 1, DWConv, [512, 3, 2, 1, False]], # 4-P3/16 + [-1, 6, Ghost_HGBlock, [192, 1024, 1, True, False]], # cm, c2, k, light, shortcut + [-1, 6, Ghost_HGBlock, [192, 1024, 1, True, True]], + [-1, 6, Ghost_HGBlock, [192, 1024, 1, True, True]], # stage 3 + + [-1, 1, DWConv, [1024, 3, 2, 1, False]], # 8-P4/32 + [-1, 6, Ghost_HGBlock, [384, 2048, 1, True, False]], # stage 4 + [-1, 1, SPPF, [1024, 5]], # 10 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 7], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3, [512, False]], # 14 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 3], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3, [256, False]], # 18 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 15], 1, Concat, [1]], # cat head P4 + [-1, 3, C3, [512, False]], # 21 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 11], 1, Concat, [1]], # cat head P5 + [-1, 3, C3, [1024, False]], # 24 (P5/32-large) + + [[18, 21, 24], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-HGNetV2.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-HGNetV2.yaml new file mode 100644 index 0000000000000000000000000000000000000000..989359602e37f5033ede2f02c7ec62dcaa0559ac --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-HGNetV2.yaml @@ -0,0 +1,53 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, HGStem, [32, 48]], # 0-P1/2 + [-1, 6, HGBlock, [48, 128, 3]], # 1-P2/4 + [-1, 1, DWConv, [128, 3, 2, 1, False]], # 2-P3/8 + [-1, 6, HGBlock, [96, 512, 3]], # stage 2 + + [-1, 1, DWConv, [512, 3, 2, 1, False]], # 4-P3/16 + [-1, 6, HGBlock, [192, 1024, 5, True, False]], # cm, c2, k, light, shortcut + [-1, 6, HGBlock, [192, 1024, 5, True, True]], + [-1, 6, HGBlock, [192, 1024, 5, True, True]], # stage 3 + + [-1, 1, DWConv, [1024, 3, 2, 1, False]], # 8-P4/32 + [-1, 6, HGBlock, [384, 2048, 5, True, False]], # stage 4 + [-1, 1, SPPF, [1024, 5]], # 10 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 7], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3, [512, False]], # 14 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 3], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3, [256, False]], # 18 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 15], 1, Concat, [1]], # cat head P4 + [-1, 3, C3, [512, False]], # 21 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 11], 1, Concat, [1]], # cat head P5 + [-1, 3, C3, [1024, False]], # 24 (P5/32-large) + + [[18, 21, 24], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-HSFPN.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-HSFPN.yaml new file mode 100644 index 0000000000000000000000000000000000000000..03ddecd2c76f4a9db6b5fa149bf5ba7e7728ef1b --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-HSFPN.yaml @@ -0,0 +1,51 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, ChannelAttention_HSFPN, []], # 10 + [-1, 1, nn.Conv2d, [256, 1]], # 11 + [-1, 1, nn.ConvTranspose2d, [256, 3, 2, 1, 1]], # 12 + + [6, 1, ChannelAttention_HSFPN, []], # 13 + [-1, 1, nn.Conv2d, [256, 1]], # 14 + [12, 1, ChannelAttention_HSFPN, [4, False]], # 15 + [[-1, -2], 1, Multiply, []], # 16 + [[-1, 12], 1, Add, []], # 17 + [-1, 3, C2f, [256]], # 18 P4/16 + + [12, 1, nn.ConvTranspose2d, [256, 3, 2, 1, 1]], # 19 + [4, 1, ChannelAttention_HSFPN, []], # 20 + [-1, 1, nn.Conv2d, [256, 1]], # 21 + [19, 1, ChannelAttention_HSFPN, [4, False]], # 22 + [[-1, -2], 1, Multiply, []], # 23 + [[-1, 19], 1, Add, []], # 24 + [-1, 3, C2f, [256]], # 25 P3/16 + + [[25, 18, 11], 1, Detect, [nc]] # Detect(P3, P4, P5) + ] \ No newline at end of file diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-HSPAN-DySample.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-HSPAN-DySample.yaml new file mode 100644 index 0000000000000000000000000000000000000000..913d9acae8a1f2112da2d23d5e280bb1bc686221 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-HSPAN-DySample.yaml @@ -0,0 +1,67 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, ChannelAttention_HSFPN, []], # 10 + [-1, 1, nn.Conv2d, [256, 1]], # 11 + [-1, 1, DySample, [2, 'lp']], # 12 + + [6, 1, ChannelAttention_HSFPN, []], # 13 + [-1, 1, nn.Conv2d, [256, 1]], # 14 + [12, 1, ChannelAttention_HSFPN, [4, False]], # 15 + [[-1, -2], 1, Multiply, []], # 16 + [[-1, 12], 1, Add, []], # 17 + [-1, 3, C2f, [256]], # 18 P4/16 + + [12, 1, DySample, [2, 'lp']], # 19 + [4, 1, ChannelAttention_HSFPN, []], # 20 + [-1, 1, nn.Conv2d, [256, 1]], # 21 + [19, 1, ChannelAttention_HSFPN, [4, False]], # 22 + [[-1, -2], 1, Multiply, []], # 23 + [[-1, 19], 1, Add, []], # 24 + [-1, 3, C2f, [256]], # 25 P3/8 + + [-1, 1, nn.Conv2d, [256, 3, 2, 1]], # 26 + [18, 1, ChannelAttention_HSFPN, []], # 27 + [-1, 1, nn.Conv2d, [256, 1]], # 28 + [26, 1, ChannelAttention_HSFPN, [4, False]], # 29 + [[-1, -2], 1, Multiply, []], # 30 + [[-1, 26], 1, Add, []], # 31 + [-1, 3, C2f, [256]], # 32 P4/16 + + [26, 1, nn.Conv2d, [256, 3, 2, 1]], # 33 + [11, 1, ChannelAttention_HSFPN, []], # 34 + [-1, 1, nn.Conv2d, [256, 1]], # 35 + [33, 1, ChannelAttention_HSFPN, [4, False]], # 36 + [[-1, -2], 1, Multiply, []], # 37 + [[-1, 33], 1, Add, []], # 38 + [-1, 3, C2f, [256]], # 39 P5/32 + + [[25, 32, 39], 1, Detect, [nc]] # Detect(P3, P4, P5) + ] \ No newline at end of file diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-HSPAN.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-HSPAN.yaml new file mode 100644 index 0000000000000000000000000000000000000000..0a46b2845fce999016a430ab29ba848704a17a8c --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-HSPAN.yaml @@ -0,0 +1,67 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, ChannelAttention_HSFPN, []], # 10 + [-1, 1, nn.Conv2d, [256, 1]], # 11 + [-1, 1, nn.ConvTranspose2d, [256, 3, 2, 1, 1]], # 12 + + [6, 1, ChannelAttention_HSFPN, []], # 13 + [-1, 1, nn.Conv2d, [256, 1]], # 14 + [12, 1, ChannelAttention_HSFPN, [4, False]], # 15 + [[-1, -2], 1, Multiply, []], # 16 + [[-1, 12], 1, Add, []], # 17 + [-1, 3, C2f, [256]], # 18 P4/16 + + [12, 1, nn.ConvTranspose2d, [256, 3, 2, 1, 1]], # 19 + [4, 1, ChannelAttention_HSFPN, []], # 20 + [-1, 1, nn.Conv2d, [256, 1]], # 21 + [19, 1, ChannelAttention_HSFPN, [4, False]], # 22 + [[-1, -2], 1, Multiply, []], # 23 + [[-1, 19], 1, Add, []], # 24 + [-1, 3, C2f, [256]], # 25 P3/8 + + [-1, 1, nn.Conv2d, [256, 3, 2, 1]], # 26 + [18, 1, ChannelAttention_HSFPN, []], # 27 + [-1, 1, nn.Conv2d, [256, 1]], # 28 + [26, 1, ChannelAttention_HSFPN, [4, False]], # 29 + [[-1, -2], 1, Multiply, []], # 30 + [[-1, 26], 1, Add, []], # 31 + [-1, 3, C2f, [256]], # 32 P4/16 + + [26, 1, nn.Conv2d, [256, 3, 2, 1]], # 33 + [11, 1, ChannelAttention_HSFPN, []], # 34 + [-1, 1, nn.Conv2d, [256, 1]], # 35 + [33, 1, ChannelAttention_HSFPN, [4, False]], # 36 + [[-1, -2], 1, Multiply, []], # 37 + [[-1, 33], 1, Add, []], # 38 + [-1, 3, C2f, [256]], # 39 P5/32 + + [[25, 32, 39], 1, Detect, [nc]] # Detect(P3, P4, P5) + ] \ No newline at end of file diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-HWD.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-HWD.yaml new file mode 100644 index 0000000000000000000000000000000000000000..b30139c46ff9e12c7d38e75f697484281350e2f5 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-HWD.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3, [128]], + [-1, 1, HWD, [256]], # 3-P3/8 + [-1, 6, C3, [256]], + [-1, 1, HWD, [512]], # 5-P4/16 + [-1, 9, C3, [512]], + [-1, 1, HWD, [1024]], # 7-P5/32 + [-1, 3, C3, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3, [256, False]], # 17 (P3/8-small) + + [-1, 1, HWD, [256]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3, [512, False]], # 20 (P4/16-medium) + + [-1, 1, HWD, [512]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-KernelWarehouse.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-KernelWarehouse.yaml new file mode 100644 index 0000000000000000000000000000000000000000..72db61fd776a9f4cfe0ca9f7b14d3c9f4705530c --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-KernelWarehouse.yaml @@ -0,0 +1,52 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] +Warehouse_Manager: True +Warehouse_Manager_Ratio: 1.0 + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, KWConv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, KWConv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3_KW, [128]], + [-1, 1, KWConv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3_KW, [256]], + [-1, 1, KWConv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3_KW, [512]], + [-1, 1, KWConv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3_KW, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, KWConv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3_KW, [512, False]], # 13 + + [-1, 1, KWConv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3_KW, [256, False]], # 17 (P3/8-small) + + [-1, 1, KWConv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3_KW, [512, False]], # 20 (P4/16-medium) + + [-1, 1, KWConv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3_KW, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-LAWDS.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-LAWDS.yaml new file mode 100644 index 0000000000000000000000000000000000000000..bf6d71dfa8a70e892fa7a091145d35e13fd3bfde --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-LAWDS.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3, [128]], + [-1, 1, LAWDS, []], # 3-P3/8 + [-1, 6, C3, [256]], + [-1, 1, LAWDS, []], # 5-P4/16 + [-1, 9, C3, [512]], + [-1, 1, LAWDS, []], # 7-P5/32 + [-1, 3, C3, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3, [256, False]], # 17 (P3/8-small) + + [-1, 1, LAWDS, []], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3, [512, False]], # 20 (P4/16-medium) + + [-1, 1, LAWDS, []], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-LSKNet.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-LSKNet.yaml new file mode 100644 index 0000000000000000000000000000000000000000..9cdae03423e1fcda386ee02521a81daf47090dbe --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-LSKNet.yaml @@ -0,0 +1,47 @@ +# YOLOv5 🚀 by Ultralytics, GPL-3.0 license + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# 0-P1/2 +# 1-P2/4 +# 2-P3/8 +# 3-P4/16 +# 4-P5/32 + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, lsknet_t, []], # 4 + [-1, 1, SPPF, [1024, 5]], # 5 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], # 6 + [-1, 1, nn.Upsample, [None, 2, 'nearest']], # 7 + [[-1, 3], 1, Concat, [1]], # cat backbone P4 8 + [-1, 3, C3, [512, False]], # 9 + + [-1, 1, Conv, [256, 1, 1]], # 10 + [-1, 1, nn.Upsample, [None, 2, 'nearest']], # 11 + [[-1, 2], 1, Concat, [1]], # cat backbone P3 12 + [-1, 3, C3, [256, False]], # 13 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], # 14 + [[-1, 10], 1, Concat, [1]], # cat head P4 15 + [-1, 3, C3, [512, False]], # 16 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], # 17 + [[-1, 5], 1, Concat, [1]], # cat head P5 18 + [-1, 3, C3, [1024, False]], # 19 (P5/32-large) + + [[13, 16, 19], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] \ No newline at end of file diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-MultiSEAMHead.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-MultiSEAMHead.yaml new file mode 100644 index 0000000000000000000000000000000000000000..ee202123d2f6f1656eeea9c72462a6a2da28d96d --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-MultiSEAMHead.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect_MultiSEAM, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-RCSOSA.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-RCSOSA.yaml new file mode 100644 index 0000000000000000000000000000000000000000..e78fdf93dd853a215bc32e59db41b48b29b18b6e --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-RCSOSA.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, RCSOSA, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, RCSOSA, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, RCSOSA, [512, True]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, RCSOSA, [1024, True]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, RCSOSA, [512]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, RCSOSA, [256]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, RCSOSA, [512]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, RCSOSA, [1024]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-RepHGNetV2.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-RepHGNetV2.yaml new file mode 100644 index 0000000000000000000000000000000000000000..6cd8a11c74229f942ea47386ff0bfc7172518291 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-RepHGNetV2.yaml @@ -0,0 +1,53 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, HGStem, [32, 48]], # 0-P1/2 + [-1, 6, Rep_HGBlock, [48, 128, 3]], # 1-P2/4 + [-1, 1, DWConv, [128, 3, 2, 1, False]], # 2-P3/8 + [-1, 6, Rep_HGBlock, [96, 512, 3]], # stage 2 + + [-1, 1, DWConv, [512, 3, 2, 1, False]], # 4-P3/16 + [-1, 6, Rep_HGBlock, [192, 1024, 3, True, False]], # cm, c2, k, light, shortcut + [-1, 6, Rep_HGBlock, [192, 1024, 3, True, True]], + [-1, 6, Rep_HGBlock, [192, 1024, 3, True, True]], # stage 3 + + [-1, 1, DWConv, [1024, 3, 2, 1, False]], # 8-P4/32 + [-1, 6, Rep_HGBlock, [384, 2048, 3, True, False]], # stage 4 + [-1, 1, SPPF, [1024, 5]], # 10 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 7], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3, [512, False]], # 14 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 3], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3, [256, False]], # 18 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 15], 1, Concat, [1]], # cat head P4 + [-1, 3, C3, [512, False]], # 21 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 11], 1, Concat, [1]], # cat head P5 + [-1, 3, C3, [1024, False]], # 24 (P5/32-large) + + [[18, 21, 24], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-RepNCSPELAN.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-RepNCSPELAN.yaml new file mode 100644 index 0000000000000000000000000000000000000000..1ecfb50f925f287a4e1348e5dd641f323064e5fe --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-RepNCSPELAN.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, RepNCSPELAN4, [128, 64, 32, 1]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, RepNCSPELAN4, [256, 128, 64, 1]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, RepNCSPELAN4, [512, 256, 128, 1]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, RepNCSPELAN4, [1024, 512, 256, 1]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, RepNCSPELAN4, [512, 256, 128]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, RepNCSPELAN4, [256, 128, 64, 1]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, RepNCSPELAN4, [512, 256, 128, 1]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, RepNCSPELAN4, [1024, 512, 256, 1]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-RevCol.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-RevCol.yaml new file mode 100644 index 0000000000000000000000000000000000000000..2eef901fa9410454c6722c8f4cb876efb997e328 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-RevCol.yaml @@ -0,0 +1,47 @@ +# YOLOv5 🚀 by Ultralytics, GPL-3.0 license + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# 0-P1/2 +# 1-P2/4 +# 2-P3/8 +# 3-P4/16 +# 4-P5/32 + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, RevCol, ['C3', [64, 128, 256, 512], [3, 6, 9, 3], 2]], # 4 + [-1, 1, SPPF, [1024, 5]], # 5 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], # 6 + [-1, 1, nn.Upsample, [None, 2, 'nearest']], # 7 + [[-1, 3], 1, Concat, [1]], # cat backbone P4 8 + [-1, 3, C3, [512, False]], # 9 + + [-1, 1, Conv, [256, 1, 1]], # 10 + [-1, 1, nn.Upsample, [None, 2, 'nearest']], # 11 + [[-1, 2], 1, Concat, [1]], # cat backbone P3 12 + [-1, 3, C3, [256, False]], # 13 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], # 14 + [[-1, 10], 1, Concat, [1]], # cat head P4 15 + [-1, 3, C3, [512, False]], # 16 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], # 17 + [[-1, 5], 1, Concat, [1]], # cat head P5 18 + [-1, 3, C3, [1024, False]], # 19 (P5/32-large) + + [[13, 16, 19], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] \ No newline at end of file diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-SDI.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-SDI.yaml new file mode 100644 index 0000000000000000000000000000000000000000..6cc9e1bef0d88f75d6b8bfeb94abe237072a32fe --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-SDI.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6, 4], 1, SDI, []], # cat backbone P4 + [-1, 3, C3, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4, 2], 1, SDI, []], # cat backbone P3 + [-1, 3, C3, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14, 4], 1, SDI, []], # cat head P4 + [-1, 3, C3, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10, 6], 1, SDI, []], # cat head P5 + [-1, 3, C3, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-SEAMHead.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-SEAMHead.yaml new file mode 100644 index 0000000000000000000000000000000000000000..202680eccf8aa6eac51d936b4db7aa9db7c55d9b --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-SEAMHead.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect_SEAM, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-SPDConv.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-SPDConv.yaml new file mode 100644 index 0000000000000000000000000000000000000000..4e5c6b6d254e13f6f4e82f461b1d76763efb3d70 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-SPDConv.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, SPDConv, [128]], # 1-P2/4 + [-1, 3, C3, [128]], + [-1, 1, SPDConv, [256]], # 3-P3/8 + [-1, 6, C3, [256]], + [-1, 1, SPDConv, [512]], # 5-P4/16 + [-1, 9, C3, [512]], + [-1, 1, SPDConv, [1024]], # 7-P5/32 + [-1, 3, C3, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3, [256, False]], # 17 (P3/8-small) + + [-1, 1, SPDConv, [256]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3, [512, False]], # 20 (P4/16-medium) + + [-1, 1, SPDConv, [512]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-SPPF-LSKA.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-SPPF-LSKA.yaml new file mode 100644 index 0000000000000000000000000000000000000000..4901cbcde7c5a73ffa6c48885d7b04c799015ade --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-SPPF-LSKA.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3, [1024]], + [-1, 1, SPPF_LSKA, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-TransNeXt.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-TransNeXt.yaml new file mode 100644 index 0000000000000000000000000000000000000000..dbfffb9dceb89abc11912d6578cdd03407cd506d --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-TransNeXt.yaml @@ -0,0 +1,47 @@ +# YOLOv5 🚀 by Ultralytics, GPL-3.0 license + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# 0-P1/2 +# 1-P2/4 +# 2-P3/8 +# 3-P4/16 +# 4-P5/32 + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, transnext_micro, []], # 4 + [-1, 1, SPPF, [1024, 5]], # 5 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], # 6 + [-1, 1, nn.Upsample, [None, 2, 'nearest']], # 7 + [[-1, 3], 1, Concat, [1]], # cat backbone P4 8 + [-1, 3, C3, [512, False]], # 9 + + [-1, 1, Conv, [256, 1, 1]], # 10 + [-1, 1, nn.Upsample, [None, 2, 'nearest']], # 11 + [[-1, 2], 1, Concat, [1]], # cat backbone P3 12 + [-1, 3, C3, [256, False]], # 13 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], # 14 + [[-1, 10], 1, Concat, [1]], # cat head P4 15 + [-1, 3, C3, [512, False]], # 16 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], # 17 + [[-1, 5], 1, Concat, [1]], # cat head P5 18 + [-1, 3, C3, [1024, False]], # 19 (P5/32-large) + + [[13, 16, 19], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] \ No newline at end of file diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-aux.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-aux.yaml new file mode 100644 index 0000000000000000000000000000000000000000..ce1844b0eba7c1fb890a6a23665cc1431246010f --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-aux.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23, 17, 13, 9], 1, DetectAux, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-bifpn-SDI.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-bifpn-SDI.yaml new file mode 100644 index 0000000000000000000000000000000000000000..48eb00259b18d6e1999f510023972cf3c383fed2 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-bifpn-SDI.yaml @@ -0,0 +1,58 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] +fusion_mode: SDI +node_mode: C3 +head_channel: 256 + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + - [4, 1, Conv, [head_channel]] # 10-P3/8 + - [6, 1, Conv, [head_channel]] # 11-P4/16 + - [9, 1, Conv, [head_channel]] # 12-P5/32 + + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] # 13 P5->P4 + - [[-1, 11], 1, Fusion, [fusion_mode]] # 14 + - [-1, 3, node_mode, [head_channel]] # 15-P4/16 + + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] # 16 P4->P3 + - [[-1, 10], 1, Fusion, [fusion_mode]] # 17 + - [-1, 3, node_mode, [head_channel]] # 18-P3/8 + + - [2, 1, Conv, [head_channel, 3, 2]] # 19 P2->P3 + - [[-1, 10, 18], 1, Fusion, [fusion_mode]] # 20 + - [-1, 3, node_mode, [head_channel]] # 21-P3/8 + + - [-1, 1, Conv, [head_channel, 3, 2]] # 22 P3->P4 + - [[-1, 11, 15], 1, Fusion, [fusion_mode]] # 23 + - [-1, 3, node_mode, [head_channel]] # 24-P4/16 + + - [-1, 1, Conv, [head_channel, 3, 2]] # 25 P4->P5 + - [[-1, 12], 1, Fusion, [fusion_mode]] # 26 + - [-1, 3, node_mode, [head_channel]] # 27-P5/32 + + - [[21, 24, 27], 1, Detect, [nc]] # Detect(P3, P4, P5) diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-bifpn.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-bifpn.yaml new file mode 100644 index 0000000000000000000000000000000000000000..432f8d47fb8ca8978810e1fc4e35d5cbf8b171b6 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-bifpn.yaml @@ -0,0 +1,58 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] +fusion_mode: bifpn +node_mode: C3 +head_channel: 256 + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + - [4, 1, Conv, [head_channel]] # 10-P3/8 + - [6, 1, Conv, [head_channel]] # 11-P4/16 + - [9, 1, Conv, [head_channel]] # 12-P5/32 + + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] # 13 P5->P4 + - [[-1, 11], 1, Fusion, [fusion_mode]] # 14 + - [-1, 3, node_mode, [head_channel]] # 15-P4/16 + + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] # 16 P4->P3 + - [[-1, 10], 1, Fusion, [fusion_mode]] # 17 + - [-1, 3, node_mode, [head_channel]] # 18-P3/8 + + - [2, 1, Conv, [head_channel, 3, 2]] # 19 P2->P3 + - [[-1, 10, 18], 1, Fusion, [fusion_mode]] # 20 + - [-1, 3, node_mode, [head_channel]] # 21-P3/8 + + - [-1, 1, Conv, [head_channel, 3, 2]] # 22 P3->P4 + - [[-1, 11, 15], 1, Fusion, [fusion_mode]] # 23 + - [-1, 3, node_mode, [head_channel]] # 24-P4/16 + + - [-1, 1, Conv, [head_channel, 3, 2]] # 25 P4->P5 + - [[-1, 12], 1, Fusion, [fusion_mode]] # 26 + - [-1, 3, node_mode, [head_channel]] # 27-P5/32 + + - [[21, 24, 27], 1, Detect, [nc]] # Detect(P3, P4, P5) diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-dyhead-DCNV3.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-dyhead-DCNV3.yaml new file mode 100644 index 0000000000000000000000000000000000000000..e1b03b1d6aec9d50ea3c959c9f58d327e9926663 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-dyhead-DCNV3.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect_DyHeadWithDCNV3, [nc, 128, 1]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-dyhead-DCNV4.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-dyhead-DCNV4.yaml new file mode 100644 index 0000000000000000000000000000000000000000..e661dcc27fa3661ecbc684aefa11fad5a1dd517c --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-dyhead-DCNV4.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect_DyHeadWithDCNV4, [nc, 128, 1]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-dyhead.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-dyhead.yaml new file mode 100644 index 0000000000000000000000000000000000000000..9315129b3801a4bb3e53d3d06639f77747a69266 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-dyhead.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect_DyHead, [nc, 128, 1]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-dysample.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-dysample.yaml new file mode 100644 index 0000000000000000000000000000000000000000..8328d4249b6d1021af4981c523fee33fd8dc7124 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-dysample.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, DySample, [2, 'lp']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, DySample, [2, 'lp']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-fasternet-bifpn.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-fasternet-bifpn.yaml new file mode 100644 index 0000000000000000000000000000000000000000..08ca62b973aba29abfbb191803e9097379b4de62 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-fasternet-bifpn.yaml @@ -0,0 +1,55 @@ +# YOLOv5 🚀 by Ultralytics, GPL-3.0 license + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] +fusion_mode: bifpn +node_mode: C3 +head_channel: 256 + +# 0-P1/2 +# 1-P2/4 +# 2-P3/8 +# 3-P4/16 +# 4-P5/32 + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, fasternet_t0, []], # 4 + [-1, 1, SPPF, [1024, 5]], # 5 + ] + +# YOLOv5 v6.0 head +head: + - [2, 1, Conv, [head_channel]] # 6-P3/8 + - [3, 1, Conv, [head_channel]] # 7-P4/16 + - [5, 1, Conv, [head_channel]] # 8-P5/32 + + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] # 9 P5->P4 + - [[-1, 7], 1, Fusion, [fusion_mode]] # 10 + - [-1, 3, node_mode, [head_channel]] # 11-P4/16 + + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] # 12 P4->P3 + - [[-1, 6], 1, Fusion, [fusion_mode]] # 13 + - [-1, 3, node_mode, [head_channel]] # 14-P3/8 + + - [1, 1, Conv, [head_channel, 3, 2]] # 15 P2->P3 + - [[-1, 6, 14], 1, Fusion, [fusion_mode]] # 16 + - [-1, 3, node_mode, [head_channel]] # 17-P3/8 + + - [-1, 1, Conv, [head_channel, 3, 2]] # 18 P3->P4 + - [[-1, 7, 11], 1, Fusion, [fusion_mode]] # 19 + - [-1, 3, node_mode, [head_channel]] # 20-P4/16 + + - [-1, 1, Conv, [head_channel, 3, 2]] # 21 P4->P5 + - [[-1, 8], 1, Fusion, [fusion_mode]] # 22 + - [-1, 3, node_mode, [head_channel]] # 23-P5/32 + + - [[17, 20, 23], 1, Detect, [nc]] # Detect(P3, P4, P5) \ No newline at end of file diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-fasternet.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-fasternet.yaml new file mode 100644 index 0000000000000000000000000000000000000000..b04252ef4e314e7a3d1e67a923804f2364cd2694 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-fasternet.yaml @@ -0,0 +1,47 @@ +# YOLOv5 🚀 by Ultralytics, GPL-3.0 license + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# 0-P1/2 +# 1-P2/4 +# 2-P3/8 +# 3-P4/16 +# 4-P5/32 + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, fasternet_t0, []], # 4 + [-1, 1, SPPF, [1024, 5]], # 5 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], # 6 + [-1, 1, nn.Upsample, [None, 2, 'nearest']], # 7 + [[-1, 3], 1, Concat, [1]], # cat backbone P4 8 + [-1, 3, C3, [512, False]], # 9 + + [-1, 1, Conv, [256, 1, 1]], # 10 + [-1, 1, nn.Upsample, [None, 2, 'nearest']], # 11 + [[-1, 2], 1, Concat, [1]], # cat backbone P3 12 + [-1, 3, C3, [256, False]], # 13 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], # 14 + [[-1, 10], 1, Concat, [1]], # cat head P4 15 + [-1, 3, C3, [512, False]], # 16 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], # 17 + [[-1, 5], 1, Concat, [1]], # cat head P5 18 + [-1, 3, C3, [1024, False]], # 19 (P5/32-large) + + [[13, 16, 19], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] \ No newline at end of file diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-goldyolo-asf.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-goldyolo-asf.yaml new file mode 100644 index 0000000000000000000000000000000000000000..566079ea3ad628b5cfc27cc3fce1fca7de3a5f84 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-goldyolo-asf.yaml @@ -0,0 +1,60 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[[2, 4, 6, 9], 1, SimFusion_4in, []], # 10 + [-1, 1, IFM, [[64, 32]]], # 11 + + [9, 1, Conv, [512, 1, 1]], # 12 + [[4, 6, -1], 1, SimFusion_3in, [512]], # 13 + [[-1, 11], 1, InjectionMultiSum_Auto_pool, [512, [64, 32], 0]], # 14 + [-1, 3, C3, [512, False]], # 15 + + [6, 1, Conv, [256, 1, 1]], # 16 + [[2, 4, -1], 1, SimFusion_3in, [256]], # 17 + [[-1, 11], 1, InjectionMultiSum_Auto_pool, [256, [64, 32], 1]], # 18 + [-1, 3, C3, [256, False]], # 19 + + [[19, 15, 9], 1, PyramidPoolAgg, [352, 2]], # 20 + [-1, 1, TopBasicLayer, [352, [64, 128]]], # 21 + + [[19, 16], 1, AdvPoolFusion, []], # 22 + [[-1, 21], 1, InjectionMultiSum_Auto_pool, [256, [64, 128], 0]], # 23 + [-1, 3, C3, [512, False]], # 24 + + [[-1, 12], 1, AdvPoolFusion, []], # 25 + [[-1, 21], 1, InjectionMultiSum_Auto_pool, [512, [64, 128], 1]], # 26 + [-1, 3, C3, [1024, False]], # 27 + + [[4, 6, 8], 1, ScalSeq, [256]], # 28 args[inchane] + [[19, -1], 1, Add, []], # 29 + # [[19, -1], 1, asf_attention_model, []] # 29 + + [[29, 24, 27], 1, Detect, [nc]] # 28 + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-goldyolo.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-goldyolo.yaml new file mode 100644 index 0000000000000000000000000000000000000000..7706dd310457705f91d1a558d70930ec9af1b806 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-goldyolo.yaml @@ -0,0 +1,56 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[[2, 4, 6, 9], 1, SimFusion_4in, []], # 10 + [-1, 1, IFM, [[64, 32]]], # 11 + + [9, 1, Conv, [512, 1, 1]], # 12 + [[4, 6, -1], 1, SimFusion_3in, [512]], # 13 + [[-1, 11], 1, InjectionMultiSum_Auto_pool, [512, [64, 32], 0]], # 14 + [-1, 3, C3, [512, False]], # 15 + + [6, 1, Conv, [256, 1, 1]], # 16 + [[2, 4, -1], 1, SimFusion_3in, [256]], # 17 + [[-1, 11], 1, InjectionMultiSum_Auto_pool, [256, [64, 32], 1]], # 18 + [-1, 3, C3, [256, False]], # 19 + + [[19, 15, 9], 1, PyramidPoolAgg, [352, 2]], # 20 + [-1, 1, TopBasicLayer, [352, [64, 128]]], # 21 + + [[19, 16], 1, AdvPoolFusion, []], # 22 + [[-1, 21], 1, InjectionMultiSum_Auto_pool, [256, [64, 128], 0]], # 23 + [-1, 3, C3, [512, False]], # 24 + + [[-1, 12], 1, AdvPoolFusion, []], # 25 + [[-1, 21], 1, InjectionMultiSum_Auto_pool, [512, [64, 128], 1]], # 26 + [-1, 3, C3, [1024, False]], # 27 + + [[19, 24, 27], 1, Detect, [nc]] # 28 + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-p6.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-p6.yaml new file mode 100644 index 0000000000000000000000000000000000000000..9a8b340b5764b96494f7bff0d334b5b350f5529e --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-p6.yaml @@ -0,0 +1,61 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P6 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n-p6.yaml' will call yolov5-p6.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3, [512]], + [-1, 1, Conv, [768, 3, 2]], # 7-P5/32 + [-1, 3, C3, [768]], + [-1, 1, Conv, [1024, 3, 2]], # 9-P6/64 + [-1, 3, C3, [1024]], + [-1, 1, SPPF, [1024, 5]], # 11 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [768, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 8], 1, Concat, [1]], # cat backbone P5 + [-1, 3, C3, [768, False]], # 15 + + [-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3, [512, False]], # 19 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3, [256, False]], # 23 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 20], 1, Concat, [1]], # cat head P4 + [-1, 3, C3, [512, False]], # 26 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 16], 1, Concat, [1]], # cat head P5 + [-1, 3, C3, [768, False]], # 29 (P5/32-large) + + [-1, 1, Conv, [768, 3, 2]], + [[-1, 12], 1, Concat, [1]], # cat head P6 + [-1, 3, C3, [1024, False]], # 32 (P6/64-xlarge) + + [[23, 26, 29, 32], 1, Detect, [nc]], # Detect(P3, P4, P5, P6) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-repvit.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-repvit.yaml new file mode 100644 index 0000000000000000000000000000000000000000..d5412b02026a44e6ba21eac2283ce72d70337408 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-repvit.yaml @@ -0,0 +1,47 @@ +# YOLOv5 🚀 by Ultralytics, GPL-3.0 license + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# 0-P1/2 +# 1-P2/4 +# 2-P3/8 +# 3-P4/16 +# 4-P5/32 + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, repvit_m0_9, []], # 4 + [-1, 1, SPPF, [1024, 5]], # 5 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], # 6 + [-1, 1, nn.Upsample, [None, 2, 'nearest']], # 7 + [[-1, 3], 1, Concat, [1]], # cat backbone P4 8 + [-1, 3, C3, [512, False]], # 9 + + [-1, 1, Conv, [256, 1, 1]], # 10 + [-1, 1, nn.Upsample, [None, 2, 'nearest']], # 11 + [[-1, 2], 1, Concat, [1]], # cat backbone P3 12 + [-1, 3, C3, [256, False]], # 13 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], # 14 + [[-1, 10], 1, Concat, [1]], # cat head P4 15 + [-1, 3, C3, [512, False]], # 16 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], # 17 + [[-1, 5], 1, Concat, [1]], # cat head P5 18 + [-1, 3, C3, [1024, False]], # 19 (P5/32-large) + + [[13, 16, 19], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] \ No newline at end of file diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-swintransformer.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-swintransformer.yaml new file mode 100644 index 0000000000000000000000000000000000000000..5e8483a4121d1c4c7af60c854616544bae0b0485 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-swintransformer.yaml @@ -0,0 +1,47 @@ +# YOLOv5 🚀 by Ultralytics, GPL-3.0 license + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# 0-P1/2 +# 1-P2/4 +# 2-P3/8 +# 3-P4/16 +# 4-P5/32 + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, SwinTransformer_Tiny, []], # 4 + [-1, 1, SPPF, [1024, 5]], # 5 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], # 6 + [-1, 1, nn.Upsample, [None, 2, 'nearest']], # 7 + [[-1, 3], 1, Concat, [1]], # cat backbone P4 8 + [-1, 3, C3, [512, False]], # 9 + + [-1, 1, Conv, [256, 1, 1]], # 10 + [-1, 1, nn.Upsample, [None, 2, 'nearest']], # 11 + [[-1, 2], 1, Concat, [1]], # cat backbone P3 12 + [-1, 3, C3, [256, False]], # 13 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], # 14 + [[-1, 10], 1, Concat, [1]], # cat head P4 15 + [-1, 3, C3, [512, False]], # 16 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], # 17 + [[-1, 5], 1, Concat, [1]], # cat head P5 18 + [-1, 3, C3, [1024, False]], # 19 (P5/32-large) + + [[13, 16, 19], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] \ No newline at end of file diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-timm.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-timm.yaml new file mode 100644 index 0000000000000000000000000000000000000000..ad1514283f4ad76568e484c3400ccc3a23537211 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-timm.yaml @@ -0,0 +1,47 @@ +# YOLOv5 🚀 by Ultralytics, GPL-3.0 license + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# 0-P1/2 +# 1-P2/4 +# 2-P3/8 +# 3-P4/16 +# 4-P5/32 + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, vovnet39a, [False]], # 4 + [-1, 1, SPPF, [1024, 5]], # 5 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], # 6 + [-1, 1, nn.Upsample, [None, 2, 'nearest']], # 7 + [[-1, 3], 1, Concat, [1]], # cat backbone P4 8 + [-1, 3, C3, [512, False]], # 9 + + [-1, 1, Conv, [256, 1, 1]], # 10 + [-1, 1, nn.Upsample, [None, 2, 'nearest']], # 11 + [[-1, 2], 1, Concat, [1]], # cat backbone P3 12 + [-1, 3, C3, [256, False]], # 13 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], # 14 + [[-1, 10], 1, Concat, [1]], # cat head P4 15 + [-1, 3, C3, [512, False]], # 16 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], # 17 + [[-1, 5], 1, Concat, [1]], # cat head P5 18 + [-1, 3, C3, [1024, False]], # 19 (P5/32-large) + + [[13, 16, 19], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] \ No newline at end of file diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5-unireplknet.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5-unireplknet.yaml new file mode 100644 index 0000000000000000000000000000000000000000..d9956dc6f066905dca15d041adaa3c687264ca73 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5-unireplknet.yaml @@ -0,0 +1,47 @@ +# YOLOv5 🚀 by Ultralytics, GPL-3.0 license + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# 0-P1/2 +# 1-P2/4 +# 2-P3/8 +# 3-P4/16 +# 4-P5/32 + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, unireplknet_a, []], # 4 + [-1, 1, SPPF, [1024, 5]], # 5 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], # 6 + [-1, 1, nn.Upsample, [None, 2, 'nearest']], # 7 + [[-1, 3], 1, Concat, [1]], # cat backbone P4 8 + [-1, 3, C3, [512, False]], # 9 + + [-1, 1, Conv, [256, 1, 1]], # 10 + [-1, 1, nn.Upsample, [None, 2, 'nearest']], # 11 + [[-1, 2], 1, Concat, [1]], # cat backbone P3 12 + [-1, 3, C3, [256, False]], # 13 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], # 14 + [[-1, 10], 1, Concat, [1]], # cat head P4 15 + [-1, 3, C3, [512, False]], # 16 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], # 17 + [[-1, 5], 1, Concat, [1]], # cat head P5 18 + [-1, 3, C3, [1024, False]], # 19 (P5/32-large) + + [[13, 16, 19], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] \ No newline at end of file diff --git a/yolov8_model/ultralytics/cfg/models/v5/yolov5.yaml b/yolov8_model/ultralytics/cfg/models/v5/yolov5.yaml new file mode 100644 index 0000000000000000000000000000000000000000..052610005cb0e97f0e49a95f9e5101372dfef444 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v5/yolov5.yaml @@ -0,0 +1,50 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5 + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 1024] + l: [1.00, 1.00, 1024] + x: [1.33, 1.25, 1024] + +# YOLOv5 v6.0 backbone +backbone: + # [from, number, module, args] + [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 + [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 + [-1, 3, C3, [128]], + [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 + [-1, 6, C3, [256]], + [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 + [-1, 9, C3, [512]], + [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 + [-1, 3, C3, [1024]], + [-1, 1, SPPF, [1024, 5]], # 9 + ] + +# YOLOv5 v6.0 head +head: + [[-1, 1, Conv, [512, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 6], 1, Concat, [1]], # cat backbone P4 + [-1, 3, C3, [512, False]], # 13 + + [-1, 1, Conv, [256, 1, 1]], + [-1, 1, nn.Upsample, [None, 2, 'nearest']], + [[-1, 4], 1, Concat, [1]], # cat backbone P3 + [-1, 3, C3, [256, False]], # 17 (P3/8-small) + + [-1, 1, Conv, [256, 3, 2]], + [[-1, 14], 1, Concat, [1]], # cat head P4 + [-1, 3, C3, [512, False]], # 20 (P4/16-medium) + + [-1, 1, Conv, [512, 3, 2]], + [[-1, 10], 1, Concat, [1]], # cat head P5 + [-1, 3, C3, [1024, False]], # 23 (P5/32-large) + + [[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5) + ] diff --git a/yolov8_model/ultralytics/cfg/models/v6/yolov6.yaml b/yolov8_model/ultralytics/cfg/models/v6/yolov6.yaml new file mode 100644 index 0000000000000000000000000000000000000000..03912f3d31c3a96c36f1c8381aac0ada11b37ee4 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v6/yolov6.yaml @@ -0,0 +1,53 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv6 object detection model with P3-P5 outputs. For Usage examples see https://docs.ultralytics.com/models/yolov6 + +# Parameters +nc: 80 # number of classes +activation: nn.ReLU() # (optional) model default activation function +scales: # model compound scaling constants, i.e. 'model=yolov6n.yaml' will call yolov8.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] + s: [0.33, 0.50, 1024] + m: [0.67, 0.75, 768] + l: [1.00, 1.00, 512] + x: [1.00, 1.25, 512] + +# YOLOv6-3.0s backbone +backbone: + # [from, repeats, module, args] + - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2 + - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4 + - [-1, 6, Conv, [128, 3, 1]] + - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8 + - [-1, 12, Conv, [256, 3, 1]] + - [-1, 1, Conv, [512, 3, 2]] # 5-P4/16 + - [-1, 18, Conv, [512, 3, 1]] + - [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32 + - [-1, 6, Conv, [1024, 3, 1]] + - [-1, 1, SPPF, [1024, 5]] # 9 + +# YOLOv6-3.0s head +head: + - [-1, 1, Conv, [256, 1, 1]] + - [-1, 1, nn.ConvTranspose2d, [256, 2, 2, 0]] + - [[-1, 6], 1, Concat, [1]] # cat backbone P4 + - [-1, 1, Conv, [256, 3, 1]] + - [-1, 9, Conv, [256, 3, 1]] # 14 + + - [-1, 1, Conv, [128, 1, 1]] + - [-1, 1, nn.ConvTranspose2d, [128, 2, 2, 0]] + - [[-1, 4], 1, Concat, [1]] # cat backbone P3 + - [-1, 1, Conv, [128, 3, 1]] + - [-1, 9, Conv, [128, 3, 1]] # 19 + + - [-1, 1, Conv, [128, 3, 2]] + - [[-1, 15], 1, Concat, [1]] # cat head P4 + - [-1, 1, Conv, [256, 3, 1]] + - [-1, 9, Conv, [256, 3, 1]] # 23 + + - [-1, 1, Conv, [256, 3, 2]] + - [[-1, 10], 1, Concat, [1]] # cat head P5 + - [-1, 1, Conv, [512, 3, 1]] + - [-1, 9, Conv, [512, 3, 1]] # 27 + + - [[19, 23, 27], 1, Detect, [nc]] # Detect(P3, P4, P5) diff --git a/yolov8_model/ultralytics/cfg/models/v8/yolov8-AFPN-P2345-Custom.yaml b/yolov8_model/ultralytics/cfg/models/v8/yolov8-AFPN-P2345-Custom.yaml new file mode 100644 index 0000000000000000000000000000000000000000..37a07403c6672318703a16306b5d612df331e032 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v8/yolov8-AFPN-P2345-Custom.yaml @@ -0,0 +1,30 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv8 object detection model with P3-P5 outputs. For Usage examples see https://docs.ultralytics.com/tasks/detect + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] # YOLOv8n summary: 225 layers, 3157200 parameters, 3157184 gradients, 8.9 GFLOPs + s: [0.33, 0.50, 1024] # YOLOv8s summary: 225 layers, 11166560 parameters, 11166544 gradients, 28.8 GFLOPs + m: [0.67, 0.75, 768] # YOLOv8m summary: 295 layers, 25902640 parameters, 25902624 gradients, 79.3 GFLOPs + l: [1.00, 1.00, 512] # YOLOv8l summary: 365 layers, 43691520 parameters, 43691504 gradients, 165.7 GFLOPs + x: [1.00, 1.25, 512] # YOLOv8x summary: 365 layers, 68229648 parameters, 68229632 gradients, 258.5 GFLOPs + +# YOLOv8.0n backbone +backbone: + # [from, repeats, module, args] + - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2 + - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4 + - [-1, 3, C2f, [128, True]] + - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8 + - [-1, 6, C2f, [256, True]] + - [-1, 1, Conv, [512, 3, 2]] # 5-P4/16 + - [-1, 6, C2f, [512, True]] + - [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32 + - [-1, 3, C2f, [1024, True]] + - [-1, 1, SPPF, [1024, 5]] # 9 + +# YOLOv8.0n head +head: + - [[2, 4, 6, 9], 1, Detect_AFPN_P2345_Custom, [nc, 128, 'C2f']] # Detect(P3, P4, P5) diff --git a/yolov8_model/ultralytics/cfg/models/v8/yolov8-AFPN-P2345.yaml b/yolov8_model/ultralytics/cfg/models/v8/yolov8-AFPN-P2345.yaml new file mode 100644 index 0000000000000000000000000000000000000000..e5fa36e698f125381580b2d5ad4f655ac9d43343 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v8/yolov8-AFPN-P2345.yaml @@ -0,0 +1,30 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv8 object detection model with P3-P5 outputs. For Usage examples see https://docs.ultralytics.com/tasks/detect + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] # YOLOv8n summary: 225 layers, 3157200 parameters, 3157184 gradients, 8.9 GFLOPs + s: [0.33, 0.50, 1024] # YOLOv8s summary: 225 layers, 11166560 parameters, 11166544 gradients, 28.8 GFLOPs + m: [0.67, 0.75, 768] # YOLOv8m summary: 295 layers, 25902640 parameters, 25902624 gradients, 79.3 GFLOPs + l: [1.00, 1.00, 512] # YOLOv8l summary: 365 layers, 43691520 parameters, 43691504 gradients, 165.7 GFLOPs + x: [1.00, 1.25, 512] # YOLOv8x summary: 365 layers, 68229648 parameters, 68229632 gradients, 258.5 GFLOPs + +# YOLOv8.0n backbone +backbone: + # [from, repeats, module, args] + - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2 + - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4 + - [-1, 3, C2f, [128, True]] + - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8 + - [-1, 6, C2f, [256, True]] + - [-1, 1, Conv, [512, 3, 2]] # 5-P4/16 + - [-1, 6, C2f, [512, True]] + - [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32 + - [-1, 3, C2f, [1024, True]] + - [-1, 1, SPPF, [1024, 5]] # 9 + +# YOLOv8.0n head +head: + - [[2, 4, 6, 9], 1, Detect_AFPN_P2345, [nc, 128]] # Detect(P3, P4, P5) diff --git a/yolov8_model/ultralytics/cfg/models/v8/yolov8-AFPN-P345-Custom.yaml b/yolov8_model/ultralytics/cfg/models/v8/yolov8-AFPN-P345-Custom.yaml new file mode 100644 index 0000000000000000000000000000000000000000..b6c86fb7c7635d57a7c0482c5fc55cf568abfa73 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v8/yolov8-AFPN-P345-Custom.yaml @@ -0,0 +1,30 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv8 object detection model with P3-P5 outputs. For Usage examples see https://docs.ultralytics.com/tasks/detect + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] # YOLOv8n summary: 225 layers, 3157200 parameters, 3157184 gradients, 8.9 GFLOPs + s: [0.33, 0.50, 1024] # YOLOv8s summary: 225 layers, 11166560 parameters, 11166544 gradients, 28.8 GFLOPs + m: [0.67, 0.75, 768] # YOLOv8m summary: 295 layers, 25902640 parameters, 25902624 gradients, 79.3 GFLOPs + l: [1.00, 1.00, 512] # YOLOv8l summary: 365 layers, 43691520 parameters, 43691504 gradients, 165.7 GFLOPs + x: [1.00, 1.25, 512] # YOLOv8x summary: 365 layers, 68229648 parameters, 68229632 gradients, 258.5 GFLOPs + +# YOLOv8.0n backbone +backbone: + # [from, repeats, module, args] + - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2 + - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4 + - [-1, 3, C2f, [128, True]] + - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8 + - [-1, 6, C2f, [256, True]] + - [-1, 1, Conv, [512, 3, 2]] # 5-P4/16 + - [-1, 6, C2f, [512, True]] + - [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32 + - [-1, 3, C2f, [1024, True]] + - [-1, 1, SPPF, [1024, 5]] # 9 + +# YOLOv8.0n head +head: + - [[4, 6, 9], 1, Detect_AFPN_P345_Custom, [nc, 128, 'C2f']] # Detect(P3, P4, P5) diff --git a/yolov8_model/ultralytics/cfg/models/v8/yolov8-AFPN-P345.yaml b/yolov8_model/ultralytics/cfg/models/v8/yolov8-AFPN-P345.yaml new file mode 100644 index 0000000000000000000000000000000000000000..baf8ebb396ed83bf94e32911a918f03c4381d781 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v8/yolov8-AFPN-P345.yaml @@ -0,0 +1,30 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv8 object detection model with P3-P5 outputs. For Usage examples see https://docs.ultralytics.com/tasks/detect + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] # YOLOv8n summary: 225 layers, 3157200 parameters, 3157184 gradients, 8.9 GFLOPs + s: [0.33, 0.50, 1024] # YOLOv8s summary: 225 layers, 11166560 parameters, 11166544 gradients, 28.8 GFLOPs + m: [0.67, 0.75, 768] # YOLOv8m summary: 295 layers, 25902640 parameters, 25902624 gradients, 79.3 GFLOPs + l: [1.00, 1.00, 512] # YOLOv8l summary: 365 layers, 43691520 parameters, 43691504 gradients, 165.7 GFLOPs + x: [1.00, 1.25, 512] # YOLOv8x summary: 365 layers, 68229648 parameters, 68229632 gradients, 258.5 GFLOPs + +# YOLOv8.0n backbone +backbone: + # [from, repeats, module, args] + - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2 + - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4 + - [-1, 3, C2f, [128, True]] + - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8 + - [-1, 6, C2f, [256, True]] + - [-1, 1, Conv, [512, 3, 2]] # 5-P4/16 + - [-1, 6, C2f, [512, True]] + - [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32 + - [-1, 3, C2f, [1024, True]] + - [-1, 1, SPPF, [1024, 5]] # 9 + +# YOLOv8.0n head +head: + - [[4, 6, 9], 1, Detect_AFPN_P345, [nc, 128]] # Detect(P3, P4, P5) diff --git a/yolov8_model/ultralytics/cfg/models/v8/yolov8-AIFI.yaml b/yolov8_model/ultralytics/cfg/models/v8/yolov8-AIFI.yaml new file mode 100644 index 0000000000000000000000000000000000000000..26a97e770cf7a30db5bea42e99e6bc3b64f163eb --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v8/yolov8-AIFI.yaml @@ -0,0 +1,47 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv8 object detection model with P3-P5 outputs. For Usage examples see https://docs.ultralytics.com/tasks/detect + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] # YOLOv8n summary: 225 layers, 3157200 parameters, 3157184 gradients, 8.9 GFLOPs + s: [0.33, 0.50, 1024] # YOLOv8s summary: 225 layers, 11166560 parameters, 11166544 gradients, 28.8 GFLOPs + m: [0.67, 0.75, 768] # YOLOv8m summary: 295 layers, 25902640 parameters, 25902624 gradients, 79.3 GFLOPs + l: [1.00, 1.00, 512] # YOLOv8l summary: 365 layers, 43691520 parameters, 43691504 gradients, 165.7 GFLOPs + x: [1.00, 1.25, 512] # YOLOv8x summary: 365 layers, 68229648 parameters, 68229632 gradients, 258.5 GFLOPs + +# YOLOv8.0n backbone +backbone: + # [from, repeats, module, args] + - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2 + - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4 + - [-1, 3, C2f, [128, True]] + - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8 + - [-1, 6, C2f, [256, True]] + - [-1, 1, Conv, [512, 3, 2]] # 5-P4/16 + - [-1, 6, C2f, [512, True]] + - [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32 + - [-1, 3, C2f, [1024, True]] + - [-1, 1, Conv, [256, 1]] # 9 + - [-1, 1, AIFI, [1024, 8]] # 10 + +# YOLOv8.0n head +head: + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] + - [[-1, 6], 1, Concat, [1]] # cat backbone P4 + - [-1, 3, C2f, [512]] # 13 + + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] + - [[-1, 4], 1, Concat, [1]] # cat backbone P3 + - [-1, 3, C2f, [256]] # 16 (P3/8-small) + + - [-1, 1, Conv, [256, 3, 2]] + - [[-1, 13], 1, Concat, [1]] # cat head P4 + - [-1, 3, C2f, [512]] # 19 (P4/16-medium) + + - [-1, 1, Conv, [512, 3, 2]] + - [[-1, 10], 1, Concat, [1]] # cat head P5 + - [-1, 3, C2f, [1024]] # 22 (P5/32-large) + + - [[16, 19, 22], 1, Detect, [nc]] # Detect(P3, P4, P5) diff --git a/yolov8_model/ultralytics/cfg/models/v8/yolov8-ASF-DySample.yaml b/yolov8_model/ultralytics/cfg/models/v8/yolov8-ASF-DySample.yaml new file mode 100644 index 0000000000000000000000000000000000000000..5645a4d6e362448f038d8adb71e189fc4229301a --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v8/yolov8-ASF-DySample.yaml @@ -0,0 +1,52 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv8 object detection model with P3-P5 outputs. For Usage examples see https://docs.ultralytics.com/tasks/detect + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] # YOLOv8n summary: 225 layers, 3157200 parameters, 3157184 gradients, 8.9 GFLOPs + s: [0.33, 0.50, 1024] # YOLOv8s summary: 225 layers, 11166560 parameters, 11166544 gradients, 28.8 GFLOPs + m: [0.67, 0.75, 768] # YOLOv8m summary: 295 layers, 25902640 parameters, 25902624 gradients, 79.3 GFLOPs + l: [1.00, 1.00, 512] # YOLOv8l summary: 365 layers, 43691520 parameters, 43691504 gradients, 165.7 GFLOPs + x: [1.00, 1.25, 512] # YOLOv8x summary: 365 layers, 68229648 parameters, 68229632 gradients, 258.5 GFLOPs + +# YOLOv8.0n backbone +backbone: + # [from, repeats, module, args] + - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2 + - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4 + - [-1, 3, C2f, [128, True]] + - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8 + - [-1, 6, C2f, [256, True]] + - [-1, 1, Conv, [512, 3, 2]] # 5-P4/16 + - [-1, 6, C2f, [512, True]] + - [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32 + - [-1, 3, C2f, [1024, True]] + - [-1, 1, SPPF, [1024, 5]] # 9 + +# YOLOv8.0n head +head: + - [-1, 1, Conv, [512, 1, 1]] # 10 + - [4, 1, Conv, [512, 1, 1]] # 11 + - [[-1, 6, -2], 1, Zoom_cat, []] # 12 cat backbone P4 + - [-1, 3, C2f, [512]] # 13 + + - [-1, 1, Conv, [256, 1, 1]] # 14 + - [2, 1, Conv, [256, 1, 1]] # 15 + - [[-1, 4, -2], 1, Zoom_cat, []] # 16 cat backbone P3 + - [-1, 3, C2f, [256]] # 17 (P3/8-small) + + - [-1, 1, Conv, [256, 3, 2]] # 18 + - [[-1, 14], 1, Concat, [1]] # 19 cat head P4 + - [-1, 3, C2f, [512]] # 20 (P4/16-medium) + + - [-1, 1, Conv, [512, 3, 2]] # 21 + - [[-1, 10], 1, Concat, [1]] # 22 cat head P5 + - [-1, 3, C2f, [1024]] # 23 (P5/32-large) + + - [[4, 6, 8], 1, DynamicScalSeq, [256]] # 24 args[inchane] + - [[17, -1], 1, Add, []] # 25 + # - [[17, -1], 1, asf_attention_model, []] # 25 + + - [[25, 20, 23], 1, Detect, [nc]] # RTDETRDecoder(P3, P4, P5) \ No newline at end of file diff --git a/yolov8_model/ultralytics/cfg/models/v8/yolov8-ASF-P2.yaml b/yolov8_model/ultralytics/cfg/models/v8/yolov8-ASF-P2.yaml new file mode 100644 index 0000000000000000000000000000000000000000..9be43b7c08d706f10c34745b18207320b09a9f48 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v8/yolov8-ASF-P2.yaml @@ -0,0 +1,60 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv8 object detection model with P3-P5 outputs. For Usage examples see https://docs.ultralytics.com/tasks/detect + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] # YOLOv8n summary: 225 layers, 3157200 parameters, 3157184 gradients, 8.9 GFLOPs + s: [0.33, 0.50, 1024] # YOLOv8s summary: 225 layers, 11166560 parameters, 11166544 gradients, 28.8 GFLOPs + m: [0.67, 0.75, 768] # YOLOv8m summary: 295 layers, 25902640 parameters, 25902624 gradients, 79.3 GFLOPs + l: [1.00, 1.00, 512] # YOLOv8l summary: 365 layers, 43691520 parameters, 43691504 gradients, 165.7 GFLOPs + x: [1.00, 1.25, 512] # YOLOv8x summary: 365 layers, 68229648 parameters, 68229632 gradients, 258.5 GFLOPs + +# YOLOv8.0n backbone +backbone: + # [from, repeats, module, args] + - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2 + - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4 + - [-1, 3, C2f, [128, True]] + - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8 + - [-1, 6, C2f, [256, True]] + - [-1, 1, Conv, [512, 3, 2]] # 5-P4/16 + - [-1, 6, C2f, [512, True]] + - [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32 + - [-1, 3, C2f, [1024, True]] + - [-1, 1, SPPF, [1024, 5]] # 9 + +# YOLOv8.0n head +head: + - [-1, 1, Conv, [512, 1, 1]] # 10 + - [4, 1, Conv, [512, 1, 1]] # 11 + - [[-1, 6, -2], 1, Zoom_cat, []] # 12 cat backbone P4 + - [-1, 3, C2f, [512]] # 13 + + - [-1, 1, Conv, [256, 1, 1]] # 14 + - [2, 1, Conv, [256, 1, 1]] # 15 + - [[-1, 4, -2], 1, Zoom_cat, []] # 16 cat backbone P3 + - [-1, 3, C2f, [256]] # 17 (P3/8-small) + + - [-1, 1, Conv, [256, 3, 2]] # 18 + - [[-1, 14], 1, Concat, [1]] # 19 cat head P4 + - [-1, 3, C2f, [512]] # 20 (P4/16-medium) + + - [-1, 1, Conv, [512, 3, 2]] # 21 + - [[-1, 10], 1, Concat, [1]] # 22 cat head P5 + - [-1, 3, C2f, [512]] # 23 (P5/32-large) + + - [[4, 6, 8], 1, ScalSeq, [256]] # 24 args[inchane] + - [[17, -1], 1, Add, []] # 25 + # - [[17, -1], 1, asf_attention_model, []] # 25 + + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] # 26 + - [[-1, 2], 1, Concat, []] # 27 cat backbone P2 + - [-1, 3, C2f, [128]] # 28 (P2/4-small) + + - [[2, 25, 20], 1, ScalSeq, [128]] # 29 args[inchane] + - [[28, -1], 1, Add, []] # 30 + # - [[28, -1], 1, asf_attention_model, []] # 30 + + - [[30, 25, 20, 23], 1, Detect, [nc]] # RTDETRDecoder(P3, P4, P5) \ No newline at end of file diff --git a/yolov8_model/ultralytics/cfg/models/v8/yolov8-ASF.yaml b/yolov8_model/ultralytics/cfg/models/v8/yolov8-ASF.yaml new file mode 100644 index 0000000000000000000000000000000000000000..319c8cdfb62dc357751b83180adbf21f4b6565fd --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v8/yolov8-ASF.yaml @@ -0,0 +1,52 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv8 object detection model with P3-P5 outputs. For Usage examples see https://docs.ultralytics.com/tasks/detect + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] # YOLOv8n summary: 225 layers, 3157200 parameters, 3157184 gradients, 8.9 GFLOPs + s: [0.33, 0.50, 1024] # YOLOv8s summary: 225 layers, 11166560 parameters, 11166544 gradients, 28.8 GFLOPs + m: [0.67, 0.75, 768] # YOLOv8m summary: 295 layers, 25902640 parameters, 25902624 gradients, 79.3 GFLOPs + l: [1.00, 1.00, 512] # YOLOv8l summary: 365 layers, 43691520 parameters, 43691504 gradients, 165.7 GFLOPs + x: [1.00, 1.25, 512] # YOLOv8x summary: 365 layers, 68229648 parameters, 68229632 gradients, 258.5 GFLOPs + +# YOLOv8.0n backbone +backbone: + # [from, repeats, module, args] + - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2 + - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4 + - [-1, 3, C2f, [128, True]] + - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8 + - [-1, 6, C2f, [256, True]] + - [-1, 1, Conv, [512, 3, 2]] # 5-P4/16 + - [-1, 6, C2f, [512, True]] + - [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32 + - [-1, 3, C2f, [1024, True]] + - [-1, 1, SPPF, [1024, 5]] # 9 + +# YOLOv8.0n head +head: + - [-1, 1, Conv, [512, 1, 1]] # 10 + - [4, 1, Conv, [512, 1, 1]] # 11 + - [[-1, 6, -2], 1, Zoom_cat, []] # 12 cat backbone P4 + - [-1, 3, C2f, [512]] # 13 + + - [-1, 1, Conv, [256, 1, 1]] # 14 + - [2, 1, Conv, [256, 1, 1]] # 15 + - [[-1, 4, -2], 1, Zoom_cat, []] # 16 cat backbone P3 + - [-1, 3, C2f, [256]] # 17 (P3/8-small) + + - [-1, 1, Conv, [256, 3, 2]] # 18 + - [[-1, 14], 1, Concat, [1]] # 19 cat head P4 + - [-1, 3, C2f, [512]] # 20 (P4/16-medium) + + - [-1, 1, Conv, [512, 3, 2]] # 21 + - [[-1, 10], 1, Concat, [1]] # 22 cat head P5 + - [-1, 3, C2f, [1024]] # 23 (P5/32-large) + + - [[4, 6, 8], 1, ScalSeq, [256]] # 24 args[inchane] + - [[17, -1], 1, Add, []] # 25 + # - [[17, -1], 1, asf_attention_model, []] # 25 + + - [[25, 20, 23], 1, Detect, [nc]] # RTDETRDecoder(P3, P4, P5) \ No newline at end of file diff --git a/yolov8_model/ultralytics/cfg/models/v8/yolov8-AggregatedAttention.yaml b/yolov8_model/ultralytics/cfg/models/v8/yolov8-AggregatedAttention.yaml new file mode 100644 index 0000000000000000000000000000000000000000..ca59bc1fb65a695fa361b06444411d885d76a816 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v8/yolov8-AggregatedAttention.yaml @@ -0,0 +1,55 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv8 object detection model with P3-P5 outputs. For Usage examples see https://docs.ultralytics.com/tasks/detect + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] # YOLOv8n summary: 225 layers, 3157200 parameters, 3157184 gradients, 8.9 GFLOPs + s: [0.33, 0.50, 1024] # YOLOv8s summary: 225 layers, 11166560 parameters, 11166544 gradients, 28.8 GFLOPs + m: [0.67, 0.75, 768] # YOLOv8m summary: 295 layers, 25902640 parameters, 25902624 gradients, 79.3 GFLOPs + l: [1.00, 1.00, 512] # YOLOv8l summary: 365 layers, 43691520 parameters, 43691504 gradients, 165.7 GFLOPs + x: [1.00, 1.25, 512] # YOLOv8x summary: 365 layers, 68229648 parameters, 68229632 gradients, 258.5 GFLOPs + +# P2/4 sr_ratio=8 +# P3/8 sr_ratio=4 +# P4/16 sr_ratio=2 +# P5/32 sr_ratio=1 + +# YOLOv8.0n backbone +backbone: + # [from, repeats, module, args] + - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2 + - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4 + - [-1, 3, C2f, [128, True]] + - [-1, 1, TransNeXt_AggregatedAttention, [160, 8]] + - [-1, 1, Conv, [256, 3, 2]] # 4-P3/8 + - [-1, 6, C2f, [256, True]] + - [-1, 1, TransNeXt_AggregatedAttention, [80, 4]] + - [-1, 1, Conv, [512, 3, 2]] # 7-P4/16 + - [-1, 6, C2f, [512, True]] + - [-1, 1, TransNeXt_AggregatedAttention, [40, 2]] + - [-1, 1, Conv, [1024, 3, 2]] # 10-P5/32 + - [-1, 3, C2f, [1024, True]] + - [-1, 1, TransNeXt_AggregatedAttention, [20, 1]] + - [-1, 1, SPPF, [1024, 5]] # 13 + +# YOLOv8.0n head +head: + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] + - [[-1, 9], 1, Concat, [1]] # cat backbone P4 + - [-1, 3, C2f, [512]] # 16 + + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] + - [[-1, 6], 1, Concat, [1]] # cat backbone P3 + - [-1, 3, C2f, [256]] # 19 (P3/8-small) + + - [-1, 1, Conv, [256, 3, 2]] + - [[-1, 16], 1, Concat, [1]] # cat head P4 + - [-1, 3, C2f, [512]] # 22 (P4/16-medium) + + - [-1, 1, Conv, [512, 3, 2]] + - [[-1, 13], 1, Concat, [1]] # cat head P5 + - [-1, 3, C2f, [1024]] # 25 (P5/32-large) + + - [[19, 22, 25], 1, Detect, [nc]] # Detect(P3, P4, P5) diff --git a/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-AKConv.yaml b/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-AKConv.yaml new file mode 100644 index 0000000000000000000000000000000000000000..94e5d93a611f6dc8ac7890627af4ff3b3449d26e --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-AKConv.yaml @@ -0,0 +1,46 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv8 object detection model with P3-P5 outputs. For Usage examples see https://docs.ultralytics.com/tasks/detect + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] # YOLOv8n summary: 225 layers, 3157200 parameters, 3157184 gradients, 8.9 GFLOPs + s: [0.33, 0.50, 1024] # YOLOv8s summary: 225 layers, 11166560 parameters, 11166544 gradients, 28.8 GFLOPs + m: [0.67, 0.75, 768] # YOLOv8m summary: 295 layers, 25902640 parameters, 25902624 gradients, 79.3 GFLOPs + l: [1.00, 1.00, 512] # YOLOv8l summary: 365 layers, 43691520 parameters, 43691504 gradients, 165.7 GFLOPs + x: [1.00, 1.25, 512] # YOLOv8x summary: 365 layers, 68229648 parameters, 68229632 gradients, 258.5 GFLOPs + +# YOLOv8.0n backbone +backbone: + # [from, repeats, module, args] + - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2 + - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4 + - [-1, 3, C2f_AKConv, [128, True]] + - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8 + - [-1, 6, C2f_AKConv, [256, True]] + - [-1, 1, Conv, [512, 3, 2]] # 5-P4/16 + - [-1, 6, C2f_AKConv, [512, True]] + - [-1, 1, AKConv, [1024, 3, 2]] # 7-P5/32 + - [-1, 3, C2f_AKConv, [1024, True]] + - [-1, 1, SPPF, [1024, 5]] # 9 + +# YOLOv8.0n head +head: + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] + - [[-1, 6], 1, Concat, [1]] # cat backbone P4 + - [-1, 3, C2f, [512]] # 12 + + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] + - [[-1, 4], 1, Concat, [1]] # cat backbone P3 + - [-1, 3, C2f, [256]] # 15 (P3/8-small) + + - [-1, 1, Conv, [256, 3, 2]] + - [[-1, 12], 1, Concat, [1]] # cat head P4 + - [-1, 3, C2f, [512]] # 18 (P4/16-medium) + + - [-1, 1, Conv, [512, 3, 2]] + - [[-1, 9], 1, Concat, [1]] # cat head P5 + - [-1, 3, C2f, [1024]] # 21 (P5/32-large) + + - [[15, 18, 21], 1, Detect, [nc]] # Detect(P3, P4, P5) diff --git a/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-AggregatedAtt.yaml b/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-AggregatedAtt.yaml new file mode 100644 index 0000000000000000000000000000000000000000..8434e326579aa2ae49960744604443b6c3e739c6 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-AggregatedAtt.yaml @@ -0,0 +1,51 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv8 object detection model with P3-P5 outputs. For Usage examples see https://docs.ultralytics.com/tasks/detect + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] # YOLOv8n summary: 225 layers, 3157200 parameters, 3157184 gradients, 8.9 GFLOPs + s: [0.33, 0.50, 1024] # YOLOv8s summary: 225 layers, 11166560 parameters, 11166544 gradients, 28.8 GFLOPs + m: [0.67, 0.75, 768] # YOLOv8m summary: 295 layers, 25902640 parameters, 25902624 gradients, 79.3 GFLOPs + l: [1.00, 1.00, 512] # YOLOv8l summary: 365 layers, 43691520 parameters, 43691504 gradients, 165.7 GFLOPs + x: [1.00, 1.25, 512] # YOLOv8x summary: 365 layers, 68229648 parameters, 68229632 gradients, 258.5 GFLOPs + +# P2/4 sr_ratio=8 +# P3/8 sr_ratio=4 +# P4/16 sr_ratio=2 +# P5/32 sr_ratio=1 + +# YOLOv8.0n backbone +backbone: + # [from, repeats, module, args] + - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2 + - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4 + - [-1, 3, C2f, [128, True]] + - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8 + - [-1, 6, C2f, [256, True]] + - [-1, 1, Conv, [512, 3, 2]] # 5-P4/16 + - [-1, 6, C2f_AggregatedAtt, [512, 40, 2, True]] + - [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32 + - [-1, 3, C2f_AggregatedAtt, [1024, 20, 1, True]] + - [-1, 1, SPPF, [1024, 5]] # 9 + +# YOLOv8.0n head +head: + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] + - [[-1, 6], 1, Concat, [1]] # cat backbone P4 + - [-1, 3, C2f, [512]] # 12 + + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] + - [[-1, 4], 1, Concat, [1]] # cat backbone P3 + - [-1, 3, C2f, [256]] # 15 (P3/8-small) + + - [-1, 1, Conv, [256, 3, 2]] + - [[-1, 12], 1, Concat, [1]] # cat head P4 + - [-1, 3, C2f, [512]] # 18 (P4/16-medium) + + - [-1, 1, Conv, [512, 3, 2]] + - [[-1, 9], 1, Concat, [1]] # cat head P5 + - [-1, 3, C2f, [1024]] # 21 (P5/32-large) + + - [[15, 18, 21], 1, Detect, [nc]] # Detect(P3, P4, P5) diff --git a/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-CAA-bifpn.yaml b/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-CAA-bifpn.yaml new file mode 100644 index 0000000000000000000000000000000000000000..cfffbcdab48f68db210fbc11bee1b25d7c014064 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-CAA-bifpn.yaml @@ -0,0 +1,57 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv8 object detection model with P3-P5 outputs. For Usage examples see https://docs.ultralytics.com/tasks/detect + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] # YOLOv8n summary: 225 layers, 3157200 parameters, 3157184 gradients, 8.9 GFLOPs + s: [0.33, 0.50, 1024] # YOLOv8s summary: 225 layers, 11166560 parameters, 11166544 gradients, 28.8 GFLOPs + m: [0.67, 0.75, 768] # YOLOv8m summary: 295 layers, 25902640 parameters, 25902624 gradients, 79.3 GFLOPs + l: [1.00, 1.00, 512] # YOLOv8l summary: 365 layers, 43691520 parameters, 43691504 gradients, 165.7 GFLOPs + x: [1.00, 1.25, 512] # YOLOv8x summary: 365 layers, 68229648 parameters, 68229632 gradients, 258.5 GFLOPs +fusion_mode: bifpn +node_mode: C2f +head_channel: 256 + +# YOLOv8.0n backbone +backbone: + # [from, repeats, module, args] + - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2 + - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4 + - [-1, 3, C2f, [128, True]] + - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8 + - [-1, 6, C2f_CAA, [256, True]] + - [-1, 1, Conv, [512, 3, 2]] # 5-P4/16 + - [-1, 6, C2f_CAA, [512, True]] + - [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32 + - [-1, 3, C2f_CAA, [1024, True]] + - [-1, 1, SPPF, [1024, 5]] # 9 + +# YOLOv8.0n head +head: + - [4, 1, Conv, [head_channel]] # 10-P3/8 + - [6, 1, Conv, [head_channel]] # 11-P4/16 + - [9, 1, Conv, [head_channel]] # 12-P5/32 + + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] # 13 P5->P4 + - [[-1, 11], 1, Fusion, [fusion_mode]] # 14 + - [-1, 3, node_mode, [head_channel]] # 15-P4/16 + + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] # 16 P4->P3 + - [[-1, 10], 1, Fusion, [fusion_mode]] # 17 + - [-1, 3, node_mode, [head_channel]] # 18-P3/8 + + - [2, 1, Conv, [head_channel, 3, 2]] # 19 P2->P3 + - [[-1, 10, 18], 1, Fusion, [fusion_mode]] # 20 + - [-1, 3, node_mode, [head_channel]] # 21-P3/8 + + - [-1, 1, Conv, [head_channel, 3, 2]] # 22 P3->P4 + - [[-1, 11, 15], 1, Fusion, [fusion_mode]] # 23 + - [-1, 3, node_mode, [head_channel]] # 24-P4/16 + + - [-1, 1, Conv, [head_channel, 3, 2]] # 25 P4->P5 + - [[-1, 12], 1, Fusion, [fusion_mode]] # 26 + - [-1, 3, node_mode, [head_channel]] # 27-P5/32 + + - [[21, 24, 27], 1, Detect, [nc]] # Detect(P3, P4, P5) \ No newline at end of file diff --git a/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-CDSA-bifpn.yaml b/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-CDSA-bifpn.yaml new file mode 100644 index 0000000000000000000000000000000000000000..6d9898d47f929608ae5812cd7ff6b42a09f4b41a --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-CDSA-bifpn.yaml @@ -0,0 +1,57 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv8 object detection model with P3-P5 outputs. For Usage examples see https://docs.ultralytics.com/tasks/detect + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] # YOLOv8n summary: 225 layers, 3157200 parameters, 3157184 gradients, 8.9 GFLOPs + s: [0.33, 0.50, 1024] # YOLOv8s summary: 225 layers, 11166560 parameters, 11166544 gradients, 28.8 GFLOPs + m: [0.67, 0.75, 768] # YOLOv8m summary: 295 layers, 25902640 parameters, 25902624 gradients, 79.3 GFLOPs + l: [1.00, 1.00, 512] # YOLOv8l summary: 365 layers, 43691520 parameters, 43691504 gradients, 165.7 GFLOPs + x: [1.00, 1.25, 512] # YOLOv8x summary: 365 layers, 68229648 parameters, 68229632 gradients, 258.5 GFLOPs +fusion_mode: bifpn +node_mode: C2f +head_channel: 256 + +# YOLOv8.0n backbone +backbone: + # [from, repeats, module, args] + - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2 + - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4 + - [-1, 3, C2f, [128, True]] + - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8 + - [-1, 6, C2f_CDSA, [256, True]] + - [-1, 1, Conv, [512, 3, 2]] # 5-P4/16 + - [-1, 6, C2f_CDSA, [512, True]] + - [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32 + - [-1, 3, C2f_CDSA, [1024, True]] + - [-1, 1, SPPF, [1024, 5]] # 9 + +# YOLOv8.0n head +head: + - [4, 1, Conv, [head_channel]] # 10-P3/8 + - [6, 1, Conv, [head_channel]] # 11-P4/16 + - [9, 1, Conv, [head_channel]] # 12-P5/32 + + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] # 13 P5->P4 + - [[-1, 11], 1, Fusion, [fusion_mode]] # 14 + - [-1, 3, node_mode, [head_channel]] # 15-P4/16 + + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] # 16 P4->P3 + - [[-1, 10], 1, Fusion, [fusion_mode]] # 17 + - [-1, 3, node_mode, [head_channel]] # 18-P3/8 + + - [2, 1, Conv, [head_channel, 3, 2]] # 19 P2->P3 + - [[-1, 10, 18], 1, Fusion, [fusion_mode]] # 20 + - [-1, 3, node_mode, [head_channel]] # 21-P3/8 + + - [-1, 1, Conv, [head_channel, 3, 2]] # 22 P3->P4 + - [[-1, 11, 15], 1, Fusion, [fusion_mode]] # 23 + - [-1, 3, node_mode, [head_channel]] # 24-P4/16 + + - [-1, 1, Conv, [head_channel, 3, 2]] # 25 P4->P5 + - [[-1, 12], 1, Fusion, [fusion_mode]] # 26 + - [-1, 3, node_mode, [head_channel]] # 27-P5/32 + + - [[21, 24, 27], 1, Detect, [nc]] # Detect(P3, P4, P5) \ No newline at end of file diff --git a/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-CDSA.yaml b/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-CDSA.yaml new file mode 100644 index 0000000000000000000000000000000000000000..a6ea69137beca5cf77542eaaf201fe7ed41da042 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-CDSA.yaml @@ -0,0 +1,46 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv8 object detection model with P3-P5 outputs. For Usage examples see https://docs.ultralytics.com/tasks/detect + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] # YOLOv8n summary: 225 layers, 3157200 parameters, 3157184 gradients, 8.9 GFLOPs + s: [0.33, 0.50, 1024] # YOLOv8s summary: 225 layers, 11166560 parameters, 11166544 gradients, 28.8 GFLOPs + m: [0.67, 0.75, 768] # YOLOv8m summary: 295 layers, 25902640 parameters, 25902624 gradients, 79.3 GFLOPs + l: [1.00, 1.00, 512] # YOLOv8l summary: 365 layers, 43691520 parameters, 43691504 gradients, 165.7 GFLOPs + x: [1.00, 1.25, 512] # YOLOv8x summary: 365 layers, 68229648 parameters, 68229632 gradients, 258.5 GFLOPs + +# YOLOv8.0n backbone +backbone: + # [from, repeats, module, args] + - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2 + - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4 + - [-1, 3, C2f, [128, True]] + - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8 + - [-1, 6, C2f, [256, True]] + - [-1, 1, Conv, [512, 3, 2]] # 5-P4/16 + - [-1, 6, C2f_CDSA, [512, True]] + - [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32 + - [-1, 3, C2f_CDSA, [1024, True]] + - [-1, 1, SPPF, [1024, 5]] # 9 + +# YOLOv8.0n head +head: + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] + - [[-1, 6], 1, Concat, [1]] # cat backbone P4 + - [-1, 3, C2f, [512]] # 12 + + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] + - [[-1, 4], 1, Concat, [1]] # cat backbone P3 + - [-1, 3, C2f, [256]] # 15 (P3/8-small) + + - [-1, 1, Conv, [256, 3, 2]] + - [[-1, 12], 1, Concat, [1]] # cat head P4 + - [-1, 3, C2f, [512]] # 18 (P4/16-medium) + + - [-1, 1, Conv, [512, 3, 2]] + - [[-1, 9], 1, Concat, [1]] # cat head P5 + - [-1, 3, C2f, [1024]] # 21 (P5/32-large) + + - [[15, 18, 21], 1, Detect, [nc]] # Detect(P3, P4, P5) diff --git a/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-CloAtt.yaml b/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-CloAtt.yaml new file mode 100644 index 0000000000000000000000000000000000000000..7d42eee36b191c25b8bd321b5e206164e32eacc3 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-CloAtt.yaml @@ -0,0 +1,46 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv8 object detection model with P3-P5 outputs. For Usage examples see https://docs.ultralytics.com/tasks/detect + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] # YOLOv8n summary: 225 layers, 3157200 parameters, 3157184 gradients, 8.9 GFLOPs + s: [0.33, 0.50, 1024] # YOLOv8s summary: 225 layers, 11166560 parameters, 11166544 gradients, 28.8 GFLOPs + m: [0.67, 0.75, 768] # YOLOv8m summary: 295 layers, 25902640 parameters, 25902624 gradients, 79.3 GFLOPs + l: [1.00, 1.00, 512] # YOLOv8l summary: 365 layers, 43691520 parameters, 43691504 gradients, 165.7 GFLOPs + x: [1.00, 1.25, 512] # YOLOv8x summary: 365 layers, 68229648 parameters, 68229632 gradients, 258.5 GFLOPs + +# YOLOv8.0n backbone +backbone: + # [from, repeats, module, args] + - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2 + - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4 + - [-1, 3, C2f, [128, True]] + - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8 + - [-1, 6, C2f, [256, True]] + - [-1, 1, Conv, [512, 3, 2]] # 5-P4/16 + - [-1, 6, C2f_CloAtt, [512, True]] + - [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32 + - [-1, 3, C2f_CloAtt, [1024, True]] + - [-1, 1, SPPF, [1024, 5]] # 9 + +# YOLOv8.0n head +head: + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] + - [[-1, 6], 1, Concat, [1]] # cat backbone P4 + - [-1, 3, C2f, [512]] # 12 + + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] + - [[-1, 4], 1, Concat, [1]] # cat backbone P3 + - [-1, 3, C2f, [256]] # 15 (P3/8-small) + + - [-1, 1, Conv, [256, 3, 2]] + - [[-1, 12], 1, Concat, [1]] # cat head P4 + - [-1, 3, C2f, [512]] # 18 (P4/16-medium) + + - [-1, 1, Conv, [512, 3, 2]] + - [[-1, 9], 1, Concat, [1]] # cat head P5 + - [-1, 3, C2f, [1024]] # 21 (P5/32-large) + + - [[15, 18, 21], 1, Detect, [nc]] # Detect(P3, P4, P5) diff --git a/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-ContextGuided.yaml b/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-ContextGuided.yaml new file mode 100644 index 0000000000000000000000000000000000000000..72ff7008b43fc0efa080ee8d98cd5562acd0a1b1 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-ContextGuided.yaml @@ -0,0 +1,46 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv8 object detection model with P3-P5 outputs. For Usage examples see https://docs.ultralytics.com/tasks/detect + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] # YOLOv8n summary: 225 layers, 3157200 parameters, 3157184 gradients, 8.9 GFLOPs + s: [0.33, 0.50, 1024] # YOLOv8s summary: 225 layers, 11166560 parameters, 11166544 gradients, 28.8 GFLOPs + m: [0.67, 0.75, 768] # YOLOv8m summary: 295 layers, 25902640 parameters, 25902624 gradients, 79.3 GFLOPs + l: [1.00, 1.00, 512] # YOLOv8l summary: 365 layers, 43691520 parameters, 43691504 gradients, 165.7 GFLOPs + x: [1.00, 1.25, 512] # YOLOv8x summary: 365 layers, 68229648 parameters, 68229632 gradients, 258.5 GFLOPs + +# YOLOv8.0n backbone +backbone: + # [from, repeats, module, args] + - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2 + - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4 + - [-1, 3, C2f_ContextGuided, [128, True]] + - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8 + - [-1, 6, C2f_ContextGuided, [256, True]] + - [-1, 1, Conv, [512, 3, 2]] # 5-P4/16 + - [-1, 6, C2f_ContextGuided, [512, True]] + - [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32 + - [-1, 3, C2f_ContextGuided, [1024, True]] + - [-1, 1, SPPF, [1024, 5]] # 9 + +# YOLOv8.0n head +head: + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] + - [[-1, 6], 1, Concat, [1]] # cat backbone P4 + - [-1, 3, C2f_ContextGuided, [512]] # 12 + + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] + - [[-1, 4], 1, Concat, [1]] # cat backbone P3 + - [-1, 3, C2f_ContextGuided, [256]] # 15 (P3/8-small) + + - [-1, 1, Conv, [256, 3, 2]] + - [[-1, 12], 1, Concat, [1]] # cat head P4 + - [-1, 3, C2f_ContextGuided, [512]] # 18 (P4/16-medium) + + - [-1, 1, Conv, [512, 3, 2]] + - [[-1, 9], 1, Concat, [1]] # cat head P5 + - [-1, 3, C2f_ContextGuided, [1024]] # 21 (P5/32-large) + + - [[15, 18, 21], 1, Detect, [nc]] # Detect(P3, P4, P5) \ No newline at end of file diff --git a/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-DAttention.yaml b/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-DAttention.yaml new file mode 100644 index 0000000000000000000000000000000000000000..1008f37af97a48d930d6aa3eca39713b970f3a51 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-DAttention.yaml @@ -0,0 +1,46 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv8 object detection model with P3-P5 outputs. For Usage examples see https://docs.ultralytics.com/tasks/detect + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] # YOLOv8n summary: 225 layers, 3157200 parameters, 3157184 gradients, 8.9 GFLOPs + s: [0.33, 0.50, 1024] # YOLOv8s summary: 225 layers, 11166560 parameters, 11166544 gradients, 28.8 GFLOPs + m: [0.67, 0.75, 768] # YOLOv8m summary: 295 layers, 25902640 parameters, 25902624 gradients, 79.3 GFLOPs + l: [1.00, 1.00, 512] # YOLOv8l summary: 365 layers, 43691520 parameters, 43691504 gradients, 165.7 GFLOPs + x: [1.00, 1.25, 512] # YOLOv8x summary: 365 layers, 68229648 parameters, 68229632 gradients, 258.5 GFLOPs + +# YOLOv8.0n backbone +backbone: + # [from, repeats, module, args] + - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2 + - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4 + - [-1, 3, C2f, [128, True]] + - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8 + - [-1, 6, C2f, [256, True]] + - [-1, 1, Conv, [512, 3, 2]] # 5-P4/16 + - [-1, 6, C2f, [512, True]] + - [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32 + - [-1, 3, C2f_DAttention, [1024, [20, 20], True]] + - [-1, 1, SPPF, [1024, 5]] # 9 + +# YOLOv8.0n head +head: + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] + - [[-1, 6], 1, Concat, [1]] # cat backbone P4 + - [-1, 3, C2f, [512]] # 12 + + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] + - [[-1, 4], 1, Concat, [1]] # cat backbone P3 + - [-1, 3, C2f, [256]] # 15 (P3/8-small) + + - [-1, 1, Conv, [256, 3, 2]] + - [[-1, 12], 1, Concat, [1]] # cat head P4 + - [-1, 3, C2f, [512]] # 18 (P4/16-medium) + + - [-1, 1, Conv, [512, 3, 2]] + - [[-1, 9], 1, Concat, [1]] # cat head P5 + - [-1, 3, C2f, [1024]] # 21 (P5/32-large) + + - [[15, 18, 21], 1, Detect, [nc]] # Detect(P3, P4, P5) diff --git a/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-DBB.yaml b/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-DBB.yaml new file mode 100644 index 0000000000000000000000000000000000000000..c43da696ff31b3f0e68ae21e3afd90483815286c --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-DBB.yaml @@ -0,0 +1,46 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv8 object detection model with P3-P5 outputs. For Usage examples see https://docs.ultralytics.com/tasks/detect + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] # YOLOv8n summary: 225 layers, 3157200 parameters, 3157184 gradients, 8.9 GFLOPs + s: [0.33, 0.50, 1024] # YOLOv8s summary: 225 layers, 11166560 parameters, 11166544 gradients, 28.8 GFLOPs + m: [0.67, 0.75, 768] # YOLOv8m summary: 295 layers, 25902640 parameters, 25902624 gradients, 79.3 GFLOPs + l: [1.00, 1.00, 512] # YOLOv8l summary: 365 layers, 43691520 parameters, 43691504 gradients, 165.7 GFLOPs + x: [1.00, 1.25, 512] # YOLOv8x summary: 365 layers, 68229648 parameters, 68229632 gradients, 258.5 GFLOPs + +# YOLOv8.0n backbone +backbone: + # [from, repeats, module, args] + - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2 + - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4 + - [-1, 3, C2f_DBB, [128, True]] + - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8 + - [-1, 6, C2f_DBB, [256, True]] + - [-1, 1, Conv, [512, 3, 2]] # 5-P4/16 + - [-1, 6, C2f_DBB, [512, True]] + - [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32 + - [-1, 3, C2f_DBB, [1024, True]] + - [-1, 1, SPPF, [1024, 5]] # 9 + +# YOLOv8.0n head +head: + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] + - [[-1, 6], 1, Concat, [1]] # cat backbone P4 + - [-1, 3, C2f_DBB, [512]] # 12 + + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] + - [[-1, 4], 1, Concat, [1]] # cat backbone P3 + - [-1, 3, C2f_DBB, [256]] # 15 (P3/8-small) + + - [-1, 1, Conv, [256, 3, 2]] + - [[-1, 12], 1, Concat, [1]] # cat head P4 + - [-1, 3, C2f_DBB, [512]] # 18 (P4/16-medium) + + - [-1, 1, Conv, [512, 3, 2]] + - [[-1, 9], 1, Concat, [1]] # cat head P5 + - [-1, 3, C2f_DBB, [1024]] # 21 (P5/32-large) + + - [[15, 18, 21], 1, Detect, [nc]] # Detect(P3, P4, P5) \ No newline at end of file diff --git a/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-DCNV2-Dynamic.yaml b/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-DCNV2-Dynamic.yaml new file mode 100644 index 0000000000000000000000000000000000000000..fa07c9dee2425254a9773a3fde3a15b9637f550e --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-DCNV2-Dynamic.yaml @@ -0,0 +1,46 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv8 object detection model with P3-P5 outputs. For Usage examples see https://docs.ultralytics.com/tasks/detect + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] # YOLOv8n summary: 225 layers, 3157200 parameters, 3157184 gradients, 8.9 GFLOPs + s: [0.33, 0.50, 1024] # YOLOv8s summary: 225 layers, 11166560 parameters, 11166544 gradients, 28.8 GFLOPs + m: [0.67, 0.75, 768] # YOLOv8m summary: 295 layers, 25902640 parameters, 25902624 gradients, 79.3 GFLOPs + l: [1.00, 1.00, 512] # YOLOv8l summary: 365 layers, 43691520 parameters, 43691504 gradients, 165.7 GFLOPs + x: [1.00, 1.25, 512] # YOLOv8x summary: 365 layers, 68229648 parameters, 68229632 gradients, 258.5 GFLOPs + +# YOLOv8.0n backbone +backbone: + # [from, repeats, module, args] + - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2 + - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4 + - [-1, 3, C2f, [128, True]] + - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8 + - [-1, 6, C2f, [256, True]] + - [-1, 1, Conv, [512, 3, 2]] # 5-P4/16 + - [-1, 6, C2f, [512, True]] + - [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32 + - [-1, 3, C2f_DCNv2_Dynamic, [1024, True]] + - [-1, 1, SPPF, [1024, 5]] # 9 + +# YOLOv8.0n head +head: + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] + - [[-1, 6], 1, Concat, [1]] # cat backbone P4 + - [-1, 3, C2f, [512]] # 12 + + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] + - [[-1, 4], 1, Concat, [1]] # cat backbone P3 + - [-1, 3, C2f, [256]] # 15 (P3/8-small) + + - [-1, 1, Conv, [256, 3, 2]] + - [[-1, 12], 1, Concat, [1]] # cat head P4 + - [-1, 3, C2f, [512]] # 18 (P4/16-medium) + + - [-1, 1, Conv, [512, 3, 2]] + - [[-1, 9], 1, Concat, [1]] # cat head P5 + - [-1, 3, C2f, [1024]] # 21 (P5/32-large) + + - [[15, 18, 21], 1, Detect, [nc]] # Detect(P3, P4, P5) diff --git a/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-DCNV2.yaml b/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-DCNV2.yaml new file mode 100644 index 0000000000000000000000000000000000000000..f4cb8878792c3066cfed129a5fd1937233f879a4 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-DCNV2.yaml @@ -0,0 +1,46 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv8 object detection model with P3-P5 outputs. For Usage examples see https://docs.ultralytics.com/tasks/detect + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] # YOLOv8n summary: 225 layers, 3157200 parameters, 3157184 gradients, 8.9 GFLOPs + s: [0.33, 0.50, 1024] # YOLOv8s summary: 225 layers, 11166560 parameters, 11166544 gradients, 28.8 GFLOPs + m: [0.67, 0.75, 768] # YOLOv8m summary: 295 layers, 25902640 parameters, 25902624 gradients, 79.3 GFLOPs + l: [1.00, 1.00, 512] # YOLOv8l summary: 365 layers, 43691520 parameters, 43691504 gradients, 165.7 GFLOPs + x: [1.00, 1.25, 512] # YOLOv8x summary: 365 layers, 68229648 parameters, 68229632 gradients, 258.5 GFLOPs + +# YOLOv8.0n backbone +backbone: + # [from, repeats, module, args] + - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2 + - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4 + - [-1, 3, C2f, [128, True]] + - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8 + - [-1, 6, C2f, [256, True]] + - [-1, 1, Conv, [512, 3, 2]] # 5-P4/16 + - [-1, 6, C2f, [512, True]] + - [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32 + - [-1, 3, C2f_DCNv2, [1024, True]] + - [-1, 1, SPPF, [1024, 5]] # 9 + +# YOLOv8.0n head +head: + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] + - [[-1, 6], 1, Concat, [1]] # cat backbone P4 + - [-1, 3, C2f, [512]] # 12 + + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] + - [[-1, 4], 1, Concat, [1]] # cat backbone P3 + - [-1, 3, C2f, [256]] # 15 (P3/8-small) + + - [-1, 1, Conv, [256, 3, 2]] + - [[-1, 12], 1, Concat, [1]] # cat head P4 + - [-1, 3, C2f, [512]] # 18 (P4/16-medium) + + - [-1, 1, Conv, [512, 3, 2]] + - [[-1, 9], 1, Concat, [1]] # cat head P5 + - [-1, 3, C2f, [1024]] # 21 (P5/32-large) + + - [[15, 18, 21], 1, Detect, [nc]] # Detect(P3, P4, P5) diff --git a/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-DCNV3.yaml b/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-DCNV3.yaml new file mode 100644 index 0000000000000000000000000000000000000000..7f2deffcf84e9669a23b9b2ab585e371af18bb48 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-DCNV3.yaml @@ -0,0 +1,46 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv8 object detection model with P3-P5 outputs. For Usage examples see https://docs.ultralytics.com/tasks/detect + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] # YOLOv8n summary: 225 layers, 3157200 parameters, 3157184 gradients, 8.9 GFLOPs + s: [0.33, 0.50, 1024] # YOLOv8s summary: 225 layers, 11166560 parameters, 11166544 gradients, 28.8 GFLOPs + m: [0.67, 0.75, 768] # YOLOv8m summary: 295 layers, 25902640 parameters, 25902624 gradients, 79.3 GFLOPs + l: [1.00, 1.00, 512] # YOLOv8l summary: 365 layers, 43691520 parameters, 43691504 gradients, 165.7 GFLOPs + x: [1.00, 1.25, 512] # YOLOv8x summary: 365 layers, 68229648 parameters, 68229632 gradients, 258.5 GFLOPs + +# YOLOv8.0n backbone +backbone: + # [from, repeats, module, args] + - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2 + - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4 + - [-1, 3, C2f, [128, True]] + - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8 + - [-1, 6, C2f, [256, True]] + - [-1, 1, Conv, [512, 3, 2]] # 5-P4/16 + - [-1, 6, C2f, [512, True]] + - [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32 + - [-1, 3, C2f_DCNv3, [1024, True]] + - [-1, 1, SPPF, [1024, 5]] # 9 + +# YOLOv8.0n head +head: + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] + - [[-1, 6], 1, Concat, [1]] # cat backbone P4 + - [-1, 3, C2f, [512]] # 12 + + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] + - [[-1, 4], 1, Concat, [1]] # cat backbone P3 + - [-1, 3, C2f, [256]] # 15 (P3/8-small) + + - [-1, 1, Conv, [256, 3, 2]] + - [[-1, 12], 1, Concat, [1]] # cat head P4 + - [-1, 3, C2f, [512]] # 18 (P4/16-medium) + + - [-1, 1, Conv, [512, 3, 2]] + - [[-1, 9], 1, Concat, [1]] # cat head P5 + - [-1, 3, C2f, [1024]] # 21 (P5/32-large) + + - [[15, 18, 21], 1, Detect, [nc]] # Detect(P3, P4, P5) diff --git a/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-DCNV4.yaml b/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-DCNV4.yaml new file mode 100644 index 0000000000000000000000000000000000000000..401fe2b4d3a447774b14fd496f9c2992900d8b4a --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-DCNV4.yaml @@ -0,0 +1,46 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv8 object detection model with P3-P5 outputs. For Usage examples see https://docs.ultralytics.com/tasks/detect + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] # YOLOv8n summary: 225 layers, 3157200 parameters, 3157184 gradients, 8.9 GFLOPs + s: [0.33, 0.50, 1024] # YOLOv8s summary: 225 layers, 11166560 parameters, 11166544 gradients, 28.8 GFLOPs + m: [0.67, 0.75, 768] # YOLOv8m summary: 295 layers, 25902640 parameters, 25902624 gradients, 79.3 GFLOPs + l: [1.00, 1.00, 512] # YOLOv8l summary: 365 layers, 43691520 parameters, 43691504 gradients, 165.7 GFLOPs + x: [1.00, 1.25, 512] # YOLOv8x summary: 365 layers, 68229648 parameters, 68229632 gradients, 258.5 GFLOPs + +# YOLOv8.0n backbone +backbone: + # [from, repeats, module, args] + - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2 + - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4 + - [-1, 3, C2f, [128, True]] + - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8 + - [-1, 6, C2f, [256, True]] + - [-1, 1, Conv, [512, 3, 2]] # 5-P4/16 + - [-1, 6, C2f, [512, True]] + - [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32 + - [-1, 3, C2f_DCNv4, [1024, True]] + - [-1, 1, SPPF, [1024, 5]] # 9 + +# YOLOv8.0n head +head: + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] + - [[-1, 6], 1, Concat, [1]] # cat backbone P4 + - [-1, 3, C2f, [512]] # 12 + + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] + - [[-1, 4], 1, Concat, [1]] # cat backbone P3 + - [-1, 3, C2f, [256]] # 15 (P3/8-small) + + - [-1, 1, Conv, [256, 3, 2]] + - [[-1, 12], 1, Concat, [1]] # cat head P4 + - [-1, 3, C2f, [512]] # 18 (P4/16-medium) + + - [-1, 1, Conv, [512, 3, 2]] + - [[-1, 9], 1, Concat, [1]] # cat head P5 + - [-1, 3, C2f, [1024]] # 21 (P5/32-large) + + - [[15, 18, 21], 1, Detect, [nc]] # Detect(P3, P4, P5) \ No newline at end of file diff --git a/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-DLKA.yaml b/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-DLKA.yaml new file mode 100644 index 0000000000000000000000000000000000000000..03f0171a08eafa5ba07ff117ce0b0784df614759 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-DLKA.yaml @@ -0,0 +1,46 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv8 object detection model with P3-P5 outputs. For Usage examples see https://docs.ultralytics.com/tasks/detect + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] # YOLOv8n summary: 225 layers, 3157200 parameters, 3157184 gradients, 8.9 GFLOPs + s: [0.33, 0.50, 1024] # YOLOv8s summary: 225 layers, 11166560 parameters, 11166544 gradients, 28.8 GFLOPs + m: [0.67, 0.75, 768] # YOLOv8m summary: 295 layers, 25902640 parameters, 25902624 gradients, 79.3 GFLOPs + l: [1.00, 1.00, 512] # YOLOv8l summary: 365 layers, 43691520 parameters, 43691504 gradients, 165.7 GFLOPs + x: [1.00, 1.25, 512] # YOLOv8x summary: 365 layers, 68229648 parameters, 68229632 gradients, 258.5 GFLOPs + +# YOLOv8.0n backbone +backbone: + # [from, repeats, module, args] + - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2 + - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4 + - [-1, 3, C2f, [128, True]] + - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8 + - [-1, 6, C2f, [256, True]] + - [-1, 1, Conv, [512, 3, 2]] # 5-P4/16 + - [-1, 6, C2f, [512, True]] + - [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32 + - [-1, 3, C2f_DLKA, [1024, True]] + - [-1, 1, SPPF, [1024, 5]] # 9 + +# YOLOv8.0n head +head: + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] + - [[-1, 6], 1, Concat, [1]] # cat backbone P4 + - [-1, 3, C2f, [512]] # 12 + + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] + - [[-1, 4], 1, Concat, [1]] # cat backbone P3 + - [-1, 3, C2f, [256]] # 15 (P3/8-small) + + - [-1, 1, Conv, [256, 3, 2]] + - [[-1, 12], 1, Concat, [1]] # cat head P4 + - [-1, 3, C2f, [512]] # 18 (P4/16-medium) + + - [-1, 1, Conv, [512, 3, 2]] + - [[-1, 9], 1, Concat, [1]] # cat head P5 + - [-1, 3, C2f, [1024]] # 21 (P5/32-large) + + - [[15, 18, 21], 1, Detect, [nc]] # Detect(P3, P4, P5) diff --git a/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-DRB.yaml b/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-DRB.yaml new file mode 100644 index 0000000000000000000000000000000000000000..c8f555a2bc85d7d47bc22bb55614df8cb4da8a26 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-DRB.yaml @@ -0,0 +1,46 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv8 object detection model with P3-P5 outputs. For Usage examples see https://docs.ultralytics.com/tasks/detect + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] # YOLOv8n summary: 225 layers, 3157200 parameters, 3157184 gradients, 8.9 GFLOPs + s: [0.33, 0.50, 1024] # YOLOv8s summary: 225 layers, 11166560 parameters, 11166544 gradients, 28.8 GFLOPs + m: [0.67, 0.75, 768] # YOLOv8m summary: 295 layers, 25902640 parameters, 25902624 gradients, 79.3 GFLOPs + l: [1.00, 1.00, 512] # YOLOv8l summary: 365 layers, 43691520 parameters, 43691504 gradients, 165.7 GFLOPs + x: [1.00, 1.25, 512] # YOLOv8x summary: 365 layers, 68229648 parameters, 68229632 gradients, 258.5 GFLOPs + +# YOLOv8.0n backbone +backbone: + # [from, repeats, module, args] + - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2 + - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4 + - [-1, 3, C2f_DRB, [128, True]] + - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8 + - [-1, 6, C2f_DRB, [256, True]] + - [-1, 1, Conv, [512, 3, 2]] # 5-P4/16 + - [-1, 6, C2f_DRB, [512, True]] + - [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32 + - [-1, 3, C2f_DRB, [1024, True]] + - [-1, 1, SPPF, [1024, 5]] # 9 + +# YOLOv8.0n head +head: + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] + - [[-1, 6], 1, Concat, [1]] # cat backbone P4 + - [-1, 3, C2f_DRB, [512]] # 12 + + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] + - [[-1, 4], 1, Concat, [1]] # cat backbone P3 + - [-1, 3, C2f_DRB, [256]] # 15 (P3/8-small) + + - [-1, 1, Conv, [256, 3, 2]] + - [[-1, 12], 1, Concat, [1]] # cat head P4 + - [-1, 3, C2f_DRB, [512]] # 18 (P4/16-medium) + + - [-1, 1, Conv, [512, 3, 2]] + - [[-1, 9], 1, Concat, [1]] # cat head P5 + - [-1, 3, C2f_DRB, [1024]] # 21 (P5/32-large) + + - [[15, 18, 21], 1, Detect, [nc]] # Detect(P3, P4, P5) diff --git a/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-DWR-DRB.yaml b/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-DWR-DRB.yaml new file mode 100644 index 0000000000000000000000000000000000000000..7462de1af27b62314eb7a29821cc30ea06e0ad36 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-DWR-DRB.yaml @@ -0,0 +1,46 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv8 object detection model with P3-P5 outputs. For Usage examples see https://docs.ultralytics.com/tasks/detect + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] # YOLOv8n summary: 225 layers, 3157200 parameters, 3157184 gradients, 8.9 GFLOPs + s: [0.33, 0.50, 1024] # YOLOv8s summary: 225 layers, 11166560 parameters, 11166544 gradients, 28.8 GFLOPs + m: [0.67, 0.75, 768] # YOLOv8m summary: 295 layers, 25902640 parameters, 25902624 gradients, 79.3 GFLOPs + l: [1.00, 1.00, 512] # YOLOv8l summary: 365 layers, 43691520 parameters, 43691504 gradients, 165.7 GFLOPs + x: [1.00, 1.25, 512] # YOLOv8x summary: 365 layers, 68229648 parameters, 68229632 gradients, 258.5 GFLOPs + +# YOLOv8.0n backbone +backbone: + # [from, repeats, module, args] + - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2 + - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4 + - [-1, 3, C2f, [128, True]] + - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8 + - [-1, 6, C2f, [256, True]] + - [-1, 1, Conv, [512, 3, 2]] # 5-P4/16 + - [-1, 6, C2f_DWR_DRB, [512, True]] + - [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32 + - [-1, 3, C2f_DWR_DRB, [1024, True]] + - [-1, 1, SPPF, [1024, 5]] # 9 + +# YOLOv8.0n head +head: + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] + - [[-1, 6], 1, Concat, [1]] # cat backbone P4 + - [-1, 3, C2f, [512]] # 12 + + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] + - [[-1, 4], 1, Concat, [1]] # cat backbone P3 + - [-1, 3, C2f, [256]] # 15 (P3/8-small) + + - [-1, 1, Conv, [256, 3, 2]] + - [[-1, 12], 1, Concat, [1]] # cat head P4 + - [-1, 3, C2f, [512]] # 18 (P4/16-medium) + + - [-1, 1, Conv, [512, 3, 2]] + - [[-1, 9], 1, Concat, [1]] # cat head P5 + - [-1, 3, C2f, [1024]] # 21 (P5/32-large) + + - [[15, 18, 21], 1, Detect, [nc]] # Detect(P3, P4, P5) diff --git a/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-DWR.yaml b/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-DWR.yaml new file mode 100644 index 0000000000000000000000000000000000000000..c1564101195cc6e954745ebb3b1cc82b79fb6f66 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v8/yolov8-C2f-DWR.yaml @@ -0,0 +1,46 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv8 object detection model with P3-P5 outputs. For Usage examples see https://docs.ultralytics.com/tasks/detect + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] # YOLOv8n summary: 225 layers, 3157200 parameters, 3157184 gradients, 8.9 GFLOPs + s: [0.33, 0.50, 1024] # YOLOv8s summary: 225 layers, 11166560 parameters, 11166544 gradients, 28.8 GFLOPs + m: [0.67, 0.75, 768] # YOLOv8m summary: 295 layers, 25902640 parameters, 25902624 gradients, 79.3 GFLOPs + l: [1.00, 1.00, 512] # YOLOv8l summary: 365 layers, 43691520 parameters, 43691504 gradients, 165.7 GFLOPs + x: [1.00, 1.25, 512] # YOLOv8x summary: 365 layers, 68229648 parameters, 68229632 gradients, 258.5 GFLOPs + +# YOLOv8.0n backbone +backbone: + # [from, repeats, module, args] + - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2 + - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4 + - [-1, 3, C2f, [128, True]] + - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8 + - [-1, 6, C2f, [256, True]] + - [-1, 1, Conv, [512, 3, 2]] # 5-P4/16 + - [-1, 6, C2f_DWR, [512, True]] + - [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32 + - [-1, 3, C2f_DWR, [1024, True]] + - [-1, 1, SPPF, [1024, 5]] # 9 + +# YOLOv8.0n head +head: + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] + - [[-1, 6], 1, Concat, [1]] # cat backbone P4 + - [-1, 3, C2f, [512]] # 12 + + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] + - [[-1, 4], 1, Concat, [1]] # cat backbone P3 + - [-1, 3, C2f, [256]] # 15 (P3/8-small) + + - [-1, 1, Conv, [256, 3, 2]] + - [[-1, 12], 1, Concat, [1]] # cat head P4 + - [-1, 3, C2f, [512]] # 18 (P4/16-medium) + + - [-1, 1, Conv, [512, 3, 2]] + - [[-1, 9], 1, Concat, [1]] # cat head P5 + - [-1, 3, C2f, [1024]] # 21 (P5/32-large) + + - [[15, 18, 21], 1, Detect, [nc]] # Detect(P3, P4, P5) diff --git a/yolov8_model/ultralytics/cfg/models/v8/yolov8-act.yaml b/yolov8_model/ultralytics/cfg/models/v8/yolov8-act.yaml new file mode 100644 index 0000000000000000000000000000000000000000..4c737dc765a72246e4d936d12f0940b5880adea0 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v8/yolov8-act.yaml @@ -0,0 +1,47 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv8 object detection model with P3-P5 outputs. For Usage examples see https://docs.ultralytics.com/tasks/detect + +# Parameters +act: nn.SELU() +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] # YOLOv8n summary: 225 layers, 3157200 parameters, 3157184 gradients, 8.9 GFLOPs + s: [0.33, 0.50, 1024] # YOLOv8s summary: 225 layers, 11166560 parameters, 11166544 gradients, 28.8 GFLOPs + m: [0.67, 0.75, 768] # YOLOv8m summary: 295 layers, 25902640 parameters, 25902624 gradients, 79.3 GFLOPs + l: [1.00, 1.00, 512] # YOLOv8l summary: 365 layers, 43691520 parameters, 43691504 gradients, 165.7 GFLOPs + x: [1.00, 1.25, 512] # YOLOv8x summary: 365 layers, 68229648 parameters, 68229632 gradients, 258.5 GFLOPs + +# YOLOv8.0n backbone +backbone: + # [from, repeats, module, args] + - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2 + - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4 + - [-1, 3, C2f, [128, True]] + - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8 + - [-1, 6, C2f, [256, True]] + - [-1, 1, Conv, [512, 3, 2]] # 5-P4/16 + - [-1, 6, C2f, [512, True]] + - [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32 + - [-1, 3, C2f, [1024, True]] + - [-1, 1, SPPF, [1024, 5]] # 9 + +# YOLOv8.0n head +head: + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] + - [[-1, 6], 1, Concat, [1]] # cat backbone P4 + - [-1, 3, C2f, [512]] # 12 + + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] + - [[-1, 4], 1, Concat, [1]] # cat backbone P3 + - [-1, 3, C2f, [256]] # 15 (P3/8-small) + + - [-1, 1, Conv, [256, 3, 2]] + - [[-1, 12], 1, Concat, [1]] # cat head P4 + - [-1, 3, C2f, [512]] # 18 (P4/16-medium) + + - [-1, 1, Conv, [512, 3, 2]] + - [[-1, 9], 1, Concat, [1]] # cat head P5 + - [-1, 3, C2f, [1024]] # 21 (P5/32-large) + + - [[15, 18, 21], 1, Detect, [nc]] # Detect(P3, P4, P5) diff --git a/yolov8_model/ultralytics/cfg/models/v8/yolov8-attention.yaml b/yolov8_model/ultralytics/cfg/models/v8/yolov8-attention.yaml new file mode 100644 index 0000000000000000000000000000000000000000..ddef2a7e46932a89495b7f9c5d4ee72ee1669baf --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v8/yolov8-attention.yaml @@ -0,0 +1,56 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv8 object detection model with P3-P5 outputs. For Usage examples see https://docs.ultralytics.com/tasks/detect + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] # YOLOv8n summary: 225 layers, 3157200 parameters, 3157184 gradients, 8.9 GFLOPs + s: [0.33, 0.50, 1024] # YOLOv8s summary: 225 layers, 11166560 parameters, 11166544 gradients, 28.8 GFLOPs + m: [0.67, 0.75, 768] # YOLOv8m summary: 295 layers, 25902640 parameters, 25902624 gradients, 79.3 GFLOPs + l: [1.00, 1.00, 512] # YOLOv8l summary: 365 layers, 43691520 parameters, 43691504 gradients, 165.7 GFLOPs + x: [1.00, 1.25, 512] # YOLOv8x summary: 365 layers, 68229648 parameters, 68229632 gradients, 258.5 GFLOPs + +# YOLOv8.0n backbone +backbone: + # [from, repeats, module, args] + - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2 + - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4 + - [-1, 3, C2f, [128, True]] + - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8 + - [-1, 6, C2f, [256, True]] + - [-1, 1, Conv, [512, 3, 2]] # 5-P4/16 + - [-1, 6, C2f, [512, True]] + - [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32 + - [-1, 3, C2f, [1024, True]] + - [-1, 1, SPPF, [1024, 5]] # 9 +# - [-1, 1, BiLevelRoutingAttention_nchw, [8, 7]] # 10 +# - [-1, 1, BiLevelRoutingAttention, [8, 7]] # 10 +# - [-1, 1, SimAM, [1e-4]] # 10 +# - [-1, 1, TripletAttention, []] # 10 +# - [-1, 1, CPCA, []] # 10 +# - [-1, 1, MPCA, []] # 10 +# - [-1, 1, SegNext_Attention, []] # 10 +# - [-1, 1, DAttention, [[20, 20]]] # 10 +# - [-1, 1, MLCA, []] # 10 + - [-1, 1, LocalWindowAttention, []] # 10 + +# YOLOv8.0n head +head: + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] + - [[-1, 6], 1, Concat, [1]] # cat backbone P4 + - [-1, 3, C2f, [512]] # 13 + + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] + - [[-1, 4], 1, Concat, [1]] # cat backbone P3 + - [-1, 3, C2f, [256]] # 16 (P3/8-small) + + - [-1, 1, Conv, [256, 3, 2]] + - [[-1, 13], 1, Concat, [1]] # cat head P4 + - [-1, 3, C2f, [512]] # 19 (P4/16-medium) + + - [-1, 1, Conv, [512, 3, 2]] + - [[-1, 10], 1, Concat, [1]] # cat head P5 + - [-1, 3, C2f, [1024]] # 22 (P5/32-large) + + - [[16, 19, 22], 1, Detect, [nc]] # Detect(P3, P4, P5) diff --git a/yolov8_model/ultralytics/cfg/models/v8/yolov8-aux.yaml b/yolov8_model/ultralytics/cfg/models/v8/yolov8-aux.yaml new file mode 100644 index 0000000000000000000000000000000000000000..64bf9127577b8b0c3c66da4a3e485fa34949d0a8 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v8/yolov8-aux.yaml @@ -0,0 +1,46 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv8 object detection model with P3-P5 outputs. For Usage examples see https://docs.ultralytics.com/tasks/detect + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] # YOLOv8n summary: 225 layers, 3157200 parameters, 3157184 gradients, 8.9 GFLOPs + s: [0.33, 0.50, 1024] # YOLOv8s summary: 225 layers, 11166560 parameters, 11166544 gradients, 28.8 GFLOPs + m: [0.67, 0.75, 768] # YOLOv8m summary: 295 layers, 25902640 parameters, 25902624 gradients, 79.3 GFLOPs + l: [1.00, 1.00, 512] # YOLOv8l summary: 365 layers, 43691520 parameters, 43691504 gradients, 165.7 GFLOPs + x: [1.00, 1.25, 512] # YOLOv8x summary: 365 layers, 68229648 parameters, 68229632 gradients, 258.5 GFLOPs + +# YOLOv8.0n backbone +backbone: + # [from, repeats, module, args] + - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2 + - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4 + - [-1, 3, C2f, [128, True]] + - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8 + - [-1, 6, C2f, [256, True]] + - [-1, 1, Conv, [512, 3, 2]] # 5-P4/16 + - [-1, 6, C2f, [512, True]] + - [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32 + - [-1, 3, C2f, [1024, True]] + - [-1, 1, SPPF, [1024, 5]] # 9 + +# YOLOv8.0n head +head: + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] + - [[-1, 6], 1, Concat, [1]] # cat backbone P4 + - [-1, 3, C2f, [512]] # 12 + + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] + - [[-1, 4], 1, Concat, [1]] # cat backbone P3 + - [-1, 3, C2f, [256]] # 15 (P3/8-small) + + - [-1, 1, Conv, [256, 3, 2]] + - [[-1, 12], 1, Concat, [1]] # cat head P4 + - [-1, 3, C2f, [512]] # 18 (P4/16-medium) + + - [-1, 1, Conv, [512, 3, 2]] + - [[-1, 9], 1, Concat, [1]] # cat head P5 + - [-1, 3, C2f, [1024]] # 21 (P5/32-large) + + - [[15, 18, 21, 15, 12, 9], 1, DetectAux, [nc]] # Detect(P3, P4, P5) diff --git a/yolov8_model/ultralytics/cfg/models/v8/yolov8-bifpn-SDI.yaml b/yolov8_model/ultralytics/cfg/models/v8/yolov8-bifpn-SDI.yaml new file mode 100644 index 0000000000000000000000000000000000000000..081c4ca4dd95d03f4bd8cf29fba9241501ac0e4d --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v8/yolov8-bifpn-SDI.yaml @@ -0,0 +1,57 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv8 object detection model with P3-P5 outputs. For Usage examples see https://docs.ultralytics.com/tasks/detect + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] # YOLOv8n summary: 225 layers, 3157200 parameters, 3157184 gradients, 8.9 GFLOPs + s: [0.33, 0.50, 1024] # YOLOv8s summary: 225 layers, 11166560 parameters, 11166544 gradients, 28.8 GFLOPs + m: [0.67, 0.75, 768] # YOLOv8m summary: 295 layers, 25902640 parameters, 25902624 gradients, 79.3 GFLOPs + l: [1.00, 1.00, 512] # YOLOv8l summary: 365 layers, 43691520 parameters, 43691504 gradients, 165.7 GFLOPs + x: [1.00, 1.25, 512] # YOLOv8x summary: 365 layers, 68229648 parameters, 68229632 gradients, 258.5 GFLOPs +fusion_mode: SDI +node_mode: C2f +head_channel: 256 + +# YOLOv8.0n backbone +backbone: + # [from, repeats, module, args] + - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2 + - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4 + - [-1, 3, C2f, [128, True]] + - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8 + - [-1, 6, C2f, [256, True]] + - [-1, 1, Conv, [512, 3, 2]] # 5-P4/16 + - [-1, 6, C2f, [512, True]] + - [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32 + - [-1, 3, C2f, [1024, True]] + - [-1, 1, SPPF, [1024, 5]] # 9 + +# YOLOv8.0n head +head: + - [4, 1, Conv, [head_channel]] # 10-P3/8 + - [6, 1, Conv, [head_channel]] # 11-P4/16 + - [9, 1, Conv, [head_channel]] # 12-P5/32 + + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] # 13 P5->P4 + - [[-1, 11], 1, Fusion, [fusion_mode]] # 14 + - [-1, 3, node_mode, [head_channel]] # 15-P4/16 + + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] # 16 P4->P3 + - [[-1, 10], 1, Fusion, [fusion_mode]] # 17 + - [-1, 3, node_mode, [head_channel]] # 18-P3/8 + + - [2, 1, Conv, [head_channel, 3, 2]] # 19 P2->P3 + - [[-1, 10, 18], 1, Fusion, [fusion_mode]] # 20 + - [-1, 3, node_mode, [head_channel]] # 21-P3/8 + + - [-1, 1, Conv, [head_channel, 3, 2]] # 22 P3->P4 + - [[-1, 11, 15], 1, Fusion, [fusion_mode]] # 23 + - [-1, 3, node_mode, [head_channel]] # 24-P4/16 + + - [-1, 1, Conv, [head_channel, 3, 2]] # 25 P4->P5 + - [[-1, 12], 1, Fusion, [fusion_mode]] # 26 + - [-1, 3, node_mode, [head_channel]] # 27-P5/32 + + - [[21, 24, 27], 1, Detect, [nc]] # Detect(P3, P4, P5) \ No newline at end of file diff --git a/yolov8_model/ultralytics/cfg/models/v8/yolov8-bifpn.yaml b/yolov8_model/ultralytics/cfg/models/v8/yolov8-bifpn.yaml new file mode 100644 index 0000000000000000000000000000000000000000..e63911f648b33072c5bc99b7a820628889a87252 --- /dev/null +++ b/yolov8_model/ultralytics/cfg/models/v8/yolov8-bifpn.yaml @@ -0,0 +1,57 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# YOLOv8 object detection model with P3-P5 outputs. For Usage examples see https://docs.ultralytics.com/tasks/detect + +# Parameters +nc: 80 # number of classes +scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n' + # [depth, width, max_channels] + n: [0.33, 0.25, 1024] # YOLOv8n summary: 225 layers, 3157200 parameters, 3157184 gradients, 8.9 GFLOPs + s: [0.33, 0.50, 1024] # YOLOv8s summary: 225 layers, 11166560 parameters, 11166544 gradients, 28.8 GFLOPs + m: [0.67, 0.75, 768] # YOLOv8m summary: 295 layers, 25902640 parameters, 25902624 gradients, 79.3 GFLOPs + l: [1.00, 1.00, 512] # YOLOv8l summary: 365 layers, 43691520 parameters, 43691504 gradients, 165.7 GFLOPs + x: [1.00, 1.25, 512] # YOLOv8x summary: 365 layers, 68229648 parameters, 68229632 gradients, 258.5 GFLOPs +fusion_mode: bifpn +node_mode: C2f +head_channel: 256 + +# YOLOv8.0n backbone +backbone: + # [from, repeats, module, args] + - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2 + - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4 + - [-1, 3, C2f, [128, True]] + - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8 + - [-1, 6, C2f, [256, True]] + - [-1, 1, Conv, [512, 3, 2]] # 5-P4/16 + - [-1, 6, C2f, [512, True]] + - [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32 + - [-1, 3, C2f, [1024, True]] + - [-1, 1, SPPF, [1024, 5]] # 9 + +# YOLOv8.0n head +head: + - [4, 1, Conv, [head_channel]] # 10-P3/8 + - [6, 1, Conv, [head_channel]] # 11-P4/16 + - [9, 1, Conv, [head_channel]] # 12-P5/32 + + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] # 13 P5->P4 + - [[-1, 11], 1, Fusion, [fusion_mode]] # 14 + - [-1, 3, node_mode, [head_channel]] # 15-P4/16 + + - [-1, 1, nn.Upsample, [None, 2, 'nearest']] # 16 P4->P3 + - [[-1, 10], 1, Fusion, [fusion_mode]] # 17 + - [-1, 3, node_mode, [head_channel]] # 18-P3/8 + + - [2, 1, Conv, [head_channel, 3, 2]] # 19 P2->P3 + - [[-1, 10, 18], 1, Fusion, [fusion_mode]] # 20 + - [-1, 3, node_mode, [head_channel]] # 21-P3/8 + + - [-1, 1, Conv, [head_channel, 3, 2]] # 22 P3->P4 + - [[-1, 11, 15], 1, Fusion, [fusion_mode]] # 23 + - [-1, 3, node_mode, [head_channel]] # 24-P4/16 + + - [-1, 1, Conv, [head_channel, 3, 2]] # 25 P4->P5 + - [[-1, 12], 1, Fusion, [fusion_mode]] # 26 + - [-1, 3, node_mode, [head_channel]] # 27-P5/32 + + - [[21, 24, 27], 1, Detect, [nc]] # Detect(P3, P4, P5) \ No newline at end of file