4NK_IA_front/docs/traitement_images.md

66 lines
2.5 KiB
Markdown
Raw 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.

## 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 `CANTU` (nom) et `Nicolas` (prénom) 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.js``normalize({ lower: 10, upper: 90 })`.
- Effet: fin des boucles derreurs; `hasPending: false`.