印刷蒙古文文本切分方法

文档序号:6573457阅读:443来源:国知局
专利名称:印刷蒙古文文本切分方法
技术领域
印刷蒙古文文本切分方法,属于光学字母识别(OCR)中的字母切分领域。
背景技术
蒙古语属阿尔泰语系蒙古语族,是广泛分布在我国内蒙古、新疆、北京、辽宁、黑龙江、吉林、甘肃、青海等省区的蒙古族使用的主要语言。其书面表现形式——传统蒙古文(现行)是以回鹘字母为基础的拼音文字,在形体、写法变化等方面均有独特之处。作为我国的一种主要少数民族文字,蒙古文文本识别在我国有迫切的现实需求和广泛的应用前景。
蒙古文文本的行序为从左到右,行内文字从上到下竖排,以词为单位纵向书写,词与词之间由空格加以分隔。每个词由若干字母组成,每个字母又由若干字素组成,有的字素由主体部分和点状的附加部分组成,词中的字素从上到下通过基线连接。图1列举了蒙古文的部分字母和字素。图2反映了蒙古文文本的部分特征。
一般的蒙古文文本识别系统如图3所示预处理模块增强输入的文本图像;列切分模块把多列文本区域切分成文字列;词切分模块把一列文字切分成词;基元切分模块把词切分成字母或字素等基本部件;基元识别模块识别切割出来的基元;后处理部分利用词典、语言模型、语言特征等手段,修正识别错误,得到最终文本识别结果。
因为蒙古文文本的字母都在基线处连接,所以蒙古文文本的切分方法和中文、英文等文字的文本切分方法完全不一样,因此设计印刷蒙古文文本切分算法是实现印刷蒙古文文本识别系统的关键。

