一种表格图像检测识别方法

文档序号:9751264阅读:1217来源:国知局
一种表格图像检测识别方法
【技术领域】
[0001] 本发明涉及图像识别领域,特别涉及一种表格图像检测识别方法。
【背景技术】
[0002] 图像识别技术是目前智能识别技术领域中非常重要的发展方向,图像识别的发展 经历了三个阶段:文字识别、数字图像处理与识别、物体识别;其中在众多的图像识别技术 中,对图像文字的识别技术显得尤为重要,这是因为图像文字往往比单纯图像包含更加重 要的可利用信息,文字识别一般是识别字母、数字和符号,从印刷文字识别到手写文字识 另IJ,应用非常广泛。图像识别问题的数学本质属于模式空间到类别空间的映射问题。目前, 在图像识别的发展中,主要有三种识别方法:统计模式识别、结构模式识别、模糊模式识别。
[0003] 随着图像文字的深入发展,越来越多的种类的图像文字资料,被纳入图像文字识 别的范畴中,其中表格作为文字数据记录汇总最精简表达方式,或者数据统计、结果分析中 最常用的表达格式,是各种数据分析工具中基础工具。表格在各行各业应用的广泛性不言 而喻。不难看出对于表格式图像文字识别的重要性,比如对一个企业年度业绩报表,可能包 含企业年度业绩中最重要的统计数据和分析结果,这些信息的重要性和概括性是其他任何 材料所比拟不了的,目前的网络信息中充斥着各种表格资料,但是很多表格都是以图片的 形式提供,比如各种扫描档案文件、PDF文件,自动识别这些图像表格资料,将图片类型的表 格内容还原成数字资料是将这些资料进行快速处理和分析的基础。
[0004] 但是,由于表格资料本身的表格结构特征,使得表格图像文字的识别比一般的普 通图像文字资料更加困难,现有技术中在进行图像中文字的识别时,首先需要将图像中的 字符串切分开,形成包含单个文字的小图片,然后使用一定的方法对切分后的文字进行识 另IJ。而进行文字切分最常用的方法为投影法,即是将图像文字二值化处理后,通过垂直投影 找到两个文字之间的分界线,根据分界线将文字切分开来。由于表格的框线的存在,直接使 用传统的投影发所实现的文字切分和识别就不太现实。同时由于表格本身结构的复杂多 变,复杂多变的轮廓框线使得投影法难以实现将表格文字信息的切分。同时由于图片文字 信息中的文字信息的复杂性(比如说左右结构的的汉字),在使用投影法进行切分时,左右 结构部件由于之间存在的间隙而容易被切分为独立的两部分,这不利于图像文字信息的准 确识别,面对大量的图像表格数据的快速分析需要,亟待一种快速、完整、准确的图像表格 文字识别方法。

【发明内容】

[0005] 本发明的目的在于克服现有技术中所存在的上述不足,提供一种表格图像检测识 别方法,能够快速完整的将图像表格中的文字信息切分出来。本发明首先检测出待识别图 像表格中的单元格轮廓;根据单元格轮廓所对应的四角顶点坐标将对应单元格中的文字信 息切分出来;通过投影法找出单元格内每个文字块的备用切分坐标位置;最后通过贝叶斯 分类器对备用切分点之间的文字块进行分类识别,实现文字部件,数字、字母或者标点符号 的分类切分,在对文字的准确的切分的基础上,将切分出来的文字块输入到神经网络中完 成文字内容的识别。
[0006] 为了实现上述发明目的,本发明提供以下技术方案,一种表格图像检测识别方法, 包含以下实现过程:
[0007] 将待处理图片进行二值化处理,检测出所述图像表格中的单元格,将各单元格中 的内容作为一个整体切分出来,形成对应的子图片;
[0008] 使用投影法找出子图片中文字信息的备用切分点;
[0009] 通过贝叶斯分类器对所述备用切分点之间的文字信息进行判断,找出优化切分 点,并通过优化切分点将图片中的文字切分出来;
[0010] 将切分出的文字图片输入训练好的神经网络中识别出对应的文字内容。
[0011] 具体的,本表格图像检测识别方法采用以下实现步骤:
[0012] (1)将待处理图像表格进行二值化处理,使用openCV图像处理工具中的 f indcontours函数检测出图像表格单元格轮廓;将检测出的单元格轮廓的点集提取出来放 置在对应的点类中;
[0013] (2)对所述步骤(1)提取出的单元格轮廓点集,调用minAreaRect函数构建出包含 单元格轮廓点集的面积最小的旋转矩形区域;并提取出该旋转矩形区域的四角顶点坐标 点;根据所述四角顶点坐标值将对应单元格中的文字信息作为整体切分出来,形成对应的 子图片;
[0014] (3)采用投影法找出所述子图片中文字信息的备用切分点;
[0015] (4)并通过贝叶斯分类器对所述备用切分点进行判断找出优化切分点,将图片中 的文字切分出来;
[0016] (5)将切分好的文字块图片输入经过训练的神经网络中,识别出对应的文字内容。
[0017] 进一步的,所述步骤(3)中,根据横向投影和纵向投影坐标确定每个文字的坐标位 置,根据坐标位置可以依次把单个文字切分出来,将子图片中切分出来的文字按照原有的 顺序进行识别,保证了子图片中文字识别的顺序和逻辑准确性。
[0018] 进一步的,所述步骤(3)中对切分出来的单元格文字图像进行侧向投影,计算出一 行的非〇像素的个数,并将该值放到pro jection_y类中。每一行非0像素的计算方法为:
X .,i是行数,j是列数,PiX(i,j)是对应像素值,n+1是像素点的总列数。
[0019] 进一步的,所述步骤(3)中对projection_y类中的元素进行遍历,变量k遍历范围 为从1开始到pro jection_y · size( )_1结束。如果pro jection_y[k] =0,pro jection_y[k+l ] >0, project ion_y[k+2]>0,则判断k为某一行的起始切分点,并将其放到类vector〈int> top中;如果pro jection_y[k] = 0,pro jection_y[k_l] >0,pro jection_y [k_2] >0,则判断 k为某一行的终点切分点,并将其放到类vector〈int>bottom中;top. size() = bottom, size ()。基于类top和bottom中的元素值即可将单元格中的文字行向切分出来,对应的两个坐标 值也就是该行所有文字的上下两个y坐标。
[0020]进一步的,对于切分出来的每一行的文字图像进行垂直投影,计算出一列的非0像 素的个数,并将该值放到P r 0 j e c t i ο η _ X类中。每一列非0像素的计算方法为: 是列数,i是行数,pix(i,j)是对应像素值,m+1像素点的总行数。 L〇〇21」
进一步的,对pro jection_x类中的元素进行遍历,变量k遍历范围为从1开始到 pro jection_x .size()_l结束。如果pro ject ion_x[k] = 0,pro ject ion_x [k+Ι ] >0, projection_x[k+2]>0,则判断k为某一文字块的起始切分点,并将其放到类vector〈int> left中;如果pro jection_x[k] = 0,pro jection_x[k_l ] >0,pro jection_x[k_2] >0,则判 断k为某一文字块的终点切分点,并将其放到类vector〈int>right中;遍历完后left. size ()应该等于right, size()。类left和right中的元素值就是单文字可选用的备用切分位置
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1