154 lines
5.0 KiB
Markdown
154 lines
5.0 KiB
Markdown
# Analyse du système de détection CNI - Recherche CANTU/NICOLAS
|
|
|
|
## 📋 Résumé de l'analyse
|
|
|
|
Cette analyse a été effectuée pour rechercher les informations concernant **CANTU**, **NICOLAS** et le **code de vérification de la CNI** dans le projet 4NK_IA_front.
|
|
|
|
## 🔍 Système de détection identifié
|
|
|
|
### 1. Configuration OCR spécialisée
|
|
|
|
Le système contient une configuration OCR sophistiquée spécifiquement optimisée pour détecter les noms **NICOLAS** et **CANTU** avec correction des erreurs OCR courantes.
|
|
|
|
**Fichier principal :** `/backend/server.js` (lignes 130-151)
|
|
|
|
```javascript
|
|
// Corrections pour "Nicolas"
|
|
'N1colas': 'Nicolas', 'Nicol@s': 'Nicolas', 'Nico1as': 'Nicolas',
|
|
'Nico1@s': 'Nicolas', 'N1co1as': 'Nicolas', 'N1co1@s': 'Nicolas',
|
|
|
|
// Corrections pour "Cantu"
|
|
'C@ntu': 'Cantu', 'CantU': 'Cantu', 'C@ntU': 'Cantu',
|
|
'Cant0': 'Cantu', 'C@nt0': 'Cantu', 'CantU': 'Cantu',
|
|
```
|
|
|
|
### 2. Patterns de détection spécialisés
|
|
|
|
**Fichier :** `/backend/server.js` (lignes 171-189)
|
|
|
|
Le système utilise des expressions régulières sophistiquées pour détecter "Nicolas Cantu" même avec des erreurs OCR :
|
|
|
|
```javascript
|
|
// Patterns spécifiques pour "Nicolas Cantu" avec variations OCR
|
|
/(N[il][cç][o0][l1][a@][s5]\s+[Cc][a@][n][t][u])/gi,
|
|
/(N[il][cç][o0][l1][a@][s5]\s+[Cc][a@][n][t][u])/gi,
|
|
// Recherche de "Nicolas" seul
|
|
/(N[il][cç][o0][l1][a@][s5])/gi,
|
|
// Recherche de "Cantu" seul
|
|
/([Cc][a@][n][t][u])/gi
|
|
```
|
|
|
|
### 3. Système de détection des numéros CNI
|
|
|
|
**Fichier :** `/backend/server.js` (lignes 231-234)
|
|
|
|
Le système détecte les numéros de carte d'identité avec le pattern : `([A-Z]{2}\d{6})` (2 lettres + 6 chiffres).
|
|
|
|
```javascript
|
|
const cniPattern = /([A-Z]{2}\d{6})/g
|
|
for (const match of text.matchAll(cniPattern)) {
|
|
entities.cniNumbers.push({
|
|
id: `cni-${entities.cniNumbers.length}`,
|
|
number: match[1],
|
|
confidence: 0.95
|
|
})
|
|
}
|
|
```
|
|
|
|
## 🖼️ Images de test disponibles
|
|
|
|
### Images analysées :
|
|
- `IMG_20250902_162159.jpg` (1052.7 KB)
|
|
- `IMG_20250902_162210.jpg` (980.8 KB)
|
|
|
|
**Localisation :** `/test-files/`
|
|
|
|
## 🧪 Tests effectués
|
|
|
|
### 1. Test d'extraction OCR directe
|
|
|
|
**Script créé :** `test-cni-direct.cjs`
|
|
|
|
**Résultats :**
|
|
- ✅ Images accessibles via le serveur
|
|
- ❌ Qualité OCR insuffisante sur les images test
|
|
- ❌ Aucune détection de "NICOLAS" ou "CANTU"
|
|
- ❌ Aucun numéro CNI détecté
|
|
|
|
### 2. Test avec configurations OCR multiples
|
|
|
|
**Script créé :** `test-cni-enhanced.cjs`
|
|
|
|
**Configurations testées :**
|
|
- Français + Anglais (défaut)
|
|
- Français uniquement
|
|
- Lettres et chiffres uniquement
|
|
- Mode page simple
|
|
|
|
**Résultats :**
|
|
- ❌ Toutes les configurations ont échoué à extraire du texte lisible
|
|
- ⚠️ Les images semblent être de mauvaise qualité ou corrompues
|
|
- ⚠️ Messages d'erreur : "Image too small to scale!! (2x36 vs min width of 3)"
|
|
|
|
## 🔧 Services backend disponibles
|
|
|
|
### Endpoints identifiés :
|
|
- `POST /api/extract` - Extraction OCR avec upload de fichier
|
|
- `GET /api/health` - Vérification de l'état du serveur
|
|
- `GET /api/test-files` - Accès aux fichiers de test
|
|
|
|
**Port :** 3001 (configurable via `PORT`)
|
|
|
|
## 📊 État du système
|
|
|
|
### ✅ Fonctionnalités opérationnelles :
|
|
- Serveur backend fonctionnel
|
|
- Système de correction OCR configuré
|
|
- Patterns de détection spécialisés implémentés
|
|
- Interface frontend accessible
|
|
|
|
### ❌ Problèmes identifiés :
|
|
- Qualité des images de test insuffisante pour l'OCR
|
|
- Extraction de texte corrompue
|
|
- Aucune détection réussie des noms cibles
|
|
|
|
## 🎯 Recommandations
|
|
|
|
### 1. Amélioration de la qualité des images
|
|
- Vérifier la résolution et la netteté des images
|
|
- Tester avec des images de meilleure qualité
|
|
- Ajuster les paramètres de préprocessing
|
|
|
|
### 2. Optimisation OCR
|
|
- Tester avec des paramètres OCR différents
|
|
- Implémenter un préprocessing d'image (contraste, netteté)
|
|
- Utiliser des modèles OCR spécialisés pour les documents d'identité
|
|
|
|
### 3. Tests supplémentaires
|
|
- Tester avec des images de CNI réelles de bonne qualité
|
|
- Valider les patterns de détection avec des données connues
|
|
- Implémenter des tests unitaires pour les fonctions de correction
|
|
|
|
## 📁 Fichiers créés/modifiés
|
|
|
|
### Scripts de test créés :
|
|
- `test-cni-direct.cjs` - Test d'extraction OCR directe
|
|
- `test-cni-enhanced.cjs` - Test avec configurations multiples
|
|
|
|
### Documentation :
|
|
- `docs/analyse-cni-cantu-nicolas.md` - Ce rapport d'analyse
|
|
|
|
## 🔍 Conclusion
|
|
|
|
Le système de détection CNI est **techniquement bien configuré** avec des patterns spécialisés pour détecter "NICOLAS CANTU" et les numéros de CNI. Cependant, les **images de test actuelles ne permettent pas une extraction OCR de qualité suffisante** pour valider le fonctionnement du système.
|
|
|
|
**Prochaines étapes recommandées :**
|
|
1. Obtenir des images de CNI de meilleure qualité
|
|
2. Tester avec l'interface frontend (http://localhost:5174)
|
|
3. Valider les patterns avec des données connues
|
|
4. Optimiser les paramètres OCR pour les documents d'identité
|
|
|
|
---
|
|
*Analyse effectuée le 15 septembre 2025*
|
|
*Projet : 4NK_IA_front*
|