当前位置: 首页 > news >正文

本地离线批量 OCR 实战:证件、发票、铭牌一键提取结构化信息

大家好,这里是办公智能体广场。日常办公中,身份证、营业执照、增值税发票、设备铭牌等图片,经常需要录入系统或整理成表格。手动一行行抄录不仅麻烦,还容易出错,尤其是姓名、号码、地址、型号参数这类内容,只要错一位,后面就得重新检查。

今天就介绍一个非常简单的方法:图片识别提取支持本地离线运行,断网也能用,数据不出本机。选好场景并上传图片后,就能按字段快速输出结构化信息,适合证件录入、票据归档、铭牌参数采集等常见办公场景。

一、需求分析

小编这里就举一个身份证信息提取的案例,注意,本文介绍的方案不仅仅只是身份证,任意图片都可以提取。只拿身份证一个场景讲例子。

有200多个身份证照片, 现在需要进行识别提取“姓名”,“性别” 等信息到Excel表格。照片也有横着拍的,竖着拍的。如下照片:

提取后生成一个总xlsx文档,内容如下:

结果表里面除了有身份证信息列,还会自动新增两列:

  • 图片列:原始图片的路径。

  • OCR准确率:这个也就是图片的模糊度,有些图片可能很模糊,那识别就可以准确度不高,这个值越低,就表示图片越模糊!!!

二、实现方案一:小白上手

打开鲸闲办公智能体广场,找到 “图片识别提取”,如图:

注意,可断网使用!!!

获取: 宫中&浩气: “老罗软件”。然后将身份证图片输入,还有选择具体的提取场景,如下:

点击提取场景 “身份证” , 就会自动带出提示词到输入框,然后点击执行即可。

提取的字段是可以修改的,改提示词就可以。 比如内置好的身份证提示词如下:

这是中国居民身份证信息提取任务。提取字段和规则如下: ## 姓名 人像面左侧偏上区域的 2-4 个汉字人名。OCR 若把标签与人名粘在同一行,只保留人名。无法辨认则留空。 ## 性别 只允许返回「男」或「女」其中一个字,不要输出标签或其它说明。 ## 民族 民族称谓,如「汉」「回」「蒙古」。只取民族名本身,优先与证件原文一致。 ## 出生日期 年月日信息,尽量与证件原文一致,如「1986年12月11日」。若 OCR 月份>12 或日期>31,可对照下方 18 位号码第 7-14 位(YYYYMMDD)修正。仍无法确认则留空。 ## 住址 完整户籍地址,OCR 常分多行,合并为一行,保留省市区街道门牌号,去掉标签词和多余空格。 ## 公民身份号码 18 位号码,末位可为 X。只含 0-9 和 X,无空格标点。少于 18 位或含非法字符则留空。

“##”号 后面的就是要提取的字段名称(Excel结果文件的列名称),下面的就是该字段的解释。

内置的提示词还有很多,如下:

如果你有特殊的提取场景, 但是系统内置的又没有, 你也可以直接打开网页版DeepSeek 索要提示词,将我们内置的例子给一个就行了,比如:

提取速度介绍

小编测试200多个身份证,提取速度平均 “6秒”一张, 在离线ocr软件中,算是很快了。

三、实现方案二:Python脚本

用 Python 来批量处理图片并进行 OCR 识别,其实也是个很不错的选择,尤其适合那些经常要整理证件照片、票据截图、表单扫描件、标签铭牌,或者需要批量提取图片文字内容的朋友。

优势:

- 可以批量处理大量图片文件,效率很高
- 能按文件夹自动分组识别,适合一批一批整理材料
- 可以把识别结果统一导出为 txt、json、Excel 等格式
- 逻辑可定制,后续想改识别规则或增加字段提取也比较方便
- 免费开源,无需额外购买软件
- 支持断网运行,数据始终保存在本地,更安全


劣势:

- 需要一定的 Python 基础
- 第一次使用需要安装依赖库
- 如果图片质量较差、内容排版复杂,识别结果可能需要人工校对
- 如果还要做复杂字段提取、表格还原、版面分析,脚本调试会花一些时间
这里我给大家分享一个简单的 Python 脚本,可以把总目录下不同子文件夹中的图片分别进行 OCR 识别,并按文件夹输出对应的识别结果文件:

