【OCR】合同上批量贴印章

一、需求

OCR算法在处理合同等文件时,会由于印章等遮挡导致文本误识别。因此在OCR预处理时,有一个很重要的步骤是"去除印章"。其中本文主要聚焦在"去除印章"任务中的数据构建步骤:"合同+伪印章"的数据构建。下面直接放几张批量合成后效果。

二、原理实现

合成合同印章的步骤有三个"随机"需要控制。1.印章样式需要"随机";2.印章"随机"角度、位置贴在合同上的;3.合同版面色泽需要"随机"。

2.1 随机印章样式

我采用的是第三方接口,这里借鉴了这位大佬方法二的思路:【Python】实现公章自动化生成以及自动盖章效果-CSDN博客,实现批量生成。主要的调用思路是,通过调用第三方印章生成网址跑批生成。

python 复制代码
def func_get_stamp_png(name,use,seal_type):
	# 定义API的地址
	out_put_name =  os.path.join(seal_output_path,name+".png")
	url = "http://www.yinzhang8.com.cn/seal/index.php?name={}&str={}&type={}".format(str(name),str(use),str(seal_type))
	# 发送HTTP请求
	response = requests.get(url)
	assert response.status_code == 200
	assert 1<=types<=4
	# 将返回的二进制数据保存为本地文件
	with open(out_put_name, "wb") as f:
		f.write(response.content)

然而第三方网址需要公司名,这里我采用的是faker库,随机生成公司名然后去调用跑批。代码如下。这里公司长度一般在[8,11]字长范围较合适

python 复制代码
    #批量随机生成公司名
    def get_faker_company(self,n,control_len):
        # 一般公司名的字长范围为,限制 control_len = [8,11]
        from faker import Faker
        my_fake = Faker("zh-CN")
        comany_list = set()
        while len(comany_list) < n:
            tmp_company = my_fake.company()
            if control_len[0]<=len(tmp_company)<=control_len[1]:
                comany_list.add(tmp_company)
        return list(comany_list)

2.2 随机印章位置角度

在贴上合同的时候,需要用PIL的paste函数中的position来实现控制位置,随机角度需要采用PIL.Image库首先将印章完成旋转,然后再贴上去。部分代码如下。

python 复制代码
 # 随机选择一个倾斜角度
angle = random.randint(-15, 15)
watermark = watermark.rotate(angle)
python 复制代码
# 计算印章可以放置的位置范围
x_range = [int(doc_width * 0.2),int(doc_width * 0.8)]
y_range = [int(doc_height * 0.5),int(doc_height * 0.9)]
# 随机选择一个位置
x_position = random.randint(x_range[0], x_range[1])
y_position = random.randint(y_range[0], y_range[1])
watermark = watermark.resize((int(doc_width*0.1),int(doc_height*0.1)))
# 将水印添加到基本图像
base_image.paste(watermark, (x_position,y_position), watermark)

2.3 随机合同样式

这部分考虑到,由于是做图像复原任务,所以在torch里做比较好,对image和label做同一个转换,就能保持图像前后的一致性。

三、秀效果

随便贴张图,展现效果。全部源码传送门:coming soon。

相关推荐
AI人工智能+14 小时前
机动车登记证识别技术通过计算机视觉与深度学习实现证件信息自动化提取,显著提升车辆管理效率
深度学习·计算机视觉·自然语言处理·ocr·机动车登记证识别
AI人工智能+2 天前
银行回单识别系统通过融合计算机视觉、深度学习和自然语言处理技术,实现了财务凭证的智能化处理
人工智能·深度学习·ocr·银行回单识别
我不介意孤独3 天前
面向华为昇腾 NPU 的企业级 PaddleOCR 推理服务,支持多卡多实例动态扩缩容、高召回 OCR 与生产级部署。
服务器·华为·ocr
合合技术团队4 天前
海外发票智能解析:跨版式、多税制票据的自动化处理方案(附GitHub项目地址)
运维·自动化·github·ocr
OCR_133716212755 天前
证件日期防伪核验技术解析:AI+OCR助力多场景精准验真
人工智能·ocr
AI人工智能+5 天前
一种基于深度学习的表格识别技术,通过融合计算机视觉、图神经网络和Transformer等算法,能精准解析复杂表格结构
深度学习·计算机视觉·ocr·表格识别
HyperAI超神经5 天前
在线教程丨单卡即可爆改,面壁智能等开源MiniCPM-V-4.6,1.3B端侧模型支持图像理解/视频理解/OCR/多轮多模态对话
人工智能·ai·ocr
AI人工智能+5 天前
营业执照识别技术通过计算机视觉与人工智能技术,实现企业证照信息的自动化采集
人工智能·深度学习·ocr·营业执照识别
ZHW_AI课题组5 天前
Python调用腾讯API实现车辆号牌识别
python·ocr·腾讯云·api调用
深圳市快瞳科技有限公司6 天前
医疗票据OCR:打通对接壁垒,搞定信息抽取与规则适配
ocr