多字体多字号印刷体藏文字符识别方法
多字体多字号印刷体藏文字符识别方法,其特征在于,提出了针对属于非方块字的印刷体藏文字符特点的归一化方案:将字符图像以基线,即上平线,为分界点分解成互不交叠的两个子图像,对每个子图像分别采用以重心和边框相结合的位置归一化和基于三次B样条函数插值的大小归一化方法;提取能充分反映藏文字符组成信息的四方向线素特征,利用线性鉴别分析LDA压缩降维后得到紧凑的字符特征向量;采用基于置信度分析的粗、细两级分类策略进行字符类别的判决,粗、细分类器分别采用带偏差的欧氏距离EDD和修正的二次鉴别函数MQDF;在由图像采集设备和计算机组成的系统中,它依次含有以下步骤: (1)设定: (1.1)本发明处理的藏文字符类别总数c=592; (1.2)归一化后字符宽度M、高度N; 位置归一化参数β; (1.3)提取方向线素特征时,划分的子区域宽度M↓[0]、高度N↓[0]; 子区域中各方块的特征向量对整个子区域特征向量的加权系数α↓[A],α↓[B],α↓[C],α↓[D]; (1.4)粗分类器EDD中的参数C,θ↓[k],γ↓[k],其中k=1,2,…,592; (1.5)置信度阈值Conf↓[TH]; (2)字符样本的采集 通过扫描仪向计算机输入印有多字体多字号藏文字符的文本,利用已有方法进行除噪声、二值化等必要预处理后,将藏文文本进行切分以分离单个字符,对每个字符的图像标定其对应的正确的字符的内码,由此完成用以训练和测试的藏文字符单字样本的采集,建立训练样本数据库; (3)归一化处理,包含字符位置和大小的归一化 (3.1)定位单个藏文字符的基线位置 设原始字符图像为[F(i,j)]↓[W×H], 其中W为图像宽度,H为图像高度,图像位于第i行第j列的象素点的值为F(i,j),i=1,2,…,H,j=1,2,…,W, 计算字符图像的水平投影V(i),i=1,2,…,H为: V(i)=*F(i,j), 则基线所在位置的纵坐标值P↓[I]为: P↓[I]=argm*x(V(i)-V(i-l)),i=2,3,…,H; (3.2)以基线为分界点将输入图像分离成两个子图像 [F(i,j)]↓[W×H]可以看作两个子图像[F↓[1](i,j)]↓[W×H↓[1]]、[F↓[2](i,j)]↓[W×H↓[2]]的纵向拼接, 其中[F↓[1](i,j)]↓[W×H↓[1]]为基线以上部分,即上元音部分;[F↓[2](i,j)]↓[W×H↓[2]]为基线以下部分,两者没有交叠而是纵向组合在一起合成[F(i,j)]↓[W×H],且H↓[1]+H↓[2]=H,由P↓[I]和字符顶部的纵坐标的差值可确定出H↓[1]的大小; 对应的,归一化后的目标字符图像[G(i,j)]↓[M×N]也可以看作两个子图像[G↓[1](i,j)]↓[M×N↓[1]]、[G↓[2](i,j)]↓[M×N↓[2]]的纵向拼接, 其中M为目标图像的宽度,N为图像高度;[G↓[1](i,j)]↓[M×N↓[1]]为基线以上部分图像,即上元音部分;[G↓[2](i,j)]↓[M×N↓[2]]为基线以下部分;两者也没有交叠而是纵向组合成[G(i,j)]↓[M×N],且设定N↓[1]=N/4,N↓[2]=3N/4; (3.3)位置归一化参考点U↓[k](u↓[Ik],u↓[Jk]),k=1,2的选择 [F↓[k](i,j)]↓[W×H↓[k]],k=1,2重心和外边框中心分别为A↓[k](a↓[Ik],a↓[Jk]),k=1,2和B↓[k](b↓[Ik],b↓[Jk]),k=1,2 其中 *** 则U↓[k](u↓[Ik],u↓[Jk]),k=1,2取介于A↓[k](a↓[Ik],a↓[Jk]),k=1,2与B↓[k](b↓[Ik],b↓[Jk]),k=1,2之间的一点,即: *** 其中β为常数且0≤β≤1; 移动输入图像点阵,使该参考点,位于目标点阵[G↓[k](i,j)]↓[M×N↓[k]],k=1,2的几何中心,从而完成输入字符的位置归一化; (3.4)大小归一化 因[F↓[k](i,j)]↓[W×H↓[k]],k=1,2与[G↓[k](i,j)]↓[M×N↓[k]],k=1,2之间的关系为: G↓[k](i,j)=F↓[k](i/r↓[i],j/r↓[j]),k=1,2, 其中r↓[i]和r↓[j]分别为i和j方向的尺度变换因子:r↓[i]=N↓[k]/H↓[k],r↓[j]=M/W;采用三次B样条函数进行插值运算; 对于给定(i,j),令: *** 其中:***,[·]为取整函数; 插值过程可表示为: G↓[k](i,j)=F↓[k](p↓[0]+Δ↓[p],q↓[0]+Δ↓[q])=*F↓[k](p↓[0]+m,q↓[0]+l)R↓[B](m-Δ↓[p])R↓[B](-(l-Δ↓[q])), 式中的R↓[B](z)为三次B样条函数: R↓[B](z)=1/6[(z+2)↑[3]W(z+2)-4(z+1)↑[3]W(z+1)+6z↑[3]W(z)-4(z-1)↑[3]W(z-1)], 其中W(z)为阶跃函数,***; (4)提取藏文字符的四方向线素特征 (4.1)字符轮廓提取 扫描整个字符点阵,对于某个位置的黑象素,若它的8邻域中的黑象素和背景象素的个数均大于0,则保留该黑象素,否则,将该黑象素设为背景象素;这样,得到归一化后的字符图像[G(i,j)]↓[M×N]的轮廓图像[G′(i,j)]↓[M×N]; (4.2)方向线素特征的形成 首先,对于字符轮廓点阵[G′(i,j)]↓[M×N]中的每一个黑象素(i,j),根据它与相邻的另外两个黑象素的之间的位置关系,赋予它横、竖、撇、捺四种线素,并记为一个4维向量X(i,j)=(x↓[v],x↓[k],x↓[p],x↓[o])↑[T]; 将整个大小为M×N的字符轮廓图像[G′(i,j)]↓[M×N]均匀划分为(2M/M↓[0]-1)×(2N/N↓[0]-1)个宽度为M↓[0]、高度为N↓[0]的子区域,每个子区域又进一步划分成互相嵌套的、大小依次为(M↓[0]/4)×(N↓[0]/4)、(M↓[0]/2)×(N↓[0]/2)、(3M↓[0]/4)×(3N↓[0]/4)和M↓[0]×N↓[0]的A、B、C、D等4个小方块;每个上小方块的特征向量X↓[A]=(x↓[v],x↓[k],x↓[p],x↓[o])↑[T]、X↓[B]=(x↓[v],x↓[k],x↓[p],x↓[o])↑[T]、X↓[C]=(x↓[v],x↓[k],x↓[p],x↓[o])↑[T]、X↓[D]=(x↓[v],x↓[k],x↓[p],x↓[o])↑[T]表示为该方块内所有黑象素特征向量的和: X↓[A]=*X(i,j), X↓[B]=*X(i,j), X↓[C]=*X(i,j), X↓[D]=*X(i,j), 整个子区域的方向线素特征向量X↓[S]=(x↓[v],x↓[k],x↓[p],x↓[o])↑[T]由该子区域中各方块特征向量的加权和来表示: X↓[S]=α↓[A]X↓[A]+α↓[B]X↓[B]+α↓[C]X↓[C]+α↓[D]X↓[D], 其中α↓[A],α↓[B],α↓[C],α↓[D]为介于0和1之间的常数;这样,从每个子区域都可以得到一个4维特征向量后,将所有子区域的特征向量按顺序排列在一起组成的表示输入字符的4(2M/M↓[0]-1)×(2N/N↓[0]-1)维原始方向线素特征向量; (5)特征变换 设藏文字符类别数为c,第ω类字符的训练样本数为O↓[ω],ω=1,2,…,c,则对该字符类别的训练样本采用上述方法提取四方向线素特征后,得到特征向量集合为{X↓[1]↑[ω],X↓[2]↑[ω],…,X↓[O↓[ω]]↑[ω]},其中X↓[k]↑[ω](k=1,2,…,O↓[ω])是4(2M/M↓[0]-1)×(2N/N↓[0]-1)维向量; 利用LDA变换对原始特征压缩如下: 首先计算每个字符类ω(1≤ω≤c)特征向量的中心μ↓[ω]、所有字符类的特征向量的中心μ、类间散度矩阵S↓[b]和平均类内散度矩阵S↓[w]: *** S↓[b]=*(μ↓[ω]-μ)(μ↓[ω]-μ)↑[T], S↓[w]=*(X↓[k]↑[ω]-μ↓[ω])(X↓[k]↑[ω]-μ↓[ω])↑[T], 寻找变换矩阵Φ,使得tr[(Φ↑[T]S↓[w]Φ)↑[-1](Φ↑[T]S↓[b]Φ)]达到最大,则LDA相应的特征变换为Y=Φ↑[T]X,这里Y是最具判别性的d维特征; (6)对输入字符所属类别的判断,即对未知类别的字符图像,提取特征,与识别库中已有的数据进行比较,以确定其正确的字符代码; (6.1)设计分类器 对由LDA压缩得到的特征向量Y,计算各字符的均值向量*(ω=1,2,…,c)和各字符的特征向量在每一维上的方差σ↓[s]↑[ω](ω=1,2,…,c,s=1,2,…,d),d为Y的维数, *** 其中每个藏文字符类别ω(1≤ω≤c)的特征集合为{Y↓[1]↑[ω],Y↓[2]↑[ω],…,Y↓[O↓[ω]]↑[ω]},将各字符的鉴别特征均值向量和各维的方差存入鉴别特征数据库文件中,同时将通过实验得到的分类器的参数存入库文件中; (6.2)分类判决 对未知类别的输入字符图像,首先进行位置归一化和大小归一化处理,再提取四方向线素特征X,利用LDA线性变换矩阵Φ将原始方向线素特征X变换成Y=Φ↑[T]X=(y↓[1],y↓[2],…,y↓[d])↑[T],d是变换后特征的维数; 从库文件中读取所有字符类的均值向量***,(ω=1,2,…,c)和各字符类的各维的方差σ↓[s]↑[ω](ω=1,2,…,c,s=1,2,…,d),计算Y到*的带偏差的欧氏距离D(Y,*): *** 其中 *** 将所有经过计算的D(Y,*),ω=1,2,…,c按照由小到大的顺序重新排序,选出前L(1≤L≤c)个距离及其所代表的字符类别码e↓[k],k=1,2,…,L组成粗分类候选集CanSet={(e↓[1],D↓[1]),(e↓[2],D↓[2])…,(e↓[L],D↓[L])},D↓[1]≤D↓[2]≤…≤D↓[L]; 计算CanSet中首字符的识别置信度Conf(CanSet) Conf(CanSet)=D↓[2]-D↓[1]/D↓[1], 若Conf(CanSet)高于一定的阈值Conf↓[TH],直接将(e↓[1],D↓[1])作为输入字符的识别结果输出,即认为输入字符属于e↓[1]所对应的字符类别,且识别距离是D↓[1];否则,计算Y到CanSet中各内码所对应的字符类别的MQDF鉴别距离Q(Y,*),ω=1,2,…,L: *** 若***,则该输入字符属于e↓[τ]所对应的字符类别,即***。清华大学