# PaddleOCR-VL 合并单元格表格识别：检查多级表头、数字零与空单元格归属

## 实际范围

PaddleOCR 代码 Apache-2.0，模型及依赖许可另核；需相应运行时和权重。本站未运行 VL 推理。

已实际执行：原创输入生成、PDF渲染、文件哈希/教材事实检查与两条故意错误拒绝。人工reference-manual.json不冒充目标工具输出；actual-template.json为空模板，不能视为实际结果。

## 使用

```bash
python3 verify.py
python3 verify.py --actual my-observation.json
```

默认材料检查使用Python标准库；可选的--pdf深度检查需要pypdf，且只接受本题定义的PDF契约。不连接任何外部服务或数据库。--actual检查你填写的规范化事实记录，不自动识别任意工具原生导出；仍须逐项回读原生输出。

## 七步操作

1. 确认多级表头与缺值

source.pdf 和 table-input.png 展示同一张原创表。设备跨两行，A/B 组各跨两列；温度计A组是数字0，记录仪B组数量是空值。

2. 选择自己的硬件路径

按官方 VL 使用文档选择 CPU、Apple Silicon 或匹配 GPU 的安装方案。记录 PaddleOCR 包和 VL-1.6 权重版本；不能把 NVIDIA Docker 命令直接用于 Mac。

3. 执行一页实际识别

上传这张表或解析 source.pdf 的单页，保存原始识别结果、区域图与参数。本包仅生成输入和人工结构参考，未运行 PaddleOCR-VL。

4. 把实际HTML表渲染出来

找到实际结果中的 HTML 表，另存为 my-table.html 并在浏览器打开。核对 rowspan/colspan，而不是只看提取的文字按顺序是否齐全。

5. 逐格对照零与空值

把两组各两个子列对应回设备行；0不能自动替换为空，未提供也不能补成0。若合并表头结构错，先保留错表再人工修正，分别标记。

6. 导出规范化观察

将实际表头跨度和三行单元格填入 actual-template.json，按原始类型保留数字与 null。脚本检查本题归属和缺值，不宣称理解任意 HTML。

7. 保存原生输出与负例

运行两条负例，确认空值/零混淆与表头跨度错误会被拒绝。截图应包含自己真实表格，官方说明图只定位步骤。

## 原创与图片身份

source.pdf及数据文件是本站原创虚构教材。页面官方截图只说明工具入口；人工真值图与材料核验图都注明身份，未生成目标软件的假界面或假模型结果。

## 官方依据

- VL 使用与硬件方案: https://github.com/PaddlePaddle/PaddleOCR/blob/main/docs/version3.x/pipeline_usage/PaddleOCR-VL.en.md
- 官方 VL-1.6 模型卡: https://huggingface.co/PaddlePaddle/PaddleOCR-VL-1.6
