检测文档阅读顺序的方法和装置与流程

文档序号:15047809发布日期:2018-07-27 23:05阅读:166来源:国知局

本发明涉及计算机技术领域,特别是涉及检测文档阅读顺序的方法和装置。



背景技术:

ocr(opticalcharacterrecognition光学字符识别),是描述文档图片识别的一类算法,其是针对印刷体字符,采用光学的方式将纸质文档中的文字转换成为黑白点阵的图像文件,并通过识别软件将图像中的文字转换成文本格式,供文字处理软件进一步编辑加工的技术。

在ocr技术中,普遍采用基于有向图、固定规则、语义分析等方法来识别文档的阅读顺序,然而这些方法在复杂环境下或者对于复杂文档图片来说,其阅读顺序的识别错误率较高,存在识别性能不稳定的问题。



技术实现要素:

本发明实施例提供了检测文档阅读顺序的方法和装置,能够准确识别各类文档图片的文档阅读顺序。

本发明一方面提供检测文档阅读顺序的方法,包括:

识别文档图片中包含的文本块,构建一个块集合;

从所述块集合中确定出一起始文本块;

根据该起始文本块的特征信息对该起始文本块执行寻径操作,以确定出所述块集合中与该起始文本块对应的第一文本块;文本块的特征信息包括该文本块在文档图片中的位置信息以及该文本块的版面布局信息;

根据所述第一文本块的特征信息对该第一文本块执行寻径操作,以确定出所述块集合中与该第一文本块对应的文本块;并依此类推直到所述块集合中每一个文本块对应的寻径操作的执行顺序能够唯一确定;及

确定所述块集合中文本块对应的寻径操作的执行顺序,根据所述执行顺序得到所述文档图片中文本块的阅读顺序。

本发明另一方面提供一种检测文档阅读顺序的装置,包括:

块识别模块,用于识别文档图片中包含的文本块,构建一个块集合;

起始块选择模块,用于从所述块集合中确定出一起始文本块;

自动寻径模块,用于根据该起始文本块的特征信息对该起始文本块执行寻径操作,以确定出所述块集合中与该起始文本块对应的第一文本块;文本块的特征信息包括该文本块在文档图片中的位置信息以及该文本块的版面布局信息;根据所述第一文本块的特征信息对该第一文本块执行寻径操作,以确定出所述块集合中与该第一文本块对应的文本块;并依此类推直到所述块集合中每一个文本块对应的寻径操作的执行顺序能够唯一确定;及

顺序确定模块,用于确定所述块集合中文本块对应的寻径操作的执行顺序,根据所述执行顺序得到所述文档图片中文本块的阅读顺序。

基于上述实施例提供的检测文档阅读顺序的方法和装置,首先识别文档图片中包含的文本块,构建一个块集合;从块集合中确定出一起始文本块;从起始文本块开始寻径,根据文本块的位置信息以及版面布局信息决定下一步应该走到哪一个文本块,依次类推得出文档图片包含的全部文本块的阅读顺序。该方案能够兼容多种场景,对文档图片的尺寸、噪声、样式具有更好的鲁棒性,因此能够准确识别各类文档图片对应的文档阅读顺序。

附图说明

图1为一个实施例中的本发明方案的工作环境示意图;

图2为一实施例的检测文档阅读顺序的方法的示意性流程图;

图3为一实施例的文档图片包含的文本块示意图;

图4为一实施例的神经网络模型的示意图;

图5为一实施例的根据训练样本训练神经网络模型的示意流程图;

图6为一实施例的检测文档阅读顺序的装置的示意性结构图;

图7为另一实施例的检测文档阅读顺序的装置的示意性结构图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

图1为一个实施例中的本发明方案的工作环境示意图;实现本发明实施例的检测文档阅读顺序的方法的工作环境为设置有ocr系统的智能终端,并且所述智能终端至少还包括通过系统总线连接的处理器、显示模组、电源接口和存储介质,所述智能终端通过ocr系统将文档图片中包含的文本信息识别并显示出来。其中,显示模组可对ocr系统识别出的文本信息进行显示;电源接口用于与外部电源连接,外部电源通过该电源接口向智能终端电池供电;所述存储介质中至少存储有操作系统、ocr系统、数据库以及一种检测文档阅读顺序的装置,该装置可用于实现本发明实施例的检测文档阅读顺序的方法。所述智能终端可以为手机、平板电脑等,也可以是其他具有上述结构的设备。

结合图1及上述对工作环境的说明,以下对检测文档阅读顺序的方法的实施例进行说明。