import os import json from paddleocr import PaddleOCR # 总目录,里面每个子文件夹会单独识别 input_root = r"path\to\your\folders" # 输出目录 output_root = r"path\to\your\output" # 如果输出目录不存在则创建 if not os.path.exists(output_root): os.makedirs(output_root) # 支持的图片格式 image_exts = (".jpg", ".jpeg", ".png", ".bmp", ".webp", ".tiff") # 初始化 OCR ocr = PaddleOCR(use_angle_cls=True, lang="ch") def run_ocr_on_image(image_path): result = ocr.ocr(image_path, cls=True) lines = [] raw_items = [] if result and result[0]: for item in result[0]: box, (text, score) = item text = str(text).strip() if not text: continue lines.append(text) raw_items.append({ "text": text, "score": float(score), "box": box }) return { "file_name": os.path.basename(image_path), "full_text": "\n".join(lines), "items": raw_items } def process_folder(folder_path, output_root): folder_name = os.path.basename(folder_path) image_files = [ f for f in os.listdir(folder_path) if f.lower().endswith(image_exts) ] image_files.sort() if not image_files: print(f"跳过空文件夹:{folder_path}") return txt_output_path = os.path.join(output_root, f"{folder_name}.txt") json_output_path = os.path.join(output_root, f"{folder_name}.json") txt_parts = [] json_results = [] for file_name in image_files: image_path = os.path.join(folder_path, file_name) print(f"识别中:{image_path}") ocr_result = run_ocr_on_image(image_path) json_results.append(ocr_result) txt_parts.append(f"===== {file_name} =====") txt_parts.append(ocr_result["full_text"]) txt_parts.append("") with open(txt_output_path, "w", encoding="utf-8") as f: f.write("\n".join(txt_parts)) with open(json_output_path, "w", encoding="utf-8") as f: json.dump(json_results, f, ensure_ascii=False, indent=2) print(f"已输出:{txt_output_path}") print(f"已输出:{json_output_path}") # 遍历总目录下所有子文件夹 for folder_name in os.listdir(input_root): folder_path = os.path.join(input_root, folder_name) if not os.path.isdir(folder_path): continue process_folder(folder_path, output_root) print("所有文件夹处理完成!")

使用时,先准备一个总目录,把每一组待识别的图片分别放进不同的子文件夹中。然后修改脚本中的输入路径和输出路径,运行后就可以按文件夹自动完成 OCR 识别,并分别生成对应的识别结果。

脚本不会修改原始图片,只会在输出目录生成新的识别结果文件,适合批量整理证件图片、票据照片、表单扫描件、标签铭牌等 OCR 材料。

不过,Python 脚本更适合有一定编程基础的用户;如果只是偶尔处理,或者希望操作更省心,那么前面的离线 OCR 方案和智能识别方案会更方便。

四、总结

面对大量图片文字提取、证件识别、票据识别、标签识别等需求,手动一张张上传、一张张复制内容,不仅效率低,还很容易出错。无论是离线 OCR 工具、OCR AI 自动识别,还是 Python 脚本,本质上都是用工具替代重复劳动。想省心省事,可以直接用离线 OCR 方案;想通过文字描述需求完成识别和整理,可以用 OCR AI 自动化;如果需要更强的批量处理和自定义能力,也可以选择 Python 脚本。选对方法之后,原本繁琐的图片文字整理工作,就能更快、更规范地完成。

http://www.jsqmd.com/news/1090582/

相关文章:

  • 如何在Amlogic电视盒上安装Debian系统:2025年终极开源解决方案
  • 如何用AI瞄准助手Aimmy快速提升游戏水平:终极配置指南
  • 英雄联盟皮肤库终极指南:一站式获取所有官方皮肤与炫彩资源
  • 3分钟掌握Chrome画中画扩展:免费提升多任务效率的终极指南
  • 重塑硬件价值:OpenCore Legacy Patcher如何让老Mac重获新生
  • 惠普暗影精灵性能控制终极指南:OmenSuperHub开源工具完全解析
  • 大数据专业课难度高?挂科率到底什么水平?过来人告诉你!
  • Web3 漏洞复盘:Verus 跨链桥 1158 万美元“数据结构错位“事件
  • Plus 到底值不值 20 美金?
  • Android13文件访问权限重构:从MANAGE_EXTERNAL_STORAGE到细粒度媒体权限的实战解析
  • Superpowers - 编码Agent 工程技能插件集详细介绍
  • 【硕博生必看 | 会议征稿通知 | 双一流高校主协办 | 权威出版社出版 | EI 、Scopus稳定检索 | 另合作期刊推荐】2026年8月国际学术会议列表清单 | 2026年8月全领域学术会议速览
  • 如何将Amlogic电视盒变身高性能Linux服务器:2025终极开源方案
  • 抖音去水印终极指南:5分钟搭建你自己的无水印视频解析工具
  • 变频器与伺服系统的噪声战争:02 PWM为什么像一把高速砍刀?
  • 服务注册与发现:Eureka, Nacos, Consul
  • AI模型能力发布机制解析:从 gated release 到可控部署实践
  • BiliTools跨平台工具箱:高效管理哔哩哔哩资源的完整解决方案
  • Legacy iOS Kit深度解析:旧款iOS设备降级与越狱的终极解决方案
  • 跨平台B站视频下载解决方案:BilibiliDown一站式离线工具
  • 高效AI专著生成方案:4款AI工具推荐,快速搞定20万字专著写作!
  • 5分钟精通AMD Ryzen处理器调试:SMUDebugTool终极指南
  • 如何快速捕获网页媒体资源:猫抓浏览器扩展完整使用指南
  • 深度学习优化
  • ESP32 C3开发实战 -7(BLE加密连接Bond)
  • 时光回溯:为互联网记忆打造的数字保险箱
  • upload-labs靶场通关实战:20种文件上传漏洞的深度剖析与利用
  • 终极指南:3分钟解决Windows软件运行库依赖问题
  • 认知颠覆型:别只看排行!一文揭秘oem卫浴五金洁具工厂真实实力
  • NifSkope深度探索:解锁游戏模型编辑的无限可能