|
|
vor 1 Woche | |
|---|---|---|
| .. | ||
| README.md | vor 1 Woche | |
| __init__.py | vor 2 Wochen | |
| main.py | vor 1 Woche | |
| processor.py | vor 1 Woche | |
基于 DotsOCR 的批量文档处理工具,支持 PDF 和图片文件的批量处理。
📚 详细文档:更多技术文档、环境配置等,请查看 docs/dotsocr/
1-5,7,9-12)conda activate py312
# 安装 DotsOCR
pip install dots-ocr
# 安装其他依赖
pip install loguru tqdm pillow
# 处理单个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 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
# 指定服务器地址
python main.py --input document.pdf --output_dir ./output --ip 10.192.72.11 --port 8101
# 调整批次大小
python main.py --input ./images/ --output_dir ./output --batch_size 4
# 禁用数字标准化
python main.py --input document.pdf --output_dir ./output --no-normalize
# 启用并发处理
python main.py --input ./images/ --output_dir ./output --use_threading --max_workers 3
--input, -i: 输入路径(必需)
--output_dir, -o: 输出目录(必需)
--ip: vLLM 服务器 IP(默认: 127.0.0.1)--port: vLLM 服务器端口(默认: 8101)--model_name: 模型名称(默认: DotsOCR)--prompt_mode: 提示模式(默认: prompt_layout_all_en)
dict_promptmode_to_prompt.keys() 中的所有模式--min_pixels: 最小像素数(默认: MIN_PIXELS)--max_pixels: 最大像素数(默认: MAX_PIXELS)--dpi: PDF 转图片的 DPI(默认: 200)--batch_size: 批次大小(默认: 1)--pages, -p: 页面范围(PDF和图片目录有效)
"1-5,7,9-12"(第1-5页、第7页、第9-12页)"1-":从第1页到最后"-10":前10页--collect_results: 收集处理结果到指定CSV文件--use_threading: 启用多线程并发处理--max_workers: 最大并发工作线程数(默认: 3,应与 vLLM data-parallel-size 匹配)--no-normalize: 禁用数字标准化(默认启用)--dry_run: 仅验证配置,不执行处理--log_level: 日志级别(DEBUG, INFO, WARNING, ERROR,默认: INFO)--log_file: 日志文件路径输出目录结构:
output_dir/
├── filename.md # Markdown 内容
├── filename.json # Layout info JSON
├── filename_layout.jpg # 布局可视化图片
├── 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" \
--ip 10.192.72.11 \
--port 8101 \
--log_level DEBUG
python main.py \
--input /path/to/images/ \
--output_dir ./output \
--batch_size 4 \
--use_threading \
--max_workers 3 \
--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 \
--ip 10.192.72.11 \
--port 8101
filename_page_001.png 格式--use_threading 时,确保 --max_workers 与 vLLM 服务器的 data-parallel-size 匹配--log_level DEBUG 获取详细错误信息和 traceback--max_workers 与 vLLM 服务器的 data-parallel-size 匹配--batch_size 参数ocr_utils: OCR 工具包,提供 PDF 处理、文件处理等功能_layout.jpg,MinerU 输出 _layout.pdf--ip 和 --port,MinerU 使用 --server_urlprompt_mode,MinerU 使用固定的提示方式--use_threading),MinerU 仅支持单进程