Python图像局部特征提取(2)
丝瓜网小编提示,记得把"Python图像局部特征提取(2)"分享给大家!
DoH方法就是利用图像点二阶微分Hessian矩阵" Hessian矩阵行列式的值,同样也反映了图像局部的结构信息。与LoG相比,DoH对图像中的细长结构的斑点有较好的抑制作用。
无论是LoG还是DoH,它们对图像中的斑点进行检测,其步骤都可以分为以下两步:
使用不同的生成或模板,并对图像进行卷积运算;
在图像的位置空间与尺度空间中搜索LoG与DoH响应的峰值。
SIFT(尺度不变特征变换)
尺度不变特征转换(Scale-invariant feature transform或SIFT)是一种电脑视觉的算法用来侦测与描述影像中的局部性特征,它在空间尺度中寻找极值点,并提取出其位置、尺度、旋转不变量。该描述子具有非常强的稳健性。
SIFT算法详细介绍
SIFT算法步骤构建DOG尺度空间
模拟图像数据的多尺度特征,大尺度抓住概貌特征,小尺度注重细节特征。通过构建高斯金字塔(每一层用不同的参数σ
σ做高斯模糊(加权)),保证图像在任何尺度都能有对应的特征点,即保证尺度不变性。关键点搜索和定位:
确定是否为关键点,需要将该点与同尺度空间不同σ
σ值的图像中的相邻点比较,如果该点为max或min,则为一个特征点。找到所有特征点后,要去除低对比度和不稳定的边缘效应的点,留下具有代表性的关键点(比如,正方形旋转后变为菱形,如果用边缘做识别,4条边就完全不一样,就会错误;如果用角点识别,则稳定一些)。去除这些点的好处是增强匹配的抗噪能力和稳定性。最后,对离散的点做曲线拟合,得到精确的关键点的位置和尺度信息。方向赋值为了实现旋转不变性,需要根据检测到的关键点的局部图像结构为特征点赋值。具体做法是用梯度方向直方图。在计算直方图时,每个加入直方图的采样点都使用圆形高斯函数进行加权处理,也就是进行高斯平滑。这主要是因为SIFT算法只考虑了尺度和旋转不变形,没有考虑仿射不变性。通过高斯平滑,可以使关键点附近的梯度幅值有较大权重,从而部分弥补没考虑仿射不变形产生的特征点不稳定。注意,一个关键点可能具有多个关键方向,这有利于增强图像匹配的鲁棒性。关键点描述子生成