anchor 在计算机视觉中有锚点或锚框, 目标检测中常出现的 anchor box 是锚框, 表示固定的参考框.
目标检测的任务:
在哪里有东西
难点:
目标的类别不确定, 数量不确定, 位置不确定, 尺度不确定
传统算法的解决方式:
都要金字塔多尺度 + 遍历滑窗的方式, 逐尺度逐位置判断 "这个尺度的这个位置处有没有认识的目标", 非常笨重耗时, 并不能很好的推广适用.
现状:
近期顶尖 (SOTA) 的目标检测方法几乎都用了 anchor 技术
作用:
首先预设一组不同尺度不同位置的固定参考框, 覆盖几乎所有位置和尺度, 每个参考框负责检测与其交并比大于阈值 (训练预设值, 常用 0.5 或 0.7) 的目标, anchor 技术将问题转换为 "这个固定参考框中有没有认识的目标, 目标框偏离参考框多远", 不再需要多尺度遍历滑窗, 真正实现了又好又快, 如在 Faster R-CNN 和 SSD 两大主流目标检测框架及扩展算法中 anchor 都是重要部分.
举例:
1. 预设 anchor

2. 识别结果与预设 anchor 的 IOU 计算

如按照上图所示, 计算所有红色与绿色的 IOU(交并比), 根据阈值来过滤掉我们需要的后, 可能如下图所示:

蓝色部分为符合阈值剩余的部分.
当然在实际中存在一些其他的问题来辅助最后的预算, 比如非极大值抑制 (NMS) 来挑选一个置信度最高的相似目标.
注意:
上图的示例仅仅是一个示例
真实的 anchor 应该参考如下图的方式:

b 图中, 生成的 anchor 为:\(8*8*(预设 anchor 数量)\)
c 图中, 生成的 anchor 为:\(4*4*(预设 anchor 数量)\)
以上为我根据查找的资料观摩后的个人理解
并没有去深究代码实现和论文
仅供参考
如果理解有误, 希望您能不吝赐教.
参考
https://zhuanlan.zhihu.com/p/55824651
来源: https://www.cnblogs.com/zfcode/p/mu-biao-jian-ce-anchor-li-jie-bi-ji.html