Yolov3 模型结构

这篇具有很好参考价值的文章主要介绍了Yolov3 模型结构。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

0. 模型总体结构

Yolov3可以看作有三部分:Darknet53, FPN, Yolo Head.

Darknet53是Yolov3的主干网络,用来提取图像特征。共提取了三个特征层进行下一步网络的构建,这三个特征层即为“有效特征层”。

FPN 从backbone获取三个有效特征层后,进一步提取特征,进行特征融合,其目的是结合不同尺度的特征信息。

Yolo Head是YoloV3的分类器与回归器。 通过Darknet53与FPN, 可以获得三个加强过的特征层。他们的shape分别是:(52,52,128), (26,26,256), (13,13,512).

Yolov3 模型结构

Yolov3 模型结构

1. 结构分析:

1.1:backbone:

YoloV3的主干网络是Darknet53. 它使用残差网络Residual.

主干部分是一次1x1 conv和一次3x3 conv. 残差shortcut部分不做任何处理,直接将主干和的输出和从shortcut过来的输入结合。

如上图所示,共有5个残差模块。后面的xN,表示这个残差模块包含N个残差块。

Darknet53的每一个darknetConv2D后都紧跟BatchNormalization标准化与LeakyReLU部分。

摒弃了POOLing,用conv的stride来实现降采样。在这个网络结构中,使用的是步长为2的卷积来进行降采样。

Yolov3 模型结构

例子代码:

import tensorflow as tf
import tensorflow.keras as keras
from tensorflow.keras.models import Sequential
import tensorflow.keras.layers as layers





#filters_shape: kernel_Size_H, kernel_Size_W, Input_Channel,filter_count
def convolutional(input_layer, filters_shape, downsample=False, activate=True, bn=True, activate_type='leaky'):
    if downsample:
        input_layer = tf.keras.layers.ZeroPadding2D(((1, 0), (1, 0)))(input_layer)
        padding = 'valid'
        strides = 2
    else:
        strides = 1
        padding = 'same'

    conv = tf.keras.layers.Conv2D(filters=filters_shape[-1], kernel_size = filters_shape[0], strides=strides, padding=padding,
                                  use_bias=not bn, kernel_regularizer=tf.keras.regularizers.l2(0.0005),
                                  kernel_initializer=tf.random_normal_initializer(stddev=0.01),
                                  bias_initializer=tf.constant_initializer(0.))(input_layer)

    if bn:
        conv =layers.BatchNormalization()(conv)
    if activate == True:
        if activate_type == "leaky":
            conv = tf.nn.leaky_relu(conv, alpha=0.1)
        elif activate_type == "mish":
            conv = mish(conv)
    return conv

def residual_block(input_layer, input_channel, filter_num1, filter_num2, activate_type='leaky'):
    short_cut = input_layer
    conv = convolutional(input_layer, filters_shape=(1, 1, input_channel, filter_num1), activate_type=activate_type)
    conv = convolutional(conv       , filters_shape=(3, 3, filter_num1,   filter_num2), activate_type=activate_type)

    residual_output = short_cut + conv
    return residual_output



def darknet53(input_layer):
    conv = convolutional(input_layer, (3, 3, 3, 32))
    conv = convolutional(conv, (3,3, 32, 64), downsample=True)

    for i in range(1):
        input_data = residual_block(conv,  64,  32, 64)

    input_data = convolutional(input_data, (3, 3,  64, 128), downsample=True)

    for i in range(2):
        input_data = residual_block(input_data, 128,  64, 128)

    input_data = convolutional(input_data, (3, 3, 128, 256), downsample=True)

    for i in range(8):
        input_data = residual_block(input_data, 256, 128, 256)

    route_1 = input_data
    input_data = convolutional(input_data, (3, 3, 256, 512), downsample=True)

    for i in range(8):
        input_data = residual_block(input_data, 512, 256, 512)

    route_2 = input_data
    input_data = convolutional(input_data, (3, 3, 512, 1024), downsample=True)

    for i in range(4):
        input_data = residual_block(input_data, 1024, 512, 1024)


    route_3 = input_data

    return route_1, route_2, route_3

def main():
    # 定义模型输入
    input_layer = tf.keras.layers.Input([416, 416, 3])
    conv = darknet53(input_layer)
    Output_Layer = conv
    # 创建模型
    model = keras.Model(inputs=input_layer, outputs=Output_Layer, name="Yolov3 Model")

    X = tf.random.uniform([1, 416, 416, 3])
    model.summary()


if __name__ == "__main__":
    main()

结果如下:

可以看到,共有51个卷积。

Model: "Yolov3 Model"
__________________________________________________________________________________________________
 Layer (type)                   Output Shape         Param #     Connected to                     
