基于文字分割的印章识别技术
Seal Recognition Technology Based on Text Segmentation
DOI: 10.12677/CSA.2021.113053, PDF, HTML, XML, 下载: 533  浏览: 1,072 
作者: 赵珮含, 付小宁:西安电子科技大学机电工程学院,陕西 西安
关键词: 印章识别分水岭算法非极大值抑制算法文字分割Seal Recognition Watershed Algorithm Non-Maximum Value Suppression Algorithm Text Segmentation
摘要: 从古至今,印章一直在具有法律效应的文件中具有重要作用,因此印章的识别在文件的识别中占有重要地位。印章图像因为具有特征丰富和字符紧凑的特点,直接识别会影响其准确率。本文提出了先识别印章中文字,通过文字标签判别印章的方法,本文提出的方法识别率较高。
Abstract: Since ancient times, seals have always played an important role in documents with legal effects, so the identification of seals occupies an important position in the identification of documents. Because the seal image has the characteristics of rich features and compact characters, direct recognition will affect its accuracy. This paper proposes a method of first identifying the characters in the seal and identifying the seal through the text label. The method proposed in this article has a higher recognition rate.
文章引用:赵珮含, 付小宁. 基于文字分割的印章识别技术[J]. 计算机科学与应用, 2021, 11(3): 525-533. https://doi.org/10.12677/CSA.2021.113053

1. 引言

近年来,文件票据的使用场景已越来越广泛,并且随着图像技术和深度学习技术的发展与研究,印章识别技术已经被各国学者研究,研究方法整体分为3个方向:基于配准的识别、无需配准的识别和基于深度学习的识别。

基于配准的识别算法中,需要先配准印章再进行识别。Fan等人 [1] [2] 将印章配准后,采用动态等级(Attributed Stroke Graph, ASG)算法 [3] 进行笔画的识别。项阳 [4] 提出了一种改进的人工蜂群算法(Artificial Bee Colony, ABC) [5]。Ueda和Matsuo [6] 将印章的局部和全局特征组合到一起,利用策略法进行判别印章真伪。无需配准的印章识别方法,直接利用印章进行识别。国内外也有大量学者进行了研究。Chao Ren等人 [7] 针对非方章进行了研究,定位印章提取文字,对文字进行矫正,并放入文字识别系统(Optical Character Recognition, OCR) [8] 进行识别,通过文字通过率判别印章真伪。Haruki R [9] 等人利用三维图像识别二维印章印痕,降低了盖印条件对识别结果产生的影响。基于深度学习的识别方法中,大量研究者将卷积神经网络引入到印章识别技术中,取得了一定的成果。万水龙等人 [10] 提出了一种基于Krawtchouk- RBF的识别算法,通过提取印章图片的Krawtchouk矩 [11] 并放入径向基函数神经网络(Radial Basis Function, RBF) [12] 中,对印章进行分类识别,准确率可达90%。可以看出,印章识别发展历史久远,说明了印鉴识别的重要性,因此本文的研究课题具有重要意义。

2. 保留有效字符区域

印章中的非有效字符区域包含印章中的外圈轮廓和印章中间标志。由于这些非字符区域不会影响印章的识别,一般加印章也不会对该位置进行更改,因此本文对印章仅保留有效的字符区域。

2.1. 最小外接矩形

在原始图像中,图像大小大于图像中印章大小,即使进行归一化处理后,图像中的印章大小也未统一。因此,本文通过提取印章的最小外接矩形,使得图像大小即为印章大小,然后通过归一化,使得印章大小统一。

图形的最小外接矩形换句话说就是图形的凸包(Convex Hull)。凸包的定义为:在一个实数向量空间V中,对于给定集合X,包含X中所有凸集的交集S称为X的凸包 [13]。凸包可以通过Graham扫描法进行寻找,Graham扫描法的操作方法如下:

根据每个点坐标,将纵坐标最小的点放置在坐标圆点处,将其他坐标也平移到坐标中,平移过程中保证所有坐标的相对位置不变性,如图1所示。然后从第一个点依次放入栈中,根据每个点与上一点的相对位置进行判断,当前点位于上一点右侧时,不放入栈中;最终栈内的点即为凸包的边缘点,根据其最小面积,将其变为规整的矩形。

2.2. 除边框

将原始印章图像进行1.1节中最小外接矩形提取后,印章边框就在印章的边缘,根据印章边框与印章字符之间具有间隙的特点,进行搜索寻找边框。假设印章大小为 M M ,那么印章半径R的大小即为M,除边框算法的具体流程如下。

Figure 1. Convex hull graph

图1. 凸包图