图2为一实施例的检测文档阅读顺序的方法的示意性流程图;如图2所示,本实施例中的检测文档阅读顺序的方法包括步骤:

s110,识别文档图片中包含的文本块,构建一个块集合;

本实施例中,可先对文档图片进行二值化处理,得到二值化文档图片,在二值化文档图片中,各个像素点的值均用0或者1表示。然后基于二值化文档图片进行尺度分析和版面分析,得出文档包含的全部文本块。其中的尺度分析是指寻找二值化文档图片中每个字符的尺度信息,尺度以像素为单位,其值为字符所占用的矩形区域面积的平方根。版面分析是指在ocr中,将文档图片中的内容按照段落、分页等信息划分为多个不重叠的区域的算法。由此可得出文档中包含的全部文本块,例如图3所示或者图5所示。

在另一优选实施例中,对文档图片进行预处理的过程中,还包括对校正文档图片的步骤。即若待检测的文档图片的初始状态相对于预设的标准状态存在偏差时,校正所述文档图片使其符合所述标准状态。例如:若检测到文档图片的初始状态下存在倾斜、上下颠倒等情况,则需先对所述文档图片的方向进行校正。

s120,从全部文本块中(即所述块集合中)确定出一起始文本块。

通常情况下,人们在阅读文档时会从文档的一顶点(例如左上角)开始进行阅读,基于此,在一优选实施例中,可从所述块集合中选择出中心点坐标位于所述文档图片的一个顶点的文本块,并将该文本块确定为所述起始文本块。例如:将位于文档图片的左侧且最上方的一文本块确定为起始文本块,如图3中所示的文本块r1,或者图5中所示的文本块r1。

可以理解的,在其他实施例中,对于不同的文档和实际的阅读习惯(例如从右到左排版的文档),也可将其他文本块确定为起始文本块。

s130,从起始文本块开始寻径;根据该起始文本块的特征信息对该起始文本块执行寻径操作,以确定出所述块集合中与该起始文本块对应的第一文本块;根据所述第一文本块的特征信息对该第一文本块执行寻径操作,以确定出所述块集合中与该第一文本块对应的文本块;并依此类推直到所述块集合中每一个文本块对应的寻径操作的执行顺序能够唯一确定。

其中,文本块的特征信息包括该文本块在文档图片中的位置信息以及该文本块的版面布局信息。

对文本块进行寻径操作实际上是基于该文本块的特征信息得出其对应的下一文本块的特征预测信息。在一实施例中,对文本块的寻径操作包括:通过预先训练好的机器学习模型对所述文本块的特征信息进行学习,得出与该文本块对应的文本块的特征预测信息;计算所述块集合中未执行寻径操作的各文本块的特征信息与所述特征预测信息的相关度;然后根据上述计算出的相关度确定出所述文本块对应的文本块。

本实施例中,步骤s130即是一个自起始文本块起,对文档包含的文本块进行自动寻径的过程,每次寻径只需确定当前文本块对应的下一文本块。例如图3所示的文档图片,当前文本块为r1,通过本次寻径可确定文本块r1的下一文本块为r2;然后将r2作为当前文本再次进行寻径,得到r2的下一文本块为r4;以此类推,直到对r6执行完寻径操作,并确定出r6对应的下一文本块为r7,虽然此时r7和r8未执行寻径操作,但由于已经确定出r6对应的下一文本块为r7,因此r7和r8对应的寻径操作的执行顺序已经能够唯一确定(即先r7后r8)。通过上述自动寻径方式,对文档图片的尺寸、样式具有更好的鲁棒性。并且自动寻径的依据是基于文本块之间位置以及版面布局信息的相关性,因此能够较好的克服图片噪声或者识别环境对检测结果的影响,有利于保证检测结果的准确性。

本实施例中,预先通过合适的训练样本对所述机器学习模型进行训练,可使得所述机器学习模型输出较为准确的预测结果,然后基于相关性可确定出准确的下一文本块,适用于各种混合文档类型的文档阅读顺序检测。其中,所述机器学习模型可以为神经网络模型,也可以为其他非神经网络的概率模型。

s140,确定所述块集合中文本块对应的寻径操作的执行顺序,根据所述执行顺序得到所述文档图片中文本块的阅读顺序。

通过步骤s130的自动寻径,可得到每一个文本块及其对应的下一文本块,当自动寻径结束时,根据所有文本块以及各文本块对应的下一文本块,便可得到全部文本块的阅读顺序。例如在自动寻径结束后,可得到图3所示的文档图片中文本块的阅读顺序为r1→r2→r4→r5→r3→r6→r7→r8。

