yolov3

文章目录

  • YOLOv3: An Incremental Improvement 学习笔记
    • 摘要
    • 1.介绍
    • 2.the deal
      • 2.1边界框的预测
      • 2.2对类别标注与分类
      • 2.3多尺度预测
      • 2.4特征提取器
      • 2.5训练
    • 3.怎么做
    • 4.作者尝试过但是不起作用的事
      • 4.1锚点框x,y偏移预测
      • 4.2线性激活函数预测而不是逻辑激活函数
      • 4.3焦点损失
      • 4.4双 IOU 阈值和真值分配
    • 5.这些意味着什么

YOLOv3: An Incremental Improvement 学习笔记

摘要

yolov3只是增加了一点小小的改进,虽然模型比yolov2稍微大一点,但是它的准确度增加了。在320x320分辨率图片上,可以在22毫秒的速度上达到28.2的mAP,准确度和SSD相当,但是速度是它的三倍。在Titan X上,它在51毫秒内达到57.9 AP50(0.5IOUmAP),而在RetinaNet上,它在198毫秒内才能达到57.5 AP50,性能相似,但是yolov3的速度快3.8倍。

1.介绍

这篇介绍的结尾将为本文的其余部分指明方向。首先,YOLOv3是怎么回事。然后作者是怎么做的。作者尝试过但没有成功的事情。最后,思考这一切意味着什么。(作者的介绍好像说了什么,又好像什么都没说)

2.the deal

2.1边界框的预测

在 YOLO9000 之后,作者使用维度簇作为锚框来预测边界框。网络为每个边界框预测 4 个坐标 tx,ty , tw, th。如果单元格从图像的左上角(网格框)偏移 (cx, cy) 并且边界框先验(锚框)具有宽度和高度 pw, ph,则预测对应于(bx,y,w,h对应预测框中心点的xy,宽高)(Cx,y,w,h对应网格框的左上角xy坐标和锚框的宽高)yolov3_第1张图片

YOLOv3 使用逻辑回归预测每个边界框的置信度。如果预测边界框与真实对象的重叠多于任何其他锚点框,则该值应为 1。但是如果描框对真实对象的重叠不是最好的,但是超过了一些阈值(作者选择的阈值为0.5),那么接下来就忽略它的预测,不产生损失函数。yolov3对每一个物体只分配一个锚点框去预测(置信度最高的那个),在损失函数的所有项产生贡献,比如定位,置信度和分类。否则作为负例,置信度标签为零,只对置信度学习产生贡献。

2.2对类别标注与分类

每个框都使用多标签分类预测边界框可能包含的类别。作者不使用 softmax,因为他们发现它对于良好的性能是不必要的,而是简单地使用独立的逻辑分类器。在训练期间,作者使用二元交叉熵损失进行类预测(这有助于yolo转向更复杂的领域,比如谷歌的OID数据集(Open Images Dataset),在这个数据集中有很多重叠的标签)。使用 softmax 会假设每个盒子都只有一个类别,但通常情况并非如此。多标签方法可以更好地对数据进行建模。

2.3多尺度预测

yolov3开始预测三个不同尺寸的边界框。yolov3使用类似金字塔网络的方法在这些不同尺寸的边界框中提取特征。从作者的基本特征提取器中,作者添加了几个卷积层。最后一个预测 3维张量编码边界框、对象性和类别预测。作者在使用 COCO 的实验中,yolov3在每个尺度上预测 3 个框,因此对于 4 个边界框偏移、1 个对象置信度和 80 个类别概率预测,张量为 N × N × [3 * (4 + 1 + 80)]。

N 是该尺度下的网格框个数。3个预测框对应3个锚框

yolov1 448 X 448 7 X 7 7 X 7 X 2 个框,没有锚框 输出张量7 x 7 x (5 x B + C), B = 2,C = 20

yolov2 416 x 416 13 x 13 每个网格框预测5个锚框,13x13x5=845个框 输出张量13x13x5x(5+20)

yolov3 如果输入416x416 则会产生 52 x 52 (预测小物体)、26 x 26 和13 x 13(预测大物体)三种不同尺度的网格框。每个网格框预测三个锚框,共计产生(52x52+26x26+13x13)x3个框.

​ 如果输入256x256则会产生 32 x 32 (预测小物体)、16 x 16 和8 x 8(预测大物体)三种不同尺度的网格框。每个网格框预测三个锚框,共计产生(32 x 32 + 16 x 16 + 8 x 8)x3个框.

然后作者从之前的 2 层获取特征图,并将其上采样 2 倍。作者还从网络早期获取特征图,并使用级联的方法将其与上采样特征合并。这种方法允许yolov3从上采样的特征中获得更有意义的语义信息,并从早期的特征图中获得更细粒度的信息。然后添加更多的卷积层来处理这个组合的特征图,并最终预测一个相似的张量,尽管现在大小是原来的两倍大。

作者仍然使用 k-means 聚类来确定系统的边界框先验。作者只是随意选择了 9 个集群和 3 个尺度,然后在尺度上均匀地划分集群。

2.4特征提取器

