# PaddleOCR 扫描图片识别：文字坐标、漏行与导出 JSON

PaddleOCR 扫描图片识别按本页输入、步骤与检查复现。本批未执行 PaddleOCR 推理；已检查原创输入与人工转录关系，模型输出和字框须自行实跑。

## 1. 保存原图与人工转录
source.png 是原创扫描练习，expected.json 是人工转录与字框示意，不是模型输出。

## 2. 按官方参数准备独立环境
在自己的独立 Python 环境按 PaddleOCR 官方安装页安装 PaddlePaddle 与 paddleocr。run-ocr.py 固定使用 CPU 和移动检测/识别模型，不开启方向分类和去畸变。首次推理需要下载模型，本批没有执行该步骤。

## 3. 运行真实 OCR 脚本
执行 run-ocr.py；脚本调用 PaddleOCR.predict 并保存官方 raw JSON 和可视化，失败时停止。

## 4. 逐行核对文字
对照原图检查 CUP-A、2、12.50 和 25.00，不自动纠正金额；缺行要回看原图。

## 5. 核对坐标与导出
先在官方输出图片上检查字框；如果坐标或行序异常，记录原始 JSON，不只导出纯文本。

## 6. 读取文件检查而非只看截图
check-output.py 从真实输出文件读取内容；删除行、调换段落或去掉空格位都应被拒绝。本批未执行 PaddleOCR 推理；已检查原创输入与人工转录关系，模型输出和字框须自行实跑。
```sh
python3 run-ocr.py
python3 check-output.py ocr-output/source_res.json
```

## 7. 保存来源与错误样本
保留 source.pdf/source.png、原始 JSON、软件版本和人工核对记录。自动结构检查只验证本教材约定，仍需检查布局与语义。