==================================================================================================
 input_1 (InputLayer)           [(None, 416, 416, 3  0           []                               
                                )]                                                                
                                                                                                  
 conv2d (Conv2D)                (None, 416, 416, 32  864         ['input_1[0][0]']                
                                )                                                                 
                                                                                                  
 batch_normalization (BatchNorm  (None, 416, 416, 32  128        ['conv2d[0][0]']                 
 alization)                     )                                                                 
                                                                                                  
 tf.nn.leaky_relu (TFOpLambda)  (None, 416, 416, 32  0           ['batch_normalization[0][0]']    
                                )                                                                 
                                                                                                  
 zero_padding2d (ZeroPadding2D)  (None, 417, 417, 32  0          ['tf.nn.leaky_relu[0][0]']       
                                )                                                                 
                                                                                                  
 conv2d_1 (Conv2D)              (None, 208, 208, 64  18432       ['zero_padding2d[0][0]']         
                                )                                                                 
                                                                                                  
 batch_normalization_1 (BatchNo  (None, 208, 208, 64  256        ['conv2d_1[0][0]']               
 rmalization)                   )                                                                 
                                                                                                  
 tf.nn.leaky_relu_1 (TFOpLambda  (None, 208, 208, 64  0          ['batch_normalization_1[0][0]']  
 )                              )                                                                 
                                                                                                  
 conv2d_2 (Conv2D)              (None, 208, 208, 32  2048        ['tf.nn.leaky_relu_1[0][0]']     
                                )                                                                 
                                                                                                  
 batch_normalization_2 (BatchNo  (None, 208, 208, 32  128        ['conv2d_2[0][0]']               
 rmalization)                   )                                                                 
                                                                                                  
 tf.nn.leaky_relu_2 (TFOpLambda  (None, 208, 208, 32  0          ['batch_normalization_2[0][0]']  
 )                              )                                                                 
                                                                                                  
 conv2d_3 (Conv2D)              (None, 208, 208, 64  18432       ['tf.nn.leaky_relu_2[0][0]']     
                                )                                                                 
                                                                                                  
 batch_normalization_3 (BatchNo  (None, 208, 208, 64  256        ['conv2d_3[0][0]']               
 rmalization)                   )                                                                 
                                                                                                  
 tf.nn.leaky_relu_3 (TFOpLambda  (None, 208, 208, 64  0          ['batch_normalization_3[0][0]']  
 )                              )                                                                 
                                                                                                  
 tf.__operators__.add (TFOpLamb  (None, 208, 208, 64  0          ['tf.nn.leaky_relu_1[0][0]',     
 da)                            )                                 'tf.nn.leaky_relu_3[0][0]']     
                                                                                                  
 zero_padding2d_1 (ZeroPadding2  (None, 209, 209, 64  0          ['tf.__operators__.add[0][0]']   
 D)                             )                                                                 
                                                                                                  
 conv2d_4 (Conv2D)              (None, 104, 104, 12  73728       ['zero_padding2d_1[0][0]']       
                                8)                                                                
                                                                                                  
 batch_normalization_4 (BatchNo  (None, 104, 104, 12  512        ['conv2d_4[0][0]']               
 rmalization)                   8)                                                                
                                                                                                  
 tf.nn.leaky_relu_4 (TFOpLambda  (None, 104, 104, 12  0          ['batch_normalization_4[0][0]']  
 )                              8)                                                                
                                                                                                  
 conv2d_5 (Conv2D)              (None, 104, 104, 64  8192        ['tf.nn.leaky_relu_4[0][0]']     
                                )                                                                 
                                                                                                  
 batch_normalization_5 (BatchNo  (None, 104, 104, 64  256        ['conv2d_5[0][0]']               
 rmalization)                   )                                                                 
                                                                                                  
 tf.nn.leaky_relu_5 (TFOpLambda  (None, 104, 104, 64  0          ['batch_normalization_5[0][0]']  
 )                              )                                                                 
                                                                                                  
 conv2d_6 (Conv2D)              (None, 104, 104, 12  73728       ['tf.nn.leaky_relu_5[0][0]']     
                                8)                                                                
                                                                                                  
 batch_normalization_6 (BatchNo  (None, 104, 104, 12  512        ['conv2d_6[0][0]']               
 rmalization)                   8)                                                                
                                                                                                  
 tf.nn.leaky_relu_6 (TFOpLambda  (None, 104, 104, 12  0          ['batch_normalization_6[0][0]']  
 )                              8)                                                                
                                                                                                  
 tf.__operators__.add_1 (TFOpLa  (None, 104, 104, 12  0          ['tf.nn.leaky_relu_4[0][0]',     
 mbda)                          8)                                'tf.nn.leaky_relu_6[0][0]']     
                                                                                                  
 conv2d_7 (Conv2D)              (None, 104, 104, 64  8192        ['tf.__operators__.add_1[0][0]'] 
                                )                                                                 
                                                                                                  
 batch_normalization_7 (BatchNo  (None, 104, 104, 64  256        ['conv2d_7[0][0]']               
 rmalization)                   )                                                                 
                                                                                                  
 tf.nn.leaky_relu_7 (TFOpLambda  (None, 104, 104, 64  0          ['batch_normalization_7[0][0]']  
 )                              )                                                                 
                                                                                                  
 conv2d_8 (Conv2D)              (None, 104, 104, 12  73728       ['tf.nn.leaky_relu_7[0][0]']     
                                8)                                                                
                                                                                                  
 batch_normalization_8 (BatchNo  (None, 104, 104, 12  512        ['conv2d_8[0][0]']               
 rmalization)                   8)                                                                
                                                                                                  
 tf.nn.leaky_relu_8 (TFOpLambda  (None, 104, 104, 12  0          ['batch_normalization_8[0][0]']  
 )                              8)                                                                
                                                                                                  
 tf.__operators__.add_2 (TFOpLa  (None, 104, 104, 12  0          ['tf.__operators__.add_1[0][0]', 
 mbda)                          8)                                'tf.nn.leaky_relu_8[0][0]']     
                                                                                                  
 zero_padding2d_2 (ZeroPadding2  (None, 105, 105, 12  0          ['tf.__operators__.add_2[0][0]'] 
 D)                             8)                                                                
                                                                                                  
 conv2d_9 (Conv2D)              (None, 52, 52, 256)  294912      ['zero_padding2d_2[0][0]']       
                                                                                                  
 batch_normalization_9 (BatchNo  (None, 52, 52, 256)  1024       ['conv2d_9[0][0]']               
 rmalization)                                                                                     
                                                                                                  
 tf.nn.leaky_relu_9 (TFOpLambda  (None, 52, 52, 256)  0          ['batch_normalization_9[0][0]']  
 )                                                                                                
                                                                                                  
 conv2d_10 (Conv2D)             (None, 52, 52, 128)  32768       ['tf.nn.leaky_relu_9[0][0]']     
                                                                                                  
 batch_normalization_10 (BatchN  (None, 52, 52, 128)  512        ['conv2d_10[0][0]']              
 ormalization)                                                                                    
                                                                                                  
 tf.nn.leaky_relu_10 (TFOpLambd  (None, 52, 52, 128)  0          ['batch_normalization_10[0][0]'] 
 a)                                                                                               
                                                                                                  
 conv2d_11 (Conv2D)             (None, 52, 52, 256)  294912      ['tf.nn.leaky_relu_10[0][0]']    
                                                                                                  
 batch_normalization_11 (BatchN  (None, 52, 52, 256)  1024       ['conv2d_11[0][0]']              
 ormalization)                                                                                    
                                                                                                  
 tf.nn.leaky_relu_11 (TFOpLambd  (None, 52, 52, 256)  0          ['batch_normalization_11[0][0]'] 
 a)                                                                                               
                                                                                                  
 tf.__operators__.add_3 (TFOpLa  (None, 52, 52, 256)  0          ['tf.nn.leaky_relu_9[0][0]',     
 mbda)                                                            'tf.nn.leaky_relu_11[0][0]']    
                                                                                                  
 conv2d_12 (Conv2D)             (None, 52, 52, 128)  32768       ['tf.__operators__.add_3[0][0]'] 
                                                                                                  
 batch_normalization_12 (BatchN  (None, 52, 52, 128)  512        ['conv2d_12[0][0]']              
 ormalization)                                                                                    
                                                                                                  
 tf.nn.leaky_relu_12 (TFOpLambd  (None, 52, 52, 128)  0          ['batch_normalization_12[0][0]'] 
 a)                                                                                               
                                                                                                  
 conv2d_13 (Conv2D)             (None, 52, 52, 256)  294912      ['tf.nn.leaky_relu_12[0][0]']    
                                                                                                  
 batch_normalization_13 (BatchN  (None, 52, 52, 256)  1024       ['conv2d_13[0][0]']              
 ormalization)                                                                                    
                                                                                                  
 tf.nn.leaky_relu_13 (TFOpLambd  (None, 52, 52, 256)  0          ['batch_normalization_13[0][0]'] 
 a)                                                                                               
                                                                                                  
 tf.__operators__.add_4 (TFOpLa  (None, 52, 52, 256)  0          ['tf.__operators__.add_3[0][0]', 
 mbda)                                                            'tf.nn.leaky_relu_13[0][0]']    
                                                                                                  
 conv2d_14 (Conv2D)             (None, 52, 52, 128)  32768       ['tf.__operators__.add_4[0][0]'] 
                                                                                                  
 batch_normalization_14 (BatchN  (None, 52, 52, 128)  512        ['conv2d_14[0][0]']              
 ormalization)                                                                                    
                                                                                                  
 tf.nn.leaky_relu_14 (TFOpLambd  (None, 52, 52, 128)  0          ['batch_normalization_14[0][0]'] 
 a)                                                                                               
                                                                                                  
 conv2d_15 (Conv2D)             (None, 52, 52, 256)  294912      ['tf.nn.leaky_relu_14[0][0]']    
                                                                                                  
 batch_normalization_15 (BatchN  (None, 52, 52, 256)  1024       ['conv2d_15[0][0]']              
 ormalization)                                                                                    
                                                                                                  
 tf.nn.leaky_relu_15 (TFOpLambd  (None, 52, 52, 256)  0          ['batch_normalization_15[0][0]'] 
 a)                                                                                               
                                                                                                  
 tf.__operators__.add_5 (TFOpLa  (None, 52, 52, 256)  0          ['tf.__operators__.add_4[0][0]', 
 mbda)                                                            'tf.nn.leaky_relu_15[0][0]']    
                                                                                                  
 conv2d_16 (Conv2D)             (None, 52, 52, 128)  32768       ['tf.__operators__.add_5[0][0]'] 
                                                                                                  
 batch_normalization_16 (BatchN  (None, 52, 52, 128)  512        ['conv2d_16[0][0]']              
 ormalization)                                                                                    
                                                                                                  
 tf.nn.leaky_relu_16 (TFOpLambd  (None, 52, 52, 128)  0          ['batch_normalization_16[0][0]'] 
 a)                                                                                               
                                                                                                  
 conv2d_17 (Conv2D)             (None, 52, 52, 256)  294912      ['tf.nn.leaky_relu_16[0][0]']    
                                                                                                  
 batch_normalization_17 (BatchN  (None, 52, 52, 256)  1024       ['conv2d_17[0][0]']              
 ormalization)                                                                                    
                                                                                                  
 tf.nn.leaky_relu_17 (TFOpLambd  (None, 52, 52, 256)  0          ['batch_normalization_17[0][0]'] 
 a)                                                                                               
                                                                                                  
 tf.__operators__.add_6 (TFOpLa  (None, 52, 52, 256)  0          ['tf.__operators__.add_5[0][0]', 
 mbda)                                                            'tf.nn.leaky_relu_17[0][0]']    
                                                                                                  
 conv2d_18 (Conv2D)             (None, 52, 52, 128)  32768       ['tf.__operators__.add_6[0][0]'] 
                                                                                                  
 batch_normalization_18 (BatchN  (None, 52, 52, 128)  512        ['conv2d_18[0][0]']              
 ormalization)                                                                                    
                                                                                                  
 tf.nn.leaky_relu_18 (TFOpLambd  (None, 52, 52, 128)  0          ['batch_normalization_18[0][0]'] 
 a)                                                                                               
                                                                                                  
 conv2d_19 (Conv2D)             (None, 52, 52, 256)  294912      ['tf.nn.leaky_relu_18[0][0]']    
                                                                                                  
 batch_normalization_19 (BatchN  (None, 52, 52, 256)  1024       ['conv2d_19[0][0]']              
 ormalization)                                                                                    
                                                                                                  
 tf.nn.leaky_relu_19 (TFOpLambd  (None, 52, 52, 256)  0          ['batch_normalization_19[0][0]'] 
 a)                                                                                               
                                                                                                  
 tf.__operators__.add_7 (TFOpLa  (None, 52, 52, 256)  0          ['tf.__operators__.add_6[0][0]', 
 mbda)                                                            'tf.nn.leaky_relu_19[0][0]']    
                                                                                                  
 conv2d_20 (Conv2D)             (None, 52, 52, 128)  32768       ['tf.__operators__.add_7[0][0]'] 
                                                                                                  
 batch_normalization_20 (BatchN  (None, 52, 52, 128)  512        ['conv2d_20[0][0]']              
 ormalization)                                                                                    
                                                                                                  
 tf.nn.leaky_relu_20 (TFOpLambd  (None, 52, 52, 128)  0          ['batch_normalization_20[0][0]'] 
 a)                                                                                               
                                                                                                  
 conv2d_21 (Conv2D)             (None, 52, 52, 256)  294912      ['tf.nn.leaky_relu_20[0][0]']    
                                                                                                  
 batch_normalization_21 (BatchN  (None, 52, 52, 256)  1024       ['conv2d_21[0][0]']              
 ormalization)                                                                                    
                                                                                                  
 tf.nn.leaky_relu_21 (TFOpLambd  (None, 52, 52, 256)  0          ['batch_normalization_21[0][0]'] 
 a)                                                                                               
                                                                                                  
 tf.__operators__.add_8 (TFOpLa  (None, 52, 52, 256)  0          ['tf.__operators__.add_7[0][0]', 
 mbda)                                                            'tf.nn.leaky_relu_21[0][0]']    
                                                                                                  
 conv2d_22 (Conv2D)             (None, 52, 52, 128)  32768       ['tf.__operators__.add_8[0][0]'] 
                                                                                                  
 batch_normalization_22 (BatchN  (None, 52, 52, 128)  512        ['conv2d_22[0][0]']              
 ormalization)                                                                                    
                                                                                                  
 tf.nn.leaky_relu_22 (TFOpLambd  (None, 52, 52, 128)  0          ['batch_normalization_22[0][0]'] 
 a)                                                                                               
                                                                                                  
 conv2d_23 (Conv2D)             (None, 52, 52, 256)  294912      ['tf.nn.leaky_relu_22[0][0]']    
                                                                                                  
 batch_normalization_23 (BatchN  (None, 52, 52, 256)  1024       ['conv2d_23[0][0]']              
 ormalization)                                                                                    
                                                                                                  
 tf.nn.leaky_relu_23 (TFOpLambd  (None, 52, 52, 256)  0          ['batch_normalization_23[0][0]'] 
 a)                                                                                               
                                                                                                  
 tf.__operators__.add_9 (TFOpLa  (None, 52, 52, 256)  0          ['tf.__operators__.add_8[0][0]', 
 mbda)                                                            'tf.nn.leaky_relu_23[0][0]']    
                                                                                                  
 conv2d_24 (Conv2D)             (None, 52, 52, 128)  32768       ['tf.__operators__.add_9[0][0]'] 
                                                                                                  
 batch_normalization_24 (BatchN  (None, 52, 52, 128)  512        ['conv2d_24[0][0]']              
 ormalization)                                                                                    
                                                                                                  
 tf.nn.leaky_relu_24 (TFOpLambd  (None, 52, 52, 128)  0          ['batch_normalization_24[0][0]'] 
 a)                                                                                               
                                                                                                  
 conv2d_25 (Conv2D)             (None, 52, 52, 256)  294912      ['tf.nn.leaky_relu_24[0][0]']    
                                                                                                  
 batch_normalization_25 (BatchN  (None, 52, 52, 256)  1024       ['conv2d_25[0][0]']              
 ormalization)                                                                                    
                                                                                                  
 tf.nn.leaky_relu_25 (TFOpLambd  (None, 52, 52, 256)  0          ['batch_normalization_25[0][0]'] 
 a)                                                                                               
                                                                                                  
 tf.__operators__.add_10 (TFOpL  (None, 52, 52, 256)  0          ['tf.__operators__.add_9[0][0]', 
 ambda)                                                           'tf.nn.leaky_relu_25[0][0]']    
                                                                                                  
 zero_padding2d_3 (ZeroPadding2  (None, 53, 53, 256)  0          ['tf.__operators__.add_10[0][0]']
 D)                                                                                               
                                                                                                  
 conv2d_26 (Conv2D)             (None, 26, 26, 512)  1179648     ['zero_padding2d_3[0][0]']       
                                                                                                  
 batch_normalization_26 (BatchN  (None, 26, 26, 512)  2048       ['conv2d_26[0][0]']              
 ormalization)                                                                                    
                                                                                                  
 tf.nn.leaky_relu_26 (TFOpLambd  (None, 26, 26, 512)  0          ['batch_normalization_26[0][0]'] 
 a)                                                                                               
                                                                                                  
 conv2d_27 (Conv2D)             (None, 26, 26, 256)  131072      ['tf.nn.leaky_relu_26[0][0]']    
                                                                                                  
 batch_normalization_27 (BatchN  (None, 26, 26, 256)  1024       ['conv2d_27[0][0]']              
 ormalization)                                                                                    
                                                                                                  
 tf.nn.leaky_relu_27 (TFOpLambd  (None, 26, 26, 256)  0          ['batch_normalization_27[0][0]'] 
 a)                                                                                               
                                                                                                  
 conv2d_28 (Conv2D)             (None, 26, 26, 512)  1179648     ['tf.nn.leaky_relu_27[0][0]']    
                                                                                                  
 batch_normalization_28 (BatchN  (None, 26, 26, 512)  2048       ['conv2d_28[0][0]']              
 ormalization)                                                                                    
                                                                                                  
 tf.nn.leaky_relu_28 (TFOpLambd  (None, 26, 26, 512)  0          ['batch_normalization_28[0][0]'] 
 a)                                                                                               
                                                                                                  
 tf.__operators__.add_11 (TFOpL  (None, 26, 26, 512)  0          ['tf.nn.leaky_relu_26[0][0]',    
 ambda)                                                           'tf.nn.leaky_relu_28[0][0]']    
                                                                                                  
 conv2d_29 (Conv2D)             (None, 26, 26, 256)  131072      ['tf.__operators__.add_11[0][0]']
                                                                                                  
 batch_normalization_29 (BatchN  (None, 26, 26, 256)  1024       ['conv2d_29[0][0]']              
 ormalization)                                                                                    
                                                                                                  
 tf.nn.leaky_relu_29 (TFOpLambd  (None, 26, 26, 256)  0          ['batch_normalization_29[0][0]'] 
 a)                                                                                               
                                                                                                  
 conv2d_30 (Conv2D)             (None, 26, 26, 512)  1179648     ['tf.nn.leaky_relu_29[0][0]']    
                                                                                                  
 batch_normalization_30 (BatchN  (None, 26, 26, 512)  2048       ['conv2d_30[0][0]']              
 ormalization)                                                                                    
                                                                                                  
 tf.nn.leaky_relu_30 (TFOpLambd  (None, 26, 26, 512)  0          ['batch_normalization_30[0][0]'] 
 a)                                                                                               
                                                                                                  
 tf.__operators__.add_12 (TFOpL  (None, 26, 26, 512)  0          ['tf.__operators__.add_11[0][0]',
 ambda)                                                           'tf.nn.leaky_relu_30[0][0]']    
                                                                                                  
 conv2d_31 (Conv2D)             (None, 26, 26, 256)  131072      ['tf.__operators__.add_12[0][0]']
                                                                                                  
 batch_normalization_31 (BatchN  (None, 26, 26, 256)  1024       ['conv2d_31[0][0]']              
 ormalization)                                                                                    
                                                                                                  
 tf.nn.leaky_relu_31 (TFOpLambd  (None, 26, 26, 256)  0          ['batch_normalization_31[0][0]'] 
 a)                                                                                               
                                                                                                  
 conv2d_32 (Conv2D)             (None, 26, 26, 512)  1179648     ['tf.nn.leaky_relu_31[0][0]']    
                                                                                                  
 batch_normalization_32 (BatchN  (None, 26, 26, 512)  2048       ['conv2d_32[0][0]']              
 ormalization)                                                                                    
                                                                                                  
 tf.nn.leaky_relu_32 (TFOpLambd  (None, 26, 26, 512)  0          ['batch_normalization_32[0][0]'] 
 a)                                                                                               
                                                                                                  
 tf.__operators__.add_13 (TFOpL  (None, 26, 26, 512)  0          ['tf.__operators__.add_12[0][0]',
 ambda)                                                           'tf.nn.leaky_relu_32[0][0]']    
                                                                                                  
 conv2d_33 (Conv2D)             (None, 26, 26, 256)  131072      ['tf.__operators__.add_13[0][0]']
                                                                                                  
 batch_normalization_33 (BatchN  (None, 26, 26, 256)  1024       ['conv2d_33[0][0]']              
 ormalization)                                                                                    
                                                                                                  
 tf.nn.leaky_relu_33 (TFOpLambd  (None, 26, 26, 256)  0          ['batch_normalization_33[0][0]'] 
 a)                                                                                               
                                                                                                  
 conv2d_34 (Conv2D)             (None, 26, 26, 512)  1179648     ['tf.nn.leaky_relu_33[0][0]']    
                                                                                                  
 batch_normalization_34 (BatchN  (None, 26, 26, 512)  2048       ['conv2d_34[0][0]']              
 ormalization)                                                                                    
                                                                                                  
 tf.nn.leaky_relu_34 (TFOpLambd  (None, 26, 26, 512)  0          ['batch_normalization_34[0][0]'] 
 a)                                                                                               
                                                                                                  
 tf.__operators__.add_14 (TFOpL  (None, 26, 26, 512)  0          ['tf.__operators__.add_13[0][0]',
 ambda)                                                           'tf.nn.leaky_relu_34[0][0]']    
                                                                                                  
 conv2d_35 (Conv2D)             (None, 26, 26, 256)  131072      ['tf.__operators__.add_14[0][0]']
                                                                                                  
 batch_normalization_35 (BatchN  (None, 26, 26, 256)  1024       ['conv2d_35[0][0]']              
 ormalization)                                                                                    
                                                                                                  
 tf.nn.leaky_relu_35 (TFOpLambd  (None, 26, 26, 256)  0          ['batch_normalization_35[0][0]'] 
 a)                                                                                               
                                                                                                  
 conv2d_36 (Conv2D)             (None, 26, 26, 512)  1179648     ['tf.nn.leaky_relu_35[0][0]']    
                                                                                                  
 batch_normalization_36 (BatchN  (None, 26, 26, 512)  2048       ['conv2d_36[0][0]']              
 ormalization)                                                                                    
                                                                                                  
 tf.nn.leaky_relu_36 (TFOpLambd  (None, 26, 26, 512)  0          ['batch_normalization_36[0][0]'] 
 a)                                                                                               
                                                                                                  
 tf.__operators__.add_15 (TFOpL  (None, 26, 26, 512)  0          ['tf.__operators__.add_14[0][0]',
 ambda)                                                           'tf.nn.leaky_relu_36[0][0]']    
                                                                                                  
 conv2d_37 (Conv2D)             (None, 26, 26, 256)  131072      ['tf.__operators__.add_15[0][0]']
                                                                                                  
 batch_normalization_37 (BatchN  (None, 26, 26, 256)  1024       ['conv2d_37[0][0]']              
 ormalization)                                                                                    
                                                                                                  
 tf.nn.leaky_relu_37 (TFOpLambd  (None, 26, 26, 256)  0          ['batch_normalization_37[0][0]'] 
 a)                                                                                               
                                                                                                  
 conv2d_38 (Conv2D)             (None, 26, 26, 512)  1179648     ['tf.nn.leaky_relu_37[0][0]']    
                                                                                                  
 batch_normalization_38 (BatchN  (None, 26, 26, 512)  2048       ['conv2d_38[0][0]']              
 ormalization)                                                                                    
                                                                                                  
 tf.nn.leaky_relu_38 (TFOpLambd  (None, 26, 26, 512)  0          ['batch_normalization_38[0][0]'] 
 a)                                                                                               
                                                                                                  
 tf.__operators__.add_16 (TFOpL  (None, 26, 26, 512)  0          ['tf.__operators__.add_15[0][0]',
 ambda)                                                           'tf.nn.leaky_relu_38[0][0]']    
                                                                                                  
 conv2d_39 (Conv2D)             (None, 26, 26, 256)  131072      ['tf.__operators__.add_16[0][0]']
                                                                                                  
 batch_normalization_39 (BatchN  (None, 26, 26, 256)  1024       ['conv2d_39[0][0]']              
 ormalization)                                                                                    
                                                                                                  
 tf.nn.leaky_relu_39 (TFOpLambd  (None, 26, 26, 256)  0          ['batch_normalization_39[0][0]'] 
 a)                                                                                               
                                                                                                  
 conv2d_40 (Conv2D)             (None, 26, 26, 512)  1179648     ['tf.nn.leaky_relu_39[0][0]']    
                                                                                                  
 batch_normalization_40 (BatchN  (None, 26, 26, 512)  2048       ['conv2d_40[0][0]']              
 ormalization)                                                                                    
                                                                                                  
 tf.nn.leaky_relu_40 (TFOpLambd  (None, 26, 26, 512)  0          ['batch_normalization_40[0][0]'] 
 a)                                                                                               
                                                                                                  
 tf.__operators__.add_17 (TFOpL  (None, 26, 26, 512)  0          ['tf.__operators__.add_16[0][0]',
 ambda)                                                           'tf.nn.leaky_relu_40[0][0]']    
                                                                                                  
 conv2d_41 (Conv2D)             (None, 26, 26, 256)  131072      ['tf.__operators__.add_17[0][0]']
                                                                                                  
 batch_normalization_41 (BatchN  (None, 26, 26, 256)  1024       ['conv2d_41[0][0]']              
 ormalization)                                                                                    
                                                                                                  
 tf.nn.leaky_relu_41 (TFOpLambd  (None, 26, 26, 256)  0          ['batch_normalization_41[0][0]'] 
 a)                                                                                               
                                                                                                  
 conv2d_42 (Conv2D)             (None, 26, 26, 512)  1179648     ['tf.nn.leaky_relu_41[0][0]']    
                                                                                                  
 batch_normalization_42 (BatchN  (None, 26, 26, 512)  2048       ['conv2d_42[0][0]']              
 ormalization)                                                                                    
                                                                                                  
 tf.nn.leaky_relu_42 (TFOpLambd  (None, 26, 26, 512)  0          ['batch_normalization_42[0][0]'] 
 a)                                                                                               
                                                                                                  
 tf.__operators__.add_18 (TFOpL  (None, 26, 26, 512)  0          ['tf.__operators__.add_17[0][0]',
 ambda)                                                           'tf.nn.leaky_relu_42[0][0]']    
                                                                                                  
 zero_padding2d_4 (ZeroPadding2  (None, 27, 27, 512)  0          ['tf.__operators__.add_18[0][0]']
 D)                                                                                               
                                                                                                  
 conv2d_43 (Conv2D)             (None, 13, 13, 1024  4718592     ['zero_padding2d_4[0][0]']       
                                )                                                                 
                                                                                                  
 batch_normalization_43 (BatchN  (None, 13, 13, 1024  4096       ['conv2d_43[0][0]']              
 ormalization)                  )                                                                 
                                                                                                  
 tf.nn.leaky_relu_43 (TFOpLambd  (None, 13, 13, 1024  0          ['batch_normalization_43[0][0]'] 
 a)                             )                                                                 
                                                                                                  
 conv2d_44 (Conv2D)             (None, 13, 13, 512)  524288      ['tf.nn.leaky_relu_43[0][0]']    
                                                                                                  
 batch_normalization_44 (BatchN  (None, 13, 13, 512)  2048       ['conv2d_44[0][0]']              
 ormalization)                                                                                    
                                                                                                  
 tf.nn.leaky_relu_44 (TFOpLambd  (None, 13, 13, 512)  0          ['batch_normalization_44[0][0]'] 
 a)                                                                                               
                                                                                                  
 conv2d_45 (Conv2D)             (None, 13, 13, 1024  4718592     ['tf.nn.leaky_relu_44[0][0]']    
                                )                                                                 
                                                                                                  
 batch_normalization_45 (BatchN  (None, 13, 13, 1024  4096       ['conv2d_45[0][0]']              
 ormalization)                  )                                                                 
                                                                                                  
 tf.nn.leaky_relu_45 (TFOpLambd  (None, 13, 13, 1024  0          ['batch_normalization_45[0][0]'] 
 a)                             )                                                                 
                                                                                                  
 tf.__operators__.add_19 (TFOpL  (None, 13, 13, 1024  0          ['tf.nn.leaky_relu_43[0][0]',    
 ambda)                         )                                 'tf.nn.leaky_relu_45[0][0]']    
                                                                                                  
 conv2d_46 (Conv2D)             (None, 13, 13, 512)  524288      ['tf.__operators__.add_19[0][0]']
                                                                                                  
 batch_normalization_46 (BatchN  (None, 13, 13, 512)  2048       ['conv2d_46[0][0]']              
 ormalization)                                                                                    
                                                                                                  
 tf.nn.leaky_relu_46 (TFOpLambd  (None, 13, 13, 512)  0          ['batch_normalization_46[0][0]'] 
 a)                                                                                               
                                                                                                  
 conv2d_47 (Conv2D)             (None, 13, 13, 1024  4718592     ['tf.nn.leaky_relu_46[0][0]']    
                                )                                                                 
                                                                                                  
 batch_normalization_47 (BatchN  (None, 13, 13, 1024  4096       ['conv2d_47[0][0]']              
 ormalization)                  )                                                                 
                                                                                                  
 tf.nn.leaky_relu_47 (TFOpLambd  (None, 13, 13, 1024  0          ['batch_normalization_47[0][0]'] 
 a)                             )                                                                 
                                                                                                  
 tf.__operators__.add_20 (TFOpL  (None, 13, 13, 1024  0          ['tf.__operators__.add_19[0][0]',
 ambda)                         )                                 'tf.nn.leaky_relu_47[0][0]']    
                                                                                                  
 conv2d_48 (Conv2D)             (None, 13, 13, 512)  524288      ['tf.__operators__.add_20[0][0]']
                                                                                                  
 batch_normalization_48 (BatchN  (None, 13, 13, 512)  2048       ['conv2d_48[0][0]']              
 ormalization)                                                                                    
                                                                                                  
 tf.nn.leaky_relu_48 (TFOpLambd  (None, 13, 13, 512)  0          ['batch_normalization_48[0][0]'] 
 a)                                                                                               
                                                                                                  
 conv2d_49 (Conv2D)             (None, 13, 13, 1024  4718592     ['tf.nn.leaky_relu_48[0][0]']    
                                )                                                                 
                                                                                                  
 batch_normalization_49 (BatchN  (None, 13, 13, 1024  4096       ['conv2d_49[0][0]']              
 ormalization)                  )                                                                 
                                                                                                  
 tf.nn.leaky_relu_49 (TFOpLambd  (None, 13, 13, 1024  0          ['batch_normalization_49[0][0]'] 
 a)                             )                                                                 
                                                                                                  
 tf.__operators__.add_21 (TFOpL  (None, 13, 13, 1024  0          ['tf.__operators__.add_20[0][0]',
 ambda)                         )                                 'tf.nn.leaky_relu_49[0][0]']    
                                                                                                  
 conv2d_50 (Conv2D)             (None, 13, 13, 512)  524288      ['tf.__operators__.add_21[0][0]']
                                                                                                  
 batch_normalization_50 (BatchN  (None, 13, 13, 512)  2048       ['conv2d_50[0][0]']              
 ormalization)                                                                                    
                                                                                                  
 tf.nn.leaky_relu_50 (TFOpLambd  (None, 13, 13, 512)  0          ['batch_normalization_50[0][0]'] 
 a)                                                                                               
                                                                                                  
 conv2d_51 (Conv2D)             (None, 13, 13, 1024  4718592     ['tf.nn.leaky_relu_50[0][0]']    
                                )                                                                 
                                                                                                  
 batch_normalization_51 (BatchN  (None, 13, 13, 1024  4096       ['conv2d_51[0][0]']              
 ormalization)                  )                                                                 
                                                                                                  
 tf.nn.leaky_relu_51 (TFOpLambd  (None, 13, 13, 1024  0          ['batch_normalization_51[0][0]'] 
 a)                             )                                                                 
                                                                                                  
 tf.__operators__.add_22 (TFOpL  (None, 13, 13, 1024  0          ['tf.__operators__.add_21[0][0]',
 ambda)                         )                                 'tf.nn.leaky_relu_51[0][0]']    
                                                                                                  
