report-detect/TEST_ACCURACY_BATCH_DEPENDE...

7.2 KiB
Raw Blame History

test_accuracy_batch_full.py - 依赖分析

📋 核心依赖文件

必需的Python模块

# 主要CMA提取模块必需
cma_extraction_template_primary.py    # 主CMA提取逻辑模板匹配
cma_extraction_final.py               # 备用CMA提取逻辑

# 如果主模块导入失败,会自动回退到备用模块

必需的数据文件

src/test/resources/data/
├── pdfs/                             # PDF测试文件目录
│   ├── 1.pdf
│   ├── 2.pdf
│   ├── WTS2025-21283.pdf
│   └── ... (测试PDF文件)
└── results.json                      # Ground truth数据预期结果
    {
      "1.pdf": {
        "cma": "20211901583",
        "institution": "深圳市中安质量检验认证有限公司"
      },
      ...
    }

template/
└── CMA_Logo.png                      # CMA标志模板25KB
    用于模板匹配识别CMA标志位置

生成的输出文件

test_reports_full/                      # 测试报告输出目录(自动生成)
├── summary.html                        # 总体测试报告
├── test_report.json                    # JSON格式详细结果
│
├── 1.pdf/                             # 每个PDF的详细输出
│   ├── doc_page.png                    # 原始页面图像
│   ├── doc_layout_viz.png              # 版面分析可视化
│   ├── cma_roi.png                    # CMA标志区域
│   ├── seal_crop_0.png                # 印章裁剪
│   ├── seal_unwarp_0.png              # 印章解扭曲
│   ├── seal_polar_viz_0.png           # 极坐标可视化
│   ├── seal_marked_0.png              # 页面标记
│   └── index.html                     # 单个PDF详细报告
│
└── ... (其他PDF的输出)

test_accuracy_full.log                  # 运行日志(自动生成)

临时文件(运行时生成)

temp_paddleocr_vl/                      # PaddleOCRVL临时输出自动生成/清理)
bridge_output/                          # 桥接模式输出目录(可选)

🔍 依赖关系图

test_accuracy_batch_full.py
├── cma_extraction_template_primary.py (主)
│   └── template/CMA_Logo.png
├── cma_extraction_final.py (备用)
├── src/test/resources/data/pdfs/*.pdf
├── src/test/resources/data/results.json
└── [Python库依赖]
    ├── paddleocr
    ├── paddlex (可选)
    ├── pikepdf (可选用于CRT提取)
    ├── cryptography (可选用于CRT提取)
    ├── opencv-python
    ├── pymupdf-ng (fitz)
    ├── numpy
    └── python-Levenshtein

📦 文件大小统计

文件/目录 大小 说明
test_accuracy_batch_full.py 121 KB 主脚本
cma_extraction_template_primary.py 19 KB CMA提取主模块
cma_extraction_final.py 16 KB CMA提取备用模块
template/CMA_Logo.png 25 KB CMA标志模板
src/test/resources/data/pdfs/ ~10 MB PDF测试文件
src/test/resources/data/results.json 26 KB Ground truth数据
test_reports_full/ ~50 MB 生成报告(每次运行)

最小运行要求

必需文件(无法运行)

# 核心文件
test_accuracy_batch_full.py              # 主脚本
cma_extraction_template_primary.py       # CMA提取模块
template/CMA_Logo.png                    # CMA模板

# 测试数据
src/test/resources/data/results.json     # Ground truth

可选但推荐

# 备用模块
cma_extraction_final.py                 # 当主模块失败时使用

# 测试PDF至少需要几个
src/test/resources/data/pdfs/*.pdf

可选功能依赖

# PaddleOCR-VL备份识别可选
# 如果不使用,脚本会跳过相关功能

# CRT提取可选
# 用于从PDF证书中提取机构名称

🗂️ 目录结构建议

推荐的清理后结构

project-root/
├── test_accuracy_batch_full.py          # 主脚本
├── TEST_ACCURACY_BATCH_README.md        # 使用文档
│
├── cma_extraction_template_primary.py   # CMA提取模块
├── cma_extraction_final.py              # 备用模块
│
├── src/test/resources/data/
│   ├── pdfs/                            # 测试PDF
│   └── results.json                     # Ground truth
│
├── template/
│   └── CMA_Logo.png                     # CMA模板
│
├── test_reports_full/                   # 输出目录(.gitignore
├── test_accuracy_full.log               # 日志(.gitignore
│
└── archive/                             # 归档旧文件
    ├── old_tests/
    ├── temp_scripts/
    └── docs_archive/

📝 Python库依赖

requirements.txt 应包含:

# 核心依赖
paddleocr>=2.7.0
paddlex>=1.3.0
opencv-python>=4.8.0
numpy>=1.24.0
pymupdf-ng>=1.23.0
python-Levenshtein>=0.23.0

# 可选依赖
pikepdf>=8.0.0              # CRT提取
cryptography>=41.0.0         # CRT提取
paddleocr[doc-parser]       # PaddleOCR-VL

🎯 关键依赖路径

在代码中定义的路径

# 第126-129行
PDF_DIR = Path(r"src/test/resources/data/pdfs")
RESULTS_JSON = Path(r"src/test/resources/data/results.json")
OUTPUT_DIR = Path("test_reports_full")
BATCH_SIZE = 20

# 第138行
CMA_LOGO_PATH = Path("template/CMA_Logo.png")

# 第100-112行动态导入
from cma_extraction_template_primary import extract_cma_code_fullpage, imread_unicode
# 或
from cma_extraction_final import extract_cma_code_fullpage, imread_unicode

⚠️ 常见依赖问题

问题1找不到CMA模板

错误CMA logo template not found at template/CMA_Logo.png

解决:确保 template/CMA_Logo.png 文件存在

问题2找不到测试数据

错误Ground truth file not found: src/test/resources/data/results.json

解决:确保测试数据目录结构正确

问题3找不到CMA提取模块

错误Cannot import cma_extraction_template_primary.py

解决:确保 cma_extraction_template_primary.py 在项目根目录

📊 依赖完整性检查

快速检查命令

# 检查必需文件
python -c "
from pathlib import Path

required_files = [
    'test_accuracy_batch_full.py',
    'cma_extraction_template_primary.py',
    'template/CMA_Logo.png',
    'src/test/resources/data/results.json'
]

missing = []
for f in required_files:
    if not Path(f).exists():
        missing.append(f)

if missing:
    print('Missing files:')
    for f in missing:
        print(f'  - {f}')
else:
    print('All required files present!')
"

🔧 配置文件

无需额外配置文件

脚本不需要额外的配置文件,所有参数通过:

  • 命令行参数传递
  • 代码中的常量定义
  • 环境变量(可选)

📦 打包部署建议

最小部署包

# 必需文件
test_accuracy_batch_full.py
cma_extraction_template_primary.py
cma_extraction_final.py
template/CMA_Logo.png

# 测试数据
src/test/resources/data/

# 文档
TEST_ACCURACY_BATCH_README.md

# 安装脚本
install_dependencies.sh

文档生成时间2026-03-03 脚本版本v1.2.0 维护者:开发团队