我是计算机视觉的新手,开始学习计算机视觉社区中一个非常流行的话题,那就是SIFT。但我对一个实现细节感到困惑:
在检测到关键点之后,我们必须构建4x4的局部直方图,作为最终的SIFT描述符,对吗?每个局部直方图包含4x4像素的局部邻域的方向。所以总的来说,我们有16乘以16等于256像素,它们在关键点周围的邻域内。因此,这个邻域是一个16x16像素的网格。
但是这个邻域是如何详细确定的呢?邻域是否按照关键点的方向旋转?此256像素邻域内的像素是否根据检测到关键点的比例进行分隔?
感谢大家的帮助!
发布于 2016-08-18 14:32:37
首先,在多个尺度上提取SIFT关键点。使用相应的尺度来计算描述符。所以,我不会说‘像素’,因为它可能是模棱两可的。对于你的问题,我想引用original paper (6.1节):
首先在关键点位置周围对图像梯度幅度和方向进行采样,使用关键点的比例来选择图像的高斯模糊级别。
为了实现方向不变性,描述符的坐标和梯度方向相对于关键点方向旋转。
使用具有等于描述符窗宽一半的σ的高斯加权函数来为每个采样点的幅度分配权重。
我希望这能回答你的问题。如果有什么不清楚的地方,请不要犹豫。
https://stackoverflow.com/questions/39007737
复制相似问题