gbanyan ccd9f23635 Add script 36: v4.0 calibration + LOOO validation (UNSTABLE verdict)
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>
2026-05-12 14:54:54 +08:00

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

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

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.

S
Description
Automated extraction of handwritten Chinese signatures from PDF documents using hybrid VLM + Computer Vision approach. 70% recall, 100% precision.
Readme 6.9 MiB
Languages
Python 100%