Open JHLEE17 opened 3 years ago
Q1.
# parameters
nc: 80 # number of classes
depth_multiple: 0.33 # model depth multiple
width_multiple: 0.50 # layer channel multiple
# anchors
anchors:
- [12,16, 19,36, 40,28] # P3/8
- [36,75, 76,55, 72,146] # P4/16
- [142,110, 192,243, 459,401] # P5/32
# yolov4s backbone
backbone:
# [from, number, module, args]
[[-1, 1, DWT, []], # 0
[-1, 1, DWT, []], # 1
[-1, 1, DWT, []], # 2
[-1, 8, BottleneckCSP, [256]],
[-1, 1, Conv, [512, 3, 2]], # 4-P4/16
[-1, 8, BottleneckCSP, [512]],
[-1, 1, Conv, [1024, 3, 2]], # 6-P5/32
[-1, 4, BottleneckCSP, [1024]], # 7
]
# yolov4s head
# na = len(anchors[0])
head:
[[-1, 1, SPPCSP, [512]], # 8
[-1, 1, Conv, [256, 1, 1]],
[-1, 1, nn.Upsample, [None, 2, 'nearest']],
[5, 1, Conv, [256, 1, 1]], # route backbone P4
[[-1, -2], 1, Concat, [1]],
[-1, 2, BottleneckCSP2, [256]], # 13
[-1, 1, Conv, [128, 1, 1]],
[-1, 1, nn.Upsample, [None, 2, 'nearest']],
[3, 1, Conv, [128, 1, 1]], # route backbone P3
[[-1, -2], 1, Concat, [1]],
[-1, 2, BottleneckCSP2, [128]], # 18
[-1, 1, Conv, [256, 3, 1]],
[-2, 1, Conv, [256, 3, 2]],
[[-1, 13], 1, Concat, [1]], # cat
[-1, 2, BottleneckCSP2, [256]], # 22
[-1, 1, Conv, [512, 3, 1]],
[-2, 1, Conv, [512, 3, 2]],
[[-1, 8], 1, Concat, [1]], # cat
[-1, 2, BottleneckCSP2, [512]], # 26
[-1, 1, Conv, [1024, 3, 1]],
[[19,23,27], 1, IDetect, [nc, anchors]], # Detect(P3, P4, P5)
]
Q3. (a) discrete wavelet transform -- DWT, (b) spatial to depth -- S2D
Thank you for your kind reply. @WongKinYiu
And if i want to use YOLOR-SSS-DWT model, do i just replace the #DWT 2 with #Stage B2 ??
#parameters
nc: 80 # number of classes
depth_multiple: 0.33 # model depth multiple
width_multiple: 0.50 # layer channel multiple
# anchors
anchors:
- [12,16, 19,36, 40,28] # P3/8
- [36,75, 76,55, 72,146] # P4/16
- [142,110, 192,243, 459,401] # P5/32
# yolov4s backbone
backbone:
# [from, number, module, args]
[[-1, 1, DWT, []], # 0
[-1, 1, DWT, []], # 1
# [-1, 1, DWT, []], # DWT 2
[-1, 8, BottleneckCSP, [128]],
[-1, 1, Conv, [256, 3, 2]], # Stage B2
[-1, 8, BottleneckCSP, [256]],
[-1, 1, Conv, [512, 3, 2]], # 4-P4/16
[-1, 8, BottleneckCSP, [512]],
[-1, 1, Conv, [1024, 3, 2]], # 6-P5/32
[-1, 4, BottleneckCSP, [1024]], # 7
]
# yolov4s head
# na = len(anchors[0])
head:
[[-1, 1, SPPCSP, [512]], # 8
[-1, 1, Conv, [256, 1, 1]],
[-1, 1, nn.Upsample, [None, 2, 'nearest']],
[5, 1, Conv, [256, 1, 1]], # route backbone P4
[[-1, -2], 1, Concat, [1]],
[-1, 2, BottleneckCSP2, [256]], # 13
[-1, 1, Conv, [128, 1, 1]],
[-1, 1, nn.Upsample, [None, 2, 'nearest']],
[3, 1, Conv, [128, 1, 1]], # route backbone P3
[[-1, -2], 1, Concat, [1]],
[-1, 2, BottleneckCSP2, [128]], # 18
[-1, 1, Conv, [256, 3, 1]],
[-2, 1, Conv, [256, 3, 2]],
[[-1, 13], 1, Concat, [1]], # cat
[-1, 2, BottleneckCSP2, [256]], # 22
[-1, 1, Conv, [512, 3, 1]],
[-2, 1, Conv, [512, 3, 2]],
[[-1, 8], 1, Concat, [1]], # cat
[-1, 2, BottleneckCSP2, [512]], # 26
[-1, 1, Conv, [1024, 3, 1]],
[[19,23,27], 1, IDetect, [nc, anchors]], # Detect(P3, P4, P5)
]
# parameters
nc: 80 # number of classes
depth_multiple: 0.33 # model depth multiple
width_multiple: 0.50 # layer channel multiple
# anchors
anchors:
- [12,16, 19,36, 40,28] # P3/8
- [36,75, 76,55, 72,146] # P4/16
- [142,110, 192,243, 459,401] # P5/32
# yolov4s backbone
backbone:
# [from, number, module, args]
[[-1, 1, DWT, []], # 0
[-1, 1, DWT, []], # 1
[-1, 2, BottleneckCSP, [128]],
[-1, 1, Conv, [256, 3, 2]], # 3-P3/8
[-1, 8, BottleneckCSP, [256]],
[-1, 1, Conv, [512, 3, 2]], # 5-P4/16
[-1, 8, BottleneckCSP, [512]],
[-1, 1, Conv, [1024, 3, 2]], # 7-P5/32
[-1, 4, BottleneckCSP, [1024]], # 8
]
# yolov4s head
# na = len(anchors[0])
head:
[[-1, 1, SPPCSP, [512]], # 9
[-1, 1, Conv, [256, 1, 1]],
[-1, 1, nn.Upsample, [None, 2, 'nearest']],
[6, 1, Conv, [256, 1, 1]], # route backbone P4
[[-1, -2], 1, Concat, [1]],
[-1, 2, BottleneckCSP2, [256]], # 14
[-1, 1, Conv, [128, 1, 1]],
[-1, 1, nn.Upsample, [None, 2, 'nearest']],
[4, 1, Conv, [128, 1, 1]], # route backbone P3
[[-1, -2], 1, Concat, [1]],
[-1, 2, BottleneckCSP2, [128]], # 19
[-1, 1, Conv, [256, 3, 1]],
[-2, 1, Conv, [256, 3, 2]],
[[-1, 14], 1, Concat, [1]], # cat
[-1, 2, BottleneckCSP2, [256]], # 23
[-1, 1, Conv, [512, 3, 1]],
[-2, 1, Conv, [512, 3, 2]],
[[-1, 9], 1, Concat, [1]], # cat
[-1, 2, BottleneckCSP2, [512]], # 27
[-1, 1, Conv, [1024, 3, 1]],
[[20,24,28], 1, IDetect, [nc, anchors]], # Detect(P3, P4, P5)
]
I'm sorry to keep bothering you. (Q1) How did you implement YOLOR-S,SS and when will the code be released?
(Q2)The models on the paper branch are written as yaml files, how can I change them to the default branch models' cfg files? And I wonder how to do the opposite.
I would also be interested in a "yolor-ssss-dwt.cfg" file which works with the pretrained weights which @WongKinYiu has provided in https://github.com/WongKinYiu/yolor/issues/9#issuecomment-846319563.
Also interested in a detailed tutorial or steps on implementing YOLOR-SSS or SSSS.
[yolor-s-dwt.pt] [yolor-ss-dwt.pt] [yolor-sss-dwt.pt] [yolor-ssss-dwt.pt] [yolor-sss-s2d.pt] [yolor-ssss-s2d.pt]
to create dwt layer in main branch (cfg style):
[dwt]
to create s2d layer in main branch (cfg style):
[reorg]
hi @WongKinYiu the link for those model [yolor-s-dwt.pt] [yolor-ss-dwt.pt] [yolor-sss-dwt.pt] [yolor-ssss-dwt.pt] [yolor-sss-s2d.pt] [yolor-ssss-s2d.pt] can't download for now. could you help us reupload ?
I couldn't find YOLOR(or YOLOv4)-SSS(or SSSS)-DWT(or S2D) model in this repo. It also has no detailed information in the paper.
Q1. How do I use DWT model or DWT module?
Q2. Can you provide DWT model and the weights?
Q3. What is S2D in YOLOR-SSSS and what is the difference between S2D and DWT? (not essential)