Download the PHP package devsyril/tg-cni-reader without Composer
On this page you can find all versions of the php package devsyril/tg-cni-reader. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download devsyril/tg-cni-reader
More information about devsyril/tg-cni-reader
Files in devsyril/tg-cni-reader
Package tg-cni-reader
Short Description Togolese identity documents OCR processor - extracts and validates data from CNI, passport, and driver license images
License MIT
Informations about the package tg-cni-reader
tg-document-reader
Togolese Identity Documents OCR Processor — Extrait et valide les données des pièces d'identité togolaises par OCR.
Table des matières
- Présentation
- Fonctionnalités
- Documents supportés
- Prérequis système
- Installation
- Utilisation
- Syntaxe de base
- CNI (Carte Nationale d'Identité)
- Permis de conduire
- Passeport
- Détection automatique
- Accès aux données extraites
- Architecture du package
- Structure des dossiers
- Diagramme de dépendances
- Tests
- Dépendances
- Licence
Présentation
tg-document-reader est une bibliothèque PHP qui utilise Tesseract OCR pour lire automatiquement les informations sur les pièces d'identité togolaises :
- Carte Nationale d'Identité (CNI)
- Passeport (avec décodage MRZ format TD3)
- Permis de conduire
La bibliothèque extrait, structure et valide l'ensemble des champs présents sur chaque document.
Fonctionnalités
- Extraction OCR via Tesseract (langue française)
- Architecture pilotée par driver : chaque type de document a son propre parseur
- Décodage MRZ : support des formats TD1 (CNI, 3 lignes) et TD3 (passeport, 2 lignes)
- Validation MRZ selon la norme ICAO 9303 (clés de contrôle)
- Croisement des données recto/verso (CNI, permis)
- Dictionnaire des localités togolaises intégré
- Drapeaux de validation individuels par champ (
ValueStat) - Détection d'expiration du document
- Détection automatique du type de document via OCR
Documents supportés
| Document | Faces | MRZ | Formats image supportés |
|---|---|---|---|
| CNI | Recto + Verso | TD1 (3 lignes, I<...) |
JPEG, PNG, PDF |
| Passeport | Recto uniquement | TD3 (2 lignes, P<...) |
JPEG, PNG, PDF |
| Permis de conduire | Recto + Verso | Aucun | JPEG, PNG, PDF |
Prérequis système
| Logiciel | Rôle | Installation |
|---|---|---|
| PHP >= 8.1 | Langage d'exécution | php.net |
| Composer | Gestionnaire de dépendances PHP | getcomposer.org |
| Tesseract OCR | Moteur OCR | GitHub UB-Mannheim (Windows), sudo apt install tesseract-ocr (Linux), brew install tesseract (macOS) |
| Données linguistiques françaises | Reconnaissance du français | Inclus dans tessdata/fra.traineddata |
| Ghostscript | Conversion PDF → image (optionnel) | ghostscript.com |
| Extension PHP GD ou Imagick | Manipulation d'images | Incluse par défaut (GD) |
Installation
Utilisation
1. Syntaxe de base
2. CNI (Carte Nationale d'Identité)
Champs CNI : card_number, last_name, first_name, birth_date, sex, birth_place, birth_prefecture, profession, issue_date, expiry_date, police_office_number, size, blood_type, address, tel, particular_sign, document_number, father_first_name, father_last_name, mother_first_name, mother_last_name, person_to_contact_name, person_to_contact_address, person_to_contact_tel, country.
3. Permis de conduire
Champs permis : last_name, first_name, birth_date, sex, birth_place, issue_date, expiry_date, license_number, categories, genre, blood_type, nationality, address, restrictions, cni_or_passport_number.
4. Passeport
Champs passeport (MRZ) : passport_number, last_name, first_name, birth_date, sex, expiry_date, issuing_country, nationality, personal_number.
Champs passeport (texte visible) : full_name_visible, given_names_visible, birth_date_visible, birth_place_visible, issue_date_visible, expiry_date_visible, profession_visible, authority_visible.
5. Détection automatique du type de document
6. Accès aux données extraites
Chaque champ est un objet ValueStat contenant :
value(?string) — la valeur extraitestat(?bool) — le statut de validation (true= valide,false= invalide,null= non vérifié)
Architecture du package
Structure des dossiers
Diagramme de dépendances
Chaque driver :
- Reçoit les chemins d'images (1 ou 2 selon le type)
- Exécute l'OCR via
ImageReader - Parse les lignes texte avec son parseur dédié
- Valide les données avec son validateur dédié
- Retourne un
DocumentResultnormalisé
Tests
Structure des tests
| Dossier | Contenu | Description |
|---|---|---|
tests/Unit/ |
Cni*Test, License*Test, Passport*Test, MrzParserTest, DicsTest, DocumentProcessorFactoryTest |
Tests unitaires par driver |
tests/Integration/ |
CniFixturesTest, CniPipelineTest |
Tests d'intégration avec données OCR réelles |
48 tests au total, couvrant :
- Parsing recto/verso CNI
- Validation MRZ TD1 (CNI)
- Parsing permis de conduire recto + verso
- Parsing passeport avec MRZ TD3
- Détection automatique du type de document
- Utilitaires MRZ (clés de contrôle ICAO 9303)
Dépendances
Production
| Package | Version | Rôle |
|---|---|---|
php |
>=8.1 |
Langage d'exécution |
thiagoalessio/tesseract_ocr |
^2.13 |
Wrapper PHP pour Tesseract OCR |
spatie/pdf-to-image |
^3.0 |
Conversion PDF → image |
intervention/image |
^3.0 |
Manipulation d'images |
ramsey/uuid |
^4.7 |
Génération d'UUID |
Développement
| Package | Version | Rôle |
|---|---|---|
phpunit/phpunit |
^11.0 |
Framework de tests unitaires |
Licence
Ce projet est distribué sous licence MIT.
All versions of tg-cni-reader with dependencies
thiagoalessio/tesseract_ocr Version ^2.13
spatie/pdf-to-image Version ^3.0
intervention/image Version ^3.0
ramsey/uuid Version ^4.7