CN117912039A - 一种文档图像版面分析方法 - Google Patents
一种文档图像版面分析方法 Download PDFInfo
- Publication number
- CN117912039A CN117912039A CN202410316346.6A CN202410316346A CN117912039A CN 117912039 A CN117912039 A CN 117912039A CN 202410316346 A CN202410316346 A CN 202410316346A CN 117912039 A CN117912039 A CN 117912039A
- Authority
- CN
- China
- Prior art keywords
- coordinate
- line segment
- primitive
- denote
- text
- 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.)
- Granted
Links
- 238000004458 analytical method Methods 0.000 title claims abstract description 37
- 238000001514 detection method Methods 0.000 claims abstract description 16
- 238000007781 pre-processing Methods 0.000 claims abstract description 8
- 238000012937 correction Methods 0.000 claims description 23
- 125000004122 cyclic group Chemical group 0.000 claims description 9
- 238000000034 method Methods 0.000 claims description 9
- 238000003702 image correction Methods 0.000 claims description 4
- 238000012986 modification Methods 0.000 claims description 4
- 230000004048 modification Effects 0.000 claims description 4
- 230000009191 jumping Effects 0.000 claims description 3
- 238000012163 sequencing technique Methods 0.000 claims description 3
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 238000012545 processing Methods 0.000 description 6
- 238000000605 extraction Methods 0.000 description 4
- 230000011218 segmentation Effects 0.000 description 4
- 230000004927 fusion Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000004870 electrical engineering Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
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/40—Document-oriented image-based pattern recognition
- G06V30/41—Analysis of document content
- G06V30/412—Layout analysis of documents structured with printed lines or input boxes, e.g. business forms or tables
-
- 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/146—Aligning or centring of the image pick-up or image-field
- G06V30/1465—Aligning or centring of the image pick-up or image-field by locating a pattern
-
- 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/18—Extraction of features or characteristics of the image
-
- 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/40—Document-oriented image-based pattern recognition
- G06V30/41—Analysis of document content
- G06V30/413—Classification of content, e.g. text, photographs or tables
-
- 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/40—Document-oriented image-based pattern recognition
- G06V30/42—Document-oriented image-based pattern recognition based on the type of document
Landscapes
- Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Artificial Intelligence (AREA)
- Processing Or Creating Images (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种文档图像版面分析方法,该方法包括以下步骤:步骤S1;文档图像预处理:读取文档图像,对文档图像进行图像去噪、图像纠偏、干扰线去除预处理操作,得到预处理后的图像;步骤S2;版面基元识别:采用目标检测算法对预处理后的图像中的版面基元进行检测,得到版面基元的位置、类别,并根据版面基元的类别,将版面基元加入对应的版面基元集合中;步骤S3;版面基元修正:对版面基元集合中版面基元进行修正,得到修正后的版面基元。本发明的有益效果是:本发明可以准确地识别出版面中的各种版面基元。本发明适用于对各类文档图像的版面分析,可有效地提高版面分析结果的准确性。
Description
技术领域
本发明属于文档图像识别技术领域,具体涉及一种文档图像版面分析方法。
背景技术
随着数字化时代的到来,传统的纸质文档逐渐被电子文档所取代,这使得文档的存储、传输和处理变得更加便捷。如何快速、准确地识别、分类和定位文档内容已成为一项重要的技术挑战。近年来,版面分析技术的兴起为文档数字化带来了新的机遇,版面分析技术有助于将图像文档更精准地转化为数字化文档,提升工作效率。
版面分析旨在将文档划分为不同的区域,并识别出各个区域中的版面基元,从而方便后续的自动化处理和内容识别。通过一些版面分析算法,可以实现对文档版面的自动分析,提高版面分割和元素识别的准确性。
近年来,有多种版面分析方法被提出。如名称为“一种文档的版面分析方法”(公开号为“CN111881768A”)的专利文献,是一种多尺度特征融合的文档版面分析方法,通过缩放图像、特征提取与融合、语义信息提取、特征融合与分割识别等步骤,实现对文档版面的精确分析。又如名称为“一种基于图像实例分割的版面分析方法及系统”(公开号为“CN111881768A ”)的专利文献通过特征提取、等比切分、注意力机制、随机遮挡和预测处理等多个步骤,实现了对图像版面的精确分析。上述方法在版面基元分类和定位方面具有一定的准确性,但在处理复杂的文档布局和元素时,对特征的选择和模型的训练仍需进一步优化,对于版式多样的文档,版面分析效果仍然不太理想。
现有的技术方案仍存在版面分割不准确、特征提取效果不佳等问题。
发明内容
为解决上述问题,本发明提出一种文档图像版面分析方法,该方法能够对文档中的版面基元进行准确检测。
本发明提出的一种文档图像版面分析方法,该方法包括以下步骤:
步骤S1;文档图像预处理:读取文档图像I,对文档图像I进行图像去噪、图像纠偏、干扰线去除预处理操作,得到预处理后的图像Ip;
步骤S2;版面基元识别:采用目标检测算法对预处理后的图像Ip中的版面基元进行检测,得到版面基元的位置、类别,并根据版面基元的类别,将版面基元加入对应的版面基元集合中;
步骤S3;版面基元修正:对版面基元集合中版面基元进行修正,得到修正后的版面基元;其中对版面基元集合中版面基元进行修正分别为表格基元修正、文本基元修正和标题基元修正。
进一步地,上述步骤S2中根据版面基元的类别,将版面基元加入到对应的版面基元集合中,具体步骤是:
如果版面基元的类别是文本,将版面基元的类别加入到文本基元集合TXS;如果版面基元的类别是表格,将版面基元的类别加入表格基元集合TS;如果版面基元的类别是标题,将版面基元的类别加入标题基元集合ES;如果版面基元的类别是其他,将版面基元的类别加入其它基元集合中。
进一步地,表格基元修正,遍历表格基元集合TS中的每一个表格基元,令pna表示当前遍历的第na个表格基元,na=1,2,…,n,n为表格基元集合TS中的表格基元的个数;采用以下步骤对当前遍历的第na个表格基元pna进行修正:
步骤S31,令xlt表示当前遍历的第na个表格基元pna的左上角顶点的x坐标,令ylt表示当前遍历的第na个表格基元pna的左上角顶点的y坐标,令xrb表示当前遍历的第na个表格基元pna的右下角顶点的x坐标,令yrb表示当前遍历的第na个表格基元pna的右下角顶点的y坐标;设置线段端点x坐标的容差阈值tx,设置线段端点y坐标的容差阈值ty;设置a为直线段检测范围水平扩边阈值,设置b为直线段检测范围垂直扩边阈值,设置线段长度容差阈值tl;
步骤S32,以xlt-a为左上角顶点x坐标、ylt-b为左上角顶点y坐标、xrb+a为右下角顶点x坐标、ylt+b为右下角顶点y坐标,在预处理后的图像Ip中截取一个子图像Is1;
以xlt-a为左上角顶点x坐标、yrb-b为左上角顶点y坐标、xrb+ a为右下角顶点x坐标、yrb+b为右下角顶点y坐标,在预处理后的图像Ip中截取一个子图像Is2;
以xlt-a为左上角顶点x坐标、ylt-b为左上角顶点y坐标、xlt+a为右下角顶点x坐标、yrb+b为右下角顶点y坐标,在预处理后的图像Ip中截取一个子图像Is3;
以xrb-a为左上角顶点x坐标、ylt-b为左上角顶点y坐标、xrb+a为右下角顶点x坐标、yrb+b为右下角顶点y坐标,在预处理后的图像Ip中截取一个子图像Is4;
步骤S33,分别在子图像Is1、子图像Is2、子图像Is3、子图像Is4中用直线检测算法检测直线段,得到第一直线段集合L1、第二直线段集合L2、第三直线段集合L3、第四直线段集合L4;
步骤S34,分别找出第一直线段集合L1、第二直线段集合L2中的横线段,加入到第一横线段集合Sl1、第二横线段集合Sl2中;分别找出第三直线段集合L3、第四直线段集合L4中的竖线段,加入到第一竖线段集合Sl3、第二竖线段集合Sl4中;
步骤S35,如果第一横线段集合Sl1不为空,则在第一横线段集合Sl1中寻找最佳横线段lm1;
步骤S36,如果第二横线段集合Sl2不为空,则在第二横线段集合Sl2中寻找最佳横线段lm2;
步骤S37,如果第一竖线段集合Sl3不为空,则在第一竖线段集合Sl3中寻找最佳竖线段lm3;
步骤S38,如果第二竖线段集合Sl4不为空,则在第二竖线段集合Sl4中寻找最佳竖线段lm4。
进一步地,步骤S34中找出直线段集合中的横线段或找出直线段集合中的竖线段,其具体方法是:
步骤S341,遍历直线段集合中的每一条直线段,令l表示当前正在遍历的直线段:
步骤S342,令ys和xs分别表示直线段l的起始点的y坐标和x坐标,令ye和xe分别表示直线段l的结束点的y坐标和x坐标;设置kl为直线段斜率阈值;
步骤S343,如果ye=ys,则判定直线段l为横线段;否则,采用如下公式计算直线段l的斜率k:
k=(ye-ys) / (xe-xs);
如果|k|<kl,则判定直线段l为横线段;
步骤S344,如果xe=xs,则判定直线段l为竖线段;否则,采用如下公式计算直线段l的斜率k:
k = (xe-xs) / (ye-ys);
如果|k|<kl,则判定直线段l为竖线段。
进一步的,步骤S35中,在第一横线段集合Sl1中寻找最佳横线段lm1,其具体步骤是:
步骤S351,根据横线段的左端点的y坐标,按照从小到大的顺序,对第一横线段集合Sl1中的每一条横线段进行排序,得到排序后的第一横线段集合Sl1;
步骤S352,顺序遍历第一横线段集合Sl1中的每一条横线段,令l1,ni表示当前遍历的第ni条横线段,ni=1,2,…,f1,f1为第一横线段集合Sl1中的横线段的条数;令xl,ni表示当前遍历的第ni条横线段l1,ni的左端点的x坐标,令yl,ni表示当前遍历的第ni条横线段l1,ni的左端点的y坐标;令xr,ni表示当前遍历的第ni条横线段l1,ni的右端点的x坐标,令yr,ni表示当前遍历的第ni条横线段l1,ni的右端点的y坐标;如果xr,ni-xl,ni>xrb-xlt-tl,则判定当前遍历的第ni条横线段l1,ni为最佳横线段lm1,结束横线段遍历;
如果能找到最佳横线段lm1,则按以下步骤对当前遍历的第na个表格基元pna的左上角顶点坐标、右下角顶点坐标进行修正:
步骤S353,令最佳横线段lm1的左端点x坐标为xml1,令最佳横线段lm1的左端点y坐标为yml1,令最佳横线段lm1的右端点x坐标为xmr1,令最佳横线段lm1的右端点y坐标为ymr1,令最佳横线段lm1的中点y坐标为ym1,采用如下公式计算最佳横线段lm1的中点y坐标ym1:
ym1=(yml1+ymr1)/2;
步骤S354,将ylt的值修改为ym1;如果xml1<xlt-tx,则将xlt的值修改为xml1;如果xmr1>xrb+tx,则将xrb的值修改为xmr1。
进一步地,步骤S36中在第二横线段集合Sl2中寻找最佳横线段lm2,其具体步骤是:
步骤S361,根据横线段的左端点的y坐标,按照从小到大的顺序,对第二横线段集合Sl2中的每一条横线段进行排序,得到排序后的第二横线段集合Sl2;
步骤S362,逆序遍历第二横线段集合Sl2中的每一条横线段,令l2,nj表示当前遍历的第nj条横线段,nj=1,2,…,f2,f2为第二横线段集合Sl2中的横线段的条数;令xl,nj表示当前遍历的第nj条横线段l2,nj的左端点的x坐标,令yl,nj表示当前遍历的第nj条横线段l2,nj的左端点的y坐标;令xr,nj表示当前遍历的第nj条横线段l2,nj的右端点的x坐标,令yr,nj表示当前遍历的第nj条横线段l2,nj的右端点的y坐标;如果xr,nj-xl,nj>xrb-xlt-tl,则判定当前遍历的第nj条横线段l2,nj为最佳横线段lm2,结束横线段遍历;
如果能找到最佳横线段lm2,则按以下步骤对当前遍历的第na个表格基元pna的左上角顶点坐标、右下角顶点坐标进行修正:
步骤S363,令最佳横线段lm2的左端点x坐标为xml2,令最佳横线段lm2的左端点y坐标为yml2,令最佳横线段lm2的右端点x坐标为xmr2,令最佳横线段lm2的右端点y坐标为ymr2,令最佳横线段lm2的中点y坐标为ym2,采用如下公式计算最佳横线段lm2的中点y坐标ym2:
ym2=(yml2+ymr2)/2;
步骤S364,将yrb的值修改为ym2;如果xml2<xlt-tx,则将xlt的值修改为xml2;如果xmr2>xrb+tx,则将xrb的值修改为xmr2。
进一步地,步骤S37中在第一竖线段集合Sl3中寻找最佳竖线段lm3,其具体步骤是:
步骤S371,根据竖线段的上端点的x坐标,按照从小到大的顺序,对第一竖线段集合Sl3中的每一条竖线段进行排序,得到排序后的第一竖线段集合Sl3;
步骤S372,顺序遍历第一竖线段集合Sl3中的每一条竖线段,令l3,nm表示当前遍历的第nm条竖线段,nm=1,2,…,f3,f3为第一竖线段集合Sl3中的竖线段的条数;令xt,nm表示当前遍历的第nm条竖线段l3,nm的上端点的x坐标,令yt,nm表示当前遍历的第nm条竖线段l3,nm的上端点的y坐标;令xb,nm表示当前遍历的第nm条竖线段l3,nm的下端点的x坐标,令yb,nm表示当前遍历的第nm条竖线段l3,nm的下端点的y坐标;如果yb,nm-yt,nm>yrb-ylt-tl,则判定当前遍历的第nm条竖线段l3,nm为最佳竖线段lm3,结束竖线段遍历;
如果能找到最佳竖线段lm3,则按以下步骤对当前遍历的第na个表格基元pna的左上角顶点坐标、右下角顶点坐标进行修正:
步骤S373,令最佳竖线段lm3的上端点x坐标为xmt3,令最佳竖线段lm3的上端点y坐标为ymt3,令最佳竖线段lm3的下端点x坐标为xmb3,令最佳竖线段lm3的下端点y坐标为ymb3,令最佳竖线段lm3的中点x坐标为xm3,采用如下公式计算最佳竖线段lm3的中点x坐标xm3:
xm3=(xmt3+xmb3)/2;
步骤S374,将xlt的值修改为xm3;如果ymt3<ylt-ty,则将ylt的值修改为ymt3;如果ymb3>yrb+ty,则将yrb的值修改为ymb3。
进一步地,步骤S38中在第二竖线段集合Sl4中寻找最佳竖线段lm4,其具体步骤是:
步骤S381,根据竖线段的上端点的x坐标,按照从小到大的顺序,对第二竖线段集合Sl4中的每一条竖线段进行排序,得到排序后的第二竖线段集合Sl4;
步骤S382,逆序遍历第二竖线段集合Sl4中的每一条竖线段,令l4,nn表示当前遍历的第nn条竖线段,nn=1,2,…,f4,f4为第二竖线段集合Sl4中的竖线段的条数;令xt,nn表示当前遍历的第nn条竖线段l4,nn的上端点的x坐标,令yt,nn表示当前遍历的第nn条竖线段l4,nn的上端点的y坐标;令xb,nn表示当前遍历的第nn条竖线段l4,nn的下端点的x坐标,令yb,nn表示当前遍历的第nn条竖线段l4,nn的下端点的y坐标;如果yb,nn-yt,nn>yrb-ylt-tl,则判定当前遍历的第nn条竖线段l4,nn为最佳竖线段lm4,结束竖线段遍历;
如果能找到最佳竖线段lm4,则按以下步骤对当前遍历的第na个表格基元pna的左上角顶点坐标、右下角顶点坐标进行修正:
步骤S383,令最佳竖线段lm4的上端点x坐标为xmt4,令最佳竖线段lm4的上端点y坐标为ymt4,令最佳竖线段lm4的下端点x坐标为xmb4,令最佳竖线段lm4的下端点y坐标为ymb4,令最佳竖线段lm4的中点x坐标为xm4,采用如下公式计算最佳竖线段lm4的中点x坐标xm4:
xm4=(xmt4+xmb4)/2;
步骤S384,将xrb的值修改为xm4;如果ymt4<ylt-ty,则将ylt的值修改为ymt4;如果ymb4>yrb+ty,则将yrb的值修改为ymb4。
进一步地,文本基元修正;按以下步骤对文本基元进行修正:
步骤T31,设置重叠率阈值to;
步骤T32,根据文本基元左上角顶点的y坐标,按照从小到大的顺序,对文本基元集合TXS中的文本基元进行排序,得到排序后的文本基元集合STX;
步骤T33,令m表示文本基元集合STX中文本基元的个数,令i=1,i为一个循环变量;
步骤T34,如果i>m,则转至步骤T39;否则,从文本基元集合STX中取出第i个文本基元txi,令x11表示第i个文本基元txi的左上角顶点的x坐标,令y11表示第i个文本基元txi的左上角顶点的y坐标,令x12表示第i个文本基元txi的右下角顶点的x坐标,令y12表示第i个文本基元txi的右下角顶点的y坐标,令j=i+1;
步骤T35,如果j>m,则令i=i+1,转至步骤T34;否则,从文本基元集合STX中取出第j个文本基元txj,令x21表示第j个文本基元txj的左上角顶点的x坐标,令y21表示第j个文本基元txj的左上角顶点的y坐标;令x22表示第j个文本基元txj的右下角顶点的x坐标,令y22表示第j个文本基元txj的右下角顶点的y坐标;
步骤T36,如果y21>y12,则令i=i+1,转至步骤T34;
步骤T37,如果x11 ≤ x21,x12 ≥ x22,y11 ≤ y21,y12 ≥ y22,则判定第i个文本基元txi包含第j个文本基元txj,将第j个文本基元txj从文本基元集合STX中删除,令j=j+1,m=m-1;转至步骤T35;
步骤T38,令xol_1表示重叠区域ol左上角顶点的x坐标,xol_1=max(x11, x21);令yol_1表示重叠区域ol左上角顶点的y坐标,yol_1=max(y11, y21);令xol_2表示重叠区域ol右下角顶点的x坐标,xol_2=min(x12, x22);令yol_2表示重叠区域ol右下角顶点的y坐标,yol_2=min(y12,y22);令olw表示重叠区域ol的宽度,olw= xol_2- xol_1;令olh表示重叠区域ol的高度olh=yol_2- yol_1;如果olw<0,或olh<0,则令j=j+1,转至步骤T35;否则,按以下公式计算第i个文本基元txi与第j个文本基元txj的重叠率rol:
rol= max(aol/ atxi , aol/ atxj );
其中,aol表示重叠区域ol的面积,atxi表示第i个文本基元txi的面积,atxj表示第j个文本基元txj的面积,重叠区域ol的面积aol,第i个文本基元txi的面积atxi,第j个文本基元txj的面积atxj,分别按以下公式计算:
aol= olw×olh;
atxi= ( x12 - x11 )×( y12 - y11 ) ;
atxj= ( x22- x21 )×( y22- y21 ) ;
如果rol ≥to,则第i个文本基元txi的左上角顶点的y坐标y11的值不变,将第i个文本基元txi的左上角顶点的x坐标x11的值修改为min(x11,x21),第i个文本基元txi的右下角顶点的x坐标x12的值修改为max(x12,x22),第i个文本基元txi的右下角顶点的y坐标y12的值修改为max(y12,y22),并且从文本基元集合STX中删除第j个文本基元txj;令j=j+1,m=m-1;转至步骤T35;
步骤T39,文本基元修正结束。
进一步地,标题基元修正;如果标题基元集合ES不为空,则按以下步骤对标题基元进行修正:
步骤M31,设置y坐标距离阈值tyd,设置重叠率阈值tos,设置置信度阈值tc;
步骤M32,根据标题基元左上角顶点的y坐标,按照从小到大的顺序,对标题基元集合ES中的每一个标题基元进行排序,得到排序后的标题基元集合SE;
步骤M33,令r=1,r为一个循环变量;
步骤M34,如果r>q,q为标题基元集合SE中标题基元的个数,则跳转至步骤M39;否则从标题基元集合SE取出第r个标题基元er;
步骤M35,如果标题基元的置信度ter≥tc,则令r=r+1,转至步骤M34;
步骤M36,令xe1表示第r个标题基元er的左上角顶点的x坐标,令ye1表示第r个标题基元er左上角顶点的y坐标;令xe2表示第r个标题基元er右下角顶点的x坐标,令ye2表示第r个标题基元er右下角顶点的y坐标;在文本基元集合STX中,找出文本基元的左上角y坐标与第r个标题基元er左上角顶点的y坐标ye1的差值的绝对值小于y坐标距离阈值tyd的所有文本基元,并加入到参考文本基元集合Sref中;如果参考文本基元集合Sref为空,则令r=r+1,转至步骤M34,否则令v=1,v为一个循环变量;
步骤M37,如果v>u,u为参考文本基元集合Sref中文本基元的个数,则令r=r+1,转至步骤M34;否则从参考文本基元集合Sref中取出第v个文本基元txv;令xtx1表示第v个文本基元txv左上角顶点的x坐标,令ytx1表示第v个文本基元txv的左上角顶点的y坐标;令xtx2表示第v个文本基元txv的右下角顶点的x坐标,令ytx2表示第v个文本基元txv的右下角顶点的y坐标;
步骤M38,令xos_1表示重叠区域os左上角顶点的x坐标,xos_1 = max(xe1,xtx1);令yos_1表示重叠区域os左上角顶点的y坐标,yos_1= max(ye1,ytx1);令xos_2表示重叠区域os右下角顶点的x坐标,xos_2= min(xe2,xtx2);令yos_2表示重叠区域os右下角顶点的y坐标,yos_2=min(ye2,ytx2);令osw表示重叠区域os的宽度,osw= xos_2-xos_1;令osh表示重叠区域os的高度,osh= yos_2-yos_1;如果olw<0,或olh<0,则令v=v+1,转至步骤M37;否则按以下公式计算第v个文本基元txv和第r个标题基元er的重叠率ros:
ros= max(aos/ aer , aos/ atxv );
其中,aos表示重叠区域os的面积,aer表示第r个标题基元er的面积,atxv表示第v个文本基元txv的面积,重叠区域os的面积aos,第r个标题基元er的面积aer,第v个文本基元txv的面积atxv,分别按以下公式计算:
aos= osw×osh;
aer= ( xe2 - xe1 )×( ye2 - ye1 ) ;
atxv= ( xtx2- xtx1 )×( ytx2- ytx1 ) ;
如果ros >tos,则将第r个标题基元er从标题基元集合SE中删除,令r=r+1,转至步骤M34;否则,令v=v+1,转至步骤M37;
步骤M39,标题基元修正结束。
本发明的有益效果是:本发明可以准确地识别出版面中的各种版面基元。本发明适用于对各类文档图像的版面分析,可有效地提高版面分析结果的准确性。本发明能够自动识别、分类和定位文档图像中的各类版面基元,如文本、标题、表格等,通过版面基元修正,对文档版面结构的识别结果进行精细化调整,提高版面分析的准确性。本发明适用于处理版式复杂多样的文档图像,整个过程快速、高效,能够显著提升文档处理效率,为文档图像版面分析工作带来极大的便利。
附图说明
下面结合附图和具体实施方式对本发明作进一步地详细说明。
图1是本发明实施例的方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明的具体实施方式作进一步详细说明。需要注意的是,此处根据本发明一种文档图像版面分析方法的具体实施例仅作为举例,并不用于限定本发明。
本实施例结合一张宽为651、高为688的文档图像I,对本发明所提出的一种文档图像版面分析方法进行说明。如图1算法流程图所示,本发明采用以下步骤对文档图像进行版面分析处理:
步骤S1;文档图像预处理:读取文档图像I,对文档图像I进行图像去噪、图像纠偏、干扰线去除预处理操作,得到预处理后的图像Ip;
上述步骤中的图像去噪算法,是一种常见的用于图像去噪的方法,参见Awad S A. Denoising of document images based on similarity and connectivityprinciples [J]. Computers and Electrical Engineering, 2014, 40 (8): 79-85。
上述步骤中的图像纠偏算法,是一种常见的用于图像纠偏的方法,参见Bao W,Yang C, Wen S, Zeng M, Guo J, Zhong J, Xu X. A Novel Adaptive DeskewingAlgorithm for Document Images. Sensors (Basel). 2022 Oct 18;22(20):7944. doi:10.3390/s22207944. PMID: 36298294; PMCID: PMC9610931。
上述步骤中的干扰线去除算法,是一种常见的用于图像中干扰线去除的方法,参见Cheng Z ,Liu Y . A Graph-based Method to Remove Interferential Curve FromText Image. [J]. Mach. Vis. Appl., 2006, 17 (4): 219-228。
步骤S2;版面基元识别:采用目标检测算法对预处理后的图像Ip中的版面基元进行检测,得到版面基元的位置、类别;并根据版面基元的类别,将版面基元加入对应的版面基元集合中;
上述步骤中的目标检测算法,是一种基于改进YOLOv5的目标检测算法,参见Gao Y,Liu W . Complex Labels Text Detection Algorithm Based on Improved YOLOv5[J]. IAENG International Journal of Computer Science, 2023, 50 (2)。
步骤S3;版面基元修正:对版面基元集合中版面基元进行修正,得到修正后的版面基元;其中对版面基元集合中版面基元进行修正分别为表格基元修正、文本基元修正和标题基元修正。
进一步地,上述步骤S2中根据版面基元的类别,将版面基元加入到对应的版面基元集合中,具体步骤是:
如果版面基元的类别是文本,将版面基元的类别加入到文本基元集合TXS;如果版面基元的类别是表格,将版面基元的类别加入表格基元集合TS;如果版面基元的类别是标题,将版面基元的类别加入标题基元集合ES;如果版面基元的类别是其他,将版面基元的类别加入其它基元集合中。
进一步地,表格基元修正,遍历表格基元集合TS中的每一个表格基元,令pna表示当前遍历的第na个表格基元,na=1,2,…,n,n为表格基元集合TS中的表格基元的个数;采用以下步骤对当前遍历的第na个表格基元pna进行修正:
步骤S31,令xlt表示当前遍历的第na个表格基元pna的左上角顶点的x坐标,令ylt表示当前遍历的第na个表格基元pna的左上角顶点的y坐标,令xrb表示当前遍历的第na个表格基元pna的右下角顶点的x坐标,令yrb表示当前遍历的第na个表格基元pna的右下角顶点的y坐标;设置线段端点x坐标的容差阈值tx=15,设置线段端点y坐标的容差阈值ty=15;设置a=40为直线段检测范围水平扩边阈值,设置b=40为直线段检测范围垂直扩边阈值,设置线段长度容差阈值tl=20;
步骤S32,以xlt-a为左上角顶点x坐标、ylt-b为左上角顶点y坐标、xrb+a为右下角顶点x坐标、ylt+b为右下角顶点y坐标,在预处理后的图像Ip中截取一个子图像Is1;
以xlt-a为左上角顶点x坐标、yrb-b为左上角顶点y坐标、xrb+ a为右下角顶点x坐标、yrb+b为右下角顶点y坐标,在预处理后的图像Ip中截取一个子图像Is2;
以xlt-a为左上角顶点x坐标、ylt-b为左上角顶点y坐标、xlt+a为右下角顶点x坐标、yrb+b为右下角顶点y坐标,在预处理后的图像Ip中截取一个子图像Is3;
以xrb-a为左上角顶点x坐标、ylt-b为左上角顶点y坐标、xrb+a为右下角顶点x坐标、yrb+b为右下角顶点y坐标,在预处理后的图像Ip中截取一个子图像Is4;
步骤S33,分别在子图像Is1、子图像Is2、子图像Is3、子图像Is4中用直线检测算法检测直线段,得到第一直线段集合L1、第二直线段集合L2、第三直线段集合L3、第四直线段集合L4;
步骤S34,分别找出第一直线段集合L1、第二直线段集合L2中的横线段,加入到第一横线段集合Sl1、第二横线段集合Sl2中;分别找出第三直线段集合L3、第四直线段集合L4中的竖线段,加入到第一竖线段集合Sl3、第二竖线段集合Sl4中;
步骤S35,如果第一横线段集合Sl1不为空,则在第一横线段集合Sl1中寻找最佳横线段lm1;
步骤S36,如果第二横线段集合Sl2不为空,则在第二横线段集合Sl2中寻找最佳横线段lm2;
步骤S37,如果第一竖线段集合Sl3不为空,则在第一竖线段集合Sl3中寻找最佳竖线段lm3;
步骤S38,如果第二竖线段集合Sl4不为空,则在第二竖线段集合Sl4中寻找最佳竖线段lm4。
进一步地,步骤S34中找出直线段集合中的横线段或找出直线段集合中的竖线段,其具体方法是:
步骤S341,遍历直线段集合中的每一条直线段,令l表示当前正在遍历的直线段:
步骤S342,令ys和xs分别表示直线段l的起始点的y坐标和x坐标,令ye和xe分别表示直线段l的结束点的y坐标和x坐标;设置kl=1为直线段斜率阈值;
步骤S343,如果ye=ys,则判定直线段l为横线段;否则,采用如下公式计算直线段l的斜率k:
k=(ye-ys) / (xe-xs);
如果|k|<kl,则判定直线段l为横线段;
步骤S344,如果xe=xs,则判定直线段l为竖线段;否则,采用如下公式计算直线段l的斜率k:
k = (xe-xs) / (ye-ys);
如果|k|<kl,则判定直线段l为竖线段。
进一步的,步骤S35中,在第一横线段集合Sl1中寻找最佳横线段lm1,其具体步骤是:
步骤S351,根据横线段的左端点的y坐标,按照从小到大的顺序,对第一横线段集合Sl1中的每一条横线段进行排序,得到排序后的第一横线段集合Sl1;
步骤S352,顺序遍历第一横线段集合Sl1中的每一条横线段,令l1,ni表示当前遍历的第ni条横线段,ni=1,2,…,f1,f1为第一横线段集合Sl1中的横线段的条数;令xl,ni表示当前遍历的第ni条横线段l1,ni的左端点的x坐标,令yl,ni表示当前遍历的第ni条横线段l1,ni的左端点的y坐标;令xr,ni表示当前遍历的第ni条横线段l1,ni的右端点的x坐标,令yr,ni表示当前遍历的第ni条横线段l1,ni的右端点的y坐标;如果xr,ni-xl,ni>xrb-xlt-tl,则判定当前遍历的第ni条横线段l1,ni为最佳横线段lm1,结束横线段遍历;
如果能找到最佳横线段lm1,则按以下步骤对当前遍历的第na个表格基元pna的左上角顶点坐标、右下角顶点坐标进行修正:
步骤S353,令最佳横线段lm1的左端点x坐标为xml1,令最佳横线段lm1的左端点y坐标为yml1,令最佳横线段lm1的右端点x坐标为xmr1,令最佳横线段lm1的右端点y坐标为ymr1,令最佳横线段lm1的中点y坐标为ym1,采用如下公式计算最佳横线段lm1的中点y坐标ym1:
ym1=(yml1+ymr1)/2;
步骤S354,将ylt的值修改为ym1;如果xml1<xlt-tx,则将xlt的值修改为xml1;如果xmr1>xrb+tx,则将xrb的值修改为xmr1。
进一步地,步骤S36中在第二横线段集合Sl2中寻找最佳横线段lm2,其具体步骤是:
步骤S361,根据横线段的左端点的y坐标,按照从小到大的顺序,对第二横线段集合Sl2中的每一条横线段进行排序,得到排序后的第二横线段集合Sl2;
步骤S362,逆序遍历第二横线段集合Sl2中的每一条横线段,令l2,nj表示当前遍历的第nj条横线段,nj=1,2,…,f2,f2为第二横线段集合Sl2中的横线段的条数;令xl,nj表示当前遍历的第nj条横线段l2,nj的左端点的x坐标,令yl,nj表示当前遍历的第nj条横线段l2,nj的左端点的y坐标;令xr,nj表示当前遍历的第nj条横线段l2,nj的右端点的x坐标,令yr,nj表示当前遍历的第nj条横线段l2,nj的右端点的y坐标;如果xr,nj-xl,nj>xrb-xlt-tl,则判定当前遍历的第nj条横线段l2,nj为最佳横线段lm2,结束横线段遍历;
如果能找到最佳横线段lm2,则按以下步骤对当前遍历的第na个表格基元pna的左上角顶点坐标、右下角顶点坐标进行修正:
步骤S363,令最佳横线段lm2的左端点x坐标为xml2,令最佳横线段lm2的左端点y坐标为yml2,令最佳横线段lm2的右端点x坐标为xmr2,令最佳横线段lm2的右端点y坐标为ymr2,令最佳横线段lm2的中点y坐标为ym2,采用如下公式计算最佳横线段lm2的中点y坐标ym2:
ym2=(yml2+ymr2)/2;
步骤S364,将yrb的值修改为ym2;如果xml2<xlt-tx,则将xlt的值修改为xml2;如果xmr2>xrb+tx,则将xrb的值修改为xmr2。
进一步地,步骤S37中在第一竖线段集合Sl3中寻找最佳竖线段lm3,其具体步骤是:
步骤S371,根据竖线段的上端点的x坐标,按照从小到大的顺序,对第一竖线段集合Sl3中的每一条竖线段进行排序,得到排序后的第一竖线段集合Sl3;
步骤S372,顺序遍历第一竖线段集合Sl3中的每一条竖线段,令l3,nm表示当前遍历的第nm条竖线段,nm=1,2,…,f3,f3为第一竖线段集合Sl3中的竖线段的条数;令xt,nm表示当前遍历的第nm条竖线段l3,nm的上端点的x坐标,令yt,nm表示当前遍历的第nm条竖线段l3,nm的上端点的y坐标;令xb,nm表示当前遍历的第nm条竖线段l3,nm的下端点的x坐标,令yb,nm表示当前遍历的第nm条竖线段l3,nm的下端点的y坐标;如果yb,nm-yt,nm>yrb-ylt-tl,则判定当前遍历的第nm条竖线段l3,nm为最佳竖线段lm3,结束竖线段遍历;
如果能找到最佳竖线段lm3,则按以下步骤对当前遍历的第na个表格基元pna的左上角顶点坐标、右下角顶点坐标进行修正:
步骤S373,令最佳竖线段lm3的上端点x坐标为xmt3,令最佳竖线段lm3的上端点y坐标为ymt3,令最佳竖线段lm3的下端点x坐标为xmb3,令最佳竖线段lm3的下端点y坐标为ymb3,令最佳竖线段lm3的中点x坐标为xm3,采用如下公式计算最佳竖线段lm3的中点x坐标xm3:
xm3=(xmt3+xmb3)/2;
步骤S374,将xlt的值修改为xm3;如果ymt3<ylt-ty,则将ylt的值修改为ymt3;如果ymb3>yrb+ty,则将yrb的值修改为ymb3。
进一步地,步骤S38中在第二竖线段集合Sl4中寻找最佳竖线段lm4,其具体步骤是:
步骤S381,根据竖线段的上端点的x坐标,按照从小到大的顺序,对第二竖线段集合Sl4中的每一条竖线段进行排序,得到排序后的第二竖线段集合Sl4;
步骤S382,逆序遍历第二竖线段集合Sl4中的每一条竖线段,令l4,nn表示当前遍历的第nn条竖线段,nn=1,2,…,f4,f4为第二竖线段集合Sl4中的竖线段的条数;令xt,nn表示当前遍历的第nn条竖线段l4,nn的上端点的x坐标,令yt,nn表示当前遍历的第nn条竖线段l4,nn的上端点的y坐标;令xb,nn表示当前遍历的第nn条竖线段l4,nn的下端点的x坐标,令yb,nn表示当前遍历的第nn条竖线段l4,nn的下端点的y坐标;如果yb,nn-yt,nn>yrb-ylt-tl,则判定当前遍历的第nn条竖线段l4,nn为最佳竖线段lm4,结束竖线段遍历;
如果能找到最佳竖线段lm4,则按以下步骤对当前遍历的第na个表格基元pna的左上角顶点坐标、右下角顶点坐标进行修正:
步骤S383,令最佳竖线段lm4的上端点x坐标为xmt4,令最佳竖线段lm4的上端点y坐标为ymt4,令最佳竖线段lm4的下端点x坐标为xmb4,令最佳竖线段lm4的下端点y坐标为ymb4,令最佳竖线段lm4的中点x坐标为xm4,采用如下公式计算最佳竖线段lm4的中点x坐标xm4:
xm4=(xmt4+xmb4)/2;
步骤S384,将xrb的值修改为xm4;如果ymt4<ylt-ty,则将ylt的值修改为ymt4;如果ymb4>yrb+ty,则将yrb的值修改为ymb4。
进一步地,文本基元修正;按以下步骤对文本基元进行修正:
步骤T31,设置重叠率阈值to=0.6;
步骤T32,根据文本基元左上角顶点的y坐标,按照从小到大的顺序,对文本基元集合TXS中的文本基元进行排序,得到排序后的文本基元集合STX;
步骤T33,令m表示文本基元集合STX中文本基元的个数,令i=1,i为一个循环变量;
步骤T34,如果i>m,则转至步骤T39;否则,从文本基元集合STX中取出第i个文本基元txi,令x11表示第i个文本基元txi的左上角顶点的x坐标,令y11表示第i个文本基元txi的左上角顶点的y坐标,令x12表示第i个文本基元txi的右下角顶点的x坐标,令y12表示第i个文本基元txi的右下角顶点的y坐标,令j=i+1;
步骤T35,如果j>m,则令i=i+1,转至步骤T34;否则,从文本基元集合STX中取出第j个文本基元txj,令x21表示第j个文本基元txj的左上角顶点的x坐标,令y21表示第j个文本基元txj的左上角顶点的y坐标;令x22表示第j个文本基元txj的右下角顶点的x坐标,令y22表示第j个文本基元txj的右下角顶点的y坐标;
步骤T36,如果y21>y12,则令i=i+1,转至步骤T34;
步骤T37,如果x11 ≤ x21,x12 ≥ x22,y11 ≤ y21,y12 ≥ y22,则判定第i个文本基元txi包含第j个文本基元txj,将第j个文本基元txj从文本基元集合STX中删除,令j=j+1,m=m-1;转至步骤T35;
步骤T38,令xol_1表示重叠区域ol左上角顶点的x坐标,xol_1=max(x11, x21);令yol_1表示重叠区域ol左上角顶点的y坐标,yol_1=max(y11, y21);令xol_2表示重叠区域ol右下角顶点的x坐标,xol_2=min(x12, x22);令yol_2表示重叠区域ol右下角顶点的y坐标,yol_2=min(y12,y22);令olw表示重叠区域ol的宽度,olw= xol_2- xol_1;令olh表示重叠区域ol的高度olh=yol_2- yol_1;如果olw<0,或olh<0,则令j=j+1,转至步骤T35;否则,按以下公式计算第i个文本基元txi与第j个文本基元txj的重叠率rol:
rol= max(aol/ atxi , aol/ atxj );
其中,aol表示重叠区域ol的面积,atxi表示第i个文本基元txi的面积,atxj表示第j个文本基元txj的面积,重叠区域ol的面积aol,第i个文本基元txi的面积atxi,第j个文本基元txj的面积atxj,分别按以下公式计算:
aol= olw×olh;
atxi= ( x12 - x11 )×( y12 - y11 ) ;
atxj= ( x22- x21 )×( y22- y21 ) ;
如果rol ≥to,则第i个文本基元txi的左上角顶点的y坐标y11的值不变,将第i个文本基元txi的左上角顶点的x坐标x11的值修改为min(x11,x21),第i个文本基元txi的右下角顶点的x坐标x12的值修改为max(x12,x22),第i个文本基元txi的右下角顶点的y坐标y12的值修改为max(y12,y22),并且从文本基元集合STX中删除第j个文本基元txj;令j=j+1,m=m-1;转至步骤T35;
T39,文本基元修正结束。
进一步地,标题基元修正;如果标题基元集合ES不为空,则按以下步骤对标题基元进行修正:
步骤M31,设置y坐标距离阈值tyd=100,设置重叠率阈值tos=0.7,设置置信度阈值tc=0.50;
步骤M32,根据标题基元左上角顶点的y坐标,按照从小到大的顺序,对标题基元集合ES中的每一个标题基元进行排序,得到排序后的标题基元集合SE;
步骤M33,令r=1,r为一个循环变量;
步骤M34,如果r>q,q为标题基元集合SE中标题基元的个数,则跳转至步骤M39;否则从标题基元集合SE取出第r个标题基元er;
步骤M35,如果标题基元的置信度ter≥tc,则令r=r+1,转至步骤M34;
步骤M36,令xe1表示第r个标题基元er的左上角顶点的x坐标,令ye1表示第r个标题基元er左上角顶点的y坐标;令xe2表示第r个标题基元er右下角顶点的x坐标,令ye2表示第r个标题基元er右下角顶点的y坐标;在文本基元集合STX中,找出文本基元的左上角y坐标与第r个标题基元er左上角顶点的y坐标ye1的差值的绝对值小于y坐标距离阈值tyd的所有文本基元,并加入到参考文本基元集合Sref中;如果参考文本基元集合Sref为空,则令r=r+1,转至步骤M34,否则令v=1,v为一个循环变量;
步骤M37,如果v>u,u为参考文本基元集合Sref中文本基元的个数,则令r=r+1,转至步骤M34;否则从参考文本基元集合Sref中取出第v个文本基元txv;令xtx1表示第v个文本基元txv左上角顶点的x坐标,令ytx1表示第v个文本基元txv的左上角顶点的y坐标;令xtx2表示第v个文本基元txv的右下角顶点的x坐标,令ytx2表示第v个文本基元txv的右下角顶点的y坐标;
步骤M38,令xos_1表示重叠区域os左上角顶点的x坐标,xos_1 = max(xe1,xtx1);令yos_1表示重叠区域os左上角顶点的y坐标,yos_1= max(ye1,ytx1);令xos_2表示重叠区域os右下角顶点的x坐标,xos_2= min(xe2,xtx2);令yos_2表示重叠区域os右下角顶点的y坐标,yos_2=min(ye2,ytx2);令osw表示重叠区域os的宽度,osw= xos_2-xos_1;令osh表示重叠区域os的高度,osh= yos_2-yos_1;如果olw<0,或olh<0,则令v=v+1,转至步骤M37;否则按以下公式计算第v个文本基元txv和第r个标题基元er的重叠率ros:
ros= max(aos/ aer , aos/ atxv );
其中,aos表示重叠区域os的面积,aer表示第r个标题基元er的面积,atxv表示第v个文本基元txv的面积,重叠区域os的面积aos,第r个标题基元er的面积aer,第v个文本基元txv的面积atxv,分别按以下公式计算:
aos= osw×osh;
aer= ( xe2 - xe1 )×( ye2 - ye1 ) ;
atxv= ( xtx2- xtx1 )×( ytx2- ytx1 ) ;
如果ros >tos,则将第r个标题基元er从标题基元集合SE中删除,令r=r+1,转至步骤M34;否则,令v=v+1,转至步骤M37;
步骤M39,标题基元修正结束。
以上所述为本发明的较佳实施例,并不用以限制本发明,凡不脱离本发明所公开的精神下完成的等效或修改,均应包含在本发明保护的范围之内。
Claims (10)
1.一种文档图像版面分析方法,其特征在于:该方法包括以下步骤:
步骤S1;文档图像预处理:读取文档图像I,对文档图像I进行图像去噪、图像纠偏、干扰线去除预处理操作,得到预处理后的图像Ip;
步骤S2;版面基元识别:采用目标检测算法对预处理后的图像Ip中的版面基元进行检测,得到版面基元的位置、类别,并根据版面基元的类别,将版面基元加入对应的版面基元集合中;
步骤S3;版面基元修正:对版面基元集合中版面基元进行修正,得到修正后的版面基元;其中对版面基元集合中版面基元进行修正分别为表格基元修正、文本基元修正和标题基元修正。
2.根据权利要求1所述的一种文档图像版面分析方法,其特征在于:
上述步骤S2中根据版面基元的类别,将版面基元加入到对应的版面基元集合中,具体步骤是:
如果版面基元的类别是文本,将版面基元的类别加入到文本基元集合TXS;如果版面基元的类别是表格,将版面基元的类别加入表格基元集合TS;如果版面基元的类别是标题,将版面基元的类别加入标题基元集合ES;如果版面基元的类别是其他,将版面基元的类别加入其它基元集合中。
3.根据权利要求2所述的一种文档图像版面分析方法,其特征在于:表格基元修正,遍历表格基元集合TS中的每一个表格基元,令pna表示当前遍历的第na个表格基元,na=1,2,…,n,n为表格基元集合TS中的表格基元的个数;采用以下步骤对当前遍历的第na个表格基元pna进行修正:
步骤S31,令xlt表示当前遍历的第na个表格基元pna的左上角顶点的x坐标,令ylt表示当前遍历的第na个表格基元pna的左上角顶点的y坐标,令xrb表示当前遍历的第na个表格基元pna的右下角顶点的x坐标,令yrb表示当前遍历的第na个表格基元pna的右下角顶点的y坐标;设置线段端点x坐标的容差阈值tx,设置线段端点y坐标的容差阈值ty;设置a为直线段检测范围水平扩边阈值,设置b为直线段检测范围垂直扩边阈值,设置线段长度容差阈值tl;
步骤S32,以xlt-a为左上角顶点x坐标、ylt-b为左上角顶点y坐标、xrb+a为右下角顶点x坐标、ylt+b为右下角顶点y坐标,在预处理后的图像Ip中截取一个子图像Is1;
以xlt-a为左上角顶点x坐标、yrb-b为左上角顶点y坐标、xrb+ a为右下角顶点x坐标、yrb+b为右下角顶点y坐标,在预处理后的图像Ip中截取一个子图像Is2;
以xlt-a为左上角顶点x坐标、ylt-b为左上角顶点y坐标、xlt+a为右下角顶点x坐标、yrb+b为右下角顶点y坐标,在预处理后的图像Ip中截取一个子图像Is3;
以xrb-a为左上角顶点x坐标、ylt-b为左上角顶点y坐标、xrb+a为右下角顶点x坐标、yrb+b为右下角顶点y坐标,在预处理后的图像Ip中截取一个子图像Is4;
步骤S33,分别在子图像Is1、子图像Is2、子图像Is3、子图像Is4中用直线检测算法检测直线段,得到第一直线段集合L1、第二直线段集合L2、第三直线段集合L3、第四直线段集合L4;
步骤S34,分别找出第一直线段集合L1、第二直线段集合L2中的横线段,加入到第一横线段集合Sl1、第二横线段集合Sl2中;分别找出第三直线段集合L3、第四直线段集合L4中的竖线段,加入到第一竖线段集合Sl3、第二竖线段集合Sl4中;
步骤S35,如果第一横线段集合Sl1不为空,则在第一横线段集合Sl1中寻找最佳横线段lm1;
步骤S36,如果第二横线段集合Sl2不为空,则在第二横线段集合Sl2中寻找最佳横线段lm2;
步骤S37,如果第一竖线段集合Sl3不为空,则在第一竖线段集合Sl3中寻找最佳竖线段lm3;
步骤S38,如果第二竖线段集合Sl4不为空,则在第二竖线段集合Sl4中寻找最佳竖线段lm4。
4.根据权利要求3所述的一种文档图像版面分析方法,其特征在于:
步骤S34中找出直线段集合中的横线段或找出直线段集合中的竖线段,其具体方法是:
步骤S341,遍历直线段集合中的每一条直线段,令l表示当前正在遍历的直线段:
步骤S342,令ys和xs分别表示直线段l的起始点的y坐标和x坐标,令ye和xe分别表示直线段l的结束点的y坐标和x坐标;设置kl为直线段斜率阈值;
步骤S343,如果ye=ys,则判定直线段l为横线段;否则,采用如下公式计算直线段l的斜率k:
k=(ye-ys) / (xe-xs);
如果|k|<kl,则判定直线段l为横线段;
步骤S344,如果xe=xs,则判定直线段l为竖线段;否则,采用如下公式计算直线段l的斜率k:
k = (xe-xs) / (ye-ys);
如果|k|<kl,则判定直线段l为竖线段。
5.根据权利要求4所述的一种文档图像版面分析方法,其特征在于:
步骤S35中,在第一横线段集合Sl1中寻找最佳横线段lm1,其具体步骤是:
步骤S351,根据横线段的左端点的y坐标,按照从小到大的顺序,对第一横线段集合Sl1中的每一条横线段进行排序,得到排序后的第一横线段集合Sl1;
步骤S352,顺序遍历第一横线段集合Sl1中的每一条横线段,令l1,ni表示当前遍历的第ni条横线段,ni=1,2,…,f1,f1为第一横线段集合Sl1中的横线段的条数;令xl,ni表示当前遍历的第ni条横线段l1,ni的左端点的x坐标,令yl,ni表示当前遍历的第ni条横线段l1,ni的左端点的y坐标;令xr,ni表示当前遍历的第ni条横线段l1,ni的右端点的x坐标,令yr,ni表示当前遍历的第ni条横线段l1,ni的右端点的y坐标;如果xr,ni-xl,ni>xrb-xlt-tl,则判定当前遍历的第ni条横线段l1,ni为最佳横线段lm1,结束横线段遍历;
如果能找到最佳横线段lm1,则按以下步骤对当前遍历的第na个表格基元pna的左上角顶点坐标、右下角顶点坐标进行修正:
步骤S353,令最佳横线段lm1的左端点x坐标为xml1,令最佳横线段lm1的左端点y坐标为yml1,令最佳横线段lm1的右端点x坐标为xmr1,令最佳横线段lm1的右端点y坐标为ymr1,令最佳横线段lm1的中点y坐标为ym1,采用如下公式计算最佳横线段lm1的中点y坐标ym1:
ym1=(yml1+ymr1)/2;
步骤S354,将ylt的值修改为ym1;如果xml1<xlt-tx,则将xlt的值修改为xml1;如果xmr1>xrb+tx,则将xrb的值修改为xmr1。
6.根据权利要求5所述的一种文档图像版面分析方法,其特征在于:
步骤S36中在第二横线段集合Sl2中寻找最佳横线段lm2,其具体步骤是:
步骤S361,根据横线段的左端点的y坐标,按照从小到大的顺序,对第二横线段集合Sl2中的每一条横线段进行排序,得到排序后的第二横线段集合Sl2;
步骤S362,逆序遍历第二横线段集合Sl2中的每一条横线段,令l2,nj表示当前遍历的第nj条横线段,nj=1,2,…,f2,f2为第二横线段集合Sl2中的横线段的条数;令xl,nj表示当前遍历的第nj条横线段l2,nj的左端点的x坐标,令yl,nj表示当前遍历的第nj条横线段l2,nj的左端点的y坐标;令xr,nj表示当前遍历的第nj条横线段l2,nj的右端点的x坐标,令yr,nj表示当前遍历的第nj条横线段l2,nj的右端点的y坐标;如果xr,nj-xl,nj>xrb-xlt-tl,则判定当前遍历的第nj条横线段l2,nj为最佳横线段lm2,结束横线段遍历;
如果能找到最佳横线段lm2,则按以下步骤对当前遍历的第na个表格基元pna的左上角顶点坐标、右下角顶点坐标进行修正:
步骤S363,令最佳横线段lm2的左端点x坐标为xml2,令最佳横线段lm2的左端点y坐标为yml2,令最佳横线段lm2的右端点x坐标为xmr2,令最佳横线段lm2的右端点y坐标为ymr2,令最佳横线段lm2的中点y坐标为ym2,采用如下公式计算最佳横线段lm2的中点y坐标ym2:
ym2=(yml2+ymr2)/2;
步骤S364,将yrb的值修改为ym2;如果xml2<xlt-tx,则将xlt的值修改为xml2;如果xmr2>xrb+tx,则将xrb的值修改为xmr2。
7.根据权利要求6所述的一种文档图像版面分析方法,其特征在于:
步骤S37中在第一竖线段集合Sl3中寻找最佳竖线段lm3,其具体步骤是:
步骤S371,根据竖线段的上端点的x坐标,按照从小到大的顺序,对第一竖线段集合Sl3中的每一条竖线段进行排序,得到排序后的第一竖线段集合Sl3;
步骤S372,顺序遍历第一竖线段集合Sl3中的每一条竖线段,令l3,nm表示当前遍历的第nm条竖线段,nm=1,2,…,f3,f3为第一竖线段集合Sl3中的竖线段的条数;令xt,nm表示当前遍历的第nm条竖线段l3,nm的上端点的x坐标,令yt,nm表示当前遍历的第nm条竖线段l3,nm的上端点的y坐标;令xb,nm表示当前遍历的第nm条竖线段l3,nm的下端点的x坐标,令yb,nm表示当前遍历的第nm条竖线段l3,nm的下端点的y坐标;如果yb,nm-yt,nm>yrb-ylt-tl,则判定当前遍历的第nm条竖线段l3,nm为最佳竖线段lm3,结束竖线段遍历;
如果能找到最佳竖线段lm3,则按以下步骤对当前遍历的第na个表格基元pna的左上角顶点坐标、右下角顶点坐标进行修正:
步骤S373,令最佳竖线段lm3的上端点x坐标为xmt3,令最佳竖线段lm3的上端点y坐标为ymt3,令最佳竖线段lm3的下端点x坐标为xmb3,令最佳竖线段lm3的下端点y坐标为ymb3,令最佳竖线段lm3的中点x坐标为xm3,采用如下公式计算最佳竖线段lm3的中点x坐标xm3:
xm3=(xmt3+xmb3)/2;
步骤S374,将xlt的值修改为xm3;如果ymt3<ylt-ty,则将ylt的值修改为ymt3;如果ymb3>yrb+ty,则将yrb的值修改为ymb3。
8.根据权利要求7所述的一种文档图像版面分析方法,其特征在于:
步骤S38中在第二竖线段集合Sl4中寻找最佳竖线段lm4,其具体步骤是:
步骤S381,根据竖线段的上端点的x坐标,按照从小到大的顺序,对第二竖线段集合Sl4中的每一条竖线段进行排序,得到排序后的第二竖线段集合Sl4;
步骤S382,逆序遍历第二竖线段集合Sl4中的每一条竖线段,令l4,nn表示当前遍历的第nn条竖线段,nn=1,2,…,f4,f4为第二竖线段集合Sl4中的竖线段的条数;令xt,nn表示当前遍历的第nn条竖线段l4,nn的上端点的x坐标,令yt,nn表示当前遍历的第nn条竖线段l4,nn的上端点的y坐标;令xb,nn表示当前遍历的第nn条竖线段l4,nn的下端点的x坐标,令yb,nn表示当前遍历的第nn条竖线段l4,nn的下端点的y坐标;如果yb,nn-yt,nn>yrb-ylt-tl,则判定当前遍历的第nn条竖线段l4,nn为最佳竖线段lm4,结束竖线段遍历;
如果能找到最佳竖线段lm4,则按以下步骤对当前遍历的第na个表格基元pna的左上角顶点坐标、右下角顶点坐标进行修正:
步骤S383,令最佳竖线段lm4的上端点x坐标为xmt4,令最佳竖线段lm4的上端点y坐标为ymt4,令最佳竖线段lm4的下端点x坐标为xmb4,令最佳竖线段lm4的下端点y坐标为ymb4,令最佳竖线段lm4的中点x坐标为xm4,采用如下公式计算最佳竖线段lm4的中点x坐标xm4:
xm4=(xmt4+xmb4)/2;
步骤S384,将xrb的值修改为xm4;如果ymt4<ylt-ty,则将ylt的值修改为ymt4;如果ymb4>yrb+ty,则将yrb的值修改为ymb4。
9.根据权利要求8所述的一种文档图像版面分析方法,其特征在于:
文本基元修正;按以下步骤对文本基元进行修正:
步骤T31,设置重叠率阈值to;
步骤T32,根据文本基元左上角顶点的y坐标,按照从小到大的顺序,对文本基元集合TXS中的文本基元进行排序,得到排序后的文本基元集合STX;
步骤T33,令m表示文本基元集合STX中文本基元的个数,令i=1,i为一个循环变量;
步骤T34,如果i>m,则转至步骤T39;否则,从文本基元集合STX中取出第i个文本基元txi,令x11表示第i个文本基元txi的左上角顶点的x坐标,令y11表示第i个文本基元txi的左上角顶点的y坐标,令x12表示第i个文本基元txi的右下角顶点的x坐标,令y12表示第i个文本基元txi的右下角顶点的y坐标,令j=i+1;
步骤T35,如果j>m,则令i=i+1,转至步骤T34;否则,从文本基元集合STX中取出第j个文本基元txj,令x21表示第j个文本基元txj的左上角顶点的x坐标,令y21表示第j个文本基元txj的左上角顶点的y坐标;令x22表示第j个文本基元txj的右下角顶点的x坐标,令y22表示第j个文本基元txj的右下角顶点的y坐标;
步骤T36,如果y21>y12,则令i=i+1,转至步骤T34;
步骤T37,如果x11 ≤ x21,x12 ≥ x22,y11 ≤ y21,y12 ≥ y22,则判定第i个文本基元txi包含第j个文本基元txj,将第j个文本基元txj从文本基元集合STX中删除,令j=j+1,m=m-1;转至步骤T35;
步骤T38,令xol_1表示重叠区域ol左上角顶点的x坐标,xol_1=max(x11, x21);令yol_1表示重叠区域ol左上角顶点的y坐标,yol_1=max(y11, y21);令xol_2表示重叠区域ol右下角顶点的x坐标,xol_2=min(x12, x22);令yol_2表示重叠区域ol右下角顶点的y坐标,yol_2=min(y12,y22);令olw表示重叠区域ol的宽度,olw= xol_2- xol_1;令olh表示重叠区域ol的高度olh=yol_2- yol_1;如果olw<0,或olh<0,则令j=j+1,转至步骤T35;否则,按以下公式计算第i个文本基元txi与第j个文本基元txj的重叠率rol:
rol= max(aol/ atxi , aol/ atxj );
其中,aol表示重叠区域ol的面积,atxi表示第i个文本基元txi的面积,atxj表示第j个文本基元txj的面积,重叠区域ol的面积aol,第i个文本基元txi的面积atxi,第j个文本基元txj的面积atxj,分别按以下公式计算:
aol= olw×olh;
atxi= ( x12 - x11 )×( y12 - y11 ) ;
atxj= ( x22- x21 )×( y22- y21 ) ;
如果rol ≥to,则第i个文本基元txi的左上角顶点的y坐标y11的值不变,将第i个文本基元txi的左上角顶点的x坐标x11的值修改为min(x11,x21),第i个文本基元txi的右下角顶点的x坐标x12的值修改为max(x12,x22),第i个文本基元txi的右下角顶点的y坐标y12的值修改为max(y12,y22),并且从文本基元集合STX中删除第j个文本基元txj;令j=j+1,m=m-1;转至步骤T35;
步骤T39,文本基元修正结束。
10.根据权利要求9所述的一种文档图像版面分析方法,其特征在于:
标题基元修正;如果标题基元集合ES不为空,则按以下步骤对标题基元进行修正:
步骤M31,设置y坐标距离阈值tyd,设置重叠率阈值tos,设置置信度阈值tc;
步骤M32,根据标题基元左上角顶点的y坐标,按照从小到大的顺序,对标题基元集合ES中的每一个标题基元进行排序,得到排序后的标题基元集合SE;
步骤M33,令r=1,r为一个循环变量;
步骤M34,如果r>q,q为标题基元集合SE中标题基元的个数,则跳转至步骤M39;否则从标题基元集合SE取出第r个标题基元er;
步骤M35,如果标题基元的置信度ter≥tc,则令r=r+1,转至步骤M34;
步骤M36,令xe1表示第r个标题基元er的左上角顶点的x坐标,令ye1表示第r个标题基元er左上角顶点的y坐标;令xe2表示第r个标题基元er右下角顶点的x坐标,令ye2表示第r个标题基元er右下角顶点的y坐标;在文本基元集合STX中,找出文本基元的左上角y坐标与第r个标题基元er左上角顶点的y坐标ye1的差值的绝对值小于y坐标距离阈值tyd的所有文本基元,并加入到参考文本基元集合Sref中;如果参考文本基元集合Sref为空,则令r=r+1,转至步骤M34,否则令v=1,v为一个循环变量;
步骤M37,如果v>u,u为参考文本基元集合Sref中文本基元的个数,则令r=r+1,转至步骤M34;否则从参考文本基元集合Sref中取出第v个文本基元txv;令xtx1表示第v个文本基元txv左上角顶点的x坐标,令ytx1表示第v个文本基元txv的左上角顶点的y坐标;令xtx2表示第v个文本基元txv的右下角顶点的x坐标,令ytx2表示第v个文本基元txv的右下角顶点的y坐标;
步骤M38,令xos_1表示重叠区域os左上角顶点的x坐标,xos_1 = max(xe1,xtx1);令yos_1表示重叠区域os左上角顶点的y坐标,yos_1= max(ye1,ytx1);令xos_2表示重叠区域os右下角顶点的x坐标,xos_2= min(xe2,xtx2);令yos_2表示重叠区域os右下角顶点的y坐标,yos_2= min(ye2,ytx2);令osw表示重叠区域os的宽度,osw= xos_2-xos_1;令osh表示重叠区域os的高度,osh= yos_2-yos_1;如果olw<0,或olh<0,则令v=v+1,转至步骤M37;否则按以下公式计算第v个文本基元txv和第r个标题基元er的重叠率ros:
ros= max(aos/ aer , aos/ atxv );
其中,aos表示重叠区域os的面积,aer表示第r个标题基元er的面积,atxv表示第v个文本基元txv的面积,重叠区域os的面积aos,第r个标题基元er的面积aer,第v个文本基元txv的面积atxv,分别按以下公式计算:
aos= osw×osh;
aer= ( xe2 - xe1 )×( ye2 - ye1 ) ;
atxv= ( xtx2- xtx1 )×( ytx2- ytx1 ) ;
如果ros >tos,则将第r个标题基元er从标题基元集合SE中删除,令r=r+1,转至步骤M34;否则,令v=v+1,转至步骤M37;
步骤M39,标题基元修正结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410316346.6A CN117912039B (zh) | 2024-03-20 | 2024-03-20 | 一种文档图像版面分析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410316346.6A CN117912039B (zh) | 2024-03-20 | 2024-03-20 | 一种文档图像版面分析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117912039A true CN117912039A (zh) | 2024-04-19 |
CN117912039B CN117912039B (zh) | 2024-05-24 |
Family
ID=90684083
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410316346.6A Active CN117912039B (zh) | 2024-03-20 | 2024-03-20 | 一种文档图像版面分析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117912039B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102750541A (zh) * | 2011-04-22 | 2012-10-24 | 北京文通科技有限公司 | 一种文档图像分类识别方法及装置 |
CN110472208A (zh) * | 2019-06-26 | 2019-11-19 | 上海恒生聚源数据服务有限公司 | Pdf文档中表格解析的方法、系统、存储介质及电子设备 |
CN110688825A (zh) * | 2019-08-13 | 2020-01-14 | 北京众信博雅科技有限公司 | 一种版式文档中的含线表格信息提取方法 |
CN113343815A (zh) * | 2021-05-31 | 2021-09-03 | 北森云计算有限公司 | 一种pdf等版式文档中识别表格的方法 |
CN113420669A (zh) * | 2021-06-24 | 2021-09-21 | 武汉工程大学 | 基于多尺度训练和级联检测的文档版面分析方法和系统 |
WO2022182104A1 (ko) * | 2021-02-23 | 2022-09-01 | 네이버 주식회사 | 테이블 생성 방법 및 시스템, 그리고 테이블이 포함된 이미지 보정 방법 및 시스템 |
CN115661848A (zh) * | 2022-07-11 | 2023-01-31 | 上海通办信息服务有限公司 | 一种基于深度学习的表格提取和识别方法及系统 |
CN117523592A (zh) * | 2024-01-04 | 2024-02-06 | 南昌航空大学 | 一种印章区域表格线检测方法 |
-
2024
- 2024-03-20 CN CN202410316346.6A patent/CN117912039B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102750541A (zh) * | 2011-04-22 | 2012-10-24 | 北京文通科技有限公司 | 一种文档图像分类识别方法及装置 |
CN110472208A (zh) * | 2019-06-26 | 2019-11-19 | 上海恒生聚源数据服务有限公司 | Pdf文档中表格解析的方法、系统、存储介质及电子设备 |
CN110688825A (zh) * | 2019-08-13 | 2020-01-14 | 北京众信博雅科技有限公司 | 一种版式文档中的含线表格信息提取方法 |
WO2022182104A1 (ko) * | 2021-02-23 | 2022-09-01 | 네이버 주식회사 | 테이블 생성 방법 및 시스템, 그리고 테이블이 포함된 이미지 보정 방법 및 시스템 |
CN113343815A (zh) * | 2021-05-31 | 2021-09-03 | 北森云计算有限公司 | 一种pdf等版式文档中识别表格的方法 |
CN113420669A (zh) * | 2021-06-24 | 2021-09-21 | 武汉工程大学 | 基于多尺度训练和级联检测的文档版面分析方法和系统 |
CN115661848A (zh) * | 2022-07-11 | 2023-01-31 | 上海通办信息服务有限公司 | 一种基于深度学习的表格提取和识别方法及系统 |
CN117523592A (zh) * | 2024-01-04 | 2024-02-06 | 南昌航空大学 | 一种印章区域表格线检测方法 |
Non-Patent Citations (3)
Title |
---|
SACHIN RAJA ET AL.: "Visual Understanding of Complex Table Structures From Document Images", ARXIV, 14 November 2021 (2021-11-14) * |
刘智成: "复杂版面文档图像内容提取关键算法研究", 中国优秀硕士学位论文全文数据库 信息科技辑, vol. 2023, no. 01, 15 January 2023 (2023-01-15), pages 2 - 9 * |
应自炉;赵毅鸿;宣晨;邓文博;: "多特征融合的文档图像版面分析", 中国图象图形学报, no. 02, 16 February 2020 (2020-02-16) * |
Also Published As
Publication number | Publication date |
---|---|
CN117912039B (zh) | 2024-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Dong et al. | Tablesense: Spreadsheet table detection with convolutional neural networks | |
CN111626146B (zh) | 一种基于模板匹配的合并单元格表格分割识别方法 | |
WO2020248497A1 (zh) | 图片扫描件处理方法、装置、计算机设备及存储介质 | |
US6577763B2 (en) | Document image recognition apparatus and computer-readable storage medium storing document image recognition program | |
CN112052852B (zh) | 一种基于深度学习的手写气象档案资料的字符识别方法 | |
US6356655B1 (en) | Apparatus and method of bitmap image processing, storage medium storing an image processing program | |
Chen et al. | Shadow-based Building Detection and Segmentation in High-resolution Remote Sensing Image. | |
CN103473545B (zh) | 一种基于多特征的文本图像相似度度量方法 | |
JPH06203138A (ja) | 画像編集システム | |
CN113762269B (zh) | 基于神经网络的中文字符ocr识别方法、系统及介质 | |
CN112364834A (zh) | 一种基于深度学习和图像处理的表格识别的还原方法 | |
CN111626145B (zh) | 一种简捷有效的残缺表格识别及跨页拼接方法 | |
CN110659644A (zh) | 书法单字的笔画自动提取方法 | |
US11037299B2 (en) | Region merging image segmentation algorithm based on boundary extraction | |
CN112329641A (zh) | 一种表格识别方法、装置、设备及可读存储介质 | |
CN109492645A (zh) | 一种车牌字符分割方法和装置 | |
CN109213886A (zh) | 基于图像分割和模糊模式识别的图像检索方法及系统 | |
CN114663897A (zh) | 表格提取方法与表格提取系统 | |
CN114782974A (zh) | 表格识别方法、系统、智能终端及计算机可读存储介质 | |
CN115100657A (zh) | 电气cad图纸扫描图的字符与带宽度的线条识别方法 | |
Negi et al. | Localization, extraction and recognition of text in Telugu document images | |
CN117912039B (zh) | 一种文档图像版面分析方法 | |
CN114529936A (zh) | 纸质电力工程图纸扫描转化电子版cad图纸的方法 | |
CN114332866A (zh) | 一种基于图像处理的文献曲线分离与坐标信息提取方法 | |
Heitzler et al. | A modular process to improve the georeferencing of the Siegfried map |
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 |