-
YOLOv4网络结构
2020-05-30 15:10:40YOLOv4的出现引起了一定的轰动,在保持快速检测的前提下(相...最近准备用YOLOv4,顺便学习一下网络结构(虽然YOLOv4的主要优势可能不在这里),这边作个笔记。 图1. yolov4完整网络结构(backbone + head) ...YOLOv4的出现引起了一定的轰动,在保持快速检测的前提下(相对于YOLOv3略低)在COCO2017数据集上AP值相对于YOLOv3提升了差不多10个点。
最近准备用YOLOv4,顺便学习一下网络结构(虽然YOLOv4的主要优势可能不在这里),这边作个笔记。
图1. yolov4完整网络结构(backbone + head)
图2 res block网络结构
图3 conv block网络结构
图4 maxpool block网络结构
图5 upsample block网络结构 -
yolov4网络结构
2020-07-30 08:54:58 -
yolov3和yolov4网络结构
2020-06-22 19:38:15yolov4和yolov3网络结构对比yolov4网络结构架构图yolov4主干特征提取网络yolov3网络结构yolov3主干特征提取网络(Darknet53)效果图对比网络计算参数对比yolov4网络参数计算yolov3网络参数计算 yolov4网络结构 架构...yolov3和yolov4网络结构对比
yolov4网络结构
架构图
1.backbone:Darknet53+CSPResnet
2.Neck:PANet
3.Head:yolov3-head
共5次Conv2D-downsampledyolov4主干特征提取网络
yolov3网络结构
效果图对比
网络计算参数对比
yolov4网络参数计算
inputs = (416, 416, 3), num_anchors = 3, num_classes = 3 __________________________________________________________________________________________________ Layer (type) Output Shape Param # Connected to ================================================================================================== input_1 (InputLayer) (None, 416, 416, 3) 0 __________________________________________________________________________________________________ conv2d_1 (Conv2D) (None, 416, 416, 32) 864 input_1[0][0] __________________________________________________________________________________________________ batch_normalization_1 (BatchNor (None, 416, 416, 32) 128 conv2d_1[0][0] __________________________________________________________________________________________________ mish_1 (Mish) (None, 416, 416, 32) 0 batch_normalization_1[0][0] __________________________________________________________________________________________________ zero_padding2d_1 (ZeroPadding2D (None, 417, 417, 32) 0 mish_1[0][0] __________________________________________________________________________________________________ conv2d_2 (Conv2D) (None, 208, 208, 64) 18432 zero_padding2d_1[0][0] __________________________________________________________________________________________________ batch_normalization_2 (BatchNor (None, 208, 208, 64) 256 conv2d_2[0][0] __________________________________________________________________________________________________ mish_2 (Mish) (None, 208, 208, 64) 0 batch_normalization_2[0][0] __________________________________________________________________________________________________ conv2d_4 (Conv2D) (None, 208, 208, 64) 4096 mish_2[0][0] __________________________________________________________________________________________________ batch_normalization_4 (BatchNor (None, 208, 208, 64) 256 conv2d_4[0][0] __________________________________________________________________________________________________ mish_4 (Mish) (None, 208, 208, 64) 0 batch_normalization_4[0][0] __________________________________________________________________________________________________ conv2d_5 (Conv2D) (None, 208, 208, 32) 2048 mish_4[0][0] __________________________________________________________________________________________________ batch_normalization_5 (BatchNor (None, 208, 208, 32) 128 conv2d_5[0][0] __________________________________________________________________________________________________ mish_5 (Mish) (None, 208, 208, 32) 0 batch_normalization_5[0][0] __________________________________________________________________________________________________ conv2d_6 (Conv2D) (None, 208, 208, 64) 18432 mish_5[0][0] __________________________________________________________________________________________________ batch_normalization_6 (BatchNor (None, 208, 208, 64) 256 conv2d_6[0][0] __________________________________________________________________________________________________ mish_6 (Mish) (None, 208, 208, 64) 0 batch_normalization_6[0][0] __________________________________________________________________________________________________ add_1 (Add) (None, 208, 208, 64) 0 mish_4[0][0] mish_6[0][0] __________________________________________________________________________________________________ conv2d_7 (Conv2D) (None, 208, 208, 64) 4096 add_1[0][0] __________________________________________________________________________________________________ conv2d_3 (Conv2D) (None, 208, 208, 64) 4096 mish_2[0][0] __________________________________________________________________________________________________ batch_normalization_7 (BatchNor (None, 208, 208, 64) 256 conv2d_7[0][0] __________________________________________________________________________________________________ batch_normalization_3 (BatchNor (None, 208, 208, 64) 256 conv2d_3[0][0] __________________________________________________________________________________________________ mish_7 (Mish) (None, 208, 208, 64) 0 batch_normalization_7[0][0] __________________________________________________________________________________________________ mish_3 (Mish) (None, 208, 208, 64) 0 batch_normalization_3[0][0] __________________________________________________________________________________________________ concatenate_1 (Concatenate) (None, 208, 208, 128 0 mish_7[0][0] mish_3[0][0] __________________________________________________________________________________________________ conv2d_8 (Conv2D) (None, 208, 208, 64) 8192 concatenate_1[0][0] __________________________________________________________________________________________________ batch_normalization_8 (BatchNor (None, 208, 208, 64) 256 conv2d_8[0][0] __________________________________________________________________________________________________ mish_8 (Mish) (None, 208, 208, 64) 0 batch_normalization_8[0][0] __________________________________________________________________________________________________ zero_padding2d_2 (ZeroPadding2D (None, 209, 209, 64) 0 mish_8[0][0] __________________________________________________________________________________________________ conv2d_9 (Conv2D) (None, 104, 104, 128 73728 zero_padding2d_2[0][0] __________________________________________________________________________________________________ batch_normalization_9 (BatchNor (None, 104, 104, 128 512 conv2d_9[0][0] __________________________________________________________________________________________________ mish_9 (Mish) (None, 104, 104, 128 0 batch_normalization_9[0][0] __________________________________________________________________________________________________ conv2d_11 (Conv2D) (None, 104, 104, 64) 8192 mish_9[0][0] __________________________________________________________________________________________________ batch_normalization_11 (BatchNo (None, 104, 104, 64) 256 conv2d_11[0][0] __________________________________________________________________________________________________ mish_11 (Mish) (None, 104, 104, 64) 0 batch_normalization_11[0][0] __________________________________________________________________________________________________ conv2d_12 (Conv2D) (None, 104, 104, 64) 4096 mish_11[0][0] __________________________________________________________________________________________________ batch_normalization_12 (BatchNo (None, 104, 104, 64) 256 conv2d_12[0][0] __________________________________________________________________________________________________ mish_12 (Mish) (None, 104, 104, 64) 0 batch_normalization_12[0][0] __________________________________________________________________________________________________ conv2d_13 (Conv2D) (None, 104, 104, 64) 36864 mish_12[0][0] __________________________________________________________________________________________________ batch_normalization_13 (BatchNo (None, 104, 104, 64) 256 conv2d_13[0][0] __________________________________________________________________________________________________ mish_13 (Mish) (None, 104, 104, 64) 0 batch_normalization_13[0][0] __________________________________________________________________________________________________ add_2 (Add) (None, 104, 104, 64) 0 mish_11[0][0] mish_13[0][0] __________________________________________________________________________________________________ conv2d_14 (Conv2D) (None, 104, 104, 64) 4096 add_2[0][0] __________________________________________________________________________________________________ batch_normalization_14 (BatchNo (None, 104, 104, 64) 256 conv2d_14[0][0] __________________________________________________________________________________________________ mish_14 (Mish) (None, 104, 104, 64) 0 batch_normalization_14[0][0] __________________________________________________________________________________________________ conv2d_15 (Conv2D) (None, 104, 104, 64) 36864 mish_14[0][0] __________________________________________________________________________________________________ batch_normalization_15 (BatchNo (None, 104, 104, 64) 256 conv2d_15[0][0] __________________________________________________________________________________________________ mish_15 (Mish) (None, 104, 104, 64) 0 batch_normalization_15[0][0] __________________________________________________________________________________________________ add_3 (Add) (None, 104, 104, 64) 0 add_2[0][0] mish_15[0][0] __________________________________________________________________________________________________ conv2d_16 (Conv2D) (None, 104, 104, 64) 4096 add_3[0][0] __________________________________________________________________________________________________ conv2d_10 (Conv2D) (None, 104, 104, 64) 8192 mish_9[0][0] __________________________________________________________________________________________________ batch_normalization_16 (BatchNo (None, 104, 104, 64) 256 conv2d_16[0][0] __________________________________________________________________________________________________ batch_normalization_10 (BatchNo (None, 104, 104, 64) 256 conv2d_10[0][0] __________________________________________________________________________________________________ mish_16 (Mish) (None, 104, 104, 64) 0 batch_normalization_16[0][0] __________________________________________________________________________________________________ mish_10 (Mish) (None, 104, 104, 64) 0 batch_normalization_10[0][0] __________________________________________________________________________________________________ concatenate_2 (Concatenate) (None, 104, 104, 128 0 mish_16[0][0] mish_10[0][0] __________________________________________________________________________________________________ conv2d_17 (Conv2D) (None, 104, 104, 128 16384 concatenate_2[0][0] __________________________________________________________________________________________________ batch_normalization_17 (BatchNo (None, 104, 104, 128 512 conv2d_17[0][0] __________________________________________________________________________________________________ mish_17 (Mish) (None, 104, 104, 128 0 batch_normalization_17[0][0] __________________________________________________________________________________________________ zero_padding2d_3 (ZeroPadding2D (None, 105, 105, 128 0 mish_17[0][0] __________________________________________________________________________________________________ conv2d_18 (Conv2D) (None, 52, 52, 256) 294912 zero_padding2d_3[0][0] __________________________________________________________________________________________________ batch_normalization_18 (BatchNo (None, 52, 52, 256) 1024 conv2d_18[0][0] __________________________________________________________________________________________________ mish_18 (Mish) (None, 52, 52, 256) 0 batch_normalization_18[0][0] __________________________________________________________________________________________________ conv2d_20 (Conv2D) (None, 52, 52, 128) 32768 mish_18[0][0] __________________________________________________________________________________________________ batch_normalization_20 (BatchNo (None, 52, 52, 128) 512 conv2d_20[0][0] __________________________________________________________________________________________________ mish_20 (Mish) (None, 52, 52, 128) 0 batch_normalization_20[0][0] __________________________________________________________________________________________________ conv2d_21 (Conv2D) (None, 52, 52, 128) 16384 mish_20[0][0] __________________________________________________________________________________________________ batch_normalization_21 (BatchNo (None, 52, 52, 128) 512 conv2d_21[0][0] __________________________________________________________________________________________________ mish_21 (Mish) (None, 52, 52, 128) 0 batch_normalization_21[0][0] __________________________________________________________________________________________________ conv2d_22 (Conv2D) (None, 52, 52, 128) 147456 mish_21[0][0] __________________________________________________________________________________________________ batch_normalization_22 (BatchNo (None, 52, 52, 128) 512 conv2d_22[0][0] __________________________________________________________________________________________________ mish_22 (Mish) (None, 52, 52, 128) 0 batch_normalization_22[0][0] __________________________________________________________________________________________________ add_4 (Add) (None, 52, 52, 128) 0 mish_20[0][0] mish_22[0][0] __________________________________________________________________________________________________ conv2d_23 (Conv2D) (None, 52, 52, 128) 16384 add_4[0][0] __________________________________________________________________________________________________ batch_normalization_23 (BatchNo (None, 52, 52, 128) 512 conv2d_23[0][0] __________________________________________________________________________________________________ mish_23 (Mish) (None, 52, 52, 128) 0 batch_normalization_23[0][0] __________________________________________________________________________________________________ conv2d_24 (Conv2D) (None, 52, 52, 128) 147456 mish_23[0][0] __________________________________________________________________________________________________ batch_normalization_24 (BatchNo (None, 52, 52, 128) 512 conv2d_24[0][0] __________________________________________________________________________________________________ mish_24 (Mish) (None, 52, 52, 128) 0 batch_normalization_24[0][0] __________________________________________________________________________________________________ add_5 (Add) (None, 52, 52, 128) 0 add_4[0][0] mish_24[0][0] __________________________________________________________________________________________________ conv2d_25 (Conv2D) (None, 52, 52, 128) 16384 add_5[0][0] __________________________________________________________________________________________________ batch_normalization_25 (BatchNo (None, 52, 52, 128) 512 conv2d_25[0][0] __________________________________________________________________________________________________ mish_25 (Mish) (None, 52, 52, 128) 0 batch_normalization_25[0][0] __________________________________________________________________________________________________ conv2d_26 (Conv2D) (None, 52, 52, 128) 147456 mish_25[0][0] __________________________________________________________________________________________________ batch_normalization_26 (BatchNo (None, 52, 52, 128) 512 conv2d_26[0][0] __________________________________________________________________________________________________ mish_26 (Mish) (None, 52, 52, 128) 0 batch_normalization_26[0][0] __________________________________________________________________________________________________ add_6 (Add) (None, 52, 52, 128) 0 add_5[0][0] mish_26[0][0] __________________________________________________________________________________________________ conv2d_27 (Conv2D) (None, 52, 52, 128) 16384 add_6[0][0] __________________________________________________________________________________________________ batch_normalization_27 (BatchNo (None, 52, 52, 128) 512 conv2d_27[0][0] __________________________________________________________________________________________________ mish_27 (Mish) (None, 52, 52, 128) 0 batch_normalization_27[0][0] __________________________________________________________________________________________________ conv2d_28 (Conv2D) (None, 52, 52, 128) 147456 mish_27[0][0] __________________________________________________________________________________________________ batch_normalization_28 (BatchNo (None, 52, 52, 128) 512 conv2d_28[0][0] __________________________________________________________________________________________________ mish_28 (Mish) (None, 52, 52, 128) 0 batch_normalization_28[0][0] __________________________________________________________________________________________________ add_7 (Add) (None, 52, 52, 128) 0 add_6[0][0] mish_28[0][0] __________________________________________________________________________________________________ conv2d_29 (Conv2D) (None, 52, 52, 128) 16384 add_7[0][0] __________________________________________________________________________________________________ batch_normalization_29 (BatchNo (None, 52, 52, 128) 512 conv2d_29[0][0] __________________________________________________________________________________________________ mish_29 (Mish) (None, 52, 52, 128) 0 batch_normalization_29[0][0] __________________________________________________________________________________________________ conv2d_30 (Conv2D) (None, 52, 52, 128) 147456 mish_29[0][0] __________________________________________________________________________________________________ batch_normalization_30 (BatchNo (None, 52, 52, 128) 512 conv2d_30[0][0] __________________________________________________________________________________________________ mish_30 (Mish) (None, 52, 52, 128) 0 batch_normalization_30[0][0] __________________________________________________________________________________________________ add_8 (Add) (None, 52, 52, 128) 0 add_7[0][0] mish_30[0][0] __________________________________________________________________________________________________ conv2d_31 (Conv2D) (None, 52, 52, 128) 16384 add_8[0][0] __________________________________________________________________________________________________ batch_normalization_31 (BatchNo (None, 52, 52, 128) 512 conv2d_31[0][0] __________________________________________________________________________________________________ mish_31 (Mish) (None, 52, 52, 128) 0 batch_normalization_31[0][0] __________________________________________________________________________________________________ conv2d_32 (Conv2D) (None, 52, 52, 128) 147456 mish_31[0][0] __________________________________________________________________________________________________ batch_normalization_32 (BatchNo (None, 52, 52, 128) 512 conv2d_32[0][0] __________________________________________________________________________________________________ mish_32 (Mish) (None, 52, 52, 128) 0 batch_normalization_32[0][0] __________________________________________________________________________________________________ add_9 (Add) (None, 52, 52, 128) 0 add_8[0][0] mish_32[0][0] __________________________________________________________________________________________________ conv2d_33 (Conv2D) (None, 52, 52, 128) 16384 add_9[0][0] __________________________________________________________________________________________________ batch_normalization_33 (BatchNo (None, 52, 52, 128) 512 conv2d_33[0][0] __________________________________________________________________________________________________ mish_33 (Mish) (None, 52, 52, 128) 0 batch_normalization_33[0][0] __________________________________________________________________________________________________ conv2d_34 (Conv2D) (None, 52, 52, 128) 147456 mish_33[0][0] __________________________________________________________________________________________________ batch_normalization_34 (BatchNo (None, 52, 52, 128) 512 conv2d_34[0][0] __________________________________________________________________________________________________ mish_34 (Mish) (None, 52, 52, 128) 0 batch_normalization_34[0][0] __________________________________________________________________________________________________ add_10 (Add) (None, 52, 52, 128) 0 add_9[0][0] mish_34[0][0] __________________________________________________________________________________________________ conv2d_35 (Conv2D) (None, 52, 52, 128) 16384 add_10[0][0] __________________________________________________________________________________________________ batch_normalization_35 (BatchNo (None, 52, 52, 128) 512 conv2d_35[0][0] __________________________________________________________________________________________________ mish_35 (Mish) (None, 52, 52, 128) 0 batch_normalization_35[0][0] __________________________________________________________________________________________________ conv2d_36 (Conv2D) (None, 52, 52, 128) 147456 mish_35[0][0] __________________________________________________________________________________________________ batch_normalization_36 (BatchNo (None, 52, 52, 128) 512 conv2d_36[0][0] __________________________________________________________________________________________________ mish_36 (Mish) (None, 52, 52, 128) 0 batch_normalization_36[0][0] __________________________________________________________________________________________________ add_11 (Add) (None, 52, 52, 128) 0 add_10[0][0] mish_36[0][0] __________________________________________________________________________________________________ conv2d_37 (Conv2D) (None, 52, 52, 128) 16384 add_11[0][0] __________________________________________________________________________________________________ conv2d_19 (Conv2D) (None, 52, 52, 128) 32768 mish_18[0][0] __________________________________________________________________________________________________ batch_normalization_37 (BatchNo (None, 52, 52, 128) 512 conv2d_37[0][0] __________________________________________________________________________________________________ batch_normalization_19 (BatchNo (None, 52, 52, 128) 512 conv2d_19[0][0] __________________________________________________________________________________________________ mish_37 (Mish) (None, 52, 52, 128) 0 batch_normalization_37[0][0] __________________________________________________________________________________________________ mish_19 (Mish) (None, 52, 52, 128) 0 batch_normalization_19[0][0] __________________________________________________________________________________________________ concatenate_3 (Concatenate) (None, 52, 52, 256) 0 mish_37[0][0] mish_19[0][0] __________________________________________________________________________________________________ conv2d_38 (Conv2D) (None, 52, 52, 256) 65536 concatenate_3[0][0] __________________________________________________________________________________________________ batch_normalization_38 (BatchNo (None, 52, 52, 256) 1024 conv2d_38[0][0] __________________________________________________________________________________________________ mish_38 (Mish) (None, 52, 52, 256) 0 batch_normalization_38[0][0] __________________________________________________________________________________________________ zero_padding2d_4 (ZeroPadding2D (None, 53, 53, 256) 0 mish_38[0][0] __________________________________________________________________________________________________ conv2d_39 (Conv2D) (None, 26, 26, 512) 1179648 zero_padding2d_4[0][0] __________________________________________________________________________________________________ batch_normalization_39 (BatchNo (None, 26, 26, 512) 2048 conv2d_39[0][0] __________________________________________________________________________________________________ mish_39 (Mish) (None, 26, 26, 512) 0 batch_normalization_39[0][0] __________________________________________________________________________________________________ conv2d_41 (Conv2D) (None, 26, 26, 256) 131072 mish_39[0][0] __________________________________________________________________________________________________ batch_normalization_41 (BatchNo (None, 26, 26, 256) 1024 conv2d_41[0][0] __________________________________________________________________________________________________ mish_41 (Mish) (None, 26, 26, 256) 0 batch_normalization_41[0][0] __________________________________________________________________________________________________ conv2d_42 (Conv2D) (None, 26, 26, 256) 65536 mish_41[0][0] __________________________________________________________________________________________________ batch_normalization_42 (BatchNo (None, 26, 26, 256) 1024 conv2d_42[0][0] __________________________________________________________________________________________________ mish_42 (Mish) (None, 26, 26, 256) 0 batch_normalization_42[0][0] __________________________________________________________________________________________________ conv2d_43 (Conv2D) (None, 26, 26, 256) 589824 mish_42[0][0] __________________________________________________________________________________________________ batch_normalization_43 (BatchNo (None, 26, 26, 256) 1024 conv2d_43[0][0] __________________________________________________________________________________________________ mish_43 (Mish) (None, 26, 26, 256) 0 batch_normalization_43[0][0] __________________________________________________________________________________________________ add_12 (Add) (None, 26, 26, 256) 0 mish_41[0][0] mish_43[0][0] __________________________________________________________________________________________________ conv2d_44 (Conv2D) (None, 26, 26, 256) 65536 add_12[0][0] __________________________________________________________________________________________________ batch_normalization_44 (BatchNo (None, 26, 26, 256) 1024 conv2d_44[0][0] __________________________________________________________________________________________________ mish_44 (Mish) (None, 26, 26, 256) 0 batch_normalization_44[0][0] __________________________________________________________________________________________________ conv2d_45 (Conv2D) (None, 26, 26, 256) 589824 mish_44[0][0] __________________________________________________________________________________________________ batch_normalization_45 (BatchNo (None, 26, 26, 256) 1024 conv2d_45[0][0] __________________________________________________________________________________________________ mish_45 (Mish) (None, 26, 26, 256) 0 batch_normalization_45[0][0] __________________________________________________________________________________________________ add_13 (Add) (None, 26, 26, 256) 0 add_12[0][0] mish_45[0][0] __________________________________________________________________________________________________ conv2d_46 (Conv2D) (None, 26, 26, 256) 65536 add_13[0][0] __________________________________________________________________________________________________ batch_normalization_46 (BatchNo (None, 26, 26, 256) 1024 conv2d_46[0][0] __________________________________________________________________________________________________ mish_46 (Mish) (None, 26, 26, 256) 0 batch_normalization_46[0][0] __________________________________________________________________________________________________ conv2d_47 (Conv2D) (None, 26, 26, 256) 589824 mish_46[0][0] __________________________________________________________________________________________________ batch_normalization_47 (BatchNo (None, 26, 26, 256) 1024 conv2d_47[0][0] __________________________________________________________________________________________________ mish_47 (Mish) (None, 26, 26, 256) 0 batch_normalization_47[0][0] __________________________________________________________________________________________________ add_14 (Add) (None, 26, 26, 256) 0 add_13[0][0] mish_47[0][0] __________________________________________________________________________________________________ conv2d_48 (Conv2D) (None, 26, 26, 256) 65536 add_14[0][0] __________________________________________________________________________________________________ batch_normalization_48 (BatchNo (None, 26, 26, 256) 1024 conv2d_48[0][0] __________________________________________________________________________________________________ mish_48 (Mish) (None, 26, 26, 256) 0 batch_normalization_48[0][0] __________________________________________________________________________________________________ conv2d_49 (Conv2D) (None, 26, 26, 256) 589824 mish_48[0][0] __________________________________________________________________________________________________ batch_normalization_49 (BatchNo (None, 26, 26, 256) 1024 conv2d_49[0][0] __________________________________________________________________________________________________ mish_49 (Mish) (None, 26, 26, 256) 0 batch_normalization_49[0][0] __________________________________________________________________________________________________ add_15 (Add) (None, 26, 26, 256) 0 add_14[0][0] mish_49[0][0] __________________________________________________________________________________________________ conv2d_50 (Conv2D) (None, 26, 26, 256) 65536 add_15[0][0] __________________________________________________________________________________________________ batch_normalization_50 (BatchNo (None, 26, 26, 256) 1024 conv2d_50[0][0] __________________________________________________________________________________________________ mish_50 (Mish) (None, 26, 26, 256) 0 batch_normalization_50[0][0] __________________________________________________________________________________________________ conv2d_51 (Conv2D) (None, 26, 26, 256) 589824 mish_50[0][0] __________________________________________________________________________________________________ batch_normalization_51 (BatchNo (None, 26, 26, 256) 1024 conv2d_51[0][0] __________________________________________________________________________________________________ mish_51 (Mish) (None, 26, 26, 256) 0 batch_normalization_51[0][0] __________________________________________________________________________________________________ add_16 (Add) (None, 26, 26, 256) 0 add_15[0][0] mish_51[0][0] __________________________________________________________________________________________________ conv2d_52 (Conv2D) (None, 26, 26, 256) 65536 add_16[0][0] __________________________________________________________________________________________________ batch_normalization_52 (BatchNo (None, 26, 26, 256) 1024 conv2d_52[0][0] __________________________________________________________________________________________________ mish_52 (Mish) (None, 26, 26, 256) 0 batch_normalization_52[0][0] __________________________________________________________________________________________________ conv2d_53 (Conv2D) (None, 26, 26, 256) 589824 mish_52[0][0] __________________________________________________________________________________________________ batch_normalization_53 (BatchNo (None, 26, 26, 256) 1024 conv2d_53[0][0] __________________________________________________________________________________________________ mish_53 (Mish) (None, 26, 26, 256) 0 batch_normalization_53[0][0] __________________________________________________________________________________________________ add_17 (Add) (None, 26, 26, 256) 0 add_16[0][0] mish_53[0][0] __________________________________________________________________________________________________ conv2d_54 (Conv2D) (None, 26, 26, 256) 65536 add_17[0][0] __________________________________________________________________________________________________ batch_normalization_54 (BatchNo (None, 26, 26, 256) 1024 conv2d_54[0][0] __________________________________________________________________________________________________ mish_54 (Mish) (None, 26, 26, 256) 0 batch_normalization_54[0][0] __________________________________________________________________________________________________ conv2d_55 (Conv2D) (None, 26, 26, 256) 589824 mish_54[0][0] __________________________________________________________________________________________________ batch_normalization_55 (BatchNo (None, 26, 26, 256) 1024 conv2d_55[0][0] __________________________________________________________________________________________________ mish_55 (Mish) (None, 26, 26, 256) 0 batch_normalization_55[0][0] __________________________________________________________________________________________________ add_18 (Add) (None, 26, 26, 256) 0 add_17[0][0] mish_55[0][0] __________________________________________________________________________________________________ conv2d_56 (Conv2D) (None, 26, 26, 256) 65536 add_18[0][0] __________________________________________________________________________________________________ batch_normalization_56 (BatchNo (None, 26, 26, 256) 1024 conv2d_56[0][0] __________________________________________________________________________________________________ mish_56 (Mish) (None, 26, 26, 256) 0 batch_normalization_56[0][0] __________________________________________________________________________________________________ conv2d_57 (Conv2D) (None, 26, 26, 256) 589824 mish_56[0][0] __________________________________________________________________________________________________ batch_normalization_57 (BatchNo (None, 26, 26, 256) 1024 conv2d_57[0][0] __________________________________________________________________________________________________ mish_57 (Mish) (None, 26, 26, 256) 0 batch_normalization_57[0][0] __________________________________________________________________________________________________ add_19 (Add) (None, 26, 26, 256) 0 add_18[0][0] mish_57[0][0] __________________________________________________________________________________________________ conv2d_58 (Conv2D) (None, 26, 26, 256) 65536 add_19[0][0] __________________________________________________________________________________________________ conv2d_40 (Conv2D) (None, 26, 26, 256) 131072 mish_39[0][0] __________________________________________________________________________________________________ batch_normalization_58 (BatchNo (None, 26, 26, 256) 1024 conv2d_58[0][0] __________________________________________________________________________________________________ batch_normalization_40 (BatchNo (None, 26, 26, 256) 1024 conv2d_40[0][0] __________________________________________________________________________________________________ mish_58 (Mish) (None, 26, 26, 256) 0 batch_normalization_58[0][0] __________________________________________________________________________________________________ mish_40 (Mish) (None, 26, 26, 256) 0 batch_normalization_40[0][0] __________________________________________________________________________________________________ concatenate_4 (Concatenate) (None, 26, 26, 512) 0 mish_58[0][0] mish_40[0][0] __________________________________________________________________________________________________ conv2d_59 (Conv2D) (None, 26, 26, 512) 262144 concatenate_4[0][0] __________________________________________________________________________________________________ batch_normalization_59 (BatchNo (None, 26, 26, 512) 2048 conv2d_59[0][0] __________________________________________________________________________________________________ mish_59 (Mish) (None, 26, 26, 512) 0 batch_normalization_59[0][0] __________________________________________________________________________________________________ zero_padding2d_5 (ZeroPadding2D (None, 27, 27, 512) 0 mish_59[0][0] __________________________________________________________________________________________________ conv2d_60 (Conv2D) (None, 13, 13, 1024) 4718592 zero_padding2d_5[0][0] __________________________________________________________________________________________________ batch_normalization_60 (BatchNo (None, 13, 13, 1024) 4096 conv2d_60[0][0] __________________________________________________________________________________________________ mish_60 (Mish) (None, 13, 13, 1024) 0 batch_normalization_60[0][0] __________________________________________________________________________________________________ conv2d_62 (Conv2D) (None, 13, 13, 512) 524288 mish_60[0][0] __________________________________________________________________________________________________ batch_normalization_62 (BatchNo (None, 13, 13, 512) 2048 conv2d_62[0][0] __________________________________________________________________________________________________ mish_62 (Mish) (None, 13, 13, 512) 0 batch_normalization_62[0][0] __________________________________________________________________________________________________ conv2d_63 (Conv2D) (None, 13, 13, 512) 262144 mish_62[0][0] __________________________________________________________________________________________________ batch_normalization_63 (BatchNo (None, 13, 13, 512) 2048 conv2d_63[0][0] __________________________________________________________________________________________________ mish_63 (Mish) (None, 13, 13, 512) 0 batch_normalization_63[0][0] __________________________________________________________________________________________________ conv2d_64 (Conv2D) (None, 13, 13, 512) 2359296 mish_63[0][0] __________________________________________________________________________________________________ batch_normalization_64 (BatchNo (None, 13, 13, 512) 2048 conv2d_64[0][0] __________________________________________________________________________________________________ mish_64 (Mish) (None, 13, 13, 512) 0 batch_normalization_64[0][0] __________________________________________________________________________________________________ add_20 (Add) (None, 13, 13, 512) 0 mish_62[0][0] mish_64[0][0] __________________________________________________________________________________________________ conv2d_65 (Conv2D) (None, 13, 13, 512) 262144 add_20[0][0] __________________________________________________________________________________________________ batch_normalization_65 (BatchNo (None, 13, 13, 512) 2048 conv2d_65[0][0] __________________________________________________________________________________________________ mish_65 (Mish) (None, 13, 13, 512) 0 batch_normalization_65[0][0] __________________________________________________________________________________________________ conv2d_66 (Conv2D) (None, 13, 13, 512) 2359296 mish_65[0][0] __________________________________________________________________________________________________ batch_normalization_66 (BatchNo (None, 13, 13, 512) 2048 conv2d_66[0][0] __________________________________________________________________________________________________ mish_66 (Mish) (None, 13, 13, 512) 0 batch_normalization_66[0][0] __________________________________________________________________________________________________ add_21 (Add) (None, 13, 13, 512) 0 add_20[0][0] mish_66[0][0] __________________________________________________________________________________________________ conv2d_67 (Conv2D) (None, 13, 13, 512) 262144 add_21[0][0] __________________________________________________________________________________________________ batch_normalization_67 (BatchNo (None, 13, 13, 512) 2048 conv2d_67[0][0] __________________________________________________________________________________________________ mish_67 (Mish) (None, 13, 13, 512) 0 batch_normalization_67[0][0] __________________________________________________________________________________________________ conv2d_68 (Conv2D) (None, 13, 13, 512) 2359296 mish_67[0][0] __________________________________________________________________________________________________ batch_normalization_68 (BatchNo (None, 13, 13, 512) 2048 conv2d_68[0][0] __________________________________________________________________________________________________ mish_68 (Mish) (None, 13, 13, 512) 0 batch_normalization_68[0][0] __________________________________________________________________________________________________ add_22 (Add) (None, 13, 13, 512) 0 add_21[0][0] mish_68[0][0] __________________________________________________________________________________________________ conv2d_69 (Conv2D) (None, 13, 13, 512) 262144 add_22[0][0] __________________________________________________________________________________________________ batch_normalization_69 (BatchNo (None, 13, 13, 512) 2048 conv2d_69[0][0] __________________________________________________________________________________________________ mish_69 (Mish) (None, 13, 13, 512) 0 batch_normalization_69[0][0] __________________________________________________________________________________________________ conv2d_70 (Conv2D) (None, 13, 13, 512) 2359296 mish_69[0][0] __________________________________________________________________________________________________ batch_normalization_70 (BatchNo (None, 13, 13, 512) 2048 conv2d_70[0][0] __________________________________________________________________________________________________ mish_70 (Mish) (None, 13, 13, 512) 0 batch_normalization_70[0][0] __________________________________________________________________________________________________ add_23 (Add) (None, 13, 13, 512) 0 add_22[0][0] mish_70[0][0] __________________________________________________________________________________________________ conv2d_71 (Conv2D) (None, 13, 13, 512) 262144 add_23[0][0] __________________________________________________________________________________________________ conv2d_61 (Conv2D) (None, 13, 13, 512) 524288 mish_60[0][0] __________________________________________________________________________________________________ batch_normalization_71 (BatchNo (None, 13, 13, 512) 2048 conv2d_71[0][0] __________________________________________________________________________________________________ batch_normalization_61 (BatchNo (None, 13, 13, 512) 2048 conv2d_61[0][0] __________________________________________________________________________________________________ mish_71 (Mish) (None, 13, 13, 512) 0 batch_normalization_71[0][0] __________________________________________________________________________________________________ mish_61 (Mish) (None, 13, 13, 512) 0 batch_normalization_61[0][0] __________________________________________________________________________________________________ concatenate_5 (Concatenate) (None, 13, 13, 1024) 0 mish_71[0][0] mish_61[0][0] __________________________________________________________________________________________________ conv2d_72 (Conv2D) (None, 13, 13, 1024) 1048576 concatenate_5[0][0] __________________________________________________________________________________________________ batch_normalization_72 (BatchNo (None, 13, 13, 1024) 4096 conv2d_72[0][0] __________________________________________________________________________________________________ mish_72 (Mish) (None, 13, 13, 1024) 0 batch_normalization_72[0][0] __________________________________________________________________________________________________ conv2d_73 (Conv2D) (None, 13, 13, 512) 524288 mish_72[0][0] __________________________________________________________________________________________________ batch_normalization_73 (BatchNo (None, 13, 13, 512) 2048 conv2d_73[0][0] __________________________________________________________________________________________________ leaky_re_lu_1 (LeakyReLU) (None, 13, 13, 512) 0 batch_normalization_73[0][0] __________________________________________________________________________________________________ conv2d_74 (Conv2D) (None, 13, 13, 1024) 4718592 leaky_re_lu_1[0][0] __________________________________________________________________________________________________ batch_normalization_74 (BatchNo (None, 13, 13, 1024) 4096 conv2d_74[0][0] __________________________________________________________________________________________________ leaky_re_lu_2 (LeakyReLU) (None, 13, 13, 1024) 0 batch_normalization_74[0][0] __________________________________________________________________________________________________ conv2d_75 (Conv2D) (None, 13, 13, 512) 524288 leaky_re_lu_2[0][0] __________________________________________________________________________________________________ batch_normalization_75 (BatchNo (None, 13, 13, 512) 2048 conv2d_75[0][0] __________________________________________________________________________________________________ leaky_re_lu_3 (LeakyReLU) (None, 13, 13, 512) 0 batch_normalization_75[0][0] __________________________________________________________________________________________________ max_pooling2d_1 (MaxPooling2D) (None, 13, 13, 512) 0 leaky_re_lu_3[0][0] __________________________________________________________________________________________________ max_pooling2d_2 (MaxPooling2D) (None, 13, 13, 512) 0 leaky_re_lu_3[0][0] __________________________________________________________________________________________________ max_pooling2d_3 (MaxPooling2D) (None, 13, 13, 512) 0 leaky_re_lu_3[0][0] __________________________________________________________________________________________________ concatenate_6 (Concatenate) (None, 13, 13, 2048) 0 max_pooling2d_1[0][0] max_pooling2d_2[0][0] max_pooling2d_3[0][0] leaky_re_lu_3[0][0] __________________________________________________________________________________________________ conv2d_76 (Conv2D) (None, 13, 13, 512) 1048576 concatenate_6[0][0] __________________________________________________________________________________________________ batch_normalization_76 (BatchNo (None, 13, 13, 512) 2048 conv2d_76[0][0] __________________________________________________________________________________________________ leaky_re_lu_4 (LeakyReLU) (None, 13, 13, 512) 0 batch_normalization_76[0][0] __________________________________________________________________________________________________ conv2d_77 (Conv2D) (None, 13, 13, 1024) 4718592 leaky_re_lu_4[0][0] __________________________________________________________________________________________________ batch_normalization_77 (BatchNo (None, 13, 13, 1024) 4096 conv2d_77[0][0] __________________________________________________________________________________________________ leaky_re_lu_5 (LeakyReLU) (None, 13, 13, 1024) 0 batch_normalization_77[0][0] __________________________________________________________________________________________________ conv2d_78 (Conv2D) (None, 13, 13, 512) 524288 leaky_re_lu_5[0][0] __________________________________________________________________________________________________ batch_normalization_78 (BatchNo (None, 13, 13, 512) 2048 conv2d_78[0][0] __________________________________________________________________________________________________ leaky_re_lu_6 (LeakyReLU) (None, 13, 13, 512) 0 batch_normalization_78[0][0] __________________________________________________________________________________________________ conv2d_79 (Conv2D) (None, 13, 13, 256) 131072 leaky_re_lu_6[0][0] __________________________________________________________________________________________________ conv2d_80 (Conv2D) (None, 26, 26, 256) 131072 mish_59[0][0] __________________________________________________________________________________________________ batch_normalization_79 (BatchNo (None, 13, 13, 256) 1024 conv2d_79[0][0] __________________________________________________________________________________________________ batch_normalization_80 (BatchNo (None, 26, 26, 256) 1024 conv2d_80[0][0] __________________________________________________________________________________________________ leaky_re_lu_7 (LeakyReLU) (None, 13, 13, 256) 0 batch_normalization_79[0][0] __________________________________________________________________________________________________ leaky_re_lu_8 (LeakyReLU) (None, 26, 26, 256) 0 batch_normalization_80[0][0] __________________________________________________________________________________________________ up_sampling2d_1 (UpSampling2D) (None, 26, 26, 256) 0 leaky_re_lu_7[0][0] __________________________________________________________________________________________________ concatenate_7 (Concatenate) (None, 26, 26, 512) 0 leaky_re_lu_8[0][0] up_sampling2d_1[0][0] __________________________________________________________________________________________________ conv2d_81 (Conv2D) (None, 26, 26, 256) 131072 concatenate_7[0][0] __________________________________________________________________________________________________ batch_normalization_81 (BatchNo (None, 26, 26, 256) 1024 conv2d_81[0][0] __________________________________________________________________________________________________ leaky_re_lu_9 (LeakyReLU) (None, 26, 26, 256) 0 batch_normalization_81[0][0] __________________________________________________________________________________________________ conv2d_82 (Conv2D) (None, 26, 26, 512) 1179648 leaky_re_lu_9[0][0] __________________________________________________________________________________________________ batch_normalization_82 (BatchNo (None, 26, 26, 512) 2048 conv2d_82[0][0] __________________________________________________________________________________________________ leaky_re_lu_10 (LeakyReLU) (None, 26, 26, 512) 0 batch_normalization_82[0][0] __________________________________________________________________________________________________ conv2d_83 (Conv2D) (None, 26, 26, 256) 131072 leaky_re_lu_10[0][0] __________________________________________________________________________________________________ batch_normalization_83 (BatchNo (None, 26, 26, 256) 1024 conv2d_83[0][0] __________________________________________________________________________________________________ leaky_re_lu_11 (LeakyReLU) (None, 26, 26, 256) 0 batch_normalization_83[0][0] __________________________________________________________________________________________________ conv2d_84 (Conv2D) (None, 26, 26, 512) 1179648 leaky_re_lu_11[0][0] __________________________________________________________________________________________________ batch_normalization_84 (BatchNo (None, 26, 26, 512) 2048 conv2d_84[0][0] __________________________________________________________________________________________________ leaky_re_lu_12 (LeakyReLU) (None, 26, 26, 512) 0 batch_normalization_84[0][0] __________________________________________________________________________________________________ conv2d_85 (Conv2D) (None, 26, 26, 256) 131072 leaky_re_lu_12[0][0] __________________________________________________________________________________________________ batch_normalization_85 (BatchNo (None, 26, 26, 256) 1024 conv2d_85[0][0] __________________________________________________________________________________________________ leaky_re_lu_13 (LeakyReLU) (None, 26, 26, 256) 0 batch_normalization_85[0][0] __________________________________________________________________________________________________ conv2d_86 (Conv2D) (None, 26, 26, 128) 32768 leaky_re_lu_13[0][0] __________________________________________________________________________________________________ conv2d_87 (Conv2D) (None, 52, 52, 128) 32768 mish_38[0][0] __________________________________________________________________________________________________ batch_normalization_86 (BatchNo (None, 26, 26, 128) 512 conv2d_86[0][0] __________________________________________________________________________________________________ batch_normalization_87 (BatchNo (None, 52, 52, 128) 512 conv2d_87[0][0] __________________________________________________________________________________________________ leaky_re_lu_14 (LeakyReLU) (None, 26, 26, 128) 0 batch_normalization_86[0][0] __________________________________________________________________________________________________ leaky_re_lu_15 (LeakyReLU) (None, 52, 52, 128) 0 batch_normalization_87[0][0] __________________________________________________________________________________________________ up_sampling2d_2 (UpSampling2D) (None, 52, 52, 128) 0 leaky_re_lu_14[0][0] __________________________________________________________________________________________________ concatenate_8 (Concatenate) (None, 52, 52, 256) 0 leaky_re_lu_15[0][0] up_sampling2d_2[0][0] __________________________________________________________________________________________________ conv2d_88 (Conv2D) (None, 52, 52, 128) 32768 concatenate_8[0][0] __________________________________________________________________________________________________ batch_normalization_88 (BatchNo (None, 52, 52, 128) 512 conv2d_88[0][0] __________________________________________________________________________________________________ leaky_re_lu_16 (LeakyReLU) (None, 52, 52, 128) 0 batch_normalization_88[0][0] __________________________________________________________________________________________________ conv2d_89 (Conv2D) (None, 52, 52, 256) 294912 leaky_re_lu_16[0][0] __________________________________________________________________________________________________ batch_normalization_89 (BatchNo (None, 52, 52, 256) 1024 conv2d_89[0][0] __________________________________________________________________________________________________ leaky_re_lu_17 (LeakyReLU) (None, 52, 52, 256) 0 batch_normalization_89[0][0] __________________________________________________________________________________________________ conv2d_90 (Conv2D) (None, 52, 52, 128) 32768 leaky_re_lu_17[0][0] __________________________________________________________________________________________________ batch_normalization_90 (BatchNo (None, 52, 52, 128) 512 conv2d_90[0][0] __________________________________________________________________________________________________ leaky_re_lu_18 (LeakyReLU) (None, 52, 52, 128) 0 batch_normalization_90[0][0] __________________________________________________________________________________________________ conv2d_91 (Conv2D) (None, 52, 52, 256) 294912 leaky_re_lu_18[0][0] __________________________________________________________________________________________________ batch_normalization_91 (BatchNo (None, 52, 52, 256) 1024 conv2d_91[0][0] __________________________________________________________________________________________________ leaky_re_lu_19 (LeakyReLU) (None, 52, 52, 256) 0 batch_normalization_91[0][0] __________________________________________________________________________________________________ conv2d_92 (Conv2D) (None, 52, 52, 128) 32768 leaky_re_lu_19[0][0] __________________________________________________________________________________________________ batch_normalization_92 (BatchNo (None, 52, 52, 128) 512 conv2d_92[0][0] __________________________________________________________________________________________________ leaky_re_lu_20 (LeakyReLU) (None, 52, 52, 128) 0 batch_normalization_92[0][0] __________________________________________________________________________________________________ zero_padding2d_6 (ZeroPadding2D (None, 53, 53, 128) 0 leaky_re_lu_20[0][0] __________________________________________________________________________________________________ conv2d_95 (Conv2D) (None, 26, 26, 256) 294912 zero_padding2d_6[0][0] __________________________________________________________________________________________________ batch_normalization_94 (BatchNo (None, 26, 26, 256) 1024 conv2d_95[0][0] __________________________________________________________________________________________________ leaky_re_lu_22 (LeakyReLU) (None, 26, 26, 256) 0 batch_normalization_94[0][0] __________________________________________________________________________________________________ concatenate_9 (Concatenate) (None, 26, 26, 512) 0 leaky_re_lu_22[0][0] leaky_re_lu_13[0][0] __________________________________________________________________________________________________ conv2d_96 (Conv2D) (None, 26, 26, 256) 131072 concatenate_9[0][0] __________________________________________________________________________________________________ batch_normalization_95 (BatchNo (None, 26, 26, 256) 1024 conv2d_96[0][0] __________________________________________________________________________________________________ leaky_re_lu_23 (LeakyReLU) (None, 26, 26, 256) 0 batch_normalization_95[0][0] __________________________________________________________________________________________________ conv2d_97 (Conv2D) (None, 26, 26, 512) 1179648 leaky_re_lu_23[0][0] __________________________________________________________________________________________________ batch_normalization_96 (BatchNo (None, 26, 26, 512) 2048 conv2d_97[0][0] __________________________________________________________________________________________________ leaky_re_lu_24 (LeakyReLU) (None, 26, 26, 512) 0 batch_normalization_96[0][0] __________________________________________________________________________________________________ conv2d_98 (Conv2D) (None, 26, 26, 256) 131072 leaky_re_lu_24[0][0] __________________________________________________________________________________________________ batch_normalization_97 (BatchNo (None, 26, 26, 256) 1024 conv2d_98[0][0] __________________________________________________________________________________________________ leaky_re_lu_25 (LeakyReLU) (None, 26, 26, 256) 0 batch_normalization_97[0][0] __________________________________________________________________________________________________ conv2d_99 (Conv2D) (None, 26, 26, 512) 1179648 leaky_re_lu_25[0][0] __________________________________________________________________________________________________ batch_normalization_98 (BatchNo (None, 26, 26, 512) 2048 conv2d_99[0][0] __________________________________________________________________________________________________ leaky_re_lu_26 (LeakyReLU) (None, 26, 26, 512) 0 batch_normalization_98[0][0] __________________________________________________________________________________________________ conv2d_100 (Conv2D) (None, 26, 26, 256) 131072 leaky_re_lu_26[0][0] __________________________________________________________________________________________________ batch_normalization_99 (BatchNo (None, 26, 26, 256) 1024 conv2d_100[0][0] __________________________________________________________________________________________________ leaky_re_lu_27 (LeakyReLU) (None, 26, 26, 256) 0 batch_normalization_99[0][0] __________________________________________________________________________________________________ zero_padding2d_7 (ZeroPadding2D (None, 27, 27, 256) 0 leaky_re_lu_27[0][0] __________________________________________________________________________________________________ conv2d_103 (Conv2D) (None, 13, 13, 512) 1179648 zero_padding2d_7[0][0] __________________________________________________________________________________________________ batch_normalization_101 (BatchN (None, 13, 13, 512) 2048 conv2d_103[0][0] __________________________________________________________________________________________________ leaky_re_lu_29 (LeakyReLU) (None, 13, 13, 512) 0 batch_normalization_101[0][0] __________________________________________________________________________________________________ concatenate_10 (Concatenate) (None, 13, 13, 1024) 0 leaky_re_lu_29[0][0] leaky_re_lu_6[0][0] __________________________________________________________________________________________________ conv2d_104 (Conv2D) (None, 13, 13, 512) 524288 concatenate_10[0][0] __________________________________________________________________________________________________ batch_normalization_102 (BatchN (None, 13, 13, 512) 2048 conv2d_104[0][0] __________________________________________________________________________________________________ leaky_re_lu_30 (LeakyReLU) (None, 13, 13, 512) 0 batch_normalization_102[0][0] __________________________________________________________________________________________________ conv2d_105 (Conv2D) (None, 13, 13, 1024) 4718592 leaky_re_lu_30[0][0] __________________________________________________________________________________________________ batch_normalization_103 (BatchN (None, 13, 13, 1024) 4096 conv2d_105[0][0] __________________________________________________________________________________________________ leaky_re_lu_31 (LeakyReLU) (None, 13, 13, 1024) 0 batch_normalization_103[0][0] __________________________________________________________________________________________________ conv2d_106 (Conv2D) (None, 13, 13, 512) 524288 leaky_re_lu_31[0][0] __________________________________________________________________________________________________ batch_normalization_104 (BatchN (None, 13, 13, 512) 2048 conv2d_106[0][0] __________________________________________________________________________________________________ leaky_re_lu_32 (LeakyReLU) (None, 13, 13, 512) 0 batch_normalization_104[0][0] __________________________________________________________________________________________________ conv2d_107 (Conv2D) (None, 13, 13, 1024) 4718592 leaky_re_lu_32[0][0] __________________________________________________________________________________________________ batch_normalization_105 (BatchN (None, 13, 13, 1024) 4096 conv2d_107[0][0] __________________________________________________________________________________________________ leaky_re_lu_33 (LeakyReLU) (None, 13, 13, 1024) 0 batch_normalization_105[0][0] __________________________________________________________________________________________________ conv2d_108 (Conv2D) (None, 13, 13, 512) 524288 leaky_re_lu_33[0][0] __________________________________________________________________________________________________ batch_normalization_106 (BatchN (None, 13, 13, 512) 2048 conv2d_108[0][0] __________________________________________________________________________________________________ leaky_re_lu_34 (LeakyReLU) (None, 13, 13, 512) 0 batch_normalization_106[0][0] __________________________________________________________________________________________________ conv2d_109 (Conv2D) (None, 13, 13, 1024) 4718592 leaky_re_lu_34[0][0] __________________________________________________________________________________________________ conv2d_101 (Conv2D) (None, 26, 26, 512) 1179648 leaky_re_lu_27[0][0] __________________________________________________________________________________________________ conv2d_93 (Conv2D) (None, 52, 52, 256) 294912 leaky_re_lu_20[0][0] __________________________________________________________________________________________________ batch_normalization_107 (BatchN (None, 13, 13, 1024) 4096 conv2d_109[0][0] __________________________________________________________________________________________________ batch_normalization_100 (BatchN (None, 26, 26, 512) 2048 conv2d_101[0][0] __________________________________________________________________________________________________ batch_normalization_93 (BatchNo (None, 52, 52, 256) 1024 conv2d_93[0][0] __________________________________________________________________________________________________ leaky_re_lu_35 (LeakyReLU) (None, 13, 13, 1024) 0 batch_normalization_107[0][0] __________________________________________________________________________________________________ leaky_re_lu_28 (LeakyReLU) (None, 26, 26, 512) 0 batch_normalization_100[0][0] __________________________________________________________________________________________________ leaky_re_lu_21 (LeakyReLU) (None, 52, 52, 256) 0 batch_normalization_93[0][0] __________________________________________________________________________________________________ conv2d_110 (Conv2D) (None, 13, 13, 24) 24600 leaky_re_lu_35[0][0] __________________________________________________________________________________________________ conv2d_102 (Conv2D) (None, 26, 26, 24) 12312 leaky_re_lu_28[0][0] __________________________________________________________________________________________________ conv2d_94 (Conv2D) (None, 52, 52, 24) 6168 leaky_re_lu_21[0][0] ================================================================================================== Total params: 64,014,760 Trainable params: 63,948,456 Non-trainable params: 66,304 __________________________________________________________________________________________________
yolov3网络参数计算
inputs = (416, 416, 3), num_anchors = 3, num_classes = 3 __________________________________________________________________________________________________ Layer (type) Output Shape Param # Connected to ================================================================================================== input_1 (InputLayer) (None, 416, 416, 3) 0 __________________________________________________________________________________________________ conv2d_1 (Conv2D) (None, 416, 416, 32) 864 input_1[0][0] __________________________________________________________________________________________________ batch_normalization_1 (BatchNor (None, 416, 416, 32) 128 conv2d_1[0][0] __________________________________________________________________________________________________ leaky_re_lu_1 (LeakyReLU) (None, 416, 416, 32) 0 batch_normalization_1[0][0] __________________________________________________________________________________________________ zero_padding2d_1 (ZeroPadding2D (None, 417, 417, 32) 0 leaky_re_lu_1[0][0] __________________________________________________________________________________________________ conv2d_2 (Conv2D) (None, 208, 208, 64) 18432 zero_padding2d_1[0][0] __________________________________________________________________________________________________ batch_normalization_2 (BatchNor (None, 208, 208, 64) 256 conv2d_2[0][0] __________________________________________________________________________________________________ leaky_re_lu_2 (LeakyReLU) (None, 208, 208, 64) 0 batch_normalization_2[0][0] __________________________________________________________________________________________________ conv2d_3 (Conv2D) (None, 208, 208, 32) 2048 leaky_re_lu_2[0][0] __________________________________________________________________________________________________ batch_normalization_3 (BatchNor (None, 208, 208, 32) 128 conv2d_3[0][0] __________________________________________________________________________________________________ leaky_re_lu_3 (LeakyReLU) (None, 208, 208, 32) 0 batch_normalization_3[0][0] __________________________________________________________________________________________________ conv2d_4 (Conv2D) (None, 208, 208, 64) 18432 leaky_re_lu_3[0][0] __________________________________________________________________________________________________ batch_normalization_4 (BatchNor (None, 208, 208, 64) 256 conv2d_4[0][0] __________________________________________________________________________________________________ leaky_re_lu_4 (LeakyReLU) (None, 208, 208, 64) 0 batch_normalization_4[0][0] __________________________________________________________________________________________________ add_1 (Add) (None, 208, 208, 64) 0 leaky_re_lu_2[0][0] leaky_re_lu_4[0][0] __________________________________________________________________________________________________ zero_padding2d_2 (ZeroPadding2D (None, 209, 209, 64) 0 add_1[0][0] __________________________________________________________________________________________________ conv2d_5 (Conv2D) (None, 104, 104, 128 73728 zero_padding2d_2[0][0] __________________________________________________________________________________________________ batch_normalization_5 (BatchNor (None, 104, 104, 128 512 conv2d_5[0][0] __________________________________________________________________________________________________ leaky_re_lu_5 (LeakyReLU) (None, 104, 104, 128 0 batch_normalization_5[0][0] __________________________________________________________________________________________________ conv2d_6 (Conv2D) (None, 104, 104, 64) 8192 leaky_re_lu_5[0][0] __________________________________________________________________________________________________ batch_normalization_6 (BatchNor (None, 104, 104, 64) 256 conv2d_6[0][0] __________________________________________________________________________________________________ leaky_re_lu_6 (LeakyReLU) (None, 104, 104, 64) 0 batch_normalization_6[0][0] __________________________________________________________________________________________________ conv2d_7 (Conv2D) (None, 104, 104, 128 73728 leaky_re_lu_6[0][0] __________________________________________________________________________________________________ batch_normalization_7 (BatchNor (None, 104, 104, 128 512 conv2d_7[0][0] __________________________________________________________________________________________________ leaky_re_lu_7 (LeakyReLU) (None, 104, 104, 128 0 batch_normalization_7[0][0] __________________________________________________________________________________________________ add_2 (Add) (None, 104, 104, 128 0 leaky_re_lu_5[0][0] leaky_re_lu_7[0][0] __________________________________________________________________________________________________ conv2d_8 (Conv2D) (None, 104, 104, 64) 8192 add_2[0][0] __________________________________________________________________________________________________ batch_normalization_8 (BatchNor (None, 104, 104, 64) 256 conv2d_8[0][0] __________________________________________________________________________________________________ leaky_re_lu_8 (LeakyReLU) (None, 104, 104, 64) 0 batch_normalization_8[0][0] __________________________________________________________________________________________________ conv2d_9 (Conv2D) (None, 104, 104, 128 73728 leaky_re_lu_8[0][0] __________________________________________________________________________________________________ batch_normalization_9 (BatchNor (None, 104, 104, 128 512 conv2d_9[0][0] __________________________________________________________________________________________________ leaky_re_lu_9 (LeakyReLU) (None, 104, 104, 128 0 batch_normalization_9[0][0] __________________________________________________________________________________________________ add_3 (Add) (None, 104, 104, 128 0 add_2[0][0] leaky_re_lu_9[0][0] __________________________________________________________________________________________________ zero_padding2d_3 (ZeroPadding2D (None, 105, 105, 128 0 add_3[0][0] __________________________________________________________________________________________________ conv2d_10 (Conv2D) (None, 52, 52, 256) 294912 zero_padding2d_3[0][0] __________________________________________________________________________________________________ batch_normalization_10 (BatchNo (None, 52, 52, 256) 1024 conv2d_10[0][0] __________________________________________________________________________________________________ leaky_re_lu_10 (LeakyReLU) (None, 52, 52, 256) 0 batch_normalization_10[0][0] __________________________________________________________________________________________________ conv2d_11 (Conv2D) (None, 52, 52, 128) 32768 leaky_re_lu_10[0][0] __________________________________________________________________________________________________ batch_normalization_11 (BatchNo (None, 52, 52, 128) 512 conv2d_11[0][0] __________________________________________________________________________________________________ leaky_re_lu_11 (LeakyReLU) (None, 52, 52, 128) 0 batch_normalization_11[0][0] __________________________________________________________________________________________________ conv2d_12 (Conv2D) (None, 52, 52, 256) 294912 leaky_re_lu_11[0][0] __________________________________________________________________________________________________ batch_normalization_12 (BatchNo (None, 52, 52, 256) 1024 conv2d_12[0][0] __________________________________________________________________________________________________ leaky_re_lu_12 (LeakyReLU) (None, 52, 52, 256) 0 batch_normalization_12[0][0] __________________________________________________________________________________________________ add_4 (Add) (None, 52, 52, 256) 0 leaky_re_lu_10[0][0] leaky_re_lu_12[0][0] __________________________________________________________________________________________________ conv2d_13 (Conv2D) (None, 52, 52, 128) 32768 add_4[0][0] __________________________________________________________________________________________________ batch_normalization_13 (BatchNo (None, 52, 52, 128) 512 conv2d_13[0][0] __________________________________________________________________________________________________ leaky_re_lu_13 (LeakyReLU) (None, 52, 52, 128) 0 batch_normalization_13[0][0] __________________________________________________________________________________________________ conv2d_14 (Conv2D) (None, 52, 52, 256) 294912 leaky_re_lu_13[0][0] __________________________________________________________________________________________________ batch_normalization_14 (BatchNo (None, 52, 52, 256) 1024 conv2d_14[0][0] __________________________________________________________________________________________________ leaky_re_lu_14 (LeakyReLU) (None, 52, 52, 256) 0 batch_normalization_14[0][0] __________________________________________________________________________________________________ add_5 (Add) (None, 52, 52, 256) 0 add_4[0][0] leaky_re_lu_14[0][0] __________________________________________________________________________________________________ conv2d_15 (Conv2D) (None, 52, 52, 128) 32768 add_5[0][0] __________________________________________________________________________________________________ batch_normalization_15 (BatchNo (None, 52, 52, 128) 512 conv2d_15[0][0] __________________________________________________________________________________________________ leaky_re_lu_15 (LeakyReLU) (None, 52, 52, 128) 0 batch_normalization_15[0][0] __________________________________________________________________________________________________ conv2d_16 (Conv2D) (None, 52, 52, 256) 294912 leaky_re_lu_15[0][0] __________________________________________________________________________________________________ batch_normalization_16 (BatchNo (None, 52, 52, 256) 1024 conv2d_16[0][0] __________________________________________________________________________________________________ leaky_re_lu_16 (LeakyReLU) (None, 52, 52, 256) 0 batch_normalization_16[0][0] __________________________________________________________________________________________________ add_6 (Add) (None, 52, 52, 256) 0 add_5[0][0] leaky_re_lu_16[0][0] __________________________________________________________________________________________________ conv2d_17 (Conv2D) (None, 52, 52, 128) 32768 add_6[0][0] __________________________________________________________________________________________________ batch_normalization_17 (BatchNo (None, 52, 52, 128) 512 conv2d_17[0][0] __________________________________________________________________________________________________ leaky_re_lu_17 (LeakyReLU) (None, 52, 52, 128) 0 batch_normalization_17[0][0] __________________________________________________________________________________________________ conv2d_18 (Conv2D) (None, 52, 52, 256) 294912 leaky_re_lu_17[0][0] __________________________________________________________________________________________________ batch_normalization_18 (BatchNo (None, 52, 52, 256) 1024 conv2d_18[0][0] __________________________________________________________________________________________________ leaky_re_lu_18 (LeakyReLU) (None, 52, 52, 256) 0 batch_normalization_18[0][0] __________________________________________________________________________________________________ add_7 (Add) (None, 52, 52, 256) 0 add_6[0][0] leaky_re_lu_18[0][0] __________________________________________________________________________________________________ conv2d_19 (Conv2D) (None, 52, 52, 128) 32768 add_7[0][0] __________________________________________________________________________________________________ batch_normalization_19 (BatchNo (None, 52, 52, 128) 512 conv2d_19[0][0] __________________________________________________________________________________________________ leaky_re_lu_19 (LeakyReLU) (None, 52, 52, 128) 0 batch_normalization_19[0][0] __________________________________________________________________________________________________ conv2d_20 (Conv2D) (None, 52, 52, 256) 294912 leaky_re_lu_19[0][0] __________________________________________________________________________________________________ batch_normalization_20 (BatchNo (None, 52, 52, 256) 1024 conv2d_20[0][0] __________________________________________________________________________________________________ leaky_re_lu_20 (LeakyReLU) (None, 52, 52, 256) 0 batch_normalization_20[0][0] __________________________________________________________________________________________________ add_8 (Add) (None, 52, 52, 256) 0 add_7[0][0] leaky_re_lu_20[0][0] __________________________________________________________________________________________________ conv2d_21 (Conv2D) (None, 52, 52, 128) 32768 add_8[0][0] __________________________________________________________________________________________________ batch_normalization_21 (BatchNo (None, 52, 52, 128) 512 conv2d_21[0][0] __________________________________________________________________________________________________ leaky_re_lu_21 (LeakyReLU) (None, 52, 52, 128) 0 batch_normalization_21[0][0] __________________________________________________________________________________________________ conv2d_22 (Conv2D) (None, 52, 52, 256) 294912 leaky_re_lu_21[0][0] __________________________________________________________________________________________________ batch_normalization_22 (BatchNo (None, 52, 52, 256) 1024 conv2d_22[0][0] __________________________________________________________________________________________________ leaky_re_lu_22 (LeakyReLU) (None, 52, 52, 256) 0 batch_normalization_22[0][0] __________________________________________________________________________________________________ add_9 (Add) (None, 52, 52, 256) 0 add_8[0][0] leaky_re_lu_22[0][0] __________________________________________________________________________________________________ conv2d_23 (Conv2D) (None, 52, 52, 128) 32768 add_9[0][0] __________________________________________________________________________________________________ batch_normalization_23 (BatchNo (None, 52, 52, 128) 512 conv2d_23[0][0] __________________________________________________________________________________________________ leaky_re_lu_23 (LeakyReLU) (None, 52, 52, 128) 0 batch_normalization_23[0][0] __________________________________________________________________________________________________ conv2d_24 (Conv2D) (None, 52, 52, 256) 294912 leaky_re_lu_23[0][0] __________________________________________________________________________________________________ batch_normalization_24 (BatchNo (None, 52, 52, 256) 1024 conv2d_24[0][0] __________________________________________________________________________________________________ leaky_re_lu_24 (LeakyReLU) (None, 52, 52, 256) 0 batch_normalization_24[0][0] __________________________________________________________________________________________________ add_10 (Add) (None, 52, 52, 256) 0 add_9[0][0] leaky_re_lu_24[0][0] __________________________________________________________________________________________________ conv2d_25 (Conv2D) (None, 52, 52, 128) 32768 add_10[0][0] __________________________________________________________________________________________________ batch_normalization_25 (BatchNo (None, 52, 52, 128) 512 conv2d_25[0][0] __________________________________________________________________________________________________ leaky_re_lu_25 (LeakyReLU) (None, 52, 52, 128) 0 batch_normalization_25[0][0] __________________________________________________________________________________________________ conv2d_26 (Conv2D) (None, 52, 52, 256) 294912 leaky_re_lu_25[0][0] __________________________________________________________________________________________________ batch_normalization_26 (BatchNo (None, 52, 52, 256) 1024 conv2d_26[0][0] __________________________________________________________________________________________________ leaky_re_lu_26 (LeakyReLU) (None, 52, 52, 256) 0 batch_normalization_26[0][0] __________________________________________________________________________________________________ add_11 (Add) (None, 52, 52, 256) 0 add_10[0][0] leaky_re_lu_26[0][0] __________________________________________________________________________________________________ zero_padding2d_4 (ZeroPadding2D (None, 53, 53, 256) 0 add_11[0][0] __________________________________________________________________________________________________ conv2d_27 (Conv2D) (None, 26, 26, 512) 1179648 zero_padding2d_4[0][0] __________________________________________________________________________________________________ batch_normalization_27 (BatchNo (None, 26, 26, 512) 2048 conv2d_27[0][0] __________________________________________________________________________________________________ leaky_re_lu_27 (LeakyReLU) (None, 26, 26, 512) 0 batch_normalization_27[0][0] __________________________________________________________________________________________________ conv2d_28 (Conv2D) (None, 26, 26, 256) 131072 leaky_re_lu_27[0][0] __________________________________________________________________________________________________ batch_normalization_28 (BatchNo (None, 26, 26, 256) 1024 conv2d_28[0][0] __________________________________________________________________________________________________ leaky_re_lu_28 (LeakyReLU) (None, 26, 26, 256) 0 batch_normalization_28[0][0] __________________________________________________________________________________________________ conv2d_29 (Conv2D) (None, 26, 26, 512) 1179648 leaky_re_lu_28[0][0] __________________________________________________________________________________________________ batch_normalization_29 (BatchNo (None, 26, 26, 512) 2048 conv2d_29[0][0] __________________________________________________________________________________________________ leaky_re_lu_29 (LeakyReLU) (None, 26, 26, 512) 0 batch_normalization_29[0][0] __________________________________________________________________________________________________ add_12 (Add) (None, 26, 26, 512) 0 leaky_re_lu_27[0][0] leaky_re_lu_29[0][0] __________________________________________________________________________________________________ conv2d_30 (Conv2D) (None, 26, 26, 256) 131072 add_12[0][0] __________________________________________________________________________________________________ batch_normalization_30 (BatchNo (None, 26, 26, 256) 1024 conv2d_30[0][0] __________________________________________________________________________________________________ leaky_re_lu_30 (LeakyReLU) (None, 26, 26, 256) 0 batch_normalization_30[0][0] __________________________________________________________________________________________________ conv2d_31 (Conv2D) (None, 26, 26, 512) 1179648 leaky_re_lu_30[0][0] __________________________________________________________________________________________________ batch_normalization_31 (BatchNo (None, 26, 26, 512) 2048 conv2d_31[0][0] __________________________________________________________________________________________________ leaky_re_lu_31 (LeakyReLU) (None, 26, 26, 512) 0 batch_normalization_31[0][0] __________________________________________________________________________________________________ add_13 (Add) (None, 26, 26, 512) 0 add_12[0][0] leaky_re_lu_31[0][0] __________________________________________________________________________________________________ conv2d_32 (Conv2D) (None, 26, 26, 256) 131072 add_13[0][0] __________________________________________________________________________________________________ batch_normalization_32 (BatchNo (None, 26, 26, 256) 1024 conv2d_32[0][0] __________________________________________________________________________________________________ leaky_re_lu_32 (LeakyReLU) (None, 26, 26, 256) 0 batch_normalization_32[0][0] __________________________________________________________________________________________________ conv2d_33 (Conv2D) (None, 26, 26, 512) 1179648 leaky_re_lu_32[0][0] __________________________________________________________________________________________________ batch_normalization_33 (BatchNo (None, 26, 26, 512) 2048 conv2d_33[0][0] __________________________________________________________________________________________________ leaky_re_lu_33 (LeakyReLU) (None, 26, 26, 512) 0 batch_normalization_33[0][0] __________________________________________________________________________________________________ add_14 (Add) (None, 26, 26, 512) 0 add_13[0][0] leaky_re_lu_33[0][0] __________________________________________________________________________________________________ conv2d_34 (Conv2D) (None, 26, 26, 256) 131072 add_14[0][0] __________________________________________________________________________________________________ batch_normalization_34 (BatchNo (None, 26, 26, 256) 1024 conv2d_34[0][0] __________________________________________________________________________________________________ leaky_re_lu_34 (LeakyReLU) (None, 26, 26, 256) 0 batch_normalization_34[0][0] __________________________________________________________________________________________________ conv2d_35 (Conv2D) (None, 26, 26, 512) 1179648 leaky_re_lu_34[0][0] __________________________________________________________________________________________________ batch_normalization_35 (BatchNo (None, 26, 26, 512) 2048 conv2d_35[0][0] __________________________________________________________________________________________________ leaky_re_lu_35 (LeakyReLU) (None, 26, 26, 512) 0 batch_normalization_35[0][0] __________________________________________________________________________________________________ add_15 (Add) (None, 26, 26, 512) 0 add_14[0][0] leaky_re_lu_35[0][0] __________________________________________________________________________________________________ conv2d_36 (Conv2D) (None, 26, 26, 256) 131072 add_15[0][0] __________________________________________________________________________________________________ batch_normalization_36 (BatchNo (None, 26, 26, 256) 1024 conv2d_36[0][0] __________________________________________________________________________________________________ leaky_re_lu_36 (LeakyReLU) (None, 26, 26, 256) 0 batch_normalization_36[0][0] __________________________________________________________________________________________________ conv2d_37 (Conv2D) (None, 26, 26, 512) 1179648 leaky_re_lu_36[0][0] __________________________________________________________________________________________________ batch_normalization_37 (BatchNo (None, 26, 26, 512) 2048 conv2d_37[0][0] __________________________________________________________________________________________________ leaky_re_lu_37 (LeakyReLU) (None, 26, 26, 512) 0 batch_normalization_37[0][0] __________________________________________________________________________________________________ add_16 (Add) (None, 26, 26, 512) 0 add_15[0][0] leaky_re_lu_37[0][0] __________________________________________________________________________________________________ conv2d_38 (Conv2D) (None, 26, 26, 256) 131072 add_16[0][0] __________________________________________________________________________________________________ batch_normalization_38 (BatchNo (None, 26, 26, 256) 1024 conv2d_38[0][0] __________________________________________________________________________________________________ leaky_re_lu_38 (LeakyReLU) (None, 26, 26, 256) 0 batch_normalization_38[0][0] __________________________________________________________________________________________________ conv2d_39 (Conv2D) (None, 26, 26, 512) 1179648 leaky_re_lu_38[0][0] __________________________________________________________________________________________________ batch_normalization_39 (BatchNo (None, 26, 26, 512) 2048 conv2d_39[0][0] __________________________________________________________________________________________________ leaky_re_lu_39 (LeakyReLU) (None, 26, 26, 512) 0 batch_normalization_39[0][0] __________________________________________________________________________________________________ add_17 (Add) (None, 26, 26, 512) 0 add_16[0][0] leaky_re_lu_39[0][0] __________________________________________________________________________________________________ conv2d_40 (Conv2D) (None, 26, 26, 256) 131072 add_17[0][0] __________________________________________________________________________________________________ batch_normalization_40 (BatchNo (None, 26, 26, 256) 1024 conv2d_40[0][0] __________________________________________________________________________________________________ leaky_re_lu_40 (LeakyReLU) (None, 26, 26, 256) 0 batch_normalization_40[0][0] __________________________________________________________________________________________________ conv2d_41 (Conv2D) (None, 26, 26, 512) 1179648 leaky_re_lu_40[0][0] __________________________________________________________________________________________________ batch_normalization_41 (BatchNo (None, 26, 26, 512) 2048 conv2d_41[0][0] __________________________________________________________________________________________________ leaky_re_lu_41 (LeakyReLU) (None, 26, 26, 512) 0 batch_normalization_41[0][0] __________________________________________________________________________________________________ add_18 (Add) (None, 26, 26, 512) 0 add_17[0][0] leaky_re_lu_41[0][0] __________________________________________________________________________________________________ conv2d_42 (Conv2D) (None, 26, 26, 256) 131072 add_18[0][0] __________________________________________________________________________________________________ batch_normalization_42 (BatchNo (None, 26, 26, 256) 1024 conv2d_42[0][0] __________________________________________________________________________________________________ leaky_re_lu_42 (LeakyReLU) (None, 26, 26, 256) 0 batch_normalization_42[0][0] __________________________________________________________________________________________________ conv2d_43 (Conv2D) (None, 26, 26, 512) 1179648 leaky_re_lu_42[0][0] __________________________________________________________________________________________________ batch_normalization_43 (BatchNo (None, 26, 26, 512) 2048 conv2d_43[0][0] __________________________________________________________________________________________________ leaky_re_lu_43 (LeakyReLU) (None, 26, 26, 512) 0 batch_normalization_43[0][0] __________________________________________________________________________________________________ add_19 (Add) (None, 26, 26, 512) 0 add_18[0][0] leaky_re_lu_43[0][0] __________________________________________________________________________________________________ zero_padding2d_5 (ZeroPadding2D (None, 27, 27, 512) 0 add_19[0][0] __________________________________________________________________________________________________ conv2d_44 (Conv2D) (None, 13, 13, 1024) 4718592 zero_padding2d_5[0][0] __________________________________________________________________________________________________ batch_normalization_44 (BatchNo (None, 13, 13, 1024) 4096 conv2d_44[0][0] __________________________________________________________________________________________________ leaky_re_lu_44 (LeakyReLU) (None, 13, 13, 1024) 0 batch_normalization_44[0][0] __________________________________________________________________________________________________ conv2d_45 (Conv2D) (None, 13, 13, 512) 524288 leaky_re_lu_44[0][0] __________________________________________________________________________________________________ batch_normalization_45 (BatchNo (None, 13, 13, 512) 2048 conv2d_45[0][0] __________________________________________________________________________________________________ leaky_re_lu_45 (LeakyReLU) (None, 13, 13, 512) 0 batch_normalization_45[0][0] __________________________________________________________________________________________________ conv2d_46 (Conv2D) (None, 13, 13, 1024) 4718592 leaky_re_lu_45[0][0] __________________________________________________________________________________________________ batch_normalization_46 (BatchNo (None, 13, 13, 1024) 4096 conv2d_46[0][0] __________________________________________________________________________________________________ leaky_re_lu_46 (LeakyReLU) (None, 13, 13, 1024) 0 batch_normalization_46[0][0] __________________________________________________________________________________________________ add_20 (Add) (None, 13, 13, 1024) 0 leaky_re_lu_44[0][0] leaky_re_lu_46[0][0] __________________________________________________________________________________________________ conv2d_47 (Conv2D) (None, 13, 13, 512) 524288 add_20[0][0] __________________________________________________________________________________________________ batch_normalization_47 (BatchNo (None, 13, 13, 512) 2048 conv2d_47[0][0] __________________________________________________________________________________________________ leaky_re_lu_47 (LeakyReLU) (None, 13, 13, 512) 0 batch_normalization_47[0][0] __________________________________________________________________________________________________ conv2d_48 (Conv2D) (None, 13, 13, 1024) 4718592 leaky_re_lu_47[0][0] __________________________________________________________________________________________________ batch_normalization_48 (BatchNo (None, 13, 13, 1024) 4096 conv2d_48[0][0] __________________________________________________________________________________________________ leaky_re_lu_48 (LeakyReLU) (None, 13, 13, 1024) 0 batch_normalization_48[0][0] __________________________________________________________________________________________________ add_21 (Add) (None, 13, 13, 1024) 0 add_20[0][0] leaky_re_lu_48[0][0] __________________________________________________________________________________________________ conv2d_49 (Conv2D) (None, 13, 13, 512) 524288 add_21[0][0] __________________________________________________________________________________________________ batch_normalization_49 (BatchNo (None, 13, 13, 512) 2048 conv2d_49[0][0] __________________________________________________________________________________________________ leaky_re_lu_49 (LeakyReLU) (None, 13, 13, 512) 0 batch_normalization_49[0][0] __________________________________________________________________________________________________ conv2d_50 (Conv2D) (None, 13, 13, 1024) 4718592 leaky_re_lu_49[0][0] __________________________________________________________________________________________________ batch_normalization_50 (BatchNo (None, 13, 13, 1024) 4096 conv2d_50[0][0] __________________________________________________________________________________________________ leaky_re_lu_50 (LeakyReLU) (None, 13, 13, 1024) 0 batch_normalization_50[0][0] __________________________________________________________________________________________________ add_22 (Add) (None, 13, 13, 1024) 0 add_21[0][0] leaky_re_lu_50[0][0] __________________________________________________________________________________________________ conv2d_51 (Conv2D) (None, 13, 13, 512) 524288 add_22[0][0] __________________________________________________________________________________________________ batch_normalization_51 (BatchNo (None, 13, 13, 512) 2048 conv2d_51[0][0] __________________________________________________________________________________________________ leaky_re_lu_51 (LeakyReLU) (None, 13, 13, 512) 0 batch_normalization_51[0][0] __________________________________________________________________________________________________ conv2d_52 (Conv2D) (None, 13, 13, 1024) 4718592 leaky_re_lu_51[0][0] __________________________________________________________________________________________________ batch_normalization_52 (BatchNo (None, 13, 13, 1024) 4096 conv2d_52[0][0] __________________________________________________________________________________________________ leaky_re_lu_52 (LeakyReLU) (None, 13, 13, 1024) 0 batch_normalization_52[0][0] __________________________________________________________________________________________________ add_23 (Add) (None, 13, 13, 1024) 0 add_22[0][0] leaky_re_lu_52[0][0] __________________________________________________________________________________________________ conv2d_53 (Conv2D) (None, 13, 13, 512) 524288 add_23[0][0] __________________________________________________________________________________________________ batch_normalization_53 (BatchNo (None, 13, 13, 512) 2048 conv2d_53[0][0] __________________________________________________________________________________________________ leaky_re_lu_53 (LeakyReLU) (None, 13, 13, 512) 0 batch_normalization_53[0][0] __________________________________________________________________________________________________ conv2d_54 (Conv2D) (None, 13, 13, 1024) 4718592 leaky_re_lu_53[0][0] __________________________________________________________________________________________________ batch_normalization_54 (BatchNo (None, 13, 13, 1024) 4096 conv2d_54[0][0] __________________________________________________________________________________________________ leaky_re_lu_54 (LeakyReLU) (None, 13, 13, 1024) 0 batch_normalization_54[0][0] __________________________________________________________________________________________________ conv2d_55 (Conv2D) (None, 13, 13, 512) 524288 leaky_re_lu_54[0][0] __________________________________________________________________________________________________ batch_normalization_55 (BatchNo (None, 13, 13, 512) 2048 conv2d_55[0][0] __________________________________________________________________________________________________ leaky_re_lu_55 (LeakyReLU) (None, 13, 13, 512) 0 batch_normalization_55[0][0] __________________________________________________________________________________________________ conv2d_56 (Conv2D) (None, 13, 13, 1024) 4718592 leaky_re_lu_55[0][0] __________________________________________________________________________________________________ batch_normalization_56 (BatchNo (None, 13, 13, 1024) 4096 conv2d_56[0][0] __________________________________________________________________________________________________ leaky_re_lu_56 (LeakyReLU) (None, 13, 13, 1024) 0 batch_normalization_56[0][0] __________________________________________________________________________________________________ conv2d_57 (Conv2D) (None, 13, 13, 512) 524288 leaky_re_lu_56[0][0] __________________________________________________________________________________________________ batch_normalization_57 (BatchNo (None, 13, 13, 512) 2048 conv2d_57[0][0] __________________________________________________________________________________________________ leaky_re_lu_57 (LeakyReLU) (None, 13, 13, 512) 0 batch_normalization_57[0][0] __________________________________________________________________________________________________ conv2d_60 (Conv2D) (None, 13, 13, 256) 131072 leaky_re_lu_57[0][0] __________________________________________________________________________________________________ batch_normalization_59 (BatchNo (None, 13, 13, 256) 1024 conv2d_60[0][0] __________________________________________________________________________________________________ leaky_re_lu_59 (LeakyReLU) (None, 13, 13, 256) 0 batch_normalization_59[0][0] __________________________________________________________________________________________________ up_sampling2d_1 (UpSampling2D) (None, 26, 26, 256) 0 leaky_re_lu_59[0][0] __________________________________________________________________________________________________ concatenate_1 (Concatenate) (None, 26, 26, 768) 0 up_sampling2d_1[0][0] add_19[0][0] __________________________________________________________________________________________________ conv2d_61 (Conv2D) (None, 26, 26, 256) 196608 concatenate_1[0][0] __________________________________________________________________________________________________ batch_normalization_60 (BatchNo (None, 26, 26, 256) 1024 conv2d_61[0][0] __________________________________________________________________________________________________ leaky_re_lu_60 (LeakyReLU) (None, 26, 26, 256) 0 batch_normalization_60[0][0] __________________________________________________________________________________________________ conv2d_62 (Conv2D) (None, 26, 26, 512) 1179648 leaky_re_lu_60[0][0] __________________________________________________________________________________________________ batch_normalization_61 (BatchNo (None, 26, 26, 512) 2048 conv2d_62[0][0] __________________________________________________________________________________________________ leaky_re_lu_61 (LeakyReLU) (None, 26, 26, 512) 0 batch_normalization_61[0][0] __________________________________________________________________________________________________ conv2d_63 (Conv2D) (None, 26, 26, 256) 131072 leaky_re_lu_61[0][0] __________________________________________________________________________________________________ batch_normalization_62 (BatchNo (None, 26, 26, 256) 1024 conv2d_63[0][0] __________________________________________________________________________________________________ leaky_re_lu_62 (LeakyReLU) (None, 26, 26, 256) 0 batch_normalization_62[0][0] __________________________________________________________________________________________________ conv2d_64 (Conv2D) (None, 26, 26, 512) 1179648 leaky_re_lu_62[0][0] __________________________________________________________________________________________________ batch_normalization_63 (BatchNo (None, 26, 26, 512) 2048 conv2d_64[0][0] __________________________________________________________________________________________________ leaky_re_lu_63 (LeakyReLU) (None, 26, 26, 512) 0 batch_normalization_63[0][0] __________________________________________________________________________________________________ conv2d_65 (Conv2D) (None, 26, 26, 256) 131072 leaky_re_lu_63[0][0] __________________________________________________________________________________________________ batch_normalization_64 (BatchNo (None, 26, 26, 256) 1024 conv2d_65[0][0] __________________________________________________________________________________________________ leaky_re_lu_64 (LeakyReLU) (None, 26, 26, 256) 0 batch_normalization_64[0][0] __________________________________________________________________________________________________ conv2d_68 (Conv2D) (None, 26, 26, 128) 32768 leaky_re_lu_64[0][0] __________________________________________________________________________________________________ batch_normalization_66 (BatchNo (None, 26, 26, 128) 512 conv2d_68[0][0] __________________________________________________________________________________________________ leaky_re_lu_66 (LeakyReLU) (None, 26, 26, 128) 0 batch_normalization_66[0][0] __________________________________________________________________________________________________ up_sampling2d_2 (UpSampling2D) (None, 52, 52, 128) 0 leaky_re_lu_66[0][0] __________________________________________________________________________________________________ concatenate_2 (Concatenate) (None, 52, 52, 384) 0 up_sampling2d_2[0][0] add_11[0][0] __________________________________________________________________________________________________ conv2d_69 (Conv2D) (None, 52, 52, 128) 49152 concatenate_2[0][0] __________________________________________________________________________________________________ batch_normalization_67 (BatchNo (None, 52, 52, 128) 512 conv2d_69[0][0] __________________________________________________________________________________________________ leaky_re_lu_67 (LeakyReLU) (None, 52, 52, 128) 0 batch_normalization_67[0][0] __________________________________________________________________________________________________ conv2d_70 (Conv2D) (None, 52, 52, 256) 294912 leaky_re_lu_67[0][0] __________________________________________________________________________________________________ batch_normalization_68 (BatchNo (None, 52, 52, 256) 1024 conv2d_70[0][0] __________________________________________________________________________________________________ leaky_re_lu_68 (LeakyReLU) (None, 52, 52, 256) 0 batch_normalization_68[0][0] __________________________________________________________________________________________________ conv2d_71 (Conv2D) (None, 52, 52, 128) 32768 leaky_re_lu_68[0][0] __________________________________________________________________________________________________ batch_normalization_69 (BatchNo (None, 52, 52, 128) 512 conv2d_71[0][0] __________________________________________________________________________________________________ leaky_re_lu_69 (LeakyReLU) (None, 52, 52, 128) 0 batch_normalization_69[0][0] __________________________________________________________________________________________________ conv2d_72 (Conv2D) (None, 52, 52, 256) 294912 leaky_re_lu_69[0][0] __________________________________________________________________________________________________ batch_normalization_70 (BatchNo (None, 52, 52, 256) 1024 conv2d_72[0][0] __________________________________________________________________________________________________ leaky_re_lu_70 (LeakyReLU) (None, 52, 52, 256) 0 batch_normalization_70[0][0] __________________________________________________________________________________________________ conv2d_73 (Conv2D) (None, 52, 52, 128) 32768 leaky_re_lu_70[0][0] __________________________________________________________________________________________________ batch_normalization_71 (BatchNo (None, 52, 52, 128) 512 conv2d_73[0][0] __________________________________________________________________________________________________ leaky_re_lu_71 (LeakyReLU) (None, 52, 52, 128) 0 batch_normalization_71[0][0] __________________________________________________________________________________________________ conv2d_58 (Conv2D) (None, 13, 13, 1024) 4718592 leaky_re_lu_57[0][0] __________________________________________________________________________________________________ conv2d_66 (Conv2D) (None, 26, 26, 512) 1179648 leaky_re_lu_64[0][0] __________________________________________________________________________________________________ conv2d_74 (Conv2D) (None, 52, 52, 256) 294912 leaky_re_lu_71[0][0] __________________________________________________________________________________________________ batch_normalization_58 (BatchNo (None, 13, 13, 1024) 4096 conv2d_58[0][0] __________________________________________________________________________________________________ batch_normalization_65 (BatchNo (None, 26, 26, 512) 2048 conv2d_66[0][0] __________________________________________________________________________________________________ batch_normalization_72 (BatchNo (None, 52, 52, 256) 1024 conv2d_74[0][0] __________________________________________________________________________________________________ leaky_re_lu_58 (LeakyReLU) (None, 13, 13, 1024) 0 batch_normalization_58[0][0] __________________________________________________________________________________________________ leaky_re_lu_65 (LeakyReLU) (None, 26, 26, 512) 0 batch_normalization_65[0][0] __________________________________________________________________________________________________ leaky_re_lu_72 (LeakyReLU) (None, 52, 52, 256) 0 batch_normalization_72[0][0] __________________________________________________________________________________________________ conv2d_59 (Conv2D) (None, 13, 13, 24) 24600 leaky_re_lu_58[0][0] __________________________________________________________________________________________________ conv2d_67 (Conv2D) (None, 26, 26, 24) 12312 leaky_re_lu_65[0][0] __________________________________________________________________________________________________ conv2d_75 (Conv2D) (None, 52, 52, 24) 6168 leaky_re_lu_72[0][0] ================================================================================================== Total params: 61,587,112 Trainable params: 61,534,504 Non-trainable params: 52,608 __________________________________________________________________________________________________
-
Yolov3&Yolov4网络结构与源码分析
2020-10-20 13:26:32Yolov4网络结构与源码分析 从2018年Yolov3年提出的两年后,在原作者声名放弃更新Yolo算法后,俄罗斯的Alexey大神扛起了Yolov4的大旗。 文章目录 论文汇总 Yolov3核心基础内容 2.1 网络结构可视化 2.2 网络结构...Yolov3&Yolov4网络结构与源码分析
从2018年Yolov3年提出的两年后,在原作者声名放弃更新Yolo算法后,俄罗斯的Alexey大神扛起了Yolov4的大旗。
文章目录
-
论文汇总
-
Yolov3核心基础内容
2.1 网络结构可视化
2.2 网络结构图
2.3 核心基础内容
- Yolov3相关代码
3.1 python代码
3.2 C++代码内容
3.3 python版本的Tensorrt代码
3.4 C++版本的Tensorrt代码
- Yolov4核心基础内容
4.1 网络结构可视化
4.2 网络结构图
4.3 核心基础内容
4.3.1 输入端创新
4.3.2 Backbone创新
4.3.3 Neck创新
4.4.4 Prediction创新
- Yolov4相关代码
5.1 python代码
5.2 C++代码
5.3 python版本的Tensorrt代码
5.4 C++版本的Tensorrt代码
-
Yolov5核心基础知识完整讲解
-
相关数据集下载
-
不断更新ing
1.论文汇总
Yolov3论文名:《Yolov3:
An Incremental Improvement》Yolov3论文地址:https://arxiv.org/pdf/1804.02767.pdf
Yolov4论文名:《Yolov4:
Optimal Speed and Accuracy of Object Detection》Yolov4论文地址:https://arxiv.org/pdf/2004.10934.pdf
2.YoloV3核心基础内容
2.1 网络结构可视化
Yolov3是目标检测Yolo系列非常非常经典的算法,不过很多同学拿到Yolov3或者Yolov4的cfg文件时,并不知道如何直观的可视化查看网络结构。如果纯粹看cfg里面的内容,肯定会一脸懵逼。
2.2 网络结构图
上图三个蓝色方框内表示Yolov3的三个基本组件:
CBL:Yolov3网络结构中的最小组件,由Conv+Bn+Leaky_relu激活函数CBL:Yolov3网络结构中的最小组件,由Conv+Bn+Leaky_relu激活函数三者组成。
Res unit:借鉴Resnet网络中的残差结构,让网络可以构建的更深。
ResX:由一个CBL和X个残差组件构成,是Yolov3中的大组件。每个Res模块前面的CBL都起到下采样的作用,因此经过5次Res模块后,得到的特征图是608->304->152->76->38->19大小。其他基础操作:
Concat:张量拼接,会扩充两个张量的维度,例如2626256和2626512两个张量拼接,结果是2626768。Concat和cfg文件中的route功能一样。
add:张量相加,张量直接相加,不会扩充维度,例如104104128和104104128相加,结果还是104104128。add和cfg文件中的shortcut功能一样。Backbone中卷积层的数量:
每个ResX中包含1+2X个卷积层,因此整个主干网络Backbone中一共包含1+(1+21)+(1+22)+(1+28)+(1+28)+(1+24)=52,再加上一个FC全连接层,即可以组成一个Darknet53分类网络。不过在目标检测Yolov3中,去掉FC层,不过为了方便称呼,仍然把Yolov3的主干网络叫做Darknet53结构。
2.3 核心基础内容
Yolov3是2018年发明提出的,这成为了目标检测one-stage中非常经典的算法,包含Darknet-53网络结构、anchor锚框、FPN等非常优秀的结构。
本文主要目的在于描述Yolov4和Yolov3算法的不同及创新之处,对Yolov3的基础不过多描述。
3.YoloV3相关代码
3.1 python代码
代码地址:https://github.com/ultralytics/Yolov3
3.2 C++代码
这里推荐Yolov4作者的darknetAB代码,代码和原始作者代码相比,进行了很多的优化,如需要运行Yolov3网络,加载cfg时,使用Yolov3.cfg即可
代码地址:https://github.com/AlexeyAB/darknet
3.3 python版本的Tensorrt代码
除了算法研究外,实际项目中还需要将算法落地部署到工程上使用,比如GPU服务器使用时还需要对模型进行tensorrt加速。
(1)Tensort中的加速案例
强烈推荐tensort软件中,自带的Yolov3加速案例,路径位于tensorrt解压文件夹的TensortX/samples/python/Yolov3_onnx中
针对案例中的代码,如果有不明白的,也可参照下方文章上的详细说明:
代码地址:https://www.cnblogs.com/shouhuxianjian/p/10550262.html
(2)Github上的tensorrt加速
除了tensorrt软件中的代码, github上也有其他作者的开源代码
代码地址:https://github.com/lewes6369/TensorRT-Yolov3
3.4 C++版本的Tensorrt代码
项目的工程部署上,如果使用C++版本进行Tensorrt加速,一方面可以参照Alexey的github代码,另一方面也可以参照下面其他作者的开源代码
代码地址:https://github.com/wang-xinyu/tensorrtx/tree/master/Yolov3
4.YoloV4核心基础内容
4.1 网络结构可视化
Yolov4的网络结构也可以使用netron工具查看,也是对照其展示的可视化流程图绘制的下方网络结构图。
4.2 网络结构图
Yolov4的结构图和Yolov3相比,因为多了CSP结构,PAN结构,如果单纯看可视化流程图,会觉得很绕,不过在绘制出上面的图形后,会觉得豁然开朗,其实整体架构和Yolov3是相同的,不过使用各种新的算法思想对各个子结构都进行了改进。
先整理下Yolov4的五个基本组件:
CBM:Yolov4网络结构中的最小组件,由Conv+Bn+Mish激活函数三者组成。
CBL:由Conv+Bn+Leaky_relu激活函数三者组成。
Res unit:借鉴Resnet网络中的残差结构,让网络可以构建的更深。
CSPX:借鉴CSPNet网络结构,由卷积层和X个Res
unint模块Concate组成。
SPP:采用1×1,5×5,9×9,13×13的最大池化的方式,进行多尺度融合。其他基础操作:
Concat:张量拼接,维度会扩充,和Yolov3中的解释一样,对应于cfg文件中的route操作。
add:张量相加,不会扩充维度,对应于cfg文件中的shortcut操作。Backbone中卷积层的数量:
和Yolov3一样,再来数一下Backbone里面的卷积层数量。
每个CSPX中包含3+2X个卷积层,因此整个主干网络Backbone中一共包含2+(3+21)+2+(3+22)+2+(3+28)+2+(3+28)+2+(3+24)+1=72。
这里有些疑惑,按照Yolov3设计的传统,这么多卷积层,主干网络不应该叫CSPDaeknet73吗????
4.3 核心基础内容
Yolov4本质上和Yolov3相差不大,算法创新分为三种方式:
第一种:面目一新的创新,比如Yolov1、Faster-RCNN、Centernet等,开创出新的算法领域,不过这种也是最难的
第二种:出奇的创新,比如将图像金字塔改进为特征金字塔
第三种:各种先进算法集成的创新,比如不同领域发表的最新论文的tricks,集成到自己的算法中,却发现有出乎意料的改进Yolov4既有第二种也有第三种创新,组合尝试了大量深度学习领域最新论文的20多项研究成果,而且不得不佩服的是作者Alexey在github代码库维护的频繁程度。
为了便于分析,将Yolov4的整体结构拆分成四大板块:
主要从以上4个部分对YoloV4的创新之处进行讲解,让大家一目了然。
输入端:这里指的创新主要是训练时对输入端的改进,主要包括Mosaic数据增强、cmBN、SAT自对抗训练
BackBone主干网络:将各种新的方式结合起来,包括:CSPDarknet53、Mish激活函数、Dropblock
Neck:目标检测网络在BackBone和最后的输出层之间往往会插入一些层,比如Yolov4中的SPP模块、FPN+PAN结构
Prediction:输出层的锚框机制和Yolov3相同,主要改进的是训练时的损失函数CIOU_Loss,以及预测框筛选的nms变为DIOU_nms总体来说,Yolov4对Yolov3的各个部分都进行了改进优化,下面丢上作者的算法对比图。
仅对比Yolov3和Yolov4,在COCO数据集上,同样的FPS等于83左右时,Yolov4的AP是43,而Yolov3是33,直接上涨了10个百分点。
不得不服,当然可能针对具体不同的数据集效果也不一样,但总体来说,改进效果是很优秀的,下面大白对Yolov4的各个创新点继续进行深挖。
4.3.1 输入端创新
考虑到很多同学GPU显卡数量并不是很多,Yolov4对训练时的输入端进行改进,使得训练在单张GPU上也能有不错的成绩。比如数据增强Mosaic、cmBN、SAT自对抗训练。
但感觉cmBN和SAT影响并不是很大,所以这里主要讲解Mosaic数据增强。
(1)Mosaic数据增强
Yolov4中使用的Mosaic是参考2019年底提出的CutMix数据增强的方式,但CutMix只使用了两张图片进行拼接,而Mosaic数据增强则采用了4张图片,随机缩放、随机裁剪、随机排布的方式进行拼接。
这里首先要了解为什么要进行Mosaic数据增强呢?
在平时项目训练时,小目标的AP一般比中目标和大目标低很多。而Coco数据集中也包含大量的小目标,但比较麻烦的是小目标的分布并不均匀。
首先看下小、中、大目标的定义:
2019年发布的论文《Augmentation for
small object detection》对此进行了区分:可以看到小目标的定义是目标框的长宽0×0~32×32之间的物体。
的数据集中,小、中、大目标的占比并不均衡。如上表所示,Coco数据集中小目标占比达到41.4%,数量比中目标和大目标都要多。
但在所有的训练集图片中,只有52.3%的图片有小目标,而中目标和大目标的分布相对来说更加均匀一些。
针对这种状况,Yolov4的作者采用了Mosaic数据增强的方式。
主要有几个优点:
丰富数据集:随机使用4张图片,随机缩放,再随机分布进行拼接,大大丰富了检测数据集,特别是随机缩放增加了很多小目标,让网络的鲁棒性更好。
减少GPU:可能会有人说,随机缩放,普通的数据增强也可以做,但作者考虑到很多人可能只有一个GPU,因此Mosaic增强训练时,可以直接计算4张图片的数据,使得Mini-batch大小并不需要很大,一个GPU就可以达到比较好的效果。此外,发现另一研究者的训练方式也值得借鉴,采用的数据增强和Mosaic比较类似,也是使用4张图片(不是随机分布),但训练计算loss时,采用“缺啥补啥”的思路:
如果上一个iteration中,小物体产生的loss不足(比如小于某一个阈值),则下一个iteration就用拼接图;否则就用正常图片训练,也很有意思。
4.3.2 BackBone创新
(1)CSPDarknet53
CSPDarknet53是在Yolov3主干网络Darknet53的基础上,借鉴2019年CSPNet的经验,产生的Backbone结构,其中包含了5个CSP模块。
这里因为CSP模块比较长,不放到本处。
每个CSP模块前面的卷积核的大小都是3*3,stride=2,因此可以起到下采样的作用。
因为Backbone有5个CSP模块,输入图像是608*608,所以特征图变化的规律是:608->304->152->76->38->19
经过5次CSP模块后得到19*19大小的特征图。
而且作者只在Backbone中采用了Mish激活函数,网络后面仍然采用Leaky_relu激活函数。
作者为啥要参考2019年的CSPNet,采用CSP模块?
CSPNet全称是Cross
Stage Paritial Network,主要从网络结构设计的角度解决推理中从计算量很大的问题。CSPNet的作者认为推理计算过高的问题是由于网络优化中的梯度信息重复导致的。
因此采用CSP模块先将基础层的特征映射划分为两部分,然后通过跨阶段层次结构将它们合并,在减少了计算量的同时可以保证准确率。
因此Yolov4在主干网络Backbone采用CSPDarknet53网络结构,主要有三个方面的优点:
优点一:增强CNN的学习能力,使得在轻量化的同时保持准确性。
优点二:降低计算瓶颈
优点三:降低内存成本
(2)Mish激活函数
Mish激活函数是2019年下半年提出的激活函数和Leaky_relu激活函数的图形对比如下:
Yolov4的Backbone中都使用了Mish激活函数,而后面的网络则还是使用leaky_relu函数。
Yolov4作者实验测试时,使用CSPDarknet53网络在ImageNet数据集上做图像分类任务,发现使用了Mish激活函数的TOP-1和TOP-5的精度比没有使用时都略高一些。
因此在设计Yolov4目标检测任务时,主干网络Backbone还是使用Mish激活函数。
(3)Dropblock
Yolov4中使用的Dropblock,其实和常见网络中的Dropout功能类似,也是缓解过拟合的一种正则化方式。
Dropblock在2018年提出,论文地址:https://arxiv.org/pdf/1810.12890.pdf
传统的Dropout很简单,一句话就可以说的清:随机删除减少神经元的数量,使网络变得更简单。
而Dropblock和Dropout相似,比如下图:
中间Dropout的方式会随机的删减丢弃一些信息,但Dropblock的研究者认为,卷积层对于这种随机丢弃并不敏感,因为卷积层通常是三层连用:卷积+激活+池化层,池化层本身就是对相邻单元起作用。而且即使随机丢弃,卷积层仍然可以从相邻的激活单元学习到相同的信息。
因此,在全连接层上效果很好的Dropout在卷积层上效果并不好。
所以右图Dropblock的研究者则干脆整个局部区域进行删减丢弃。
这种方式其实是借鉴2017年的cutout数据增强的方式,cutout是将输入图像的部分区域清零,而Dropblock则是将Cutout应用到每一个特征图。而且并不是用固定的归零比率,而是在训练时以一个小的比率开始,随着训练过程线性的增加这个比率。
Dropblock的研究者与Cutout进行对比验证时,发现有几个特点:
优点一:Dropblock的效果优于Cutout
优点二:Cutout只能作用于输入层,而Dropblock则是将Cutout应用到网络中的每一个特征图上
优点三:Dropblock可以定制各种组合,在训练的不同阶段可以修改删减的概率,从空间层面和时间层面,和Cutout相比都有更精细的改进。
Yolov4中直接采用了更优的Dropblock,对网络的正则化过程进行了全面的升级改进。
4.3.3 Neck创新
在目标检测领域,为了更好的提取融合特征,通常在Backbone和输出层,会插入一些层,这个部分称为Neck。相当于目标检测网络的颈部,也是非常关键的。
Yolov4的Neck结构主要采用了SPP模块、FPN+PAN的方式。
(1)SPP模块
SPP模块,其实在Yolov3中已经存在了,在Yolov4的C++代码文件夹中有一个Yolov3_spp版本,但有的同学估计从来没有使用过,在Yolov4中,SPP模块仍然是在Backbone主干网络之后:
作者在SPP模块中,使用k={11,55,99,1313}的最大池化的方式,再将不同尺度的特征图进行Concat操作。
注意:这里最大池化采用padding操作,移动的步长为1,比如13×13的输入特征图,使用5×5大小的池化核池化,padding=2,因此池化后的特征图仍然是13×13大小。
在2019提出的《DC-SPP-Yolo》文章:https://arxiv.org/ftp/arxiv/papers/1903/1903.08589.pdf
也对Yolo目标检测的SPP模块进行了对比测试。
和Yolov4作者的研究相同,采用SPP模块的方式,比单纯的使用k*k最大池化的方式,更有效的增加主干特征的接收范围,显著的分离了最重要的上下文特征。
Yolov4的作者在使用608*608大小的图像进行测试时发现,在COCO目标检测任务中,以0.5%的额外计算代价将AP50增加了2.7%,因此Yolov4中也采用了SPP模块。
(2)FPN+PAN
PAN结构比较有意思,看了网上Yolov4关于这个部分的讲解,大多都是讲的比较笼统的,而PAN是借鉴图像分割领域PANet的创新点,有些同学可能不是很清楚。
下面大白将这个部分拆解开来,看下Yolov4中是如何设计的。
Yolov3结构:
我们先来看下Yolov3中Neck的FPN结构
可以看到经过几次下采样,三个紫色箭头指向的地方,输出分别是7676、3838、19*19。
以及最后的Prediction中用于预测的三个特征图①1919255、②3838255、③7676255。[注:255表示80类别(1+4+80)×3=255]
我们将Neck部分用立体图画出来,更直观的看下两部分之间是如何通过FPN结构融合的。
如图所示,FPN是自顶向下的,将高层的特征信息通过上采样的方式进行传递融合,得到进行预测的特征图。
Yolov4结构:
而Yolov4中Neck这部分除了使用FPN外,还在此基础上使用了PAN结构:
前面CSPDarknet53中讲到,每个CSP模块前面的卷积核都是3*3大小,步长为2,相当于下采样操作。
因此可以看到三个紫色箭头处的特征图是7676、3838、19*19。
以及最后Prediction中用于预测的三个特征图:①7676255,②3838255,③1919255。
我们也看下Neck部分的立体图像,看下两部分是如何通过FPN+PAN结构进行融合的。
和Yolov3的FPN层不同,Yolov4在FPN层的后面还添加了一个自底向上的特征金字塔。
其中包含两个PAN结构。
这样结合操作,FPN层自顶向下传达强语义特征,而特征金字塔则自底向上传达强定位特征,两两联手,从不同的主干层对不同的检测层进行参数聚合,这样的操作确实很皮。
FPN+PAN借鉴的是18年CVPR的PANet,当时主要应用于图像分割领域,但Alexey将其拆分应用到Yolov4中,进一步提高特征提取的能力。
不过这里需要注意几点:
注意一:
Yolov3的FPN层输出的三个大小不一的特征图①②③直接进行预测
但Yolov4的FPN层,只使用最后的一个76*76特征图①,而经过两次PAN结构,输出预测的特征图②和③。
这里的不同也体现在cfg文件中,这一点有很多同学之前不太明白,
比如Yolov3.cfg最后的三个Yolo层,
第一个Yolo层是最小的特征图19*19,mask=6,7,8,对应最大的anchor box。
第二个Yolo层是中等的特征图38*38,mask=3,4,5,对应中等的anchor box。
第三个Yolo层是最大的特征图76*76,mask=0,1,2,对应最小的anchor box。
而Yolov4.cfg则恰恰相反
第一个Yolo层是最大的特征图76*76,mask=0,1,2,对应最小的anchor box。
第二个Yolo层是中等的特征图38*38,mask=3,4,5,对应中等的anchor box。
第三个Yolo层是最小的特征图19*19,mask=6,7,8,对应最大的anchor box。
注意点二:
原本的PANet网络的PAN结构中,两个特征图结合是采用shortcut操作,而Yolov4中则采用concat(route)操作,特征图融合后的尺寸发生了变化。
4.3.4 Prediction创新
(1)CIOU_loss
目标检测任务的损失函数一般由Classificition Loss(分类损失函数)和Bounding
Box Regeression Loss(回归损失函数)两部分构成。Bounding Box Regeression的Loss近些年的发展过程是:Smooth L1 Loss-> IoU Loss(2016)->
GIoU Loss(2019)-> DIoU Loss(2020)->CIoU Loss(2020)我们从最常用的IOU_Loss开始,进行对比拆解分析,看下Yolov4为啥要选择CIOU_Loss。
a.IOU_Loss
可以看到IOU的loss其实很简单,主要是交集/并集,但其实也存在两个问题。
问题1:即状态1的情况,当预测框和目标框不相交时,IOU=0,无法反应两个框距离的远近,此时损失函数不可导,IOU_Loss无法优化两个框不相交的情况。
问题2:即状态2和状态3的情况,当两个预测框大小相同,两个IOU也相同,IOU_Loss无法区分两者相交情况的不同。
因此2019年出现了GIOU_Loss来进行改进。
b.GIOU_Loss
可以看到右图GIOU_Loss中,增加了相交尺度的衡量方式,缓解了单纯IOU_Loss时的尴尬。
但为什么仅仅说缓解呢?
因为还存在一种不足:
问题:状态1、2、3都是预测框在目标框内部且预测框大小一致的情况,这时预测框和目标框的差集都是相同的,因此这三种状态的GIOU值也都是相同的,这时GIOU退化成了IOU,无法区分相对位置关系。
基于这个问题,2020年的AAAI又提出了DIOU_Loss。
c.DIOU_Loss
好的目标框回归函数应该考虑三个重要几何因素:重叠面积、中心点距离,长宽比。
针对IOU和GIOU存在的问题,作者从两个方面进行考虑
一:如何最小化预测框和目标框之间的归一化距离?
二:如何在预测框和目标框重叠时,回归的更准确?
针对第一个问题,提出了DIOU_Loss(Distance_IOU_Loss)
DIOU_Loss考虑了重叠面积和中心点距离,当目标框包裹预测框的时候,直接度量2个框的距离,因此DIOU_Loss收敛的更快。
但就像前面好的目标框回归函数所说的,没有考虑到长宽比。
比如上面三种情况,目标框包裹预测框,本来DIOU_Loss可以起作用。
但预测框的中心点的位置都是一样的,因此按照DIOU_Loss的计算公式,三者的值都是相同的。
针对这个问题,又提出了CIOU_Loss,不对不说,科学总是在解决问题中,不断进步!!
d.CIOU_Loss
CIOU_Loss和DIOU_Loss前面的公式都是一样的,不过在此
基础上还增加了一个影响因子,将预测框和目标框的长宽比都考虑了进去。其中v是衡量长宽比一致性的参数,我们也可以定义为:
这样CIOU_Loss就将目标框回归函数应该考虑三个重要几何因素:重叠面积、中心点距离,长宽比全都考虑进去了。
再来综合的看下各个Loss函数的不同点:
IOU_Loss:主要考虑检测框和目标框重叠面积。
GIOU_Loss:在IOU的基础上,解决边界框不重合时的问题。
DIOU_Loss:在IOU和GIOU的基础上,考虑边界框中心点距离的信息。
CIOU_Loss:在DIOU的基础上,考虑边界框宽高比的尺度信息。
Yolov4中采用了CIOU_Loss的回归方式,使得预测框回归的速度和精度更高一些。
(2)DIOU_nms
Nms主要用于预测框的筛选,常用的目标检测算法中,一般采用普通的nms的方式,Yolov4则借鉴上面D/CIOU
loss的论文:https://arxiv.org/pdf/1911.08287.pdf将其中计算IOU的部分替换成DIOU的方式:
再来看下实际的案例
在上图重叠的摩托车检测中,中间的摩托车因为考虑边界框中心点的位置信息,也可以回归出来。
因此在重叠目标的检测中,DIOU_nms的效果优于传统的nms。
注意:有读者会有疑问,这里为什么不用CIOU_nms,而用DIOU_nms?
答:因为前面讲到的CIOU_loss,是在DIOU_loss的基础上,添加的影响因子,包含groundtruth标注框的信息,在训练时用于回归。
但在测试过程中,并没有groundtruth的信息,不用考虑影响因子,因此直接用DIOU_nms即可。
总体来说,YOLOv4的论文称的上良心之作,将近几年关于深度学习领域最新研究的tricks移植到Yolov4中做验证测试,将Yolov3的精度提高了不少。
虽然没有全新的创新,但很多改进之处都值得借鉴,借用Yolov4作者的总结。
Yolov4 主要带来了 3 点新贡献:
(1)提出了一种高效而强大的目标检测模型,使用 1080Ti 或 2080Ti 就能训练出超快、准确的目标检测器。
(2)在检测器训练过程中,验证了最先进的一些研究成果对目标检测器的影响。
(3)改进了 SOTA 方法,使其更有效、更适合单 GPU 训练。
-
-
最详细的YOLOv4网络结构解析
2020-05-14 18:10:28这里写目录标题1. 概述2. 网络分块解析2.1 CSPDarknet53实现2.2 SPP实现2.3 PANet实现 1. 概述 现阶段的目标检测器主要由4部分组成: ...在官方给出的cfg文件中,我们可以看到YOLOv4网络每一层的输出,每一层l -
【深度学习】YOLOv4网络结构图
2020-09-03 16:34:241.YOLOv4网络结构图 -
可视化yolov4-tiny和yolov4网络结构图
2020-06-28 16:49:12参考这篇博客:netron。以下通过该工具显示了yolov4-tiny和yolov4的网络结构。 -
Yolov4网络结构图
2020-04-26 00:53:35结构图 目前官方放出的cfg配置文件网络结构为CSPDarknet53+PAnet-SPP+Yolov3 head 结构,根据权重文件做出的网络结构图如下: -
基于Tensorflow2的YOLOV4 网络结构及代码解析(4)——Loss和input
2021-02-25 17:07:43基于Tensorflow2的YOLOV4 网络结构及代码解析(4)——Loss和input 本部分介绍yolov4源码中Train中内容,包括Input和Loss Input: Loss: -
YOLOV4网络结构总结
2020-12-28 15:00:58YOLO V4的论文链接在这里,名为《YOLOv4: Optimal Speed and Accuracy of Object Detection》,相信大家也是经常看到这几个词眼:大神接棒、YOLO V4来了、Tricks 万花筒等等。 阅读YOLO V4的原文,我觉得它更像一篇... -
yolov4网络结构_手把手教物体检测——YOLOV4
2020-11-21 05:26:49摘要YOLOV4在coco上面达到了43.5%AP ,在Tesla V100 上达到了65FPS。相比今年的其它模型,得分不算高,但是它不是通过提高输入图像的分辨率来提高得分的,而是改进网络结构。创新点主要有以下几个方面:(1)输入端:... -
yolov4网络结构_重磅更新!YoLov4最新论文!解读YoLov4框架!
2020-12-12 07:20:49早上刷到YOLOv4之时,非常不敢相信这是真的!今明两天各大公众号肯定要炸锅了!论文:https://arxiv.org/pdf/2004.10934.pdf源码:https://github.com/AlexeyAB/darknet核心中的核心:作者将Weighted-Residual-... -
基于Tensorflow2的YOLOV4 网络结构及代码解析(2)——NECK部分
2021-02-20 14:50:13继上篇《基于Tensorflow2的YOLOV4 网络结构及代码解析(1)——backbone网络结构》博文后继续解析yoloV4的NECK和YoloHead 本篇博客主要介绍三个方面: 1.SPPNET:SPP结构使用不同尺度的maxpooling后进行特征图堆叠 ... -
YOLOv4网络结构解析
2020-08-28 17:09:17CSPDarkent-53 [convolutional] batch_normalize=1 filters=64 size=1 stride=1 pad=1 activation=leaky ... YOLOv4 YOLOv4的网络可视化结构图为 其中,SPP模块的结构可视化图为 CSPConv模块的结构可视化视图为 -
yolov4网络结构_最强目标检测算法YOLOv4论文解读
2020-12-05 02:50:17最强目标检测算法YOLOv4论文解读本文仅为笔者个人浅显的理解,如各位发现有误的地方欢迎指正。一、概述YOLO v4中,作者做了很多实验,把近年比较火的一些方法加入YOLO中,最终取得了速度和精度的提升。通过了解YOLO ... -
netron画yolov4网络结构图
2020-07-05 16:25:32该结构图由netron工具打开制作而成,浏览器中输入链接:https://lutzroeder.github.io/netron/ 即可进入netron在线工具,打开yolov4.cfg即可画出网络结构图 -
基于Tensorflow2的YOLOV4 网络结构及代码解析(3)——yolo_head部分
2021-02-22 10:45:11继上篇《基于Tensorflow2的YOLOV4 网络结构及代码解析(2)——NECK部分》博文后继续解析yoloV4的yolohead 本篇博客主要介绍两个个方面: 1.yolo解码 2.非极大值抑制 3.门限筛选 在进入yolo_head之前,先看一下... -
【目标检测】YOLOv4网络结构可视化解析
2020-10-09 10:13:13这篇博客给出了YOLOv4网络整体结构的可视化解析。 -
基于Tensorflow2的YOLOV4 网络结构及代码解析(1)——backbone网络结构
2021-02-18 16:57:591.YOLOV4创新点和backbone网络结构 2.YOLOV4的NECK和YoloHead 3.YOLOV4的Loss和Input 在剖析的同时,会对代码细节进行详细解释。 Yolov4论文地址:https://arxiv.org/pdf/2004.10934.pdf 创新点: backbone... -
yolov4网络结构_基于YOLOV4的人脸口罩佩戴检测
2020-11-28 14:33:022)BackBone:CSPDarknet53,Mish激活函数,Dropblock CSPDarknet53: CSPNet 的网络结构(分两路,然后concate合一),每个CSP模块前面的卷积核大小都是 3 × 3,可以起到下采样的作用,经过5次CSP后:608 -> 304 ... -
Netron及YOLOv4网络结构可视化
2020-06-29 23:41:10学懂YOLOv4目标检测原理 读懂C语言实现的darknet源码 -
深度学习-YOLOv4网络结构详解
2020-04-26 14:43:36论文提出YOLOv4,从图1的结果来看,相对于YOLOv3在准确率上提升了近10个点,然而速度并几乎没有下降. 论文主要贡献如下: 1.提出速度更快、精度更好的检测模型,仅需要单张1080Ti或2080Ti即可完成训练。 3.验证了... -
学习笔记(4):Windows版YOLOv4目标检测:原理与源码解析-YOLOv4网络结构
2020-09-01 21:45:01需要学习ubuntu系统上YOLOv4的同学请前往:《YOLOv4目标检测实战:原理与源码解析》 YOLOv4是最近推出的基于深度学习的端到端实时目标检测方法。 YOLOv4的实现darknet是使用C语言开发的轻型开源深度... -
使用Netron进行YOLOv4网络结构可视化
2020-06-29 22:46:01学懂YOLOv4目标检测原理 读懂C语言实现的darknet源码 -
yolov4网络结构_目标检测YOLO V4
2020-12-12 07:20:09通俗的讲,就是说这个YOLO-v4算法是在原有YOLO目标检测架构的基础上,采用了近些年CNN领域中最优秀的优化策略,从数据处理、主干网络、网络训练、激活函数、损失函数等各个方面都有着不同程度的优化,虽没有理论上的... -
yolov4网络结构_重磅!就在刚刚,吊打一切的 YOLOv4 开源了!
2020-11-30 14:43:08加入极市专业CV交流群,与10000+来自港科大...关注极市平台公众号,回复加群,立刻申请入群~Tips◎作者系极市原创作者计划特约作者Happy欢迎大家联系极市小编(微信ID:fengcall19)加入极市原创作者行列早上刷到YOLOv4...
-
最新中文停用词.txt
-
项目管理工具与方法
-
第3章-11 字符串排序 (20 分)
-
华为1+X认证——网络系统建设与运维(初级)
-
SnapGene 3.2.1 Win安装.rar
-
《ChinaTeXMathFAQ_V1.1》.pdf
-
基于SSM实现的房屋租赁系统【附源码】(毕设)
-
gdal2.x生成terrain地形数据-程序及说明.7z
-
Kubernetes技术分享.pptx
-
Samba 服务配置与管理
-
vscode 通知: Error loading workspace: err: exit status 1: stderr: build flag -mod=readonly only valid
-
MySQL 四类管理日志(详解及高阶配置)
-
MyBatisSelf.rar
-
马士兵老师spring框架学习笔记
-
redis608.zip
-
智能停车场云平台(附vue+SpringBoot前后端项目源码)
-
在 Linux 上构建企业级 DNS 域名解析服务
-
BGLightChangeDLL.zip
-
jdk8u281.zip
-
2016 年中级通信工程师考试综合能力真题.pdf