发明内容
本发明的目的就是要提供一种可靠的多字体多字号印刷蒙古文文本切分的方法。如图4所示本发明先把印刷蒙古文文本图像切分成列,再把文字列切分成词,然后估计文字列各处的基线位置,最后根据基线位置和词轮廓得到所有的字素切点。根据本发明实现的印刷蒙古文文本切分方法,已经应用于一个印刷蒙古文文本识别系统。
本发明的特征在于通过如下措施把输入的印刷蒙古文文本图像正确切分成单个的字素图像。
1列切分列切分的目的是把文本区域切分成连续的文字列。竖直投影是最直接的列切分方法,但是不能处理倾斜文本及列间字母粘连的情况。
为了解决上述问题,本发明提出了如下文字列切分方法(图5)在连通体分类的基础上,选择部分连通体竖直投影,把输入文本图像分割成子区域;然后检测多列子区域,归并连通体,实现多列子区域的文字列切分;最后切割列间粘连的连通体,并根据距离信息把小连通体归入所属文字列。该文字列切分方法不仅能够处理无倾斜的文本,还能够处理倾斜、列间字母存在粘连的文本。
1.1连通体分类令I表示输入的文本图像,H是I的高度,W是I的宽度。I上的连通体C表示为C=C(0,0)C(0,1)...C(0,w-1)C(1,0)C(1,1)...C(1,w-1)............C(h-1,0)C(h-1,1)...C(h-1,w-1)[l,t,r,b].]]>其中C(y,x)=1表示黑像素,C(y,x)=0表示白像素,l、t、r、b、w和h分别表示C的左边界、上边界、右边界、下边界、宽度和高度(图6)。I上所有的连通体BLOCK={CnB|nB=1,2,...,nBlock}。在本发明中,使用附加了上下标的C表示特定的连通体(例如CnB,C(line)等),附加了上下标的l、t、r、b、w和h分别表示特定连通体的左边界、上边界、右边界、下边界、宽度和高度(例如hnB,r(line)等)。
根据高度和宽度信息,可以把所有的连通体分成三类MIDDLE类是一般的蒙古文的词,宽度比较固定;BIG类包括列间粘连的字母,宽度最宽;SMALL类包括字素的附加部分以及标点等,宽度窄且高度矮。
CnB的类别可以由下式确定, 其中w‾=1nBlockΣnB=1nBlockwnB,]]>是所有连通体的平均宽度。
1.2子区域切分为了去除字素附加部分以及行间粘连字母的影响,只保留MIDDLE类连通体竖直投影。投影值为0的位置把文本区域分割成多个子区域。每个子区域包含一条或多条文字列。
1.3多列子区域检测如图7所示,多列子区域一定存在多组竖直交叠、水平不交叠的词,而单列子区域不存在满足上面条件的词组。
因此,在每个子区域内找到所有竖直交叠、水平不交叠的MIDDLE类连通体组CC={(CI,CJ)|YOL(CI,CJ)>0,XOL(CI,CJ)=0,CI∈MIDDLE,CJ∈MIDDLE}。其中,XOL(CI,CJ)=max(min(rI,rJ)-max(lI,lJ,0),表示CI和CJ在水平方向上的交叠长度,YOL(CI,CJ)=max(min(bI,bJ)-max(tI,tJ,0),表示CI和CJ在竖直方向上的交叠长度。
如果‖CC‖>10,就可以判定该子区域是多列子区域。
1.4多列子区域切分因为蒙古文文本从上向下书写,所以按照上边界升序排列多列子区域内部所有的MIDDLE类连通体。按顺序每次取出一个连通体,第n次取出的连通体表示为Cn。Cn和已经取出的所有连通体C1,C2,...,Cn-1比较,找到水平方向上交叠最多的连通体CX,即CX=argmaxCi(XOL(Cn,Ci)),i=1,2,...,n-1.]]>若Cn和CX水平交叠部分足够大,即XOL(CnCX)>w‾/2,]]>Cn和Cx就属于同一文字列,否则Cn属于新文字列。取出所有连通体后,就得到了多列子区域的文字列切分结果。
1.5切分BIG类连通体列间粘连的连通体都需要在跨越文字列处进行切分。如果连通体CB∈BIG跨越了多条文字列,那么在跨越的每条文字列内,在CB附近一定都存在连通体和CB水平交叠。
因此,本发明采用下面的办法切分BIG类连通体对于每个CB∈BIG,在文字列L(nL)内寻找连通体C(nL)(nL=1,2...,nLine),即C(nL)=argminCNB(nL)(|tB+bB-tNB(nL)-bNB(nL)|),CNB(nL)∈NB(nL).]]>其中
NB(nL)={CNB(nL)|CNB(nL)∈L(nL),CNB(nL)∈MIDDLE,]]>VDIS(CNB(nL),CB)<w‾×5,XOL(CNB(nL),CB)>w‾/3},]]>表示第nL条文字列内,在CB附近和CB水平交叠的所有MIDDLE类连通体,VDIS(CNB(nL),CB)=max(max(tNB(nL),tB)-min(bNB(nL),bB),0),]]>表示CNB(nL)和CB之间的竖直距离。这样C(nL)就是在NB(nL)中和CB竖直距离最近的连通体。
若C(m)和C(m+1)存在,就说明CB跨越了第m条和m+1条文字列,需要在x=r(m)+l(m+1)2]]>也就是跨越文字列的地方切分CB。
在所有跨越文字列处切分CB,切分得到的每个部分标记为MIDDLE类,并分配到相应的文字列。
1.6插入SMALL类连通体对于每个连通体CS∈SMALL,计算CS和每条文字列的距离,并把其分配到距离最近的文字列。计算CS和文字列L(nL)的距离的方法如下首先,在L(nL)内CS的上方寻找竖直距离CS最近的MIDDLE类连通体Ct,即Ct=argminCTB(nL)(tS-tTB(nL)),CTB(nL)∈TB(nL),]]>其中TB(nL)={CTB(nL)|CTB(nL)∈L(nL),CTB(nL)∈MIDDLE,tS>tTB(nL)}.]]>然后,在L(nL)内CS的下方寻找竖直距离CS最近的MIDDLE类连通体Cb,即Cb=argminCBB(nL)(bBB(nL)-bS),CBB(nL)∈BB(nL),]]>其中BB(nL)={CBB(nL)|CBB(nL)∈L(nL),CBB(nL)∈MIDDLE,bS<bBB(nL)}.]]>那么,CS和文字列L(nL)的距离为 2词切分得到文字列后,需要把文字列切分成词。每个词由一个主体部分和若干字素附加部分组成。
符合下面条件的连通体被认为是词的主体部分竖直方向上不和其他连通体交叠的连通体;竖直方向上和其他连通体交叠,但是宽度足够宽,高度足够高的连通体。
剩余的连通体被认为是字素的附加部分,逐个归并给距离最近的词的主体部分。
3基线估计因为蒙古文字母在基线上连接,所以基线定位对于字母切分非常关键。令L表示当前处理的文字列图像,HL是L的高度,WL是L的宽度。
3.1基线宽度估计从图2可以看出,L中基线的宽度是相同的。因此,L中出现频率最高的水平黑像素游程的长度就是基线的宽度。
三元组(x(s),x(e),y(se))表示水平黑像素游程,其中x(s)是游程的水平起始位置,x(e)是游程的水平终止位置,y(se)是游程的竖直位置。HRUN={(xnR(s),xnR(e),ynR(se))|nR=1,2,...,nRun}]]>是L中的所有水平黑像素游程。
L中宽度为runW的水平黑像素游程的数目为HW(runW)=||{(xnR(s),xnR(e),ynR(se))|(xnR(s),xnR(e),ynR(se))∈HRUN,xnR(e)-xnR(s)=runW}||,]]>runW=1,2,...,WL。
由此可得基线的宽度为W0=argmaxrunW(HW(runW)),runW=1,2,...,WL.]]>3.2基线位置估计理想情况下,文字列内所有词的基线都在同一竖直线上。但是实际的扫描文本图像中,文字列通常存在小角度的倾斜或者弯曲形变,导致不同词的基线位置不一定相同。为了解决上述问题,本发明把较长的文字列分成多个较短部分分别估计基线位置,这样就可以认为每个部分内的基线位置是相同的。
把文字列L分成 个部分,每个部分的长度为α×W0。令VP(nP)(x)(x=0,1...,WL-1)是L只保留第nP部分的图像的竖直投影结果,那么第nP部分的基线位置为,BLeft(nP)=argmaxx(Σk=0W0-1VP(nP)(x+k)),x=0,1,...,WL-W0,]]>
BRight(nP)=BLeft(nP)+W0-1,]]>其中BLeft(nP)和BRight(nP)分别表示基线的左边界和右边界。在实际系统中,α可以在10~15之间取值。这样就可以得到L任意处的基线的左边界BLeft(y)和右边界BRight(y),BLeft(y)=BLeft(nP)t(nP)≤y<b(nP)BRight(y)=BRight(nP)t(nP)≤y<b(nP),]]>其中t(nP)和b(nP)分别是第nP部分的上、下边界。
4字素切分字素切分是把词切分成单个字素的过程。令P表示当前处理的词图像,HP是P的高度,WP是P的宽度。如图8所示,本发明根据基线及词轮廓信息,搜索所有可能的候选字素切点,切分并分配字素附加部分。
4.1字素切点确定如图9所示,字素切点满足如下条件(A)切点在基线上。
(B)切点上方,字母的左轮廓和/或右轮廓远离基线区域。
(C)切点下方,字母的左轮廓和/或右轮廓远离基线区域。
定义代价函数D(x)计算每个位置的切分代价,D(x)=abs(BLeft(y)-L(y))+abs(BRight(y)-R(y)),y=0,1...,HP-1,其中L(y)和R(y)分别是词的左轮廓和右轮廓。则如图9所示,小于W0的D(x)的极小值处都是字素切点。
4.2附加部分切分及分配当连续两个字素都拥有附加部分时,附加部分也有可能粘连。如果附加部分和多个字素的主体部分在竖直方向上交叠,则该附加部分是粘连的。若该附加部分跨越字素切点yA,则在yA附近附加部分水平投影值最小处切分附加部分。最后把每个附加部分分配给最近的字素主体部分。
根据本发明实现的蒙古文文本切分算法,已经应用于一个印刷蒙古文文本识别系统。300DPI分辨率扫描的黑白二值蒙古文的报纸和期刊用来测试该系统,识别结果如表1。其中只有40%左右的错误是因为切分错误引起的,也就是说字素切分的准确率在98.5%以上。实验结果表明本发明提出的印刷蒙古文文本切分方法是有效的。


