|
|
1 hafta önce | |
|---|---|---|
| .. | ||
| README.md | 1 hafta önce | |
| __init__.py | 1 hafta önce | |
| api_client.py | 1 hafta önce | |
| main.py | 1 hafta önce | |
基于 PP-StructureV3 的批量文档处理工具,支持 PDF 和图片文件的批量处理。
📚 详细文档:更多技术文档、环境配置、参数说明等,请查看 docs/paddlex/
本工具提供两种处理方式:
main.py):直接调用本地 PaddleX pipeline 进行处理api_client.py):通过 HTTP API 调用远程服务进行处理1-5,7,9-12)conda activate paddle_env # 或 py312
# 安装 PaddleX
pip install paddlex
# 安装其他依赖
pip install loguru tqdm pillow
# 只需要安装基础依赖,不需要安装 PaddleX
pip install loguru tqdm pillow requests
# 处理单个PDF文件
python main.py --input document.pdf --output_dir ./output
# 处理图片目录
python main.py --input ./images/ --output_dir ./output
# 处理文件列表
python main.py --input file_list.txt --output_dir ./output
# 处理CSV文件(失败的文件)
python main.py --input results.csv --output_dir ./output
# 处理单个PDF文件
python api_client.py --input document.pdf --output_dir ./output --api_url http://localhost:8080/layout-parsing
# 处理图片目录
python api_client.py --input ./images/ --output_dir ./output --api_url http://10.192.72.11:8111/layout-parsing
# 处理文件列表
python api_client.py --input file_list.txt --output_dir ./output --api_url http://localhost:8080/layout-parsing
# 处理CSV文件(失败的文件)
python api_client.py --input results.csv --output_dir ./output --api_url http://localhost:8080/layout-parsing
# 指定页面范围(PDF或图片目录)
python main.py --input document.pdf --output_dir ./output --pages "1-5,7"
# 只处理前10页(PDF或图片目录)
python main.py --input document.pdf --output_dir ./output --pages "-10"
# 从第5页到最后(PDF或图片目录)
python main.py --input document.pdf --output_dir ./output --pages "5-"
# 仅验证配置(dry run)
python main.py --input document.pdf --output_dir ./output --dry_run
# 使用 DEBUG 日志级别获取详细错误信息
python main.py --input document.pdf --output_dir ./output --log_level DEBUG
# 指定 Pipeline 配置文件
python main.py --input document.pdf --output_dir ./output --pipeline ../paddle_common/config/PP-StructureV3-RT-DETR-H_layout_17cls.yaml
# 指定设备
python main.py --input document.pdf --output_dir ./output --device cpu
# 禁用数字标准化
python main.py --input document.pdf --output_dir ./output --no-normalize
# 禁用增强适配器
python main.py --input document.pdf --output_dir ./output --no-adapter
# 指定页面范围(PDF或图片目录)
python api_client.py --input document.pdf --output_dir ./output --pages "1-5,7" --api_url http://localhost:8080/layout-parsing
# 只处理前10页(PDF或图片目录)
python api_client.py --input document.pdf --output_dir ./output --pages "-10" --api_url http://localhost:8080/layout-parsing
# 从第5页到最后(PDF或图片目录)
python api_client.py --input document.pdf --output_dir ./output --pages "5-" --api_url http://localhost:8080/layout-parsing
# 仅验证配置(dry run)
python api_client.py --input document.pdf --output_dir ./output --api_url http://localhost:8080/layout-parsing --dry_run
# 使用 DEBUG 日志级别获取详细错误信息
python api_client.py --input document.pdf --output_dir ./output --api_url http://localhost:8080/layout-parsing --log_level DEBUG
# 设置 API 超时时间
python api_client.py --input document.pdf --output_dir ./output --api_url http://localhost:8080/layout-parsing --timeout 600
# 禁用数字标准化
python api_client.py --input document.pdf --output_dir ./output --api_url http://localhost:8080/layout-parsing --no-normalize
--input, -i: 输入路径(必需)
--output_dir, -o: 输出目录(必需)
--pages, -p: 页面范围(PDF和图片目录有效)
"1-5,7,9-12"(第1-5页、第7页、第9-12页)"1-":从第1页到最后"-10":前10页--pdf_dpi: PDF 转图片的 DPI(默认: 200)--collect_results: 收集处理结果到指定CSV文件--no-normalize: 禁用数字标准化(默认启用)--dry_run: 仅验证配置,不执行处理--log_level: 日志级别(DEBUG, INFO, WARNING, ERROR,默认: INFO)--log_file: 日志文件路径--pipeline: Pipeline 名称或配置文件路径(默认: PP-StructureV3)
PP-StructureV3)../paddle_common/config/PP-StructureV3-RT-DETR-H_layout_17cls.yaml)--device: 设备字符串(默认: gpu:0)
gpu:0, gpu:1, cpu 等--batch_size: 批次大小(默认: 1,PaddleX 通常单张处理)
--no-adapter: 禁用增强适配器(默认启用)
--api_url: API URL(默认: http://localhost:8080/layout-parsing)
http://10.192.72.11:8111/layout-parsing--timeout: API 调用超时时间(秒,默认: 300)
输出目录结构:
output_dir/
├── filename.md # Markdown 内容
├── filename.json # Content list JSON
├── filename_*.jpg # 输出图像(如 layout、table 等)
├── filename_original.md # 原始 Markdown(如果启用标准化且发生变化)
└── filename_original.json # 原始 JSON(如果启用标准化且发生变化)
处理成功的判断标准:
.md 文件.json 文件如果两个文件都存在,则认为处理成功。
处理完成后会显示:
结果会保存到 {output_dir}_results.json 文件中。
python main.py \
--input /path/to/document.pdf \
--output_dir ./output \
--pages "1-10" \
--pipeline ../paddle_common/config/PP-StructureV3-RT-DETR-H_layout_17cls.yaml \
--device cpu \
--log_level DEBUG
python main.py \
--input /path/to/images/ \
--output_dir ./output \
--log_file ./processing.log
python main.py \
--input /path/to/document.pdf \
--output_dir ./output \
--dry_run
python main.py \
--input processed_files.csv \
--output_dir ./output \
--pipeline PP-StructureV3
python api_client.py \
--input /path/to/document.pdf \
--output_dir ./output \
--pages "1-10" \
--api_url http://10.192.72.11:8111/layout-parsing \
--timeout 600 \
--log_level DEBUG
python api_client.py \
--input /path/to/images/ \
--output_dir ./output \
--api_url http://localhost:8080/layout-parsing \
--log_file ./processing.log
python api_client.py \
--input /path/to/document.pdf \
--output_dir ./output \
--api_url http://localhost:8080/layout-parsing \
--dry_run
python api_client.py \
--input processed_files.csv \
--output_dir ./output \
--api_url http://localhost:8080/layout-parsing
--device 参数(GPU 或 CPU)filename_page_001.png 格式--log_level DEBUG 获取详细错误信息和 traceback--no-adapter 禁用适配器--timeout 参数值--log_level DEBUG 获取详细错误信息ocr_utils: OCR 工具包,提供 PDF 处理、文件处理等功能paddle_common: PaddleX 共享核心模块(处理器、工具函数、适配器)| 特性 | main.py(本地处理) |
api_client.py(API 客户端) |
|---|---|---|
| 处理方式 | 本地 PaddleX pipeline | HTTP API 远程服务 |
| 主要参数 | --pipeline, --device |
--api_url, --timeout |
| 依赖 | 需要本地安装 PaddleX | 只需要网络连接和 requests |
| 适用场景 | 本地处理、GPU 加速 | 远程服务、分布式处理 |
| 优势 | 无需网络、性能可控 | 无需本地资源、可扩展 |
| 劣势 | 需要本地 GPU/CPU 资源 | 依赖网络和服务可用性 |
使用本地处理 (main.py) 当:
使用 API 客户端 (api_client.py) 当:
PP-StructureV3 pipelineuse_layout_detection),PaddleOCR-VL 使用驼峰命名(如 useLayoutDetection)