本文共 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)=1−IOU(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 )
这样做的目的是,使error
和box
的大小没有关系。
至于坐标预测计算也都是和YOLOv2
相同。
关于种类的预测,没有使用softmax
,而是使用了sigmoid
。这种做法,对于重叠标签的数据会有所帮助(例如一个女性的图像,会标注女和人两个标签)。
关于多尺度。作者参考了FPN
的设计。作者在特征提取网络后增加了几个卷积层,最后预测一个包含三种信息的张量(bounding box
,目标和目标种类)。对于不同尺度使用三个anchor box
进行预测。对于刚才说的网络的倒数第二层做上采样。从网络的前面部分获取特征图,使其和上采样后的特征图融合。然后添加卷积层处理融合后的特征图。这种做法避免了SSD
中的细粒度信息的损失。
作者尝试了,通过预测常规方法的anchor box
进行预测目标的位置,但是这种做法降低了模型的稳定。尝试通过线性激活函数代替logistic
激活函数,结果也不是很好。尝试使用Focal loss
,但是同样失败。
0x02 网络结构
作者此次将网络的深度增加到了53层,称为Darknet-53
。
这个网络比之前的Draknet-19
强大了许多,但是任然逊色于ResNet-101
和ResNet-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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!