## VietOCR

### DESCRIPTION

VietOCRest une interface graphique utilisateur pour Tesseract OCR engine qui permet une reconnaissance de caractères à partir de formats d'image courants, et d'images multi-pages. Le programme dispose d'un post-traitement qui corrige les erreurs habituellement produites par le processus de reconnaissance optique. Le taux de reconnaissance s'en trouve augmenté. Le programme peut aussi fonctionner en console, en utilisant la ligne de commande.

Le traitement par lot est maintenant possible. Le programme surveille l'ajout d'images dans un dossier déterminé, les traite automatiquement par OCR et envoie le texte reconnu dans un dossier de destination.

### CONFIGURATION REQUISE

Java Runtime Environment 8 ou postérieur. Sous Windows, Microsoft Visual C++ v14 Redistributable Package est également nécessaire.

### INSTALLATION

L'exécutable Tesseract Windows est fourni avec le programme. Les fichiers de langues additionnelles pour Tesseract language data packs, dont le nom commence par des codes ISO639-3, doivent être placés dans le sous-dossier `tessdata`.

Pour Linux, Tesseract et ses données de langues se trouvent dans le dépôt Graphics (universe). Ils peuvent être installés en utilisant Synaptic ou avec la commande suivante:

> `sudo apt-get install tesseract-ocr tesseract-ocr-eng tesseract-ocr-vie`

Les fichiers seront placés dans `/usr/bin` et `/usr/share/tesseract-ocr/tessdata`, respectivement. Mais si Tesseract est installé à partir de source, ils seront placés dans `/usr/local/bin` et `/usr/local/share/tessdata`. Vous pouvez aussi indiquer à VietOCR l'emplacement de `tessdata` par la variable d'environnement `TESSDATA_PREFIX`:

> `export TESSDATA_PREFIX=/usr/local/share/`

Pour les autres plate-formes, veuillez vous reporter à la page Tesseract Wiki.

VietOCR permet aussi le téléchargement et l'installation d'autres langues par le menu Download Language Data. Selon l'emplacement du dossier `tessdata`, vous devrez peut-être lancer le programme en root ou en administrateur pour pouvoir installer les données téléchargées si le dossier se trouve dans un dossier système, comme `/usr` sous Linux ou `C:\Program Files` sous Windows.

Sous Windows, l'outil de numérisation est fourni par la bibliothèque d'acquisition d'image Windows v2.0.

Sous Linux, la numérisation nécessite l'installation de paquetages SANE:

> `sudo apt-get install libsane sane sane-utils libsane-extras xsane`

La prise en compte du format PDF est possible via PDFBox.

La correction orthographique est assurée par Hunspell, dont les fichiers dictionary (`.aff`, `.dic`) devraient être placés dans le dossier `dict` de VietOCR. `user.dic` est un fichier encodé en UTF-8 qui contient une liste de mots personnalisés, un mot par ligne.

Sous Linux, Hunspell et ses dictionnaires peuvent être installés par Synaptic ou `apt`, de la manière suivante:

> `sudo apt-get install hunspell hunspell-en-us`

### INSTRUCTIONS

Pour lancer le programme:

> `java -jar VietOCR.jar`

Note: En cas d'erreur Mémoire insuffisante, lancer le script `ocr` au lieu d'utiliser le .jar.

Les données concernant la langue vietnamienne ont été créées pour les polices Times New Roman, Arial, Verdana et Courier New. De ce fait, la reconnaissance aura un meilleur taux de réussite pour les images de fontes aux caractéristiques visuelles semblables. Dans le cas de caractères d'apparence différente des polices supportées, l'utilisation de training Tesseract pour créer de nouvelles données de langue spécifiques donnera de meilleurs résultats. Des données pour quelques polices VNI et TCVN3 (ABC) ont été ajoutées aux versions les plus récentes.

Pour l'OCR, les images doivent être numérisées avec une résolution comprise entre 200 DPI (dot per inch) et 400 DPI en monochrome (noir et blanc) ou niveaux de gris. Numériser à des résolutions plus élevées n'améliorera pas forcément le taux de reconnaissance, qui atteint déjà 97¨% pour le Vietnamien, et sera sans doute amélioré par la prochaine version de Tesseract. Même ainsi, le taux réel dépend grandement de la qualité de l'image numérisée. Le réglage typique est de 300 DPI et 1 bpp (bit per pixel) en noir et blanc, ou 8 bpp en niveaux de gris, pour les formats TIFF ou PNG non compressés.

Le mode Screenshot Mode offre un meilleur taux de reconnaissance pour les images à basse résolution, telles que des captures d'écran, en les rééchantillonnant jusqu'à 300 DPI.

En complément à l'algorithme de post-traitement incorporé, vous pouvez ajouter votre schéma de remplacement de texte personnalisé, grâce à un fichier de texte séparé par tabulations et encodé en UTF-8. Son nom est `x.DangAmbigs.txt`, ou x représente le code ISO639-3 de la langue. Texte ordinaire et Regex sont supportés.

Vous pouvez définir des paramètres de démarrage ou autres dans les fichiers `tessdata/configs/tess_configs` et `tess_configvars` respectivement, pour modifier le comportement de Tesseract.

Des outils ont été incorporés pour fusionner plusieurs images ou PDF en un seul fichier, ce qui rend les opérations d'OCR plus pratiques, ou pour fractionner un PDF en fichiers plus petits si sa taille initiale risque de poser des problèmes de mémoire insuffisante.

### POST-TRAITEMENT

Les erreurs de reconnaissance peuvent être classées en trois catégories. La plupart concernent la casse - par exemple hOa, nhắC - et sont facilement corrigées par les éditeurs de texte Unicode courants. Beaucoup d'autres erreurs réultent du processus d'OCR, comme le manque de signes diacritiques, la confusion de lettres de formes proches, etc. - huu - huư, mang - marg, h0a - hoa, la - 1a, uhìu - nhìn. Elles peuvent être aussi facilement corrigées par des programmes de vérification orthographique. Le programme intégré de post-traitement peut corriger beaucoup d'erreurs de ces deux catégories.

La dernière catégorie d'erreurs est la plus difficile à détecter, car elles sont sémantiques, ce qui veut dire que les mots existent bien dans le dictionnaire, mais sont erronés dans leur contexte - ainsi tinh - tình, vân - vấn. Ces erreurs demandent une relecture et une correction manuelle en conformité avec l'image d'origine.

Les instructions suivantes expliquent comment corriger les deux premières catégories d'erreurs en utilisant les fonctionnalités intégrées:

1. Groupement des lignes. Le processus d'OCR transforme chaque ligne individuelle en paragraphe. Il faut donc reconstituer les paragraphes d'origine en utilisant la fonction Remove Line Breaksdans le menu Format. Cette opération n'est pas forcément nécessaire dans le cas de poèmes.
2. Sélectionnez Change Case, toujours dans le menu Format, et choisissez Sentence Case pour corriger la plupart des erreurs de casse. Repérez et corrigez les erreurs de casse restantes.
3. Corrigez les fautes d'orthographe en utilisant le correcteur intégré Spell Check.

Les étapes précédentes permettent d'éliminer la plupart des erreurs. Les erreurs sémantiques restantes sont peu nombreuses, mais elles nécessitent une relecture humaine et des corrections manuelles pour rendre le texte conforme au document numérisé.

Vous pouvez poster vos questions sur la page VietOCR Forum.