基于上述实施例的检测文档阅读顺序的方法,首先识别文档图片中包含的全部文本块;从全部文本块中确定出一起始文本块,从起始文本块开始寻径,根据文本块在文档图片中的位置信息以及该文本块的版面布局信息决定下一步应该走到哪个文本块区域,直到得出全部文本块的阅读顺序。由此能够兼容多种场景,对文档图片的尺寸、噪声、样式具有更好的鲁棒性,因此能够准确识别各类文档图片对应的文档阅读顺序。

在一优选实施例中,所述机器学习模块中包含多个参数,在所述检测文档阅读顺序的方法中,还包括对所述机器学习模型进行训练的步骤,以使得训练之后的机器学习模型输出的特征预测信息与对应的样本信息的欧式距离满足设定条件。欧式距离指的是欧几里得度量,表示两个相同维度向量的空间距离。

在一优选实施例中,对机器学习模块进行训练的方式可包括如下过程:

首先,获取训练样本。样本是指在机器学习过程中,已经标定好了的数据,包括输入数据和输出数据。本实施例中训练样本即参与机器学习模块训练的若干样本块,且所述若干样本块的阅读顺序为已知的。

然后,基于训练样本建立对应的样本库m={g,s,t}。其中g表示样本块的集合,s表示样本块在先后各次训练中的顺序状态的集合,t表示训练过程中需确定的状态变化序列。若g中样本块的总数为n,则有,

s={si;i∈[1,n],si∈[0,n]};

t={{r1,s1,s2},{r2,s2,s3},...{rn-2,sn-2,sn-1}};

若si=0表示样本块ri的阅读顺序未确定(即执行寻径操作的顺序未确定),若si>0表示样本块ri的阅读顺序已确定(即执行寻径操作的顺序已确定),且阅读顺序为si的值,表示为s(ri)=si。上述t中的每一个序列中的各项分别表示当前参与训练的样本块、g中每个样本块当前的顺序状态的集合和需预测出的g中每个样本块的下一顺序状态的集合。具体的,以{r2,s2,s3}序列为例,r2表示当前参与训练的样本块为r2,s2表示r2参与训练时g中各个样本块对应的顺序状态,s3表示采用r2参与训练时需预测出的g中每个样本块的下一个顺序状态。其中,由于剩余的最后两个样本块可采用排除法直接确定出来,因此其不需要训练,故在t中只需包括n-2个序列。

然后,基于上述的样本库m={g,s,t},依次采用t中的各个状态变化序列对机器学习模型进行训练;当t中的所有状态变化序列均参与训练之后,保存所述机器学习模型中的参数。

在一优选实施例中,根据t中的第k个序列{rk,sk,sk+1}对机器学习模型中的参数进行训练的具体实施方式可包括如下步骤1~步骤5:

步骤1,将样本块rk的特征信息输入机器学习模型,获取机器学习模型输出的rk的下一文本块的特征预测信息ok,k∈[1,n-2];

步骤2,获取sk中顺序状态为0的样本块ri,得到集合g*

g*={ri;sk(ri)=0};i∈[1,n];

集合g*的维度为n-k;.

步骤3,将g*中各项分别与ok进行点积运算,得到集合v*={vi=ri·ok};

步骤4,获取g*中各样本块ri在sk+1中对应的顺序状态,得到集合vπ={vi′=sk+1(ri)};集合vπ的维度与集合g*的维度相等.

步骤5,对v*进行归一化处理可得到对vπ进行归一化处理得到集合vππ={vi″=vi′/sum(vπ)};根据v**和vππ构建所述样本块rk参与训练时对应的损失函数loss,基于该损失函数通过bp算法更新所述机器学习模型中的参数。其中所述损失函数loss为:

本实施例中,损失函数是指在机器学习过程中,通过机器学习计算所得到的误差,误差可以使用多种函数进行度量,且该函数一般为凸函数。即根据v**和vππ的欧式距离构建所述样本块rk参与训练时对应的损失函数。欧式距离即欧几里得度量,表示两个多为维向量的空间距离。通过每次学习过程中得到的损失函数,使用bp算法对机器学习模型的参数进行调整,当损失函数收敛到一定程度时,机器学习模型的输出准确度也会提高到某个程度。其中bp算法即误差反向传播算法(errorbackpropagation),尤其适用于多层前馈网络模型的训练,是指在训练过程中误差会累积到输出层,然后通过输出层将误差反向传递到每一个前馈网络层,从而达到调节各前馈网络层参数的目的。

在一优选实施例中,为了准确的对各个文本块的特征信息进行学习,对识别出的文本块采用文本框进行标记,并将每个文本块的特征信息用特征向量的形式表示为:

