一款基于纯本地离线 OCR 推理、二代证智能透视纠偏、像素级免冠头像切片、A4 扫描件排版与 Word/Excel 图文智能套打的专业级生产力工具。无需联网、无需启动任何外部第三方服务,开箱即用,全面保障政企与个人数据隐私合规。
- 纯本地离线推理:内置轻量高效的 RapidOCR-ONNX 引擎,秒级推理,断网脱机无忧运行。
- 全要素字段提取:自动提取并校验 姓名、性别、民族、出生日期、周岁年龄、身份证号码、住址、签发机关、有效期限 9 大核心要素。
- 智能校验算法:严格执行 GB 11643-1999 二代证校验码算法;性别根据第 17 位奇偶严格计算,末位
X自动大写规范化。
- 两阶段微倾斜纠偏与边缘咬合:基于文字语义方位自动校正 90°/180°/270° 姿态,采用 Sobel 梯度极大值与物理搜索带精准剔除键盘、木纹桌面杂乱背景。
- 国标规格与平滑抗锯齿圆角:规范化至二代证 300DPI 印刷标准(
1011 × 638像素),采用 4x 超采样抗锯齿圆角(R=3.18mm),彻底消灭锯齿与黑边杂色。 - 免冠头像像素级提取:自动按国标比例精准定位卡面右侧二代证头像,支持 一键复制到剪贴板、另存为高清照片。
- 标准 A4 扫描件生成(上正下反):单人/批量一键生成符合政务与银行标准的 A4 扫描件,支持 高清彩色 与 商务复印机黑白质感。
- 防盗用半透明安全水印:支持在 A4 扫描件卡面上覆盖倾斜半透明水印(默认:“仅供办理业务使用 他用无效”,支持自定义文案),有效防止证件被挪用冒用。
- 智能人名分组配对:多张身份证照片拖拽导入,系统根据文件名规则自动识别归属并完成正反面配对(如
张三1.jpg+张三2.jpg)。 - 一图正反双面支持:一张照片内同时包含正反两面时,算法自动探测分割并拆解为标准正反卡片。
- 批量多选与快捷管理:支持
Ctrl/Shift批量多选,支持批量移除误选图片,提升大批量录入管理效率。 - 全员 A4 扫描件汇总:支持将全批次人员一键合并导出为单份高清多页 PDF 或独立专属文件夹。
- 文字与照片混合套打:在 Word/Excel 模板中只需定义简单占位符,一键生成标准人事表、档案卡或申报表。
- 台账实时追加导出:识别数据支持一键实时追加导出至统一 Excel 台账。
- 基于 CustomTkinter 打造现代化深色质感桌面界面。
- 自适应窗口记忆:自动记录关闭时的窗口大小与屏幕位置,再次启动平滑复原,彻底杜绝小屏幕下底部超出桌面的问题。
| 模块分层 | 核心技术 / 库 | 特性与用途 |
|---|---|---|
| 界面展示 (GUI) | CustomTkinter + Tkinter | 现代化自适应响应式桌面 UI,支持深色主题与平滑缩放 |
| OCR 推理引擎 | RapidOCR (ONNXRuntime) | 纯本地 CPU 轻量离线推理,零外部端口依赖,冷启动 < 1 秒 |
| 图像视觉与矫正 | OpenCV (cv2) + NumPy | 仿射旋转、Sobel 梯度边缘定位、四点透视展平、双质感渲染 |
| 图形与抗锯齿 | Pillow (PIL) | 4x 超采样圆角掩模、透明 Alpha 通道处理、免冠头像切片 |
| PDF 页面与排版 | PyMuPDF (fitz) | 高清多页 PDF 解析、A4 多页扫描件生成与矢量渲染 |
| 文档套打引擎 | docxtpl (Jinja2) + openpyxl | Word 图文混合渲染(文字 + 照片)、Excel 批量台账读写 |
| 商业授权安全 | cryptography (RSA-2048 + AES) | 硬件一机一码离线授权验证与在线解绑重置机制 |
| CI/CD 构建发布 | PyInstaller + GitHub Actions | Windows 原生单文件封装(无控制台黑框)与自动化云编译发布 |
- 下载 Release 页面发布的
IDCard_OCR_vX.X.X_Windows_x64.zip; - 解压后双击运行
身份证OCR.exe即可,无需安装任何 Python 环境与第三方依赖。
推荐使用 Python 3.10+ 环境:
git clone https://github.com/hutufeng/Auto-fillforms.git
cd Auto-fillformspip install -r requirements.txt- Windows 便捷启动:直接双击项目根目录下的
start.bat; - 命令行启动:
python run_desktop.py
- 在左侧面板选择或直接拖拽身份证照片:
- 双图模式:分别选择正面与反面;
- 单图双面模式:直接上传一张包含正反两面的照片;
- 点击 【⚡ 快速提取 (纯 OCR)】:1 秒内快速提取文字表单;
- 点击 【📸 完整识别 (含切片)】:同步生成二代证高清标准卡片、免冠头像,并激活剪贴板复制及 A4 扫描件导出功能。
- 切换至 【批量表格生成】 标签页;
- 点击 【选择图片文件夹】 或直接拖拽导入包含多人身份证的文件夹;
- 列表支持多选:支持鼠标框选、配合
Ctrl或Shift键实现多选,点击 【移除选中项】 即可快速清除误传图片; - 点击 【开始批量识别】,进度条实时显示进度,完成后可直接导出汇总 Excel 或全员 A4 扫描件。
- 点击 【🖨️ 导出此人 A4 扫描件】(或批量扫描件导出);
- 勾选 【防盗用水印】,可自由配置防挪用文字(例如:“仅供办理XX入职使用 他用无效”);
- 选择 彩色高清 或 黑白复印机 质感,点击立即生成标准 300DPI PDF 或 JPG。
在自定义 .docx 或 .xlsx 模板中放置对应占位符:
{{姓名}} {{性别}} {{民族}} {{出生日期}} {{年龄}}
{{身份证号码}} {{住址}} {{签发机关}} {{有效期限}}{{avatar}}:自动插入免冠二代证彩色头像;{{card_front}}:自动插入标准正面切片;{{card_back}}:自动插入标准反面切片。
本项目内置全自动 GitHub Actions 持续集成流:
- 打开您的 GitHub 仓库页面,点击 「Actions」;
- 选择 「Build and Release」 工作流;
- 点击右侧 「Run workflow」,输入本次发布的版本号(如
v1.0.0)及更新说明; - 构建机(
windows-latest)将自动完成依赖安装、PyInstaller 单文件封装及 ZIP 打包,并在 Releases 页面自动发布供下载。
Auto-fillforms/
├── .github/workflows/ # GitHub Actions 自动化编译发布工作流
├── assets/ # 软件图标与静态素材 (icon.ico / icon.png)
├── app_gui.py # 现代化 CustomTkinter 响应式桌面主程序
├── local_ocr.py # 纯本地 RapidOCR 推理引擎封装
├── id_scanner.py # 图像智能纠偏、边缘拟合、圆角裁切与A4排版
├── id_parser.py # OCR 文本多策略结构化解析
├── id_calculator.py # 身份证校验码、周岁、生肖与性别推算
├── id_cropper.py # 免冠头像精准切片与系统剪贴板通道
├── template_filler.py # Word/Excel 模板图文混合智能填充
├── batch_processor.py # 批量分组、多格式支持与并发调度
├── auth_manager.py # 离线硬件指纹授权与在线解绑安全模块
├── build_portable.ps1 # 本地一键打包 PyInstaller 绿色免安装版脚本
├── run_desktop.py # 桌面端原生入口
├── start.bat # Windows 一键环境自适应启动脚本
├── requirements.txt # 纯本地依赖清单
└── user_templates/ # 自定义套打模板存储目录
- 零数据外发:所有 OCR 推理、图像处理、文档生成过程完全在用户本地计算机离线运行,不调用任何公网第三方 AI 接口;
- 合规无忧:用户上传与处理的证件原图、导出数据严格保存在本地
uploads/和output/目录中,未经授权绝不上送云端。
本项目基于 MIT License 授权开源。