表1试验结果本发明提出的多字体多字号印刷蒙古文文本切分方法在实验中获得了优异的文本切分性能,具有广泛的应用前景。本发明具有以下优点第一,本发明提出的列切分方法,不仅能够处理无倾斜的文本,还能处理倾斜角度大,存在列间字母粘连的文本。
第二,本发明提出的基线位置估计方法精度高。
第三,本发明提出的词切分方法,能够处理相邻词在竖直方向交叠的情况。
第四,本发明提出的字素切分方法,字素切点查全率高,伪切点数目少,能够切分粘连的字素附加部分。


图1部分蒙古文字母及字素图2蒙古文文本特点图3印刷蒙古文文本识别系统结构4主要发明内容的框5列切分流程图6坐标系及变量说明图7多列子区域检测图8字素切分流程图9字素切点代价函数具体实施方式
一个印刷蒙古文文本识别系统在硬件上由图像采集设备和计算机两部分构成。图像采集设备一般是扫描仪,用来获取待识别文本的数字图像。计算机用于对数字图像进行处理,完成文本的最终识别。
对于一篇蒙古文文本样张,首先通过扫描仪将其输入计算机,使之变为数字图像。对数字图像采取二值化、去除噪声等预处理措施,得到二值图像。再对输入图像进行列切分得到文字列,然后把文字列切分成词。估计文字列各处的基线位置,在此基础上对每个词进行字素切分,得到单个字素。然后识别每个字素,最后合并字素识别结果为字符。每个阶段的错误可以用手工方式改正。
因此,实现实用的印刷蒙古文文本识别系统,在文本切分方面需要考虑如下四个方面列切分;词切分;基线位置估计;字素切分。下面分别对这四个方面进行详细介绍第一,列切分1.1连通体分类根据高度和宽度信息,把文本图像I上的所有连通体{CnB|nB=1,2,...,nBlock}分成三类 其中w‾1nBlockΣnB=1nBlockwnB.]]>1.2子区域切分只保留MIDDLE类连通体竖直投影,投影值为0的位置把文本区域分割成多个子区域。每个子区域包含一条或多条文字列。
1.3多列子区域检测对每个子区域得到CC={(CI,CJ)|YOL(CI,CJ)>0,XOL(CI,CJ)=0,CI∈MIDDLE,CJ∈MIDDLE}。其中,XOL(CI,CJ)=max(min(rI,rJ)-max(lI,lJ,0),YOL(CI,CJ)=max(min(bI,bJ)-max(tI,tJ),0)。
如果‖CC‖>10,就判定该子区域是多列子区域。
1.4多列子区域切分按照上边界升序排列多列子区域内部所有的MIDDLE类连通体。按顺序每次取出一个连通体,第n次取出的连通体为Cn,比较Cn和已经取出的C1,C2,...,Cn-1,找到CX=argmaxCi(XOL(Cn,Ci)),i=1,2,...,n-1.]]>若XOL(Cn,CX)>w‾/2,]]>Cn和CX就属于同一文字列,否则Cn属于新文字列。所有连通体都取出后,就得到了多列子区域的文字列切分结果。最后把所有文字列按照从左到右的顺序排列。
1.5切分BIG类连通体对于每个CB∈BIG,在文字列L(nL)内寻找C(nL)(nL=1,2..,nLine),即C(nL)=argminCNB(nL)(|tB+bB-tNB(nL)-bNB(nL)|),CNB(nL)∈NB(nL).]]>其中NB(nL)={CNB(nL)|CNB(nL)∈L(nL),CNB(nL)∈MIDDLE,]]>
VDIS(CNB(nL),CB)<w‾×5,XOL(CNB(nL),CB)>w‾/3},]]>VDIS(CNB(nL),CB)=max(max(tNB(nL),tB)-min(bNB(nL),bB),0).]]>若C(m)和C(m+1)存在,就说明CB跨越了第m条和m+1条文字列,需要在x=r(m)+l(m+1)2,]]>处切分CB。在所有跨越文字列的位置把CB切分成多个部分,标记每个部分为MIDDLE类,然后分配到相应的文字列。
1.6插入SMALL类连通体对于每个CS∈SMALL,计算CS和每条文字列的距离,并把其分配到距离最近的文字列。
计算CS和文字列L(nL)的距离的方法如下令,Ct=argminCTB(nL)(tS-tTB(nL)),CTB(nL)∈TB(nL),]]>Cb=argminCBB(nL)(bBB(nL)-bS),CBB(nL)∈BB(nL),]]>其中TB(nL)={CTB(nL)|CTB(nL)∈L(nL),CTB(nL)∈MIDDLE,tS>tTB(nL)},]]>BB(nL)={CBB(nL)|CBB(nL)∈L(nL),CBB(nL)∈MIDDLE,bS<bBB(nL)}.]]>则CS和L(nL)的距离为 第二,词切分每个词由一个主体部分和若干字素附加部分组成。
符合下面条件的连通体是词的主体部分竖直方向上不和其他连通体交叠的连通体;竖直方向上和其他连通体交叠,但是宽度足够宽,高度足够高的连通体。
剩余的连通体是字素附加部分,逐个归并给距离最近的词的主体部分。
第三,基线估计令L表示当前处理的文字列图像,HL是L的高度,WL是L的宽度。
3.1基线宽度估计令HRUN={(xnR(s),xnR(e),ynR(se))|nR=1,2,...,nRun}]]>是L中的所有水平黑像素游程,
HW(runW)=||{(xnR(s),xnR(e),ynR(se))|(xnR(s),xnR(e),ynR(se))∈HRUN,xnR(e)-xnR(s)=runW}||,]]>runW=1,2,...,WL。
则可得基线的宽度为W0=argmaxrunW(HW(runW)),runW=1,2,...,WL.]]>3.2基线位置估计把文字列L分成 个部分,每个部分的长度为15×W0。令VP(nP)(x=0,1...,WL-1)是L只保留第nP部分的图像的竖直投影结果,那么第nP部分的基线的左边界和右边界分别为,BLeft(nP)=argmaxx(Σk=0W0-1VP(nP)(x+k)),x=0,1,...,WL-W0,]]>BRight(nP)=BLeft(nP)+W0-1.]]>这样就可以得到L任意处的基线左边界BLeft(y)和右边界BRight(y),BLeft(y)=BLeft(nP)t(nP)≤y<b(nP)BRight(y)=BRight(nP)t(nP)≤y<b(nP)]]>其中t(nP)和b(nP)分别是第nP部分的上、下边界。
第四,字素切分令P表示当前处理的词图像,HP是P的高度,WP是P的宽度。
4.1字素切点确定定义D(x)=abs(BLeft(y)-L(y))+abs(BRight(y)-R(y)),y=0,1,...,HP-1,其中L(y)和R(y)分别是词的左轮廓和右轮廓。则小于W0的D(x)的极小值处都是字素切点。
4.2附加部分切分及分配若某附加部分跨越字素切点yA,则在yA附近附加部分水平投影值最小处切分附加部分。最后把每个附加部分分配给最近的字素主体部分。
权利要求
1.印刷蒙古文文本切分方法,其特征在于首先在连通体分类的基础上,先选择部分连通体竖直投影把输入文本图像分割成子区域,然后检测多列子区域,归并连通体实现多列子区域的文字列切分;然后把文字列切分成词;随后估计文字列各处的基线位置;最后根据基线位置以及词轮廓寻找字素切点;在由图像采集设备和计算机组成的系统中,该方法依次含有以下步骤第1步,列切分令I表示输入的文本图像,H是I的高度,W是I的宽度,连通体C的左边界、上边界、右边界、下边界、宽度和高度分别表示为l、t、r、b、w和h,附加了上下标的C表示特定的连通体,附加了上下标的l、t、r、b、w和h分别表示特定连通体的左边界、上边界、右边界、下边界、宽度和高度;第1.1步,连通体分类根据高度和宽度信息,把输入文本图像I上所有的连通体{CnB|nB=1,2,...,nBlock}分成三类 其中w‾=1nBlockΣnB=1nBlockwnB,]]>是所有连通体的平均宽度;第1.2步,子区域切分对MIDDLE类连通体竖直投影,投影值为0的位置把文本区域分割成多个子区域,每个子区域包含一条或多条文字列;第1.3步,多列子区域检测对每个子区域求出所有水平交叠、竖直不交叠的MIDDLE类连通体组CC={(CI,CJ)|YOL(CI,CJ)>0,XOL(CI,CJ)=0,CI∈MIDDLE,CJ∈MIDDLE},其中,XOL(CI,CJ)=max(min(rI,rJ)-max(lI,lJ),0),XOL(CI,CJ)表示连通体CI和连通体CJ在水平方向上的交叠长度,YOL(CI,CJ)=max(min(bI,bJ)-max(tI,tJ),0),YOL(CI,CJ)表示连通体CI和连通体CJ在竖直方向上的交叠长度;如果‖CC‖>10,就判定该子区域是多列子区域;第1.4步,多列子区域切分按照上边界升序排列多列子区域内部所有的MIDDLE类连通体,按顺序每次取出一个连通体Cn和已经取出的所有连通体C1,C2,...,Cn-1比较,找到水平方向上交叠最多的连通体CX,即CX=argmaxCi(XOL(Cn,Ci)),]]>i=1,2,...,n-1,若Cn和CX竖直交叠部分足够大,即XOL(Cn,CX)>w‾/2,]]>Cn和CX就属于同一文字列,否则Cn属于新文字列,取出所有连通体后,就得到了多列子区域的文字列切分结果;第1.5步,切分BIG类连通体对于每个连通体CB∈BIG,在文字列L(nL)内寻找连通体C(nL)(nL=1,2,...,nLine),即C(NL)=argminCNB(nL)(|tB+bB-tNB(nL)-bNB(nL)|),CNB(nL)∈NB(nL),]]>其中NB(nL)={CNB(nL)|CNB(nL)∈L(nL),CNB(nL)∈MIDDLE,]]>VDIS(CNB(nL),CB)<w‾×5,XOL(CNB(nL),CB)>w‾/3},]]>NB(nL)表示第nL条文字列内,在CB附近和CB水平交叠的所有MIDDLE类连通体,VDIS(CNB(nL),CB)=max(max(tNB(nL),tB)-min(bNB(nL),bB),0),]]>VDIS(CNB(nL),CB)表示CNB(nL)和CB之间的竖直距离,则C(nL)是在NB(nL)中和CB竖直距离最近的连通体;若C(m)和C(m+1)存在,就说明在第m条和m+1条文字列内,在CB附近都存在连通体和CB水平交叠,也就是说CB跨越了第m条和m+1条文字列,需要在x=r(m)+l(m+1)2,]]>处切分CB,在所有跨越文字列的位置把CB切分成多个部分,标记每个部分为MIDDLE类,并分配到相应的文字列;第1.6步,插入SMALL类连通体对于每个连通体CS∈SMALL,计算CS和每条文字列的距离,并把其分配到距离最近的文字列计算CS和文字列L(nL)的距离的方法如下寻找满足条件的连通体Ct和Cb,即Ct=argminCTB(nL)(tS-tTN(nL)),CTB(nL)∈TB(nL),]]>Cb=argminCBB(nL)(bBB(nL)-bS),CBB(nL)∈BB(nL),]]>其中TB(nL)={CTB(nL)|CTB(nL)∈L(nL),CTB(nL)∈MIDDLE,tS>tTB(nL)},]]>BB(nL)={CBB(nL)|CBB(nL)∈L(nL),CBB(nL)∈MIDDLE,bS<bBB(nL)},]]>则CS和文字列L(nL)的距离为 第2步,词切分每个词由一个主体部分和若干字素附加部分组成,竖直方向上不和其他连通体交叠的连通体以及竖直方向上和其他连通体交叠,但是宽度足够宽,高度足够高的连通体是词的主体部分,剩余的连通体则属于字素附加部分;把每个字素附加部分归并给最近的词主体部分;第3步,基线估计令L表示当前处理的文字列图像,HL是L的高度,WL是L的宽度;第2.1步,基线宽度估计令HRUN={(xnR(s),xnR(e),ynR(se))|nR=1,2,...,nRun}]]>是L中的所有水平黑像素游程,则HW(runW)=||{(xnR(s),xnR(e),ynR(se))|(xnR(s),xnR(e),ynr(se))∈HRUN,xnR(e)-xnR(s)=runW}||,]]>runW=1,2,...,WL,由此可得基线的宽度为W0=argmax(HW(runW)),runW]]>runW=1,2,...,WL第2.2步,基线位置估计把文字列L分成 个部分,每个部分的长度为α×W0,α在10~15之间取值,令VP(nP)(x)(x=0,1,...,WL-1)是L只保留第nP部分的图像的竖直投影结果,那么第nP部分的基线位置为,BLeft(nP)=argmaxx(Σk=0W0-1VP(nP)(x+k)),]]>x=0,1,...,WL-W0,BRight(nP)=BLeft(nP)+W0-1,]]>其中BLeft(nP)和BRight(nP)分别表示基线的左边界和右边界,这样就可以得到L任意处的基线的左边界BLeft(y)和右边界BRight(y),BLeft(y)=BLeft(nP)t(np)≤y<b(nP)BRight(y)=BRight(nP)t(nP)≤y<b(nP),]]>其中t(nP)和b(nP)分别是第nP部分的上、下边界;第4步,字素切分令P表示当前处理的词图像,HP是P的高度,WP是P的宽度;第4.1步,字素切点确定字素切点满足如下条件(A)切点在基线上;(B)切点上方,字母的左轮廓和/或右轮廓远离基线区域;(C)切点下方,字母的左轮廓和/或右轮廓远离基线区域;定义函数D(x)计算每个位置的切分代价,D(x)=abs(BLeft(y)-L(y))+abs(BRight(y)-R(Y)),y=0,1,...,HP-1,其中L(y)和R(y)分别是词的左轮廓和右轮廓,则小于W0的D(x)的极小值处都是字素切点第4.5步,附加部分切分及分配如果附加部分和多个字素的主体部分在竖直方向上交叠,则该附加部分是粘连的,若该附加部分跨越字素切点yA,则在yA附近附加部分水平投影值最小处切分附加部分;最后把每个附加部分分配给最近的字素主体部分。
全文摘要
印刷蒙古文文本切分方法,属于光学字符识别中的字符切分领域。本发明特征在于在连通体分类的基础上,选择部分连通体竖直投影,分割文本图像成子区域,然后检测多列子区域,归并字符块实现多列子区域的文字列切分;随后把文字列切分成词;接着估计文字列各处的基线位置;最后根据基线位置和词轮廓寻找字素切点,把词切分成字素。本发明在多字体多字号印刷蒙古文文本测试集上的字素切分正确率达到98.5%以上。
文档编号G06K9/72GK101025791SQ20071006519
公开日2007年8月29日 申请日期2007年4月6日 优先权日2007年4月6日
发明者丁晓青, 靳简明, 彭良瑞, 王 华, 刘长松, 方驰 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1