r={x,y,w,h,s,d};

r表示文本块的特征向量,包含6个特征信息;x表示文本块的中心点的x坐标;y表示文本块的中心点的y坐标;w表示文本块的宽度;h表示文本块的高度;s表示文本块中所有连通区域的尺度均值;d表示文本块的密度信息。所述连通区域是指在二值化图像中,能够通过像素之间的连接形成的区域;像素之间的连接有4邻域和8邻域算法,例如8邻域连通算法,即在(x,y)位置的像素点,如果与其相邻的8个点中的某一个与(x,y)的像素值相同,则两者是8邻域连通的,递归查找所有连通的点,这些点的集合即为一个连通区域。

其中,

w、h分别表示取长度和取宽度的函数,ri为连通区域i,k表示文本块中包含的连通区域的总量;p表示像素点的像素值。

在一优选实施例中,在识别文档图片中包含的文本块之后,还包括获取各文本块的特征向量r={x,y,w,h,s,d}的步骤。为了让机器学习的模型对尺度信息不敏感,进一步将文本块的对应特征信息做归一化处理,例如约定:

w=1.0;h=1.0;max(p)=1.0。

在一优选实施例中,从全部文本块中确定出一起始文本块的方式可包括:

以文档图片左上角顶点为原点建立xoy坐标系(参考图3、图5所示),并且该xoy坐标系的x轴正方向指向文档图片的宽度方向,y轴正方向指向文档图片的长度方向。首先,从所述块集合中获取中心点的x坐标最小的一个文本块,作为文本块a。然后,获取中心点的y坐标小于所述文本块a的文本块,构建一个文本块集合g′;并依次将该集合g′中的每一个文本块b与所述文本块a进行对比;若所述文本块b与该文本块a在x轴方向的投影不存在交集,则将所述文本块b从集合g′中删除;若所述文本块b与该文本块a在x轴方向的投影存在交集,则更新所述文本块a为所述文本块b,并将所述文本块b从集合g′中删除。在每次文本块对比之后检测集合g′是否为空;若是,则将当前的文本块a确定为起始文本块;若否,则在所述文本块a发生更新时更新集合g′,并将更新后的集合g′中的每一个文本块与当前的文本块a进行上述对比;依次类推直到集合g′为空。本实施例的起始文本块的确定方法,适用于各类复杂的文档,并能准确识别出起始文本块。

在一优选实施例中,假设将每个文本块的特征向量表示为r={r1,r2,r3,r4,r5,r6}={x,y,w,h,s,d},简记为r={rj;j∈[0,6)},rj为样本块的特征信息j。所述机器学习模型选为神经网络模型。对应的,如图4所示,所述神经网络模型可包括6维输入层、6维输出层、第一隐层以及第二隐层。在神经网络模型中,输入层负责接收输入及分发到隐层(因为用户看不见这些层,所以见做隐层),隐层负责所需的计算及输出结果给输出层,而用户则可以看到最终结果。

优先的,所述第一隐层、第二隐层分别为12维和20维的隐层。将所述r={rj;j∈[0,6)}输入所述神经网络模型,则所述第一隐层的输出为k1:

所述第二隐层的输出为k2:

所述6维输出层的输出为o:

o={on=sigmoid∑aonk2m+bon;n∈[0,6),m∈[0,20)};

其中a1i、b1i为第一隐层对应的参数,k1i为第一隐层的第i维输出;a2m、b2m为第二隐层对应的参数,k2m为第二隐层的第m维输出;aon、bon为6维输出层对应的参数,on为第n维输出,sigmoid表示s型的非线性函数。

对于上述的神经网络模型的训练,以图5中的文本块为例,将图5中的文本块作为样本块进行所述神经网络模型的训练,样本块包括r1,r2,r3,r4以及r5,可分别表示为:

r1={x1,y1,w1,h1,s1,d1}

r2={x2,y2,w2,h2,s2,d2};

r3={x3,y3,w3,h3,s3,d3};

r4={x4,y4,w4,h4,s4,d4};

r5={x5,y5,w5,h5,s5,d5};

且已知r1,r2,r3,r4,r5的正确阅读顺序为r1→r3→r2→r4→r5。

根据所述训练样本,设定每个样本块的当前顺序状态的集合为s={si;i∈[1,5],si∈[0,5]},其中当si=0时表示对应的文本块ri还未确定执行寻径操作的顺序(即ri的阅读顺序未确定),si>0表示对应的文本块ri已确定执行寻径操作的顺序(即ri的阅读顺序已确定),且确定执行寻径操作的顺序为si的值,表示为s(ri)=si。因此所述训练样本在训练过程中对应的阅读状态可包括:

