我正在使用VLfeat开源来提取SIFT关键点及其描述。下图显示了其中一个。黄色圆盘表示关键点的刻度(半径)和方向(线)。绿框表示其描述(即4x4 8-bin方向直方图)。
问题本身很简单。 为什么“关键点(黄线)的方向与其描述中的”主要(最常见)方向(绿色中最受欢迎的箱子)“不同?”
据我所知,关键点的方向由周围的峰值像素梯度决定。那么,定位是否也应该以绿色显示?是因为绿色框架比关键点的尺度大得多吗?
答案 0 :(得分:1)
我认为这只是VLfeat中使用的可视化问题。如上所述here standard http://www.vlfeat.org/demo/frame_standard.jpg
"标准导向框架"将被视为一个半径朝下的圆圈。
这同样适用。如果旋转框架使半径指向下方,那么框架的主梯度方向应该是水平的,这在4x4正方形内的大多数直方图中是一致的。
我认为这个惯例是有道理的,因为指向下方的半径对齐与"主笔划"框架(在视觉上直观),但正交到主梯度方向。
答案 1 :(得分:1)
至少有三件事需要考虑,以解释为什么不必如此:
第一个是主(黄色)方向有36bin直方图,描述符(绿色)方向是8bin;这允许一对(~30)度的误差。
第二个是描述符直方图(绿色)是在特征区域按其主(黄色)方向旋转后计算的,因此它们至少会被此旋转移动。
但最重要的原因是两个方向都是从同一个区域计算出来的,但不同的区域(大小和位置不同)都是相同的,所以它们的梯度根本不需要相似。