# OCR + Vision 双引擎校对流程 (跃龙路经验 0703)

## 问题背景
扫描件PDF用ocrmypdf提取的文字有大量识别错误：
- 数字被乱码覆盖（如金额行变成 `SH CAL bi` 等）
- 合同条款编号错位
- 签章区域干扰正文识别
- "扫描全能王"水印被当正文

## 推荐流程

### Step 1: OCR提取（作为初始底稿）
```bash
ocrmypdf --force-ocr -l chi_sim+eng --sidecar /tmp/XXX-ocr.txt input.pdf output.pdf
```

### Step 2: PDF转图片（逐页）
```python
import fitz
doc = fitz.open('input.pdf')
for i in range(len(doc)):
    page = doc[i]
    pix = page.get_pixmap(dpi=200)
    pix.save(f'/tmp/XXX-p{i+1}.png')
```

### Step 3: Vision逐页核实（关键数据页）
- 优先核实：金额页（租金标准/各年租金/押金/物业费）
- 明确问题：指定需要逐字抄写的数据类型
- 每页一个vision_analyze调用，问题要具体

### Step 4: 数学交叉验证
验算所有可推导的数字关系：
- 年递增：base × (1+rate)^(n-1) = 第n年租金
- 免租分摊：总额 ÷ 年数 = 每年减免
- 减免后 = 合同租金 - 年减免额
- 单价反推：年总额 ÷ 365 ÷ 面积 = 元/㎡/天
- 物业费：单价 × 面积 × 12 = 年总额

### Step 5: 整理md全文
- 以vision核实的数据为准（非OCR原始文本）
- 保留合同结构（条款编号+标题）
- 签章信息如实记录（印章文字、编号）
- 空白/未填写项标注"（未填写）"
- 文件存放：同一文件夹，命名格式 `XXX合同_全文.md`

## OCR常见错误类型（跃龙路实例）
| 原文 | OCR错误 |
|------|---------|
| 崇川区 | 贮川区 |
| 范存益 | 无法识别 |
| 6230520420020988877 | 6930520420020988877 |
| 361017.12 | 3610417.142 |
| 平方米 | FAK |
| 乙方 | EM |
| 续租 | SA |

## 效率提示
- 6页以内的合同：全部逐页vision（最可靠）
- 6页以上：OCR为底稿 + 关键数据页vision + 数学验算
- 所有金额/日期/面积/费率必须经vision确认，不能只信OCR