s0=(0,0,0,0,0);

s1=(1,0,0,0,0);

s2=(1,0,2,0,0);

s3=(1,3,2,0,0);

s4=(1,3,2,4,0);

s5=(1,3,2,4,5);

进一步的,所述训练样本r1,r2,r3,r4,r5还可描述为以下状态序列:

{r1,s1,s2},{r3,s2,s3},{r2,s3,s4},{r4,s4,s5};

其中由于{r4,s4,s5}序列可以直接确定出来,因此其不需要训练,因此在样本库中,t={{r1,s1,s2},{r3,s2,s3},{r2,s3,s4}}。基于所述样本库,首先采用{r1,s1,s2}序列进行所述神经网络模型的训练,过程如下:

将r1输入到神经网络模型中,获取神经网络模型输出的下一阅读状态的预测信息o1。选取s1中值为0所对应的样本块,可得到集合g*={r2,r3,r4,r5}。将集合g*中的各项分别与o1进行点积,可得到v*={v2,v3,v4,v5},归一化后得到

获取g*中各项在s2中对应的状态值,可得到集合vπ:

vπ={v2′,v3′,v4′,v5′}={0,2,0,0};

归一化处理可得到vππ={v2″,v3″,v4″,v5″}={0,1,0,0}。

根据集合v**和集合vππ可构建样本块r1参与训练时对应的损失函数:

通过bp算法可更新所述神经网络模型中的所有参数。

按照上述步骤继续训练,即根据序列{r3,s2,s3},{r2,s3,s4}也按照上述步骤继续训练,由此可完成所述神经网络模型的训练。本实施例中,通过选取适当的训练样本,可得到性能稳定的神经网络模型;基于训练后的神经网络模型进行文本块寻径,可准确得到当前文本块的下一文本块,有利于准确检测出各类型文档图片中的文档阅读顺序。

本发明上述实施例的检测文档阅读顺序的方法,可应用于ocr系统中自动文档分析模块,所述自动文档分析模块在识别出文档图片包含的文本块之后,对识别出的文本块进行排序,然后将文本块的阅读顺序输出给文本识别模块,在文本识别模块中进行文本识别后,基于已经得到的阅读顺序,整理成最终的可阅读文档,从而进行自动分析和存储。具体的,所述自动文档分析模块在对文本块进行排序时,涉及信息处理过程包括:

设定选择算法a=a(r,s),该算法根据当前文本块r和当前的阅读顺序的状态s,推导出下一个阅读顺序的状态s,可以表示为:

其中s0={si=0;i∈[1,n]},sn={si=i;i∈[1,n]},n表示文档图片包含的文本块的总数。

进一步的,所述算法a可分成三个部分:

1)rstart选择器ψ1

ψ1用于对起始文本块进行选择,起始文本块用rstart标记。在所有的文本块r中,选取中心点坐标位于文档图片最左边的一个r,标记为rl,然后对剩余的r相对于rl进行计算,选取y(r)<y(rl)的文本块构建集合g′,优先的,还可对g′中的r按照y坐标降序排列,然后按照顺序将g′中的每一个r与rl进行对比,如果r与rl在x轴方向的投影有交集,则将此r标记为rl,将所述r从g′中删除;否则,不更新rl,直接将此r从g′中删除;重复上述动作,直到g′为空,可确定rstart=rl。

在一优选实施例中,每次在将新的r标记为rl,将所述r从g′中删除之后,若检测到此时集合g′不为空,则更新集合g′(即获取所有中心点y坐标小于更新后r1中心点y坐标的文本块得到新的集合g′),通过更新集合g′,可进一步减少选择起始文本块的时间。

2)特征生成器ψ2

ψ2用于根据当前文本块ri得出下一个阅读顺序状态的特征预测信息oi+1,可以描述为:

如上所述,各文本块可描述为r={x,y,w,h,s,d},对应的ψ2可选用一个包括6维输入、6维输出和两个分别为12维和20维的隐层的全连神经网络,其结构如图4所示,其中每个圆圈表示一个神经元。对于每个样本块,若表示为r={ri;i∈[0,6)},则第一个隐层的输出k1为:

第二隐层的输出为:

6维输出层的输出为:

o={oi=sigmoid∑aoik2j+boi;i∈[0,6),j∈[0,20)}

其中a、b均为需要训练的参数。o即为ψ2的输出。

3)特征合成器ψ3

通过ψ2得到下一阅读顺序状态的特征预测信息之后,按照如下方式更新当前的阅读顺序状态s,以得到的下一阅读顺序状态:

