近来心血来潮,把CV领域关于目标检测的主流方法YOLOv3和Faster RCNN看了一下,对其中的先验框(anchor box)一直不太理解,在广泛地阅读了一些相关讲解后,有了一定的理解,在此记录一下。
先验框的个人理解
- 先验框最早提出于Faster RCNN,初衷是为了代替selective search算法。
- 先验框是根据特征图生成的,即,特征图上每个位置都有一定数目不同比例的先验框。而大小是相对于原图的,也就是特征图上每个点可以映射到原图中某个特定区域(感受野大小)。
- 在训练的时候往往是把先验框缩放到相对于特征图的大小,在推理时会把特征图上调整后的先验框,即预测框,放大到原图大小。
- 通过非极大抑制方法筛选掉无用的先验框(还没有看)
Faster RCNN与YOLOv3先验框以及其他方面的区别
在Faster RCNN中,先验框的大小是人为设定的。在YOLOv3中,先验框的大小是通过kmeans聚类算法得到的,对训练样本的groundtruth box的宽高分别进行聚类。
Faster RCNN属于两阶段算法,先对先验框做回归,再把框对应的原图中的区域和原图输入到一个网络中预测类别同时再次修正框的大小位置。YOLOv3属于一阶段算法,预测的结果同时包含框的位置大小和类别概率分布。
其他目标检测算法
其他目标检测算法,SSD与YOLOv1较像,与其区别在于YOLOv1没使用anchor box,SSD使用了。同时SSD引入了多尺度预测。
Anchor free的算法,即不需要先验框的目标检测算法,FCOS, DETR等待看。。。
版权声明:本文为CSDN博主「指间砂8090」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zl_Dream/article/details/122944918
暂无评论