特征提取网络部分(darknet53)示意图:

* Conv2D是什么?一种特殊卷积,主要是有一个L2正则化 # 单次卷积 #
#--------------------------------------------------# @wraps(Conv2D) def
DarknetConv2D(*args, **kwargs): darknet_conv_kwargs = {'kernel_regularizer': l2(
5e-4)} #L2正则化帮助提高性能# darknet_conv_kwargs['padding'] = 'valid' if kwargs.get(
'strides')==(2,2) else 'same' darknet_conv_kwargs.update(kwargs) return Conv2D(*
args, **darknet_conv_kwargs)
#---------------------------------------------------# # 卷积块 # DarknetConv2D +
BatchNormalization(标准化) + LeakyReLU(激活函数)
#---------------------------------------------------# def DarknetConv2D_BN_Leaky
(*args, **kwargs): no_bias_kwargs = {'use_bias': False} no_bias_kwargs.update(
kwargs) return compose( DarknetConv2D(*args, **no_bias_kwargs),
BatchNormalization(), LeakyReLU(alpha=0.1))
#---------------------------------------------------# # 卷积块 # DarknetConv2D +
BatchNormalization (标准化)+ LeakyReLU(激活函数)
#---------------------------------------------------# def resblock_body(x,
num_filters, num_blocks): #残差结构 x = ZeroPadding2D(((1,0),(1,0)))(x) x =
DarknetConv2D_BN_Leaky(num_filters, (3,3), strides=(2,2))(x) #步长是2,所以长宽变成原来的二分之一
for i in range(num_blocks): #重复次数 y = DarknetConv2D_BN_Leaky(num_filters//2, (1,
1))(x) #主干部分第一次1*1卷积,把通道数压缩二分之一 y = DarknetConv2D_BN_Leaky(num_filters, (3,3))(y
) #主干部分第二次3*3卷积,把通道数扩张回去 x = Add()([x,y]) #把残差线和主体相连,进行次数就是重复次数次 return x
#---------------------------------------------------# # darknet53 的主体部分
#---------------------------------------------------# def darknet_body(x):
#416,416,3 x = DarknetConv2D_BN_Leaky(32, (3,3))(x) #长宽不变,通道数变成32,对应图示Step1#
#208, 208, 64 x = resblock_body(x, 64, 1) #(输入特征层,输出通道数,重复次数) 具体的r , b 解释看上面定义部分
#104 ,104, 128 x = resblock_body(x, 128, 2) #52, 52, 256 x = resblock_body(x,
256, 8) feat1 = x #26, 26, 512 x = resblock_body(x, 512, 8) feat2 = x #13 , 13,
1024 x = resblock_body(x, 1024, 4) feat3 = x return feat1,feat2,feat3
#---------------------------------------------------#
* Residual Block
:残差卷积块,和普通卷积相比,会多出来一条残差线,使前面一层的特征层可以不经过卷积直接映射到下一层特征层上面去,作用是有助于训练和特征提取。最后三个特征层可以保留进入YOLOV3特征处理网络,最终变成预测结果

技术
下载桌面版
GitHub
Gitee
SourceForge
百度网盘(提取码:draw)
云服务器优惠
华为云优惠券
腾讯云优惠券
阿里云优惠券
Vultr优惠券
站点信息
问题反馈
邮箱:[email protected]
吐槽一下
QQ群:766591547
关注微信