PICK-pytorch 项目使用教程
1. 项目介绍
PICK-pytorch 是一个基于 PyTorch 的开源项目,旨在通过改进的图学习-卷积网络(Graph Learning-Convolutional Networks)处理文档中的关键信息提取(Key Information Extraction, KIE)。该项目在 ICPR 2020 上发表的论文 "PICK: Processing Key Information Extraction from Documents using Improved Graph Learning-Convolutional Networks" 中首次提出。
PICK 框架通过结合图学习和图卷积操作,能够有效且鲁棒地处理复杂文档布局,提取关键信息。它不仅考虑了文本和视觉特征,还结合了全局布局信息,从而生成更丰富的语义表示。
2. 项目快速启动
2.1 环境准备
首先,确保你的环境中安装了以下依赖:
python = 3.6
torchvision = 0.6.1
tabulate = 0.8.7
overrides = 3.0.0
opencv_python = 4.3.0.36
numpy = 1.16.4
pandas = 1.0.5
allennlp = 1.0.0
torchtext = 0.6.0
tqdm = 4.47.0
torch = 1.5.1
你可以通过以下命令安装这些依赖:
pip install -r requirements.txt
2.2 下载项目
使用 Git 克隆项目到本地:
git clone https://github.com/wenwenyu/PICK-pytorch.git
cd PICK-pytorch
2.3 配置文件
在 config.json
文件中配置训练参数,例如数据集路径、模型参数等。
2.4 启动训练
使用以下命令启动分布式训练:
bash dist_train.sh
或者,如果你只想在单个 GPU 上进行训练,可以使用以下命令:
python train.py -c config.json -d 0 -dist false
2.5 测试模型
训练完成后,你可以使用以下命令进行测试:
python test.py --checkpoint path/to/checkpoint --boxes_transcripts path/to/boxes_transcripts --images_path path/to/images_path --output_folder path/to/output_folder --gpu 0 --batch_size 2
3. 应用案例和最佳实践
3.1 文档理解
PICK-pytorch 可以应用于各种文档理解任务,如发票、合同、表格等文档的关键信息提取。通过训练自定义数据集,可以实现对特定类型文档的高效信息提取。
3.2 数据准备
在 data
目录下准备你的数据集,确保数据格式符合项目要求。具体格式可以参考 data/README.md
文件中的说明。
3.3 自定义训练
你可以通过修改 config.json
文件中的参数来定制训练过程,例如调整学习率、批量大小等。
4. 典型生态项目
4.1 DocBank
DocBank 是一个大规模的文档理解数据集,PICK-pytorch 提供了在 DocBank 数据集上的训练示例。你可以参考 examples/DocBank/README.md
文件了解更多细节。
4.2 EATEN
EATEN 是一个用于文档信息提取的数据集,PICK-pytorch 也支持在该数据集上的训练和测试。你可以通过下载 EATEN 数据集并按照项目要求进行数据准备和训练。
通过以上步骤,你可以快速上手 PICK-pytorch 项目,并将其应用于各种文档信息提取任务中。