Yolo v3论文精读

  • 论文结构

  • 主干网络-DarkNet-53(backbone)

  • 特征金字塔-FPN(neck)

  • 三、对feature map进行预测(Head)

  • 四、先验框

  • 五、训练策略

  • 六、损失函数

  • 七、实验结果分析

  • 总结


论文结构

主干网络-DarkNet-53(backbone)

例如,输入的图片是256x256x3,经过一次卷积核为3x3的卷积后,shape变为256x256x32;再经过一次残差网络shape变为128x128x64,再经过两次残差网络shape变为64x64x128,再经过8次残差网络shape变为32x32x256,再经过8次残差网络shape变为16x16x512,再经过4次残差网络shape变为8x8x1024。

Darknet-53处理速度每秒78张图片,比Darknet-19慢不少,但是比同精度的ResNet快很多。Darknet-53在精度上略优于Darknet-19和ResNet。Yolov3依然保持了高性能,做到了速度和精度之间的平衡,综合考虑选择了Darknet-53作为主干网络。

Darknet-53的特点:借鉴ResNet:将输入的特征图与输出的特征图对应维度相加。

二、特征金字塔-FPN(neck)

 

Darknet-53的的三个特征层分别用于提取大物体,中型物体,和小物体的特征。首先对最底层8x8x1024的特征层进行5次卷积操作(8x8x512),再经过一次3x3的卷积和1x1的卷积获得小尺度的feature map(8x8x255)。对5次卷积操作后的特征层进行上采样和次底层16x16x512的特征层进行堆叠(16x16x768),然后再进行5次卷积操作(16x16x256),再经过一次3x3的卷积和1x1的卷积获得中尺度的feature map(16x16x255)。对5次卷积操作后的特征层进行上采样和中层32x32x256的特征层进行堆叠(32x32x384),再进行5次卷积操作和一次1x1和3x3的卷积后得到大尺度的feature map(32x32x255)。

Yolo Head本质上是一次3x3卷积加上一次1x1卷积,3x3卷积的作用是特征整合,1x1卷积的作用是调整通道数。

特征金字塔FPN可以将不同尺度的特征层进行特征融合,有利于取出更好的特征。

特征金字塔-FPN的特点:借鉴DsenseNet将特征图通道维度直接拼接。

三、对feature map进行预测(Head)

输入不同尺寸大小的图片会生成不同大小的特征图。特征图的每个像素点中,都会配置3个不同的先验框,所以最后三个特征图reshape为8x8x3x85,16x16x3x85,32x32x3x85,85代表检测框位置包括x偏移量,y偏移量,w,h(4维)、检测置信度(1维)、类别(80维)。

四、先验框

Yolov3沿用了Yolov2中关于先验框的技巧,并且使用k-means对数据集中的标签框进行聚类,得到类别中心点的9个框作为先验框。有了先验框与输出特征图,就可以解码检测框x,y,w,h。

置信度在输出85维中占固定一维,由sigmoid函数解码可得,解码之后的数值在[0,1]中。

85维中有80维维类别数,每一维独立代表一个类别的置信度,使用sigmoid激活函数代替了Yolov2中的softmax,取消了类别之间的排斥,可以使网络更加灵活。

三个特征图一共可以解码出8x8x3+16x16x3+32x32x3=4032个先验框,训练时4032个先验框全面送入打标签函数,然后计算损失函数,再进行反向传播。在推理时,选择一个置信度阈值,过滤掉低置信度的先验框,再通过非极大值抑制NMS,就可以输出网络预测结果了。

五、训练策略

预测框:正例(positive)、负例(negative)、忽略样例(ignore)

先验框的数量:416输入:10647个

                         256输入:4032个

正例:取一个ground truth,与4032个框全部计算iou,最大的维为正例。正例产生置信度loss,检测框loss,类别loss。

负例:与全部ground truth的iou都小于阈值(0.5),则为负例。负例只有分类置信度的loss,检测框loss和类别loss都为0。

忽略样本:除了正例意外,与ground truth的iou大于阈值则为忽略样本。忽略样本不产生任何loss。

六、损失函数

x,y,w,h使用MSE作为损失函数,也可以使用smooth L1loss

 七、实验结果分析

 

总结

创新点:结合检测与识别技术于一体,3个尺度的特征图,置信度和类别解码

不足:对于小目标的检  测精度较低。

总结:YoLov3比之前的版本更大但更精确,和SSD一样精确但是比SSD快3倍,用 Titan X时实现57.9AP,用时51ms,比RetinaNet快3.8倍。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
YOLO (You Only Look Once) v3 是一种物体检测算法,它的特点是可以在一次前向传递中同时检测多个物体。 YOLO v3 的算法流程主要包括以下几个步骤: 1. 输入图像:将待检测的图像作为算法的输入。 2. 建立特征图:将输入图像通过多层卷积网络(Darknet-53)进行处理,得到不同尺度的特征图。这些特征图对应不同大小的物体目标。 3. 物体分类:对特征图进行分类,使用卷积层和全连接层来学习和预测各个物体类别的概率。 4. 边框回归:使用卷积层和全连接层来预测每个物体的边界框,同时学习修正这些边界框的位置、尺寸和置信度。 5. 非极大值抑制(NMS):在同一个特征图上,使用非极大值抑制算法来排除重叠的边界框,只保留最具置信度的边界框。 6. 物体检测输出:将经过非极大值抑制的边界框输出到最终的检测结果。 YOLO v3 还有一些改进的地方,包括使用3个不同的尺度来进行物体检测,每个尺度上都有不同大小的边界框,以适应不同大小的物体目标;采用多尺度训练和测试,以提高对小物体的检测精度;在多尺度的特征图上进行预测,以提高对不同大小物体的检测能力。 总结来说,YOLO v3 的算法流程是通过卷积神经网络从输入图像中提取特征图,然后对特征图进行物体分类和边框回归,最后利用非极大值抑制算法得出最终的物体检测结果。这种算法流程使得 YOLO v3 能够以较快的速度实现准确的实时物体检测。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值