YOLO-先验框/anchor(锚点)

目标检测网络(Faster RCNN、SSD、YOLO v2&v3等)中,均有先验框的说法,Faster RCNN中称之为anchor(锚点),SSD称之为prior bounding box(先验框),可以理解是一个概念。Anchor设置的合理与否,极大的影响着最终模型检测性能的好坏。

1. 什么是Anchor?

一句话概括——**提前在图像上预设好的不同大小,不同长宽比的框,**先验框示意如下:

ca25a3881a29e50d9656d7d126257d2a.png

同一位置设置多个不同尺度先验框

2. 为什么引入Anocher?

结论:使得模型更容易学习。

锚框的作用:在进行目标检测任务的基本思路:通过设定众多的候选框,然后针对候选框进行分类和微调,找到目标中最接近的真实框,实现目标检测。这里的候选框也就是锚框。

YOLOv1是较早的one-stage目标检测方法(YOLOv1没有设计Anocher),它最后采用全连接层直接对边界框进行预测,由于各个图片中存在不同尺度和长宽比(scales and ratios)的物体,使得YOLOv1在训练过程中学习适应不同物体的形状比较困难,这也导致YOLOv1在精确定位方面不如Faster R-CNN,如下:

5020e64bf8a46df2b742370497eab6a6.png

使用anchor boxes之后,YOLOv2的召回率大大提升,所以在Yolo之后的版本中,均保留了先验框。

3. Anocher为什么要使用不同尺寸和长宽比?

YOLOV1中称为先验框(应该是固定值),之后不全了解,读者自鉴。

结论:为了得到更大的交并比(intersection over union, IOU)。

通过设置不同的尺度的先验框,就有更高的概率出现对于目标物体有良好匹配度的先验框(体现为高IoU)。

如下所示:

c1db7d6f786966c9f1ff477aa201c85e.png

左图我们更希望模型选择红色的先验框,右图希望模型选择蓝色的先验框,这样使得模型更容易学习。

4. Anochor Box的尺寸该怎么选择?

anchor一般都是通过人工设计的。例如,在SSD、Faster-RCNN中,设计了9个不同大小和宽高比的anchor。然而,通过人工设计的anchor存在一个弊端,就是并不能保证它们一定能很好的适合数据集,如果anchor的尺寸和目标的尺寸差异较大,则会影响模型的检测效果。目前anchor box的选择主要有三种方式:

  • 人为经验选取
  • k-means聚类
  • 作为超参数进行学习

在论文YOLOv2中提到了这个问题,作者建议使用K-means聚类来代替人工设计,通过对训练集的bounding box进行聚类,自动生成一组更加适合数据集的anchor,可以使网络的检测效果更好。

Instead of choosing priors by hand, we run k-means clustering on the training set bounding boxes to automatically find good priors. If we use standard k-means withEuclidean distance larger boxes generate more error than smaller boxes. However, what we really want are priors that lead to good IOU scores, which is independent of the size of the box.

虽然设置更多的先验框,IOU能获得一定的提升,但模型的复杂度随之增加,如下图,为了平衡模型的准确度和复杂度,YOLOv2的作者最终选择了K=5个先验框。

f4301f6f3f5a2f7a8d543bfb30e2a955.png

本文转自 [https://blog.csdn.net/weixin_34693059/article/details/112179549),如有侵权,请联系删除。

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值