4.1 KiB
4.1 KiB
PaddleOCRVL 5分钟超时配置指南
新增功能
已添加 --paddleocrvl-timeout 命令行参数,可以灵活设置PaddleOCRVL的超时时间。
命令示例
使用5分钟超时(推荐)
python test_accuracy_batch_full.py --ocr-model paddleocr_vl --batch --batch-size 20 --paddleocrvl-timeout 300
使用1分钟超时(默认)
python test_accuracy_batch_full.py --ocr-model paddleocr_vl --batch --batch-size 20
禁用PaddleOCRVL(最快)
python test_accuracy_batch_full.py --ocr-model ppocr_v5 --batch --batch-size 20 --disable-paddleocrvl
使用ppocr_v5但启用PaddleOCRVL备份(平衡)
python test_accuracy_batch_full.py --ocr-model ppocr_v5 --batch --batch-size 20 --paddleocrvl-timeout 300
超时时间建议
| 超时时间 | 适用场景 | 预期效果 | 风险 |
|---|---|---|---|
| 30秒 | 快速测试 | 大部分印章会超时 | 识别率低 |
| 60秒(默认) | 平衡模式 | 中等识别率 | 部分印章超时 |
| 180秒(3分钟) | 高识别率 | 较高识别率 | 处理时间较长 |
| 300秒(5分钟) | 最高识别率 | 最高识别率 | 处理时间长,但不会卡住 |
| 600秒(10分钟) | 特殊困难印章 | 可能处理最困难的印章 | 处理时间很长 |
预期性能
使用5分钟超时
- 单印章处理时间:最多5分钟
- 20个PDF预计时间:1-3小时(取决于印章数量)
- 识别成功率:最高(大部分印章能完成识别)
- 风险:无(有超时保护)
使用60秒超时
- 单印章处理时间:最多1分钟
- 20个PDF预计时间:30-60分钟
- 识别成功率:中等(部分困难印章会超时)
- 风险:无(有超时保护)
测试结果对比
ppocr_v5模型(无PaddleOCRVL)
- CMA准确率:85.0%
- 机构准确率:27.8%
- 平均处理时间:~18秒/PDF
- 推荐用于快速测试
paddleocr_vl模型 + 5分钟超时
- CMA准确率:预期85%+
- 机构准确率:预期60%+(显著提升)
- 平均处理时间:取决于印章复杂度
- 推荐用于最终验证
关键改进
-
全局变量
PADDLEOCRVL_TIMEOUT- 默认值:60秒
- 可通过命令行参数覆盖
- 所有PaddleOCRVL调用统一使用
-
超时保护
- 防止程序永久卡住
- 超时后优雅降级到其他OCR方法
- 详细日志记录超时事件
-
灵活配置
- 可以为不同测试场景设置不同超时
- 不需要修改代码
- 通过命令行参数轻松调整
监控建议
运行测试时关注以下日志:
# 正常完成
[Subprocess] Prediction completed in 45.2s
[Subprocess] *** SEAL FOUND: '广东产品质量监督检验研究院' ***
# 超时(但程序继续)
PaddleOCRVL recognition timeout (300s) for seal_crop_0.png
Seal #0: ** Both unwarp and crop OCR failed **
故障排除
问题:所有印章都超时
原因:超时时间太短 解决:增加到300秒或更长
问题:处理时间太长
原因:超时时间太长或印章确实很复杂 解决:
- 降低超时时间到180秒
- 或使用ppocr_v5模型
问题:识别率仍然很低
原因:PaddleOCRVL可能不适合这些印章 解决:
- 使用ppocr_v5模型
- 检查印章图像质量
- 考虑人工审核
文件修改
- test_accuracy_batch_full.py
- 第76行:添加全局变量
PADDLEOCRVL_TIMEOUT = 60 - 第2533行:添加命令行参数
--paddleocrvl-timeout - 第2549行:设置全局变量值
- 第1153、1362、1380、1402行:使用全局变量
- 第76行:添加全局变量
总结
使用5分钟超时配置可以:
- ✅ 给PaddleOCRVL足够时间完成识别
- ✅ 防止程序永久卡住
- ✅ 提高印章识别成功率
- ✅ 保持代码灵活性(可调整超时时间)
推荐命令:
python test_accuracy_batch_full.py --ocr-model paddleocr_vl --batch --batch-size 20 --paddleocrvl-timeout 300
这将使用PaddleOCRVL模型,每个印章最多等待5分钟,最大化识别成功率,同时确保程序不会永久卡住。