14年SIFT论文(二)
3.方法
- SIFT用于从图像中提取独特的尺度不变特征,主要分为四个计算阶段:尺度空间构造、关键点定位、方向分配和关键点特征提取。
- 在第一阶段制度空间构造,原始图像被分解成高斯金字塔,金字塔的每一层被叫做octave,octave通过使用具有不同方差的Dog滤波器在相应的金字塔层卷积初始图像而进一步分解成若干个子层。
- 第二阶段和第三阶段,检测出稳定关键点并计算关键点的位置、尺度和方向。
- 最后一个阶段,为每个关键点生成一个SIFT描述符/子。
- 使用SIFT来获取笔迹的关键点、再获取SIFT描述子SDs以及相应尺度和方向SOs。SDs具有尺度和旋转不变的性质,能够反映以关键点为中心的图像区域的结构。SOs能够保留这些结构的尺度和方向信息。这两个都是区分不同书写人的特征信息。
3.3码本生成
- 给定一副手写文档图像,先通过分词得到多个单词区域WRs。对于每个WR,使用SIFT检测关键点,并提取关键点的描述子、尺度和方向。为了使特征的数量有限,将训练样本中提取的关键点SDs聚类成N个类,并用其中心表示每个类别。形成一个大小为N的码本。
- 在码本的基础上,在下一小节中计算一个有限维度和固定维度的直方图作为特征向量,用于识别书写人。
- 使用SOM聚类算法来生成SD码本,根据经验,选取N=300。
3.4特征提取
-
因为是离线文本,内容可能完全不同,因此即使是同一人写的,关键点在不同图像中的布局也可能完全不同。
-
所以,我们不考虑关键点的位置,只考虑图像中每个SD描述子出现的频率
-
SIFT描述子特征提取:让SD={d1,d2,...,dn}代表第n个SIFT描述子SDs,他们是从离线笔迹图像I中提取的,C={c1,c2,...,cN}代表大小为N的SD码本。则,SDS特征提取过程如下:
- 初始化大小为N的SDS特征向量SDS=(0,0,...,0)
- 对于每个di∈SD,它和每个码本中的元素cj∈C之间的欧氏距离,如下所示:
EDij=k=1∑L(dik−cjk)2
- L=128是描述子的大小。并且di的欧式距离向量EDV如下所示:
EDV=(EDi1,EDi2,…,EDiN)
- 按升序对EDV的元素进行排序,并获得EDV中前t个元素:
IDX={idx1,idx2,…,idxt}
- 对于每个idx∈IDX,更新SDS特征向量:
SDSidx=SDSidx+δ(EDVidx)
- 其中δ(x)是一个非递增函数
- 重复步骤2~4,直到处理完所有的SDs。
- 最终计算SDS向量:
SDSi=∑j=1NSDSjSDSi
-
参数t依赖于数据库,可以通过对训练数据集进行交叉验证来确定。函数δ(x)可以选择为一些递减函数。通过测试不同的函数,如反比例函数、指数函数和常函数等,我们发现常函数最好。
-
所以采用常函数δ(x)=1来构建SDS特征。
-
尺度比例和方向直方图(SOH)特征提取:使用SIFT将笔迹图像分解为X个octave和每个octave中有Y个层级。即Z=XxY个尺度。设S={s1,s2,…,sn}代表n个SIFT关键点的尺度,1≤si≤Z,O={o1,o2,…,on}代表这些SIFT关键点的方向。
-
给定一个角度步长ϕ,方向[0,360]可以被量化为Obin=[360/ϕ]个间隔。则SOH特征提取过程如下
- 初始化大小为M=ZxObin的SOH特征向量SOH=(0,0,...,0)
- 比对每个关键点的尺度比例和方向,si∈S,oi∈O,在SOH特征向量中计算其索引idx:
bin idx=⌈oi/ϕ⌉= Obin ×(si−1)+ bin
SOHidx=SOHidx+1
SOHi=∑j=1MSOHjSOHi
-
通过大量实验,将参数X和Y设置为6和3,角度依赖于数据库,并且可以通过训练数据集上的交叉验证来确定。
-
图4显示了十个正对和负对之间SDS和SOH各成分的平均绝对差异。根据该图,对于SDS和SOH不同书写人之间的差异远大于相同书写人,这意味着SDS和SOHSOH对不同的书写人有很强的辨别力。

- SOH序号越大,差异越小。序号越大。尺度和比例越大,图像就越模糊
3.5特征匹配和融合
- I1和I2表示两个笔迹图像,u=(u1,u2,…,uN)和v=(v1,v2,…,vN)分别代表他们的SDSs,x=(x1,x2,…,xM) 和y=(y1,y2,…,yM)分别代表他们的SOHs。
- 采用曼哈顿距离来测量两个样本的SDSs的u和v:
D1(u,v)=i=1∑N∣ui−vi∣
- SOHs中索引大的组件的值的差异比索引小的组件的值小的多。如果我们仍然使用曼哈顿距离来衡量SOH之间的差异,那么大索引的差异将小于小索引的组件。所以采用卡方距离赋予小值分量更多的权重来提高他们的重要性:
D2(x,y)=j=1∑M(xj+yj)(xj−yj)2
- 将两个D归一化到[0,1]区间上,融合这两个距离形成新的距离,以比较两张图像之间的差异:
D(I1,I2)=w×D1(u,v)+(1−w)×D2(x,y)
- 0≤w≤1是一个权重,是依赖于数据库的,可以通过交叉验证来确定。
温馨提示: 遵纪守法, 友善评论!