面向移动终端拍摄的图像表格检测与识别方法与流程

文档序号:11831592阅读:692来源:国知局
本发明涉及图像处理
技术领域
:,尤其涉及一种面向移动终端拍摄的图像表格检测与识别方法。
背景技术
::近年来,科学和信息技术的快速进步,特别是计算机技术、网络技术和大容量存储技术的不断发展,使得我们每天会接触到大量的信息,所以处在信息化时代的我们通常需要利用计算机处理大量的数字文档信息与文档图像,但这需要我们首先完成纸质信息向数字化信息的转变过程才能方便后续的计算机图像处理与文档识别。纸质文档向电子文档的转换过程主要包括:利用移动终端或扫描仪等设备完成文档图像的采集,并将文档的文字信息识别出来后存储到计算机中的过程。而在传统的文字识别技术中,人们通常运用光学原理的方式来完成从目标图像到文字信息转换的处理过程。OCR(OpticalCharacterRecognition,光学字符识别)技术是通过扫描仪等光学输入方式将各种图书、期刊、文献、档案等纸质文档转化成电子图像,并运用OCR技术分割目标图像中的待处理信息,并对待处理信息进行相应的识别。OCR技术的出现是人类信息化历程中重要的里程碑,该技术对比传统的手工录入方式,具有大大提高了资料录入、存储、检索与加工的效率等优点。因此,OCR技术具有十分广泛的应用场景,如:办公自动化中文件资料的自动输人,车牌自动识别系统,以及表格、票据、发票识别系统等。在传统的文档中,表格文档是一种较为常见的文档形式,表格本身作为一种高度精炼、集中的信息表达形式,因其具有简明、规范、便于填写和处理等特点,因而被广泛地应用在日常生活的方方面面上。表格自动化处理技术已经成为文档智能处理领域的一个重要组成部分。但是相比于一般文档的识别技术,表格识别技术的研究与发展在时间上要相对迟于文档识别技术的发展。近年来,随着各机构对表格识别系统的进一步认识,表格识别的市场需求不断加大,进而出现了清华文通、汉王科技等公司对表格识别技术的青睐,并取得了较好的成果。表格因其具有形式变化多样的特点,尽管经过不断研究有了很大的进步,但是处理表格的自动化的程度还很难达到实用的程度。表格的多样性,这也使得目前还很难找到一种能良好识别表格的通用方法,致使表格单元字符的识别的准确率还远远低于纯文档字符识别的准确率。人们仍然在不断探索和改进识别方法来实现表格信息处理的完全自动化。目前存在的表格识别方案可以分为两类:1、受限表格识别方案这种表格一般有着固定的结构形式,识别前需要得到表格的结构信息,然后利用这些结构信息来指导识别表格。对于这种表格的识别,一般先检测表格矩形边框的四个顶点的坐标,然后再结合单元格宽度和高度的先验知识求出每个单元格在图像中具体的位置,或者使用模板匹配技术直接把表格图像和标准的空白表格进行匹配计算。该方案的缺点为:由于这种方法需要借助先验知识,因此,无法自动适应各种不同格式的表格,只能应用在特定的场景下,例如,发票,纳税表,病历表等。2、非受限表格识别方案这种表格的特点在于没有固定的表格结构信息,所以识别该表格需要通过对图像表格进行结构分析,在得到表格的结构后再进行字符提取并识别。因而,这种表格识别算法也更加复杂,误检率高且不存在通用的算法。对于该种表格的分析方法又可分为投影法、轮廓提取法、表格线交叉点分析法、变换法等几种。投影法主要使用水平投影和竖直投影的信息来寻找表格的直线的位置,该方法相对简单且速度较快,但容易受到图像表格的变形和字符粘连表格线的影响;轮廓提取法也很容易因表格线断裂或字符粘连表格线而产生检测错误;表格线交叉点分析法则通过对表格线的相邻交叉点进行分类和匹配进行迭代地构建出表格中的所有单元格,但该方法比较耗时,并且容易受断裂表格线的影响而产生错误;Hough变换是一种效果较好的方法,能有效检测出断裂表格线、虚线等不同类型的表格线。在目前的办公自动化中,人们通常还是使用扫描仪来完成纸质文档图像的获取工作,但是,由于移动终端设备的普及以及便捷性等优点,日常生活中,人们越来越习惯用移动终端完成文档图像的获取操作。例如,人们在移动终端拍摄完文档图像后,希望快速的将文档图像转化为文字信息。然而,使用移动终端设备进行拍摄图像表格时因拍摄角度的原因,所采集的图像容易出现图像畸变的问题,这将会对文字的识别步骤造成很大的影响,同时,图像的畸变也会造成拍摄图像中的表格线会出现严重的变形,因此,上述的非受限表格的检测与识别算法在对移动终端拍摄的图像表格检测与识别上存在着相当大的挑战,从目前的识别的效果上来看,其最终的识别效果很难让人满意。技术实现要素:本发明的实施例提供了一种面向移动终端拍摄的图像表格检测与识别方法,以实现有效地对手机等移动终端拍摄的图像表格进行检测与识别。为了实现上述目的,本发明采取了如下技术方案。一种面向移动终端拍摄的图像表格检测与识别方法,包括:使用连通域分析法从移动终端拍摄的混合文档图像中分离出表格区域,得到表格图像,对所述表格图像进行图像矫正操作;对矫正后的表格图像使用由粗糙到精细的直线检测算法,检测并定位到图像中直线的位置,并对检测出的直线进行校正处理,提取出所述表格图像中每个表格单元格的信息;根据提取出的表格单元格信息进行文本识别,通过基于单元格合并的表格创建算法在文档中重建对应的表格。进一步地,所述使用连通域分析法从移动终端拍摄的图像中分离出表格区域,得到表格图像,包括:将移动终端拍摄的混合文档图像由RGB空间转化为灰度空间,得到灰度图像;使用Sober算子计算所述灰度图像的边缘密度,使用所述边缘密度对所述灰度图像进行边缘框线强化处理;采用OSTU全局方法寻找最佳的阈值,利用所述最佳的阈值对边缘框线强化处理后的灰度图像做二值化处理,对二值化处理后的灰度图像进行形态学处理;利用种子填充法对形态学处理后的图像作连通域分析方法,寻找最大的连通域作为表格区域,将表格区域图像从所述混合文档图像中提取出来。进一步地,所述利用种子填充法对形态学处理后的图像作连通域分析方法,寻找最大的连通域作为表格区域,将表格区域图像从所述混合文档图像中提取出来,包括:步骤1、扫描形态学处理后的图像I,直到当前像素点I(x,y)==0,将所述当前像素点I(x,y)作为连通域的点:a.将所述当前像素点I(x,y)作为种子,并赋予该种子一个label,将与该种子相邻的所有前景像素都压入栈中;b.弹出栈顶像素,赋予所述栈顶像素相同的label,将与该栈顶像素相邻的所有前景像素都压入栈中;c.重复b步骤,直到栈为空,找到所述形态学处理后的图像I中的一个连通区域,该连通区域内的像素值被标记为label,该连通域记为CC(i),其中i记为第i个检测到的连通域;步骤2、重复步骤1,直到扫描结束,得到所述形态学处理后的图像I中所有的连通区域CC;步骤3、遍历所有的连通域CC,寻找其中最大的连通域,记为CC(m),根据该连通域CC(m)中记录的点坐标,分别计算出连通域CC(m)中所有像素点的x,y坐标的最小和最大值,并存储到ccxmin,ccxmax,ccymin和ccymax中,则该连通域CC(m)的高度ccheight和宽度ccwidth的计算公式如下:ccheight=ccymax-ccymin;ccwidth=ccxmax-ccxmin;步骤4、根据得到的连通域CC(m)中最小顶点坐标(ccxmin,ccxmax)和表格连通域的高度ccheight与宽度ccwidth,从形态学处理后的图像I中提取出表格区域图像ItableRect。进一步地,所述对所述表格图像进行图像矫正操作,包括:使用顶点检测算法计算出表格框线的四个顶点:左上角(srcPlt(xlt,ylt))、左下角点(srcPlb(xlb,ylb))、右上角点(srcPrt(xrt,yrt))和右下角点(srcPrb(xrb,yrb));定义要恢复出的目标图像的四个顶点分左上角点(destPlt(mlt,nlt))、左下角点(destPlb(mlb,nlb))、右上角点(destPrt(mrt,nrt))和右下角点(destPrb(mrb,nrb))。将所述4对点坐标带入透视变换的公式中求出投影变换系数矩阵,根据所述投影变换系数矩阵恢复出所述表格图像矫正后的图像。进一步地,所述的使用顶点检测算法计算出表格框线的四个顶点:左上角(srcPlt(xlt,ylt))、左下角点(srcPlb(xlb,ylb))、右上角点(srcPrt(xrt,yrt))和右下角点(srcPrb(xrb,yrb)),包括:对于ItableRect图像的左边界线上,分别在其长度的1/3,2/3处取两个点,记为pleft1,pleft2,对于点pleft1,pleft2分别沿着水平正方向扫描图像,直到当前像素点ItableRect(x,y)==0,则说明该点为表格左框线上的点,并将检测到的点分别标记为tleft1,tleft2,依靠点tleft1和tleft2确定出表格线的左边框线leftLine;对于ItableRect图像的右边界线上,分别在其长度的1/3,2/3处取两个点,分别记为pright1,pright2,对于点pright1,pright2分别沿着水平负方向出发扫描图像,直到当前像素点ItableRect(x,y)==0,则说明该点为表格右框线上的点,并将检测到的点分别标记为tright1,tright2,依靠点tright1和tright2确定出表格线的右边框线rightLine;对于ItableRect图像的上边界线上,分别在其长度的1/3,2/3处取两个点,分别记为ptop1,ptop2,对于点ptop1,ptop2分别沿着垂直向下的方向出发扫描图像,直到当前像素点ItableRect(x,y)==0,则说明该点为表格上边框线上的点,并将检测到的点分别标记为ttop1,ttop2,依靠点ttop1和ttop2确定出表格线的上边框线topLine;对于ItableRect图像的底边界线上,分别在其长度的1/3,2/3处取两个点,分别记为pbottom1,pbottom2。对于点pbottom1,pbottom2分别沿着水平方向出发扫描图像,直到当前像素点ItableRect(x,y)==0,则说明该点为表格底边框线上的点,并将检测到的点分别标记为tbottom1,tbottom2,依靠点tbottom1和tbottom2确定出表格线的底边框框线bottomLine;将所述四条表格框线:leftLine、rightLine、topLine和bottomLine两两求其线的交点,求得表格框线的四个顶点坐标为左上角点(srcPlt(xlt,ylt))、左下角点(srcPlb(xlb,ylb))、右上角点(srcPrt(xrt,yrt))和右下角点(srcPrb(xrb,yrb))。进一步地,所述的对矫正后的表格图像使用由粗糙到精细的直线检测算法,检测并定位到图像中直线的位置,包括:所述粗糙检测包括:将图像表格分别做水平投影,垂直投影分析,保留满足设定阈值条件的波峰为直线;所述精细检测包括:对所述粗糙检测的每一条直线,在其周围的区域内进行精细的搜索,保存满足条件的直线。进一步地,所述的并对检测出的直线进行校正处理,包括:校正表格线的端点位置,校正过程如下:(1)遍历横线集合hLineSet,对于每个元素hLineSet[i];(2)遍历竖线集合vLineSet,对于每个元素vLineSet[j];d.如果垂直直线vLineSet[j]到水平线hLineSet[i]的距离小于15像素点,则延长垂直直线vLineSet[j]与hLineSet[i]相交;e.如果水平直线hLineSet[i]到垂直直线vLineSet[j]的距离小于15像素点,则延长水平直线hLineSet[i]与hLineSet[j]相交;f.如果同时延长hLineSet[i]和vLineSet[j]15个像素点才能相交,则同时延长hLineSet[i]与vLineSet[j]相交。进一步地,所述的提取出所述表格图像中每个表格单元格的信息,包括:表格线交点的提取过程如下:步骤(1)、遍历水平表格线集合hLineSet,对于集合中的每条直线hLineSet[i];步骤(2)、遍历垂直表格线集合vLineSet,对于集合中的每条直线vLineSet[j];步骤(3)、若横线hLineSet[i]和竖线vLineSet[j]相交,保存交点坐标和交点的类型信息到crossPSet中;步骤(4)、检查hLineSet是否遍历完成,若未完成则执行步骤(1)、(2)、(3);得到的交点是按照纵坐标递增,对于相同纵坐标按照横坐标递增的顺序存储;表格单元的提取过程如下:从单元格的左下顶点开始提取:步骤1、遍历交点集合crossPSet,如果crossPSet[i].type不为4、5、7、8中的一个,则跳至步骤(7)。步骤2、遍历i之后的交点crossPSet,如果crossPSet[j].type不为5、6、8、9中的一个,则跳至步骤(6)。步骤3、遍历i之前的交点crossPSet,如果crossPSet[k].type不为1、2、4、5中的一个,则跳至步骤(5)。步骤4、根据crossPSet[i].point、crossPSet[j].point和crossPSet[k].point三个点计算出单元格右上方交点的坐标,将左下方点和右上方点存储到单元格集合cellSet中,跳至步骤(7)。步骤5、判断i之前的交点集合crossPSet是否遍历完成,若未完成继续跳至步骤(3)。步骤6、判断i之后的交点集合crossPSet是否遍历完成,若未完成继续跳至步骤(2)。步骤7、判断交点集合crossPSet是否遍历完成,若未完成继续跳至步骤(1)。进一步地,所述的根据提取出的表格单元格信息进行文本识别,通过基于单元格合并的表格创建算法在文档中重建对应的表格,包括:1、对识别出的所有表格单元的纵坐标集nRows进行去重复操作,并将去重复后的纵坐标集nRows按照升序排序;2、对于识别出的所有表格单元的横坐标集nCols进行去重复操作,并将去重复后的横坐标集nCols按照升序排序;3、使用API接口创建文档,在文档中生成一张(nRows.size-1)*(nCols.size-1)大小的规则的表格wordTable;4、遍历表格单元集cellSet,根据单元格cellSet(i)的坐标信息计算出该表格单元相对于整张表格wordTable的要合并的行数mergeRowsCount和列数mergeColsCount;5、根据单元格cellSet(i)的坐标信息计算出该表格单元相对于整张表格wordTable的行坐标索引rowIndex和纵坐标索引colIndex;6、根据所述mergeRowsCount、mergeColsCount、rowIndex和colIndex执行如下的合并过程:e.mergeRowsCount≠0、mergeColsCount≠0,代表行和列同时需要进行合并,这种状况下,先行合并,再合并列,将该单元格识别出的文字信息cellSet(i).text写入到合并生成的新的单元格中;f.mergeRowsCount==0、mergeColsCount≠0,仅需进行合并列操作,将该单元格识别出的文字信息cellSet(i).text写入到合并生成的新的单元格中;g.mergeRowsCount≠0、mergeColsCount==0,仅需进行合并行操作,将该单元格识别出的文字信息cellSet(i).text写入到合并生成的新的单元格中;h.mergeRowsCount==0、mergeColsCount==0,无需进行列合并操作,直接将该单元格识别出的文字信息cellSet(i).text写入单元格中;8、重复(4)、(5)、(6)步骤,直到表格单元集cellSet中的所有元素被遍历完,表格wordTable创建操作完成。由上述本发明的实施例提供的技术方案可以看出,本发明实施例提出的基于单元格合并的表格的创建算法对规则与不规则的表格创建都具有很好的自适应性。用户可以对新创建的word文档做简单的编辑修改后即可完成图像表格到文档文件的转化操作,从而大大提高了办公自动化的效率,因此,本发明的方法具有很好的实用性。本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。附图说明为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例提供的一种面向移动终端拍摄的图像表格检测与识别方法的结构框架图;图2为本发明实施例提供的一种移动终端拍摄的图像表格示意图;图3为本发明实施例提供的一种提取出的表格区域图像;图4为本发明实施例提供的一种图像矫正恢复出的图像;图5为本发明实施例提供的一种两条直线求交点的示意图;图6为本发明实施例提供的一种投影变换图像矫正示意图;图7为本发明实施例提供的一种直线合并示意图;图8为本发明实施例提供的一种交点类型图;图9为本发明实施例提供的一种单元格的提取示意图;图10为本发明实施例提供的一种行列同时合并示意图;图11为本发明实施例提供的一种合并列示意图;图12为本发明实施例提供的一种合并行示意图;图13为本发明实施例提供的一种无需单元格合并操作示意图;图14为本发明实施例提供的一种最终生成的表格;图15为本发明实施例提供的一种表格顶点检测的示意图。具体实施方式下面详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。本
技术领域
:技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。本
技术领域
:技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。为便于对本发明实施例的理解,下面将结合附图以几个具体实施例为例做进一步的解释说明,且各个实施例并不构成对本发明实施例的限定。为了克服上述问题,针对移动终端拍摄的表格图像,本发明提出一种面向移动终端拍摄的表格图像检测与识别方法,旨在解决现有的方案对拍摄过程中产生畸变的表格图像难检测的问题,同时,该方法在提取表格图像中的单元格后,利用OCR完成图像中文本信息与公式等的识别,最终按照识别出的表格信息,转换成为相应可编辑的word文件,从而提高了办公效率。本发明首先通过连通域分析技术对混合文档图像进行版面分析,快速地从混合文档图像中提取出表格区域的有效信息,从而提高了版面分析的速度,并利用透视变换处理技术对提取出的表格区域图像进行矫正处理,消除因移动终端拍摄角度而造成的图像变形对后续检测与识别的影响,本发明采用一种由粗糙到精细的直线的检测方法的完成表格线的检测与提取工作。在表格线的提取之后,针对表格线存在的断裂和非对齐等问题分别做出相应的处理。在表格信息提取的部分,本发明采用表格框线交点的特征提取表格的单元,并使用开源的Tesseract-OCR识别引擎来完成表格文本的识别操作。最后,使用提出的基于单元格合并的表格创建算法在word文件中重建表格。本发明实施例提供的一种面向移动终端拍摄的表格图像检测与识别方法的实现原理示意图如图1所示,包括:图像预处理、表格框架识别与表格文档重建提取三大处理过程,其中图像预处理分为表格区域提取与图像矫正两个模块;表格框架识别包括:表格线检测、表格框架校正和单元格提取;表格文档重建部分则分别由文字识别和表格重建组成,系统的各处理过程介绍如下:1图像的预处理1.1表格区域提取表格区域的提取,就是要从移动终端拍摄的混合文档图像中提取出表格图像,为后续的表格图像的矫正做服务。对于表格区域的定位与提取,传统的方法一般则是利用霍夫变换的直线检测算法分析出表格的框线后,定位并分离出表格。该种方法首先需要使用霍夫变换做直线检测,然后根据检测出的表格直线做表格的定位分析。然而,由于霍夫变换需要设置一些经验性的阈值,同时考虑到对于移动终端拍摄的图像往往会因拍摄角度造成图像畸变,这就大大增加了直线检测的难度。同时,过多的直线检测也会相应的增加计算量,这使得表格区域定位提取效率下降。考虑到对图像做边缘增强、全局二值化和形态学处理等操作后,整个表格框架的像素点会更加紧密的连接形成一个大的连通区域,并且与图像中的其他连通域相比,该连通域一般是的最大的。因此,在本发明实施例中使用连通域分析技术将包含表格的连通域标记提取出来。在本发明中,首先,将移动终端拍摄的混合文档图像(附图2所示)由RGB颜色空间转化为灰度空间,因为表格图像中的表格框线一般比较细,如果直接对其做二值化操作,就很容易发生表格框线的断裂的状况。为了克服上述操作的难点,同时又注意到图像表格主要由文字和表格框线组成,且图像表格还具有文字笔画和表格框线边缘明显、分布紧凑等主要特点,因此,在本发明中采用Sober算子提取图像中的框线和文字的边缘,然后使用边缘密度强化框线的边缘,达到了克服断线的目的。边缘密度的计算公式为:其中E(x,y)表示由Sober算子提取的边缘,w表示水平窗口大小。经过边缘强化后,采用OSTU全局方法寻找最佳的阈值做二值化处理。为了使表格区域的图像可以作为一个整体的连通域分离出来,本发明对二值化的图像进行形态学处理。考虑到通常状况下,一张混合文档图像中的表格占据了主要部分,本发明利用种子填充法作连通域分析方法,寻找最大的连通域作为表格区域,将表格区域图像从混合文档中提取出来,分离出的表格区域图像如附图3。上述利用种子填充法作连通域分析方法的具体处理过程包括:从连通区域的定义可以知道,一个连通区域是由具有相同像素值的相邻像素组成像素集合,因此,我们就可以通过这两个条件在图像中寻找连通区域,对于找到的每个连通区域,我们赋予其一个唯一的标识(Label),以区别其他连通区域。在本发明中使用Seed-Filling种子填充法作为连通域分析的基本算法。种子填充方法来源于计算机图形学,常用于对某个图形进行填充。其算法的思路为:选取一个前景像素点作为种子,然后根据连通区域的两个基本条件(像素值相同、位置相邻)将与种子相邻的前景像素合并到同一个像素集合中,最后得到的该像素集合则为一个连通区域。表格区域定位与提取的操作过程如下:1、扫描图像,直到当前像素点I(x,y)==0(连通域的点):a.将I(x,y)作为种子(像素位置),并赋予其一个label,然后将该种子相邻的所有前景像素都压入栈中;b.弹出栈顶像素,赋予其相同的label,然后再将与该栈顶像素相邻的所有前景像素都压入栈中;c.重复b步骤,直到栈为空;此时,便找到了图像I中的一个连通区域,该区域内的像素值被标记为label,本发明中的label从2初始值开始标记,每标记完一个连通域后,label的值加一,同时,系统使用四邻域点做连通域分析。该连通域记为CC(i),其中i记为第i个检测到的连通域;重复第(1)步,直到扫描结束。扫描结束后,就可以得到图像I中所有的连通区域;遍历所有的连通域CC,寻找其中最大的连通域,记为CC(m),根据该连通域中记录的点坐标,分别计算出连通域中所有像素点的x,y坐标的最小和最大值,并存储到ccxmin,ccxmax,ccymin和ccymax中,则该连通域的高度ccheight和宽度ccwidth就可以得到。其中,ccheight=ccymax-ccymin;ccwidth=ccxmax-ccxmin;提取表格区域图像,根据得到的连通域最小顶点坐标(ccxmin,ccxmax)和表格连通域的高度(ccheight)与宽度(ccwidth),就可以从原图像I中提取出表格区域图像记为ItableRect。1.2图像矫正将提取出的表格图像,分别计算出最外围表格框线的四个顶点:左上角、左下角、右上角和右下角,在计算四个交点的过程中,本发明使用一种对于表格图像更有针对性的顶点检测方法,来获取表格框的最外围的四个顶点。然后,通过计算出的四个顶点来映射出透视变换的映射矩阵,最后通过映射矩阵,将发生畸变的图像表格恢复出来。具体处理过程包括:为了使用透视变换矫正提取出的表格区域图像,我们首先需要计算出表格框线的四个顶点:左上角、左下角、右上角和右下角。将上述提取出的表格区域图像ItableRect变换为灰度图像,然后使用OSTU方法计算出该图像的二值图,此时表格最外层的四条框线应该很接近ItableRect图像的边界线。基于上面的观察,本发明使用一种针对图像表格更有效的方法来获取表格框的最外围的四个顶点,顶点检测算法的具体实施过程为:(1)对于ItableRect图像的左边界线上,分别在其长度的1/3,2/3处取两个点,记为pleft1,pleft2。对于点pleft1,pleft2分别沿着水平正方向扫描图像,直到当前像素点ItableRect(x,y)==0,则说明该点为表格左框线上的点,并将检测到的点分别标记为tleft1,tleft2,因此,依靠点tleft1和tleft2就可以确定出表格线的左边框线leftLine,顶点检测的示意图如附图15所示。(2)对于ItableRect图像的右边界线上,分别在其长度的1/3,2/3处取两个点,分别记为pright1,pright2。对于点pright1,pright2分别沿着水平负方向出发扫描图像,直到当前像素点ItableRect(x,y)==0,则说明该点为表格右框线上的点,并将检测到的点分别标记为tright1,tright2,因此,依靠点tright1和tright2就可以确定出表格线的右边框线rightLine。(3)对于ItableRect图像的上边界线上,分别在其长度的1/3,2/3处取两个点,分别记为ptop1,ptop2。对于点ptop1,ptop2分别沿着垂直向下的方向出发扫描图像,直到当前像素点ItableRect(x,y)==0,则说明该点为表格上边框线上的点,并将检测到的点分别标记为ttop1,ttop2,因此,依靠点ttop1和ttop2就可以确定出表格线的上边框线topLine。(4)对于ItableRect图像的底边界线上,分别在其长度的1/3,2/3处取两个点,分别记为pbottom1,pbottom2。对于点pbottom1,pbottom2分别沿着水平方向出发扫描图像,直到当前像素点ItableRect(x,y)==0,则说明该点为表格底边框线上的点,并将检测到的点分别标记为tbottom1,tbottom2,因此,依靠点tbottom1和tbottom2就可以确定出表格线的底边框框线bottomLine。(5)通过上面的操作,我们可以得到的四条表格框线:leftLine、rightLine、topLine和bottomLine。将四条直线两两求其线的交点即可求得顶点坐标。对于计算两条直线交点的坐标设为P(x,y),我们按照如下公式进行计算:x=(x1y2-x2y1)(x3-x4)-(x3y4-x4y3)(x1-x2)(y3-y4)(x1-x2)-(y1-y2)(x3-x4)]]>y=(x1y2-x2y1)(y3-y4)-(x3y4-x4y3)(y1-y2)(y3-y4)(x1-x2)-(y1-y2)(x3-x4)]]>两条直线求交点的示意图如附图5所示。根据上述操作,可求得表格框线的四个顶点坐标为左上角点(srcPlt(xlt,ylt))、左下角点(srcPlb(xlb,ylb))、右上角点(srcPrt(xrt,yrt))和右下角点(srcPrb(xrb,yrb))。本发明中使用透视变换解决了图像畸变的问题。透视变换是将图像投影到一个新的视平面,也称作投影映射。通用的变换公式为:[x′,y′,z′]=[u,v,w]·A=[u,v,w]a11a12a13a21a22a23a31a32a33]]>u,v是原始图像的坐标,对应得到变换后的图像坐标x,y,其中x=x'/w',y=y'/w'。因此重写之前的变换公式可以得到:x=x′w′=a11u+a21v+a31a13u+a23v+a33]]>y=y′w′=a12u+a22v+a32a13u+a23v+a33]]>一般的a33通常取值为1,所以,已知变换的4组对应的点就可以按照上述的公式求取变换矩阵A,因此,由变换矩阵A就可以恢复出新的变换后的图像。附图6示意了使用投影变换矫正图像过程。该部分恢复的具体过程下:(1)首先,定义要恢复出的目标图像的四个顶点分别记为左上角点(destPlt(mlt,nlt))、左下角点(destPlb(mlb,nlb))、右上角点(destPrt(mrt,nrt))和右下角点(destPrb(mrb,nrb)),则变换的4组对应点可以表示成:srcPlt(xlt,ylt)→destPlt(mlt,nlt),srcPlb(xlb,ylb)→destPlb(mlb,nlb),srcPrt(xrt,yrt)→destPrt(mrt,nrt),srcPrb(xrb,yrb)→destPrb(mrb,nrb);(2)将4对点坐标带入上式的变换公式中,求出投影变换系数矩阵A;(3)遍历表格区域图像的每一个像素点ItableRect(x,y),根据变换系数矩阵A,求得该点在新图像中所对应的位置,将恢复出的新图像记为newItableRect,投影变换后恢复出的图像如附图4所示。2表格框架识别2.1表格线检测发现对于表格区域提取后的图像做投影图具有以下几个特点:第一,投影图中会出现比较明显的峰值,这些峰值对应图像表格中的表格线的位置。第二,以水平投影为例,第一条表格线的上侧和最后一条表格线的下侧投影值非常小,因为一般表格的两侧都有一部分空白区域。因此,在表格线检测上,本发明使用一种基于投影法改进的直线检测算法:由粗糙到精细的直线的检测方法。首先,利用投影法来确定横向与纵向表格线的粗略的位置。为了进一步精确地找到表格框线的位置,在上述投影法确定的横向与纵向表格线的位置附近区域搜索满足一定条件的直线,最终获得精确地直线。上述由粗糙到精细的直线的检测方法的具体处理过程包括:使用投影法确定横向与纵向的表格线的粗略位置的具体执行过程如下:(1)首先,对整个图像做水平投影,得到水平投影数组hprojection。(2)遍历hprojection,直到满足hprojection(i-1)<T且hprojection(i)≥T的条件,其中T为投影阈值,则代表该位置是表格垂直方向的起始位置,记录i为表格垂直方向的起始的坐标;继续遍历寻找表格垂直方向的结束点位置,直到满足hprojection(j-1)≥T且hprojection(j)<T的条件,并记录j为表格垂直方向的结束坐标。(3)在垂直方向的起始线和终止线之间,对图像做垂直投影vprojection。(4)根据垂直投影vprojection数组,求出表格在水平方向的起始坐标m和结束坐标n,方法同上。(5)在表格垂直方向上的起始线hprojecton[i]和终止线hprojecton[j]之间,搜索所有的峰值点,保存到hor中。(6)遍历hor,在hor[i]-t1到hor[i]+t1范围内,搜索提取直线,其中,t1为控制搜索区域的阈值,将所有满足条件的表格横线存储到hLineSet中。(7)在表格水平方向上的起始线vprojecton[m]和终止线vprojecto[nn]之间,搜索所有的峰值点,保存到ver中。(8)同步骤(6)一样遍历hor,将满足条件的表格竖线存储到vLineSet中。直线的断线连接:(1)把hLineSet和vLineSet集合中的直线重新绘制到空白图上,做二值化处理后,并细化处理得到细化图像Ithin。(2)水平线段合并:a.从细化图像Ithin单独提取出横线集合hLineSetb.合并断裂的横线,若两条横线的垂直距离小于15,并且左直线的右端点和右直线的左端点距离小于15,则把两条直线合并。合并示意图如附图7所示c.删除直线长度小于阈值的表格横线(3)使用步骤(2)的方法对垂直表格线的进行合并删除后保存到vLineSet中。2.2表格框架校正经过直线检测后,我们可以得到表格的基本框架结构,但是所获得表格框架线可能存在直线断裂和表格单元端点连接的问题。为了解决上述问题,需要对表格框架进行校正操作。因为提取的表格线的有误差,为了保证水平表格线和垂直表格线相交,需要校正表格线的端点位置,校正过程如下:(1)遍历横线集合hLineSet,对于每个元素hLineSet[i]。(2)遍历竖线集合vLineSet,对于每个元素vLineSet[j]。g.如果垂直直线vLineSet[j]到水平线hLineSet[i]的距离小于15像素点,则延长垂直直线vLineSet[j]与hLineSet[i]相交。h.如果水平直线hLineSet[i]到垂直直线vLineSet[j]的距离小于15像素点,则延长水平直线hLineSet[i]与hLineSet[j]相交。i.如果同时延长hLineSet[i]和vLineSet[j]15个像素点才能相交,则同时延长hLineSet[i]与vLineSet[j]相交。2.3表格单元提取为了能够克服表格框线对表格单元中的文字信息识别的影响,需要根据校正后的横线与竖线,提取表格单元的坐标信息,为后续的OCR文字识别提供准备。表格线交点的提取过程如下:1、遍历水平表格线集合hLineSet,对于集合中的每条直线hLineSet[i]。2、遍历垂直表格线集合vLineSet,对于集合中的每条直线vLineSet[j]。3、若横线hLineSet[i]和竖线vLineSet[j]相交,保存交点坐标和交点的类型信息到crossPSet中,交点类型见附图8。4、检查hLineSet是否遍历完成,若未完成则执行步骤(1)、(2)、(3)。这种方法可以保证得到的交点是按照纵坐标递增,对于相同纵坐标按照横坐标递增的顺序存储,这样的好处在于方便后续根据交点坐标和交点类型提取表格单元的操作。表格单元的提取过程如下:提取单元格从单元格的左下顶点开始,只有图8中类型4、5、7、8才可能是左下角,然后搜索i之后的点,找到右下角的点j(类型5、6、8、9),然后找左上角的交点(类型1、2、4、5),根据找到的3个点求出右上角的点,然后判断右上角的点是否也在交点集合中,若在集合中,则把单元格保存起来。单元格的提取示意图如附图9所示,具体的实施过程为:步骤1、遍历交点集合crossPSet,如果crossPSet[i].type不为4、5、7、8中的一个,则跳至步骤(7)。步骤2、遍历i之后的交点crossPSet,如果crossPSet[j].type不为5、6、8、9中的一个,则跳至步骤(6)。步骤3、遍历i之前的交点crossPSet,如果crossPSet[k].type不为1、2、4、5中的一个,则跳至步骤(5)。步骤4、根据crossPSet[i].point、crossPSet[j].point和crossPSet[k].point三个点计算出单元格右上方交点的坐标,将左下方点和右上方点存储到单元格集合cellSet中,跳至步骤(7)。步骤5、判断i之前的交点集合crossPSet是否遍历完成,若未完成继续跳至步骤(3)。步骤6、判断i之后的交点集合crossPSet是否遍历完成,若未完成继续跳至步步骤(2)。步骤7、判断交点集合crossPSet是否遍历完成,若未完成继续跳至步骤(1)。3表格文档重建3.1文字识别根据提取出的表格单元的坐标信息,使用OCR系统识别并保存单元格的文本信息。OCR系统使用的是Tesseract-OCR识别引擎,该引擎支持中文识别并且还可以训练自己的识别库,同时,该OCR系统对中文印体刷体具有很好的识别率和识别速度。因此,本发明使用该OCR识别引擎作为文字识别模块,来提取每个表格单元的文本信息。表格重建创建word文档文件,按照表格单元提取模块获取的单元格的位置信息,在文档中创建与其对应的表格单元,并将上步骤中OCR识别出的文字信息填写到相应的单元格中。在创建word文档的表格时,针对不规则表格,本发明提出一种基于单元格合并的表格的创建算法,具体处理过程如下:(1)首先,对识别出的所有表格单元的纵坐标集(nRows)进行去重复操作,并将去重复后的坐标集(nRows)按照升序排序。(2)对于识别出的所有表格单元的横坐标集(nCols),同样按步骤(1)进行去重复后升序排序。(3)使用API(ApplicationProgrammingInterface,应用程序编程接口)接口创建word文档,在文档中生成一张(nRows.size-1)*(nCols.size-1)大小的规则的表格wordTable。(4)遍历表格单元集cellSet,根据单元格cellSet(i)的坐标信息计算出该表格单元相对于整张表格wordTable的要合并的行数(mergeRowsCount)和列数(mergeColsCount)(5)根据单元格cellSet(i)的坐标信息计算出该表格单元相对于整张表格wordTable的行坐标索引(rowIndex)和纵坐标索引(colIndex)(6)根据mergeRowsCount,mergeColsCount,rowIndex和colIndex执行合并过程:i.mergeRowsCount≠0、mergeColsCount≠0,代表行和列同时需要进行合并,这种状况下,先行合并,再合并列,示意图如附图10所示,将该单元格识别出的文字信息cellSet(i).text写入到合并生成的新的单元格中。j.mergeRowsCount==0、mergeColsCount≠0,仅需进行合并列操作,示意图如附图11所示,将该单元格识别出的文字信息cellSet(i).text写入到合并生成的新的单元格中。k.mergeRowsCount≠0、mergeColsCount==0,仅需进行合并行操作,示意图如附图12所示,将该单元格识别出的文字信息cellSet(i).text写入到合并生成的新的单元格中。l.mergeRowsCount==0、mergeColsCount==0,无需进行列合并操作,示意图如附图13所示,直接将该单元格识别出的文字信息cellSet(i).text写入单元格中。(7)重复(4)、(5)、(6)步骤,直到表格单元集cellSet中的所有元素被遍历完,表格wordTable创建操作完成,生成的表格经过简单的文字修正编辑后如附图14所示。综上所述,本发明实施例提出的基于单元格合并的表格的创建算法对规则与不规则的表格创建都具有很好的自适应性。用户可以对新创建的word文档做简单的编辑修改后即可完成图像表格到文档文件的转化操作,从而大大提高了办公自动化的效率,因此,本发明的方法具有很好的实用性。本发明首先通过连通域分析技术对混合文档图像进行版面分析,快速地从混合文档图像中提取出表格区域的有效信息,从而提高了版面分析的速度,并利用透视变换处理技术对提取出的表格区域图像进行矫正处理,消除了因手机等移动终端拍摄角度而造成的图像表格变形对后续表格检测与识别的影响。本发明采用一种由粗糙到精细的直线的检测方法来完成表格线的检测与提取,并使用开源的Tesseract-OCR识别引擎完成表格文本的识别操作。最后,使用提出的基于单元格合并的表格创建算法在word文件中重建表格。大大提高了办公自动化的效率。本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
:的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1