跳到主要内容

PDF识别提取专家

收藏0

PDF/图片/扫描件 OCR 提取文字转 Markdown。支持 PP-OCRv6 三档模型,适合合同、发票、中文扫描件等。灵栈搬运自 SkillHub pdf-ocr-md v3.4.0。

让 AI 安装

Minsaroun最新版本 0.1.0更新于 2026-11-04下载 0 次

references/pdf-preprocessing.md

2.6 KB查看排版效果
1# Pdf Preprocessing
2
3> 来源: pdf-ocr-md v3.3.0 SKILL.md | 从主文件拆分,保持原内容不变
4
5## D:文档预处理 — 扫描件 OCR 增强
6
7适用于质量不佳的扫描件(手机拍照、弯曲书页、倾斜/倒置的文档)。
8预处理后 PaddleOCR 的中文准确率可从 ~97% 提升到 ~98%+。
9
10### 安装
11
12```bash
13pip install opencv-python-headless numpy Pillow pdf2image
14```
15
16### CLI 命令
17
18```bash
19# 全部预处理(推荐)
20python scripts/pdf_preprocess.py input.pdf -o ./preprocessed --all
21
22# 仅倾斜校正
23python scripts/pdf_preprocess.py input.jpg -o ./output --deskew
24
25# 仅方向校正
26python scripts/pdf_preprocess.py input.jpg -o ./output --orient
27
28# 仅文档展平(弯曲/透视照片)
29python scripts/pdf_preprocess.py input.jpg -o ./output --unwarp
30
31# PDF 全页 + 高DPI
32python scripts/pdf_preprocess.py input.pdf -o ./preprocessed --all --dpi 400
33
34# 预览模式(显示对比图,不保存)
35python scripts/pdf_preprocess.py input.jpg --preview --all
36```
37
38### 预处理项说明
39
40| 预处理 | CLI 参数 | 适用场景 | 效果 |
41|--------|---------|---------|------|
42| **倾斜校正** (deskew) | `--deskew` | 扫描件轻微歪斜 (<15°) | 自动检测角度并旋转正位 |
43| **方向校正** (orient) | `--orient` | 页面旋转/倒置 | 检测文本方向并自动旋转到正位 |
44| **文档展平** (unwarp) | `--unwarp` | 手机拍的弯曲/透视变形的文档 | 自动检测边界, 透视变换展平 |
45
46### 工作流集成
47
48```bash
49# 完整管线: 预处理 → pdf2md
50python scripts/pdf_preprocess.py input.pdf -o ./preprocessed --all
51pdf2md ./preprocessed/input_p001.jpg -o ./output_dir
52
53# 对于平整扫描件, 预处理效果不大, 可跳过
54pdf2md input.pdf -o ./output_dir
55```
56
57### 预处理效果预测
58
59| 文档类型 | 建议 | 预期提升 |
60|---------|------|---------|
61| 平整扫描件 (A4 扫描仪) | 跳过预处理 | OCR 已很好, 无明显提升 |
62| 轻微歪斜 (< 15°) | `--deskew` | 准确率 +1~2% |
63| 照片 (手机拍文档) | `--deskew --unwarp` | 准确率 +3~5% |
64| 页面倒置/旋转 | `--orient` | 从乱码到正常识别 |
65| 弯曲书页 | `--unwarp` | 准确率 +2~4% |
66
67### 脚本参考
68
69预处理脚本位于 `scripts/pdf_preprocess.py`,支持作为 Python 模块导入使用:
70
71```python
72from scripts.pdf_preprocess import preprocess_image, deskew_image, unwarp_image
73import cv2
74
75img = cv2.imread('scan.jpg')
76processed = preprocess_image(img, deskew=True, orient=True, unwarp=True)
77cv2.imwrite('corrected.jpg', processed)
78
79---

文件内容是平台检查时读出的文本,只供查看。平台不会运行包里的任何脚本或程序。