i)获取在当前阅读顺序状态s状态中为值0的文本块,构建集合g*

g*={ri;sk(ri)=0};i∈[1,n];

ii)对于每一个ri∈g*,计算vi=ri·o,得到集合v*,v*={vi=ri·o};

iii)找出v*中的最大值,并找出该值对应的文本块,记为r*

iv)更新当前阅读顺序状态s,即更新s中的s(r*)的值为s(r*)=max(s)+1;由此可得到对应的下一阅读顺序状态,即得到对应的下一文本块。以此类推,可到全部文本块的排序。

结合上述实施例所述,下面以图5所示的文档图片为例,对本发明的检测文档阅读顺序的方法进行举例说明。包括步骤一~步骤五,各步骤具体说明如下:

步骤一,对原始的文档图片进行二值化处理和方向校正处理;再对经过二值化处理及方向校正处理的文档图片进行版面分析,得到文档中包含的全部文本块。如图5所示,得到文档中包含的文本块为r1,r2,r3,r4以及r5。

步骤二,确定起始文本块。

由于在r1,r2,r3,r4以及r5中,r3的中心点x坐标位于最左侧,因此初始时将rstart赋值为r3。

获取所有中心点y坐标小于r3中心点y坐标的文本块,并按照y坐标增序排列,可得到集合g′=(r2,r1)。

循环更新rstart。检测到文本块r2与r3在x轴方向的投影没有交集,因此从集合g′中删除r2;检测到文本块r1与r3在x轴方向的投影有交集,因此将rstart更新为r1,并从集合g′中删除r1,由于此时集合g′已经为空,因此无需更新集合g′(即无需获取所有中心点y坐标小于r1中心点y坐标的文本块以更新集合g′),循环结束。获取当前rstart对应的文本块为r1,由此可确定出图5所示文档的起始文本块为r1。

步骤三,从起始文本块r1开始自动寻径。

当前文本块为r1={x1,y1,w1,h1,s1,d1},当前状态为s1=(1,0,0,0,0);将r1={x1,y1,w1,h1,s1,d1}输入到训练好的神经网络模型,获取神经网络模型输出的预测信息为o={o1,o2,o3,o4,o5,o6};

基于当前状态为s1=(1,0,0,0,0),可得到集合g*={r2,r3,r4,r5};

进一步可得到:

v*={r2·o,r3·o,r4·o,r5·o,};

ri·o=xi×o1+yi×o2+wi×o3+hi×o4+di×o5;

选取v*中的最大值所对应的文本块,本实施例中可得出r3·o的值最大,更新当前阅读顺序状态s1=(1,0,0,0,0)中文本块r3对应的值为s3=1+1=2,由此可得出下一状态为s2=(1,0,2,0,0),确定出下一文本块为r3。

然后将r3作为当前文本块,按照同样的方式,可得到r3对应的下一状态为s3=(1,3,2,0,0),即r3对应的下一文本块为r2;再将r2作为当前文本块,按照同样的方式,可得到r2对应的下一状态为s4=(1,3,2,4,0),即r2对应的下一文本块为r4;然后将r4作为当前文本块,由于此时对应的集合g*中只有一个文本块(即r5),可直接将该文本块作为当前文本块的下一文本块并得到对应的下一状态为s5=(1,3,2,4,5);自此自动寻径结束。

步骤四,根据自动寻径的结果,可得到文档阅读顺序为r1→r3→r2→r4→r5。

步骤五:按照r1→r3→r2→r4→r5的顺序依次对文本块进行文本识别,得到文档对应的可阅读文本信息,对可阅读文本信息进行保存以及输出显示。

其中,对文本块的文本识别包括行分割和行识别等步骤,依次以行为单位进行字符识别,由此可得到整个文本块的文本信息。

通过上述实施例检测文档阅读顺序的方法,由于神经网络算法拥有大量的参数,根据训练好的神经网络模型,能够兼容多种场景,对文档图片的尺寸、噪声、样式具有更好的鲁棒性。

需要说明的是,对于前述的各方法实施例,为了简便描述,将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。此外,还可对上述实施例进行任意组合,得到其他的实施例。

基于与上述实施例中的检测文档阅读顺序的方法相同的思想,本发明还提供检测文档阅读顺序的装置,该装置可用于执行上述检测文档阅读顺序的方法。为了便于说明,检测文档阅读顺序的装置实施例的结构示意图中,仅仅示出了与本发明实施例相关的部分,本领域技术人员可以理解,图示结构并不构成对装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

图6为本发明一实施例的检测文档阅读顺序的装置的示意性结构图;如图6所示,本实施例的检测文档阅读顺序的装置包括:块识别模块610、起始块选择模块620、自动寻径模块630以及顺序确定模块640,各模块详述如下:

