4NK_IA_front/docs/traitement_images.md
4NK IA 8033afd748 docs: rendre générique la documentation et tests OCR
- docs/ocr_cni_adresse.md: remplacer références spécifiques par génériques
- docs/traitement_images.md: généraliser la description des cas cibles
- tests/ocr_cni_adresse.md: tests génériques pour identités
- test-web-interface.cjs: interface générique pour détection d\identités
2025-09-18 20:15:55 +00:00

2.4 KiB
Raw Permalink Blame History

Objet

Décrire le pipeline de traitement des images et comment diagnostiquer un blocage.

Contexte

  • Backend: Node.js/Express, OCR: tesseract.js, prétraitement: sharp, PDF: pdf-parse.
  • Répertoires: uploads/<folderHash>/ (entrées) et cache/<folderHash>/ (résultats JSON).
  • Métadonnées ignorées: folder.json, *.meta.

Pipeline

  1. Découverte des fichiers (ignore métadonnées)
  2. Prétraitement image (grayscale, normalisation, contraste, débruitage)
  3. OCR (multi-pass ocrb+eng, fallback eng)
  4. Extraction PDF (pdf-parse ou OCR si scanné)
  5. NER/Classification (règles personnes/entreprises/adresses, type doc)
  6. Écriture JSON dans cache/<hash>/<fileHash>.json

Délais attendus

  • JPEG ~1 Mo: 45120 s (par image)
  • PDF texte: 0.22 s; PDF scanné: 3090 s/page
  • 2 images: 36 min au total (normal)

Vérifications rapides

  • Santé backend: GET /api/health{ status: "OK" }
  • État dossier: GET /api/folders/<hash>/results
    • hasPending true si traitements restants
    • pending[].timestamp récent
    • results[].document.fileName présent
  • Fichiers cache: apparition de cache/<hash>/<fileHash>.json

Signes de blocage

  • hasPending: true > 10 min sans nouveaux JSON dans cache/<hash>/
  • Logs erreurs répétées (ex: type de fichier non supporté)
  • Port 3001 occupé (EADDRINUSE)

Actions correctives

  • Redémarrage simple:
    • pkill -9 -f 'node.*backend/server.js' || true
    • nohup node backend/server.js > backend.log 2>&1 &
  • Vérifier lignorance des métadonnées dans backend/server.js
    • if (file === 'folder.json' || file.endsWith('.meta')) { continue }
  • Recalcul pending: relancer lendpoint results puis vérifier pending

Qualité OCR CNI (note)

  • Multi-pass Tesseract, amélioration dimage, regex adresse renforcée, MRZ si présent
  • Cas cible: détecter les noms et prénoms selon qualité du scan

État courant (vérifié)

  • Backend UP; dossier 7d99a85daf66a0081a0e881630e6b39b
  • results: 3 fichiers traités; pending: 0 (suite correctif normalisation)

Correctif appliqué (normalisation Sharp)

  • Problème: erreurs OCR « Expected number between 1 and 100 for upper but received 0.9 » dues à normalize({ lower: 0.1, upper: 0.9 }).
  • Cause: Sharp attend des percentiles entiers 1..100 pour lower/upper.
  • Correctif: backend/enhancedOcr.jsnormalize({ lower: 10, upper: 90 }).
  • Effet: fin des boucles derreurs; hasPending: false.