CN115187995B - 文档矫正方法、装置、电子设备和存储介质 - Google Patents
文档矫正方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN115187995B CN115187995B CN202210807745.3A CN202210807745A CN115187995B CN 115187995 B CN115187995 B CN 115187995B CN 202210807745 A CN202210807745 A CN 202210807745A CN 115187995 B CN115187995 B CN 115187995B
- Authority
- CN
- China
- Prior art keywords
- edge
- determining
- document
- point
- edge line
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 71
- 238000012937 correction Methods 0.000 title abstract description 16
- 230000011218 segmentation Effects 0.000 claims abstract description 41
- 238000012545 processing Methods 0.000 claims abstract description 20
- 238000013507 mapping Methods 0.000 claims description 22
- 238000004422 calculation algorithm Methods 0.000 claims description 17
- 230000009466 transformation Effects 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 7
- 238000012015 optical character recognition Methods 0.000 abstract description 5
- 238000013135 deep learning Methods 0.000 abstract description 4
- 238000013473 artificial intelligence Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 9
- 238000004590 computer program Methods 0.000 description 9
- 239000011159 matrix material Substances 0.000 description 8
- 238000013136 deep learning model Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000011176 pooling Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 239000013598 vector Substances 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 238000007670 refining Methods 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000003708 edge detection Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000003709 image segmentation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/16—Image preprocessing
- G06V30/1607—Correcting image deformation, e.g. trapezoidal deformation caused by perspective
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/14—Image acquisition
- G06V30/148—Segmentation of character regions
- G06V30/153—Segmentation of character regions using recognition of characters or words
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Biophysics (AREA)
- General Engineering & Computer Science (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Molecular Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computational Linguistics (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Character Input (AREA)
- Image Analysis (AREA)
Abstract
本公开提供了一种文档矫正方法、装置、电子设备和存储介质,涉及人工智能领域,具体涉及深度学习、图像处理和计算机视觉等技术领域,可应用于OCR等场景。文档矫正方法的具体实现方案为:对包括待矫正文档的原始图像进行语义分割,得到边缘像素点;基于边缘像素点,确定第一边缘线;根据矫正后文档对应的图像尺寸,确定目标图像的网格图像;对第一边缘线和网格图像的第二边缘线进行等分处理,分别得到第一边缘线的第一关键点和第二边缘线中与第一关键点对应的第二关键点;以及根据第一关键点和第二关键点之间的对应关系,生成目标图像。
Description
技术领域
本公开涉及人工智能领域,具体涉及深度学习、图像处理和计算机视觉等领域,可应用于OCR等场景。
背景技术
随着计算机技术和网络技术的发展,深度学习技术在众多领域得到了广泛应用。例如,可以基于深度学习技术来实现对文档的矫正。其中,对文档矫正是指将扭曲变形的文档图像进行矫正还原的过程。对文档矫正可以作为一种图像预处理手段,以为文字检测等下游任务的实现做准备。
发明内容
本公开旨在提供一种提高稳定性和泛化能力的文档矫正方法、装置、电子设备和存储介质。
根据本公开的一个方面,提供了一种文档矫正方法,包括:对包括待矫正文档的原始图像进行语义分割,得到边缘像素点;基于边缘像素点,确定第一边缘线;根据矫正后文档对应的图像尺寸,确定目标图像的网格图像;对第一边缘线和网格图像的第二边缘线进行等分处理,分别得到第一边缘线的第一关键点和第二边缘线中与第一关键点对应的第二关键点;以及根据第一关键点和第二关键点之间的对应关系,生成目标图像。
根据本公开的另一个方面,提供了一种文档矫正装置,包括:语义分割模块,用于对包括待矫正文档的原始图像进行语义分割,得到边缘像素点;边缘线确定模块,用于基于边缘像素点,确定第一边缘线;网格图像确定模块,用于根据矫正后文档对应的图像尺寸,确定目标图像的网格图像;关键点获得模块,用于对第一边缘线和网格图像的第二边缘线进行等分处理,分别得到第一边缘线的第一关键点和第二边缘线中与第一关键点对应的第二关键点;以及目标图像生成模块,用于根据第一关键点和第二关键点之间的对应关系,生成目标图像。
根据本公开的另一个方面,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本公开提供的文档矫正方法。
根据本公开的另一个方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行本公开提供的文档矫正方法。
根据本公开的另一个方面,提供了一种计算机程序产品,包括计算机程序/指令,所述计算机程序/指令在被处理器执行时实现本公开提供的文档矫正方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开实施例的文档矫正方法和装置的应用场景示意图;
图2是根据本公开实施例的文档矫正方法的流程示意图;
图3是根据本公开实施例的得到待矫正文档的边缘像素点的原理示意图;
图4是根据本公开第一实施例的确定待矫正文档的第一边缘线的原理示意图;
图5是根据本公开第二实施例的确定待矫正文档的第一边缘线的原理示意图;
图6是根据本公开第三实施例的确定待矫正文档的第一边缘线的原理示意图;
图7是根据本公开实施例的确定映射关系的原理示意图;
图8是根据本公开实施例的文档矫正装置的结构框图;以及
图9是用来实施本公开实施例的文档矫正方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
文档矫正是通过采用技术手段将扭曲变形的文档图像进行矫正还原的过程。文档矫正作为一种有效的图像预处理手段,能够提升下游的文字检测和识别任务的精度及识别效果。在光学字符识别(Optical Character Recognition,OCR)场景中,文档矫正技术通常被作为一种标准化预处理技术集成于文字识别产品中。
例如,可以采用端到端的模型来对文档图像进行处理,并得到矫正后图像。其中,端到端的模型通常是在合成的文档图像上进行的训练,将该端到端的模型应用到实际场景中,可能会存在泛化效果较差,矫正准确度低的问题。再者,在采用端到端的模型预测矫正后的图像的方式,预测图像的精度往往受模型精度的影响,存在矫正后图像的误差较大,且矫正后图像的精度不稳定的情况。
基于此,本公开旨在提供一种提高稳定性和泛化能力的文档矫正方法、装置、电子设备和存储介质。
以下将结合图1对本公开提供的方法和装置的应用场景进行描述。
图1是根据本公开实施例的文档矫正方法和装置的应用场景示意图。
如图1所示,该实施例的应用场景100可以包括电子设备110,该电子设备110可以为具有处理功能的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机、台式计算机和服务器等等。
该电子设备110例如可以对输入的包括待矫正文档的图像120进行处理,以对该图像120中的待矫正文档进行矫正,得到矫正后文档图像130。其中,电子设备110可以先识别待矫正文档的边框,随后根据该边框的顶点坐标与目标平面的坐标点的坐标来计算表示图像120与校正后文档图像130之间的映射关系的矩阵。最后根据该矩阵对图像120进行变换,得到校正后文档图像130。
在一实施例中,电子设备110可以基于深度学习模型来完成文档的矫正。例如,可以采用深度学习模型来识别待矫正文档的边框。该深度学习模型例如可以为语义分割模型、目标检测模型等,本公开对此不做限定。
在一实施例中,如图1所示,该应用场景100中还可以包括服务器140,该服务器140例如可以为支持电子设备110中客户端应用运行的后台管理服务器。电子设备110可以通过网络与服务器140通信连接,网络可以包括有线或无线通信链路。
例如,服务器140可以预先训练有深度学习模型150。该服务器140可以响应于电子设备110的请求,将训练得到的满足精度要求的深度学习模型150发送给电子设备110,以使得电子设备110能够基于深度学习模型来完成文档的矫正。
在一实施例中,电子设备110例如也可以将包括待矫正文档的图像120发送给服务器140,由服务器基于满足精度要求的深度学习模型150来对图像120进行处理,从而得到矫正后文档图像130。
需要说明的是,本公开提供的文档矫正方法可以由电子设备110执行,也可以由服务器140执行。相应地,本公开提供的文档矫正装置可以设置在电子设备110中,也可以设置在服务器140中。
应该理解,图1中的电子设备110和服务器140的数目和类型仅仅是示意性的。根据实现需要,可以具有任意数目和类型的电子设备110和服务器140。
以下将结合图2~图7对本公开提供的文档矫正方法进行详细描述。
图2是根据本公开实施例的文档矫正方法的流程示意图。
如图2所示,该实施例的文档矫正方法200可以包括操作S210~操作S250。
在操作S210,对包括待矫正文档的原始图像进行语义分割,得到边缘像素点。
根据本公开的实施例,可以采用语义分割模型对待矫正文档的原始图像进行语义分割,将原始图像中为待矫正文档的边缘的像素点与作为背景的像素点区分开。例如,语义分割模型可以输出原始图像中每个像素点为边缘像素点的概率。该实施例可以将概率大于概率阈值的像素点确定为待矫正文档的边缘像素点。
其中,语义分割模型例如可以为全卷积网络(Fully Convolutional Networks,FCN)、实时语义分割模型(A Deep Convolutional Encoder-Decoder Architecture forImage Segmentation,SegNet)或DeepLab系列模型中的任意一种模型,本公开对此不做限定。
其中,待矫正文档的原始图像例如可以是通过扫描设备扫描或者图像拍摄设备拍摄得到的纸质文档的图像。该原始图像可以实时的获取,也可以预先获取后存储于预定存储空间中。例如,该原始图像例如可以为至少包括完整的一页文档的图像。即,在该原始图像中,待矫正文档可以包括完整的单页文档,也可以包括完整的双页文档。
在操作S220,基于边缘像素点,确定第一边缘线。
根据本公开的实施例,例如可以采用直线检测算法对边缘像素点进行分析,挑选出梯度变化较大的像素点集。随后将该像素点集中坐标位置相邻的点依次连接,得到待矫正文档的第一边缘线。或者,可以采用最小二乘直线拟合法,从边缘像素点中提取出能够连接形成线段的像素点,将该些像素点彼此连接形成第一边缘线。
可以理解的是,上述确定第一边缘线的方法仅作为示例以利于理解本公开,本公开对此不做限定。
可以理解的是,对于待处理文档包括完整的单页文档的情况,待矫正文档的第一边缘线应包括四条边缘线,分别作为单页文档的四个方位的边缘线。例如,该四条边缘线为上边缘线、下边缘线、左边缘线和右边缘线。该四条边缘线所在的方位是根据四条边缘线所对应像素点在基于原始图像构建的第一坐标系中相对于待矫正文档的中心位置而确定的。对于待处理文档包括完整的双页文档的情况,待矫正文档的第一边缘线可以包括四条边缘线,分别作为双页文档的四个方位的边缘线。在待处理文档包括完整的双页文档的情况下,第一边缘线例如还可以包括双页文档包括的两个单页文档的分界线,可以称为双页文档的中边缘线。
在操作S230,根据矫正后文档对应的图像尺寸,确定目标图像的网格图像。
根据本公开的实施例,设定矫正后文档的目标图像的预定尺寸为H×W,H为目标图像的设定高度,W为目标图像的设定宽度。该实施例可以生成尺寸为H×W的网格图像。该网格图像中各个像素点的像素值可以设定为初始值,该初始值例如可以为(0,0,0)或者任意的值,本公开对此不做限定。
根据本公开的实施例,对于待处理文档包括完整的单页文档的情况,目标图像的预定尺寸为对该完整的单页文档进行矫正后文档的图像。对于待处理文档包括完整的双页文档的情况,目标图像的预定尺寸可以为对该完整的双页文档进行矫正后文档的图像,也可以为对完整的双页文档中每个单页文档进行矫正后文档的图像。目标图像为仅包括文档,不包括文档的背景的图像。
由于得到的网格图像是根据目标图像的尺寸确定的,可以将网格图像的四个第二边缘线与待矫正文档的四个第一边缘线一一对应起来。
在操作S240,对第一边缘线和网格图像的第二边缘线进行等分处理,分别得到第一边缘线的第一关键点和第二边缘线中与第一关键点对应的第二关键点。
该实施例可以将具有对应关系的第一边缘线和第二边缘线进行相同份数的等分处理,并将第一边缘线上的等分点作为第一关键点,将第二边缘线上的等分点作为第二关键点,并将第一关键点和第二关键点一一对应起来。例如,对于具有对应关系的网格图像的左边缘线和第一边缘线中的左边缘线,该实施例可以将两个左边缘线均进行等分处理,针对每个左边边缘线得到N等份的子边缘线,并得到(N+1)个等分点。该实施例可以将每个左边缘线的等分点自上至下排列,将网格图像的左边缘线上排在第i位的等分点和第一边缘线中的左边缘线上排在第i位的等分点作为相对应的两个关键点。其中,i的取值范围为[1,N+1]。通过该方式,针对两个左边缘线,可以得到具有对应关系的(N+1)对关键点,每对关键点包括一个第一关键点和一个第二关键点。
可以理解的是,对于第一边缘线中的每个边缘线,均可以通过类似的方式,得到该每个边缘线的第一关键点及网格图像中与该第一关键点相对应的第二关键点。
在操作S250,根据第一关键点和第二关键点之间的对应关系,生成目标图像。
根据本公开的实施例,可以根据第一关键点在基于原始图像构建的第一坐标系中的坐标值,以及有对应关系的第二关键点在基于网格图像构建的第二坐标系中的坐标值,确定原始图像中像素点与网格图像中像素点之间的映射关系。例如可以采用透射变换矩阵等变换矩阵来表示该映射关系。随后,基于该映射关系,即可以确定原始图像中与网格图像中的每个像素点相对应的目标像素点。针对网格图像中的每个像素点,可以采用相对应的目标像素点的像素值填充该每个像素点,在完成网格图像中所有像素点的填充后,即可得到目标图像。
本公开实施例的文档矫正方法,通过根据语义分割结果来确定待矫正文档的边缘线,并通过构建原始图像与目标图像中关键点之间的映射关系的方式来对文档进行矫正,可以使得文档矫正的方法适用于不同的场景,相较于采用端到端模型进行文档矫正的技术方案,可以无需针对特定场景对模型进行调节,利于提高文档矫正的稳定性及文档矫正方法的泛化能力。再者,通过根据目标图像的预定尺寸确定网格图像,并对网格图像的边缘线和待矫正文档的边缘线进行等分处理来得到具有对应关系的关键点,可以提高确定的具有映射关系的关键点的精度,并因此可以提高生成的目标图像的精度。
根据本公开的实施例,以下将对图2所示的操作S210做进一步扩展和限定。
根据本公开的实施例,可以以检测文档的不同方位边缘线的像素点为目标来训练得到语义分割模型,具体可以以样本图像的各个像素点的实际类别为监督信号对语义分割模型进行训练。各个像素点的实际类别可以包括背景类别和至少两个预定类别,该至少两个预定类别均表示像素点为边缘像素点,该预定类别与边缘线相对于文档所在的方位相关。例如,至少两个预定类别可以包括上边缘类别、下边缘类别、左边缘类别和右边缘类别,以分别指示像素点为文档的上边缘线上的像素点、文档下边缘线上的像素点、文档左边缘线上的像素点和文档右边缘线上的像素点。
在一实施例中,预定类别例如还可以包括中线类别,以指示像素点为双页文档的中边缘线上的像素点。如此,训练得到的语义分割模型还可用于检测完整的双页文档的中边缘线。
图3是根据本公开实施例的得到待矫正文档的边缘像素点的原理示意图。
如图3所示,该实施例300在对原始图像310进行语义分割时,可以采用训练得到的语义分割模型320对原始图像310进行处理,得到原始图像中每个像素点属于至少两个类别中每个类别的概率值。该至少两个类别包括上述的背景类别和预定类别。随后,基于概率值,确定待矫正文档的边缘像素点。例如,设定预定类别包括上边缘类别、下边缘类别、中边缘类别、左边缘类别和右边缘类别,且原始图像的尺寸为Hori×Wori,则通过将原始图像310输入语义分割模型320,可以得到语义分割模型输出的尺寸为Hori×Wori×6的张量330。该张量330由针对原始图像310中每个像素点的概率向量构成,每个像素点的概率向量包括6个概率值,分别表示该每个像素点为背景类别、上边缘类别、下边缘类别、中边缘类别、左边缘类别和右边缘类别的概率。该实施例可以将每个像素点的概率向量中的6个概率值的大小进行比较,将最大概率值所对应的类别作为该每个像素点的类别。
如此,该实施例通过对原始图像进行语义分割,不仅可以得到原始图像中的边缘像素点,还可以对属于不同方位的边缘线的边缘像素点进行区分。如此,在确定待矫正文本的第一边缘线时,可以根据属于不同方位的边缘线的边缘像素点,来确定不同方位的边缘线,从而提高确定的边缘线的精度,简化确定边缘线的流程。
如图3所示,该实施例300中可以采用DeepLab-v3+网络模型作为语义分割模型。该DeepLab-v3+网络模型引入了语义分割常用的encoder-docoder结构,即该DeepLab-v3+网络模型包括编码器321和解码器322,以融合多尺度信息。其中,编码器321采用预训练的ResNet-50或ResNet-101作为骨干网络,并采用了空洞空间金字塔池化模块(AtrousSpatial Pyramid Pooling,ASPP)。ASPP模块在空间金字塔池化模块的基础上,采用了空洞卷积(Atrous Convolution)。骨干网络输出的低级特征(low-level feature)可以直接作为解码器322的低级特征输入。骨干网络输出的高级特征(high-level feature)经过ASPP的5个不同的操作网络得到5个不同的输出。5个不同的操作网络包括1个1×1的卷积网络、3个不同膨胀率的空洞卷积和一个图像池化网络(用于将特征全局平均池化后再上采样到特征的原始大小)。其中,卷积网络可以局部提取特征,图像池化可以全局提取特征这样通过ASPP可以得到多尺度特征。5个不同的输出融合后经过1×1的卷积网络的处理,可以得到解码器322的高级特征输入。其中,对5个不同的输出的融合可以采用连接concatenate的方法。
解码器322可以采用1×1的卷积网络对输入的低级特征进行维度调整,采用4倍的上采样网络对高级特征进行上采样,使得上采样后的高级特征与低级特征的跨度相同。随后将跨度相同的高级特征和低级特征进行融合,融合后特征通过3×3的卷积网络调整维度后再经过上采样网络处理,即可输出张量330。其中,可以采用concatenate的方法对高级特征和低级特征进行融合。
本公开实施例采用DeepLab-v3+网络模型作为语义分割模型,可以达到通过空洞卷积有效平衡模型精度和处理耗时的效果。
根据本公开的实施例,在训练语义分割模型时,可以采用Dice loss作为模型的损失函数,以提高语义分割模型的精度,解决数据不平衡的问题。其中,数据不平衡是指图像中前景类别的像素点的个数与预定类别的像素点的个数不平衡。其中,Dice loss是一种区域性的代价函数,基于该Dice loss,预定类别的像素点的网络梯度大于背景类别的像素点的网络梯度,从而解决数据不平衡的问题。
根据本公开的实施例,以下将对图2所示的操作S220做进一步扩展和限定。
图4是根据本公开第一实施例的确定待矫正文档的第一边缘线的原理示意图。
根据本公开的实施例,在确定第一边缘线时,例如可以先确定待矫正文档是否为双页文档,并在为双页文档时,针对双页文档中的每个单页文档来确定第一边缘线。如此,可以针对双页文档中的不同单页文档设置不同的变换矩阵,提高得到的目标图像的精度。这是由于对于单个图像中的双页文档,因两个单页文档位于不同位置而呈现在图像中产生的形变会有所不同。
如图4所示,该实施例中,确定第一边缘线的操作可以包括操作S421~操作S425,可以理解的是,该实施例中确定第一边缘线的操作为上文描述的操作S220的一种实现方式,本公开对此不做限定。
在操作S421,确定边缘像素点的类别。
如上文描述可知,原始图像中的像素点可以属于预定类别和背景类别中的任一类别,确定的边缘像素点为属于预定类别中任一类别的像素点。即,确定的边缘像素点中可以包括预定类别中部分或全部类别的像素点。例如,对于包括完整的单页文档或者完整的双页文档的原始图像,确定的边缘像素点可以包括上边缘类别、下边缘类别、左边缘类别和右边缘类别的像素点,或者可以包括上边缘类别、下边缘类别、左边缘类别和中边缘类别的像素点,或者可以包括5个预定类别中每个类别的像素点。
该操作S421可以根据边缘像素点的类别,对边缘像素点进行分组,得到至少两个边缘像素点组。
在操作S422,根据边缘像素点的类别,确定待矫正文档是否为双页文档。
例如,可以判断边缘像素点中是否包括中边缘类别的像素点,若包括,则可以确定待矫正文档为双页文档。若不包括,则可以确定待矫正文档为单页文档。或者,可以判断边缘像素点的类别中是否包括预定类别的全部类别,若包括全部类别,则可以确定待矫正文档为双页文档,否则确定待矫正文档为单页文档。
可以理解的是,对于原始图像中包括的待矫正文档包括一个完整的单页文档和一个不完整的单页文档的情况,语义分割模型例如可以将得到的完整的单页文档与不完整的单页文档之间的边界线上的像素点确定为针对完整的单页文档的右边缘类别或者左边缘类别。对于语义分割模型将得到的完整的单页文档与不完整的单页文档之间的边界线上的像素点确定为中边缘类别的情况下,该实施例可以采用判断边缘像素点的类别中是否包括预定类别的全部类别的方式来确定待矫正文档是否为双页文档。
若确定待矫正文档为双页文档,则可以执行操作S423,确定边缘像素点中属于双页文档中每个的单页文档的边缘点。
例如,该实施例可以依据边缘像素点中的中边缘类别像素点的位置,确定边缘像素点中左侧的单页文档的边缘点和右侧的单页文档的边缘点。例如,可以将在原始图像中位于中边缘类别像素点左侧的边缘像素点及该中边缘类别像素点作为左侧的单页文档的边缘点,将在原始图像中位于中边缘类别像素点右侧的边缘像素点及该中边缘类别像素点作为右侧的单页文档的边缘点。
例如,对于中边缘类别的像素点,可以先确定在基于原始图像构建的第一坐标系中Y轴坐标值最大的第一像素点和Y轴坐标值最小的第二像素点。随后将上边缘类别的像素点中X轴坐标值小于第一像素点的X轴坐标值的点,作为左侧的单页文档的上边缘点,将上边缘类别的像素点中X轴坐标值大于第一像素点的X轴坐标值的点,作为右侧的单页文档的上边缘点。将下边缘类别的像素点中X轴坐标值小于第二像素点的X轴坐标值的点,作为左侧的单页文档的下边缘点,将下边缘类别的像素点中X轴坐标值大于第二像素点的X轴坐标值的点,作为右侧的单页文档的下边缘点。同时,可以将左边缘类别的像素点作为左侧的单页文档的左边缘点,将中边缘类别的像素点作为左侧的单页文档的右边缘点,将中边缘类别的像素点作为右侧的单页文档的左边缘点,将右边缘类别的像素点作为右侧的单页文档的右边缘点。
对于第一像素点为至少两个的情况,可以从至少两个第一像素点中任选一个像素点,并将该任选的一个像素点的X轴坐标值作为确定两个单页文档的上边缘点的依据。或者,可以将至少两个第一像素点的至少两个X轴坐标值的平均值作为确定两个单页文档的上边缘点的依据。类似地,对于第二像素点为至少两个的情况,可以从至少两个第二像素点中任选一个像素点,并将该任选的一个像素点的X轴坐标值作为确定两个单页文档的下边缘点的依据。或者,可以将至少两个第二像素点的至少两个X轴坐标值的平均值作为确定两个单页文档的下边缘点的依据。
可以理解的是,若拍摄得到的图像中待矫正文档中的文字为旋转若干角度后的文字,则可以先对该拍摄得到的图像进行旋转,得到文档中的文字旋转角度近似为0的原始图像。或者,也可以采用与上述确定每个的单页文档的边缘点的原理类似的原理,来确定拍摄得到的图像中待矫正文档包括的每个的单页文档的边缘点。
若待矫正文档不是双页文档,则可以确定待矫正文档为单页文档,则执行操作S424,确定边缘像素点中属于单页文档的边缘点。
例如,该实施例可以将所有边缘像素点均列为单页文档的边缘点。或者,可以采用如上文描述的确定第一像素点和第二像素点的方式类似的方式,对于所有边缘像素点中类别为中边缘类别或右边缘类别的像素点,可以确定第一像素点和第二像素点,并分别基于该第一像素点和第二像素点的X轴的坐标值,分别对所有边缘像素点中上边缘类别的像素点和下边缘类别的像素点进行筛选,将筛选得到的像素点、左边缘类别的像素点和中边缘类别/右边缘类别的像素点作为该单页文档的边缘点。通过筛选,可以提高得到的单页文档的边缘点的准确性,排除非完整单页文档的上下边缘类别的像素点对确定第一边缘线的影响。
在确定了单页文档的边缘点后,可以执行操作S425,基于单页文档的边缘点,确定单页文档的第一边缘线。
根据本公开的实施例,可以采用多项式拟合算法来对单页文档的边缘点的坐标位置进行拟合,并由拟合得到的多项式曲线来表示单页文档的第一边缘线。通过该多项式拟合的方式确定第一边缘线,相较于采用边缘检测算法检测边缘线的方法,可以提高确定的第一边缘线的平滑度和精度。
例如,在采用多项式拟合算法拟合的过程中,所选择的阶次可以根据先验知识确定。例如,所选择的阶次可以为二阶、三阶等。
在一实施例中,可以选择至少两个预定阶次来对单页文档的边缘点的坐标位置进行拟合,得到针对至少两个预定阶次的至少两个边缘线拟合数据,即得到针对至少两个预定阶次的至少两个多项式曲线。随后,确定至少两个边缘线拟合数据中每个边缘线拟合数据与单页文档的边缘点之间的差异,并根据至少两个边缘线拟合数据中差异最小的目标拟合数据,来确定第一边缘线。例如,可以采用目标拟合数据来表示第一边缘线。其中,至少两个预定阶次例如可以为1~6共计6个阶次。该至少两个预定阶次可以根据先验知识设定,本公开对此不做限定。通过根据拟合得到的至少两个阶次的边缘线拟合数据与边缘点的差异来选择表示第一边缘线的目标拟合数据,可以提高确定的第一边缘线的精度。
其中,例如可以将单页文档的边缘点的X轴坐标值代入边缘线拟合数据中,得到拟合得到的针对该边缘点的Y轴坐标值。采用该拟合得到的Y轴坐标值与边缘点的实际Y轴坐标值之间的差异来表示边缘线拟合数据与边缘点之间的差异。例如,可以采用拟合得到的边缘点的Y轴坐标值与边缘点的实际Y轴坐标值之间的差值绝对值,作为边缘线拟合数据针对该边缘点的拟合差异。对于至少两个边缘点,可以将针对至少两个边缘点的至少两个拟合差异的和作为边缘线拟合数据与边缘点之间的差异。可以理解的是,上述采用差值绝对值表示差异的方法仅作为示例,该实施例还可以采用标准差等来表示差异,本公开对此不做限定。
可以理解的是,第一边缘线可以包括位于单页文档的不同方位的多个边缘线。在确定第一边缘线时,可以对不同类别的边缘点分别进行多项式拟合,以得到不同方位的边缘线。例如,通过对左边缘类别的边缘点进行多项式拟合,可以得到单页文档的左边缘线。通过对上边缘类别的边缘点进行多项式拟合,可以得到单页文档的上边缘线。
图5是根据本公开第二实施例的确定待矫正文档的第一边缘线的原理示意图。
根据本公开的实施例,在拟合得到表示多个方位的多条边缘线的多个目标拟合数据后,例如可以根据该多个目标拟合数据,来确定第一边缘线。如图5所示,在该实施例500中,确定的目标拟合数据可以包括四个,分别表示单页文档的上边缘线、下边缘线、左边缘线和有边缘线。
该实施例500可以先根据目标拟合数据,确定单页文档的顶点位置。例如可以将多个目标拟合数据(即多个多项式曲线)的交点作为单页文档的顶点位置。例如,四个目标拟合数据的交点包括表示上边缘线的多项式曲线与表示左边缘线的多项式曲线之间的交点A、表示上边缘线的多项式曲线与表示右边缘线的多项式曲线之间的交点B、表示下边缘线的多项式曲线与表示右边缘线的多项式曲线之间的交点C以及表示下边缘线的多项式曲线与表示左边缘线的多项式曲线之间的交点D。则单页文档的顶点包括点A、点B、点C和点D。可以理解的是,多项式曲线是以第一坐标系中X轴坐标值为自变量,以第一坐标系中Y轴坐标值为因变量的曲线。
在确定顶点位置后,可以根据顶点位置和目标拟合数据,确定经过顶点位置且围成封闭区域的边缘线,将该边缘线作为第一边缘线。例如,可以根据顶点位置限定多个多项式曲线的坐标值的取值范围,从而得到第一边缘线。例如,该实施例500中,将表示上边缘线的多项式曲线中,X轴坐标值大于等于点A的X轴坐标值且小于等于点B的X轴坐标值的曲线段501,作为单页文档的上边缘线。将表示右边缘线的多项式曲线中,Y轴坐标值大于等于点C的Y轴坐标值且小于等于点B的Y轴坐标值的曲线段502,作为单页文档的右边缘线。将表示下边缘线的多项式曲线中,X轴坐标值大于等于点D的X轴坐标值且小于等于点C的X轴坐标值的曲线段503,作为单页文档的下边缘线。将表示左边缘线的多项式曲线中,Y轴坐标值大于等于点D的Y轴坐标值且小于等于点A的Y轴坐标值的曲线段504,作为单页文档的左边缘线。
图6是根据本公开第三实施例的确定待矫正文档的第一边缘线的原理示意图。
根据本公开的实施例,在确定第一边缘线时,例如可以先基于每个类别的边缘点,确定针对该每个类别的参考边缘点。随后再根据参考边缘点,来确定该每个类别所对应的每个方位的边缘线。如此,可以避免因分割得到的边缘点较多,拟合效果差,确定的边缘线不准确的情况,从而提高确定的边缘线的精度。
例如,对于每个类别的边缘点,可以取该每个类别的边缘点中相对于单页文档位于最外侧的边缘点作为参考边缘点。或者,可以将在垂直于该每个方位所在方向排布的至少两个边缘点中,位于居中位置的边缘点作为参考边缘点。或者,可以将该至少两个边缘点的坐标值的平均值所指示的点,作为参考边缘点。
例如,如图6所示,在实施例600中,若上边缘类别的边缘点包括边缘点611、边缘点612和边缘点613,该边缘点611和边缘点612垂直于水平方向排列。设定边缘点611的坐标值为(x_1,y_1),边缘点612的坐标值为(x_1,y_2),可以将坐标值为(x_1,(y_1+y_2)/2)的点作为上边缘线的X轴坐标值为x_1的参考边缘点。对于边缘点613,由于上边缘类别的边缘点中没有与该边缘点613在垂直于水平方向上排列的另一个边缘点,则可以将该边缘点613直接作为参考边缘点。如此,针对上边缘类别,得到的参考边缘点彼此之间的X轴坐标值不相同,达到细化由上边缘类别的边缘点表示的初始上边缘线的效果。
类似地,若左边缘类别的边缘点包括边缘点621、边缘点622和边缘点623,该边缘点621和边缘点622在水平方向排列。设定边缘点621的坐标值为(x_2,y_3),边缘点622的坐标值为(x_3,y_3),可以将坐标值为((x_2+x_3)/2,y_3)的点作为左边缘线的Y轴坐标值为y_3的参考边缘点。对于边缘点623,由于左边缘类别的边缘点中没有与该边缘点623在水平方向上排列的另一个边缘点,则可以将该边缘点623直接作为参考边缘点。如此,针对左边缘类别,得到的参考边缘点彼此之间的Y轴坐标值不相同,达到细化由左边缘类别的边缘点表示的初始上边缘线的效果。
根据本公开的实施例,以下将对图2所示的操作S250做进一步扩展和限定。
图7是根据本公开实施例的确定映射关系的原理示意图。
如图7所示,该实施例700中,设定得到的第一边缘线包括上边缘线711、右边缘线712、下边缘线713和左边缘线714。网格图像的第二边缘线包括上边缘线721、右边缘线722、下边缘线723和左边缘线724。
该实施例可以对上边缘线711和上边缘线72l进行相同的等分处理,例如可以将该两个上边缘线均进行八等分处理,得到上边缘线711上作为第一关键点的9个等分点和上边缘线721上作为第二关键点的9个等分点,并建立上边缘线711上的9个等分点与上边缘线721上9个等分点之间的一一对应关系。例如,上边缘线711上的9个等分点可以组成第一点序列,边缘线721上的9个等分点可以组成第二点序列,该实施例可以构建第一点序列中的第j个等分点与第二点序列中的第j个等分点之间的对应关系,具有对应关系的第一关键点和第二关键点构成一个关键点对,则对于上边缘线,共计可得到9个关键点对。可以理解的是,上述的八等分处理仅作为实例以利于理解本公开,本公开例如还可以对边缘线进行任意数值的等分处理,本公开对此不做限定。
类似地,可以对两个左边缘线、两个右边缘线和两个下边缘线也分别进行八等分处理,并建立等分点的对应关系,可以总计得到针对每个方位的边缘线的9个关键点对。将针对四个方位的边缘线的所有关键点对汇集并去重,可以得到32个关键点对。每个关键点对中包括一个第一关键点和一个第二关键点。
随后,该实施例可以采用非刚性变换算法来确定网格图像中像素点与原始图像中像素点之间的映射关系。例如,可以基于32个关键点对中关键点的坐标值,采用薄板样条函数(Thin Plate Spline,TPS)来计算网格图像中像素点与原始图像中像素点之间的坐标转换矩阵,由该坐标转换矩阵来表示映射关系。通过采用非刚性变换算法确定映射关系,可以提高确定的映射关系的精度。
在得到映射关系后,例如通过将网格图像中像素点的坐标值与坐标转换矩阵相乘,即可得到原始图像中与该网格图像中像素点对应的像素点。随后,针对网格图像中的每个像素点,将原始图像中与该每个像素点对应的像素点的像素值赋值给该每个像素点,即可得到目标图像。
在一实施例中,还可以通过将网格图像中像素点的坐标值与坐标转换矩阵相乘,得到原始图像中与该网格图像中像素点对应的点的坐标值。该坐标值可能位于原始图像中某个像素的边缘位置,则该实施例可以将该坐标值周边的多个像素点均作为与网格图像中像素点关联的关联像素点。随后,采用插值法对关联像素点的像素值进行处理,得到网格图像中像素点的像素值。在得到网格图像中所有像素点的像素值后,将像素值赋值给网格图像中的像素点,即可得到目标图像。其中,插值法例如可以为双线性插值法等,本公开对此不做限定。
可以理解的是,在待矫正文档为双页文档时,可以针对每个的单页文档,采用该实施例的原理得到包括该单页文档的矫正后文档的目标图像。最后,将两个单页文档的矫正后文档的两个目标图像拼接,即可得到待矫正文档的目标图像。
基于本公开提供的文档矫正方法,本公开还提供了一种文档矫正装置。以下将结合图8对该装置进行详细描述。
图8是根据本公开实施例的文档矫正装置的结构框图。
如图8所示,该实施例的文档矫正装置800可以包括语义分割模块810、边缘线确定模块820、网格图像确定模块830、关键点获得模块840和目标图像生成模块850。
语义分割模块810用于对包括待矫正文档的原始图像进行语义分割,得到边缘像素点。在一实施例中,语义分割模块810可以用于执行上文描述的操作S210,在此不再赘述。
边缘线确定模块820用于基于边缘像素点,确定第一边缘线。在一实施例中,边缘线确定模块820可以用于执行上文描述的操作S220,在此不再赘述。
网格图像确定模块830用于根据矫正后文档对应的图像尺寸,确定目标图像的网格图像。在一实施例中,网格图像确定模块830可以用于执行上文描述的操作S230,在此不再赘述。
关键点获得模块840用于对第一边缘线和网格图像的第二边缘线进行等分处理,分别得到第一边缘线的第一关键点和第二边缘线中与第一关键点对应的第二关键点。在一实施例中,关键点获得模块840可以用于执行上文描述的操作S240,在此不再赘述。
目标图像生成模块850用于根据第一关键点和第二关键点之间的对应关系,生成目标图像。在一实施例中,目标图像生成模块850可以用于执行上文描述的操作S250,在此不再赘述。
根据本公开的实施例,边缘像素点对应至少两个预定类别,多个预定类别与边缘线相对于文档所在的方位相关。上述边缘线确定模块820可以包括第一点确定子模块和边缘线确定子模块。第一点确定子模块用于响应于根据边缘像素点的类别确定待矫正文档是双页文档,确定边缘像素点中属于双页文档中每个的单页文档的边缘点。边缘线确定子模块用于基于单页文档的边缘点,确定单页文档的第一边缘线。
根据本公开的实施例,预定类别包括上边缘类别、下边缘类别、中边缘类别、左边缘类别和右边缘类别。上述装置800还可以包括文档确定模块,用于响应于确定边缘像素点的类别包括中边缘类别或者边缘像素点的类别包括多个预定类别的全部类别,确定待矫正文档为双页文档。
根据本公开的实施例,上述语义分割模块810可以包括图像处理子模块和像素点确定子模块。图像处理子模块用于采用语义分割模型对原始图像进行处理,得到原始图像中每个像素点属于至少两个类别中每个类别的概率值。像素点确定子模块用于基于概率值,确定边缘像素点。其中,多个类别包括背景类别和至少两个预定类别。
根据本公开的实施例,上述边缘线确定模块820还包括第二点确定子模块,用于响应于根据边缘像素点的类别确定待矫正文档不是双页文档,确定待矫正文档为单页文档,并确定边缘像素点中属于单页文档的边缘点。
根据本公开的实施例,上述边缘线确定子模块用于基于单页文档的边缘点,采用多项式拟合算法确定第一边缘线。
根据本公开的实施例,上述边缘线确定子模块可以包括拟合数据确定单元和第一边缘线确定单元。拟合数据确定单元用于基于单页文档的边缘点,采用多项式拟合算法确定分别针对至少两个预定阶次的至少两个边缘线拟合数据。第一边缘线确定单元用于根据边缘线拟合数据中与单页文档的边缘点之间的差异最小的目标拟合数据,确定第一边缘线。
根据本公开的实施例,上述边缘线确定单元可以包括顶点确定子单元和边缘线确定子单元。顶点确定子单元用于根据目标拟合数据,确定单页文档的顶点位置。边缘线确定子单元用于根据顶点位置和目标拟合数据,确定经过顶点位置且围成封闭区域的边缘线,得到第一边缘线。
根据本公开的实施例,单页文档的边缘点包括至少两个目标类别的至少两组边缘点,目标类别包括预定类别中与边缘线相对于文档所在的四个方位相对应的四个类别。上述边缘线确定子模块可以包括参考点确定单元和第二边缘线确定单元。参考点确定单元用于基于每个目标类别的一组边缘点,确定针对每个目标类别的参考边缘点。第二边缘线确定单元用于基于参考边缘点,确定待矫正文档在每个目标类别对应的方位的边缘线。
根据本公开的实施例,上述参考点确定单元用于对于每个目标类别的一组边缘点中垂直于目标方向排列的至少两个边缘点,确定至少两个边缘点的坐标值的平均值所指示的点为参考边缘点。其中,目标方向为每个目标类别所对应的方位所在方向。
根据本公开的实施例,目标图像生成模块850可以包括映射关系确定子模块和图像生成子模块。映射关系确定子模块用于根据第一关键点和第二关键点之间的对应关系,采用非刚性变换算法确定网格图像中像素点与原始图像中像素点之间的映射关系。图像生成子模块用于根据映射关系及原始图像中像素点的像素值,生成目标图像。
需要说明的是,本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供、公开和应用等处理,均符合相关法律法规的规定,采取了必要保密措施,且不违背公序良俗。在本公开的技术方案中,在获取或采集用户个人信息之前,均获取了用户的授权或同意。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图9示出了可以用来实施本公开实施例的文档矫正方法的示例电子设备900的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图9所示,设备900包括计算单元901,其可以根据存储在只读存储器(ROM)902中的计算机程序或者从存储单元908加载到随机访问存储器(RAM)903中的计算机程序,来执行各种适当的动作和处理。在RAM 903中,还可存储设备900操作所需的各种程序和数据。计算单元901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
设备900中的多个部件连接至I/O接口905,包括:输入单元906,例如键盘、鼠标等;输出单元907,例如各种类型的显示器、扬声器等;存储单元908,例如磁盘、光盘等;以及通信单元909,例如网卡、调制解调器、无线通信收发机等。通信单元909允许设备900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元901可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元901的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元901执行上文所描述的各个方法和处理,例如文档矫正方法。例如,在一些实施例中,文档矫正方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元908。在一些实施例中,计算机程序的部分或者全部可以经由ROM 902和/或通信单元909而被载入和/或安装到设备900上。当计算机程序加载到RAM 903并由计算单元901执行时,可以执行上文描述的文档矫正方法的一个或多个步骤。备选地,在其他实施例中,计算单元901可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行文档矫正方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。其中,服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务(″Virtual Private Server″,或简称″VPS″)中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (22)
1.一种文档矫正方法,包括:
对包括待矫正文档的原始图像进行语义分割,得到边缘像素点;
基于所述边缘像素点,确定第一边缘线;
根据矫正后文档对应的图像尺寸,确定目标图像的网格图像;
对所述第一边缘线和所述网格图像的第二边缘线进行等分处理,分别得到所述第一边缘线的第一关键点和所述第二边缘线中与所述第一关键点对应的第二关键点;以及
根据所述第一关键点和所述第二关键点之间的对应关系,生成所述目标图像;
其中,所述边缘像素点对应至少两个预定类别;所述预定类别与边缘线相对于文档所在的方位相关;所述基于所述边缘像素点,确定第一边缘线,包括:
响应于根据所述边缘像素点的类别确定所述待矫正文档是双页文档,确定所述边缘像素点中属于所述双页文档中每个的单页文档的边缘点;以及
基于所述单页文档的边缘点,确定所述单页文档的所述第一边缘线。
2.根据权利要求1所述的方法,其中,所述预定类别包括:上边缘类别、下边缘类别、中边缘类别、左边缘类别和右边缘类别;
所述方法还包括:
响应于确定所述边缘像素点的类别包括所述中边缘类别或者所述边缘像素点的类别包括所述预定类别的全部类别,确定所述待矫正文档为双页文档。
3.根据权利要求1~2中任一项所述的方法,其中,所述对包括待矫正文档的原始图像进行语义分割,得到边缘像素点包括:
采用语义分割模型对所述原始图像进行处理,得到所述原始图像中每个像素点属于至少两个类别中每个类别的概率值;以及
基于所述概率值,确定所述边缘像素点,
其中,所述至少两个类别包括:背景类别和至少两个预定类别。
4.根据权利要求1所述的方法,其中,所述基于所述边缘像素点,确定第一边缘线,还包括:
响应于根据所述边缘像素点的类别确定所述待矫正文档不是所述双页文档,确定所述待矫正文档为单页文档,并确定所述边缘像素点中属于所述单页文档的边缘点。
5.根据权利要求1或4所述的方法,其中,所述基于所述单页文档的边缘点,确定所述单页文档的所述第一边缘线,包括:
基于所述单页文档的边缘点,采用多项式拟合算法确定所述第一边缘线。
6.根据权利要求5所述的方法,其中,所述基于所述单页文档的边缘点,采用多项式拟合算法确定所述第一边缘线包括:
基于所述单页文档的边缘点,采用所述多项式拟合算法确定分别针对至少两个预定阶次的至少两个边缘线拟合数据;以及
根据所述边缘线拟合数据中与所述单页文档的边缘点之间的差异最小的目标拟合数据,确定所述第一边缘线。
7.根据权利要求6所述的方法,其中,所述根据所述边缘线拟合数据中与所述单页文档的边缘点之间的差异最小的目标拟合数据,确定所述第一边缘线包括:
根据所述目标拟合数据,确定所述单页文档的顶点位置;以及
根据所述顶点位置和所述目标拟合数据,确定经过所述顶点位置且围成封闭区域的边缘线,得到所述第一边缘线。
8.根据权利要求1或4所述的方法,其中,所述单页文档的边缘点包括至少两个目标类别的至少两组边缘点;所述目标类别包括:所述预定类别中与边缘线相对于文档所在的四个方位相对应的四个类别;
所述基于所述单页文档的边缘点,确定所述单页文档的第一边缘线包括:
基于每个所述目标类别的一组边缘点,确定每个所述目标类别的参考边缘点;以及
基于所述参考边缘点,确定所述待矫正文档在每个所述目标类别对应的方位的边缘线。
9.根据权利要求8所述的方法,其中,所述基于每个所述目标类别的一组边缘点,确定每个所述目标类别的参考边缘点包括:
对于每个所述目标类别的一组边缘点中垂直于目标方向排列的至少两个边缘点,确定至少两个所述边缘点的坐标值的平均值所指示的点为所述参考边缘点,
其中,所述目标方向为每个所述目标类别所对应的方位所在方向。
10.根据权利要求1所述的方法,其中,所述根据所述第一关键点和所述第二关键点之间的对应关系,生成所述目标图像包括:
根据所述第一关键点和所述第二关键点之间的对应关系,采用非刚性变换算法确定所述网格图像中像素点与所述原始图像中像素点之间的映射关系;以及
根据所述映射关系及所述原始图像中像素点的像素值,生成所述目标图像。
11.一种文档矫正装置,包括:
语义分割模块,用于对包括待矫正文档的原始图像进行语义分割,得到边缘像素点;
边缘线确定模块,用于基于所述边缘像素点,确定第一边缘线;
网格图像确定模块,用于根据矫正后文档对应的图像尺寸,确定目标图像的网格图像;
关键点获得模块,用于对所述第一边缘线和所述网格图像的第二边缘线进行等分处理,分别得到所述第一边缘线的第一关键点和所述第二边缘线中与所述第一关键点对应的第二关键点;以及
目标图像生成模块,用于根据所述第一关键点和所述第二关键点之间的对应关系,生成所述目标图像;
其中,所述边缘像素点对应至少两个预定类别;所述预定类别与边缘线相对于文档所在的方位相关;所述边缘线确定模块包括:
第一点确定子模块,用于响应于根据所述边缘像素点的类别确定所述待矫正文档是双页文档,确定所述边缘像素点中属于所述双页文档中每个的单页文档的边缘点;以及
边缘线确定子模块,用于基于所述单页文档的边缘点,确定所述单页文档的所述第一边缘线。
12.根据权利要求11所述的装置,其中,所述预定类别包括:上边缘类别、下边缘类别、中边缘类别、左边缘类别和右边缘类别;
所述装置还包括文档确定模块,用于:
响应于确定所述边缘像素点的类别包括所述中边缘类别或者所述边缘像素点的类别包括所述预定类别的全部类别,确定所述待矫正文档为双页文档。
13.根据权利要求11~12中任一项所述的装置,其中,所述语义分割模块包括:
图像处理子模块,用于采用语义分割模型对所述原始图像进行处理,得到所述原始图像中每个像素点属于至少两个类别中每个类别的概率值;以及
像素点确定子模块,用于基于所述概率值,确定所述边缘像素点,
其中,所述至少两个类别包括背景类别和至少两个预定类别。
14.根据权利要求11所述的装置,其中,所述边缘线确定模块还包括:
第二点确定子模块,用于响应于根据所述边缘像素点的类别确定所述待矫正文档不是所述双页文档,确定所述待矫正文档为单页文档,并确定所述边缘像素点中属于所述单页文档的边缘点。
15.根据权利要求11或14所述的装置,其中,所述边缘线确定子模块用于:
基于所述单页文档的边缘点,采用多项式拟合算法确定所述第一边缘线。
16.根据权利要求15所述的装置,其中,所述边缘线确定子模块包括:
拟合数据确定单元,用于基于所述单页文档的边缘点,采用所述多项式拟合算法确定分别针对至少两个预定阶次的至少两个边缘线拟合数据;以及
第一边缘线确定单元,用于根据所述边缘线拟合数据中与所述单页文档的边缘点之间的差异最小的目标拟合数据,确定所述第一边缘线。
17.根据权利要求16所述的装置,其中,所述边缘线确定单元包括:
顶点确定子单元,用于根据所述目标拟合数据,确定所述单页文档的顶点位置;以及
边缘线确定子单元,用于根据所述顶点位置和所述目标拟合数据,确定经过所述顶点位置且围成封闭区域的边缘线,得到所述第一边缘线。
18.根据权利要求11或14所述的装置,其中,所述单页文档的边缘点包括至少两个目标类别的至少两组边缘点;所述目标类别包括:所述预定类别中与边缘线相对于文档所在的四个方位相对应的四个类别;所述边缘线确定子模块包括:
参考点确定单元,用于基于每个所述目标类别的一组边缘点,确定每个所述目标类别的参考边缘点;以及
第二边缘线确定单元,用于基于所述参考边缘点,确定所述待矫正文档在每个所述目标类别对应的方位的边缘线。
19.根据权利要求18所述的装置,其中,所述参考点确定单元用于:
对于每个所述目标类别的一组边缘点中垂直于目标方向排列的至少两个边缘点,确定至少两个所述边缘点的坐标值的平均值所指示的点为所述参考边缘点,
其中,所述目标方向为每个所述目标类别所对应的方位所在方向。
20.根据权利要求11所述的装置,其中,所述目标图像生成模块包括:
映射关系确定子模块,用于所述根据所述第一关键点和所述第二关键点之间的对应关系,采用非刚性变换算法确定所述网格图像中像素点与所述原始图像中像素点之间的映射关系;以及
图像生成子模块,用于根据所述映射关系及所述原始图像中像素点的像素值,生成所述目标图像。
21.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1~10中任一项所述的方法。
22.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1~10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210807745.3A CN115187995B (zh) | 2022-07-08 | 2022-07-08 | 文档矫正方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210807745.3A CN115187995B (zh) | 2022-07-08 | 2022-07-08 | 文档矫正方法、装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115187995A CN115187995A (zh) | 2022-10-14 |
CN115187995B true CN115187995B (zh) | 2023-04-18 |
Family
ID=83517219
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210807745.3A Active CN115187995B (zh) | 2022-07-08 | 2022-07-08 | 文档矫正方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115187995B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117877051A (zh) * | 2022-10-12 | 2024-04-12 | 华为终端有限公司 | 一种文档检测矫正方法及终端 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103209284A (zh) * | 2013-02-26 | 2013-07-17 | 中国科学院自动化研究所 | 一种文档扫描图像的亮度补偿方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102208025B (zh) * | 2011-05-27 | 2013-02-27 | 中国科学院自动化研究所 | 一种文本图像几何畸变的矫正方法 |
CN104657730B (zh) * | 2013-11-20 | 2018-01-05 | 富士通株式会社 | 文档图像的校正装置、方法以及扫描仪 |
CN105450900B (zh) * | 2014-06-24 | 2019-01-18 | 佳能株式会社 | 用于文档图像的畸变校正方法和设备 |
CN106296745B (zh) * | 2015-05-26 | 2019-03-12 | 富士通株式会社 | 对文档图像进行校正的方法和装置 |
CN111626941A (zh) * | 2020-05-11 | 2020-09-04 | 东莞市七宝树教育科技有限公司 | 一种基于深度学习语义分割的文档矫正方法 |
CN113627428A (zh) * | 2021-08-11 | 2021-11-09 | Oppo广东移动通信有限公司 | 文档图像矫正方法、装置、存储介质及智能终端设备 |
CN113792730B (zh) * | 2021-08-17 | 2022-09-27 | 北京百度网讯科技有限公司 | 文档图像的矫正方法、装置、电子设备和存储介质 |
CN114418869B (zh) * | 2021-12-22 | 2024-08-13 | 华南理工大学 | 一种文档图像几何校正方法、系统、装置及介质 |
CN114399781A (zh) * | 2022-01-18 | 2022-04-26 | Oppo广东移动通信有限公司 | 文档图像处理方法及装置、电子设备、存储介质 |
CN114494686A (zh) * | 2022-01-28 | 2022-05-13 | 北京百度网讯科技有限公司 | 文本图像矫正方法、装置、电子设备以及存储介质 |
-
2022
- 2022-07-08 CN CN202210807745.3A patent/CN115187995B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103209284A (zh) * | 2013-02-26 | 2013-07-17 | 中国科学院自动化研究所 | 一种文档扫描图像的亮度补偿方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115187995A (zh) | 2022-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12073542B2 (en) | Image processing method, image processing apparatus, and non-transitory storage medium | |
CN113657390A (zh) | 文本检测模型的训练方法和检测文本方法、装置和设备 | |
CN113221743B (zh) | 表格解析方法、装置、电子设备和存储介质 | |
CN113792730B (zh) | 文档图像的矫正方法、装置、电子设备和存储介质 | |
CN113792526B (zh) | 字符生成模型的训练方法、字符生成方法、装置和设备和介质 | |
CN112308051B (zh) | 文本框检测方法、装置、电子设备和计算机存储介质 | |
CN113792853B (zh) | 字符生成模型的训练方法、字符生成方法、装置和设备 | |
CN115578735B (zh) | 文本检测方法和文本检测模型的训练方法、装置 | |
CN114677565B (zh) | 特征提取网络的训练方法和图像处理方法、装置 | |
CN114792355B (zh) | 虚拟形象生成方法、装置、电子设备和存储介质 | |
CN114429637B (zh) | 一种文档分类方法、装置、设备及存储介质 | |
CN112381183A (zh) | 目标检测方法、装置、电子设备及存储介质 | |
CN113657396B (zh) | 训练方法、译文展示方法、装置、电子设备以及存储介质 | |
CN115187995B (zh) | 文档矫正方法、装置、电子设备和存储介质 | |
CN113361535A (zh) | 图像分割模型训练、图像分割方法及相关装置 | |
CN115984856A (zh) | 文档图像矫正模型的训练方法、文档图像的矫正方法 | |
CN113516697B (zh) | 图像配准的方法、装置、电子设备及计算机可读存储介质 | |
CN113706705A (zh) | 用于高精地图的图像处理方法、装置、设备以及存储介质 | |
CN114049646A (zh) | 一种银行卡识别方法、装置、计算机设备及存储介质 | |
CN114202648A (zh) | 文本图像矫正方法、训练方法、装置、电子设备以及介质 | |
CN113205090A (zh) | 图片矫正方法、装置、电子设备及计算机可读存储介质 | |
CN117422851A (zh) | 虚拟换衣方法及其装置、电子设备 | |
CN114494686A (zh) | 文本图像矫正方法、装置、电子设备以及存储介质 | |
CN113610856A (zh) | 训练图像分割模型和图像分割的方法和装置 | |
CN115439331B (zh) | 角点的校正方法和元宇宙中三维模型的生成方法、装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |