YOLO v2 笔记

网络结构

相较于 YOLO v1 的改进

  1. 保留 v1 数据增强的策略的同时,增加了图片180°反转和多尺度训练。

  2. 添加了 batch normalization,舍弃掉了 dropout,提升模型泛化能力的同时使得模型更容易收敛。

  3. 首次提出 darknet19,并用全卷积替代全连接,解决了v1全连接的问题,大大减少了参数规模。

  4. 不再像 v1 一样,直接预测 BBox 的位置和大小,而是受 faster r-cnn 影响,有了 anchor 的概念,从而预测 BBox 相对于 anchor boxes 的偏移量。

  5. v2 对 Faster R-CNN 的人为设定先验框方法做了改进,采样 k-means 在训练集 BBox 上进行聚类产生合适的先验框。由于使用欧氏距离会使较大的 BBox 比小的 BBox 产生更大的误差,而 IOU 与 BBox 尺寸无关,因此使用 IOU 参与距离计算,使得通过这些 sanchor boxes 获得好的 IOU 分值。改进的距离评估公式:

\[\mathrm { d } ( \mathrm { box } , \text { centroid } ) = 1 - \mathrm { IOU } ( \mathrm { box } , \text { centroid } )\]

使用聚类方法进行选择的优势是达到相同的 IOU 结果时所需的 anchor box 数量更少,使得模型的表示能力更强,任务更容易学习。同时作者发现直接把 faster-rcnn 预测 region proposal 的策略应用于 YOLO 会出现模型在训练初期不稳定。原因来自于预测 region proposal 的中心点相对于 anchor boxes 中心的偏移量较大,不好收敛,公式如下:

$$\begin{array} { l } { x = \left( t _ { x } * w _ { a } \right) - x _ { a } } \\ { y = \left( t _ { y } * h _ { a } \right) - y _ { a } } \end{array}$$

由下图可见,将预测值加以 sigmoid 运算,将 region proposal 的中心点牢牢地限定在了 anchor box 的中心点所在的 cell 里,很明显这样偏移量会好学了很多。

注:

Table of Contents