摘要
更新的YOLO:作者提到对YOLO(You Only Look Once)系统进行了一系列的小设计改进,这些改进旨在提升系统的性能。YOLOv3是YOLO系列的第三个版本,它在保持前一个版本优点的基础上,通过细节上的优化实现了更好的性能。
新训练的网络:YOLOv3包含了一个新的网络结构,这个网络在训练后表现出了更高的准确性。尽管新网络的规模比之前的版本稍大,但它仍然保持了较快的处理速度。
性能数据:在320×320的输入尺寸下,YOLOv3能够在22毫秒内完成检测,达到了28.2 mAP(mean Average Precision)。这一性能与SSD(Single Shot MultiBox Detector)相当,但速度是SSD的三倍。mAP是目标检测领域常用的性能评价指标,它衡量的是模型在不同IoU(Intersection over Union,交并比)阈值下的平均精度。
与其他检测方法的比较:作者比较了YOLOv3与RetinaNet和其他检测方法在Titan X GPU上的性能。YOLOv3在51毫秒内达到了57.9 AP50,而RetinaNet在198毫秒内达到了57.5 AP50。AP50是指在0.5 IoU阈值下的准确率,这是一个传统的检测性能度量标准。YOLOv3在速度上显著优于RetinaNet,同时保持了相似的准确率。
2.1. Bounding Box Prediction”
锚框(Anchor Boxes)的使用:
YOLOv3继续采用YOLO9000的方法,使用锚框(Anchor Boxes)来预测边界框。锚框是一种预定义的框,用于匹配不同尺寸的目标。
网络预测每个边界框的4个坐标(tx, ty, tw, th),这些坐标表示边界框相对于其所在单元格(cell)的位置和尺寸。
坐标预测:
坐标预测包括边界框的中心点坐标(tx, ty)以及宽度和高度(tw, th)的偏移量。这些偏移量是基于锚框的尺寸和位置计算的。
如果单元格相对于图像左上角的偏移是(cx, cy),并且锚框的先验宽度和高度是(pw, ph),那么预测的坐标可以通过以下公式计算:
bx = σ(tx) + cx
by = σ(ty) + cy
bw = pw * tw
bh = ph * th
其中,σ()表示sigmoid函数,用于将坐标值限制在0到1之间,以便进行预测。
损失函数:
在训练过程中,YOLOv3使用均方误差(Sum of Squared Error, SSE)损失函数来优化坐标预测。
对于某个坐标预测,如果其真实值(ground truth)是ˆt*,那么梯度(gradient)就是真实值减去预测值:ˆt* - t*。真实值可以通过上述方程的逆运算来计算。
目标性得分(Objectness Score):
YOLOv3为每个边界框预测一个目标性得分,使用逻辑回归(logistic regression)来实现。这个得分应该是1,如果边界框与真实目标的重叠度超过任何其他边界框先验。
如果边界框不是最佳匹配,但仍然与真实目标有一定的重叠,并且超过某个阈值(例如0.5),则该预测将被忽略,不会对坐标或类别预测产生损失,只有目标性得分会受到影响。
边界框的分配:
与之前的工作不同,YOLOv3的系统只为每个真实目标分配一个边界框先验。如果没有边界框先验被分配给某个真实目标,那么它不会因坐标或类别预测而产生损失,只有目标性得分会受到影响。
2.2. Class Prediction
多标签分类:
YOLOv3对每个检测到的边界框使用多标签分类(multilabel classification)方法来预测它可能包含的类别。这意味着一个边界框可以同时被分配多个类别标签,而不是单一类别。
不使用softmax函数:
传统的分类方法可能会在输出层使用softmax函数,它将输出转换为概率分布,假设每个样本只属于一个类别。然而,YOLOv3不使用softmax函数,因为作者发现即使没有softmax,模型也能取得良好的性能。
独立逻辑分类器:
代替softmax,YOLOv3使用独立的逻辑分类器(independent logistic classifiers)来预测每个类别的存在。这意味着对于每个类别,都有一个逻辑回归模型来预测该类别是否出现在当前边界框中。
二元交叉熵损失:
在训练过程中,对于类别预测,YOLOv3使用二元交叉熵损失(binary cross-entropy loss)。这是一种衡量预测概率分布与实际标签之间差异的损失函数,适用于二分类问题。对于多标签分类,这种损失可以单独应用于每个类别的预测。
处理复杂数据集:
作者提到,这种多标签分类的方法在处理像Open Images Dataset这样的复杂数据集时特别有用。在这个数据集中,存在很多重叠的标签(例如,“女性”和“人”),使用softmax函数会假设每个边界框只属于一个类别,这在实际情况中往往不成立。而多标签方法能更好地建模这种数据。
2.3. Predictions Across Scales
多尺度预测:
YOLOv3能够在三个不同的尺度上预测边界框。这是为了能够检测不同大小的目标,从而提高模型对各种尺寸物体的检测能力。
特征提取:
系统从这些不同尺度的特征图中提取特征,这与特征金字塔网络(Feature Pyramid Networks, FPN)的概念类似。通过在基础特征提取器上添加多个卷积层,网络能够捕获不同层次的特征。
预测张量:
在每个尺度上,最后一个卷积层预测一个3维张量,其中包含了边界框、目标性(objectness)和类别预测。例如,在COCO数据集上,每个尺度上预测3个边界框,因此张量的形状为N × N × [3 × (4 + 1 + 80)],其中4表示边界框偏移量,1表示目标性预测,80表示80个类别预测。
特征图上采样和合并:
作者描述了一个特征图上采样和合并的过程。具体来说,他们取前两层的特征图进行2倍上采样,同时取网络早期的特征图与之合并。这种合并方法通过连接(concatenation)实现,它允许模型同时获得更丰富的语义信息和更细粒度的特征信息。
卷积层处理:
在上采样和合并特征图之后,网络添加了几个卷积层来处理这个组合特征图,并最终预测一个更大的张量。这个过程在不同的尺度上重复进行,以便为最终尺度的预测提供支持。
锚框先验:
作者还提到,他们使用k-means聚类来确定锚框先验。这些锚框先验是根据数据集中的目标尺寸分布计算出来的,以帮助模型更好地预测不同尺寸的目标。
尺度上的锚框分配:
作者选择了9个锚框和3个尺度,并在尺度之间平均分配这些锚框。在COCO数据集上,这些锚框的尺寸包括(10×13), (16×30), (33×23), (30×61), (62×45), (59×119), (116×90), (156×198), (373×326)。
2.4. Feature Extractor
新的网络结构:
YOLOv3采用了一个新的网络结构来进行特征提取,这个结构是YOLOv2中使用的Darknet-19和残差网络(Residual Networks)的混合体。
Darknet-53:
这个新的网络结构被称为Darknet-53,因为它包含53个卷积层。这个名称来源于网络深度的直观表示,即层的数量。
混合方法:
Darknet-53结合了3×3和1×1的卷积层,并引入了残差连接(shortcut connections),这些连接允许网络中的梯度直接流过一些层,从而缓解了深度网络训练中的梯度消失问题。
性能比较:
作者提供了一个性能比较表,将Darknet-53与其他几种流行的网络结构(如ResNet-101和ResNet-152)进行了比较。比较的指标包括ImageNet的Top-1和Top-5准确率、网络参数数量(Bn Ops)、每秒浮点运算次数(BFLOP/s)和每秒帧数(FPS)。
效率和性能:
Darknet-53在保持与ResNet-101相似的性能的同时,具有更少的浮点运算和更高的速度。与ResNet-152相比,Darknet-53的性能相近,但速度快了两倍。此外,Darknet-53在浮点运算次数上达到了最高的测量值,这意味着网络结构更好地利用了GPU,从而提高了评估效率和速度。
训练方法:
作者提到,他们仍然使用完整的图像进行训练,不使用硬负样本挖掘(hard negative mining)或其他复杂技术。他们使用多尺度训练、大量数据增强和批归一化等标准方法。
3. How We Do
-
YOLOv3的性能:
- 作者强调YOLOv3在目标检测方面的表现相当不错。尽管在COCO数据集的平均精度(mean Average Precision, mAP)方面与SSD变体相当,但YOLOv3的速度是SSD的三倍快。
-
与其他检测方法的比较:
- 论文中提供了一个表格,列出了不同目标检测方法的性能,包括两阶段方法(如Faster R-CNN和其变体)和一阶段方法(如YOLOv2、SSD和RetinaNet)。
- 在表格中,YOLOv3在AP(平均精度)和AP50(在0.5 IoU阈值下的精度)等指标上与其他模型相比较,显示出它在速度和准确性方面的优势。
-
检测指标:
- 作者提到,尽管YOLOv3在AP50指标上与RetinaNet相当,但在更高的IoU阈值(如AP75)上性能有所下降,这表明YOLOv3在精确对齐目标框方面存在挑战。
-
小目标的检测:
- 作者指出,YOLOv3在小目标的检测上表现相对较好,这可能是因为模型采用了多尺度预测。然而,在中等和大尺寸目标的检测上,YOLOv3的性能相对较差,作者认为需要进一步的研究来解决这个问题。
-
准确性与速度的权衡:
- 论文中还展示了一张图表,比较了不同检测系统在AP50指标下的准确性与速度的权衡。YOLOv3在这张图表上表现出显著的优势,因为它在保持高准确性的同时,具有更快的速度。