14年SIFT论文(二)


14年SIFT论文(二)

3.方法

3.2SIFT(Scale Invariant Feature Transform)尺度不变特征变换特征提取
  • 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}SD=\{d_1,d_2,...,d_n\}代表第n个SIFT描述子SDs,他们是从离线笔迹图像II中提取的,C={c1,c2,...,cN}C=\{c_1,c_2,...,c_N\}代表大小为N的SD码本。则,SDS特征提取过程如下:

    • 初始化大小为N的SDS特征向量SDS=(0,0,...,0)SDS=(0,0,...,0)
    • 对于每个diSDd_i \in SD,它和每个码本中的元素cjCc_j \in C之间的欧氏距离,如下所示:

    EDij=k=1L(dikcjk)2E D_{i j}=\sqrt{\sum_{k=1}^{L}\left(d_{i k}-c_{j k}\right)^{2}}

    • L=128是描述子的大小。并且did_i的欧式距离向量EDV如下所示:

    EDV=(EDi1,EDi2,,EDiN)E D V=\left(E D_{i 1}, E D_{i 2}, \ldots, E D_{i N}\right)

    • 按升序对EDV的元素进行排序,并获得EDV中前t个元素:

    IDX={idx1,idx2,,idxt}I D X=\left\{i d x_{1}, i d x_{2}, \ldots, i d x_{t}\right\}

    • 对于每个idxIDXidx \in IDX,更新SDS特征向量:

    SDSidx=SDSidx+δ(EDVidx)S D S_{i d x}=S D S_{i d x}+\delta\left(E D V_{i d x}\right)

    • 其中δ(x)\delta(x)是一个非递增函数
    • 重复步骤2~4,直到处理完所有的SDs。
    • 最终计算SDS向量:

    SDSi=SDSij=1NSDSjS D S_{i}=\frac{S D S_{i}}{\sum_{j=1}^{N} S D S_{j}}

  • 参数t依赖于数据库,可以通过对训练数据集进行交叉验证来确定。函数δ(x)\delta(x)可以选择为一些递减函数。通过测试不同的函数,如反比例函数、指数函数和常函数等,我们发现常函数最好。

  • 所以采用常函数δ(x)=1\delta(x)=1来构建SDS特征。

  • 尺度比例和方向直方图(SOH)特征提取:使用SIFT将笔迹图像分解为X个octave和每个octave中有Y个层级。即Z=XxY个尺度。设S={s1,s2,,sn}S=\{s_1,s_2,\ldots,s_n\}代表n个SIFT关键点的尺度,1siZ1 \leq s_{i} \leq ZO={o1,o2,,on}O=\{o_1,o_2,\ldots,o_n\}代表这些SIFT关键点的方向。

  • 给定一个角度步长ϕ\phi,方向[0,360][0,360]可以被量化为Obin=[360/ϕ]Obin=[360/ \phi ]个间隔。则SOH特征提取过程如下

    • 初始化大小为M=ZxObin的SOH特征向量SOH=(0,0,...,0)SOH=(0,0,...,0)
    • 比对每个关键点的尺度比例和方向,siS,oiOs_i\in S,o_i \in O,在SOH特征向量中计算其索引idx:

     bin =oi/ϕidx= Obin ×(si1)+ bin \begin{aligned} \text { bin } &=\left\lceil o_{i} / \phi\right\rceil \\ i d x &=\text { Obin } \times\left(s_{i}-1\right)+\text { bin } \end{aligned}

    • 更新SOH特征向量:

    SOHidx=SOHidx+1S O H_{i d x}=S O H_{i d x}+1

    • 重复步骤2和3
    • 计算最终的SOH特征向量:

    SOHi=SOHij=1MSOHjS O H_{i}=\frac{S O H_{i}}{\sum_{j=1}^{M} S O H_{j}}

  • 通过大量实验,将参数X和Y设置为6和3,角度依赖于数据库,并且可以通过训练数据集上的交叉验证来确定。

  • 图4显示了十个正对和负对之间SDS和SOH各成分的平均绝对差异。根据该图,对于SDS和SOH不同书写人之间的差异远大于相同书写人,这意味着SDS和SOHSOH对不同的书写人有很强的辨别力。

  • SOH序号越大,差异越小。序号越大。尺度和比例越大,图像就越模糊
3.5特征匹配和融合
  • I1I_1I2I_2表示两个笔迹图像,u=(u1,u2,,uN)u=(u_1,u_2,\ldots,u_N)v=(v1,v2,,vN)v=(v_1,v_2,\ldots,v_N)分别代表他们的SDSs,x=(x1,x2,,xM)x=\left(x_{1}, x_{2}, \ldots, x_{M}\right)y=(y1,y2,,yM)y=\left(y_{1}, y_{2}, \ldots, y_{M}\right)分别代表他们的SOHs。
  • 采用曼哈顿距离来测量两个样本的SDSs的u和v:

D1(u,v)=i=1NuiviD_{1}(u, v)=\sum_{i=1}^{N}\left|u_{i}-v_{i}\right|

  • SOHs中索引大的组件的值的差异比索引小的组件的值小的多。如果我们仍然使用曼哈顿距离来衡量SOH之间的差异,那么大索引的差异将小于小索引的组件。所以采用卡方距离赋予小值分量更多的权重来提高他们的重要性:

D2(x,y)=j=1M(xjyj)2(xj+yj)D_{2}(x, y)=\sum_{j=1}^{M} \frac{\left(x_{j}-y_{j}\right)^{2}}{\left(x_{j}+y_{j}\right)}

  • 将两个D归一化到[0,1][0,1]区间上,融合这两个距离形成新的距离,以比较两张图像之间的差异:

D(I1,I2)=w×D1(u,v)+(1w)×D2(x,y)D\left(I_{1}, I_{2}\right)=w \times D_{1}(u, v)+(1-w) \times D_{2}(x, y)

  • 0w10 \leq w \leq 1是一个权重,是依赖于数据库的,可以通过交叉验证来确定。

文章作者: 小冷同学
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 小冷同学 !
用户交流区

温馨提示: 遵纪守法, 友善评论!