1) 从图像边缘向中心进行搜索,搜索距离为1,在每次搜索时保存搜索半径大小,记为R1

2) 搜索角度为0.01,遍历R1下一周范围内的像素点,并记录其坐标。

{ x = x 0 + R 1 cos ( t h e ) y = y 0 + R 1 sin ( t h e )

上式中,x和y分别为每次搜索到的坐标值,x0和y0为中心点坐标值,the为该搜索点相对于中心点的角度值。

3) 判断每次搜索得到的像素点是否有效,换句话说,判断搜索得到的点是目标点还是背景像素点,若为目标像素点则是有效点。

4) 当R1每变化一次,就对R1下的有效像素点的个数进行统计,计算公式如下:

{ s s ( R 1 ) = 0 s s ( R 1 ) = s s ( R 1 ) + I ( x , y )

其中,I为原始的印章图像,若 I ( x , y ) 为印章边框像素点,则 I ( x , y ) 值为1,否则为值0。 s s ( R 1 ) 表示统计得到的像素点个数。

5) 对 s s ( R 1 ) 值进行判断,若大于阈值T,继续减小搜索半径,向中心搜索;若小于阈值T,此时认为一周的像素点总数不足以构成边框,结束搜索,得到边框内边界到圆点的半径值Rn。本文根据多次实验,将阈值设为5,得到了较好的实验效果。

6) 遍历整幅图像,计算图像中每个像素点到圆点的半径值d。

d = ( x x 0 ) 2 + ( y y 0 ) 2

当d小于Rn时,像素值不变;当d大于Rn时,像素值设为背景像素值。

{ I I ( x , y ) = I ( x , y ) d R n I I ( x , y ) = 0 d > R n

其中,I为原始的印章图像,II为除边框后的结果图。

2.3. 除中间标志

印章中心标志一般与印章识别无关,因此本文也对其进行了去除操作。去除印章中间标志的方法与1.2节中去除边框的方法一致,仅仅是反向搜索。根据中间标志与字符之间的空隙,从图像中心进行搜索,当一圈有效像素点个数不足5时,停止搜索,将搜索半径内的目标像素置为背景像素。

3. 分水岭算法的基本原理

分水岭算法是一种基于地理形态学分割方法 [14]。其基本思想是将二维图像的灰度值映射成三维地理海拔高度值,灰度值大的点对应地势高的山峰,灰度值小的点对应地势低的盆地,图像中灰度极小值对应着盆地,因此,随着图像中灰度值大小的变化,可以映射为高低不同的地貌 [15]。如图2,当向积水盆地中进入液体,随着液体的逐渐进入,在两个积水盆相连处会形成分水岭。

Figure 2. Schematic diagram of watershed algorithm

图2. 分水岭算法示意图

分水岭算法的数学描述:设图像 I ( x , y ) 的梯度图像为 g ( x , y ) ,梯度图像中像素点灰度值小于阈值n的点坐标集合为:

T [ n ] = { ( s , t ) | g ( s , t ) < n }

符号min和max表示 g ( x , y ) 中灰度最大值和灰度最小值,随着阈值n从min+1到max+1不断地增大,在n增大过程中,灰度值小于n的像素点集合 C n ( M i ) 表示为:

C n ( M i ) = C ( M i ) T [ n ]

其中, C ( M i ) 是区域极小值点 M i 所在积水盆中坐标点的集合。

当阈值为n时,所有积水盆地中被淹没部分的并集 C [ n ] 为:

C [ n ] = i = 1 R C n ( M i )

在n增加过程中,集合 C n ( M i ) T [ n ] 中的元素个数都在不断增大,并与n保持同步增长。其中 C [ n 1 ] C [ n ] 的一个子集, C [ n ] T [ n ] 的子集,因此, C [ n 1 ] C [ n ] T [ n ] 的关系如下:

C [ n 1 ] C [ n ] T [ n ]

从上式可以得出 C [ n 1 ] T [ n ] 的一个子集。

寻找分水线时,先进行初始化,令 C [ min + 1 ] = T [ min + 1 ] ,将阈值n不断增大,每次增加都需要进行情况判断,令 T [ n ] 中连通区域的集合为Q,对于每个连通分量 q Q [ n ] 有三种情况:

1) q C [ n 1 ] 为空集合。

2) q C [ n 1 ] 包含了 C [ n 1 ] 中的一个连通分量。

3) q C [ n 1 ] 包含了 C [ n 1 ] 中至少一个连通分量。

当且仅当情况(3)中可以获取到分水岭的分割线。

4. 改进的非极大值抑制算法

非极大值抑制算法在目标检测方面应用广泛。通过2节中的分水岭算法能够检测出字符,并用检测框框出,但目标检测框中会出现多余的检测框,每个检测框都有其对应的置信度,通过调整置信度可以将冗余检测框进行抑制。下式展示了非极大值抑制算法的实现过程:

S i = { S i , I O U ( M , B i ) < N t 0 , I O U ( M , B i ) N t

上式中, S i 为边框的置信度,M代表当前置信度最高的边框, B i 代表第i个边框, I O U ( M , B i ) 代表M与 B i 的重复率, N t 为重复率的阈值。如果 I O U ( M , B i ) 小于提前设定的阈值 N t ,那么边框 B i 的置信度不变,仍为 S i ,但如果 I O U ( M , B i ) 大于或等于提前设定的阈值 N t ,那么就将重复率较高的边框 B i 置信度设置为0,从而实现了抑制边框 B i 的显示。图3为非极大值抑制的前后效果对比图。其中两个检测框的重复率 I O U ( M , B i ) 可以用公式表示:

I O U = a r e a ( b 1 b 2 ) a r e a ( b 1 b 2 )

其中, a r e a ( b 1 b 2 ) 表示两个检测框 b 1 b 2 之间的交集面积, a r e a ( b 1 b 2 ) 表示两个检测框 b 1 b 2 之间的并集面积。

Figure 3. Comparison of the effect of non-maximum suppression algorithm before and after processing

图3. 非极大值抑制算法处理前后效果对比图

传统的非极大值抑制算法中,尽管能够去除冗余检测框,但对于文字来说,如果将重复率的阈值设置较大,此时置信度小的矩形框直接被抑制,会出现文字提取不完整的现象,如图4所示;如果将重复率的阈值设置较小,尽管已经将置信度小的矩形框进行了抑制,但还会出现多余的矩形框,导致一个目标文字被分割到多个矩形框中,如图5所示。

Figure 4. Text segmentation diagram when the threshold is large

图4. 阈值较大时的文字分割图

Figure 5. Text segmentation diagram when the threshold is small

图5. 阈值较小时的文字分割图

为了解决上述问题,本文提出了改进的非极大值抑制算法,使用该算法后能够将文字进行完整的分割。通过使用矩形合并算法进行目标区域检测,矩形框合并的具体流程如下:

1) 记录相互重叠的两个矩形面积分别设为S1和S2,记录矩形的左上和右下角坐标值,并设置面积阈值T,此时会出现三种情况:① S1和S2均大于T,② S1和S2均小于T,③ S1和S2其中之一小于T,另一个大于T。当且仅当情况③,可以进行举行合并算法,此时表明合并的两个矩形框中,其中一个是文字主体,另一个是偏旁。

2) 比较两个矩形框的左上角和右下角坐标,通过下式,计算出合并后矩形框坐标。

x l = max ( x 1 l , x 2 l ) y l = max ( y 1 l , y 2 l ) x r = max ( x 1 r , x 2 r ) y r = max ( y 1 r , y 2 r )

其中, x l , y l , x r , y r 分别表示合成矩形框的左上角和右下角坐标值, x 1 l , y 1 l , x 1 r , y 1 r x 2 l , y 2 l , x 2 r , y 2 r 分别为第一个和第二个矩形框的左上角和右下角坐标值。

3) 将合并前的两个矩形框进行抑制,最终结果图中只显示新合成的矩形框。这样就实现了文字的完整分割,效果如图6

Figure 6. Improved text segmentation diagram

图6. 改进后的文字分割图

5. 印章中文字分割实验

文字分割算法的执行步骤总结如下:

1) 去除非目标区域。

2) 利用分水岭算法选中目标区域。

3) 分水岭算法进行去除重复的目标框。

4) 加入矩形合并算法,完整提取文字。

5) 利用卷积神经网络进行识别。

去除印章中非字符区域的效果如图7所示:

Figure 7. Seal image after removing interference information

图7. 去除干扰信息后的印章图像

直接使用分水岭算法进行字符的检测,会出现文字被过度分割的情况,例如:文字偏旁与文字主体内容分开、文字直接被拆分等现象,因此先采用膨胀算法,增强文字区域,可以有效避免字符的过度分割,膨胀后效果如图8左侧图,使用分水岭算法进行分割后的效果如图8中右侧图所示。

Figure 8. The effect diagram after using the expansion algorithm and the watershed algorithm to detect

图8. 使用膨胀算法和分水岭算法检测后的效果图

上述检测出来的文字框并不规则,通过不规则检测框的左上角、右下角、检测框的高度和检测框的宽度将检测框变化为正规矩形,算法公式如下:

{ x 2 = x 1 + w y 2 = y 1 + h

上式中, ( x 1 , y 1 ) 是左上角坐标, ( x 2 , y 2 ) 是右下角坐标,w代表宽度,h代表高度。

Figure 9. Rectangular detection frame

图9. 检测框矩形化

Figure 10. Improved nms rendering

图10. 改进的nms效果图

图9可以看出,每个文字的检测框中包含许多小的检测框,这些小的检测框属于干扰信息,通过改进的非极大值抑制法设定阈值,可以有效去除干扰检测框,去除后的效果如图10所示。

6. 提取目标文字

根据印章中字符的位置不变性,保存上一步中检测得到的检测框坐标信息,将这些检测框根据坐标重新标注在原始图像中,即标注在未进行膨胀的印章图像中,最终效果如图11所示。

Figure 11. Original image detection result

图11. 原图检测结果

将识别后的文字放入VGG16网络中进行训练,通过文字输出类别的正确性判别印章的真伪,经过多次测试,印章输出准确率为95%。测试结果如图12图13

Figure 12. The result of the recognition of the true seal

图12. 真印章的识别结果图

Figure 13. Recognition result of fake seal

图13. 假印章的识别结果图

7. 结论

根据印章中特征多且文字密集的特点,引入基于文字分割的印章识别方法,从而通过分散特征点进行后续的印章识别。值得注意的是,在印章中文字的分割过程中,保证文字分割的完整性是研究的难点所在。最终经过实验,可以看出研究具有可行性。

NOTES

*通讯作者。

参考文献

[1] Fan, T.-J. and Tsai, W.-H. (1984) Automatic Chinese Seal Identification. Computer Vision, Graphics, and Image Pro-cessing, 25, 311-330.
https://doi.org/10.1016/0734-189X(84)90198-1
[2] Wang, X. and Chen, Y. (2009) Seal Image Registration Based on Shape and Layout Characteristics. 2009 2nd International Congress on Image and Signal Processing, Tianjin, 17-19 October 2009, 1-5.
https://doi.org/10.1109/CISP.2009.5302120
[3] 刘飞. 基于ASG技术的自适应入侵检测系统[D]: [硕士学位论文]. 济南: 山东大学, 2009.
[4] 项阳. 基于改进人工蜂群算法的印鉴识别[D]: [硕士学位论文]. 呼和浩特: 内蒙古农业大学, 2017.
[5] Zeng, Y., Wang, H., Zhang, S., et al. (2019) A Novel Adaptive Approximate Bayesian Computation Method for Inverse Heat Conduction Problem. International Journal of Heat and Mass Transfer, 134, 185-197.
https://doi.org/10.1016/j.ijheatmasstransfer.2019.01.002
[6] Ueda, K. and Matsuo, K. (2005) Automatic Seal Im-print Verification System for Bank Check Processing. IEEE Third International Conference on Information Technology and Applications, Sydney, 4-7 July 2005, Vol. 1, 768-771.
[7] Ren, C., Liu, D. and Chen, Y.B. (2011) A New Method on the Segmentation and Recognition of Chinese Characters for Automatic Chinese Seal Imprint Retrieval. 2011 Interna-tional Conference on Document Analysis and Recognition, Beijing, 18-21 September 2011, 972-976.
https://doi.org/10.1109/ICDAR.2011.197
[8] 叶子卿. 基于Tesseract-OCR的古代汉语文字识别方法的设计与实现[D]: [硕士学位论文]. 南京: 南京邮电大学, 2020.
[9] Haruki, R., Horiuchi, T., Yamada, H., et al. (1996) Automatic Seal Verification Using Three Dimensional Reference Seals. Pattern Recognition, 8, 199-203.
https://doi.org/10.1109/ICPR.1996.546938
[10] 余彪, 万水龙, 刘进, 等. 基于Krawtchouk-RBF的印章图像分类识别[J]. 图形、图像与多媒体, 2014, 33(6): 44-47.
[11] 王雪. 几种图像矩特征在分析中的应用研究[D]: [硕士学位论文]. 兰州: 兰州大学, 2017.
[12] Han, H., Guo, Y.N. and Qiao, J. (2020) Method for Effluent Total Nitro-gen-Based on a Recurrent Self-Organizing RBF Neural Network. U.S. Patent 10,570,024.
[13] 国起. 球面空间凸性理论(I) [J]. 中国科学: 数学, 2020, 50(12): 1745-1772.
[14] 韩悬, 马银平. 分水岭算法的改进及在图像分割中的应用[J]. 现代信息科技, 2019, 3(24): 17-19.
[15] 王小刚. 基于分水岭变换的多尺度遥感影像分割算法[J]. 北京测绘, 2019, 33(8): 886-890.