所述块识别模块610,用于识别文档图片中包含的文本块,构建一个块集合;

在一优选实施例中,所述块识别模块610具体可包括:预处理子模块,用于对所述文档图片进行二值化处理和方向校正处理;以及,版面识别子模块,用于对经过二值化处理及方向校正处理的文档图片进行版面分析,得到文档中包含的文本块。其中,版面分析是指在ocr中,将文档图片中的内容按照段落、分页等信息划分为多个不重叠的区域的算法。由此可得出文档中包含的全部文本块,例如图3所示或者图5所示。

所述起始块选择模块620,用于从所述块集合中确定出一起始文本块。

通常情况下,人们在阅读文档时会从文档的一角开始进行阅读,基于此,在一优选实施例中,所述起始块选择模块620可用于从所述块集合中选择出中心点坐标位于所述文档图片的一个顶点的文本块,并将该文本块确定为所述起始文本块。例如,所述起始块选择模块620可用于从全部文本块中选择出中心点坐标位于文档图片的左侧且最上方的一文本块(即左上角的文本块),将该文本块确定为起始文本块。如图3中所示的文本块r1,或者图5中所示的文本块r1。

可以理解的,在其他实施例中,对于不同的文档和实际的阅读习惯(例如从右到左排版的文档),所述起始块选择模块620也可将其他文本块确定为起始文本块。

所述自动寻径模块630,用于根据该起始文本块的特征信息对该起始文本块执行寻径操作,以确定出所述块集合中与该起始文本块对应的第一文本块;文本块的特征信息包括该文本块在文档图片中的位置信息以及该文本块的版面布局信息;根据所述第一文本块的特征信息对该第一文本块执行寻径操作,以确定出所述块集合中与该第一文本块对应的文本块;并依此类推直到所述块集合中每一个文本块对应的寻径操作的执行顺序能够唯一确定。

本实施例中,所述自动寻径模块630用于执行一个自起始文本块起,对文档包含的文本块进行自动寻径的过程,且每次寻径只需确定当前文本块对应的下一文本块。例如图3所示的文档图片,当前文本块为r1,通过本次寻径可确定文本块r1的下一文本块为r2;然后将r2作为当前文本再次进行寻径,得到r2的下一文本块为r4;以此类推,直到确定出r6的下一文本块为r7为止,每一个文本块对应的寻径操作的执行顺序能够唯一确定。

所述顺序确定模块640,用于确定所述块集合中文本块对应的寻径操作的执行顺序,根据所述执行顺序得到所述文档图片中文本块的阅读顺序。

例如所述顺序确定模块640可得到图3所示的文档图片中文本块的阅读顺序为r1→r2→r4→r5→r3→r6→r7→r8。

在一优选实施例中,所述起始块选择模块620具体可用于以文档图片左上角顶点为原点建立xoy坐标系,并且该xoy坐标系x轴正方向指向文档图片的宽度方向,y轴正方向指向文档图片的长度方向;从所述块集合中获取中心点的x坐标最小的一个文本块,作为文本块a;

获取中心点的y坐标小于所述文本块a的文本块,构建一个文本块集合g′;并依次将该集合g′中的每一个文本块b与所述文本块a进行对比;

若所述文本块b与该文本块a在x轴方向的投影不存在交集,则将所述文本块b从集合g′中删除;若所述文本块b与该文本块a在x轴方向的投影存在交集,则更新所述文本块a为所述文本块b,并将所述文本块b从集合g′中删除;在每次文本块对比之后检测集合g′是否为空;若是,则将当前的文本块a确定为起始文本块;若否,则在所述文本块a发生更新时更新集合g′,并将更新后的集合g′中的每一个文本块与当前的文本块a进行上述对比;依次类推直到集合g′为空。

在一优选实施例中,每次在用新的文本块b更新所述文本块a,将所述文本块b从g′中删除之后,若检测到此时集合g′不为空,则更新集合g′(即获取所有中心点y坐标小于更新后的文本块a中心点y坐标的文本块得到新的集合g′),通过更新集合g′,可进一步减少选择起始文本块的时间。

在一优选实施例中,如图7所示,所述检测文档阅读顺序的装置还包括:训练模块650,用于预先训练机器学习模型,使得训练之后的机器学习模型输出的特征预测信息与对应的样本信息的欧式距离满足设定条件。

