Sift之前的江湖
在Sift横空出世之前,特征点检测与匹配江湖上占据霸主地位的是角点检测家族。先来探究一下角点家族不为人知的恩怨情仇。
角点家族的族长是Moravec在1977年提出的Moravec角点检测算子,它是一种基于灰度方差的角点检测方法,该算子计算图像中某个像素点沿水平、垂直方向上的灰度差异,以确定角点位置,Moravec是第一个角点检测算法,也是角点家族的开山鼻祖。
角点家族的九袋长老是Chris Harris & Mike Stephens在1988年提出的Harris角点检测算子。Harris不止是考察水平、垂直4个方向上的灰度差异,而是考察了所有方向上的灰度差异,并且具有旋转不变性和对部分仿射变换的稳定性。Harris是整个角点检测家族的颜值担当。
角点家族的大护法是J.Shi和C.Tomasi在1994年提出的Shi-Tomasi角点检测算子,它是对Harris角点算子的改进,并且有一个直接“叫嚣”Harris算子的名字——“Good Features to Track”,在Opencv中实现函数是goodfeaturesToTrack。它通过考察自相关矩阵M的两个特征值中的较小者来确定就角点,大部分情况下,有比Harris更好的检测效果。
角点家族洪兴堂堂主是E.Rosten和T.Drummond在2006年提出的FAST(Feature from Accelerated Segment Test)算子。它通过考察像素点与其邻域内16个像素点的差异来确定特征点(角点),并且通过分割测试算法对检测效率做了极大的提升。它信奉“天下武功,唯快不破”的真理,在快的道路上锐意进取,基本可以满足实时检测系统的要求,在现今计算机视觉领域赚足了眼球。
角点家族这种群雄逐鹿的局面一直持续了很多年,大家你追我赶,在群主Moravec的带领下家族基于日渐殷实。直到20多年后的1999年的某天拂晓,一个叫Sift的后生叩响了角点家族的鎏金铁门。
Sift闪亮登场
1999年,大不列颠哥伦比亚大学的David G.Lowe教授在现有基于不变量技术的特征检测方法基础上,提出了一种基于尺度空间的,对图像缩放、旋转、甚至仿射变换保持不变性的图像局部特征描述算子——Sift(尺度不变特征变换),全称是Scale Invariant Feature Transform,并且在2004年,又对Sift算法做了更为系统的完善。下边这位老爷子就是Lowe。