主要从以下几个部分理解anchor的概念:
1. 什么是anchor?
就是在图像上预设好的不同大小,不同长宽比的参照框。
等同于:预定义边框 就是一组预设的边框,在训练时,以真实的边框位置相对于预设边框的偏移来构建训练样本。 这就相当于,预设边框先大致在可能的位置“框“出来目标,然后再在这些预设边框的基础上进行调整。
发展历程:为了尽可能的框出目标可能出现的位置,预定义边框通常由上千个甚至更多,在深度学习之前,通常使用各种形状的“滑动窗口”,在原图像滑动,来产不同位置不同形状的预设边框。到了深度学习时期,由于对图像特征提取技术的进步,可以使用Anchor Box在图像的不同位置生成边框,并且能够方便的提取边框对应区域的特征,用于边框位置的回归。
定义:一个Anchor Box可以由:边框的纵横比和边框的面积(尺度)来定义,相当于一系列预设边框的生成规则,根据Anchor Box,可以在图像的任意位置,生成一系列的边框。由于Anchor box 通常是以CNN提取到的Feature Map 的点为中心位置,生成边框,所以一个Anchor box不需要指定中心位置。
总结来说就是: 在一幅图像中,要检测的目标可能出现在图像的任意位置,并且目标可能是任意的大小和任意形状。
- 使用CNN提取的Feature Map的点,来定位目标的位置。
- 使用Anchor box的Scale来表示目标的大小。