YOLOv3论文笔记
发布日期:2021-06-29 16:00:30 浏览次数:2 分类:技术文章

本文共 1523 字,大约阅读时间需要 5 分钟。

论文地址:

项目地址:

0x00 Foreword

今天看到YOLOv3发布的信息,第一个反应就是,我×,我之前的模型还没有训练好,现在又出来一个(T_T)。

不过我对于YOLOv3的发布还是很激动的,因为我之前和大多数人一样,对于single-stage报以很小的期望了,但是今天的YOLOv3让我又重新对于single-stage有了新的看法。

0x01 Abstract

关于Bounding Box的预测。同样使用在YOLO 9000中的维度聚类,找到最好的boxes的高宽。与传统的K-means聚类方法不同,作者使用的不是欧氏距离,而是使用的下面这种

  • d(box,centroid)=1IOU(box,centroid) d ( b o x , c e n t r o i d ) = 1 − I O U ( b o x , c e n t r o i d )

这样做的目的是,使errorbox的大小没有关系。

至于坐标预测计算也都是和YOLOv2相同。

关于种类的预测,没有使用softmax,而是使用了sigmoid。这种做法,对于重叠标签的数据会有所帮助(例如一个女性的图像,会标注女和人两个标签)。

关于多尺度。作者参考了FPN的设计。作者在特征提取网络后增加了几个卷积层,最后预测一个包含三种信息的张量(bounding box,目标和目标种类)。对于不同尺度使用三个anchor box进行预测。对于刚才说的网络的倒数第二层做上采样。从网络的前面部分获取特征图,使其和上采样后的特征图融合。然后添加卷积层处理融合后的特征图。这种做法避免了SSD中的细粒度信息的损失。

作者尝试了,通过预测常规方法的anchor box进行预测目标的位置,但是这种做法降低了模型的稳定。尝试通过线性激活函数代替logistic激活函数,结果也不是很好。尝试使用Focal loss,但是同样失败。

0x02 网络结构

作者此次将网络的深度增加到了53层,称为Darknet-53

这个网络比之前的Draknet-19强大了许多,但是任然逊色于ResNet-101ResNet-152

YOLOv3虽然在精度上要比FPN FRCN低一些,但是速度上却快上很多,同时它无论是速度上还是精度上都超越了RetinaNet系列。

总的来说,YOLOv3并不像之前的YOLO系列那样给我一种惊艳的感觉,这次带给我们更多的是一些激励,速度快的网络它的精度也可以很不错。

0x03 cfg文件分析

卷积层

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

这个不必多说什么,如果各位看过我之前写的应该不会有太大问题。

跳转层

[shortcut]from=-3activation=linear

这个是YOLOv3中新添加的。它的第一个参数from=-3表示shortcut层的结果有它的前面一层和前面第三层的输出相加得到,这种设计就是参考了resnet

route

[route]layers = -4

这同样是之前YOLOv2中的设计,它现在保留了下来。如果layers后面的参数只有一个的话,那么表示表示该层输出为之前第四层的特征图。(负号表示该层之前多少层,正号就表示对应的层数)

而如果layers后面的参数有两个的话,表示两个参数对应的层数(按深度叠加)后的输出。

上采样层

[upsample]stride=2

双线性上采样前面一层特征图。

后续我会对网络进行一些测试^_^!!!

如有问题,希望大家指出,谢谢各位!!!

转载地址:https://coordinate.blog.csdn.net/article/details/79702274 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:最简单的K-means算法原理和实践教程
下一篇:python 子类中扩展 property

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月06日 14时52分29秒