TableDETR:表格结构识别(图片 → HTML/Excel 结构 + 单元格坐标)产品系统Vibe Coding

我要开发同款
proginn15371774472026年11月11日
4阅读

技术信息

语言技术
Python、Torch
系统类型
算法模型
行业分类
人工智能、工业互联网
参考价格
2000
演示地址
https://github.com/liuq789/tabledetr-otsl

作品详情

行业场景

金融、医疗、科研、财税这些文档密集的行业里,真正有价值的信息大多长在表格里,比如财报附注、研报数据、论文实验结果、检验报告单、银行流水。这类表格转成 Excel 或者写进数据库时,普通 OCR 只能给出「文字 + 坐标」,回答不了「这一格属于哪一行哪一列、有没有跨行跨列」,结果就是数据错位、没法入库、RAG 检索出来的语义也是错的。更麻烦的是占多数的无线表格(三线表)连一条竖线都没有,传统「线检测 + 交点切分」在这类表上直接失效。这个项目的目标就是把一张表格图片一次性还原成带行列关系、带合并单元格的结构化结果,让下游系统能像读原生 Excel 一样读扫描件。

功能介绍

项目由五个模块组成:

① 结构识别:输入任意表格图片,一次前向输出整条结构标签序列和每个单元格的边界框,直接重建出带 rowspan/colspan 的 HTML 表格;

② 坐标输出:每个单元格的 bbox 都反算回原图像素,可以直接裁图做逐格 OCR;

③ 结构化导出:同时产出一份 JSON(记录行列、合并、坐标和置信度)、一张可视化框图,以及一份可以还原的 HTML/Word 表格;

④ 训练监控台:在浏览器里启停训练、看实时曲线、横向对比多组实验,不用再盯着命令行;

⑤ 数据管线:把 PubTabNet 原生的 HTML 标注现场转换成标签序列,并提供逐字符一致性校验工具,保证「标注 → 标签 → 网格 → HTML」这条链路可逆、可复现。

项目实现

我独立负责全流程:从数据管线、模型设计、训练调参到推理封装和可视化,完整跑通「数据 → 标签 → 训练 → 推理 → 还原」整个流程。

技术栈:Python、PyTorch、ResNet34 主干、DETR 式非自回归解码、2D 正弦位置编码、HTML/Word 表格重建。

架构:896 的输入图像先经过 ResNet34(步长 /32,得到 784 个视觉 token),加上 2D 正弦位置编码后,交给 500 个可学习 query 并行解码(2 层共享加双支路分叉),再输出 500×8 的结构标签和 500×4 的框。不做自回归,不逐 token 递归,一次前向就出全部结果。

亮点:① 把原 TableMaster 的 43 类 token 体系(里面含 colspan=“2” 这种带数字参数的 token)压缩成 8 类纯网格标签,合并信息改用 span、lcel、ucel、xcel 在空间上的分布来隐式表达,序列长度严格等于 rows×(cols+1)+1,可以直接 reshape 成网格;② 在同数据、同参数、同 epoch 的对照实验里,标签简化后「整表结构全对」从 51.50% 提升到 56.50%,框命中率从 53.76% 提升到 68.15%;③ 损失只在有效位置计算(CE + L1 + GIoU),权重用 strict=True 加载,配置在启动时就校验,保证实验可复现。

难点:无线表格的边界不在像素上,而在语义里;并且 53% 的单元格宽度不到输入图的 5%,降采样之后边界被平均掉,这是框不准的物理根源,光靠加大模型解决不了。合并区的左上角定位,以及 lcel、xcel 的混淆,是目前主要的错误来源。

项目链接:github.com/liuq789/tabledetr-otsl

示例图片

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论