Closed guishilike closed 3 years ago
代码中spp是这样的:
def Spp_Conv2D_BN_Leaky(x, num_filters): y1 = MaxPooling2D(pool_size=(5,5), strides=(1,1), padding='same')(x) y2 = MaxPooling2D(pool_size=(9,9), strides=(1,1), padding='same')(x) y3 = MaxPooling2D(pool_size=(13,13), strides=(1,1), padding='same')(x) y = compose( Concatenate(), DarknetConv2D_BN_Leaky(num_filters, (1,1)))([y1, y2, y3, x]) return y
但在AlexeyAB/darknet/cfg/yolov4.cfg对SPP结构的描述为
[convolutional] batch_normalize=1 filters=512 size=1 stride=1 pad=1 activation=leaky ### SPP ### [maxpool] stride=1 size=5 [route] layers=-2 [maxpool] stride=1 size=9 [route] layers=-4 [maxpool] stride=1 size=13 [route] layers=-1,-3,-5,-6 ### End SPP ###
可以看出实际SPP应该是DarknetConv2D_BN_Leaky(num_filters, (1,1)))([ y3, y2, y1, x]) 顺序问题已经对检测结果造成了影响
@guishilike 感谢指出,已修正
代码中spp是这样的:
但在AlexeyAB/darknet/cfg/yolov4.cfg对SPP结构的描述为
可以看出实际SPP应该是DarknetConv2D_BN_Leaky(num_filters, (1,1)))([ y3, y2, y1, x]) 顺序问题已经对检测结果造成了影响