十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

PaddleOCR 印章识别实战指南:3 步跑通印章检测与文字提取

PaddleOCR 印章识别实战指南:3 步跑通印章检测与文字提取 PaddleOCR 印章识别实战指南3 步跑通印章检测与文字提取【免费下载链接】PaddleOCR飞桨多语言OCR工具包实用超轻量OCR系统支持80种语言识别提供数据标注与合成工具支持服务器、移动端、嵌入式及IoT设备端的训练与部署 Awesome multilingual OCR toolkits based on PaddlePaddle (practical ultra lightweight OCR system, support 80 languages recognition, provide data annotation and synthesis tools, support training and deployment among server, mobile, embedded and IoT devices)项目地址: https://gitcode.com/paddlepaddle/PaddleOCR核对合同、凭证上的印章有多麻烦做过财务审核的人都知道红章盖在正文上、圆弧文字、字迹模糊肉眼比对一份合同要几分钟上百份文件就是几个人天的活。PaddleOCR 印章识别可以自动把印章找出来、读出来直接输出印章里的公司名称和文字内容把核对时间压到几秒钟。PaddleOCR 印章识别能做什么PaddleOCR 内置了一条印章文本识别产线SealRecognition它把定位印章区域和印章文字提取两件事串在一起输入输出典型场景带印章的扫描件 / 拍照图印章位置 印章上的文字合同印章识别、盖章文件审核一整个文件夹的文档每份文件的印章识别结果批量印章识别、报销凭证批量核对弱对比度 / 褪色印章图增强后的识别文字褪色红章、浅色印泥场景3 步跑通安装、初始化、识别第一枚印章第 1 步安装先装 PaddlePaddle 框架再装 PaddleOCR两条命令pip install paddlepaddle pip install paddleocr第 2 步 第 3 步初始化产线并识别不需要自己下载模型首次运行会自动拉取。下面这段是最小可运行代码输入一张带印章的图片from paddleocr import SealRecognition pipeline SealRecognition( use_doc_orientation_classifyFalse, # 关掉方向分类 use_doc_unwarpingFalse, # 关掉扭曲矫正 ) for res in pipeline.predict(./seal.png): seal res[seal_res_list][0] print(印章文字:, seal[rec_texts]) print(置信度: , seal[rec_scores])跑通后你得到的就是结构化结果rec_texts是印章上的文字如公司名、发票专用章、编号rec_scores是每条文字的置信度。仓库里的 印章产线文档 里有完整输出说明。按场景进阶场景一批量处理文档里的印章批量印章识别不需要额外代码逻辑——predict()的输入直接换成目录路径即可产线会遍历处理for res in pipeline.predict(./contracts/): for seal in res[seal_res_list]: print(res[input_path], seal[rec_texts])⚠️ 避坑提示目录里的 PDF 不会被识别批量输入要先把 PDF 转成图片或者逐文件传入路径。场景二红色印章怎么预处理印章文字是深红印泥、背景是白纸直接送进识别模型对比度偏低的场景可以先在 HSV 空间把红色区域抠出来再识别import cv2, numpy as np img cv2.imread(seal_photo.jpg) hsv cv2.cvtColor(img, cv2.COLOR_BGR2HSV) mask cv2.inRange(hsv, (0, 50, 50), (10, 255, 255)) mask | cv2.inRange(hsv, (170, 50, 50), (180, 255, 255)) print(cv2.bitwise_and(img, img, maskmask).shape) # 只保留红色印章区域增强后的图像同样喂给predict()即可。场景三关键参数与模型怎么选跑不准时优先调下面这几个参数而不是改代码参数默认值作用seal_det_thresh0.2像素级文字阈值漏检就调低seal_det_box_thresh0.6检测框置信阈值seal_det_limit_side_len736送检测模型前的图像边长图很大时可调大layout_threshold0.5版面定位印章区域的置信阈值seal_rec_score_thresh0.0识别得分过滤误识别多时调高模型层面印章文字检测默认用轻量的PP-OCRv4_mobile_seal_det检测 Hmean 96.36%追求精度可换成PP-OCRv4_server_seal_detHmean 98.40%初始化时传seal_text_detection_model_name即可GPU 机器初始化时加devicegpu。参数和模型的详细说明可看 seal_recognition.py 的签名。常见翻车点Q为什么检测不到印章先确认输入是完整文档还是已裁好的印章。整页文档依赖版面检测定位如果版面没框出来把layout_threshold调低到 0.3 试试单枚印章图可以初始化时传use_layout_detectionFalse跳过这步。Q文字识别错字、断句圆弧上的文字被切成了多段这是正常的——rec_texts返回的就是分段结果拼接时按rec_polys的坐标顺序处理。错字多就调高seal_rec_score_thresh如 0.5过滤低分结果或换PP-OCRv5_server_rec识别模型。Q速度太慢生产环境建议上 GPUdevicegpu并关掉用不到的方向分类和矫正模块纯 CPU 场景保持默认 mobile 检测模型即可单次推理在几百毫秒级别。Q结果想落盘存档每个结果对象自带save_to_json()和save_to_img()传一个输出目录JSON 结构化结果和可视化标注图一起存好方便人工抽检。写在最后从装包到拿到印章文字核心就是一条SealRecognition产线加一次predict调用。更完整的模型列表、命令行用法和部署方式可以看仓库内的 印章产线使用教程想深入细节seal_recognition.py 里所有可调参数一目了然。【免费下载链接】PaddleOCR飞桨多语言OCR工具包实用超轻量OCR系统支持80种语言识别提供数据标注与合成工具支持服务器、移动端、嵌入式及IoT设备端的训练与部署 Awesome multilingual OCR toolkits based on PaddlePaddle (practical ultra lightweight OCR system, support 80 languages recognition, provide data annotation and synthesis tools, support training and deployment among server, mobile, embedded and IoT devices)项目地址: https://gitcode.com/paddlepaddle/PaddleOCR创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表