发明名称 基于Gabor滤波器组的字符识别技术
摘要 基于Gabor滤波器组的字符识别方法属于字符图像识别技术领域,其特征在于:在训练系统中依次含有以下步骤:用Gabor滤波器组抽取字符图像中各个方向的笔画,用平均熵相关系数求最优的滤波器参数;对Gabor滤波器组的输出结果作非线性后处理,以进一步增加识别系统对图像亮度、对比度变化以及图像干扰的抵抗能力;对Gabor滤波器组的输出中的正值和负值分别用高斯滤波器阵列计算识别特征,并合成为一个高维的特征矢量;用线性鉴别分析法降低特征矢量的维数,以增强识别性能,降低分类器的复杂度和计算量。该方法与具体的语种无关,成功的解决了低质量图像中的字符识别问题,对于印刷体和脱机手写汉字获得了目前最高的识别率。对身份证的总体识别率到达了90%以上,已经符合实用的要求。
申请公布号 CN1459761A 申请公布日期 2003.12.03
申请号 CN02117865.8 申请日期 2002.05.24
申请人 清华大学 发明人 丁晓青;王学文;刘长松;彭良瑞
分类号 G06K9/46;G06T7/40 主分类号 G06K9/46
代理机构 代理人
主权项 1.基于Gabor滤波器组的字符识别方法,包含训练阶段和识别阶段,这两个阶段包含相同的预处理、特征抽取步骤;预处理步骤的输入分别为计算机经图像获取设备得到的、字符类别数相同的训练样本和待识别字符图象序列;在训练系统中,抽取识别特征后,还存在分类器训练步骤,训练得到识别库;识别阶段应用这个识别库识别待识字符序列;其特征在于:训练阶段的特征抽取方法依次包含Gabor滤波器参数优化、非线性自适应变换、分块特征抽取和特征压缩的步骤,其程序流程依次如下:(1)预处理后得到的单个字符的统一大小的二值或者灰度图像用二维矩阵[A(i,j)]N×N来表示,其中位于第i行第j列的象素点的值为A(i,j);用K个二维Gabor滤波器组成的Gabor滤波器组抽取出字符图像[A(i,j)]N×N中K个不同方向的笔画信息,通过下述流程优化Gabor滤波器组的参数:(1.1)统计字符图象中笔画方向和宽度笔画方向集中分布在{θm}1≤m≤K这K个方向上(如汉字的笔画方向集中分布在0度、45度、90度和135度附近),笔画中段处垂直于笔画方向上的平均宽度记为笔画平均宽度W(如汉字图象为64象素点×64象素点时,其平均笔画宽度为5个象素点),笔画方向和笔画平均宽度通过统计获得;(1.2)使N×N的二维矩阵[A(i,j)]N×N经Gabor滤波器组处理后,变成K个M×M的二维矩阵{[Gm(i,j)]N×N}(1≤m≤K),其中M=N/D,D为Gabor滤波器组在空间上的抽样间隔;(1.3)确定Gabor滤波器组的初始参数二维Gabor滤波器的冲激响应函数一般为:<math> <mrow> <mi>h</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>,</mo> <mi>y</mi> <mo>;</mo> <mi>&lambda;</mi> <mo>,</mo> <mi>&phi;</mi> <mo>,</mo> <msub> <mi>&sigma;</mi> <mi>x</mi> </msub> <mo>,</mo> <msub> <mi>&sigma;</mi> <mi>y</mi> </msub> <mo>)</mo> </mrow> <mo>=</mo> <mi>exp</mi> <mo>{</mo> <mo>-</mo> <mfrac> <mn>1</mn> <mn>2</mn> </mfrac> <mo>&lsqb;</mo> <mfrac> <msubsup> <mi>R</mi> <mn>1</mn> <mn>2</mn> </msubsup> <msubsup> <mi>&sigma;</mi> <mi>x</mi> <mn>2</mn> </msubsup> </mfrac> <mo>+</mo> <mfrac> <msubsup> <mi>R</mi> <mn>2</mn> <mn>2</mn> </msubsup> <msubsup> <mi>&sigma;</mi> <mi>y</mi> <mn>2</mn> </msubsup> </mfrac> <mo>&rsqb;</mo> <mo>}</mo> <mo>&CenterDot;</mo> <mi>exp</mi> <mo>&lsqb;</mo> <mi>i</mi> <mo>&CenterDot;</mo> <mfrac> <mrow> <mn>2</mn> <mi>&pi;</mi> <msub> <mi>R</mi> <mn>1</mn> </msub> </mrow> <mi>&lambda;</mi> </mfrac> <mo>&rsqb;</mo> <mo>,</mo> </mrow> </math>其中R1=x·cosφ+y·sinφ,,R2=-x·sinφ+y·cosφσx、σy为中心位于空域抽样点处的二维高斯函数的方差;1/λ为二维调制谐波函数的空间频率,φ为其方向;Gabor滤波器组中各冲激响应函数hm(x,y)的参数为{λm,φm,σxm,σym,D}(1≤m≤K);[Gm(i,j)]M×M可以通过卷积计算得到:hm(x,y)的空间范围为-C≤x≤C,-C≤y≤C;再设定字符图像中方向相同的笔画之间的最小间隔S取S≈W,可以确定Gabor滤波器组的初始参数为:λm=2W,φm=θm-90°,σxm=σym=σ,a≤σ≤b,<math> <mrow> <mi>D</mi> <mo>&le;</mo> <mi>&sigma;</mi> <mo>/</mo> <msqrt> <mn>2</mn> </msqrt> </mrow> </math>(1≤m≤K)其中<math> <mrow> <mi>a</mi> <mo>=</mo> <mfrac> <mi>&lambda;</mi> <mrow> <mn>4</mn> <msqrt> <mn>2</mn> </msqrt> <mo>&CenterDot;</mo> <mi>&pi;</mi> <mo>&CenterDot;</mo> <mi>sin</mi> <mrow> <mo>(</mo> <mi>&pi;</mi> <mo>/</mo> <mrow> <mo>(</mo> <mn>2</mn> <mi>K</mi> <mo>)</mo> </mrow> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>,</mo> <mi>b</mi> <mo>=</mo> <msqrt> <mn>2</mn> </msqrt> <mi>W</mi> <mo>;</mo> </mrow> </math> (1.4)用平均的熵相关系数优化Gabor滤波器组的参数σ、D以尽量减少{[Gm(i,j)]M×M}(1≤m≤K)之间的相似度:对于字符图像[A(i,j)]M×M经过Gabor滤波器组后的结果{[Gm(i,j)]M×M}(1≤m≤K),先均匀量化为取值为0~255的整数的二维矩阵{[G*m(i,j)]M×M}(1≤m≤K),即K个表示不同方向笔画信息的图像:<math> <mrow> <msubsup> <mi>G</mi> <mi>m</mi> <mo>*</mo> </msubsup> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mi>j</mi> <mo>)</mo> </mrow> <mo>=</mo> <mo>&lsqb;</mo> <mo>&lsqb;</mo> <msub> <mi>G</mi> <mi>m</mi> </msub> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mi>j</mi> <mo>)</mo> </mrow> <mo>-</mo> <msub> <mi>MIN</mi> <mi>m</mi> </msub> <mo>&rsqb;</mo> <mfrac> <mn>255</mn> <mrow> <mo>(</mo> <msub> <mi>MAX</mi> <mi>m</mi> </msub> <mo>-</mo> <msub> <mi>MIN</mi> <mi>m</mi> </msub> <mo>)</mo> </mrow> </mfrac> <mo>+</mo> <mn>0.5</mn> <mo>&rsqb;</mo> <mo>,</mo> <mo>&ForAll;</mo> <mi>i</mi> <mo>,</mo> <mi>j</mi> <mo>,</mo> <mn>1</mn> <mo>&le;</mo> <mi>m</mi> <mo>&le;</mo> <mi>k</mi> <mo>,</mo> </mrow> </math> 其中<math> <mrow> <msub> <mi>MAX</mi> <mi>m</mi> </msub> <mo>=</mo> <munder> <mi>max</mi> <mrow> <mo>&ForAll;</mo> <mi>i</mi> <mo>,</mo> <mi>j</mi> </mrow> </munder> <mrow> <mo>(</mo> <msub> <mi>G</mi> <mi>m</mi> </msub> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mi>j</mi> <mo>)</mo> </mrow> <mo>)</mo> </mrow> <mo>,</mo> <msub> <mi>MIN</mi> <mi>m</mi> </msub> <mo>=</mo> <munder> <mi>min</mi> <mrow> <mo>&ForAll;</mo> <mi>i</mi> <mo>,</mo> <mi>j</mi> </mrow> </munder> <mrow> <mo>(</mo> <msub> <mi>G</mi> <mi>m</mi> </msub> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mi>j</mi> <mo>)</mo> </mrow> <mo>)</mo> </mrow> <mo>;</mo> </mrow> </math> {[G*m(i,j)]M×M}(1≤m≤K)中任意二个矩阵之间的熵相关系数为:<math> <mrow> <mi>H</mi> <mrow> <mo>(</mo> <msubsup> <mi>G</mi> <mrow> <mi>m</mi> <mn>1</mn> </mrow> <mo>*</mo> </msubsup> <mo>)</mo> </mrow> <mo>=</mo> <mo>-</mo> <munderover> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>0</mn> </mrow> <mn>255</mn> </munderover> <mfrac> <mrow> <msub> <mi>Hist</mi> <mrow> <mi>m</mi> <mn>1</mn> </mrow> </msub> <mrow> <mo>(</mo> <mi>i</mi> <mo>)</mo> </mrow> </mrow> <mi>PN</mi> </mfrac> <mi>log</mi> <mfrac> <mrow> <msub> <mi>Hist</mi> <mrow> <mi>m</mi> <mn>1</mn> </mrow> </msub> <mrow> <mo>(</mo> <mi>i</mi> <mo>)</mo> </mrow> </mrow> <mi>PN</mi> </mfrac> </mrow> </math>为G为Gm1*的熵,<math> <mrow> <mi>H</mi> <mrow> <mo>(</mo> <msubsup> <mi>G</mi> <mrow> <mi>m</mi> <mn>2</mn> </mrow> <mo>*</mo> </msubsup> <mo>)</mo> </mrow> <mo>=</mo> <mo>-</mo> <munderover> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>0</mn> </mrow> <mn>255</mn> </munderover> <mfrac> <mrow> <mi>His</mi> <msub> <mi>t</mi> <mrow> <mi>m</mi> <mn>2</mn> </mrow> </msub> <mrow> <mo>(</mo> <mi>i</mi> <mo>)</mo> </mrow> </mrow> <mi>PN</mi> </mfrac> <mi>log</mi> <mfrac> <mrow> <msub> <mi>Hist</mi> <mrow> <mi>m</mi> <mn>2</mn> </mrow> </msub> <mrow> <mo>(</mo> <mi>i</mi> <mo>)</mo> </mrow> </mrow> <mi>PN</mi> </mfrac> </mrow> </math>为G为Gm2*的熵,Histm1(i)和Histm2(i)分别为图像Gm1*和Gm2*的亮度直方图分布(0≤i≤255);PN=M×M;计算图像Gm1*和Gm2*的联合熵H(Gm1*,Gm2*),则要先统计Gm1*和Gm2*的联合直方图分布Hist(m1,m2)(i,j),即在Gm1*和Gm2*的相同的位置上,亮度值分别为i,j的象素点总数,再计算:<math> <mrow> <mi>H</mi> <mrow> <mo>(</mo> <msubsup> <mi>G</mi> <mrow> <mi>m</mi> <mn>1</mn> </mrow> <mo>*</mo> </msubsup> <mo>,</mo> <msubsup> <mi>G</mi> <mrow> <mi>m</mi> <mn>2</mn> </mrow> <mo>*</mo> </msubsup> <mo>)</mo> </mrow> <mo>=</mo> <mo>-</mo> <munderover> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>0</mn> </mrow> <mn>255</mn> </munderover> <munderover> <mi>&Sigma;</mi> <mrow> <mi>j</mi> <mo>=</mo> <mn>0</mn> </mrow> <mn>255</mn> </munderover> <mfrac> <mrow> <msub> <mi>Hist</mi> <mrow> <mo>(</mo> <mi>m</mi> <mn>1</mn> <mo>,</mo> <mi>m</mi> <mn>2</mn> <mo>)</mo> </mrow> </msub> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mi>j</mi> <mo>)</mo> </mrow> </mrow> <mi>PN</mi> </mfrac> <mi>log</mi> <mfrac> <mrow> <msub> <mi>Hist</mi> <mrow> <mo>(</mo> <mi>m</mi> <mn>1</mn> <mo>,</mo> <mi>m</mi> <mn>2</mn> <mo>)</mo> </mrow> </msub> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mi>j</mi> <mo>)</mo> </mrow> </mrow> <mi>PN</mi> </mfrac> <mo>;</mo> </mrow> </math> 一个字符的平均的熵相关系数是指同一个字符图像经过Gabor滤波器组处理后,对任意的两个Gabor滤波器的输出G*i、G*j,求它们之间的匹配相似度,然后对这些匹配相似度求和平均,它可表达为:在优化Gabor滤波器组的参数σ、D时,先从训练样本中挑选出一些有代表性的字符图像,总数为SNUM;在经过预处理后,确定笔画的平均宽度和方向分布;确定初始的Gabor滤波器组参数,确定σ的取值范围,设定步长Δ=(b-a)/20;以步长Δ在[a,b]区间内取一系列的σi(i=1,2,3…20),计算在取值σi下,各个字符的(j=1,2,…SNUM)之和;再用总和SNUM进行平均,得到<math> <mover> <mrow> <mi>AVE</mi> <mo>_</mo> <mi>ECC</mi> <mrow> <mo>(</mo> <msub> <mi>&sigma;</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> </mrow> <mo>&OverBar;</mo> </mover> </math>;如此计算<math> <mrow> <mover> <mrow> <mi>AVE</mi> <mo>_</mo> <mi>ECC</mi> <mrow> <mo>(</mo> <msub> <mi>&sigma;</mi> <mn>1</mn> </msub> <mo>)</mo> </mrow> </mrow> <mo>&OverBar;</mo> </mover> <mo>,</mo> </mrow> </math> <math> <mrow> <mover> <mrow> <mi>AVE</mi> <mo>_</mo> <mi>ECC</mi> <mrow> <mo>(</mo> <msub> <mi>&sigma;</mi> <mn>2</mn> </msub> <mo>)</mo> </mrow> </mrow> <mo>&OverBar;</mo> </mover> <mo>&CenterDot;</mo> <mo>&CenterDot;</mo> <mo>&CenterDot;</mo> <mover> <mrow> <mi>AVE</mi> <mo>_</mo> <mi>ECC</mi> <mrow> <mo>(</mo> <msub> <mi>&sigma;</mi> <mn>20</mn> </msub> <mo>)</mo> </mrow> </mrow> <mo>&OverBar;</mo> </mover> <mo>,</mo> </mrow> </math>取使<math> <mover> <mrow> <mi>AVE</mi> <mo>_</mo> <mi>ECC</mi> <mrow> <mo>(</mo> <msub> <mi>&sigma;</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> </mrow> <mo>&OverBar;</mo> </mover> </math>最小的σi为最优的σ*,相应得到<math> <mrow> <msup> <mi>D</mi> <mo>*</mo> </msup> <mo>=</mo> <msup> <mi>&sigma;</mi> <mo>*</mo> </msup> <mo>/</mo> <msqrt> <mn>2</mn> </msqrt> <mo>;</mo> </mrow> </math> (2)对Gabor滤波器组的输出进行旨在克服亮度变化和干扰影响的非线性自适应变换,其步骤依次如下:(2.1)对矩阵Gm(i,j)进行简单归一化,得到G’m(i,j):G′m(i,j)=Gm(i,j)/MAXm,这里取MAXm=max(|Gm(i,j)|);(2.2)应用修正的Sigmoid函数进行自适应处理:(2.2.1)先把Sigmoid函数_(t)平移得到其修正形式:设_(t)=tanh(αt)=(e2αt-1)/(e2αt+1),平移后为Ψm(t)=tanh(αm(t-χm))+βm,1≤m≤K;设<math> <mrow> <mfrac> <msub> <mi>d&psi;</mi> <mi>m</mi> </msub> <mi>dt</mi> </mfrac> <msub> <mo>|</mo> <mrow> <mi>t</mi> <mo>=</mo> <msub> <mi>v</mi> <mi>m</mi> </msub> </mrow> </msub> <mo>=</mo> <mn>1</mn> <mo>,</mo> <msub> <mi>v</mi> <mi>m</mi> </msub> <mo>&lt;</mo> <msub> <mi>&chi;</mi> <mi>m</mi> </msub> <mo>,</mo> </mrow> </math>且ψm(0)=0,1≤m≤K;当0≤t<νm时,ψ′m(t)<1,对小输入有抑制特性;当t>χm+(χm-νm)时,ψ′m(t)<1,对大输入有强饱和性;t为归一化后的输入,其取值为[0,1];(2.2.2)再把修正的Sigmoid函数变成奇对称函数,使其也能对矩阵G’m的负值进行处理:(2.2.3)对矩阵G’m进行非线性自适应处理,得到K个二维矩阵[Fm(i,j)]M×M(1≤m≤K):(2.2.4)确定ΨM(t)的参数:设定0.1<χM<0.5,2<αm<10,再根据识别系统的识别性能调整χm、αm,用ψm(0)=0来确定βm;(3)分别在{[Fm(i,j)]M×M}(1≤m≤K)上抽取分块特征:(3.1)把每个二维矩阵[Fm(i,j)]M×M分割为P×P个互相交叠且边长均为L的矩形区域;(3.2)分别在每个矩形区域r(x,y)的中心计算这个区域中正值和负值的加权和:顺序对每个矩形区域进行高斯加权求和,从二维矩阵[Fm(i,j)]M×M中抽取得到均为P2维的特征矢量S+m和S-m:其中G(x,y)=exp{-(x2+y2)/2}/(2π)为高斯加权函数;(3.3)把每个二维矩阵[Fm(i,j)]M×M中得到的特征矢量合并成一个维数为2□K□P2的特征矢量,即初始的识别特征矢量V:<math> <mrow> <mi>V</mi> <mo>=</mo> <mo>&lsqb;</mo> <msubsup> <mi>S</mi> <mn>1</mn> <mo>+</mo> </msubsup> <msubsup> <mi>S</mi> <mn>1</mn> <mo>-</mo> </msubsup> <msubsup> <mi>S</mi> <mn>2</mn> <mo>+</mo> </msubsup> <msubsup> <mi>S</mi> <mn>2</mn> <mo>-</mo> </msubsup> <mo>&CenterDot;</mo> <mo>&CenterDot;</mo> <mo>&CenterDot;</mo> <msubsup> <mi>S</mi> <mi>K</mi> <mo>+</mo> </msubsup> <msubsup> <mi>S</mi> <mi>K</mi> <mo>-</mo> </msubsup> <mo>&rsqb;</mo> <mo>;</mo> </mrow> </math> (4)对特征压缩,以改善特征的分布,提高识别性能:(4.1)设定识别系统中待识字符类别数为C,对所有的训练样本图像用上述方法进行特征抽取,得到属于每个字符类i的特征矢量序列{Vi1,Vi2,….ViQi},Qi为字符类i的训练样本的数目;(4.2)计算每个字符类i的类中心μi和所有特征矢量的类中心μ:<math> <mrow> <msub> <mi>&mu;</mi> <mi>i</mi> </msub> <mo>=</mo> <mfrac> <mn>1</mn> <mi>Q</mi> </mfrac> <munderover> <mi>&Sigma;</mi> <mrow> <mi>k</mi> <mo>=</mo> <mn>1</mn> </mrow> <msub> <mi>Q</mi> <mi>i</mi> </msub> </munderover> <msubsup> <mi>V</mi> <mi>k</mi> <mi>c</mi> </msubsup> <mo>,</mo> <mi>&mu;</mi> <mo>=</mo> <mfrac> <mn>1</mn> <mi>C</mi> </mfrac> <munderover> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>C</mi> </munderover> <msub> <mi>&mu;</mi> <mi>i</mi> </msub> <mo>;</mo> </mrow> </math> (4.3)计算类间离散度矩阵矩阵∑b和类内离散度矩阵∑w:<math> <mrow> <msub> <mi>&Sigma;</mi> <mi>b</mi> </msub> <mo>=</mo> <munderover> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>C</mi> </munderover> <mfrac> <mn>1</mn> <mi>C</mi> </mfrac> <mrow> <mo>(</mo> <msub> <mi>&mu;</mi> <mi>i</mi> </msub> <mo>-</mo> <mi>&mu;</mi> <mo>)</mo> </mrow> <msup> <mrow> <mo>(</mo> <msub> <mi>&mu;</mi> <mi>i</mi> </msub> <mo>-</mo> <mi>&mu;</mi> <mo>)</mo> </mrow> <mi>T</mi> </msup> <mo>,</mo> <msub> <mi>&Sigma;</mi> <mi>w</mi> </msub> <mo>=</mo> <munderover> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>C</mi> </munderover> <mfrac> <mn>1</mn> <mi>C</mi> </mfrac> <munderover> <mi>&Sigma;</mi> <mrow> <mi>k</mi> <mo>=</mo> <mn>1</mn> </mrow> <msub> <mi>Q</mi> <mi>i</mi> </msub> </munderover> <mfrac> <mn>1</mn> <msub> <mi>Q</mi> <mi>i</mi> </msub> </mfrac> <mo>&lsqb;</mo> <mrow> <mo>(</mo> <msubsup> <mi>V</mi> <mi>k</mi> <mi>i</mi> </msubsup> <mo>-</mo> <msub> <mi>&mu;</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <msup> <mrow> <mo>(</mo> <msubsup> <mi>V</mi> <mi>k</mi> <mi>i</mi> </msubsup> <mo>-</mo> <msub> <mi>&mu;</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mi>T</mi> </msup> <mo>&rsqb;</mo> <mo>;</mo> </mrow> </math> (4.4)用线性鉴别分析(Linear Discrimination Analysis,简称LDA)方法寻找特定的Φ使得|ΦT∑bΦ|/|ΦT∑wΦ|最大:用矩阵计算工具求矩阵∑-1w∑b的前n个最大的非零本征值,相对应的前n个本征向量即顺序组成Φ的列向量,从而得到压缩后的n维特征矢量Vc=ΦTV。
地址 100084北京市100084-82信箱