作者使用了一个新的网络来执行特征提取。新网络是 YOLOv2、Darknet-19 中使用的网络和新奇的残差网络之间的混合方法。新的网络采用连续的3x3和1x1卷积层但是采用一些更加便捷的连接方式,而且这个网络相比之前的网络明显更大,它有53个卷积层,所以被称之为Darknet-53。

这个新网络比 Darknet19 强大得多,但仍然比 ResNet-101 或 ResNet-152 更有效。以下是一些 ImageNet 结果
yolov3_第2张图片

每个网络都使用相同的设置进行训练,并以 256 × 256 的单裁剪精度进行测试。运行时间是在 Titan X 上以 256 × 256 测量的。测量表现是Darknet-53 的性能与最先进的分类器相当,但浮点运算更少,速度更快;Darknet-53 比 ResNet-101 好,快 1.5 倍。Darknet-53 的性能与 ResNet-152 相似,但是速度比它速度快 2 倍。

Darknet-53还实现了每秒最高测量浮点运算,这意味着它的网络架构可以很好的利用GPU的资源。而ResNet与yolov3相比速度比较慢的原因可能是它的卷积层过多并且效率不高。

2.5训练

作者只提了这句话; 我们仍然在没有硬负挖掘或任何其他东西的情况下训练完整图像。我们使用多尺度训练、大量数据增强、批量标准化,使用 Darknet 神经网络框架进行训练和测试。

3.怎么做

yolov3相当的好,在 COCO 奇怪的平均 AP 指标方面,它与 SSD 变体相当,但速度快了 3 倍。不过,在这个指标上,它仍然比 RetinaNet 等其他模型落后很多。

但是,当我们查看 IOU=0 .5(或图表中的 AP50)时 mAP 的“旧”检测指标时,YOLOv3 非常强大。它几乎与 RetinaNet 相媲美,却远高于 SSD 的各种变体。这表明yolov3非常擅长为目标生成目标检测框,但是随着阈值的增加,它的性能却在显著下降,这又说明yolov3很难让检测框与物体完美对齐。

在第一代版本中,yolo对群体和小目标识别方面都存在着缺陷,但是在这一版本中yolo问题却反过来了(它在中型和大型物体上的性能开始变差,作者需要更多的研究)。通过新的多尺度预测,YOLOv3 具有相对较高的 APS 性能。当我们在 AP50 指标上绘制精度与速度的关系图时 YOLOv3 与其他检测系统相比具有显着优势。也就是说,它依旧更快更好。

4.作者尝试过但是不起作用的事

4.1锚点框x,y偏移预测

作者尝试使用正常的锚框预测机制,使用线性激活将 x、y 偏移量预测为框宽度或高度的倍数。最后发现这个公式会降低模型稳定性,并且效果不佳。

4.2线性激活函数预测而不是逻辑激活函数

作者尝试使用线性激活来直接预测 x、y 偏移而不是逻辑激活。这导致 mAP 下降了几个点

4.3焦点损失

作者尝试过焦点损失的方法,但是这让yolov3的mAP下降了两个百分点。但是作者还是对yolov3抱有极大的期待,他认为yolov3 可能已经对焦点损失试图解决的问题具有鲁棒性,因为它具有单独的对象性预测和条件类预测。

4.4双 IOU 阈值和真值分配

Faster RCNN 在训练期间使用两个 IOU 阈值。如果预测与地面实况重叠 0.7,则作为正例,在 [0.3 -0 .7] 时,它会被忽略,对于所有地面实况对象,它小于 0.3 时是负例。作者尝试了类似的策略,但获得的结果并不理想。

目前作者依然对当前的公式比较满意,他认为它至少现在处于局部最优状态。这些技术中的一些可能最终会产生良好的结果,也许它们只需要一些调整来稳定训练。

5.这些意味着什么

yolov3在 0.5 到 0.95 IOU 指标之间的 COCO 平均 AP 上表现的并没有那么好,但它在 0.5 IOU 的旧检测指标上非常好。(比不过最新的就跟之前的比,因为yolov3在目标精准定位的问题上依旧存在问题)

然后作者提出令人深思的问题:“既然我们拥有了这么高性能的目标检测系统,我们应该如何使用它们?”。“大量资助视觉研究的人是军队,他们从来没有做过像用新技术杀死很多人这样可怕的事情”。

作者非常希望大多数使用计算机视觉的人只是在用它做快乐、有益的事情,比如数国家公园里斑马的数量 ,或者跟踪他们的猫在他们家附近徘徊 。但是计算机视觉已经被投入战争使用,作为研究人员,作者觉得有责任至少考虑他们的工作可能造成的伤害,并想办法减轻它。作者觉得自己的研究成功被军方应用到战争中,与自己的初心相违背,现在他正在深思自己是否还需要将研究进行下去。科学技术是一把双刃剑,使用的好能给人带来快乐,用途不当就是战争兵器,类似于核技术。

In closing, do not @ me. (Because I finally quit Twitter) ,作者最终选择退出了计算机视觉的研究。

你可能感兴趣的:(yolo,深度学习,计算机视觉,目标检测)