精华内容
下载资源
问答
  • 云脉文档识别

    2014-02-24 15:28:22
    云脉文档识别
  • 云脉文档识别 v1.0.zip

    2019-07-16 22:58:46
    云脉文档识别是一款基于Windows系统的识别软件。无论是拍照、导入、识别、自动分类,还是核对信息、批量管理、导出表格,全程都能在电脑上完成。文档扫描识别快速高效,采集识读一张行驶证3-5秒钟,而且识别精度高。...
  • 文档识别中文破解版

    2013-03-21 23:41:18
    文档识别器 用来识别扫描杂志上的文字 这个是破解版的 直接就能用
  • 基于机器学习的恶意文档识别工具设计与实现.pdf
  • 人工智能在手写文档识别分析中的技术演进.pdf
  • 思根文档识别破解版

    2012-04-03 11:51:54
    用“文档识别”软件可以将书籍,报纸等纸质上面的文字转换成电子档,识别后的文字可以剪切复制,可以任意编辑。刚刚测试了一下,识别率还是很高的。 识别好的自动保存到哪里的? 你指的是文字还是图片?识别后的...
  • 文档识别中文破解版.apk 看名字就知道了
  • 该系统使用基于字符识别的方法进行文档识别,图像经过预处理后,提取多种特征 进行组合,并且考虑到字符粘连的情况,在训练样本中加入部分易粘连字母组合进行识别.通过实 验证明,该识别系统快速、稳定且有效.
  • 现有的文字识别技术一般采用光学的方式将文字图像信息才加到计算机中,因此该类技术被称作光学字符识别技术
  • 文档为数学建模题目,是某年的全球大学生数学建模挑战赛的C题
  • 思根文档识别

    2013-04-02 16:36:15
    手机直接拍摄图像,自动识别图像文字信息,在线翻译,分享发送给好友!
  • 自动文档识别软件中文字增强和字符分割程序的设计.doc 我的资源有 很多图像处理的 主要是指纹识别和文字识别
  • 导读:作者系腾讯QQ研发中心——CV应用研究组的totoralin。本文主要介绍基于深度学习的文档重建框架,通过文档校正、版面分析、字体识别和阅读排序将纸质文档智能转成可...

    640?wx_fmt=gif




    导读:作者系腾讯QQ研发中心——CV应用研究组的totoralin。本文主要介绍基于深度学习的文档重建框架,通过文档校正、版面分析、字体识别和阅读排序将纸质文档智能转成可编辑的电子文档。相比较传统的OCR技术,更加完整地恢复出文档关键图表等内容,提高用户文档处理的效率。


    1、相关背景


    随着知识爆炸,借助纸质媒体、网络媒体等途径每天我们都在接触大量的信息。但是当我们发现某些信息是有启发性、有价值的,又苦于如何将这些信息沉淀下来。由于这些信息载体丰富多样,有的是纸质书有的是网页报道有的是PDF电子书,没有按照统一的方式存储不利于对其整理归档,同时这些内容通常都是不可直接编辑的,无法对里面的内容编辑整理。


    比如当我们看书发现一篇文章写得针砭时弊,想记录下来同时写点感想,此时我们通常需要将文章部分内容输入到WORD等编辑器中,然后再写下自己的心得体会;比如我们手握一大堆纸质报表,需要对里面的数据进行核算,此时我们通常需要将报表内容输入到EXCEL中,然后才能进行数据分析。


    此等繁琐的工作限制了我们的想象,我们90%的时间基本花费在将这些内容转成WORD、EXCELL等编辑器中,严重影响学习工作效率。如何高效自动地将优质纸质文档转成可直接编辑的电子文档,将极大解放键盘上忙碌的双手,提高学习工作中知识沉淀的效率。


    随着图像分析技术不断发展,我们可以将各类非同源文档通过移动终端转成图片,然后通过相关技术重建出可以直接编辑的电子文档,具体流程如下图所示。

    640?wx_fmt=png

    图1 文档重建实例


    将纸质文档转为电子文档的时候,通常使用的方法是将纸质文档拍照后进行OCR识别,将照片中的文字提取出来,然后复制粘贴为电子文档。由于OCR只能识别图片中的文字,用户在粘贴之后还需要进行重新将电子文档排版、修正,这将会花费用户大量的时间。同时因拍摄的纸质文档中会存在大量的文字外内容,例如表格、图片、段落样式、文字样式、排版,如果使用单一的OCR通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的能力,则无法将图片中的数据准确的识别,并且图片等不需要识别的内容也无法保留下来。如下图所示因无法判断是否为图片,将地图中的文字也进行了识别,并且表格也无法保留,导致后期需要大量的时间进行文档的修改。

    640?wx_fmt=png

    图2 传统OCR文档重建


    可以发现与传统的OCR识别方案不同,我们需要识别出图片中的表格、图片、公式、段落样式、文字样式、排版等内容,并可以在保证内容不丢失的情况下直接插入到文档中,将纸质文档一键转换成可直接编辑的电子文档,解决了传统方案中识别内容丢失和文档格式不兼容等问题,减少了用户后期重复编辑的时间,大大提升了用户的工作效率。


    整个方案主要包括以下三个环节:


    (1)重新过程需先对文档进行版面分析,版面分析是对版面内的图像、文本、表格信息和位置关系进行自动分析、识别和理解的过程,决定了恢复出来文档的完整性和质量。


    (2)版面分析得到段落、图片、表格等结构化信息后,再进行OCR识别和表格恢复。


    (3)生成用户可以直接编辑的格式。


    版面分析:目前业界一般对二值化图像提取连通域,设计人为经验规则提取相应特征,然后利用决策树、SVM分类器得到每个区域的类别。整个流程依赖人为设计的特征,对倾斜旋转图像不够鲁棒,泛化性较差。


    OCR识别:目前业界主要通过深度学习如Faster-RCNN、EAST算法、LSTM\RNN等技术检测识别文本行。


    表格恢复:目前业界一般利用Canny算子提取边缘,计算单元格坐标位置从而恢复出表格,对模糊等低质图像效果不理想,后处理繁杂。


    因此我们针对版面分析、表格重建痛点问题,利用端到端深度学习模型对文档图像进行语义分割,进而提取结构化的语义信息,最后对不同类型的区域进行相应的增强恢复。特别针对表格重建,我们同时引入CNN提取表格边线,免去许多复杂后处理流程。


    2、技术方案

    2.1 技术框架

    方案主要由输入模块、版面分析模块、排版模块三个模块组成,如图 3 整体方案所示。


    系统首先对包含文档的图像进行检测,对扭曲的文档进行校正。然后通过版面分析模块,得到段落、图表等兴趣区域,针对每个区域进行相应增强恢复处理。最后根据阅读顺序,生成用户可以直接编辑的电子文档,如图 4文档重建关键步骤所示。

    640?wx_fmt=jpeg

    图3 整体方案


    640?wx_fmt=jpeg

    图4 文档重建关键步骤


    输入模块主要是进行预处理操作,分为自动框选和扭曲矫正两个步骤。自动框选利用HED深度学习模型对图片中文档区域进行框选,扭曲矫正算法利用DocNet深度学习模型对文档图片进行扭曲矫正。这两个步骤目的是生成高质量的文档图片,提供版面分析效果。


    版面分析模块利用了图像分割模型UNet对文档版面进行学习,分割出图片中的段落、表格、图片、公式等元素,为了处理多栏、环绕等复杂版面,我们特意设计的版本分割线的学习,这样有利用提高版本分析的效果。后处理模块,主要是对图像分割模型产生mask图片进行处理,处理mask图像中的相交、包含等区域,划分出各个类型的子块,根据各个子块的位置以及分割线生成版面信息。


    排版模块的工作是根据版面信息生成最终的word文档,对于不同类型的子块进行差异化处理。对于文字类型的子块,组段算法是利用OCR技术对文字块图片的文字信息进行组段,生成有语义信息的段落,并且利用了图像分割技术对文字块进行字体识别,识别出文字块中粗体、斜体、下划线、宋体、隶书等字体信息。对于表格类型的子块,运用图像分割技术对表格框线像素进行识别,再结合OCR文本框坐标关系,推断出单元格的位置,最后对单元格内容进行分析,进一步得到单元格字号和对齐方式。而对于图片、公式类型,直接切图输出图片。最后,为了提高用户的阅读体验,我们设计了阅读顺序算法,根据子块的位置、语义信息,复原文档的阅读排序。


    2.2 数据仿真

    随着深度学习在图像领域取得的巨大成功,基于CNN的网络结构在图像识别、检测、分割等方向上均达到state-of-art的效果。但是传统的深度学习训练过程中依赖大量的数据样本,针对版面分析、字体识别以及扭曲校正等任务,我们设计了一套文档仿真系统。用户可以自定义字体类型、字号大小、图表数量大小、版面类型等属性,生成复杂多样的文档数据,同时自动对其进行标注,极大减少采集和标注数据的成本。

    640?wx_fmt=png

    图5 仿真图像


    实际场景中文档可能存在折叠,弯曲等变形,严重影响后续可能的文字检测、内容识别和自动组段。部分传统方法通过添加前处理方式,让用户选择待恢复结构区域,以修复图像的结构信息。但这些系统或需要人工选择待恢复区域,或仅能处理图片“受损”的部分区域,不能够结构化地处理图片的整体扭曲和偏移,导致方法的泛化性能受限。考虑到实际场景的复杂性,我们考虑用深度学习结合大量数据来解决此问题。但遗憾的是,目前没有相关的公开数据集,常用的人工图片标注方法也较为低效:标注人员需要人工制造真实图片的扭曲,并拍照获取数据。该方式需要耗费大量人力,且无法获得正常图片和扭曲图片间的映射关系,无法为模型提供更有价值的学习信息。鉴于此,基于图形学相关知识,我们自行构建了自己的仿真数据集。

    640?wx_fmt=png

    图6 仿真扭曲文档


    2.3 排版识别、字体识别

    版面分析网络:版面分析是文档分析中的关键技术,传统的方法是通过设计人为规则判断文档各个区域元素类型。随着深度学习的兴起,越来越多人利用语义分割来解决版面分析问题。传统的分割网络一般基于图像分类网络如ResNet、VGGNet,虽然这些网络在图像分类任务中取得比较好的效果,但是为了让网络得到较大的感受野,会对特征图进行下采样,导致丢失很多边缘细节信息,得到的物体边界轮廓往往不够清晰。我们提出了端到端多尺度融合模型如图,主要由两部分组成:编码器和解码器,相同尺度的编码器特征和解码器特征会相互结合,这样同时保持了语义特征和边缘特征。为了加速网络的学习,让低层的特征学习到框线表示,这里我们引入多尺度模型融合,编码器每个部分都有相应的预测输出,融合解码器的输出作为最终的结果。

    640?wx_fmt=png

    图7 版面分析网络


    为了加快网络各个特征层的学习我们引入多尺度损失函数融合,分别计算原图分辨率下的损失函数, 原图1/4和原图1/16的损失函数,最后将这三个结果融合作为我们的目标函数。特别指出的是,在文档版面中公式、表格的占比远远少于段落文字,存在严重类别不均衡问题。传统语义分割损失函数往往采用交叉熵,针对类别不均衡效果不太理想,对于公式这种数据较少的类别识别效果很差。因此我们这里引入IOU 损失函数,它能很好的解决类别不均衡问题。


    目前版面识别支持的类型有公式、图片、表格、段落、题注、分割线、页眉和页脚,我们的网络在1w+张测试集上平均IOU达到91%。

    640?wx_fmt=png

    图8 版面识别效果


    字体识别网络:日常文档图片往往存在各种特色字体,比如粗体、下划线或者楷书等等。为了更好地还原文档的真实内容,这里我们引入字体识别模块支持特殊字体的识别。粗体、下划线、斜体这三类特性是可以叠加的,同时可以和任意一种字体结合的,比如我们实际中常用到加粗的宋体,加粗又带下划线的行楷等等。因此这里我们将粗体、下划线、斜体定义为字体属性,宋体行楷等定义为字体类别,针对性设计Unet 双分支多任务网络,字体属性识别分支和字体类别识别分支共用图像编码层。

    640?wx_fmt=png

    图9 字体识别网络


    目前字体识别支持的类型有粗体,斜体,下划线,宋体,楷体,隶书,我们的网络在1w+张测试集上字体属性mIOU达到93%,字体类别mIOU达到91%。

    640?wx_fmt=png

    图10 字体识别效果


    2.4 表格重建

    若文档中有表格,前面的步骤已定位了区域。接下来将切割出来的表格部分图片转换为表格结构信息,转换的具体流程如下图所示。

    640?wx_fmt=png

    图11 表格重建流程


    首先,对表格图片使用神经网络进行像素级的分割,神经网络采用Unet卷积神经网络结构,每个像素有四个对应输出概率,分别表示此像素属于横向框线(可见或隐含)和竖向框线(可见或隐含)的概率。

    640?wx_fmt=jpeg

    图12 表格线提取效果


    得到像素级别分割结果后,再进行几何分析。首先,提取横竖向两个分割图的连通区域,每个连通区域是一条曲线,对连通区域的像素拟合一条折线,也即若干线段的方程。接着对折线再进行合并,依据各折线中各线段的倾角相似度和坐标值的远近,将属于同一条框线的折线合并在一起。为把每条框线中的线段校正至水平或竖直,拟合单应矩阵,同时也把图片校正。将校正好的图片进行OCR计算,获取文本框坐标和字符坐标。接着对所有横竖框线计算交点,依据交点提取出每个单元格。最后将各个单元格信息再进行整合,得出每行的高度,每列的宽度,以及单元格的合并关系。单元格的合并关系是这样表示的:(左上角的单元格编号, 右下角的单元格编号)。最后再依据单元格和表格图的大小比例推算每个单元格中的字号大小,根据单元格中文字放置的位置推断对齐方式。将这些信息转成WORD文档中表格编码格式,使其可以在WORD等软件中显示、编辑。


    3、总结展望

    我们运用深度学习针对拍照图片中文档的格式进行学习识别后,采用实体抽取技术实现了一键提取图片中文档的表格、图片、公式、段落样式、文字样式、排版等格式,并将包含文字、段落、排版的内容自动插入到电子文档中,如图片中识别出表格和表格的内容,会把图片中的表格还原成一个真的电子表格并插入到文档中。相比传统的OCR文档识别,我们可以更加完整地恢复文档中的表格、段落样式、文字样式、和文档版面。


    目前相关技术已经运用到腾讯文档中,后续我们将不断丰富使用场景,提升效果和用户体验。


    腾讯QQ研发中心——CV应用研究组致力于计算机视觉的产品研究和研发工作,利用深度学习技术和大数据为QQ、腾讯文档等提供AI基础能力。

    产品包括:QQAR中的上百种场景和目标识别、手势识别;移动端实时头部语义分割和手势姿态估计;QQ小程序码检测和识别;腾讯文档中的文档排版识别和表格重建等。我们希望利用AI科技来方便人们生活,提升人们生活质量。


    4、参考文献

    [1]An adaptive over-split and merge algorithm for page segmentation

    [2]ICDAR2017 Competition on Recognition of Documents with Complex Layouts –    RDCL2017

    [3]Text-Line Detection in Camera-Captured Document Images Using the State Estimation of Connected Components

    [4]An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition

    [5]ASTER:An Attentional Scene Text Recognizer with Flexible Rectification

    [6] EAST: An Efficient and Accurate Scene Text Detector

    [7]Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation

    [8]Holistically-Nested Edge Detection

    [9]DeepDeSRT:Deep Learning for Detection and Structure Recognition of Tables in Document Images

    [10]Pyramid Scene Parsing Network

    [11]Rethinking Atrous Convolution for Semantic Image Segmentation

    [12]UNet++:A Nested U-Net Architecture for Medical Image Segmentation

    [13]ICNet for Real-Time Semantic Segmentation on High-Resolution Images


    640?wx_fmt=png

    展开全文
  • title: 利用python进行纸质文档识别(一)图像旋转矫正 date: 2019-01-13 12:01:33 tags: [python,旋转矫正,opencv] 前言 这学期我们上了一门软件工程课和数字图像处理课,软件工程课课设要求大家设计一款软件。...

    前言

    这学期我们上了一门软件工程课和数字图像处理课,软件工程课课设要求大家设计一款软件。作为一个学生助理,我早就对学校的问卷调查不满意了,填写完的纸质表格竟然还要输入成电子表格,人工手动输入,未免也太难受了。所以结合我所学的知识,我准备利用python+opencv做一款纸质文档识别软件,专门识别纸质表格转化成为电子表格。

    原理

    因为表格不仅仅有文字信息,同时还有位置信息,所以在识别表格时我们应该识别出文字和位置信息。文字信息一般是可以用OCR技术识别出来,这部分有很多相关的模块、库可以使用,但是位置信息的识别就有一定的困难。所以我们首先要解决这个位置信息。

    当我们拿到一张纸质表格时,一般来说都会有框体,这个时候我们只要把最外围的框体识别出来,接着递归识别所有框体,然后再对所有小框体进行进行文字识别操作就会很简单。

    实现方法

    很明显,第一步是要解决最外头的这个框线识别问题。一般来说,不是每个人拍照都是横平竖直的,所以我们必须要对原始图像进行适当的倾斜矫正。在opencv里,我们有两个很好用的函数来进行这样的操作:
    先用cv2.getPerspectiveTransform(target_points, four_points)得到旋转矩阵
    然后再用cv2.warpPerspective(img, M, (weight, height))进行透视变换。
    下面是该函数的一个演示

    如果我们知道屏幕中间的四个角的位置,那么我们就能把它通过函数给校正

    # -*- coding: utf-8 -*-
    """
    Created on Sun Jan 13 09:22:51 2019
    
    @author: lei
    """
    
    import cv2
    import numpy as np
    img= cv2.imread('rowRotate.jpg')#读取原始图片
    target_points =[[278,189],[758,336],[570,1034],[65,900]]
    #这里我们通过人工的方式读出四个角点A,B,C,D
    height = img.shape[0]
    weight = img.shape[1]
    four_points= np.array(((0, 0),
                           (weight - 1, 0),
                           (weight - 1, height - 1),
                           (0, height - 1)),
                        np.float32)
    target_points = np.array(target_points, np.float32)#统一格式
    M = cv2.getPerspectiveTransform(target_points, four_points)
    Rotated= cv2.warpPerspective(img, M, (weight, height))
    cv2.imwrite("Rotated.jpg",Rotated)
    

    程序运行效果图

    旋转裁切的效果很棒,但这只是人工的方式寻找四个角点,可不可以想办法实现程序自动裁切呢?
    对于这个问题,我经过大量地查阅资料和实验,终于发现了一个比较好的办法。那就是先把轮廓线找到,然后找轮廓线里面的角点。
    由于篇幅关系,我将把这个留在后面讲解

    展开全文
  • 如何建模编程实现??建立合理的数学模型进行识别,给出算法流程。并通过程序验证,给出你的正确识别
  • 导读:作者系腾讯QQ研发中心——CV应用研究组的yonke。本文主要介绍基于深度神经网络的表格图像识别解决方案。1.前言1.1背景大多数人日常办公处理的文件,无非就是表格...

    640?wx_fmt=gif




    导读:作者系腾讯QQ研发中心——CV应用研究组的yonke。本文主要介绍基于深度神经网络的表格图像识别解决方案。


    1.前言

    1.1背景

    大多数人日常办公处理的文件,无非就是表格和文档,其中表格的重要性毋庸置疑。在各行各业的桌面办公场景中,Excel和WPS是电子表格的事实标准。我们经常遇到这种需求:将一个表格图片的内容导入Excel。


    以前我们只能对着图片把内容一点点敲进excel,既低效又容易出错。近年来,在深度学习的加持下,OCR (Optical Character Recognition,光学字符识别)的可用性不断提升,大量用户借助OCR软件,从图片中自动提取文本信息。


    然而对于表格场景,只是提取文本依然不够,用户还需反复手动复制粘贴以还原出电子表格,这依然耗费大量时间。因此我们实现了一种识别表格图像的解决方案,并与腾讯文档结合,切实提升用户办公效率。


    下面是我们的识别效果展示:

    640?wx_fmt=png

    640?wx_fmt=png


    1.2 业界方案


    表格图像识别有较高的商业价值,一般都在付费的专业OCR软件中才能体验到:比如ABByy fine reader。这些软件所用的技术,并没有完全公开。


    比如ABByy公开的论文中,也只是简略介绍主要原理,无法复现,且距今已久,后期的技术进步无法得知。因此我们难以从商业软件中得到启示。

    遍阅近几年比较有实操价值的论文,可分为以下三种思路:

    1)利用OCR检测文本,从文本框的空间排布信息推导出有哪些行、有哪些列、哪些单元格需合并,由此生成电子表格;

    2)运用图像形态学变换、纹理提取、边缘检测等手段,提取表格线,再由表格线推导行、列、合并单元格的信息;

    3)神经网络端到端学习,代表工作是TableBank,使用image to text技术,将表格图片转为某种结构化描述语言(比如html定义表格结构的标签)。


    经过实验,发现以上三种思路都有不便落地的缺陷:

    思路1)极度依赖OCR检测结果和人工设计的规则,对于不同样式的表格,需做针对性开发,推广性差;

    思路2)依赖传统图像处理算法,在鲁棒性方面较欠缺,并且对于没有可见线的表格,传统方法很吃力,很难把所有行/列间隙提取出来;

    思路3)解决方案没有次第,一旦出现bad case,无法从中间步骤快速干预修复,只能重新调整模型(还不一定能调好),看似省事,实则不适合工程落地。


    2.基于深度图像分割的方案

    针对已有方案的缺点和优点,我们提出一套更具可行性的解决方案。流程如下:

    1) 对表格图片应用深度学习进行图像分割,分割的目的是对表格线部分进行标注,分割类别是4类:横向的线,竖向的线,横向的不可见线,竖向的不可见线,类间并不互斥,也就是每个像素可能同时属于多种类别,这是因为线和线之间有交点,交点处的像素是同属多条线的。


    2)对分割图分别做几何分析,即先提取连通区域,再对连通区域拟合折线,再对游离的线段根据距离和倾角进行合并形成框线。由于拍摄角度或者纸张的弯曲,一般原图表格会有一些倾斜,可使用投影变换(perspective transformation)对原图进行校正,使得横框线校至水平,竖框线校至竖直。


    3) 对校正后的图调用OCR,识别其中的文本内容,以及每个字符的坐标。


    4) 根据第2)步得到的框线,计算出有哪些行,哪些列,其中哪些单元格跨行列合并了。由此得到每个单元格在图中的位置(top_left, top_right, bottom_left, bottom_right)四点坐标。


    5) 将单元格位置,与字符坐标进行匹配,决定每个字符在哪个单元格中。最后计算每个单元格的字号大小,对齐方式等格式信息。


    640?wx_fmt=png

    下面对每个步骤进行详细剖析。


    2.1 图像分割模型


    图像分割(segmentation)旨在对图像的每个像素赋予标签。在这里,我们的分割任务有多标签,每个像素可能属于横线、竖线、不可见横线、不可见竖线。


    640?wx_fmt=png

    为了提取上述各种线所在的像素,我们尝试了多种图像分割算法和二值化算法:OTSU二值化、adaptiveThreshold二值化、Canny算子、SED(Structural Edge Detection)算法、深度学习图像分割。深度学习在准确性和鲁棒性有压倒性优势,我们最后专注于深度学习方法,而抛弃所有传统算法。


    目前较常用的深度学习图片分割模型有DeepLab系列,fcn,Unet,SegNet等,经过实验对比我们发现在这个问题中,以上方法最后收敛效果几乎是一样的,故我们选择收敛速度最快的Unet。


    640?wx_fmt=png

    为了更快的速度,对于backbone的设计,我们参考mobilenet,使用depthwise+pointwise替代常规卷积。表格线是细长型物体,角度要么基本水平,要么基本竖直,并且有的线会很长,在横竖方向上更大的感受野将带来更多好处。故我们选用的卷积核形状为5x1和1x5,实测比常用的3x3能达到更好的性能,MIOU指标有2%的提升。由于标签不互斥,我们不用softmax做输出,而是用4个sigmoid,分别表示4个标签的概率。由于各类像素数量不平衡,我们的损失函数采用加权交叉熵,迭代到后期收敛速度变慢后可用Dice Coeff Loss。训练数据我们采用人工标注+仿真生成结合。下图是我们训练收敛后的效果,直观看拟合得还不错。


    640?wx_fmt=png

    2.2 分割结果几何分析


    对分割结果设定阈值0.5进行二值化,转成几张二值化图,分别表示每种线所属的像素。接着对每个二值化图求连通区域。对连通区域进行过滤,长度太小的丢弃。对剩下的每个有效连通区域,分别拟合折线,即得到大量线段。对线段的角度进行统计,横、竖两种线段与x轴的夹角均值应接近0和90度,若否,则认为识别失败并终止。在横、竖线段中,若有角度偏离均值3个标准差以上的,则过滤掉。对于剩下的线段,应用DisjointSet算法进行合并,被合并的线段构成一条新的长直线,这些直线代表框线。两线段合并的判定条件是:夹角小于15度,并且一条线段的端点到另一条线段的距离小于一定阈值。


    最终得到的若干直线,就是表格的框线。但是手机拍摄的照片一般都有一些倾斜,为便于后续处理和提高OCR结果的质量,我们将对图片进行倾斜校正。校正方法使用投影变换,也即拟合一个单应矩阵H,使得HX=X',X的每一列是在每条直线上以固定距离采样的点的齐次坐标,X'的对应列是该点校正后的齐次坐标。横线校正至水平,也即线上所有点的y坐标一致;竖线校正至竖直,也即线上所有点的x坐标一致。最后将求得的投影变换应用到原图中,将图片也校正。


    2.3 OCR


    将校正后的图片送去OCR,可得到图中每个字符的坐标。注意我司几个OCR平台返回的结果都是一串文字的文本框,这个文本框不一定与表格单元格能一一对应,有可能一个文本框里包含多个单元格,也可能一个单元格里检测出多个文本框。每个文本框中有若干字符,附带的字符坐标对判断其所属单元格就十分重要了。下图是我司某个OCR平台所返回的识别结果。


    640?wx_fmt=png

    2.4 识别表格结构


    接下来需要识别表格的结构,以跟OCR结果进行匹配。我们对一个完整的表格定义如下:

    1)所有单元格,单元格定义为[起始行,结束行,起始列,结束列]

    2)每一行的行高(像素)

    3)每一列的列宽(像素)

    4)每个单元格的字号大小(像素)

    5)每个单元格的对齐方式(left\right\center)

    6)每个单元格的文字内容


    表格的结构是指1),2)和3)。我们提出一套高效的算法从表格线推导出每行(列)的高(宽)和所有单元格的坐标。


    由表格框线推导行(列)的高(宽)比较容易,只需对所有的横(竖)线按从上(左)到下(右)排序,相临框线形成一行(列),所以只需计算相临框线的y坐标(x坐标)差即可。


    由表格框线推导单元格坐标就不太容易了。因为现实中存在很多单元格合并的情况,一个单元格可能跨了若干行和若干列。对此我们的思路是列举所有的单元格候选,每个单元格表示为(起始行,结束行,起始列,结束列),然后对所有单元格按面积从小到大排序。接着遍历排序好的候选单元格,去判断其上下左右的框线是否都真实存在,若存在,则此单元格就在原图存在。注意到,每当确立一个单元格存在,所有与其共享起始行和起始列的其他单元格则不可能再存在,因为我们不考虑单元格中套着单元格的情况。所以虽然单元格候选集很大,但我们可以利用这一性质在遍历过程中进行剪枝,所以会很高效。


    2.5  匹配文字内容,确定字号和对齐方式


    2.4定义的表格还有4)5)6)没有识别。经过以上步骤,我们已经得到每个单元格的坐标和每个字符的坐标。接下来就只需进行对号入座就可得到每个单元格中的文本,也即解决了6)。字号可由OCR文本高度确定,但是由于返回的高度总有一些不一样,实际表格中常常不会有太多字号,经常是同一列的单元格用一样的字号。因此我们对所有得到的文本高度进行聚类,当两行文本高度比例在[0.91, 1.1]之间,就可以认为是同个高度。聚好类后,对类内高度求平均值,以平均值做为此类所有文本的真实高度。最后将文本高度换算为字号,由此4)也解决了。最后根据文本在单元格中的位置,判断每个单元格的对齐方式,对于对齐方式,也采取类似的聚类方法来去除噪音。由此5)也解决了。


    至此,表格的所有单元格,每一行的行高,每一列的列宽,每个单元格的字号大小,每个单元格的对齐方式,每个单元格的文字内容都已经识别出来了。只需将单位换成Excel、WPS或者腾讯文档的标准单位,就可以转成电子表格了!


    3.实现与部署

    3.1 整体流程


    我们实现的这套表格识别方案,拥有客户端实时检测表格和后台识别生成表格两个部分。上文介绍的是后台识别生成的部分。客户端实时检测所用的模型是SSD(Single Shot MultiBox Detector),可实时框选表格所在的区域,协助用户调整拍摄角度。系统流程如下图所示:

    640?wx_fmt=png

    我们的方案目前集成在腾讯文档中,大家可以体验。


    3.2 训练数据仿真

    我们人工采集标注了数万样本。做为补充,我们也程序仿真生成样本。仿真方法是先对背景图要放表格的区域进行纹理检测,将高频部分去掉,再做Inpainting,这样既保留的背景,又留出了空白。接着随机生成表格结构,在背景留白处画出表格,在画线,放文字之后,还需在线和文字的像素周围将高斯噪声加上,以模拟相机传感器的成像特点。最后对生成的图和标注图进行mesh warp,模仿纸张扭曲。

    640?wx_fmt=png

    4.性能指标

    4.1 深度学习分割模型性能


    我们的深度学习表格线分割模型和其他传统的算法对比如下。测试数据是人工标注的真实表格图片,数量4w张。可以看出我们的模型大大优于传统算法。



    精确率(Precision)

    召回率(Recall)

    MIOU

    我们的深度学习模型

    95.03%

    97.54%

    90.22%

    OTSU

    59.67%

    63.84%

    55.26 %

    adaptiveThreshold

    63.93%

    88.45%

    50.21%

    Canny

    71.75%

    70.33%

    63.85%

    SED

    81.35%

    86.16%

    64.03%


    4.2 表格结构识别的性能指标


    为了客观评价我们整套表格识别方案的性能。我们构造一个数据集,并建立一个评价指标系统。表格识别结果好不好,不能只靠肉眼判定,要量化评价。表格结构识别过程,可看成是对单元格的检测,我们关注检测的precision和recall指标。为计算precision和recall,需计算true positive,false positive,false negative样本,计算策略如下:


    640?wx_fmt=png

    在2w张表格图片样本中验证,以下是目前为止我们的性能



    指标的意义

    平均准确率

    0.8736

    反映了重建结果中,有多少单元格是真实存在的,有多少是错置的

    平均召回率

    0.9241

    反映了重建结果中,漏掉了多少单元格

    TP样本平均IOU

    0.8212

    反映了重建结果中,那些我们认为正确重建的单元格,跟图片的本来样子有多像


    640?wx_fmt=png


    展开全文
  • 当您要把一大堆文件录入电脑时,当您有大量的文档图片需要使理时:如复制其中文字,倾斜较正等,那就交给“云脉文档识别”软件来处理吧! 这是一款自动识别图像上的文字信息,并可立即在线翻译;随时随地采集文字...

    当您要把一大堆文件录入电脑时,当您有大量的文档图片需要使理时:如复制其中文字,倾斜较正等,那就交给云脉文档识别软件来处理吧!

    这是一款自动识别图像上的文字信息,并可立即在线翻译;随时随地采集文字图像信息,将拍摄的图像文字转换成可编辑的文本资料。一键拍照,拍照识别文字图片快速转换为文本,一键百度,拍照识别的文字图片直接搜索百度,一键翻译,拍照识别的文字图片进行自动翻译。

    1. 利用手机摄像头拍摄文档(报纸、杂志、书本等)图像;

    2. 或者导入手机中已有的文档图像进入软件处理;

    3. 文档拍照识别软件可自动识别图像上的文字;

    4.图片旋转重新识别以及查看云端文档功能;

    5. 您可以在识别结果界面编辑,或直接在线翻译,或发送电邮、彩信等;

     

     


    扫一扫下载地址:


    展开全文
  • 我们来思考一下这几个问题:  说到条码识别-----------是不是想到了
  • 文档识别档案OCR深度学习

    千次阅读 2018-06-26 17:09:31
    现如今整个IT行业圈都在说什么Deeplearning、神经网络、深度学习,各行各业都搞起了这方面的业务,现在搞得最出色的,百度无疑,同时腾讯、阿里也不甘...针对于文档图片文字识别OCR这方面,我想跟大家探讨几个方面...
  • 在国家自然科学基金、清华大学基础研究基金等项目的支持下,以及负责藏文样本收集分析的协作单位西北民族大学的配合下,经过近三年的不懈努力,并经过在藏族地区试用,“多字体印刷藏文(混排汉英)文档识别系统”研制...
  • 字符和文档识别的四十年研究

    千次阅读 2013-06-28 13:09:44
    在过去的四十年的字符和文档识别的主要商业及工业应用一直在阅读方面,银行支票的阅读和邮政地址读。通过支持这些应用,识别能力在多个方面展开:写作模式,脚本类型的文件,识别模式等。写作机印刷,手工印刷,手写...
  • 人脸识别文档

    2018-02-02 15:00:59
    人脸识别文档,有助于集成web项目的人脸识别文档,自己看视频总结
  • 车标识别文档

    2014-01-02 09:41:02
    车标识别文档
  • 车牌识别研究文档

    2014-12-09 23:10:49
    车牌识别研究文档. 车牌分割 算法 识别 Matlab 毕业设计 收集的有关于车牌识别文档 字符识别 模版识别 OTSU 二值化 车牌定位
  • 车牌识别文档

    2012-04-13 21:40:36
    用于车牌定位,识别的一些文档matlab方面的方案
  • 数字识别文档

    2007-12-15 00:34:21
    关于数字识别技术的文档
  • java 语音识别设计文档
  • 车牌识别文档

    2012-11-20 18:57:22
    车牌识别系统,车牌识别文档,主要代码,具体实现

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 394,111
精华内容 157,644
关键字:

文档识别