返回

谈trick的重要性——以YOLOv2为例

人工智能

前言

2015年6月,YOLOv1横空出世,标志着一步式物体检测算法时代的到来,同年12月,经典一步式物体检测算法SSD出世,在准确度和速度上均击败了傲娇的YOLOv1。经过一年的探索,2016年12月,YOLOv1作者Joseph Redmon发布YOLOv2,以图扳回一城。

下图展示了YOLOv1、SSD以及YOLOv2在COCO数据集上的表现,可以看出,YOLOv2在准确度和速度上都优于YOLOv1和SSD:

[YOLOv1、SSD以及YOLOv2在COCO数据集上的表现对比图]

YOLOv2中的trick

YOLOv2在YOLOv1的基础上,加入了许多trick,这些trick极大地提升了YOLOv2的性能。这些trick包括:

1. Batch Normalization

Batch Normalization是一种归一化方法,它可以使神经网络的训练更加稳定,并可以提高神经网络的泛化能力。在YOLOv2中,Batch Normalization被用在卷积层之后,以减少内部协变量偏移。

2. 高分辨率输入

YOLOv1使用448×448的输入图像,而YOLOv2使用544×544的输入图像。更高的输入分辨率可以使YOLOv2检测到更小的物体,并可以提高YOLOv2的定位精度。

3. Anchor Boxes

Anchor Boxes是一种先验框机制,它可以帮助YOLOv2预测边界框。在YOLOv2中,Anchor Boxes被用来预测9种不同大小和宽高比的边界框。这使得YOLOv2可以检测到各种不同大小和形状的物体。

4. Dimension Clusters

Dimension Clusters是一种聚类算法,它可以将不同大小和宽高比的物体聚类成几个簇。在YOLOv2中,Dimension Clusters被用来确定Anchor Boxes的大小和宽高比。这使得YOLOv2的Anchor Boxes更加适合于检测不同大小和形状的物体。

5. Multi-Scale Training

Multi-Scale Training是一种训练策略,它可以在不同大小的输入图像上训练神经网络。在YOLOv2中,Multi-Scale Training被用来训练YOLOv2,这使得YOLOv2可以适应不同大小的输入图像。

6. Darknet-19

Darknet-19是YOLOv2的骨干网络,它是一个19层的卷积神经网络。Darknet-19在ImageNet数据集上预训练,这使得YOLOv2可以快速地收敛。

总结

YOLOv2在YOLOv1的基础上,加入了许多trick,这些trick极大地提升了YOLOv2的性能。这些trick包括Batch Normalization、高分辨率输入、Anchor Boxes、Dimension Clusters、Multi-Scale Training以及Darknet-19。这些trick使得YOLOv2成为了一种准确度高、速度快的一步式物体检测算法。