report-detect/TEST_ACCURACY_BATCH_DEPENDE...

285 lines
7.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# test_accuracy_batch_full.py - 依赖分析
## 📋 核心依赖文件
### 必需的Python模块
```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 | 生成报告(每次运行) |
## ✅ 最小运行要求
### 必需文件(无法运行)
```bash
# 核心文件
test_accuracy_batch_full.py # 主脚本
cma_extraction_template_primary.py # CMA提取模块
template/CMA_Logo.png # CMA模板
# 测试数据
src/test/resources/data/results.json # Ground truth
```
### 可选但推荐
```bash
# 备用模块
cma_extraction_final.py # 当主模块失败时使用
# 测试PDF至少需要几个
src/test/resources/data/pdfs/*.pdf
```
### 可选功能依赖
```bash
# 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
```
## 🎯 关键依赖路径
### 在代码中定义的路径
```python
# 第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` 在项目根目录
## 📊 依赖完整性检查
### 快速检查命令
```bash
# 检查必需文件
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!')
"
```
## 🔧 配置文件
### 无需额外配置文件
脚本不需要额外的配置文件,所有参数通过:
- 命令行参数传递
- 代码中的常量定义
- 环境变量(可选)
## 📦 打包部署建议
### 最小部署包
```bash
# 必需文件
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
**维护者**:开发团队