YOLO v2论文:YOLO9000: better, faster, stronger
提到passthrough层,必须提及Darknet-19(有19个卷积层和5个MaxPooling层)网络结构。(DarkNet-19比VGG-16小一些,精度不弱于VGG-16,但浮点运算量减少到约1/5,以保证更快的运算速度)。
YOLO2的训练主要包括三个阶段。
- 第一阶段就是先在ImageNet分类数据集上预训练Darknet-19,此时模型输入为 224*224 ,共训练160个epochs。
- 第二阶段将网络的输入调整为 448*448
,继续在ImageNet数据集上finetune分类模型,训练10个epochs,此时分类模型的top-1准确度为76.5%,而top-5准确度为93.3%。 - 第三个阶段就是修改Darknet-19分类模型为检测模型,移除最后一个卷积层、global
avgpooling层以及softmax层,并且新增了三个 331024卷积层,同时增加了一个passthrough层,最后使用11 卷积层输出预测结果,输出的channels数为:num_anchors(5+num_classes) 。
- 22,23,24层:新增的三个 331024卷积层;
- 27层:增加的passthrough层;
现在看下passthrough层:
- passthrough层的来源(细粒度特征):上图中第25层route 16,意思是来自16层的output,即2626512。
- passthrough层的处理:
利用1164卷积降低第25层2626512(实际来自16层)的通道数,从512降低到64(这一点论文在讨论passthrough的时候没有提到),输出262664(见第26层)。
第27层进行拆分(实际的passthrough层)操作,1拆4分成1313256。】 - 将passthrough层和最后一层卷积层结合:
第28层叠加27层和24层的输出(13x13x1024+13x13x256),得到13131280。
后面对passthrough层操作结果13131280再经过33卷积和11卷积,最后输出1313125。