==================================================================================================
Total params: 40,620,640
Trainable params: 40,584,928
Non-trainable params: 35,712
__________________________________________________________________________________________________

1.2:FPN:

为了加强算法对小目标检测的精确度,YOLO v3中采用类似FPN的upsample和融合做法(最后融合了3个scale,其他两个scale的大小分别是26×26和52×52),在多个scale的feature map上做检测。

concat: 张量拼接。 将darknet中间层和后面的某一层的上采样进行拼接。拼接的操作和残差层add的操作不同。拼接会扩充张量的维度。而add只是直接相加,不会导致张量位的的改变。

Yolov3 模型结构

Yolov3 模型结构

代码:文章来源地址https://www.toymoban.com/news/detail-408644.html

到了这里,关于Yolov3 模型结构的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 目标检测YOLO实战应用案例100讲-基于改进YOLOv3的目标检测模型研究与应用(下)

    目录  实验与结果分析  4.4.1 数据集描述  4.4.2 实验流程  4.4.3 结果分析 

    2024年02月09日
    浏览(55)
  • YOLOv8 独家改进最新PWConv核心结构|来自CVPR2023,可以直接写模型改进,进一步轻量化!测试数据集mAP有效涨点,进一步降低参数量,追求更高的 FLOPS

    💡 本篇内容 :YOLOv8 独家原创改进最新PWConv核心结构|来自最新CVPR2023顶会, 🚀🚀各种数据集mAP有效涨点,进一步降低参数量,追求更高的 FLOPS 💡 🚀🚀🚀内含·改进源代码·,按步骤操作运行改进后的代码即可 重点 :🔥🔥🔥有同学已经使用这个 PWConv 创新点 在 数据集

    2024年02月08日
    浏览(37)
  • YOLOv2和YOLOv3基础

    2024年02月12日
    浏览(71)
  • yolov3

    本文主要讲解yolov3的基本知识,如有错误请指出。 本文主要来自 博客1 博客2 53是因为有53层。 1、darknet53没有使用pooling 来进行下采样,而是用一个3 3,步长为2的卷积来进行下采样,该下采样之后的特征层会压缩图片的宽和高,得到一个特征层。之后该特征层经过残差网络。

    2024年02月08日
    浏览(77)
  • YOLOv3详解

    yolo 算法是一种 one-stage 的目标检测算法,与 two-stage 目标检测算法最大区别在于运算速度上, YOLO 系列算法将图片划分成若干个网格,再基于anchor机制生成先验框,只用一步就生成检测框,这种方法大大提升了算法的预测速度,今天我们主要学习的是 YOLOv3 算法的主要实现过

    2024年02月04日
    浏览(33)
  • YOLOv3&YOLOv5输出结果说明

    本文使用的yolov3和yolov5工程文件均为github上ultralytics基于pytorch的v3和v5代码,其训练集输出结果类型基本一致,主要介绍了其输出结果,本文是一篇学习笔记 本文使用的yolov3代码github下载地址:yolov3 模型训练具体步骤可查看此篇博客: yolov3模型训练——使用yolov3训练自己的模

    2023年04月08日
    浏览(49)
  • 目标检测——yoloV3案例

    labellmage使用方法 获取数据集 加载模型 模型训练

    2024年02月16日
    浏览(42)
  • 【矩池云】YOLOv3~YOLOv5训练红外小目标数据集

    数据集下载地址:https://github.com/YimianDai/sirst 参考链接:https://github.com/pprp/voc2007_for_yolo_torch 1.1 检测图片及其xml文件 1.2 划分训练集 1.3 转为txt标签 1.4 构造数据集 最终数据集格式如下: 根据以上数据集 需要单独构建一个datasets文件夹,存放标签和图像,具体格式如下: 可以

    2024年02月08日
    浏览(65)
  • YOLO技术概要学习笔记2——YOLOV2到YOLOV3

    实时物体检测已经成为众多邻域应用的关键组成部分,这些领域包括:自动驾驶车辆、机器人、视频监控和增强现实等。在众多物体检测算法中,近年来,YOLO(You Only Look Once)框架以其卓越的速度和准确性脱颖而出,实际证明能够快速可靠地识别图像中的物体。自诞生以来,

    2024年02月08日
    浏览(34)
  • FPGA实现YOLOv3 tiny 代码分析

    目录 总体概览:​编辑 卷积加速器部分代码:  视频接收与输出部分Block design结构 global_para_gen 代码 疑问 interface_axilite_ctrl 代码  generate_ctrl_signal 代码 引用模块 com_ctrl_task 疑问 interface_axis_slave 代码  疑问 interface_axis_master 代码 疑问 axis_buf_sel 代码 global_data_beat(头疼!看不

    2024年02月08日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包