在抱歉找不到原文链接了,这是我很久前抄的
1 darknet介绍
他是yolo v2中的特征提取器,因为它有19层卷积,所以又叫做darknet19。
它如下图为他的结构,包括19个卷积层和5个maxpooling层。Darknet-19与VGG16模型设计原则是一致的,主要采用3 * 3卷积,采用2 * 2的maxpooling层之后,特征图维度降低2倍,而同时将特征图的channles增加两倍。
2 特点
(1)去掉了全连接层fc
·这样大大减少了网络的参数,个人理解这是yolo2可以增加每个cell产生边界框以及每个边界框能够单独的对应一组类别概率的原因。
·并且,网络下采样是32倍,这样也使得网络可以接收任意尺寸的图片,所以yolo2有了Multi-Scale Training多尺度训练的改进:输入图片resize到不同的尺寸(论文中选用320,352…,608十个尺寸,下采样32倍对应10 * 10~19 * 19的特征图)。每训练10个epoch,将图片resize到另一个不同的尺寸再训练。这样一个模型可以适应不同的输入图片尺寸,输入图像大(608608)精度高速度稍慢、输入图片小(320320)精度稍低速度快,增加了模型对不同尺寸图片输入的鲁棒性。
(2)在每个卷积层后面都加入一个BN层并不再使用dropout
·这样提升模型收敛速度,而且可以起到一定正则化效果,降低模型的过拟合。
(3)采用跨层连接Fine-Grained Features
·YOLOv2的输入图片大小为416 * 416,经过5次maxpooling(下采样32倍)之后得到13 * 13大小的特征图,并以此特征图采用卷积做预测。这样会导致小的目标物体经过5层maxpooling之后特征基本没有了。所以yolo2引入passthrough层:前面的特征图维度是后面的特征图的2倍,passthrough层抽取前面层的每个22的局部区域,然后将其转化为channel维度,对于26 * 26 * 512的特征图,经passthrough层处理之后就变成了13 * 13 * 2048的新特征图,这样就可以与后面的13 * 13 * 1024特征图连接在一起形成13 * 13 * 3072大小的特征图,然后在此特征图基础上卷积做预测。作者在后期的实现中借鉴了ResNet网络,不是直接对高分辨特征图处理,而是增加了一个中间卷积层,先采用64个11卷积核进行卷积,然后再进行passthrough处理,这样26 * 26 * 512的特征图得到13 * 13 * 256的特征图。这算是实现上的一个小细节。
在这里插入图片描述。