您的位置:首页 > 其它

yolo配置文件的参数说明和reorg层的理解!

2017-09-19 17:31 381 查看
1、yolo V2配置文件的说明:

[net]
batch=64                           每batch个样本更新一次参数。
subdivisions=8                     如果内存不够大,将batch分割为subdivisions个子batch,每个子batch的大小为batch/subdivisions。
在darknet代码中,会将batch/subdivisions命名为batch。
height=416                         input图像的高
width=416                          Input图像的宽
channels=3                         Input图像的通道数
momentum=0.9                       动量
decay=0.0005                       权重衰减正则项,防止过拟合
angle=0                            通过旋转角度来生成更多训练样本
saturation = 1.5                   通过调整饱和度来生成更多训练样本
exposure = 1.5                     通过调整曝光量来生成更多训练样本
hue=.1                             通过调整色调来生成更多训练样本

learning_rate=0.0001               初始学习率
max_batches = 45000                训练达到max_batches后停止学习
policy=steps                       调整学习率的policy,有如下policy:CONSTANT, STEP, EXP, POLY, STEPS, SIG, RANDOM
steps=100,25000,35000              根据batch_num调整学习率
scales=10,.1,.1                    学习率变化的比例,累计相乘

[convolutional]
batch_normalize=1                  是否做BN
filters=32                         输出多少个特征图
size=3                             卷积核的尺寸
stride=1                           做卷积运算的步长
pad=1                              如果pad为0,padding由 padding参数指定。如果pad为1,padding大小为size/2
activation=leaky                   激活函数:
logistic,loggy,relu,elu,relie,plse,hardtan,lhtan,linear,ramp,leaky,tanh,stair

[maxpool]
size=2                             池化层尺寸
stride=2                           池化步进

[convolutional]
batch_normalize=1
filters=64
size=3
stride=1
pad=1
activation=leaky

[maxpool]
size=2
stride=2

......
......

#######

[convolutional]
batch_normalize=1
size=3
stride=1
pad=1
filters=1024
activation=leaky

[convolutional]
batch_normalize=1
size=3
stride=1
pad=1
filters=1024
activation=leaky

[route]                            这是指用当前层减去9得到的那一层来进行特征组合
layers=-9

[reorg]          这里是把上面得到大分辨率的特征图以什么方式组合到当前层,成为当前层的特征。其中stride的值要根据大分辨率特征图跟当前层来确定的
stride=2

[route]
layers=-1,-3

[convolutional]
batch_normalize=1
size=3
stride=1
pad=1
filters=1024
activation=leaky

[convolutional]
size=1
stride=1
pad=1
filters=125                        region前最后一个卷积层的filters数是特定的,计算公式为filter=num*(classes+5)
5的意义是5个坐标,论文中的tx,ty,tw,th,to
activation=linear

[region]
anchors = 1.08,1.19,  3.42,4.41,  6.63,11.38,  9.42,5.11,  16.62,10.52          预选框,可以手工挑选,
也可以通过k means 从训练样本中学出
bias_match=1
classes=20                         网络需要识别的物体种类数
coords=4                           每个box的4个坐标tx,ty,tw,th
num=5                              每个grid cell预测几个box,和anchors的数量一致。当想要使用更多anchors时需要调大num,且如果调大num后训练时Obj趋近0的话可以尝试调大object_scale
softmax=1                          使用softmax做激活函数
jitter=.2                          通过抖动增加噪声来抑制过拟合
rescore=1                          暂理解为一个开关,非0时通过重打分来调整l.delta(预测值与真实值的差)

object_scale=5                     栅格中有物体时,bbox的confidence loss对总loss计算贡献的权重
noobject_scale=1                   栅格中没有物体时,bbox的confidence loss对总loss计算贡献的权重
class_scale=1                      类别loss对总loss计算贡献的权重
coord_scale=1                      bbox坐标预测loss对总loss计算贡献的权重

absolute=1
thresh = .6
random=0                           random为1时会启用Multi-Scale Training,随机使用不同尺寸的图片进


2、reorg层的理解:



其输出的网络结构:

layer     filters    size              input                output
0 conv     32  3 x 3 / 1   416 x 416 x   3   ->   416 x 416 x  32
1 max          2 x 2 / 2   416 x 416 x  32   ->   208 x 208 x  32
2 conv     64  3 x 3 / 1   208 x 208 x  32   ->   208 x 208 x  64
3 max          2 x 2 / 2   208 x 208 x  64   ->   104 x 104 x  64
4 conv    128  3 x 3 / 1   104 x 104 x  64   ->   104 x 104 x 128
5 conv     64  1 x 1 / 1   104 x 104 x 128   ->   104 x 104 x  64
6 conv    128  3 x 3 / 1   104 x 104 x  64   ->   104 x 104 x 128
7 max          2 x 2 / 2   104 x 104 x 128   ->    52 x  52 x 128
8 conv    256  3 x 3 / 1    52 x  52 x 128   ->    52 x  52 x 256
9 conv    128  1 x 1 / 1    52 x  52 x 256   ->    52 x  52 x 128
10 conv    256  3 x 3 / 1    52 x  52 x 128   ->    52 x  52 x 256
11 max          2 x 2 / 2    52 x  52 x 256   ->    26 x  26 x 256
12 conv    512  3 x 3 / 1    26 x  26 x 256   ->    26 x  26 x 512
13 conv    256  1 x 1 / 1    26 x  26 x 512   ->    26 x  26 x 256
14 conv    512  3 x 3 / 1    26 x  26 x 256   ->    26 x  26 x 512
15 conv    256  1 x 1 / 1    26 x  26 x 512   ->    26 x  26 x 256
16 conv    512  3 x 3 / 1    26 x  26 x 256   ->    26 x  26 x 512
17 max          2 x 2 / 2    26 x  26 x 512   ->    13 x  13 x 512
18 conv   1024  3 x 3 / 1    13 x  13 x 512   ->    13 x  13 x1024
19 conv    512  1 x 1 / 1    13 x  13 x1024   ->    13 x  13 x 512
20 conv   1024  3 x 3 / 1    13 x  13 x 512   ->    13 x  13 x1024
21 conv    512  1 x 1 / 1    13 x  13 x1024   ->    13 x  13 x 512
22 conv   1024  3 x 3 / 1    13 x  13 x 512   ->    13 x  13 x1024
23 conv   1024  3 x 3 / 1    13 x  13 x1024   ->    13 x  13 x1024
24 conv   1024  3 x 3 / 1    13 x  13 x1024   ->    13 x  13 x1024
25 route  16                                                             //指的是第16层
26 reorg              / 2    26 x  26 x 512   ->    13 x  13 x2048       //把16层网络进行重整
27 route  26 24                                                          //指的是进行融合的网络
28 conv   1024  3 x 3 / 1    13 x  13 x3072   ->    13 x  13 x1024
29 conv    125  1 x 1 / 1    13 x  13 x1024   ->    13 x  13 x 125
30 detection
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: