CN114998922B - 一种基于格式模板的电子合同生成方法 - Google Patents
一种基于格式模板的电子合同生成方法 Download PDFInfo
- Publication number
- CN114998922B CN114998922B CN202210909757.7A CN202210909757A CN114998922B CN 114998922 B CN114998922 B CN 114998922B CN 202210909757 A CN202210909757 A CN 202210909757A CN 114998922 B CN114998922 B CN 114998922B
- Authority
- CN
- China
- Prior art keywords
- image
- value
- column
- line
- contract
- 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 80
- 239000011159 matrix material Substances 0.000 claims description 64
- 230000011218 segmentation Effects 0.000 claims description 32
- 238000012216 screening Methods 0.000 claims description 31
- 230000000877 morphologic effect Effects 0.000 claims description 14
- 238000012545 processing Methods 0.000 claims description 11
- 238000006243 chemical reaction Methods 0.000 claims description 8
- 239000011541 reaction mixture Substances 0.000 claims description 6
- 230000009466 transformation Effects 0.000 claims description 4
- 230000007797 corrosion Effects 0.000 claims description 3
- 238000005260 corrosion Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 30
- 238000013461 design Methods 0.000 description 13
- 239000003999 initiator Substances 0.000 description 12
- 238000004590 computer program Methods 0.000 description 6
- 238000000605 extraction Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 150000001875 compounds Chemical class 0.000 description 2
- 238000005530 etching Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 238000012795 verification Methods 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/40—Document-oriented image-based pattern recognition
- G06V30/41—Analysis of document content
- G06V30/416—Extracting the logical structure, e.g. chapters, sections or page numbers; Identifying elements of the document, e.g. authors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/186—Templates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
- G06Q50/18—Legal services
- G06Q50/188—Electronic negotiation
-
- 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)
- Business, Economics & Management (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Health & Medical Sciences (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- Tourism & Hospitality (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Technology Law (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Economics (AREA)
- Human Resources & Organizations (AREA)
- Marketing (AREA)
- Primary Health Care (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Character Input (AREA)
Abstract
本发明公开了一种基于格式模板的电子合同生成方法,本发明可直接将线下记载有合同签订信息的模板文档转换为电子合同,同时,还可利用模板文档中的合同签订信息来生成该电子合同的唯一合同编码,并对该合同编码进行加密来得出电子合同的数字签名,最后,将数据签名嵌入至合同的签章图像中,即可在保证合同有效性的基础上,来实现合同的防伪;由此,本发明不仅实现了线下合同的线上化管理,且还无需人工录入,使得电子合同的生成快速而准确,另外,利用合同签订信息来得到数字签名,并与合同的签章图像相结合,使得每份电子合同的签章图像均独一无二,避免了签章伪造的问题,极大的提高了合同的防伪性和有效性。
Description
技术领域
本发明属于电子商务技术领域,具体涉及一种基于格式模板的电子合同生成方法。
背景技术
目前,随着企业的不断发展,纸质合同的管理难度增加,且在近几年无纸化办公和电子签署的热潮下,合同的线上管理已逐渐取代线下管理,同时,随着我国电子合同相关法律法规的完善,线上合同开始被广泛应用于电子商务平台、在线旅游平台、租赁平台以及互联网金融平台等等,线上合同以方便、易保存的优点,逐步取代了纸质合同,成为合同签署的主流方式。
但是,现有的线上合同更多是把线下合同上传至线上进行备份,或以人工方式将线下合同录入为电子合同,发送给客户签署,其存在以下不足:线下合同传入线上仅能实现备份,而无法进行电子化,不能完成线上签署,而若采用人工录入方式来生成电子合同,虽然可进行线上签署,但不同种类的合同需要录入至不同的模板合同中,费时费力,且录入容易出错,另外,合同电子化后,其合同发起方的签章一般使用签章图像粘贴至电子合同中,容易被不法分子伪造,无法保证合同的真实性,从而对合同签订双方造成不必要的损失;因此,提供一种可基于线下合同信息快速生成电子合同,且能够进行有效防伪的电子合同生成方法迫在眉睫。
发明内容
本发明的目的是提供一种基于格式模板的电子合同生成方法,以解决现有线下合同传入线上仅能实现备份,无法进行签署,而人工录入方式来生成电子合同又存在费时费力、容易出错以及无法保证合同真实性的问题。
为了实现上述目的,本发明采用以下技术方案:
第一方面,本发明提供了一种基于格式模板的电子合同生成方法,包括:
获取模板文档,并对所述模板文档进行图像转换,得到文本灰度图像,其中,所述模板文档包括word文档和/或文本文档,且所述模板文档中记载有合同签订信息;
对所述文本灰度图像进行文字行划分,得到所述文本灰度图像中每行文字的标准图像,并对每行文字的标准图像进行文字分割,得到每行文字的文字分割图像;
对每行文字的文字分割图像进行文字识别,得到所述文本灰度图像的文字识别结果,以便利用所述文字识别结果得到所述合同签订信息;
基于所述合同签订信息,获取与所述合同签订信息对应的模板合同以及模板合同的填写配置信息,以便基于所述填写配置信息,将所述合同签订信息填写至所述模板合同中,得到初始电子合同;
根据所述合同签订信息,生成所述初始电子合同的合同编码,并基于所述合同编码,生成所述初始电子合同的数字签名;
获取模板合同的签章图像,并将所述数字签名嵌入至签章图像中,得到防伪签章图像;
将所述防伪签章图像填充至所述初始电子合同中,得到所述模板文档对应的电子合同。
基于上述公开的内容,本发明先将线下记载有合同签订信息的模板文档转换为文本灰度图像,然后提取出文本灰度图像中的文字信息,也就是对文本灰度图像中的每一行文字进行图像划分,得到每行文字的标准图像,接着再对每行文字的标准图像进行文字分割,得到每行文字的文字分割图,由此,即可完成文本灰度图像中文字信息的提取,以便后续对提取的文字信息进行文字识别,从而得到文本灰度图像中的文字识别结果,以实现线下合同签订信息的自动化识别;在得到模板文档中的合同签订信息后,即可基于合同签订信息来匹配对应的模板合同(如通过合同签订信息中的合同签署类型来匹配),并基于填写配置信息将识别的合同签订信息填写至模板合同中,得到初始电子合同,另外,为实现合同的防伪性,本发明还利用合同签订信息来生成合同编码(如使用合同双方的名称来生成合同编码),并将合同编码加密为数字签名,而后,即可将其嵌入至模板合同的签章图像中,从而得到防伪签章图像,最后,将防伪签章图像填充至初始电子合同中,即可得到模板文档的电子合同。
通过上述设计,本发明可直接将线下记载有合同签订信息的模板文档转换为电子合同,同时,还可利用模板文档中的合同签订信息来生成该电子合同的唯一合同编码,并对该合同编码进行加密来得出电子合同的数字签名,最后,将数据签名嵌入至合同的签章图像中,即可在保证合同有效性的基础上,来实现合同的防伪;由此,本发明不仅实现了线下合同的线上化管理,且还无需人工录入,使得电子合同的生成快速而准确,另外,利用合同签订信息来得到数字签名,并与合同的签章图像相结合,使得每份电子合同的签章图像均独一无二,避免了签章伪造的问题,极大的提高了合同的防伪性和有效性。
在一个可能的设计中,对所述文本灰度图像进行文字行划分,得到所述文本灰度图像中每行文字的标准图像,包括:
获取所述模板文档在转换为所述文本灰度图像后,所述模板文档中的每一行区域在所述文本灰度图像中的初始位置信息,其中,任一行区域的初始位置信息包括任一行区域在所述文本灰度图像中的任一端点坐标、长度以及宽度;
基于每一行区域的初始位置信息,从文本灰度图像中,确定出每行文字的初始图像区域;
对于第i行文字的初始图像区域,计算所述第i行文字的初始图像区域中每一行的平均灰度值,以及每一列的平均灰度值;
基于所述第i行文字的初始图像区域中每一行的平均灰度值,识别出第i行文字在对应初始图像区域中的实际上边界和实际下边界,以及基于所述第i行文字的初始图像区域中每一列的平均灰度值,识别出第i行文字在对应初始图像区域中的实际左边界和实际右边界;
基于所述第i行文字在对应初始图像区域中的实际上边界、实际下边界、实际左边界和实际右边界,从所述第i行文字的初始图像区域中,截取出所述第i行文字的实际区域,以将第i行文字的实际区域作为第i行文字的标准图像;
当i从1循环至n时,得到所述文本灰度图像中每行文字的标准图像,其中,n为所述模板文档中用于填写文字的总行数。
基于上述公开的内容,本发明公开了对文本灰度图像进行文字行划分的具体过程,同时,考虑到模板文档中存在各种背景因素影响的问题(如文档中的公司水印、表格等背景因素),本发明通过文本灰度图像中每行每列的平均灰度值来进行边界的识别,其中,由于线下合同信息的记载使用的是模板文档,其格式、间距是统一标准,因此,即可基于先验知识预先为模板文档在转换为灰度图像后,其在图像中的每一行设置一初始位置信息,以便后续在进行文字行划分时,基于每一行的初始位置信息来确定出每一行文字在文本灰度图像中的初始图像区域,而后,再基于每一行、每一列的平均灰度值来在该初始图像区域中进行精确定位,识别出每一行文字的上下左右边界,从而完成每一行文字的精确分割;由此,上述文字行分割方法降低了背景对边界划分的影响,提高了文字行划分的精度。
在一个可能的设计中,基于所述第i行文字的初始图像区域中每一行的平均灰度值,识别出第i行文字在对应初始图像区域中的实际上边界,包括:
A. 对于第i行文字的初始图像区域中的第j行,获取第j+1行的平均灰度值、第j+2行的平均灰度值以及第j-1行的平均灰度值,其中,j从1开始,且当j为1时,第j-1行的平均灰度值为第一预设值;
B. 获取第一灰度系数,并计算所述第j-1行的平均灰度值与所述第一灰度系数的乘积,得到第一比较阈值;
C. 判断所述第j行的平均灰度值、所述第j+1行的平均灰度值以及所述第j+2行的平均灰度值是否均小于所述第一比较阈值;
D. 若是,则将所述第j行作为所述第i行文字在对应初始图像区域中的实际上边界,否则,则将j自加1,并重新执行步骤A,直至第j行的平均灰度值、所述第j+1行的平均灰度值以及所述第j+2行的平均灰度值均小于所述第一比较阈值为止,其中,j≤m,且m为所述第i行文字的初始图像区域中像素点的总行数。
基于上述公开的内容,本发明在对每一文字行进行上边界识别时,是以从上至下的顺序,对初始图像区域中的每一行进行上边界的判断,判断规则是:引入一第一灰度系数,并计算该行的上一行与第一灰度系数的乘积,作为第一比较阈值,然后再判断该行相邻的下一行和下两行的像素点的平均灰度值以及该行的平均灰度值是否均小于第一比较阈值,若是,则判断该行为实际上边界,否则,则进行下一行的判断,并重复步骤,直至满足上述判断规则为止。
在一个可能的设计中,基于所述第i行文字的初始图像区域中每一行的平均灰度值,识别出第i行文字在对应初始图像区域中的实际下边界,包括:
E. 对于第i行文字的初始图像区域中的第j行,获取第j+1行的平均灰度值、第j+2行的平均灰度值以及第j+3行的平均灰度值,其中,j从1开始;
F. 获取第二灰度系数,并计算所述第j+1行的平均灰度值与所述第二灰度系数的乘积、所述第j+2行的平均灰度值与所述第二灰度系数的乘积以及所述第j+3行的平均灰度值与所述第二灰度系数的乘积,分别得到第二比较阈值、第三比较阈值以及第四比较阈值;
G. 判断所述第j行的平均灰度值是否均小于所述第二比较阈值、所述第三比较阈值以及所述第四比较阈值;
H. 若是,则将所述第j行作为第i行文字在对应初始图像区域中的实际下边界,否则,则将j自加1,并重复步骤E,直至所述第j行的平均灰度值均小于所述第二比较阈值、所述第三比较阈值以及所述第四比较阈值为止,其中,j≤m,且m为所述第i行文字的初始图像区域中像素点的总行数。
基于上述公开的内容,对每一文字行进行下边界识别时,也是以从上至下的顺序,对初始图像区域中的每一行进行下边界的判断,其判断规则是:引入一第二灰度系数,并计算该行的下一行、下两行和下三行与第二灰度系数的乘积,以得到三个比较阈值,然后,判断该行的平均灰度值是否均小于上述三个比较阈值,若是,则说明该行是实际下边界,否则,则进行下一行的判断,并重复前述步骤,直至得出下边界为止。
在一个可能的设计中,基于所述第i行文字的初始图像区域中每一列的平均灰度值,识别出第i行文字在对应初始图像区域中的实际左边界,包括:
I. 对于第i行文字的初始图像区域中的第k列,获取第k+1列的平均灰度值、第k+2列的平均灰度值以及第k-1列的平均灰度值,其中,k从1开始,且当k为1时,第k-1列的平均灰度值为第二预设值;
J. 获取第三灰度系数,并计算所述第k-1列的平均灰度值与所述第三灰度系数的乘积,得到第五比较阈值;
K. 判断所述第k列的平均灰度值、所述第k+1列的平均灰度值以及所述第k+2列的平均灰度值是否均小于所述第五比较阈值;
L. 若是,则将所述第k列作为第i行文字在对应初始图像区域中的实际左边界,否则,则将k自加1,并重复步骤I,直至所述第k列的平均灰度值、所述第k+1列的平均灰度值以及所述第k+2列的平均灰度值均小于所述第五比较阈值为止,其中,k≤p,且p为所述第i行文字的初始图像区域中像素点的总列数。
基于上述公开的内容,对每一文字行进行左边界识别时,是以从左往右的顺序,对初始图像区域中的每一行进行左边界的判断,其判断规则是:引入一第三灰度系数,并计算该列的前一行与第三灰度系数的乘积,以得到第五比较阈值,然后,判断该列的平均灰度值、该列的下一列的平均灰度值以及该列的下两列的平均灰度值是否均小于上述第五比较阈值,若是,则说明该列是实际左右边界,否则,则进行下一列的判断,并重复前述步骤,直至得出实际左边界为止。
在一个可能的设计中,基于所述第i行文字的初始图像区域中每一列的平均灰度值,识别出第i行文字在对应初始图像区域中的实际右边界,包括:
M. 对于第i行文字的初始图像区域中的第k列,获取第k+1列的平均灰度值、第k-1列的平均灰度值以及第k-2列的平均灰度值,其中,k从p开始,且当k为p时,第k+1列的平均灰度值为第三预设值,p为所述第i行文字的初始图像区域中像素点的总列数;
N. 获取第四灰度系数,并计算所述第k+1列的平均灰度值与所述第四灰度系数的乘积,得到第六比较阈值;
O. 判断所述第k列的平均灰度值、所述第k-1列的平均灰度值以及所述第k-2列的平均灰度值是否均小于所述第六比较阈值;
P. 若是,则将所述第k列作为所述第i行文字在对应初始图像区域中的实际右边界,否则,则将k自加1,并重复步骤M,直至所述第k列的平均灰度值、所述第k-1列的平均灰度值以及所述第k-2列的平均灰度值均小于所述第六比较阈值为止,其中,1≤k≤p。
基于上述公开的内容,对每一文字行进行右边界识别时,是以从右往左的顺序,对初始图像区域中的每一列进行右边界的判断,其判断规则是:引入一第四灰度系数,并计算该行的下一行与第四灰度系数的乘积,以得到第六比较阈值,然后,判断该行的平均灰度值、该列的前一列的平均灰度值以及该列的前两列的平均灰度值是否均小于第六比较阈值,若是,则说明该列是实际右边界,否则,则进行下一列的判断,并重复前述步骤,直至得出实际右边界为止。
在一个可能的设计中,对每行文字的标准图像进行文字分割,得到每行文字的文字分割图像,包括:
获取初始结构元以及形态学运算参数,并基于所述初始结构元和所述形态学运算参数,构建出标准结构元,其中,所述形态学运算参数包括膨胀次数或腐蚀次数;
利用所述标准结构元,对每行文字的标准图像进行多次开运算,以去除每张标准图像中的背景图像,得到去除背景后的标准图像;
对每张去除背景后的标准图像进行二值化处理,得到每行文字的二值化图像;
获取每行文字的二值化图像的宽度以及所述文本灰度图像的标准文字信息,其中,所述标准文字信息用于表征所述文本灰度图像中任一文字的文字宽度和高度;
利用每行文字的二值化图像的宽度和所述标准文字信息,识别出每张二值化图像中每个文字的左边界和右边界,以及利用所述标准文字信息,识别出每张二值化图像中每个文字的上边界和下边界;
基于每张二值化图像中每个文字的左边界、右边界、上边界和下边界,从每张二值化图像中截取出每个文字所属的图像区域,以在截取完毕后,得到每行文字的文字分割图像。
基于上述公开的内容,由于在进行文字识别时,图像中的背景会影响识别精度,因此,本发明在进行文字分割前,先利用构造的标准结构元对每行文字的标准图像进行多次运算,以得出背景图像,然后,二者相减,即可得到去除背景后的标准图像,接着,再对前述去除背景后的标准图像进行二值化处理,以减少图像的数据量,并凸显文字轮廓,最后,再利用文本灰度图像的标准文字信息以及二值化图像的宽度,对每行文字的二值化图像中的每个文字进行边界识别,即可基于识别的边界来完成每个文字的精确分割。
在一个可能的设计中,任一文字的最大宽度值以及最小宽度值;
其中,利用每行文字的二值化图像的宽度和所述标准文字信息,识别出每张二值化图像中每个文字的左边界和右边界,包括:
R. 对于任一二值化图像中的第b个文字,以任一二值化图像的第c列为起点列,在第c列至第w列之间,筛选出最先存在任一像素点的灰度值为0的列,作为第b个文字的左边界,其中,b和c均从1开始,且w为所述任一二值化图像中的总列数;
S. 以第b个文字的左边界为起点列,在起点列至第w列之间,筛选出最先存在有任一像素点的灰度值为0的列,作为所述第b个文字的初始右边界;
T. 计算所述初始右边界与所述左边界之间的列数差;
U. 若所述列数差大于所述最大宽度值,则基于左边界对应的列数与最小宽度值的和,确定出第一筛选列,以及基于初始右边界对应的列数与最大宽度值的和,确定出第二筛选列,并在所述第一筛选列至所述第二筛选列之间,筛选出灰度总值最小的列,以将灰度总值最小的列,作为第b个文字的右边界;若所述列数差小于所述最小宽度值,则将所述初始右边界对应的列数自加1,并重新执行步骤S,直至得到所述第b个文字的右边界为止;
V. 判断所述任一二值化图像的宽度与目标宽度之间的差值是否小于所述最小宽度值,其中,目标宽度为第b个文字的左边界与任一二值化图像的宽度边起点之间的距离;
若否,则将b自加1,并以第b-1个文字的右边界为起点列,重复步骤R~V,直至所述任一二值化图像的宽度与目标宽度之间的差值小于最小宽度值为止,以得到所述任一二值化图像中每个文字的左边界和右边界。
基于上述公开的内容,本发明对于任一二值化图像中的第b个文字,先从该任一二值化图像中的第一列为起点列,在第一列至最后一列之间,筛选出最先出现有任一像素点的灰度值为0的列(为0则说明是黑色,为文字),将其作为左边界,然后以左边界为起点,采用同样的方法来寻找出初始右边界,由于初始右边界受到其余文字边界的影响,因此,需要进行二次判断,也就是通过初始右边界与左边界之间的列数差,与文本灰度图像中任一文字的最大宽度值以及最小宽度值之间的大小关系,来进行二次调整,其中,若大于最大宽度值,则说明存在文字粘连,因此,需要回溯,也就是得出第一筛选来和第二筛选列,然后在得出的第一筛选列至第二筛选列之间,来筛选出灰度总值最小的列,作为右边界,而当列数差小于最小宽度值,则需要将初始右边界自加1,然后返回步骤S,并进行重新循环判断,直至得到右边界为止;在得出第b个文字的左右边界后,还需判断第b个文字是否为最后一个文字,也就是判断任一二值化图像的宽度与目标宽度之间的差值是否小于最小宽度值,实质是判断第b个文字的左边界与任一二值化图像的宽度终点之间的距离是否小于最小宽度值,若小于,则说明无法容纳文字,已经到了任一二值化图像的末尾,否则,则进行第二个文字的左右边界识别,即以第一个文字的右边界为起点列,重复前述过程,以此循环,直至任一二值化图像的宽度与目标宽度之间的差值小于最小宽度值为止,循环结束后,即可得到任一二值化图像中每个文字的左右边界。
在一个可能的设计中,基于所述合同编码,生成所述初始电子合同的数字签名,包括:
在素数库中,随机选取第一素数和第二素数,并计算第一素数和第二素数的乘积,作为中间值,其中,所述第一素数和所述第二素数互不相同;
在正整数库中,随机选取第一正整数和第二正整数,其中,所述第一正整数和所述第二正整数均小于所述中间值;
获取第一随机数、第二随机数以及第三随机数,其中,第一随机数、第二随机数以及第三随机数均小于所述中间值,且第一随机数与第二随机数的乘积等于1与中间值的余数;
基于所述第三随机数、所述中间值以及所述合同编码,计算得到加密参数;
利用所述加密参数、所述合同编码、所述第一随机数、所述第二随机数、所述第三随机数和中间值,计算得到两个第一加密值,以及利用所述第一正整数、所述第二正整数、所述第一随机数、所述第二随机数、所述第三随机数和所述中间值,计算得到两个第二加密值;
基于所述第一正整数、所述第二正整数以及所述中间值,构建得到模态矩阵;
利用所述模态矩阵、两个第一加密值以及所述中间值,按照如下公式(1),计算得到第一矩阵,以及利用所述模态矩阵、两个第二加密值以及所述中间值,按照如下公式(2),计算得到第二矩阵;
利用所述第一矩阵、所述第二矩阵以及所述第三随机数,组成所述数字签名。
基于上述公开的内容,本发明公开了数字签名的具体过程,也就是先利用第一素数和第二素数来生成一中间值,然后选取小于中间值的两个正整数作为私钥,同时,再选取小于中间值的三个随机数,并利用第三随机数、合同编码和中间值来计算出一加密参数,接着,再利用加密参数、合同编码、三个随机数和中间值,计算得到两个第一加密值,以及利用两个私钥、三个随机数和中间值来计算出两个第二加密值,最后,利用两个私钥和中间值来构建模态矩阵,以便利用加密值、模态矩阵和中间值来分别计算出两个矩阵,最后,利用两个矩阵和第三随机数,即可组成数字签名。
在一个可能的设计中,所述数字签名包括:第一矩阵、第二矩阵以及第三随机数;
相应的,将所述数字签名嵌入至签章图像中,得到防伪签章图像,包括:
将所述签章图像划分为多个尺寸相同的图像块,并对每个图像块进行离散余弦变换,得到离散变换图像块;
基于多个离散变换图像块,得到每个离散变换图像块的低频离散余弦变换系数;
计算所述第一矩阵、所述第二矩阵以及所述第三随机数的乘积,作为水印值;
对于每个离散变换图像块,将每个离散变换图像块的低频离散余弦变换系数与所述水印值的和,作为每个离散变换图像块的低频系数更新参数;
使用每个离散变换图像块的低频系数更新参数,更新对应离散变换图像块的低频离散余弦变换系数,得到更新后的图像块;
对多个更新后的图像块进行反离散余弦变换,得到多个防伪图像块;
将多个防伪图像块进行合并处理,以在合并后,得到所述防伪签章图像。
第二方面,本发明提供了一种基于格式模板的电子合同生成装置,包括:
获取单元,用于获取模板文档,并对所述模板文档进行图像转换,得到文本灰度图像,其中,所述模板文档包括word文档和/或文本文档,且所述模板文档中记载有合同签订信息;
文字提取单元,用于对所述文本灰度图像进行文字行划分,得到所述文本灰度图像中每行文字的标准图像,并对每行文字的标准图像进行文字分割,得到每行文字的文字分割图像;
文字识别单元,用于对每行文字的文字分割图像进行文字识别,得到所述文本灰度图像的文字识别结果,以便利用所述文字识别结果得到所述合同签订信息;
合同生成单元,用于基于所述合同签订信息,获取与所述合同签订信息对应的模板合同以及模板合同的填写配置信息,以便基于所述填写配置信息,将所述合同签订信息填写至所述模板合同中,得到初始电子合同;
数字签名单元,用于根据所述合同签订信息,生成所述初始电子合同的合同编码,并基于所述合同编码,生成所述初始电子合同的数字签名;
防伪单元,用于获取模板合同的签章图像,并将所述数字签名嵌入至签章图像中,得到防伪签章图像;
合同生成单元,还用于将所述防伪签章图像填充至所述初始电子合同中,得到所述模板文档对应的电子合同。
第三方面,本发明提供了另一种基于格式模板的电子合同生成装置,以系统为电子设备为例,包括依次通信相连的存储器、处理器和收发器,其中,所述存储器用于存储计算机程序,所述收发器用于收发消息,所述处理器用于读取所述计算机程序,执行如第一方面或第一方面中任意一种可能设计的所述基于格式模板的电子合同生成方法。
第四方面,本发明提供了一种存储介质,所述存储介质上存储有指令,当所述指令在计算机上运行时,执行如第一方面或第一方面中任意一种可能设计的所述基于格式模板的电子合同生成方法。
第五方面,本发明提供了一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使所述计算机执行如第一方面或第一方面中任意一种可能设计的所述基于格式模板的电子合同生成方法。
附图说明
图1为本发明提供的基于格式模板的电子合同生成方法的步骤流程示意图;
图2为本发明提供的基于格式模板的电子合同生成装置的结构示意图。
具体实施方式
下面结合附图及具体实施例来对本发明作进一步阐述。在此需要说明的是,对于这些实施例方式的说明虽然是用于帮助理解本发明,但并不构成对本发明的限定。本文公开的特定结构和功能细节仅用于描述本发明的示例实施例。然而,可用很多备选的形式来体现本发明,并且不应当理解为本发明限制在本文阐述的实施例中。
实施例
参见图1所示,本实施例第一方面所提供的基于格式模板的电子合同生成方法,可直接对线下的模板文档进行文字识别,得出模板文档中的合同签订信息,然后基于合同签订信息来生成模板文档对应的电子合同,同时,基于合同签订信息来生成数字签名,并与合同的签章图像相结合,可在保证合同有效性的基础上,实现合同的防伪,从而大幅降低合同伪造的风险,由此,本方法可快速准确的生成防伪电子合同,适用于大规模应用与推广,其中,本实施例所提供的方法可以但不限于在电子合同管理终端侧运行,而电子合同管理终端可以但不限于是个人电脑(personal computer,PC)、平板电脑、智能手机和/或个人数字助理(personal digital assistant,PDA)等,可以理解的,前述执行主体并不构成对本申请实施例的限定,相应的,本方法的运行步骤可以但不限于如下述步骤S1~S7所示。
S1. 获取模板文档,并对所述模板文档进行图像转换,得到文本灰度图像,其中,所述模板文档包括word文档和/或文本文档,且所述模板文档中记载有合同签订信息;具体应用时,模板文档由企业工作人员上传至电子合同管理终端,而对模板图像进行图像转换可以但不限于在电子合同管理终端侧对模板文档内的内容信息进行截图,并将截图转换为灰度图像,从而得到文本灰度图像,同时,举例模板文档优选为采用word文档,以便与企业办公更加适配;另外,举例所述合同签订信息可以但不限于包括:合同发起方信息(包括合同发起方名称、地址、联系人、联系电话和电子邮箱等)、合同签署方信息(包括合同签署方的名称、地址、联系电话、法人)、合同签署类型(如是购买合同、收购合同、租赁合同等等)、合同签订产品信息(包括产品名称、产品型号、数量和产品金额等等),当然,合同签订信息还可根据使用而具体添加内容,在此不限定于前述举例。
可选的,模板文档中的合同签订信息按照预设排序进行填写,其中,预设排序是先填写合同发起方信息,再填写合同签署方信息,接着填写合同签署类型,最后填写合同签订产品信息;同时,合同发起方信息是以行为单位进行填写,如第一行为合同发起方名称、第二行为合同发起方地址,以此类推;当然,其余信息也是采用前述相同规则进行填写,于此不再赘述。
在完成对模板文档的图像转换后,即可进行文本灰度图像中文字信息的提取,在本实例中,是先进行每一行文字的分割,然后再对每一行文字进行文字分割,分割完成后,即可提取出文本灰度图像中的文字信息,其中,提取过程如下述步骤S2所示。
S2. 对所述文本灰度图像进行文字行划分,得到所述文本灰度图像中每行文字的标准图像,并对每行文字的标准图像进行文字分割,得到每行文字的文字分割图像;在具体应用时,考虑到模板文档中存在水印、表格等因素的影响,本实施例采用文本灰度图像中每一行和每一列像素点的平均灰度值来作为文字行划分的判断依据,其中,文字行划分过程如下述步骤S21~S26所示。
S21. 获取所述模板文档在转换为所述文本灰度图像后,所述模板文档中的每一行区域在所述文本灰度图像中的初始位置信息,其中,任一行区域的初始位置信息包括任一行区域在所述文本灰度图像中的端点坐标、长度以及宽度;在具体应用时,由于线下合同信息记载使用的是模板文档,其格式、间距是统一标准,因此,即可基于先验知识,来预先为模板文档中的每一行区域设置一初始位置信息,该初始位置信息则是任一行区域在文本灰度图像中的端点坐标、长度以及宽度;更进一步的,举例初始位置信息的获取过程为:获取一初始模板文档,其中,初始模板文档中的每一行均填写有文字,然后将初始模板文档转换为初始文本灰度图像后,以初始文本灰度图像的左下角为原点,来建立像素坐标系,最后则可基于初始文本灰度图像的像素点,来为每一行文字划分一区域,并基于该区域的端点坐标来确定每一行长度以及宽度,以便得到对应行区域的初始位置信息,如第一行为其划分一个长度和宽度为30×20的矩形,其左下角的坐标为(10,50),当然,其余各个行区域的初始位置信息的获取过程与前述举例一致,于此不再赘述。
在得到每一行区域的初始位置信息后,即可基于该初始位置信息,来得出每行文字的初始图像区域,如下述步骤S22所示。
S22. 基于每一行区域的初始位置信息,从文本灰度图像中,确定出每行文字的初始图像区域;具体应用时,只需基于任一端点坐标,并结合长度和宽度,来进行于每一行区域的定位,如任一端点坐标为左下角坐标,长度为30,宽度为20,那么则以该坐标为起点,向x轴正方向(文本灰度图像的长度方向)延伸30个像素点,以及以该坐标为起点,向y轴正方向(文本灰度图像的宽度方向)延伸20个像素点,最后,以此长和宽来构建一矩形区域,从而将构建的矩形区域作为该行文字对应的初始图像区域;当然,其余各行文字的初始图像区域的定位过程与前述举例原理相同,于此不再赘述。
在得到文本灰度图像中每行文字的初始图像区域后,即可在初始图像区域中,进行每行文字的精确定位,也就是在初始图像区域中,识别出每行文字的边界,其中,识别过程如下述步骤S23和步骤S24所示。
S23. 对于第i行文字的初始图像区域,计算所述第i行文字的初始图像区域中每一行的平均灰度值,以及每一列的平均灰度值;在具体应用时,对于第i行初始图像区域,将其每一行的像素点的灰度值相加并除以该行像素点的个数,即可得到每一行的平均灰度值,同理,每一列的平均灰度值也是采用相同方式计算得出;在得到第i行文字的初始图像区域中每一行和每一列的平均灰度值后,即可基于每一行的平均灰度值来识别出实际上下边界,以及基于每一列的平均灰度值来识别出实际左右边界,如下述步骤S24所示。
S24. 基于所述第i行文字的初始图像区域中每一行的平均灰度值,识别出第i行文字在对应初始图像区域中的实际上边界和实际下边界,以及基于所述第i行文字的初始图像区域中每一列的平均灰度值,识别出第i行文字在对应初始图像区域中的实际左边界和实际右边界;具体应用时,实际上边界的识别过程可以但不限于如下述步骤A~D所示。
A. 对于第i行文字的初始图像区域中的第j行,获取第j+1行的平均灰度值、第j+2行的平均灰度值以及第j-1行的平均灰度值,其中,j从1开始,且当j为1时,第j-1行的平均灰度值为第一预设值。
B. 获取第一灰度系数,并计算所述第j-1行的平均灰度值与所述第一灰度系数的乘积,得到第一比较阈值;在本实施例中,第一灰度系数可以但不限于预设至电子合同管理终端内,其值可以为1.3。
C. 判断所述第j行的平均灰度值、所述第j+1行的平均灰度值以及所述第j+2行的平均灰度值是否均小于所述第一比较阈值。
D. 若是,则将所述第j行作为所述第i行文字在对应初始图像区域中的实际上边界,否则,则将j自加1,并重新执行步骤A,直至第j行的平均灰度值、所述第j+1行的平均灰度值以及所述第j+2行的平均灰度值均小于所述第一比较阈值为止,其中,j≤m,且m为所述第i行文字的初始图像区域中像素点的总行数。
前述步骤A~D的识别原理为:在对第i行文字行进行实际上边界的识别时,是以从上至下的顺序,对第i行文字的初始图像区域中的每一行进行上边界的判断,同时,本实施例引入一第一灰度系数,并计算该行(表示初始识别图像中正在判断的行,如第一行、第二行等)的上一行与第一灰度系数的乘积,作为第一比较阈值,然后再判断该行相邻的下一行和下两行的像素点的平均灰度值以及该行的平均灰度值是否均小于第一比较阈值,从而基于判断结果来判定该行是否为第i行文字的实际上边界,其中,若均小于第一比较阈值,那么该行则作为第i行文字的实际上边界,反之,则按照前述步骤判断下一行,以此循环,直至第j行、第j+1行和第j+2行的平均灰度值均小于第一比较阈值为止。
如,第i行文字的初始图像区域共计有5行,那么则从第一行开始进行实际上边界的判断,判断第一行时:则需要获取第二行的平均灰度值、第三行的平均灰度值,以及第零行的平均灰度值,但是由于初始图像区域中未存在第零行,因此,本实施例设置一第一预设值,来作为第零行的平均灰度值(该第一预设值可以但不限于为初始图像区域中所有行的平均灰度值,即前述5行像素点的平均灰度值),此时,需要计算第一预设值与第一灰度系数的乘积,作为第一比较阈值,然后,判断第一行、第二行以及第三行的平均灰度值是否均小于第一比较阈值,若是,则将第一行作为第i行文字的实际上边界,否则,则判断第二行,也就是需要获取第三行、第四行以及第一行的平均灰度值,然后重复上述步骤,直至得出第j行、第j+1行和第j+2行的平均灰度值均小于第一比较阈值为止。
在本实施例中,由于是基于每一行区域的初始位置信息来得出文本灰度图像中每一行文字的初始图像区域,且初始位置信息的前提是模本文档中每一行均填写有文字,因此,可能存在初始图像区域中不存在文字的情况,由此,当j=m-2时,若依旧不满足步骤C中的条件,那么,则说明该初始图像区域不存在上边界,可认定该初始图像区域中并不存在文字。
由此基于前述步骤A~D,即可实现第i行文字在对应初始图像区域中实际上边界的识别。
同理,对于第i行文字在对应初始图像区域中的实际下边界的识别过程,其原理与实际上边界的识别原理相同,如下述步骤E~H所示。
E. 对于第i行文字的初始图像区域中的第j行,获取第j+1行的平均灰度值、第j+2行的平均灰度值以及第j+3行的平均灰度值,其中,j从1开始。
F. 获取第二灰度系数,并计算所述第j+1行的平均灰度值与所述第二灰度系数的乘积、所述第j+2行的平均灰度值与所述第二灰度系数的乘积以及所述第j+3行的平均灰度值与所述第二灰度系数的乘积,分别得到第二比较阈值、第三比较阈值以及第四比较阈值。
G. 判断所述第j行的平均灰度值是否均小于所述第二比较阈值、所述第三比较阈值以及所述第四比较阈值。
H. 若是,则将所述第j行作为第i行文字在对应初始图像区域中的实际下边界,否则,则将j自加1,并重复步骤E,直至所述第j行的平均灰度值均小于所述第二比较阈值、所述第三比较阈值以及所述第四比较阈值为止,其中,j≤m,且m为所述第i行文字的初始图像区域中像素点的总行数。
在本实施例中,步骤E~H的原理与步骤A~D的原理相同,也是以从上至下的顺序,对第i行文字的初始图像区域中的每一行进行实际下边界的判断,其判断原理也是通过引入一第二灰度系数,然后计算第j+1行、第j+2行以及第j+3行的平均灰度值与第二灰度系数的乘积,从而得到三个比较阈值(即第二、第三和第四比较阈值),最后,判断第j行的平均灰度值是否均小于前述三个比较阈值,来判定第j行是否为实际下边界;如,判断初始图像区域中的第一行时,则获取第二行、第三行和第四行的平均灰度值,然后计算第二、第三和第四行的平均灰度值与第二灰度系数的乘积,得到三个比较阈值,最后判断第一行的平均灰度值是否均小于前述三个比较阈值,若是,则将第一行作为实际下边界,若否,则按照前述方法判断第二行,以此循环,直至满足前述步骤G中的条件为止。
在本实施例中,当j=m-3时,若其对应的平均灰度值依然不满足步骤G中的条件,同样说明初始图像区域中不存在实际下边界,也就是不存在文字。
以同样的方法,从左往右判断初始图像区域中的每一列,即可实现第i行文字在对应初始图像区域中实际左边界的识别,其中,识别过程如下述步骤I~L所示。
I. 对于第i行文字的初始图像区域中的第k列,获取第k+1列的平均灰度值、第k+2列的平均灰度值以及第k-1列的平均灰度值,其中,k从1开始,且当k为1时,第k-1列的平均灰度值为第二预设值。
J. 获取第三灰度系数,并计算所述第k-1列的平均灰度值与所述第三灰度系数的乘积,得到第五比较阈值。
K. 判断所述第k列的平均灰度值、所述第k+1列的平均灰度值以及所述第k+2列的平均灰度值是否均小于所述第五比较阈值。
L. 若是,则将所述第k列作为第i行文字在对应初始图像区域中的实际左边界,否则,则将k自加1,并重复步骤I,直至所述第k列的平均灰度值、所述第k+1列的平均灰度值以及所述第k+2列的平均灰度值均小于所述第五比较阈值为止,其中,k≤p,且p为所述第i行文字的初始图像区域中像素点的总列数。
在本实施例中,步骤I~L的识别原理与步骤A~D的识别原理相同,仅是从行判断变为列判断,其判断过程实例可参见前述步骤A~D的实例,于此不再赘述;同时,在本实施例中,举例第二预设值可以但不限于为初始图像区域中所有列的平均灰度值。
而对于第i行文字的实际右边界的识别,则需要从右往左判断,即首先判断的是最后一列,其中,判断过程如下述步骤M~P所示。
M. 对于第i行文字的初始图像区域中的第k列,获取第k+1列的平均灰度值、第k-1列的平均灰度值以及第k-2列的平均灰度值,其中,k从p开始,且当k为p时,第k+1列的平均灰度值为第三预设值,p为所述第i行文字的初始图像区域中像素点的总列数。
N. 获取第四灰度系数,并计算所述第k+1列的平均灰度值与所述第四灰度系数的乘积,得到第六比较阈值。
O. 判断所述第k列的平均灰度值、所述第k-1列的平均灰度值以及所述第k-2列的平均灰度值是否均小于所述第六比较阈值。
P. 若是,则将所述第k列作为所述第i行文字在对应初始图像区域中的实际右边界,否则,则将k自加1,并重复步骤M,直至所述第k列的平均灰度值、所述第k-1列的平均灰度值以及所述第k-2列的平均灰度值均小于所述第六比较阈值为止,其中,1≤k≤p。
下述以一个实例来阐述前述步骤M~P,假设第i行文字的初始图像区域总计有6列,那么进行实际右边界的判断时,则从第6列开始,首先,需要获取第七列的平均灰度值、第5列的平均灰度值以及第4列的平均灰度值,其中,由于不存在第7列的平均灰度值,因此,本实施例也采用预设方式,即设置一第三预设值,且第三预设值可以但不限于与第二预设值相同,在获取到与第六列相邻一列和两列的平均灰度值后,即可计算第三预设值与第四灰度系数的乘积,作为第六比较阈值,最后,判断第六列的平均灰度值、第五列的平均灰度值以及第四列的平均灰度值是否均小于第六比较阈值,若小于,则将第六列作为第i行文字的实际右边界,否则,则以前述方法判断第5列是否为实际右边界,直至满足步骤O中的条件为止。
在本实施例中,为提高边界识别效率,在识别出第i行文字的实际上边界后,进行实际下边界的判断时,可直接从实际上边界的下一行进行判断,而无需从第一行开始;同理,在识别出第i行文字的实际左边界后,进行实际右边界的识别时,j的取值则为实际左边界的下一列;由此通过前述设计,可避免重复行或列的识别,从而减少计算量,以达到提高识别效率的目的。
可选的,在本实施例中,举例第二灰度系数、第三灰度系数以及第四灰度系数与第一灰度系数相同,均为1.3。
基于前述步骤A~P,即可得到第i行文字在对应初始图像区域中的实际边界,而基于实际边界,即可完成第i行文字对应实际图像区域的截取,如下述步骤S25所示。
S25. 基于所述第i行文字在对应初始图像区域中的实际上边界、实际下边界、实际左边界和实际右边界,从所述第i行文字的初始图像区域中,截取出所述第i行文字的实际区域,以将第i行文字的实际区域作为第i行文字的标准图像;在具体应用时,第i行文字的上下边界所处的行数已知,左右边界所处的列数已知,那么相当于得到了四个边界的端点像素点,因此,基于四个边界的端点像素点的坐标,即可在初始图像区域中完成第i行文字实际区域的截取,从而得到第i行文字的标准图像。
在得到第i行文字的标准图像后,即可进行下一行文字的边界识别,也就是重复前述步骤S23~S25,直至把文本灰度图像中每一行均判断完毕为止,如下述步骤S26所示。
S26. 当i从1循环至n时,得到所述文本灰度图像中每行文字的标准图像,其中,n为所述模板文档中用于填写文字的总行数;在本实施例中,由于模板文档的格式和文字间距格式是统一的,因此n的值是恒定的,可直接进行预设。
由于基于前述步骤S21~S26,即可完成文本灰度图像中文字行的划分,得到每行文字的标准图像,此时,则需要进行文字分割,以便后续进行文字识别,其中,对每行文字的标准图像进行文字分割,其过程可以但不限于如下述步骤S221~S226。
在本实施例中,在进行文字分割前,需要进行标准图像的预处理,即进行背景的去除,以及进行二值化处理,以便去除图像噪声以及减少数据量,并凸显文字轮廓,其中,预处理过程如下述步骤S221~S223所示。
S221. 获取初始结构元以及形态学运算参数,并基于所述初始结构元和所述形态学运算参数,构建出标准结构元,其中,所述形态学运算参数包括膨胀次数或腐蚀次数;具体应用时,初始结构元以及形态学运算参数预设至电子合同管理终端中,且举例初始结构元可以但不限于是尺寸为3×3的正方形结构元,而形态学运算参数则可以但不限于为膨胀次数,取值为5次,可选的,举例采用如下公式来得出标准结构元的尺寸:
r2=(r1-1)×t+1,其中,r2为标准结构元的尺寸,r1为初始结构元的尺寸,而t则为膨胀次数,当然,若形态学运算参数为腐蚀次数时,t则表示腐蚀次数;按照前述举例,标准结构元的尺寸则为:r2=(3-1)×5+1=11,因此,构建出的标准结构元则是尺寸为11×11的正方形结构元;当然,若初始结构元的长和宽不同时,则分别代入上式进行计算,即可得到标准结构元的长和宽,另外,其余不同初始结构元和形态学运算参数计算标准结构元的尺寸的原理与前述举例相同,于此不再赘述。
在得到标准结构元后,即可利用标准结构元来对每张标准图像进行多次开运算,以得出去除背景后的标准图像,其中,形态学处理过程如下述步骤S222所示。
S222. 利用所述标准结构元,对每行文字的标准图像进行多次开运算,以去除每张标准图像中的背景图像,得到去除背景后的标准图像;具体应用时,开运算则是先腐蚀后膨胀的运算,其能够得出每张标准图像的背景图,最后,使用标准图像减去对应的背景图像,即可得到去除背景后的标准图像。
在去除每张标准图像的背景图像后,即可进行图像的二值化,以便减少数据量,从而加快后续的文字分割效率以及文字识别效率,其中,二值化处理如下述步骤S223所示。
S223. 对每张去除背景后的标准图像进行二值化处理,得到每行文字的二值化图像;具体应用时,本实施例采用最大类间方差法来计算每张去除背景后的标准图像的二值化阈值,其中,二值化处理过程如下述步骤S223a~S223g所示。
S223a. 对于任一张去除背景后的标准图像,获取任一张去除背景后的标准图像的灰度范围;具体应用时,也就是获取任一张去除背景后的标准图像的灰度最大值以及灰度最小值。
S223b. 在所述灰度范围内,选取一灰度值,作为初始二值化阈值,并在任一张去除背景后的标准图像中,统计出第一目标像素点的个数以及第二目标像素点的个数,其中,所述第一目标像素点为灰度值小于所述初始二值化阈值的像素点,所述第二目标像素点为灰度值大于所述初始二值化阈值的像素点;具体应用时,假设灰度范围为[0,255],那么,则在[0,255]中随机选取一灰度值作为初始二值化阈值,如选取灰度值100,则将100作为初始二值化阈值,并统计灰度值小于100的像素点个数,作为第一目标像素点,而灰度值大于100的像素点,则作为第二目标像素点。
S223c. 计算第一目标像素点的平均灰度值,以及计算第二目标像素点的平均灰度值。
S223d. 基于第一目标像素点的平均灰度值、第一目标像素点的个数、第二目标像素点的平均灰度值以及第二目标像素点的个数,计算得到任一张去除背景后的标准图像的类间方差;具体应用时,使用如下公式计算类间方差:
该式中,为类间方差,为第一目标像素点与任一张去除背景后的标准图像中像素点的总个数之间的比值,为第二目标像素点与任一张去除背景后的标准图像中像素点的总个数之间的比值,为第一目标像素点的平均灰度,为第二目标像素点的平均灰度。
在得到灰度值为100对应的类间方差后,则可在[0,255]中重新选取一灰度值,来重复前述步骤S223b~S223d,直至将灰度范围内的所有灰度值均遍历完毕为止,遍历完毕后,即可得到多个类间方差,最后,即可将最大的类间方差作为二值化阈值,如下述步骤S223e和步骤S223f所示。
S223e. 在所述灰度范围内,重新选取一灰度值,作为新的初始二值化阈值,并重复前述步骤S223b~S223d,直至将所述灰度范围内所有的灰度值遍历完毕为止,以得到多个类间方差。
S223f. 将多个类间方差中的最大类间方差,作为任一张去除背景后的标准图像的二值化阈值。
在得到二值化阈值后,即可基于该二值化阈值进行任一张去除背景后的标准图像的二值化,如下述步骤S223g所示。
S223g. 基于所述二值化阈值,对所述任一张去除背景后的标准图像进行二值化处理,得到任一张去除背景后的标准图像对应文字行的二值化图;在具体应用时,对于灰度值小于二值化阈值的像素点,则该像素点的灰度值置0,而对于灰度值大于二值化阈值的像素点,则将其灰度值置为255,从而完成图像的二值化。
在完成每张去除背景后的标准图像的二值化后,即可对每张二值化图像进行文字分割,如下述步骤S224和步骤S225所示。
S224. 获取每行文字的二值化图像的宽度以及所述文本灰度图像的标准文字信息,其中,所述标准文字信息用于表征所述文本灰度图像中任一文字的文字宽度和高度;在具体应用时,举例标准文字信息可以但不限于包括任一文字的最大宽度值以及最小宽度值,当然标准文字信息其也是预设至电子合同管理终端内,其中,最大宽度值以及最小宽度值的获取过程为:通过前述初始文本灰度图像中构成每一个文字的像素点的像素坐标,来确定一个文字的宽度值,然后在宽度值的基础上增加5个像素点或减少5个像素点,来作为最大宽度值或最小宽度值。
S225. 利用每行文字的二值化图像的宽度和所述标准文字信息,识别出每张二值化图像中每个文字的左边界和右边界,以及利用所述标准文字信息,识别出每张二值化图像中每个文字的上边界和下边界;在具体应用时,每张二值化图像中每个文字的左边界和右边界的识别过程如下述步骤R~W所示。
R. 对于任一二值化图像中的第b个文字,以任一二值化图像的第c列为起点列,在第c列至第w列之间,筛选出最先存在任一像素点的灰度值为0的列,作为第b个文字的左边界,其中,b和c均从1开始,且w为所述任一二值化图像中的总列数。
S. 以第b个文字的左边界为起点列,在起点列至第w列之间,筛选出最先存在有任一像素点的灰度值为0的列,作为所述第b个文字的初始右边界。
T. 计算所述初始右边界与所述左边界之间的列数差。
U. 若所述列数差大于所述最大宽度值,则基于左边界对应的列数与最小宽度值的和,确定出第一筛选列,以及基于初始右边界对应的列数与最大宽度值的和,确定出第二筛选列,并在所述第一筛选列至所述第二筛选列之间,筛选出灰度总值最小的列,以将灰度总值最小的列,作为第b个文字的右边界;若所述列数差小于所述最小宽度值,则将所述初始右边界对应的列数自加1,并重新执行步骤S,直至得到所述第b个文字的右边界为止。
V. 判断所述任一二值化图像的宽度与目标宽度之间的差值是否小于所述最小宽度值,其中,目标宽度为第b个文字的左边界与任一二值化图像的宽度边起点之间的距离。
W. 若否,则将b自加1,并以第b-1个文字的右边界为起点列,重复步骤R~V,直至所述任一二值化图像的宽度与目标宽度之间的差值小于最小宽度值为止,以得到所述任一二值化图像中每个文字的左边界和右边界。
上述步骤R~W的识别原理为:对于任一二值化图像中的第b个文字,先以该任一二值化图像中的第一列为起点列,在第一列至最后一列之间,筛选出最先出现有任一像素点的灰度值为0的列,并将其作为左边界,然后以左边界为起点,采用同样的方法来寻找出最先出现有任一像素点的灰度值为0的列,将该列作为初始右边界,由于初始右边界受到其余文字边界的影响,因此,需要进行二次判断,也就是通过初始右边界与左边界之间的列数差,与文本灰度图像中任一文字的最大宽度值以及最小宽度值之间的大小关系,来进行二次调整,调整过程为:
其中,若初始右边界与左边界之间的列数差大于最大宽度值,则说明存在文字粘连,因此,需要回溯,回溯过程为:先确定回溯的起始列,其中,起点列数(即前述的第一筛选列)为:左边界对应的列数与最小宽度值的和,同理,终点列数(即前述的第二筛选列)为:初始右边界对应的列数与最大宽度值的和,然后,在前述计算得到的起点列数和终点列数中,筛选出灰度总值最小的列,作为第b个文字的右边界,如起点列数和终点列数为第四列和第九列,那么则在第四列至第九列之间,来筛选出灰度总值最小的列,若在第四列至第九列之间,第六列的灰度总值(是第六列所有像素点的灰度值相加)最小,那么则将第六列作为第b个文字的右边界;当然,当起点列数以及终点列数不同时,其筛选方法与前述举例相同,于此不再赘述。
而若初始右边界与左边界之间的列数差小于最小宽度值时,则需要将初始右边界自加1,然后返回步骤S,并进行重新循环判断,直至得到右边界为止。
在本实施例中,在得出第b个文字的左右边界后,还需判断第b个文字是否为最后一个文字,也就是判断任一二值化图像的宽度与目标宽度之间的差值是否小于最小宽度值,目标宽度为第b个文字的左边界与任一二值化图像的宽度边起点之间的距离,因此,前述判断实质是:判断第b个文字的左边界与任一二值化图像的宽度终点之间的距离是否小于最小宽度值,若小于,则说明无法容纳文字,此时,则说明已到了二值化图像的末尾,而若大于最小宽度值,则进行第二个文字的左右边界识别,即以第一个文字的右边界为起点列,重复前述步骤R~W,以此循环,直至任一二值化图像的宽度与目标宽度之间的差值小于最小宽度值为止,循环结束后,即可得到任一二值化图像中每个文字的左右边界。
在本实施例中,当第一个文字的初始右边界与左边界之间的列数差介于最小宽度值与最大宽度值之间时,则将初始右边界自加1,并重新执行步骤S,直至得到所述第b个文字的右边界为止。
另外,在本实施例中,标准文字信息还可以但不限于包括:任一文字的部首最大宽度值以及部首最小宽度值,当然,也是预设至电子合同管理终端,其获取原理与前述最大宽度值以及最小宽度值相同,于此不再赘述;而在当b大于1,且第b个文字的初始右边界与左边界之间的列数差介于最小宽度值与最大宽度值之间时,则所述方法还包括如下步骤S225a~S225d。
S225a. 获取第b-1个文字的左边界和右边界,并基于第b-1个文字的左边界和右边界,得到第b-1个文字的右边界与左边界之间的列数差,作为第一列数比较值;在本实施例中,举例当b为1时,第b-1个文字的左右边界为第四预设值。
S225b. 计算第b个文字的左边界与第b-1个文字的右边界之间的列数差,作为第二列数比较值。
S225c. 判断第b个文字的初始右边界与左边界之间的列数差是否小于部首最大宽度值、判断第一列数比较值是否小于部首最大宽度值以及判断第二列数比较值是否小于部首最小宽度值。
S225d. 若是,则将第b-1个文字的右边界作为第b个文字的右边界,否则,则将初始右边界自加1,并重新执行步骤S,直至得到所述第b个文字的右边界为止。
下述以一个实例来阐述前述步骤S225a~S225d:假设b为2,那么当第2个文字的初始右边界与左边界之间的列数差介于最小宽度值与最大宽度值之间时,那么则需要获取第1个文字的右边界和左边界,然后得到第1个文字的右边界与右边家的列数差,作为第一列数比较值,接着,计算第2个文字的左边界与第1个文字的右边界的列数差,作为第二列数比较值,最后,判断第2个文字的初始右边界与左边界之间的列数差是否小于部首最大宽度值、判断第一列数比较值是否小于部首最大宽度值以及判断第二列数比较值是否小于部首最小宽度值,在同时满足上述三个条件后,则将第1个文字的右边界作为第2个文字的右边界,也就是进行边界的合并,否则,则将第2个文字的初始右边界自加1,然后重新执行步骤S。
由此通过前述步骤R~W以及步骤S225a~S225d,即可得到任一二值化图像中每个文字的左边界和右边界,当然,其余二值化图像也是采用前述方法进行文字左右边界的识别,于此不再赘述。
在得到任一二值化图像中每个文字的左右边界后,即可进行每个文字上下边界的划分,如下述步骤S225e~S225j。
在本实施例中,所述标准文字信息还包括:任一文字的最大高度值以及最小高度值,其中,获取方法与前述最大宽度值以及最小宽度值相同,于此不再赘述;因此,上下边界的划分过程为:
S225e. 对于任一二值化图像,基于所述任一二值化图像中每个文字的左边界和右边界,截取出任一二值化图像中每个文字的初始文字区域;在本实施例中,截取原理与前述基于每行文字的左右边界进行图像截取原理相同,于此不再赘述。
S225f. 对于任一二值化图像中的任一文字对应的初始文字区域,以任一文字对应的初始文字区域的第d行为起点行,在第d行至第s行之间,筛选出最先存在有任一像素点的灰度值为0的行,作为任一文字的上边界,其中,d从1开始,且s为任一文字对应的初始文字区域中的总行数。
S225g. 以任一文字的上边界为起点行,在起点行至第s行之间,筛选出最先存在有任一像素点的灰度值为0的行,作为所述任一个文字的初始下边界。
S225h. 计算所述初始下边界与所述上边界之间的行数差。
S225i. 若行数差大于最大高度值,则基于上边界对应的行数与最小高度值的和,确定出第三筛选行,以及基于初始下边界对应的列数与最大高度值的和,确定出第四筛选行,并在所述第三筛选行至所述第四筛选行之间,筛选出灰度总值最小的行,以将灰度总值最小的行,作为任一文字的下边界;若行数差大于最大高度值,则将所述初始下边界对应的行数自加1,并重新执行步骤S225f,直至得到所述任一个文字的下边界为止。
在本实施例中,步骤S225e~S225j的原理与前述步骤R~U的原理相同,其具体阐述可参见前述步骤R~U,于此不再赘述。
由此,通过前述步骤R~V、步骤S225a~S225d以及步骤S225e~S225j,即可得出每张二值化图像中每个文字的上下左右边界,最后,基于每个文字的上下左右边界,即可得到每行文字的文字分割图像,如下述步骤S226所示。
S226. 基于每张二值化图像中每个文字的左边界、右边界、上边界和下边界,从每张二值化图像中截取出每个文字所属的图像区域,以在截取完毕后,得到每行文字的文字分割图像。
在得到每行文字的文字分割图像后,即可对每张文字分割图像进行文字识别,如下述步骤S3所示。
S3. 对每行文字的文字分割图像进行文字识别,得到所述文本灰度图像的文字识别结果,以便利用所述文字识别结果得到所述合同签订信息;具体应用时,可以但不限于使用训练后的卷积神经网络进行文字识别,即对于每行文字的文字分割图像,按照分割顺序,将文字分割图像输入至训练后的卷积神经网络中,从而来得出文字识别结果;可选的,举例卷积神经网络可以但不限于采用BP(Back-Propagation Network,反向传播神经网络)神经网络,在得到文字识别结果后,按照识别顺序,即可组成合同签订信息。
在得到合同签订信息后,即可进行电子合同的生成,如下述步骤S4所示。
S4. 基于所述合同签订信息,获取与所述合同签订信息对应的模板合同以及模板合同的填写配置信息,以便基于所述填写配置信息,将所述合同签订信息填写至所述模板合同中,得到初始电子合同;在具体应用时,由于前述就已阐述合同签订信息中记载有合同签署类型,因此,在本实施例中,设置有模板合同库,并为库中的每个模板合同设置有一标签,而该标签则用于表征合同签署类型,因此,在得到合同签订信息后,即可基于信息中的合同签署类型,在模板合同库中,匹配出与签署类型对应的模板合同。
同时,在本实施例中,举例填写配置信息可以但不限于包括:合同填写项(为合同信息填写的名称,如合同发起方的名称为xxx公司,那么合同发起方则为合同填写项,又如,合同发起方的地址为xxxx街道24号,那么合同发起方的地址也为合同填写项,其余合同填写项也是如此,不再赘述)以及每个合同填写项的位置信息,因此,即可基于合同填写项,在合同签订信息中匹配出与合同填写项相同的合同签订信息,并基于合同填写项的位置信息,来确定出填写位置,最后,将与合同填写项相同的合同签订信息对应的内容,填写至确定出的填写位置后,即可实现合同签订信息在模板合同内的填入。
另外,填写配置信息还可以包括:每个合同填写项的预设参数信息,如合同填写项为合同发起方名称,使用”{{xxxxx}}”这一预设参数来表示,因此,在进行合同填写时,可直接将合同签订信息中合同发起方名称对应的内容,直接替换掉双括号中的“xxxxx”,由此来实现合同签订信息在模板合同内的填写;当然,其余合同填写项的填入原理也是如此,于此不再赘述。
在本实施例中,由于合同签订信息中还包括产品名称,因此,本实施例所提供的电子合同管理终端还可与企业的订单系统相关联,以便基于产品名称从订单系统中来拉取产品对应的产品信息,从而填写至模板合同中。
在将合同签订信息填写至模板合同,得到初始电子合同后,为提高合同的防伪性能,在本实施例中,还可基于合同签订信息来生成合同的数字签名,并与合同的签章图像相结合,来生成防伪签章图像,以便加盖在初始电子合同中,从而在保证合同有效性的基础上,提高合同的防伪性能,其中,数字签名生成过程如下述步骤S5所示。
S5. 根据所述合同签订信息,生成所述初始电子合同的合同编码,并基于所述合同编码,生成所述初始电子合同的数字签名;具体应用时,举例可以但不限于利用哈希算法对合同发起方的名称以及合同签订方的名称进行哈希运算,得到所述合同编码,可选的,哈希算法采用MD5算法。
同时,举例利用合同编码生成数字签名的过程可以但不限于如下述步骤S51~S58所示。
S51. 在素数库中,随机选取第一素数和第二素数,并计算第一素数和第二素数的乘积,作为中间值,其中,所述第一素数和所述第二素数互不相同;在本实施例中,素数库预设值电子合同管理终端内。
S52. 在正整数库中,随机选取第一正整数和第二正整数,其中,所述第一正整数和所述第二正整数均小于所述中间值;在本实施例中,第一正整数和第二正整数则为私钥,用于后续进行合同编码的加密,同理,正整数库也是预设至电子合同管理终端内。
S53. 获取第一随机数、第二随机数以及第三随机数,其中,第一随机数、第二随机数以及第三随机数均小于所述中间值,且第一随机数与第二随机数的乘积等于1与中间值的余数。
S54. 基于所述第三随机数、所述中间值以及所述合同编码,计算得到加密参数;具体应用时,举例采用如下公式(3)来计算加密参数:
在得到加密参数后,即可利用加密参数、合同编码、中间值以及三个随机数来计算出两个第一加密值,同时,利用三个随机数、两个私钥以及中间值来计算出两个第二加密值,如下述步骤S55所示。
S55. 利用所述加密参数、所述合同编码、所述第一随机数、所述第二随机数、所述第三随机数和中间值,计算得到两个第一加密值,以及利用所述第一正整数、所述第二正整数、所述第一随机数、所述第二随机数、所述第三随机数和所述中间值,计算得到两个第二加密值;具体应用时,举例第一加密值可以但不限于采用如下公式(4)计算得出:
同理,举例第二加密值可以但不限于采用如下公式(5)计算得出:
由此通过前述式(4)和式(5),即可计算得到两个第一加密值,以及两个第二加密值,以便后续进行两矩阵的计算,如下述步骤S56和步骤S57所示。
S56. 基于所述第一正整数、所述第二正整数以及所述中间值,构建得到模态矩阵;具体应用时,举例模态矩阵按照如下公式(6)进行构建:
在得到模态矩阵后,即基于两个第一加密值来计算第一矩阵,以及基于两个第二加密值来计算第二矩阵,如下述步骤S57所示。
S57. 利用所述模态矩阵、两个第一加密值以及所述中间值,按照如下公式(1),计算得到第一矩阵,以及利用所述模态矩阵、两个第二加密值以及所述中间值,按照如下公式(2),计算得到第二矩阵。
最后,利用两个矩阵以及第三随机数,即可组成数字签名,如下述步骤S58所示。
S58. 利用所述第一矩阵、所述第二矩阵以及所述第三随机数,组成所述数字签名。
在得到数字签名后,即可获取模板合同的签章图像,并将数字签名嵌入至签章图像中,得到防伪签章图像,其中嵌入过程如下述步骤S6所示。
S6. 获取模板合同的签章图像,并将所述数字签名嵌入至签章图像中,得到防伪签章图像;具体应用时,采用图像的离散余弦变换来实现数字签名的嵌入,如下述步骤S61~S67所示。
S61. 将所述签章图像划分为多个尺寸相同的图像块,并对每个图像块进行离散余弦变换,得到离散变换图像块。
S62. 基于多个离散变换图像块,得到每个离散变换图像块的低频离散余弦变换系数;在本实施例中,离散余弦变换为数字图像变换的常用方法,变换后可得到图像的频谱图,其中,低频系数反映在图像的左上方,高频系数反映在图像的右下方,因此,基于离散变换图像块,可得到其对应的低频离散余弦变换系数。
在得到每个离散变换图像块的低频离散余弦变换系数后,即可使用数字签名与低频离散余弦变换系数的和,来更新每个离散变换图像块的低频离散余弦变换系数,从而在更新后,得到更新后的图像块,如下述步骤S63和步骤S64所示。
S63. 计算所述第一矩阵、所述第二矩阵以及所述第三随机数的乘积,作为水印值。
S64. 对于每个离散变换图像块,将每个离散变换图像块的低频离散余弦变换系数与所述水印值的和,作为每个离散变换图像块的低频系数更新参数;在本实施例中,将数字签名内各数据的乘积作为水印值,然后对于任一离散变换图像块,使用水印值加上该任一离散变换图像块的低频离散余弦变换系数,即可得到该任一离散变换图像块的低频系数更新参数,最后,将低频系数更新参数来更新该任一离散变换图像块中的低频离散余弦变换系数,即可得到更新后的图像块,如下述步骤S65所示。
S64. 使用每个离散变换图像块的低频系数更新参数,更新对应离散变换图像块的低频离散余弦变换系数,得到更新后的图像块;在本实施例中,是使用低频系数更新参数来替换该任一离散变换图像块中的低频离散余弦变换系数,替换完成后,即可得到更新后的图像块。
在完成每个离散变换图像块的低频离散余弦变换系数的更新后,即可对更新后的图像块进行反离散余弦变换,从而得到嵌入了数字签名的图像块,也就是防伪图像块,最后,将多个防伪图像块进行合并,即可得到防伪签章图像,如下述步骤S65和步骤S66所示。
S65 对多个更新后的图像块进行反离散余弦变换,得到多个防伪图像块。
S66. 将多个防伪图像块进行合并处理,以在合并后,得到所述防伪签章图像。
在得到防伪签章图像后,即可将防伪签章图像加盖至初始电子合同中,得到模板文档的电子合同,如下述步骤S7所示。
S7. 将所述防伪签章图像填充至所述初始电子合同中,得到所述模板文档对应的电子合同;在本实施例中,举例填写配置信息还可以包括:用章位置,因此,在得到防伪签章图像后,即可将方位签章图像填充至用章位置上,从而得到模板文档对应的电子合同,以便进行线上管理以及线上签署。
可选的,在本实施例中,在得到电子合同后,举例还可以但不限于将电子合同转换为pdf,从而进行留存,同时,还可将电子同转换为图片,以便在电子管理合同终端杆进行预览,从而便于用户和工作人员进行审核。
另外,在本实施例中,在生成电子合同的数字签名时,会将数字签名存储在电子合同管理终端,然后,在进行合同验证时,则采用将水印值从防伪签章图像中提取出来,并提取出的水印值是否与存储的数字签名内部数据的乘积一致,若不一致,则说明合同为伪造合同,而若一致,则还需要验证数字签名的真伪,过程如下:
采用如下公式(7)和(8),来利用两个私钥来生成公钥:
利用两个公钥来构建解密矩阵;然后用解密矩阵来验证第一矩阵和第二矩阵是否满足预设条件,若满足,则说明数字签名为真,合同为真,反之,则为假。
预设条件为:
由此,基于验证前述条件后,即可完成电子合同真伪的验证。
由此通过前述对基于格式模板的电子合同生成方法的详细描述,本发明可直接将线下记载有合同签订信息的模板文档转换为电子合同,同时,还可利用模板文档中的合同签订信息来生成该电子合同的唯一合同编码,并对该合同编码进行加密来得出电子合同的数字签名,最后,将数据签名嵌入至合同的签章图像中,即可在保证合同有效性的基础上,来实现合同的防伪;由此,本发明不仅实现了线下合同的线上化管理,且还无需人工录入,使得电子合同的生成快速而准确,另外,利用合同签订信息来得到数字签名,并与合同的签章图像相结合,使得每份电子合同的签章图像均独一无二,避免了签章伪造的问题,极大的提高了合同的防伪性和有效性。
如图2所示,本实施例第二方面提供了一种实现实施例第一方面中所述的基于格式模板的电子合同生成方法的硬件系统,包括:
获取单元,用于获取模板文档,并对所述模板文档进行图像转换,得到文本灰度图像,其中,所述模板文档包括word文档和/或文本文档,且所述模板文档中记载有合同签订信息。
文字提取单元,用于对所述文本灰度图像进行文字行划分,得到所述文本灰度图像中每行文字的标准图像,并对每行文字的标准图像进行文字分割,得到每行文字的文字分割图像。
文字识别单元,用于对每行文字的文字分割图像进行文字识别,得到所述文本灰度图像的文字识别结果,以便利用所述文字识别结果得到所述合同签订信息。
合同生成单元,用于基于所述合同签订信息,获取与所述合同签订信息对应的模板合同以及模板合同的填写配置信息,以便基于所述填写配置信息,将所述合同签订信息填写至所述模板合同中,得到初始电子合同。
数字签名单元,用于根据所述合同签订信息,生成所述初始电子合同的合同编码,并基于所述合同编码,生成所述初始电子合同的数字签名。
防伪单元,用于获取模板合同的签章图像,并将所述数字签名嵌入至签章图像中,得到防伪签章图像。
合同生成单元,还用于将所述防伪签章图像填充至所述初始电子合同中,得到所述模板文档对应的电子合同。
本实施例提供的装置的工作过程、工作细节和技术效果,可以参见实施例第一方面,于此不再赘述。
在一个可能的设计中,本实施例第三方面提供了另一种基于格式模板的电子合同生成装置,以装置为电子设备为例,包括:依次通信相连的存储器、处理器和收发器,其中,所述存储器用于存储计算机程序,所述收发器用于收发消息,所述处理器用于读取所述计算机程序,执行如实施例第一方面所述的基于格式模板的电子合同生成方法。
本实施例提供的电子设备的工作过程、工作细节和技术效果,可以参见实施例第一方面,于此不再赘述。
本实施例第四方面提供了一种存储包含有实施例第一方面所述的基于格式模板的电子合同生成方法的指令的存储介质,即所述存储介质上存储有指令,当所述指令在计算机上运行时,执行如第一方面所述的基于格式模板的电子合同生成方法。
其中,所述存储介质是指存储数据的载体,可以但不限于包括软盘、光盘、硬盘、闪存、优盘和/或记忆棒(Memory Stick)等,所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。
本实施例提供的存储介质的工作过程、工作细节和技术效果,可以参见实施例第一方面,于此不再赘述。
本实施例第五方面提供了一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使所述计算机执行如实施例第一方面所述的基于格式模板的电子合同生成方法,其中,所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种基于格式模板的电子合同生成方法,其特征在于,包括:
获取模板文档,并对所述模板文档进行图像转换,得到文本灰度图像,其中,所述模板文档包括word文档和/或文本文档,且所述模板文档中记载有合同签订信息;
对所述文本灰度图像进行文字行划分,得到所述文本灰度图像中每行文字的标准图像,并对每行文字的标准图像进行文字分割,得到每行文字的文字分割图像;
对每行文字的文字分割图像进行文字识别,得到所述文本灰度图像的文字识别结果,以便利用所述文字识别结果得到所述合同签订信息;
基于所述合同签订信息,获取与所述合同签订信息对应的模板合同以及模板合同的填写配置信息,以便基于所述填写配置信息,将所述合同签订信息填写至所述模板合同中,得到初始电子合同;
根据所述合同签订信息,生成所述初始电子合同的合同编码,并基于所述合同编码,生成所述初始电子合同的数字签名;
获取模板合同的签章图像,并将所述数字签名嵌入至签章图像中,得到防伪签章图像;
将所述防伪签章图像填充至所述初始电子合同中,得到所述模板文档对应的电子合同;
基于所述合同编码,生成所述初始电子合同的数字签名,包括:
在素数库中,随机选取第一素数和第二素数,并计算第一素数和第二素数的乘积,作为中间值,其中,所述第一素数和所述第二素数互不相同;
在正整数库中,随机选取第一正整数和第二正整数,其中,所述第一正整数和所述第二正整数均小于所述中间值;
获取第一随机数、第二随机数以及第三随机数,其中,第一随机数、第二随机数以及第三随机数均小于所述中间值,且第一随机数与第二随机数的乘积等于1与中间值的余数;
基于所述第三随机数、所述中间值以及所述合同编码,计算得到加密参数;
利用所述加密参数、所述合同编码、所述第一随机数、所述第二随机数、所述第三随机数和中间值,计算得到两个第一加密值,以及利用所述第一正整数、所述第二正整数、所述第一随机数、所述第二随机数、所述第三随机数和所述中间值,计算得到两个第二加密值;
基于所述第一正整数、所述第二正整数以及所述中间值,构建得到模态矩阵;
利用所述模态矩阵、两个第一加密值以及所述中间值,按照如下公式(1),计算得到第一矩阵,以及利用所述模态矩阵、两个第二加密值以及所述中间值,按照如下公式(2),计算得到第二矩阵;
利用所述第一矩阵、所述第二矩阵以及所述第三随机数,组成所述数字签名。
2.如权利要求1所述的方法,其特征在于,对所述文本灰度图像进行文字行划分,得到所述文本灰度图像中每行文字的标准图像,包括:
获取所述模板文档在转换为所述文本灰度图像后,所述模板文档中的每一行区域在所述文本灰度图像中的初始位置信息,其中,任一行区域的初始位置信息包括任一行区域在所述文本灰度图像中的任一端点坐标、长度以及宽度;
基于每一行区域的初始位置信息,从文本灰度图像中,确定出每行文字的初始图像区域;
对于第i行文字的初始图像区域,计算所述第i行文字的初始图像区域中每一行的平均灰度值,以及每一列的平均灰度值;
基于所述第i行文字的初始图像区域中每一行的平均灰度值,识别出第i行文字在对应初始图像区域中的实际上边界和实际下边界,以及基于所述第i行文字的初始图像区域中每一列的平均灰度值,识别出第i行文字在对应初始图像区域中的实际左边界和实际右边界;
基于所述第i行文字在对应初始图像区域中的实际上边界、实际下边界、实际左边界和实际右边界,从所述第i行文字的初始图像区域中,截取出所述第i行文字的实际区域,以将第i行文字的实际区域作为第i行文字的标准图像;
当i从1循环至n时,得到所述文本灰度图像中每行文字的标准图像,其中,n为所述模板文档中用于填写文字的总行数。
3.如权利要求2所述的方法,其特征在于,基于所述第i行文字的初始图像区域中每一行的平均灰度值,识别出第i行文字在对应初始图像区域中的实际上边界,包括:
A. 对于第i行文字的初始图像区域中的第j行,获取第j+1行的平均灰度值、第j+2行的平均灰度值以及第j-1行的平均灰度值,其中,j从1开始,且当j为1时,第j-1行的平均灰度值为第一预设值;
B. 获取第一灰度系数,并计算所述第j-1行的平均灰度值与所述第一灰度系数的乘积,得到第一比较阈值;
C. 判断所述第j行的平均灰度值、所述第j+1行的平均灰度值以及所述第j+2行的平均灰度值是否均小于所述第一比较阈值;
D. 若是,则将所述第j行作为所述第i行文字在对应初始图像区域中的实际上边界,否则,则将j自加1,并重新执行步骤A,直至第j行的平均灰度值、所述第j+1行的平均灰度值以及所述第j+2行的平均灰度值均小于所述第一比较阈值为止,其中,j≤m,且m为所述第i行文字的初始图像区域中像素点的总行数。
4.如权利要求2所述的方法,其特征在于,基于所述第i行文字的初始图像区域中每一行的平均灰度值,识别出第i行文字在对应初始图像区域中的实际下边界,包括:
E. 对于第i行文字的初始图像区域中的第j行,获取第j+1行的平均灰度值、第j+2行的平均灰度值以及第j+3行的平均灰度值,其中,j从1开始;
F. 获取第二灰度系数,并计算所述第j+1行的平均灰度值与所述第二灰度系数的乘积、所述第j+2行的平均灰度值与所述第二灰度系数的乘积以及所述第j+3行的平均灰度值与所述第二灰度系数的乘积,分别得到第二比较阈值、第三比较阈值以及第四比较阈值;
G. 判断所述第j行的平均灰度值是否均小于所述第二比较阈值、所述第三比较阈值以及所述第四比较阈值;
H. 若是,则将所述第j行作为第i行文字在对应初始图像区域中的实际下边界,否则,则将j自加1,并重复步骤E,直至所述第j行的平均灰度值均小于所述第二比较阈值、所述第三比较阈值以及所述第四比较阈值为止,其中,j≤m,且m为所述第i行文字的初始图像区域中像素点的总行数。
5.如权利要求2所述的方法,其特征在于,基于所述第i行文字的初始图像区域中每一列的平均灰度值,识别出第i行文字在对应初始图像区域中的实际左边界,包括:
I. 对于第i行文字的初始图像区域中的第k列,获取第k+1列的平均灰度值、第k+2列的平均灰度值以及第k-1列的平均灰度值,其中,k从1开始,且当k为1时,第k-1列的平均灰度值为第二预设值;
J. 获取第三灰度系数,并计算所述第k-1列的平均灰度值与所述第三灰度系数的乘积,得到第五比较阈值;
K. 判断所述第k列的平均灰度值、所述第k+1列的平均灰度值以及所述第k+2列的平均灰度值是否均小于所述第五比较阈值;
L. 若是,则将所述第k列作为第i行文字在对应初始图像区域中的实际左边界,否则,则将k自加1,并重复步骤I,直至所述第k列的平均灰度值、所述第k+1列的平均灰度值以及所述第k+2列的平均灰度值均小于所述第五比较阈值为止,其中,k≤p,且p为所述第i行文字的初始图像区域中像素点的总列数。
6.如权利要求2所述的方法,其特征在于,基于所述第i行文字的初始图像区域中每一列的平均灰度值,识别出第i行文字在对应初始图像区域中的实际右边界,包括:
M. 对于第i行文字的初始图像区域中的第k列,获取第k+1列的平均灰度值、第k-1列的平均灰度值以及第k-2列的平均灰度值,其中,k从p开始,且当k为p时,第k+1列的平均灰度值为第三预设值,p为所述第i行文字的初始图像区域中像素点的总列数;
N. 获取第四灰度系数,并计算所述第k+1列的平均灰度值与所述第四灰度系数的乘积,得到第六比较阈值;
O. 判断所述第k列的平均灰度值、所述第k-1列的平均灰度值以及所述第k-2列的平均灰度值是否均小于所述第六比较阈值;
P. 若是,则将所述第k列作为所述第i行文字在对应初始图像区域中的实际右边界,否则,则将k自加1,并重复步骤M,直至所述第k列的平均灰度值、所述第k-1列的平均灰度值以及所述第k-2列的平均灰度值均小于所述第六比较阈值为止,其中,1≤k≤p。
7.如权利要求1所述的方法,其特征在于,对每行文字的标准图像进行文字分割,得到每行文字的文字分割图像,包括:
获取初始结构元以及形态学运算参数,并基于所述初始结构元和所述形态学运算参数,构建出标准结构元,其中,所述形态学运算参数包括膨胀次数或腐蚀次数;
利用所述标准结构元,对每行文字的标准图像进行多次开运算,以去除每张标准图像中的背景图像,得到去除背景后的标准图像;
对每张去除背景后的标准图像进行二值化处理,得到每行文字的二值化图像;
获取每行文字的二值化图像的宽度以及所述文本灰度图像的标准文字信息,其中,所述标准文字信息用于表征所述文本灰度图像中任一文字的文字宽度和高度;
利用每行文字的二值化图像的宽度和所述标准文字信息,识别出每张二值化图像中每个文字的左边界和右边界,以及利用所述标准文字信息,识别出每张二值化图像中每个文字的上边界和下边界;
基于每张二值化图像中每个文字的左边界、右边界、上边界和下边界,从每张二值化图像中截取出每个文字所属的图像区域,以在截取完毕后,得到每行文字的文字分割图像。
8.如权利要求7所述的方法,其特征在于,所述标准文字信息包括:任一文字的最大宽度值以及最小宽度值;
其中,利用每行文字的二值化图像的宽度和所述标准文字信息,识别出每张二值化图像中每个文字的左边界和右边界,包括:
R. 对于任一二值化图像中的第b个文字,以任一二值化图像的第c列为起点列,在第c列至第w列之间,筛选出最先存在任一像素点的灰度值为0的列,作为第b个文字的左边界,其中,b和c均从1开始,且w为所述任一二值化图像中的总列数;
S. 以第b个文字的左边界为起点列,在起点列至第w列之间,筛选出最先存在有任一像素点的灰度值为0的列,作为所述第b个文字的初始右边界;
T. 计算所述初始右边界与所述左边界之间的列数差;
U. 若所述列数差大于所述最大宽度值,则基于左边界对应的列数与最小宽度值的和,确定出第一筛选列,以及基于初始右边界对应的列数与最大宽度值的和,确定出第二筛选列,并在所述第一筛选列至所述第二筛选列之间,筛选出灰度总值最小的列,以将灰度总值最小的列,作为第b个文字的右边界;若所述列数差小于所述最小宽度值,则将所述初始右边界对应的列数自加1,并重新执行步骤S,直至得到所述第b个文字的右边界为止;
V. 判断所述任一二值化图像的宽度与目标宽度之间的差值是否小于所述最小宽度值,其中,目标宽度为第b个文字的左边界与任一二值化图像的宽度边起点之间的距离;
若否,则将b自加1,并以第b-1个文字的右边界为起点列,重复步骤R~V,直至所述任一二值化图像的宽度与目标宽度之间的差值小于最小宽度值为止,以得到所述任一二值化图像中每个文字的左边界和右边界。
9.如权利要求1所述的方法,其特征在于,所述数字签名包括:第一矩阵、第二矩阵以及第三随机数;
相应的,将所述数字签名嵌入至签章图像中,得到防伪签章图像,包括:
将所述签章图像划分为多个尺寸相同的图像块,并对每个图像块进行离散余弦变换,得到离散变换图像块;
基于多个离散变换图像块,得到每个离散变换图像块的低频离散余弦变换系数;
计算所述第一矩阵、所述第二矩阵以及所述第三随机数的乘积,作为水印值;
对于每个离散变换图像块,将每个离散变换图像块的低频离散余弦变换系数与所述水印值的和,作为每个离散变换图像块的低频系数更新参数;
使用每个离散变换图像块的低频系数更新参数,更新对应离散变换图像块的低频离散余弦变换系数,得到更新后的图像块;
对多个更新后的图像块进行反离散余弦变换,得到多个防伪图像块;
将多个防伪图像块进行合并处理,以在合并后,得到所述防伪签章图像。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210909757.7A CN114998922B (zh) | 2022-07-29 | 2022-07-29 | 一种基于格式模板的电子合同生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210909757.7A CN114998922B (zh) | 2022-07-29 | 2022-07-29 | 一种基于格式模板的电子合同生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114998922A CN114998922A (zh) | 2022-09-02 |
CN114998922B true CN114998922B (zh) | 2022-11-04 |
Family
ID=83022458
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210909757.7A Active CN114998922B (zh) | 2022-07-29 | 2022-07-29 | 一种基于格式模板的电子合同生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114998922B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117113384B (zh) * | 2023-10-25 | 2024-01-09 | 杭州易靓云科技有限公司 | 一种合同签约管理方法及系统 |
CN117575582B (zh) * | 2024-01-16 | 2024-03-22 | 成都理工大学 | 一种面向商户的财务支付系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103873255A (zh) * | 2014-03-03 | 2014-06-18 | 杭州电子科技大学 | 一种基于可信第三方的电子合同离线签署方法 |
CN112001819A (zh) * | 2020-08-21 | 2020-11-27 | 山东商务职业学院 | 一种小型便携式防错乱国际贸易合同扫描装置及方法 |
CN112233007A (zh) * | 2020-10-15 | 2021-01-15 | 中山大学 | 一种云计算环境下的加密图像水印嵌入方法 |
CN112712058A (zh) * | 2021-01-15 | 2021-04-27 | 深圳市悦创进科技有限公司 | 一种字符识别提取方法 |
CN112861865A (zh) * | 2021-01-29 | 2021-05-28 | 国网内蒙古东部电力有限公司 | 一种基于ocr技术的辅助审计方法 |
CN112884746A (zh) * | 2021-02-22 | 2021-06-01 | 青岛星科瑞升信息科技有限公司 | 一种基于边缘形状匹配的字符缺陷智能检测算法 |
CN113536757A (zh) * | 2021-07-30 | 2021-10-22 | 广东粤财金融云科技股份有限公司 | 一种基于参数模板的电子合同生成签署方法、装置及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100477656B1 (ko) * | 2002-07-27 | 2005-03-22 | 삼성전자주식회사 | 디지털 화질 개선 방법 및 장치 |
CN104616009B (zh) * | 2015-02-13 | 2018-05-18 | 广州广电运通金融电子股份有限公司 | 一种字符切割识别方法 |
CN108615034A (zh) * | 2017-12-14 | 2018-10-02 | 燕山大学 | 一种模板匹配与神经网络算法结合的车牌识别方法 |
CN109800752B (zh) * | 2018-08-09 | 2022-01-07 | 辽宁工业大学 | 一种基于机器视觉的汽车车牌字符分割识别算法 |
-
2022
- 2022-07-29 CN CN202210909757.7A patent/CN114998922B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103873255A (zh) * | 2014-03-03 | 2014-06-18 | 杭州电子科技大学 | 一种基于可信第三方的电子合同离线签署方法 |
CN112001819A (zh) * | 2020-08-21 | 2020-11-27 | 山东商务职业学院 | 一种小型便携式防错乱国际贸易合同扫描装置及方法 |
CN112233007A (zh) * | 2020-10-15 | 2021-01-15 | 中山大学 | 一种云计算环境下的加密图像水印嵌入方法 |
CN112712058A (zh) * | 2021-01-15 | 2021-04-27 | 深圳市悦创进科技有限公司 | 一种字符识别提取方法 |
CN112861865A (zh) * | 2021-01-29 | 2021-05-28 | 国网内蒙古东部电力有限公司 | 一种基于ocr技术的辅助审计方法 |
CN112884746A (zh) * | 2021-02-22 | 2021-06-01 | 青岛星科瑞升信息科技有限公司 | 一种基于边缘形状匹配的字符缺陷智能检测算法 |
CN113536757A (zh) * | 2021-07-30 | 2021-10-22 | 广东粤财金融云科技股份有限公司 | 一种基于参数模板的电子合同生成签署方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN114998922A (zh) | 2022-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114998922B (zh) | 一种基于格式模板的电子合同生成方法 | |
RU2452014C2 (ru) | Способ и устройство для обеспечения защиты документов | |
CN103761799B (zh) | 一种基于纹理图像特征的票据防伪方法和装置 | |
RU2477522C2 (ru) | Способ и устройство для обеспечения безопасности документов | |
US8483427B2 (en) | System and method for image authentication | |
WO2018103755A1 (zh) | 组合二维码,电子证书载体,生成、识读装置及方法 | |
CN108961138B (zh) | 水印数据的嵌入及提取方法 | |
US8595503B2 (en) | Method of self-authenticating a document while preserving critical content in authentication data | |
US20200412906A1 (en) | Method of Embedding and Extracting Watermark Data | |
CN109840875A (zh) | 一种防伪水印生成方法、装置、电子设备和存储介质 | |
CN115293311B (zh) | 基于微点码的彩色水印防伪方法和装置 | |
CN111461751A (zh) | 基于区块链的房产信息链上组织方法、历史状态追溯方法及装置 | |
CN112508145A (zh) | 电子印章生成及验证方法、装置、电子设备及存储介质 | |
CN114997352A (zh) | 基于点阵的防伪溯源码的生成及校验方法 | |
CN113570387A (zh) | 基于区块链的艺术品溯源方法及电子设备 | |
CN104182882B (zh) | 一种产品数字水印防伪防窜货系统及其应用方法 | |
CN114781007A (zh) | 基于树的文档批量签名及验签方法、系统 | |
Chhajed et al. | Applying decision tree for hiding data in binary images for secure and secret information flow | |
Sharifzadeh et al. | Convolutional neural network steganalysis's application to steganography | |
Villán et al. | Tamper-proofing of electronic and printed text documents via robust hashing and data-hiding | |
CN113901883A (zh) | 基于深度学习的印章识别方法、系统及存储介质 | |
CN116822623B (zh) | 一种生成对抗网络联合训练方法、装置、设备及存储介质 | |
Rajapashe et al. | Multi-format document verification system | |
CN117217773A (zh) | 一种用于智能冷库的防伪溯源管理系统 | |
Xie et al. | Low-cost anti-copying 2D barcode by exploiting channel noise characteristics |
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 |