【问题标题】:Why do we resize the image to half the size in the SIFT algorithm?为什么我们在 SIFT 算法中将图像大小调整为一半?
【发布时间】:2016-08-11 19:26:55
【问题描述】:

在SIFT算法的尺度空间构建中,我们将图像的尺寸逐步减半,然后得到每个尺寸的一系列模糊图像。

我的问题是,halving the image size 在构造 scale space 时对 SIFT 算法有何帮助?

谢谢。

【问题讨论】:

    标签: algorithm image-processing sift


    【解决方案1】:

    其实这是两个问题:

    1. 缩小图片尺寸的原因是什么
    2. 为什么图像缩小了 2 倍

    至于第一个问题:为了计算 sift 特征,我们需要将图像与不同 sigma 参数的高斯核进行卷积。当 sigma 参数很小时,这个内核就没有那么大(因为随着到中间的距离增加,它变得几乎为 0)。然而,sigma 参数在分析过程中呈指数增长,因此精确计算所需的内核大小也随之增加。增加高斯核的大小意味着增加计算时间。另一方面,在与高斯核卷积之后,图像频谱中的较高频率几乎被抹去——保持较高的分辨率没有任何好处,因为在这个级别上没有留下任何细节。

    因此,减小图像的大小可以消除对更大内核的需求,而无需以精度为代价付出任何代价。

    那么为什么要将图像缩小 2 倍呢?我们可以使用任何其他因素,但是

    1. 因子 2 比因子 1.5 好,因为计算结果图像要容易得多 - 不需要插值。
    2. 因子 2 优于因子 3,因为在 3 的情况下,我们需要更大的高斯内核:对于 sigma 参数 3,如果我们将图像缩小因子 2,则与最大 sigma 参数 2 相比。

    编辑:正如 Yves 指出的,我们不仅不必为较大的 sigma 参数计算更多,我们还必须计算更少,因为每次重新缩放后图像都会变小(我们可以在不损失精度的情况下进行,因为与高斯核的卷积消除了图像中的较高频率)。

    【讨论】:

    • 我同意你的论点,无论如何,高斯卷积有恒定时间的实现,这使得大内核变得可行。一个更强有力的原因是尺度空间表示需要 MN² 像素(其中 M 是分辨率的数量),而对于任何 M,二元金字塔都不超过 4N²/3 像素。
    • @YvesDaoust 谢谢,我不知道这种恒定的时间卷积,你能给它一个链接吗?
    • @YvesDaoust 我也没有考虑内存消耗。然而,如果一个人只对 sift 特征感兴趣,那么同时只需要 3 个级别的分辨率 - 内存可以一次又一次地重复使用。
    • 不,不是内存消耗,而是计算时间。 [不幸的是,时间不能一遍又一遍地重复使用。]“递归高斯导数滤波器,L. van Vliet & al.”和“递归实现高斯及其导数,R. Deriche”是最常用的。跨度>
    猜你喜欢
    • 2023-03-05
    • 1970-01-01
    • 2011-03-09
    • 1970-01-01
    • 2021-09-21
    • 1970-01-01
    • 2011-03-20
    • 2018-02-24
    • 1970-01-01
    相关资源
    最近更新 更多