ASITF算法出现已经很长时间了,这个算法主要是解决SIFT等特征提起算法在影像有较大倾斜角度时,同名点对提取较少的问题。有一些关于该算法的应用和改进算法效率的中文文章,一些博客也做了基本的介绍,但是总感觉大多是走马观花,讨论的不深入,希望对大家有所帮助。
1. 算法流程
2. 算法细节
2.1 采样点的产生
2.2 算法中反走样高斯滤波应用原理
2.3 双分辨率原理(two-resolution acceleration)
3. 算法伪代码实现
1. 算法流程
ASIFT算法就是为了解决SIFT、ORB、SURF等特征描述算子倾斜匹配的问题。上面的这些算法可以很好的应对尺度、旋转情况下的匹配,但是对于倾斜影像的特征点匹配只能提取很少量的特征,所以作者在提出ASIFT来解决这个问题。
这个算法的假设是:对于光滑的平面,在局部可以建立仿射变化模型代替投影变化模型。基于此,作者形象化的建立一个半球形空间,通过球形中的经度和纬度唯一的确定相机的空间位置。在这些空间位置上,对图像进行模拟,模拟所有可能的仿射扭曲。然后对模拟图像进行SIFT特征点匹配,进而实现算法的仿射不变性匹配算法。
2. 算法细节
2.1 采样点的产生
这些扭曲由两个参量决定:经度(水平角度)φ 和纬度(垂直角度)θ 。倾斜度参数 t 完成:t = 1 cosθ。设原始图像为 u( x , y ),原始图像在 X 轴上倾斜度为 t 的变换由 u ( x , y ) → u (t x ,y)得到。对数字图像来说,倾斜图像由具有方向性的 t 倍二次采样(t-subsampling)得到。
为使 ASIFT 算法对任何仿射变换具有不变性,倾斜度t和角度φ 必须具有较高精度。采样间隔由自然图像的多次实验得到。在较大的θ 下,较小的Δθ改变便能使图像产生较大的扭曲。对t 进行几何级数的采样可满足这一需求。一般来说,采样比率Δt应与角度φ无关。倾斜度最佳采样间隔应是Δt =1.41