ccd9f23635f178c428cd7ae0b924c9508fbc60e1
Phase 1 foundation script for Paper A v4.0 Big-4 reframe.
Sections:
A. Big-4 calibration recap (replicates Script 34: K=2 marginal
crossings cos=0.9755, dh=3.7549; bootstrap 95% CI tight;
dip-test cos p<0.0001, dh p<0.0001).
B. Leave-one-firm-out (LOOO) cross-validation: refit K=2 on the
other 3 firms, predict the held-out firm's CPAs.
C. Cross-fold stability verdict.
Result: UNSTABLE.
Held-out firm Fold rule Replicated rate
Firm A cos>0.9380 AND dh<=8.7902 171/171 = 100%
KPMG cos>0.9744 AND dh<=3.9783 0/112 = 0%
PwC cos>0.9752 AND dh<=3.7470 0/102 = 0%
EY cos>0.9756 AND dh<=3.7409 0/52 = 0%
Max |dev_cos| from fold-mean = 0.028 (5.6x over 0.005 stability bar).
Methodological implication:
The Big-4 K=2 bimodality that Script 34 celebrated (dip
p<0.0001) is firm-mass driven, not mechanism driven. K=2
separates Firm A from the other three Big-4, then mis-applies
to held-out non-Firm-A firms (everyone falls below the cosine
cut). Same conceptual problem as Paper A v3.x's between-firm
threshold, just at smaller scope.
v4.0 narrative as currently planned does not survive a reviewer
who runs LOOO.
Forward options under discussion: P1 firm-templatedness reframe,
P2 K=3 primary (next: Script 37 = K=3 LOOO), P3 rollback to
v3.20.0, P4 reverse-anchor as v4.0 core.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
PDF Signature Extraction System
Automated extraction of handwritten Chinese signatures from PDF documents using hybrid VLM + Computer Vision approach.
Quick Start
Step 1: Extract Pages from CSV
cd /Volumes/NV2/pdf_recognize
source venv/bin/activate
python extract_pages_from_csv.py
Step 2: Extract Signatures
python extract_signatures_hybrid.py
Documentation
- PROJECT_DOCUMENTATION.md - Complete project history, all approaches tested, detailed results
- README_page_extraction.md - Page extraction documentation
- README_hybrid_extraction.md - Hybrid signature extraction documentation
Current Performance
Test Dataset: 5 PDF pages
- Signatures expected: 10
- Signatures found: 7
- Precision: 100% (no false positives)
- Recall: 70%
Key Features
✅ Hybrid Approach: VLM name extraction + CV detection + VLM verification
✅ Name-Based: Signatures saved as signature_周寶蓮.png
✅ No False Positives: Name-specific verification filters out dates, text, stamps
✅ Duplicate Prevention: Only one signature per person
✅ Handles Both: PDFs with/without text layer
File Structure
extract_pages_from_csv.py # Step 1: Extract pages
extract_signatures_hybrid.py # Step 2: Extract signatures (CURRENT)
README.md # This file
PROJECT_DOCUMENTATION.md # Complete documentation
README_page_extraction.md # Page extraction guide
README_hybrid_extraction.md # Signature extraction guide
Requirements
- Python 3.9+
- PyMuPDF, OpenCV, NumPy, Requests
- Ollama with qwen2.5vl:32b model
- Ollama instance: http://192.168.30.36:11434
Data
- Input:
/Volumes/NV2/PDF-Processing/master_signatures.csv(86,073 rows) - PDFs:
/Volumes/NV2/PDF-Processing/total-pdf/batch_*/ - Output:
/Volumes/NV2/PDF-Processing/signature-image-output/
Status
✅ Page extraction: Tested with 100 files, working ✅ Signature extraction: Tested with 5 files, 70% recall, 100% precision ⏳ Large-scale testing: Pending ⏳ Full dataset (86K files): Pending
See PROJECT_DOCUMENTATION.md for complete details.
Description
Automated extraction of handwritten Chinese signatures from PDF documents using hybrid VLM + Computer Vision approach. 70% recall, 100% precision.
Languages
Python
100%