在一优选实施例中,所述训练模块650可包括样本库构建子模块和训练子模块。其中,样本库构建子模块,用于获取训练样本,建立样本库m={g,s,t},其中g表示样本块的集合,s表示样本块在先后各次训练中的顺序状态的集合,t表示训练过程中需确定的状态变化序列;若g中样本块的总数为n,则有,

s={si;i∈[1,n],si∈[0,n]};

t={{r1,s1,s2},{r2,s2,s3},...{rn-2,sn-2,sn-1}};

si=0表示样本块ri的阅读顺序未确定(即执行寻径操作的顺序未确定),若si>0表示样本块ri的阅读顺序已确定(即执行寻径操作的顺序已确定),且阅读顺序为si的值,表示为s(ri)=si;t中的每一个序列中的各项分别表示当前参与训练的样本块、当前所有样本块的顺序状态的集合和需预测出的所有样本块的下一顺序状态的集合。

其中,训练子模块,用于依次采用t中的各个序列对机器学习模型中的参数进行训练;当t中的所有序列均参与训练之后,保存所述机器学习模型中的参数。

在一优选实施例中,所述训练子模块在根据t中的第k个序列{rk,sk,sk+1}对机器学习模型中的参数进行训练时,用于实现以下过程:

将样本块rk的特征信息输入机器学习模型,获取机器学习模型输出的rk的下一文本块的特征预测信息ok,k∈[1,n-2];

获取sk中顺序状态为0的样本块ri,得到集合g*,

g*={ri;sk(ri)=0};i∈[1,n];

将集合g*中各项分别与ok进行点积运算,得到集合v*={vi=ri·ok};

获取集合g*中各项在sk+1中对应的顺序状态,得到集合vπ={vi′=sk+1(ri)};

对集合v*进行归一化处理得到集合v**,对集合vπ进行归一化处理得到集合vππ;根据集合v**和集合vππ构建样本块rk参与训练时对应的损失函数,基于该损失函数通过bp算法更新所述机器学习模型中的参数,其中所述损失函数为:

loss=|v**-vππ|。

在一优选实施例中,所述块识别模块610还用于获取各文本块的特征向量r={x,y,w,h,s,d};其中x表示文本块的中心点的x坐标,y表示文本块的中心点的y坐标,w表示文本块的宽度,h表示文本块的高度,s表示文本块中所有连通区域的尺度均值,d表示文本块的密度信息。

对应的,所述机器学习模型为6维输入且6维输出的神经网络模型。例如:所述神经网络模型包括6维输入层、6维输出层、第一隐层以及第二隐层,所述第一隐层、第二隐层分别为12维和20维的隐层;

若每个文本块的特征信息表示为r={rj;j∈[0,6)},rj表示样本块的特征信息j,则所述第一隐层的输出k1和第二隐层的输出k2分别为:

所述6维输出层的输出为o:

o={on=sigmoid∑aonk2m+bon;n∈[0,6),m∈[0,20)};

其中a1i、b1i为第一隐层对应的参数,k1i为第一隐层的第i维输出;a2m、b2m为第二隐层对应的参数,k2m为第二隐层的第m维输出;aon、bon为6维输出层对应的参数,on为第n维输出,sigmoid表示s型的非线性函数。

在一优选实施例中,所述的检测文档阅读顺序的装置还包括:文本识别模块660,用于对各个文本块进行文本识别,并按照确定出的阅读顺序得到所述文档图片的文本信息。

基于上述实施例提供的检测文档阅读顺序的装置,可识别文档图片中包含的全部文本块,并从全部文本块中确定出一起始文本块;接下来从起始文本块开始寻径,根据预先训练好的机器学习模型决定下一步应该走到哪个文本块区域,直到得出全部文本块的阅读顺序。根据文本块在文档图片中的位置信息以及该文本块的版面布局信息执行寻径能够兼容多种场景,对文档图片的尺寸、噪声、样式具有更好的鲁棒性,能够准确识别各类文档图片对应的文档阅读顺序。

需要说明的是,上述示例的检测文档阅读顺序的装置的实施方式中,各模块之间的信息交互、执行过程等内容,由于与本发明前述方法实施例基于同一构思,其带来的技术效果与本发明前述方法实施例相同,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。

此外,上述示例的检测文档阅读顺序的装置的实施方式中,各功能模块的逻辑划分仅是举例说明,实际应用中可以根据需要,例如出于相应硬件的配置要求或者软件的实现的便利考虑,将上述功能分配由不同的功能模块完成,即将所述检测文档阅读顺序的装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。其中各功能模既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。

本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,作为独立的产品销售或使用。所述程序在执行时,可执行如上述各方法的实施例的全部或部分步骤。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。

以上所述实施例仅表达了本发明的几种实施方式,不能理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1