01 March 2023
Paper: YOLOv4: Optimal Speed and Accuracy of Object Detection
class Upsample(nn.Module):
def __init__(self, in_channels, out_channels):
super(Upsample, self).__init__()
self.upsample = nn.Sequential(
CBL(in_channels, out_channels, 1),
nn.Upsample(scale_factor = 2, mode = 'nearest')
)
def forward(self, x):
x = self.upsample(x)
return x
def make_three_conv(filters_list, in_filters):
m = nn.Sequential(
CBL(in_filters, filters_list[0], 1),
CBL(filters_list[0], filters_list[1], 3),
CBL(filters_list[1], filters_list[0], 1)
)
return m
def make_five_conv(filters_list, in_filters):
m = nn.Sequential(
CBL(in_filters, filters_list[0], 1),
CBL(filters_list[0], filters_list[1], 3),
CBL(filters_list[1], filters_list[0], 1),
CBL(filters_list[0], filters_list[1], 3),
CBL(filters_list[1], filters_list[0], 1)
)
return m
def yolo_head(filters_list, in_filters):
m = nn.Sequential(
CBL(in_filters, filters_list[0], 3),
nn.Conv2d(filters_list[0], filters_list[1], 1)
)
return m