用花瓣网站上的图片做游戏行吗,网站后台更新缓存失败,网站推广方案计划书,tp5做企业网站一、需求 OCR算法在处理合同等文件时#xff0c;会由于印章等遮挡导致文本误识别。因此在OCR预处理时#xff0c;有一个很重要的步骤是“去除印章”。其中本文主要聚焦在“去除印章”任务中的数据构建步骤#xff1a;“合同伪印章”的数据构建。下面直接放几张批量合成后效果…一、需求 OCR算法在处理合同等文件时会由于印章等遮挡导致文本误识别。因此在OCR预处理时有一个很重要的步骤是“去除印章”。其中本文主要聚焦在“去除印章”任务中的数据构建步骤“合同伪印章”的数据构建。下面直接放几张批量合成后效果。 二、原理实现 合成合同印章的步骤有三个“随机”需要控制。1.印章样式需要“随机”2.印章“随机”角度、位置贴在合同上的3.合同版面色泽需要“随机”。
2.1 随机印章样式 我采用的是第三方接口这里借鉴了这位大佬方法二的思路【Python】实现公章自动化生成以及自动盖章效果-CSDN博客实现批量生成。主要的调用思路是通过调用第三方印章生成网址跑批生成。
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 200assert 1types4# 将返回的二进制数据保存为本地文件with open(out_put_name, wb) as f:f.write(response.content)
然而第三方网址需要公司名这里我采用的是faker库随机生成公司名然后去调用跑批。代码如下。这里公司长度一般在[8,11]字长范围较合适 #批量随机生成公司名def get_faker_company(self,n,control_len):# 一般公司名的字长范围为,限制 control_len [8,11]from faker import Fakermy_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库首先将印章完成旋转然后再贴上去。部分代码如下。 # 随机选择一个倾斜角度
angle random.randint(-15, 15)
watermark watermark.rotate(angle)
# 计算印章可以放置的位置范围
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。