CN114399781A - 文档图像处理方法及装置、电子设备、存储介质 - Google Patents
文档图像处理方法及装置、电子设备、存储介质 Download PDFInfo
- Publication number
- CN114399781A CN114399781A CN202210056730.8A CN202210056730A CN114399781A CN 114399781 A CN114399781 A CN 114399781A CN 202210056730 A CN202210056730 A CN 202210056730A CN 114399781 A CN114399781 A CN 114399781A
- Authority
- CN
- China
- Prior art keywords
- document
- straight line
- document image
- edge
- processed
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 31
- 238000003708 edge detection Methods 0.000 claims abstract description 55
- 230000009466 transformation Effects 0.000 claims abstract description 44
- 238000012545 processing Methods 0.000 claims abstract description 32
- 238000012937 correction Methods 0.000 claims abstract description 22
- 238000001914 filtration Methods 0.000 claims description 39
- 238000012549 training Methods 0.000 claims description 18
- 230000006870 function Effects 0.000 claims description 17
- 230000011218 segmentation Effects 0.000 claims description 17
- 239000011159 matrix material Substances 0.000 claims description 12
- 238000001514 detection method Methods 0.000 claims description 11
- 230000004927 fusion Effects 0.000 claims description 10
- 238000003702 image correction Methods 0.000 claims description 6
- 238000013136 deep learning model Methods 0.000 claims description 5
- 230000008447 perception Effects 0.000 claims description 5
- 230000009467 reduction Effects 0.000 claims description 5
- 230000004931 aggregating effect Effects 0.000 claims description 3
- 238000004590 computer program Methods 0.000 claims description 2
- 238000005070 sampling Methods 0.000 claims description 2
- 238000012163 sequencing technique Methods 0.000 claims 1
- 238000000034 method Methods 0.000 abstract description 47
- 238000010586 diagram Methods 0.000 description 40
- 230000008569 process Effects 0.000 description 25
- 238000004891 communication Methods 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 7
- 238000010295 mobile communication Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 3
- 238000012015 optical character recognition Methods 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 241000282414 Homo sapiens Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000003709 image segmentation Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 239000004576 sand Substances 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
Images
Landscapes
- Image Analysis (AREA)
Abstract
本公开实施例是关于一种文档图像处理方法及装置、电子设备、存储介质,涉及图像处理技术领域,该文档图像处理方法包括:获取待处理文档图像,并对所述待处理文档图像进行文档边缘检测,得到文档边缘;对所述文档边缘进行直线拟合,确定直线集合;基于所述直线集合确定所述待处理文档图像中文档的四个顶点;结合所述四个顶点对所述待处理文档图像进行填充操作以及透视变换,得到文档矫正结果。本公开的技术方案能够提高文档矫正的准确性。
Description
本公开涉及图像处理技术领域,具体而言,涉及一种文档图像处理方法、文档图像处理装置、电子设备以及计算机可读存储介质。
背景技术
随着智能手机的普及以及手机摄像头拍摄质量的提升,用户可以通过手机对文档拍照的方法来获取文档的复印件。然而,由于拍摄角度和取景范围难以精确控制,导致用户拍摄的文档图像存在透视变形以及存在无效背景区域的问题。
为了解决上述技术问题,可以通过进行图像前景背景分割来确定文档区域并拟合出部分边界直线,或者是将直线划分为水平线和垂直线进行直线检测,以及针对不同类型采用不同的方法确定轮廓边界。
上述方式中,通过图像前景背景分割来确定文档区域并拟合出边界直线,操作步骤较多导致操作效率较低,并且可靠性较低,准确性较差。将直线分为水平线或垂直线进行直线检测以及针对不同类型采用不同的方法确定轮廓边界,具有一定的局限性,应用范围较小。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种文档图像处理方法及装置、电子设备、存储介质,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的生成的文档图像矫正结果较差的问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的一个方面,提供一种文档图像处理方法,其特征在于,包括:获取待处理文档图像,并对所述待处理文档图像进行文档边缘检测,得到文档边缘;将所述文档边缘进行直线拟合,确定直线集合;基于所述直线集合确定所述待处理文档图像中文档的四个顶点;结合所述四个顶点对所述待处理文档图像进行填充操作以及透视变换,得到文档矫正结果。
根据本公开的一个方面,提供一种文档图像处理装置,包括:边缘获取模块,用于获取待处理文档图像,并对所述待处理文档图像进行文档边缘检测,得到文档边缘;直线集合确定模块,用于将所述文档边缘进行直线拟合,确定直线集合;文档顶点定位模块,用于基于所述直线集合确定所述待处理原始文档图像中文档的四个顶点;图像矫正模块,结合所述四个顶点对所述待处理文档图像进行填充操作以及透视变换,得到文档矫正结果。
根据本公开的一个方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的文档图像处理方法。
根据本公开的一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的文档图像处理方法。
本公开实施例中提供的文档图像处理方法、文档图像处理装置、电子设备以及计算机可读存储介质中,一方面,通过结合像素和语义多个维度对待处理文档图像进行文档边缘检测得到文档边缘,能够使文档边缘保持全局一致性,消除背景和图像内部存在的错误边缘干扰,提高边缘检测的准确性和精度,减少了操作步骤,且提高了操作效率和可靠性。另一方面,将文档边缘进行直线拟合确定直线集合,进而根据直线集合确定待处理文档图像中文档的四个顶点,结合四个顶点对待处理文档图像进行填充操作从而进行透视变换得到文档矫正结果。由于能够结合四个顶点来对待处理文档图像进行透视变换,提高了直线拟合的可靠性,能够准确地实现顶点定位,并且由于填充操作使得矫正后的图像保持水平,避免了角缺失的问题,也避免了局限性,能够对待处理文档图像进行准确矫正,提高文档矫正结果的准确性。再一方面,对所有类型的或者是不同规格的待处理文档图像均能进行准确矫正,提高了图像矫正的准确性和通用性,增加了应用范围。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了可以应用本公开实施例的图像处理方法或图像处理装置的系统架构的示意图。
图2示意性示出本公开实施例中一种文档图像处理方法的示意图。
图3示意性示出本公开实施例中确定文档边缘的流程示意图。
图4示意性示出本公开实施例中边缘检测模型的结构示意图。
图5示意性示出本公开实施例中损失函数对边缘图像的影响的流程示意图。
图6示意性示出本公开实施例中边缘检测得到文档边缘的示意图。
图7示意性示出本公开实施例中进行直线拟合的流程示意图。
图8示意性示出本公开实施例中直线合并的结果示意图。
图9示意性示出本公开实施例中直线拟合的图像示意图。
图10示意性示出本公开实施例中确定顶点的流程示意图。
图11示意性示出本公开实施例中确定的四个顶点的示意图。
图12示意性示出本公开实施例中过滤顶点的流程示意图。
图13示意性示出本公开实施例中进行透视变换的流程示意图。
图14示意性示出本公开实施例中无需进行填充操作的图像处理的示意图。
图15示意性示出本公开实施例中需要进行填充操作的图像处理的示意图。
图16示意性示出本公开实施例中图像矫正的整体流程的示意图。
图17示意性示出本公开实施例中一种文档图像处理装置的框图。
图18示出了适于用来实现本公开实施例的电子设备的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
由于拍摄角度和取景范围难以精确控制,导致用户拍摄的文档图像常存在以下两个问题:文档在图像有一定的歪斜,即存在透视变形;文档往往只占据图像的中心部分,文档的周围会有许多无效的背景区域。这些问题会导致阅读不便,且不适用于存档。另外,若直接对这种文档图像进行OCR,文字识别效果往往很差。因此,需要对拍摄的文档图像进行透视矫正,使得文档图片变为正视图,并裁剪出文档区域,来解决上述问题。
相关技术中提供了以下几种方式:采用传统的Canny算子或GPB算法进行图像前景背景分割(文档区域和背景区域划分),鲁棒性较差,对于包含复杂背景的图像并不适用。需要遍历所有直线可能构成的所有多边形(四边形),来确定最终的文档区域,过程繁琐且计算量大。在直线检测过程中,将直线分为了水平线或竖直线,这对于透视变形严重,或文档在图像中旋转约45度的情形是不适用的,具有一定的局限性。将直线集合分为了水平和垂直两种,并对两两直线的所有交点进行遍历,得到多边形集合,再选择面积最大的多边形作为文档区域。利用高斯混合模型进行前景背景分割,该模型鲁棒性较差,在利用轮廓进行直线检测时,只拟合四条可能的文档边界直线,容易出现偏移或者倾斜,很难贴合文档的实际边界。采用Canny进行文档边缘检测,对于参数设置有强依赖,鲁棒性差,泛化能力差。省略边缘检测,而是直接对文档图像灰度图进行直线检测,对于具有复杂背景或文档边界不明显的情形,该方案难以胜任。针对不同类型(文本类、表格类、图形类),采用不同的方法获取上下左右4条轮廓线,通用性较差。
为了解决上述技术问题,本公开实施例中提供了一种图像处理方法,可以应用于各种类型的文档图像识别场景。图1示出了可以应用本公开实施例的图像处理方法或图像处理装置的系统架构的示意图。
如图1所示,该系统架构100可以包括:第一端110、网络120和第二端130。第一端110可以为任何类型的能够显示图像的设备,例如可以为计算机、智能手机、平板电脑、智能可穿戴设备(如AR眼镜)、机器人、无人机等能够拍摄图像的设备。第一端110可以通过网络120,与第二端130形成通讯连接,将所采集的待处理文档图像传输至第二端130,由第二端130进行图像处理。第二端可以为智能设备,例如打印机、扫描仪或者是电脑等设备,也可以为服务器等等。图1示出第一端110与第二端130属于不同设备的情况。在一种实施方式中,第一端110还可以与第二端130属于相同设备,即第一端与第二端均为智能设备,例如可以为智能手机。
需要说明的是,本示例性实施方式中,是通过第二端130对第一端110上传的图像进行图像矫正,如果第一端和第二端相同,也相当于通过第一端对待处理文档图像进行文档矫正。
应当理解的是,图1中各装置的数量仅仅是示意性的,例如根据实现需要,可以设置多个第一端,其分别通过网络120连接到第二端130,第二端130可以同时对每个第一端的待处理文档图像进行文档矫正,等等。
为了解决相关技术中的问题,本公开实施例中提供了一种文档图像处理方法。接下来,参考图2对本公开实施例中的文档图像处理方法进行详细说明。
在步骤S210中,获取待处理文档图像,并对所述待处理文档图像进行文档边缘检测,得到文档边缘。
本公开实施例中,待处理文档图像可以为各种类型各种规格的包含文档的图像,例如可以包括但不限于书籍(封面/内页)、卡片(名片/身份证/银行卡)、票据(火车票/机票/发票/小票/收据等)、纸张(试卷/海报/菜单/传单/报纸)、PPT投影/TV/电脑屏幕等。待处理文档图像可以为倾斜或者是任意方向放置的图像。
边缘检测用于确定待处理文档图像的边界。本公开实施例中,可以结合像素和语义两个维度来进行文档边缘检测,以提高准确性。图3中示意性示出了确定文档边缘的具体流程图,参考图3中所示,主要包括以下步骤:
在步骤S310中,通过边缘检测模型对待处理文档图像进行文档边缘检测,得到第一文档边缘。
本步骤中,边缘检测模型DocEdgeNet为基于极为轻量的图像分割网络SINet改进得到的深度学习模型。边缘检测模型DocEdgeNet是一种编码-解码类型的像素级密集预测网络,图4中示意性示出了边缘检测模型的网络结构。参考图4中所示,边缘检测模型主要包括编码器部分401和解码器部分402,且边缘检测模型中提供了语义分割分支和边缘检测分支。通过将语义分割分支的特征与边缘检测分支的特征进行融合,为边缘检测提供更多的监督信息,能很大程度上消除背景和文档内部的边缘干扰,从而提高文档边缘检测的准确性。
其中,边缘检测模型具体包括多个模块的特征块,例如可以包括二维卷积Conv2D代表的特征块410、S2模块S2-module的特征块420、上采样模块的特征块430,DSConv+SE模块的特征块440以及降维卷积特征块450,降维卷积+上采样特征块460。
其中,S2-module遵循分离-变换-合并的策略,首先利用分组卷积grouppointwise将特征图的数量减半,其中还进行了通道重组channel shuffle操作,实现不同组特征图之间的信息交流。然后,将数量减半特征图输入到两个S2-block中,每个S2-block的输出通过concat融合进行合并。在S2-module中还采用了残差连接。对于S2-block,采用平均池化来实现多级感受野结构,原因是空洞率越大,推理时延越高。并且,多路径结构无法支持GPU并行计算。在平均池化之后,使用了深度可分离卷积。根据经验,在双线性上采样之前或之后进行pointwise conv,对精度没有决定性的影响。所以,将pointwise conv放在上采样之前,可以降低计算量。
继续参考图4中所示,out_seg是语义分割分支的结果,即掩码;out_edge是边缘检测分支的预测结果,即边缘。gt_seg是语义分割的标签、gt_edge是边缘检测的标签。基于此可以计算语义分割损失Ls和边缘检测损失Le。进一步根据损失函数更新网络模型参数,以使损失函数最小,完成训练过程。
需要说明的是,可以对深度学习模型进行训练得到边缘检测模型。在训练该模型时用到了大量的训练数据,其中少部分是真实数据并由人工标注,绝大部分是合成数据。真实数据一般是手机实际拍摄并人工进行标注的。本公开采用合成的方式来生成大量训练数据,只需若干前景图片和若干背景图片进行重复的随机组合,便可生成训练数据。其中,在每次组合之前都需对前景图片随机透视变换,对背景图片随机裁剪,以保证合成图片具有多样性。
具体地,可以根据边缘感知损失和语义分割损失确定损失函数,并以该损失函数最小为训练目标对深度学习模型的模型参数进行调整,以实现模型训练,从而得到边缘检测模型。具体地,损失函数可以根据公式(1)来确定:
L=Le+λLs 公式(1)
其中Le是边缘感知损失,Ls是语义分割损失,λ是Ls的调整因子,经实验测试,λ=0.5时训练的模型精度最高。Le的本质是加权交叉熵损失,可用来解决“边缘像素”和“非边缘像素”两个类别不均衡的问题,用于监督文档的边界。语义分割损失Ls对于边缘检测模型DocEdgeNet来说是辅助损失,用于监督文档区域,且能够为特征图嵌入更丰富的语义信息,有利于保持全局一致性,从而消除背景和文档内部存在的错误边缘干扰,提高边缘检测的精度和准确性。
在图4中所示的网络结构的基础上,为了获取文档图像的边界,DocEdgeNet从编码器和解码器分别获取不同分辨率的特征图。例如编码器获取分辨率为第一分辨率的特征图,解码器获取分辨率为第二分辨率的特征图。在获取到特征图之后,可以对这些特征图进行降维卷积pointwise conv得到处理结果、降维卷积PW指的是1*1卷积,通过降维卷积可以改变输出维度,降低参数量和计算量。然后对卷积结果分别进行上采样操作upsampling得到上采样特征图,使得上采样特征图具有相同的宽高。进一步将上采样特征图合并concat实现特征融合,最后基于融合特征进行文档边缘的预测。
参考图5中所示,对于图5中的图A所示的票据类型的文档图像而言,图5中的图B是不使用语义分割损失Ls训练的模型的预测结果,图5中的图C是使用语义分割损失Ls训练的模型的预测结果。对比可知,使用语义分割损失Ls能够有效抑制背景中或文档区域内部的错误边缘,明显提升文档边缘检测的精度和质量。
由于结合像素和语义来训练边缘检测模型,进而将待处理文档图像输入至边缘检测模型进行边缘预测,得到文档边缘概率图,并将文档边缘概率图确定为第一文档边缘。在文档边缘概率图中,每个像素点的值表示待处理文档图像中对应位置的像素点属于文档边缘的概率,取值范围是为[0.0,1.0]。值越大,表示像素点属于文档边缘的概率越高。在对边缘概率进行可视化时,可以将[0.0,1.0]映射到[0,255],其为灰度图,颜色越白,表示属于文档边缘的可能性越大。本公开实施例中,结合像素和语义进行文档边缘检测,避免了相关技术中模型鲁棒性较差,泛化能力较差以及对参数具有强依赖性而导致局限性的问题,能够解决边缘像素和非边缘像素类别不平衡的问题,同时能够有效抑制背景中或文档区域内的错误边缘的干扰,提高边缘检测的准确性,并且能够提高第一文档边缘的全面性,提高了鲁棒性和可靠性。能够应用于各种情况下的边缘检测,增加了应用范围。另外,边缘检测模型DocEdgeNet是轻量型模型,模型权重大小仅360K,用于评价模型计算量的浮点运算次数FLOPs仅0.085M,再加上后续处理过程的高效性,在手机端能够实时运行,提高了操作效率。
在步骤S320中,对所述第一文档边缘进行二值化处理,获取第二文档边缘。
本步骤中,二值化处理指的是阈值二值化处理。利用阈值二值化方法,对第一文档边缘进行二值化处理,得到第二文档边缘。具体过程为,遍历第一文档边缘所表示的文档边缘概率图中每个像素点的边缘概率值。若某个像素点的概率值大于等于设定阈值p(比如0.85),那么将该像素点的边缘概率重新赋值为1。若某个像素点的概率值小于设定阈值赋值,则将该像素点的边缘概率重新赋值为0。类似地,遍历可视化后的文档边缘概率图,若像素点的值大于255×p,那么将该像素点赋值为255,否则赋值为0,从而得到文档边缘二值图,记作第二文档边缘。
在步骤S330中,对所述第二文档边缘进行过滤获取第三文档边缘。
本步骤中,由于第二文档边缘中,可能存在一些背景中或者文档区域内部的边缘块,这些边缘块并不属于文档边缘,而是属于干扰项,因此需要过滤掉以提高准确性。对第二文档边缘进行过滤的过程包括:利用连通域算法,找出第二文档边缘中所有的连通边缘,计算每一块连通边缘的面积;若面积小于设定阈值,则将其滤除掉,只保留面积大于预定阈值的连通边缘。基于此,对第二文档边缘进行过滤得到的第三文档边缘。
在步骤S340中,将所述第三文档边缘进行细化处理,以获取第四文档边缘作为所述文档边缘。
本步骤中,通过细化算法可以获取图像的骨架。此处的细化算法可以为ZhangSuen细化算法。具体过程包括:步骤一、循环所有前景像素点,对符合第一条件的像素点标记为删除,第一条件包括:1.2<=N(p1)<=6;2.S(P1)=1;3.P2*P4*P6=0;4.P4*P6*P8=0。其中N(p1)表示跟P1相邻的8个像素点中为前景像素点的个数。S(P1)表示从P2~P9~P2像素中出现0~1的累计次数,其中0表示背景,1表示前景。
步骤二、满足第二条件的像素P1则标记为删除,第二条件如下:1.2<=N(p1)<=6;2.S(P1)=1;3P2*P4*P8=0;4.P2*P6*P8=0。循环上述两步骤,直到两步中都没有像素被标记为删除为止,输出的结果即为二值图像细化后的骨架。
在第三文档边缘中,边缘的厚度通常大于一个像素,此时若直接进行直线检测,会产生很多无效的直线,因此有必要对边缘进行细化处理。采用ZhangSuen细化算法进行边缘骨架提取,得到第四文档边缘,并将第四文档边缘确定为文档边缘。
图6中示意性示出了边缘检测的图像示意图,参考图6中所示,主要包括:获取待处理文档图像,如图6中的图A所示;将待处理文档图像进行文档边缘检测得到文档边缘概率图,即第一文档边缘,如图6中的图B所示;对第一文档边缘进行二值化处理得到第二文档边缘,如图6中的图C所示;对所述第二文档边缘进行过滤获取第三文档边缘,如图6中的图D所示;将所述第三文档边缘进行细化处理,以获取第四文档边缘作为所述文档边缘,如图6中的图E所示。
在步骤S220中,将所述文档边缘进行直线拟合,确定直线集合。
本公开实施例中,直线拟合用于确定出一条直线,从而确定待处理文档图像的边界。其中,进行直线拟合可以包括直线检测、直线合并以及直线过滤等步骤。
图7中示意性示出了进行直线拟合的流程图,参考图7中所示,主要包括以下步骤:
在步骤S710中,对所述文档边缘进行直线检测,确定第一直线集合。
本步骤中,可以利用概率式霍夫变换对第四文档边缘所表示的文档边缘进行直线检测,以检测出其中包含的直线。假设共检测出n条直线,这些直线是利用两点式表示的,则所有的两点式直线集合可表示为L′={l′1,l′2,...,l′n}。进一步地,可以将两点式直线集合转换为参数式直线集合L1={l1,l2,...,ln},并将参数式直线集合记为第一直线集合。两点式直线是利用直线上的两个点表示的,假如直线l的两点式形式为[(x1,y1),(x2,y2)],那么其参数式形式为(ρ,θ),其中ρ是图像坐标原点到直线l的距离。当l与Y轴相交于负半轴时,该值取负;当l与Y轴相交于正半轴时,该值取正。θ是直线l与Y轴负半轴的夹角,以弧度为单位,夹角的取值范围为[0,π)。图像坐标原点到直线的距离ρ和直线与Y轴负半轴的夹角θ,与直线两个点的坐标的对应关系为公式(2)和公式(3)所示:
在步骤S720中,对所述第一直线集合中的直线进行聚类确定直线簇以进行直线合并,并根据所述直线簇的中心得到第二直线集合。
本步骤中,在第一直线集合中存在的多个直线中,部分直线相似性较高,因此需要对相似性较高的直线进行合并,以方便后续处理。直线合并的具体过程如图8中所示,具体包括以下步骤:
在步骤S810中,对所述第一直线集合中的直线,按照待处理文档图像的坐标原点到直线的距离从小到大的顺序进行排序。
本步骤中,对第一直线集合中的直线,按照待处理文档图像的坐标原点到直线l的距离ρ从小到大的顺序进行排序。
在步骤S820中,根据排序后的第一条直线确定第一类直线簇。
本步骤中,可以根据排序后第一直线集合中的第一条直线(距离最小的直线)确定第一类直线簇c1。具体地,可以将其分别初始化为c1={l1,},C={c1,}。每一类直线簇ci是用来存放同一类直线,即近似的直线,如图9中的图C左侧竖向的3条直线。
在步骤S830中,获取下一条直线和所述最后一类直线簇的中心之间的距离差值和角度差值,根据所述距离差值和所述角度差值将所述下一条直线确定为目标类直线簇,并根据所述第一类直线簇和所述目标类直线簇得到直线簇。
本步骤中,下一条直线可以为第一直线集合中,除了第一条直线之外的任意一条直线。下一条直线可以表示为li(2≤i≤n)。可以根据下一条直线计算第一直线集合C中最后一类直线簇c-1的中心进一步可以计算下一条直线和最后一类直线簇的中心之间的距离ρ和角度θ的差值。并基于距离差值和角度差值与设定阈值的对比结果,来根据下一条直线确定目标类直线簇。距离对应的设定阈值与角度对应的设定阈值不同。目标类直线簇可以为新建类直线簇或者是最后一类直线簇。具体地,若下一条直线和最后一类直线簇的中心之间的距离对应的距离差值和角度对应的角度差值均小于对应的设定阈值,则将下一条直线添加至最后一类直线簇。如果下一条直线和最后一类直线簇的中心之间的距离对应的距离差值或角度对应的角度差值其中之一大于对应的设定阈值,则以下一条直线为基础确定新建类直线簇,并将新建类直线簇添加至直线簇中。基于此,重复该步骤直至遍历完第一直线集合中的所有直线为止,确定出新建类直线簇或者是最后一类直线簇。在此基础上,可以根据第一类直线簇以及目标类直线簇所包括的新建类直线簇或者是最后一类直线簇来生成直线簇。
举例而言,如果下一条直线li和最后一类直线簇的中心的距离对应的距离差值和角度对应的角度差值均小于设定阈值,那么将下一条直线li加入到最后一类直线簇c-1中。否则,以下一条直线li为基础,新建一类直线簇cj={li,},并将新建类直线簇cj加入到直线簇C中;最终得到C={c1,c2,...,cm}。每一个ci中至少有一条直线,若有多条直线,则多条直线是近似相同的直线。
在步骤S840中,计算所述直线簇中每一类直线簇的中心,并将每一类直线簇的中心构成的集合确定为直线合并结果,以确定第二直线集合。
在步骤S730中,按照过滤条件将所述第二直线集合中的直线进行过滤,获取第三直线集合作为所述直线集合。
本步骤中,在直线合并之后,可能存在非文档边界上的错误直线,此时需要进行直线过滤,以提高直线的准确性。进行直线过滤的具体过程为:按照过滤条件进行过滤。过滤条件用于表示要过滤的直线的范围。过滤条件为过滤第二直线集合中水平或垂直且靠近图像边界的直线。在进行过滤之后,利用并查集算法对过滤后的第二直线集合进行聚类得到聚类类别。若聚类类别数小于类别数量,则取消之前的过滤。类别数量可以为4个。过滤后的直线集合记作第三直线集合,且第三直线集合中的直线数量小于等于第二直线集合中直线的数量。
图9中示意性示出了直线拟合的图像,参考图9中所示,首先获取待处理文档图像,例如图9中的图A所示;获取待处理文档图像对应的第四文档边缘,例如图9中的图B所示;对第四文档边缘进行直线检测获取第一直线集合,例如图9中的图C所示;对第一直线集合中的直线进行聚类以得到第二直线集合,如图9中的图D所示;对第二直线集合中的直线进行过滤得到第三直线集合,以将第三直线集合作为直线集合,如图9中的图E所示。
继续参考图2中所示,在步骤S230中,基于所述直线集合确定所述待处理文档图像中文档的四个顶点。
本公开实施例中,在实现文档边界直线拟合之后,利用第三直线集合表示的直线集合进行文档顶点定位,以确定待处理文档图像中包含的文档的四个顶点的位置,该顶点定位过程包括计算候选交点集合、交点聚类、交点过滤等过程。
图10中示意性示出了确定顶点的流程图,参考图10中所示,主要包括以下步骤:
在步骤S1010中,计算所述直线集合中每两条直线之间的夹角以确定每两条直线的交点,并根据所述交点组成候选交点集合;
在步骤S1020中,将所述候选交点集合中的所有交点聚合成多类点簇;
在步骤S1030中,对所述多类点簇进行过滤,根据过滤后的多类点簇的中心确定所述待处理文档图像中文档的四个顶点。
具体地,对于图11中的图A所示的待处理文档图像,首先进行直线拟合,得到如图11中的图B所示的第三直线集合作为直线拟合结果。接下来计算第三直线集合中两两直线的夹角,若夹角在(50°,90°]范围内,则计算此两条直线的交点。所有的两条直线组成的交点构成候选交点集合,参考图11中的图C所示。
进一步地,利用K-Means算法,将候选交点集合中的所有交点聚合成多类,形成多类点簇。具体可以聚合为4类得到4类点簇,4类点簇记为C1,C2,C3,C4。
接下来,可以对多类点簇进行过滤,以得到待处理文档图像中文档的四个顶点,如图11中的图F所示。确定顶点的具体过程可以为图12中所示,参考图12中所示,主要包括以下步骤:
在步骤S1210中,按照所述交点的位置与所述待处理文档图像的范围之间的位置关系,将所述多类点簇中的交点划分为第一类型点簇和第二类型点簇。
其中,第一类型点簇指的是位于图像内的点簇,第二类型点簇指的是位于图像外的点簇。具体可以按照交点的位置与待处理文档图像的范围之间的位置关系,将点簇中的交点划分为第一类型点簇Ci,inner和第二类型点簇Ci,outer,并且第一类型点簇和第二类型点簇共同组成点簇Ci(1≤i≤4)。如图11中的图D所示。
在步骤S1220中,根据所述第二类型点簇的存在状态,对所述第一类型点簇进行过滤。
其中,第二类型点簇的存在状态可以用于表示第二类型点簇是否为空。具体包括:在步骤S1221中,若存在状态为第二类型点簇为空,可以对第一类型点簇进行过滤。在步骤S1222中,若存在状态为第二类型点簇不为空,则清空第一类型点簇并对第二类型点簇进行过滤。
具体而言,若不存在所述第二类型点簇,则认为点簇Ci中没有图外交点。若所述第一类型点簇中具有一个交点,直接保留所述交点。若所述第一类型点簇中具有多个交点,保留坐标位于第三文档边缘上的交点。若所述第一类型点簇中的多个交点都不位于第三文档边缘上,保留距离所述待处理文档图像中心最近的交点。位于第三文档边缘上的交点和不位于第三文档边缘上的交点如图11中的图C和图D所示。
若第二类型点簇中存在交点,则对应拍摄不全导致文档角缺失的问题,此时清空第一类型点簇并对第二类型点簇进行过滤。具体过滤方式包括:确定所述第二类型点簇中包含的交点的数量;若第二类型点簇中具有一个交点,直接保留所述交点。若第二类型点簇中具有多个交点,保留距离待处理文档图像中心最近的交点。
进一步地,根据过滤后的多类点簇的中心确定待处理文档图像中文档的四个顶点。具体而言,在得到过滤后的4类点簇后,计算每一类点簇的中心,4类点簇的中心的坐标即为待处理文档图像的4个顶点坐标,4个顶点坐标可以表示为P={(xi,yi),1≤i≤4},从而完成了待处理文档图像中文档的顶点定位,如图11中的图E和图F所示。
继续参考图2中所示,在步骤S240中,结合所述四个顶点对所述待处理文档图像进行填充操作以及透视变换,得到文档矫正结果。
本公开实施例中,在确定文档的四个顶点之后,可以结合四个顶点对待处理文档图像进行透视变换,以得到待处理文档图像对应的文档矫正结果。透视变换用于消除透视失真(畸变),将图像校正为正视图。举例而言,有一个物体实际上是正方形,但是看到的是梯形或其他形状。通过透视变换能够使得三维空间中的二维形状表现出其本身的视觉效果,以将看到的二维形状转换为标准形状。例如,可以通过透视变换将梯形的图像转换为标准的矩形。
在进行透视变换前,首先可以进行额外的判断和处理。具体可以判断四个顶点构成的四边形是否合理。判断条件为:四个顶点构成的四边形占整幅图像的面积比例是否大于10%,四边形的四个内角是否在[50°,130°]范围内。若四边形满足以上两个条件,则继续进行后续透视变换;否则,不进行后续步骤,直接返回原图。进行透视变换的流程图可以参考图13中所示,主要包括以下步骤:
在步骤S1301中,若确定继续进行透视变换,则根据四个顶点的坐标,计算待处理文档图像在多个方向上需要的填充宽度以进行填充操作。其中,计算填充宽度的过程包括以下几个步骤:
第一步,定义待处理文档图像在上下左右四个方向上需要的填充宽度并分别初始化为0,即n_top=0,n_bottom=0,n_left=0,n_right=0。第二步,循环遍历4个顶点坐标(xi,yi),更新上述4个填充宽度,即padding值,具体过程包括以下几种情况:
第一种,若xi<0,则n_left=(0-xi)>n_left?(0-xi):n_left,即若(0-xi)>n_left成立,则n_left=(0-xi):,否则n_left=n_left。
第二种,若xi≥img_w,则n_right=(xi-img_w+1)>n_right?(xi-img_w+1):n_right,img_w表示图像的宽度,即xi-img_w+1>n_right成立,n_right=xi-img_w+1。否则n_right=n_right。
第三种,若yi<0,则n_top=(0-yi)>n_top?(0-yi):n_top,即0-yi>n_top成立,则n_top=0–yi,否则n_top=n_top。
第四种,若yi≥img_h,则n_bottom=(yi-img_h+1)>n_bottom?(yi-img_h+1):n_bottom,img_h表示图像的高度。即,yi-img_h+1>n_bottom?,则n_bottom=yi-img_h+1,否则n_bottom=n_bottom。
根据更新后的填充宽度进行填充操作,得到填充后的待处理文档图像。根据更新后的4个padding宽度,对待处理文档图像进行padding填充操作。如图14中的图A所示,由于待处理文档图像不存在“角缺失”问题,即文档4个顶点均在图像范围内,那么4个padding宽度值均为0,即padding操作后,待处理文档图像不变,也可认为无需进行padding操作。填充操作的结果如图14中的图B所示,透视变换结果如图14中的图C所示。对于图15中所示的待处理文档图像,由于存在“角缺失”问题,导致左下和右下两个文档顶点在图像外,那么需要在图像下边和右边进行padding填充,填充操作的结果如图15中的图B所示,透视变换结果如图15中的图C所示。
如果对待处理文档图像进行了填充操作,例如在预设方向进行了填充操作。预设方向可以为左侧或上侧,则对应的填充宽度不为0。因此需要根据更新后的填充宽度来更新四个顶点的坐标,可以表示为x′i=xi+n_left、y′i=yi+n_top。那么,更新后的待处理文档图像中文档的4个顶点为P′={(x′i,y′i),1≤i≤4}。
在步骤S1302中,根据更新后的四个顶点的坐标,确定所述待处理文档图像中文档在目标平面内的四个目标顶点。
本步骤中,将更新后的四个顶点P′按顺时针排序,并保证第一个顶点距离图像原点最近。由于透视变换之后文档区域在目标平面内为矩形,因此只需计算待处理文档图像中文档在目标平面内左上和右下两个顶点。因此目标顶点指的是文档的左上顶点和右下顶点。目标平面是原始的待处理文档图像透视变换后所在的平面。
为了在透视变换过程中完成裁剪操作,可将左上顶点的坐标设置为(0,0),基于此右下顶点的计算方式为:一、计算第一个和第二个文档顶点水平方向的距离w1=x′2-x′1,计算第三个和第四个文档顶点水平方向的距离w2=x′3-x′4,取它们的均值作为右下顶点的x轴坐标;二、类似地,计算第一个和第四个文档顶点竖直方向的距离h1=y′4-y′1,计算第二个和第三个文档顶点竖直方向的距离h2=y′3-y′2,取它们的均值作为右下顶点的y轴坐标。这样,便可得到文档区域在目标平面内的4个目标顶点
在步骤S1303中,根据更新后的四个顶点以及所述四个目标顶点计算透视变换矩阵,并根据所述透视变换矩阵对填充后的待处理文档图像进行透视变换,以进行矫正。
其中,透视变换矩阵用于描述更新后的四个顶点与四个目标顶点之间的映射关系。利用更新后的四个顶点P′和四个目标顶点Q计算透视变换矩阵M。
在计算透视变换矩阵时,假设4个顶点分别为V1,V2,V3,V4,4个顶点的坐标分别为(x1,y1),(x2,y2),(x3,y3),(x4,y4),其中V1是距离文档图像(0,0)点最近的顶点,且这四个顶点严格按照顺时针排列。假设4个目标顶点分别为V1′,V′2,V′3,V′4,它们的坐标可以表示为(x′1,y′1),(x′2,y′2),(x′3,y′3),(x′4,y′4)
以V1和V1′为例,依据透视变换原理,假设它们在三维空间中对应的坐标为(X1,Y1,Z1),那么将V1透视变换到三维空间的过程可以表示为公式(4):
另a33=1,展开上式,可得到公式(6):
可见,一组原始顶点和目标顶点能够确定两个方程。同理,用另外三组顶点可得到另外六个方程。因此,利用4组原始顶点和目标顶点可以得到8个方程,利用这8个方程便可求解a11~a32这8个未知数,即求解出透视变换矩阵M。
然后根据透视变换矩阵M对填充后的待处理文档图像进行透视变换,从而完成文档矫正。参考图16中所示,对图A中的待处理文档图像进行文档边缘检测,得到图B中所示的文档边缘;对文档边缘进行直线拟合得到如图C中所示的直线集合;对直线集合进行顶点定位,得到图D中所示的待处理文档图像中文档的四个顶点;根据四个顶点进行透视变换,得到文档矫正结果,如图E中所示。
本公开实施例中的技术方案,基于卷积神经网络的文档边缘检测模型DocEdgeNet相对于传统边缘检测方法更加鲁棒,为了训练更好的模型,设计了边缘感知损失和语义分割损失,前者能够解决“边缘像素”和“非边缘像素”类别不平衡的问题,后者能够有效抑制背景中或文档区域内的错误边缘的干扰,提高边缘检测的准确性。另外,DocEdgeNet是极为轻量的,模型权重大小仅360K,FLOPs仅0.085M,再加上后续处理过程的高效性,在手机端能够实时运行。文档边界直线拟合和文档定位可靠性强;通过加入填充操作,能够有效应对角缺失问题,使得矫正后的文本行保持水平,提高了准确性。能够应用于各种类型的文档图像,提高通用性和便捷性,提高图像矫正效果。能够对各种类型的文档图像进行透视矫正,方便阅读或存档,提高通用性。除此之外,还能应用于OCR(Optical characterrecognition,光学字符识别)的预处理过程,能够显著提高文字识别的准确率,从而应用在文档扫描、名片识别、拍照翻译等场景。
本公开实施例中,还提供了一种文档图像处理装置,如图17中所示,该文档图像处理装置1700具体包括以下模块:
边缘获取模块1701,用于获取待处理文档图像,并对所述待处理文档图像进行文档边缘检测,得到文档边缘;
直线集合确定模块1702,用于将所述文档边缘进行直线拟合,确定直线集合;
文档顶点定位模块1703,用于基于所述直线集合确定所述待处理原始文档图像中文档的四个顶点;
图像矫正模块1704,结合所述四个顶点对所述待处理文档图像进行填充操作以及透视变换,得到文档矫正结果。
在本公开的一种示例性实施例中,边缘获取模块包括:第一获取模块,用于通过边缘检测模型对待处理文档图像进行文档边缘检测,得到第一文档边缘;第二获取模块,用于对所述第一文档边缘进行二值化处理,获取第二文档边缘;第三获取模块,用于对所述第二文档边缘进行过滤获取第三文档边缘;第四获取模块,用于将所述第三文档边缘进行细化处理,以获取第四文档边缘作为所述文档边缘。
在本公开的一种示例性实施例中,第一获取模块包括:特征图获取模块,用于从编码器和解码器分别获取不同分辨率的特征图;卷积模块,用于对所述特征图进行降维卷积以及上采样,以获取上采样特征图使所述特征图具有相同的宽高;融合模块,用于将所述上采样特征图进行特征融合得到融合特征,并根据所述融合特征进行文档边缘预测以得到第一文档边缘。
在本公开的一种示例性实施例中,所述装置还包括:模型训练模块,用于使用训练数据,根据边缘感知损失和语义分割损失确定损失函数,并以损失函数最小为训练目标对深度学习模型进行训练,得到所述边缘检测模型。
在本公开的一种示例性实施例中,直线集合确定模块包括:第一集合确定模块,用于对所述文档边缘进行直线检测,确定第一直线集合;第二集合确定模块,用于对所述第一直线集合中的直线进行聚类确定直线簇以进行直线合并,并根据所述直线簇的中心得到第二直线集合;第三集合确定模块,用于按照过滤条件将所述第二直线集合中的直线进行过滤,获取第三直线集合作为所述直线集合。
在本公开的一种示例性实施例中,第二集合确定模块包括:排序模块,用于对所述第一直线集合中的直线,按照待处理文档图像的坐标原点到直线的距离从小到大的顺序进行排序;第一直线簇确定模块,用于根据排序后的第一条直线确定第一类直线簇;直线簇确定模块,用于获取下一条直线和所述最后一类直线簇的中心之间的距离差值和角度差值,根据所述距离差值和所述角度差值将所述下一条直线确定为目标类直线簇,并根据所述第一类直线簇和所述目标类直线簇得到直线簇;合并模块,用于计算所述直线簇中每一类直线簇的中心,并将每一类直线簇的中心构成的集合确定为直线合并结果,以确定第二直线集合。
在本公开的一种示例性实施例中,文档顶点定位模块包括:候选交点集合确定模块,用于计算所述直线集合中每两条直线之间的夹角以确定每两条直线的交点,并根据所述交点组成候选交点集合;交点聚合模块,用于将所述候选交点集合中的所有交点聚合成多类点簇;顶点确定模块,用于对所述多类点簇进行过滤,根据过滤后的多类点簇的中心确定所述待处理文档图像中文档的四个顶点。
在本公开的一种示例性实施例中,顶点确定模块包括:交点划分模块,用于按照所述交点与所述待处理文档图像的范围,将所述多类点簇中的交点划分为第一类型点簇和第二类型点簇;交点过滤模块,用于根据所述第二类型点簇的存在状态,对所述第一类型点簇或所述第二类型点簇进行过滤。
在本公开的一种示例性实施例中,交点过滤模块包括:保留模块,用于若不存在所述第二类型点簇,且所述第一类型点簇中具有一个交点,直接保留所述交点;第一过滤模块,用于若所述第一类型点簇中具有多个交点,保留坐标位于第三文档边缘上的交点;第二过滤模块,用于若所述第一类型点簇中的多个交点都不位于第三文档边缘上,保留距离所述待处理文档图像的中心最近的交点。
在本公开的一种示例性实施例中,交点过滤模块包括:数量确定模块,用于若第二类型点簇中存在交点,清空第一类型点簇并确定所述第二类型点簇中包含的交点的数量;第三过滤模块,用于若第二类型点簇中具有一个交点,直接保留所述交点;第四过滤模块,用于若第二类型点簇中具有多个交点,保留距离待处理文档图像的中心最近的交点。
在本公开的一种示例性实施例中,图像矫正模块包括:填充模块,用于若判断所述四个顶点构成的四边形合理,根据待处理文档图像的填充宽度进行填充操作以更新所述四个顶点的坐标;目标顶点确定模块,用于根据更新后的四个顶点的坐标,确定所述待处理文档图像在目标平面内的四个目标顶点;矩阵计算,用于根据更新后的四个顶点以及所述四个目标顶点计算透视变换矩阵,并根据所述透视变换矩阵对填充后的待处理文档图像进行透视变换,以进行矫正得到文档矫正结果。
需要说明的是,上述文档图像处理装置中各模块的具体细节已经在对应的图像处理方法中进行了详细描述,因此此处不再赘述。
图18示出了适于用来实现本公开示例性实施方式的电子设备的示意图。本公开的终端可以被配置为如图18所示电子设备的形式,然而,需要说明的是,图18示出的电子设备仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
本公开的电子设备至少包括处理器和存储器,存储器用于存储一个或多个程序,当一个或多个程序被处理器执行时,使得处理器可以实现本公开示例性实施方式的方法。
具体的,如图18所示,电子设备1800可以包括:处理器1810、内部存储器1821、外部存储器接口1822、通用串行总线(Universal Serial Bus,USB)接口1830、充电管理模块1840、电源管理模块1841、电池1842、天线1、天线2、移动通信模块1850、无线通信模块1860、音频模块1870、扬声器1871、受话器1872、麦克风1873、耳机接口1874、传感器模块1880、显示屏1890、摄像模组1891、指示器1892、马达1893、按键1894以及用户标识模块(SubscriberIdentification Module,SIM)卡接口1895等。其中传感器模块1880可以包括深度传感器、压力传感器、陀螺仪传感器、气压传感器、磁传感器、加速度传感器、距离传感器、接近光传感器、指纹传感器、温度传感器、触摸传感器、环境光传感器及骨传导传感器等。
可以理解的是,本申请实施例示意的结构并不构成对电子设备1800的具体限定。在本申请另一些实施例中,电子设备1800可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或软件和硬件的组合实现。
处理器1810可以包括一个或多个处理单元,例如:处理器1810可以包括应用处理器、调制解调处理器、图形处理器、图像信号处理器、控制器、视频编解码器、数字信号处理器、基带处理器和/或神经网络处理器(Neural-etwork Processing Unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。另外,处理器1810中还可以设置存储器,用于存储指令和数据。本示例性实施方式中的图像处理方法可以由应用处理器、图形处理器或图像信号处理器来执行,当方法涉及到神经网络相关的处理时,可以由NPU来执行。
内部存储器1821可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器1821可以包括存储程序区和存储数据区。外部存储器接口1822可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备1800的存储能力。
移动终端1800的通信功能可以通过移动通信模块、天线1、无线通信模块、天线2、调制解调处理器以及基带处理器等实现。天线1和天线2用于发射和接收电磁波信号。移动通信模块可以提供应用在移动终端1800上2G、3G、4G、5G等移动通信解决方案。无线通信模块可以提供应用在移动终端200上的无线局域网、蓝牙、近场通信等无线通信解决方案。
显示屏用于实现显示功能,如显示用户界面、图像、视频等。摄像模块用于实现拍摄功能,如拍摄图像、视频等。音频模块用于实现音频功能,如播放音频,采集语音等。电源模块用于实现电源管理功能,如为电池充电、为设备供电、监测电池状态等。
本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读存储介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如下述实施例中所述的方法。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
本领域技术人员在考虑说明书及实践这里公开的内容后,将容易想到本公开的其他实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限。
Claims (14)
1.一种文档图像处理方法,其特征在于,包括:
获取待处理文档图像,并对所述待处理文档图像进行文档边缘检测,得到文档边缘;
将所述文档边缘进行直线拟合,确定直线集合;
基于所述直线集合确定所述待处理文档图像中文档的四个顶点;
结合所述四个顶点对所述待处理文档图像进行填充操作以及透视变换,得到文档矫正结果。
2.根据权利要求1所述的文档图像处理方法,其特征在于,所述对所述待处理文档图像进行文档边缘检测,得到文档边缘,包括:
通过边缘检测模型对待处理文档图像进行文档边缘检测,得到第一文档边缘;
对所述第一文档边缘进行二值化处理,获取第二文档边缘;
对所述第二文档边缘进行过滤获取第三文档边缘;
将所述第三文档边缘进行细化处理,以获取第四文档边缘作为所述文档边缘。
3.根据权利要求2所述的文档图像处理方法,其特征在于,所述通过边缘检测模型对待处理文档图像进行文档边缘检测,得到第一文档边缘,包括:
从编码器和解码器分别获取不同分辨率的特征图;
对所述特征图进行降维卷积以及上采样,以获取上采样特征图使所述特征图具有相同的宽高;
将所述上采样特征图进行特征融合得到融合特征,并根据所述融合特征进行文档边缘预测以得到第一文档边缘。
4.根据权利要求2或3所述的文档图像处理方法,其特征在于,所述方法还包括:
使用训练数据,根据边缘感知损失和语义分割损失确定损失函数,并以损失函数最小为训练目标对深度学习模型进行训练,得到所述边缘检测模型。
5.根据权利要求1所述的文档图像处理方法,其特征在于,所述将所述文档边缘进行直线拟合,确定直线集合,包括:
对所述文档边缘进行直线检测,确定第一直线集合;
对所述第一直线集合中的直线进行聚类确定直线簇以进行直线合并,并根据所述直线簇的中心得到第二直线集合;
按照过滤条件将所述第二直线集合中的直线进行过滤,获取第三直线集合作为所述直线集合。
6.根据权利要求5所述的文档图像处理方法,其特征在于,所述对所述第一直线集合中的直线进行聚类确定直线簇以进行直线合并,并根据所述直线簇的中心得到第二直线集合,包括:
对所述第一直线集合中的直线,按照待处理文档图像的坐标原点到直线的距离从小到大的顺序进行排序;
根据排序后的第一条直线确定第一类直线簇;
获取下一条直线和所述最后一类直线簇的中心之间的距离差值和角度差值,根据所述距离差值和所述角度差值将所述下一条直线确定为目标类直线簇,并根据所述第一类直线簇和所述目标类直线簇得到直线簇;
计算所述直线簇中每一类直线簇的中心,并将每一类直线簇的中心构成的集合确定为直线合并结果,以确定第二直线集合。
7.根据权利要求1所述的文档图像处理方法,其特征在于,所述基于所述直线集合确定所述待处理文档图像中文档的四个顶点,包括:
计算所述直线集合中每两条直线之间的夹角以确定每两条直线的交点,并根据所述交点组成候选交点集合;
将所述候选交点集合中的所有交点聚合成多类点簇;
对所述多类点簇进行过滤,根据过滤后的多类点簇的中心确定所述待处理文档图像中文档的四个顶点。
8.根据权利要求7所述的文档图像处理方法,其特征在于,所述对所述多类点簇进行过滤,包括:
按照所述交点与所述待处理文档图像的范围,将所述多类点簇中的交点划分为第一类型点簇和第二类型点簇;
根据所述第二类型点簇的存在状态,对所述第一类型点簇或所述第二类型点簇进行过滤。
9.根据权利要求8所述的文档图像处理方法,其特征在于,所述根据所述第二类型点簇的存在状态,对所述第一类型点簇或所述第二类型点簇进行过滤,包括:
若不存在所述第二类型点簇,且所述第一类型点簇中具有一个交点,直接保留所述交点;
若所述第一类型点簇中具有多个交点,保留坐标位于第三文档边缘上的交点;
若所述第一类型点簇中的多个交点都不位于第三文档边缘上,保留距离所述待处理文档图像的中心最近的交点。
10.根据权利要求8所述的文档图像处理方法,其特征在于,所述根据所述第二类型点簇的存在状态,对所述第一类型点簇或第二类型点簇进行过滤,包括:
若第二类型点簇中存在交点,清空第一类型点簇并确定所述第二类型点簇中包含的交点的数量;
若第二类型点簇中具有一个交点,直接保留所述交点;
若第二类型点簇中具有多个交点,保留距离待处理文档图像的中心最近的交点。
11.根据权利要求1所述的文档图像处理方法,其特征在于,所述结合所述四个顶点对所述待处理文档图像进行填充操作以及透视变换,得到文档矫正结果,包括:
若判断所述四个顶点构成的四边形合理,根据待处理文档图像的填充宽度进行填充操作以更新所述四个顶点的坐标;
根据更新后的四个顶点的坐标,确定所述待处理文档图像中文档在目标平面内的四个目标顶点;
根据更新后的四个顶点以及所述四个目标顶点计算透视变换矩阵,并根据所述透视变换矩阵对填充后的待处理文档图像进行透视变换,以进行矫正得到文档矫正结果。
12.一种文档图像处理装置,其特征在于,包括:
边缘获取模块,用于获取待处理文档图像,并对所述待处理文档图像进行文档边缘检测,得到文档边缘;
直线集合确定模块,用于将所述文档边缘进行直线拟合,确定直线集合;
文档顶点定位模块,用于基于所述直线集合确定所述待处理原始文档图像中文档的四个顶点;
图像矫正模块,结合所述四个顶点对所述待处理文档图像进行填充操作以及透视变换,得到文档矫正结果。
13.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-11任意一项所述的文档图像处理方法。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-11任意一项所述的文档图像处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210056730.8A CN114399781A (zh) | 2022-01-18 | 2022-01-18 | 文档图像处理方法及装置、电子设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210056730.8A CN114399781A (zh) | 2022-01-18 | 2022-01-18 | 文档图像处理方法及装置、电子设备、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114399781A true CN114399781A (zh) | 2022-04-26 |
Family
ID=81230258
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210056730.8A Pending CN114399781A (zh) | 2022-01-18 | 2022-01-18 | 文档图像处理方法及装置、电子设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114399781A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115187995A (zh) * | 2022-07-08 | 2022-10-14 | 北京百度网讯科技有限公司 | 文档矫正方法、装置、电子设备和存储介质 |
CN116883461A (zh) * | 2023-05-18 | 2023-10-13 | 珠海移科智能科技有限公司 | 一种用于获取清晰文档图像的方法及其终端装置 |
CN117037106A (zh) * | 2023-10-08 | 2023-11-10 | 广州市大湾区虚拟现实研究院 | 一种基于fpga的视频梯形畸变实时校正系统和方法 |
-
2022
- 2022-01-18 CN CN202210056730.8A patent/CN114399781A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115187995A (zh) * | 2022-07-08 | 2022-10-14 | 北京百度网讯科技有限公司 | 文档矫正方法、装置、电子设备和存储介质 |
CN116883461A (zh) * | 2023-05-18 | 2023-10-13 | 珠海移科智能科技有限公司 | 一种用于获取清晰文档图像的方法及其终端装置 |
CN116883461B (zh) * | 2023-05-18 | 2024-03-01 | 珠海移科智能科技有限公司 | 一种用于获取清晰文档图像的方法及其终端装置 |
CN117037106A (zh) * | 2023-10-08 | 2023-11-10 | 广州市大湾区虚拟现实研究院 | 一种基于fpga的视频梯形畸变实时校正系统和方法 |
CN117037106B (zh) * | 2023-10-08 | 2024-02-20 | 广州市大湾区虚拟现实研究院 | 一种基于fpga的视频梯形畸变实时校正系统和方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102319177B1 (ko) | 이미지 내의 객체 자세를 결정하는 방법 및 장치, 장비, 및 저장 매체 | |
US11830230B2 (en) | Living body detection method based on facial recognition, and electronic device and storage medium | |
CN108681729B (zh) | 文本图像矫正方法、装置、存储介质及设备 | |
CN114399781A (zh) | 文档图像处理方法及装置、电子设备、存储介质 | |
WO2022000862A1 (zh) | 鱼眼图像中的对象检测方法、装置及存储介质 | |
CN110866871A (zh) | 文本图像矫正方法、装置、计算机设备及存储介质 | |
CN109683699B (zh) | 基于深度学习实现增强现实的方法、装置及移动终端 | |
Liu et al. | Real-time robust vision-based hand gesture recognition using stereo images | |
CN107766864B (zh) | 提取特征的方法和装置、物体识别的方法和装置 | |
CN113627428A (zh) | 文档图像矫正方法、装置、存储介质及智能终端设备 | |
CN111191582A (zh) | 三维目标检测方法、检测装置、终端设备及计算机可读存储介质 | |
US11908096B2 (en) | Stereoscopic image acquisition method, electronic device and storage medium | |
CN115170893B (zh) | 共视档位分类网络的训练方法、图像排序方法及相关设备 | |
CN112508989A (zh) | 一种图像处理方法、装置、服务器以及介质 | |
CN111325107A (zh) | 检测模型训练方法、装置、电子设备和可读存储介质 | |
CN109658523A (zh) | 利用ar增强现实应用实现车辆各功能使用说明的方法 | |
CN112818979A (zh) | 文本识别方法、装置、设备及存储介质 | |
CN114556425A (zh) | 定位的方法、设备、无人机和存储介质 | |
CN111626241A (zh) | 一种人脸检测方法及装置 | |
CN116580028A (zh) | 一种物体表面缺陷检测方法、装置、设备及存储介质 | |
CN112232162B (zh) | 一种基于多特征融合级联分类器的行人检测方法及装置 | |
CN109361850A (zh) | 图像处理方法、装置、终端设备及存储介质 | |
CN112036342A (zh) | 单证抓拍方法、设备及计算机存储介质 | |
WO2022011560A1 (zh) | 图像裁剪方法与装置、电子设备及存储介质 | |
CN114298268A (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 |