文献地址:LORE: Logical Location Regression Network for Table Structure Recognition
LORE-TSR的PyTorch正式实施。LORE可以通过将TSR建模为逻辑位置回归,以端到端的方式执行表结构识别(TSR)。该模型简化了TSR流程,作为一个基于关键点的类检测器框架。LORE-TSR在实现中表现出良好的效率和性能,这对未来的TSR模型有一定的借鉴意义。
1、安装
1.1、安装需求
conda create --name Lore python=3.7
conda activate Lore
pip install -r requirements.txt
1.2、安装cocoapi
git clone https://github.com/cocodataset/cocoapi.git
cd cocoapi/PythonAPI
pip install Cython
make
python setup.py install --user
1.3、从Scratch安装DCNv2
如果您想使用DLA主干,强烈建议使用基于CUDA 10.1的环境。
1.3.1 安装 CUDA
首先,安装CUDA 10.1 版本
1.3.2 安装 Torch
对应cuda 10.1版本的torch
1.3.3 安装 DCNv2
pip install Cython
chmod +x *.sh
cd src/lib/models/network/DCNv2
./make.sh
2.运行预训练模型
2.1 Pretrained Models 预训练模型
可用的模型权重(使用DLA-34主干)
Name | Backbone | Regressor Arc | Image Size | Checkpoint |
---|---|---|---|---|
ckpt_wtw | DLA-34 | 4+4 | 1024 | Trained on WTW |
ckpt_ptn | DLA-34 | 3+3 | 512 | Trained on PubTabNet |
ckpt_wireless | ResNet-18 | 4+4 | 768 | Trained on Wireless Tables* |
该模型是在SciTSR、PubTabNet和一组中文表格的组合上预训练的。
使用此模型运行demo时,请记住添加--upper_left,因为它是在不同的图像预处理流程上训练的。
另一个带有预训练检查点的实现将在ModelScope上发布,这更方便推理和应用。
2.2 Running Demo 运行demo
按照以下步骤在wireless table images无线表格图像上运行LORE:
- 下载ckpt_wireless中的预训练模型
- 添加要测试的图像文件到./input_imgs/wireless/
- 更改模型架构、模型路径和输入/输出目录等参数(Change the parameters such as model architecture, model path and input/output directory)
- 运行脚本
cd src
bash scripts/infer/demo_wireless.sh
按照以下步骤在有线表格图像wired table images上运行LORE:
- 在ckpt_wtw中下载预训练模型
- 添加要测试的图像文件到./input_imgs/wired/
- 更改模型架构、模型路径和输入/输出目录等参数
- 运行脚本
cd src
bash scripts/infer/demo_wired.sh
注意:LORE包含解析和分组机制,类似于有线表的CycleCenterNet。设置--wiz_rev参数以在推理阶段激活这样的过程。它在有线表上提供了准确的检测结果,但可能会减慢推理速度。
3 Trainning 训练
3.1 Preparing Dataset 准备数据集
标签应该转换为COCO格式,这里以WTW数据集和PubTabNet数据集的子集为例。数据集的目录如下:
data
├── WTW
│ ├── images
│ └── json
│ ├──train.json
│ └──test.json
│
└── PTN
├── images
└── json
├── train.json
└── test.json
我们为WTW(COCO标签链接)和PubTabNet(COCO标记链接)的子集提供了类COCO标签的样本。
WTW数据集的图像位于WTW数据集中。它提供了原始数据集以及将其更改为COCO格式的工具。PubTabNet数据集的图像位于PubTabNet dataset。
3.2 Training Scripts 训练脚本
按照步骤在无线表格图像上训练LORE:
- 按照前面提到的方式组织数据集,并将标签集放在LORE-TSR/data/dataset_name/json/
- 更改模型架构、数据集名称和图像目录等参数。
- 运行:
cd src
bash scripts/train/train_wireless.sh
使用以下命令在WTW数据集上训练LORE:
cd src
bash scripts/train/train_wired.sh
*我们修改了原始模型,通过去除等式2中的学习权重来稳定收敛,并使其更容易改变主干。并从conv头中收集单元格(cell)中心的特征。
4 Testing 测试
以PubTabNet为例:
- 为演示脚本设置数据集名称--dataset_name和注释路径--anno_path
- 在测试数据集上运行演示:
cd src
bash scripts/demo/demo_test.sh - 评估模型结果(记住更改模型结果目录)
bash eval.sh