cv小白的yolov3学习笔记总结
论文下载地址:YOLOv3: An Incremental Improvement
yolov网址:https://pjreddie.com/darknet/yolo/
2.2多类别标注分类(Class Prediction)
原文:
在yolov3中每一个预测框会输出输出85个值,其中的5个是中心点坐标,宽高,置信度,还有80个是条件类别概率。每一个类别,单独用一个二分类输出0到1之间的概率,也就说,可能会有多个类别的概率都是1,标签值为1,预测值为1。我们并不使用softmax因为我们发现它表现并不好,我们用各类别独立的逻辑回归。在训练过程中,每个类别单独用二分类交叉熵损失函数来训练。
这种方式帮助我们在更加复杂的任务领域,例如谷歌的Open Image数据集,在这个数据集中,一个预测框可以同时存在多个标签(例如同时存在女性和人这两个标签)。但是softmax会有假设各个类别的标签是互斥的,使用多标签的方式能够更好的给数据建模
笔记:每个预测框的每个类别可以逐一的用逻辑回归输出二分类概率,可以有多个类别输出高概率
2.3多尺度目标检测(Predictions Across Scales,网络拓扑结构)
原文:
yolov3在3个尺度上进行预测。我们的系统受到feature pyramid networks(FPN特征金字塔)的启发,从特征提取的骨干网络可以延伸出三条路,即不同尺度的特征分别加不同尺度的卷积层,每一个尺度获得一个三维的feature map,每一个feature map都有255个通道。在我们yolov3的实验中用的是COCO数据集,有80个类别,每一个尺度的grid cell都产生3个anchor,每一个尺度的输出结果都是N×N×[3×(4+1+80)],此输出结果经过sigmod等函数进行处理后作为4个坐标偏移量
笔记:
三条路:即输入任意尺度的三通道(RGB)的图像,经过yolov3之后,输出三种不同尺度的feature map(特征图)
255个通道:每一个grid cell有三个anchor(预测框),每一个anchor有80+5=85个值,3×85=255,所以一个feature map有255个通道
N×N×[3×(4+1+80)]:
N×N:该尺度下的grid cell个数
3:每一个grid cell生成3个anchor(预测框)
4:中心点坐标、宽、高
1:置信度
80:80个类别的条件类别概率
对比:
yolov1:输入的是448×448的三通道图像,每一张图像划分为7×7=49个grid cell,每个grid cell生成2个big bounding box(没有anchor),即产生98个框;输出的feature map结构是7×7×(5×2+20)
yolov2:输入的是416×416的三通道图像,每一张图像划分为13×13=169个grid cell,每一个grid cell生成5个anchor,即产生845个框;输出的feature map结构是13×13×(5+20)
5=4+1:中心点坐标、宽、高,置信度
20:20个类别的条件类别概率
从yolov2开始,兼容了不同输入尺寸的图片,输出尺寸由输入尺寸决定,小图片生成的feature map就小,大图片生成的feature map就大,如果输入正好是416×416,输出就是13×13的feature map
yolov3:如果输入的是416×416的三通道图像,yolov3会产生三个尺度:13×13、26×26、52×52,也对应着grid cell个数。对于每一个grid cell,产生3×(5+80)个张量。
即总共产生13×13+26×26+52×52个grid cell,(13×13+26×26+52×52)×3=10647个预测框
5=4+1:中心点坐标、宽、高,置信度
80:80个类别的条件类别概率
如果输入的是256×256的三通道图像,yolov3会产生三个尺度:8×8、16×16、32×32,每一个grid cell产生3个anchor,总共产生(8×8+16×16+32×32)×3=4032个预测框
13×13预测大物体、26×26预测中物体、52×52预测小物体
在这里引用一张作者是Levio的图片,如图所示输入416×416的三通道图片,经过骨干网络(Backbone)提取特征,由不同尺度的特征在Neck中进行汇总。
13×13通过上采样和26×26拼接(concatenation),得到输出层中的26×26
26×26通过上采样和52×52拼接,得到输出层中的52×52
输出层中255的含义:
255=85×3=(80+5)×3
5=4+1:中心点坐标、宽、高,置信度
80:80个类别的条件类别概率
2.4特征提取(Feature Extractor)
骨干网络提取出图像中好的特征来实现我们所需的目标
原文:
我们使用一个新的网络进行特征提取。新的网络混合了yolov2的Darknet-19和ResNet。我们的网络采用了连续的3×3卷积和1×1卷积,再加上了跨层连接。总共有53个带权重的卷积层,所以我们叫它Darknet-53(52个卷积层+1个全连接层)
这个新的网络比Darknet-19要强得多,并且比ResNet-101和ResNet152效率要高的多(如下图所示)
Top-5:准确率
Bn Ops:计算量
BFLOP/s:billions of operations,每秒可进行的十亿次的浮点运算量
FPS:Frames Per Second,FPS是图像领域中的定义,是指画面每秒传输帧数
(yolov2骨干网络是Darknet-19,yolov3骨干网络是Darknet-53,最新的yolov5的骨干网络是CSPDarknet-53,即融合了csp模块的Darknet-53网络)
2.5训练(Training)
原文:
我们仍然使用端对端训练,没有采用RCN中的难例挖掘。我们使用了多尺度的训练,大量的数据扩增,bn层,所有标准的东西。我们使用Darknet来进行深度学习训练测试。