Spaces:
Build error
Build error
================= | |
文档内容提取项目 | |
================= | |
简介 | |
==================== | |
文档内容提取是利用布局检测,公式检测,公式识别,OCR等模型,提取文档中的信息,并转换为markdown文本。 | |
项目使用 | |
==================== | |
在配置好环境的情况下,直接执行 ``project/pdf2markdown/scripts/run_project.py`` 即可运行文档内容提取项目。 | |
.. code:: shell | |
$ python project/pdf2markdown/scripts/run_project.py --config project/pdf2markdown/configs/pdf2markdown.yaml | |
项目配置 | |
-------------------- | |
.. code:: yaml | |
inputs: assets/demo/formula_detection | |
outputs: outputs/pdf2markdown | |
visualize: True | |
merge2markdown: True | |
tasks: | |
layout_detection: | |
model: layout_detection_yolo | |
model_config: | |
img_size: 1024 | |
conf_thres: 0.25 | |
iou_thres: 0.45 | |
model_path: models/Layout/YOLO/doclayout_yolo_ft.pt | |
formula_detection: | |
model: formula_detection_yolo | |
model_config: | |
img_size: 1280 | |
conf_thres: 0.25 | |
iou_thres: 0.45 | |
batch_size: 1 | |
model_path: models/MFD/YOLO/yolo_v8_ft.pt | |
formula_recognition: | |
model: formula_recognition_unimernet | |
model_config: | |
batch_size: 128 | |
cfg_path: pdf_extract_kit/configs/unimernet.yaml | |
model_path: models/MFR/unimernet_tiny | |
ocr: | |
model: ocr_ppocr | |
model_config: | |
lang: ch | |
show_log: True | |
det_model_dir: models/OCR/PaddleOCR/det/ch_PP-OCRv4_det | |
rec_model_dir: models/OCR/PaddleOCR/rec/ch_PP-OCRv4_rec | |
det_db_box_thresh: 0.3 | |
- inputs/outputs: 分别定义输入文件路径和输出路径 | |
- visualize: 是否对模型结果进行可视化,可视化结果会保存在outputs目录下。 | |
- merge2markdown: 是否将结果合并为markdown文档,这里只支持简单的单栏文本从上往下进行拼接,更复杂布局文档的markdown转换请参考 `MinerU <https://github.com/opendatalab/MinerU>`_ | |
- tasks: 定义任务类型,PDF文档提取包含了布局检测、公式检测、公式识别、OCR等任务 | |
- 具体每个任务和模型的参数含义请参考各任务的教程文档 | |
多样化输入支持 | |
-------------------- | |
PDF文档内容提取支持 ``单个图像/PDF文件`` 、 ``包含图像/PDF文件的目录`` 等输入形式。 | |
输出结果 | |
-------------------- | |
PDF文档提取的结果以json形式保存在 ``outputs`` 路径下,json的格式如下所示: | |
.. code:: json | |
[ | |
{ | |
"layout_dets": [ | |
{ | |
"category_type": "text", | |
"poly": [ | |
380.6792698635707, | |
159.85058512958923, | |
765.1419999999998, | |
159.85058512958923, | |
765.1419999999998, | |
192.51073013642917, | |
380.6792698635707, | |
192.51073013642917 | |
], | |
"text": "this is an example text", | |
"score": 0.97 | |
}, | |
... | |
], | |
"page_info": { | |
"page_no": 0, | |
"height": 2339, | |
"width": 1654, | |
} | |
}, | |
... | |
] | |
- layout_dets: 单页PDF或图片的内容提取结果 | |
- category_type: 单个内容块的所属内别,比如标题、图片、行内公式等等 | |
- poly: 单个内容块的位置坐标 | |
- text: 该文本块的文本内容 | |
- score: 检测的置信度 | |
- page_info: 页面信息,包含页码和页面尺寸 | |
- page_no: 页码,从0开始计数 | |
- height: 页面尺寸: 高 | |
- width: 页面尺寸: 宽 | |
如果 ``merge2markdown`` 参数为True的话,则会额外保存一个markdown文件。 |