|
|
@@ -0,0 +1,52 @@ |
|
|
|
# parameters |
|
|
|
nc: 80 # number of classes |
|
|
|
depth_multiple: 1.0 # model depth multiple |
|
|
|
width_multiple: 1.0 # layer channel multiple |
|
|
|
|
|
|
|
# anchors |
|
|
|
anchors: |
|
|
|
- [116,90, 156,198, 373,326] # P5/32 |
|
|
|
- [30,61, 62,45, 59,119] # P4/16 |
|
|
|
- [10,13, 16,30, 33,23] # P3/8 |
|
|
|
|
|
|
|
# YOLOv5 backbone |
|
|
|
backbone: |
|
|
|
# [from, number, module, args] |
|
|
|
[[-1, 1, Focus, [64, 3]], # 0-P1/2 |
|
|
|
[-1, 1, Conv, [128, 3, 2]], # 1-P2/4 |
|
|
|
[-1, 3, BottleneckCSP, [128]], |
|
|
|
[-1, 1, Conv, [256, 3, 2]], # 3-P3/8 |
|
|
|
[-1, 9, BottleneckCSP, [256]], |
|
|
|
[-1, 1, Conv, [512, 3, 2]], # 5-P4/16 |
|
|
|
[-1, 9, BottleneckCSP, [512]], |
|
|
|
[-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 |
|
|
|
[-1, 1, SPP, [1024, [5, 9, 13]]], |
|
|
|
] |
|
|
|
|
|
|
|
# YOLOv5 PANet head |
|
|
|
head: |
|
|
|
[[-1, 3, BottleneckCSP, [1024, False]], |
|
|
|
[-1, 1, Conv, [512, 1, 1]], # 10 |
|
|
|
|
|
|
|
[-1, 1, nn.Upsample, [None, 2, 'nearest']], |
|
|
|
[[-1, 6], 1, Concat, [1]], # cat backbone P4 |
|
|
|
[-1, 3, BottleneckCSP, [512, False]], |
|
|
|
[-1, 1, Conv, [256, 1, 1]], # 14 |
|
|
|
|
|
|
|
[-1, 1, nn.Upsample, [None, 2, 'nearest']], |
|
|
|
[[-1, 4], 1, Concat, [1]], # cat backbone P3 |
|
|
|
[-1, 3, BottleneckCSP, [256, False]], |
|
|
|
[-1, 1, nn.Conv2d, [na * (nc + 5), 1, 1]], # 18 (P3/8-small) |
|
|
|
|
|
|
|
[-2, 1, Conv, [256, 3, 2]], |
|
|
|
[[-1, 14], 1, Concat, [1]], # cat head P4 |
|
|
|
[-1, 3, BottleneckCSP, [512, False]], |
|
|
|
[-1, 1, nn.Conv2d, [na * (nc + 5), 1, 1]], # 22 (P4/16-medium) |
|
|
|
|
|
|
|
[-2, 1, Conv, [512, 3, 2]], |
|
|
|
[[-1, 10], 1, Concat, [1]], # cat head P5 |
|
|
|
[-1, 3, BottleneckCSP, [1024, False]], |
|
|
|
[-1, 1, nn.Conv2d, [na * (nc + 5), 1, 1]], # 26 (P5/32-large) |
|
|
|
|
|
|
|
[[], 1, Detect, [nc, anchors]], # Detect(P5, P4, P3) |
|
|
|
] |