table-transformer-structure-recognition-v1.1-all 是基于 Table Transformer 的表格检测与结构识别模型,能够在文档图像中检测表格区域并识别表格结构。该模型基于 DETR (Detection Transformer) 架构,适用于处理各种复杂表格。
table-transformer-structure-recognition-v1.1-all-ascend/
├── inference.py # 推理测试脚本
├── test.log # 测试日志
├── README.md # 本文档source /usr/local/Ascend/ascend-toolkit/set_env.sh模型文件位于 /opt/atomgit/mxy/table-transformer-structure-recognition-v1.1-all/microsoft/table-transformer-structure-recognition-v1___1-all/ 目录下:
pip install transformers torch_npu pillow numpy运行推理脚本进行表格检测:
cd /opt/atomgit/mxy/table-transformer-structure-recognition-v1.1-all-ascend/
python3 inference.py
python3 inference.py --mode inference运行精度对比测试:
cd /opt/atomgit/mxy/table-transformer-structure-recognition-v1.1-all-ascend/
python3 inference.py --mode precision_test| 参数 | 说明 | 默认值 |
|---|---|---|
--mode | 测试模式: all, inference 或 precision_test | all |
| 指标 | 实测值 | 阈值 | 状态 |
|---|---|---|---|
| 最大相对误差 | 0.0212% | < 1.00% | PASS |
| CPU 推理时间 | 1.201s | - | - |
| NPU 推理时间 | 0.048s | - | - |
| 加速比 | 25.07x | > 1x | PASS |
输入: 文档图像 (480x640)
输出:
import torch
from PIL import Image
from transformers import AutoImageProcessor, TableTransformerForObjectDetection
MODEL_DIR = "/opt/atomgit/mxy/table-transformer-structure-recognition-v1.1-all/microsoft/table-transformer-structure-recognition-v1___1-all"
processor = AutoImageProcessor.from_pretrained(MODEL_DIR)
model = TableTransformerForObjectDetection.from_pretrained(MODEL_DIR)
model = model.to("npu:0").eval()
image = Image.open("document.jpg").convert("RGB")
inputs = processor(images=image, return_tensors="pt")
inputs = {k: v.to("npu:0") for k, v in inputs.items()}
with torch.no_grad():
outputs = model(**inputs)
logits = outputs.logits
pred_boxes = outputs.pred_boxes
print(f"Detected {logits.shape[1]} table instances")| 组件 | 说明 |
|---|---|
| backbone | ResNet 特征提取器 |
| transformer | DETR Transformer |
| class_embed | 类别预测头 |
| bbox_embed | 边界框预测头 |
从 config.json 提取的关键参数:
{
"hidden_size": 256,
"d_model": 256,
"decoder_attention_heads": 8,
"decoder_ffn_dim": 2048,
"decoder_layers": 6,
"encoder_attention_heads": 8
}A: 检查 NPU 驱动是否正确安装。Table Transformer 模型在 CPU 和 NPU 上的数值误差极小(< 0.03%),远低于 1% 阈值。
A: NPU 相比 CPU 有显著加速(25x),适合批量处理场景。
A: 可以根据 logits 的置信度进行过滤,只保留高置信度的检测结果。
本项目遵循 Apache-2.0 许可证