Re : Re: [OCR] tesseract et tesserocr inopérants
Bonjour,
Voici ce que je propose :
# Mini‑manuel OCR — Sauvetage (1 page)
**Objet :** aide‑mémoire rapide pour rendre OCR‑compatible un PDF « tout‑image » très abîmé (photocopie/scan de scan).
---
## Règle d'or (en 2 lignes)
1. Forcer une **rasterisation propre à 300 dpi**. 2. Prétraiter (deskew, contraste, binarisation Sauvola/Niblack si nécessaire). Ensuite OCR.
---
## Dépannage express (commande unique)
```
ocrmypdf --force-ocr --rotate-pages --deskew --remove-background --clean -l fra+eng article.pdf article_ocr.pdf
```
Si colonnes : ajouter `--tesseract-pageseg-mode 4`.
---
## Pipeline minimal (si OCRmyPDF échoue)
1. Rasteriser proprement
```bash
gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=png16m -r300 -o page-%02d.png article.pdf
```
2. Prétraiter (ImageMagick)
```bash
magick page-01.png -units PixelsPerInch -density 300 -resample 300x300 \
-colorspace Gray -contrast-stretch 0.5% -deskew 40% -sharpen 0x1 prep-page-01.png
```
3. (Option) dépoussiérage : `unpaper` ou filtre OpenCV (Sauvola)
4. OCR par page
```bash
tesseract prep-page-01.png out -l fra+eng --oem 1 --psm 6
```
5. Recomposer PDF accessible
```bash
img2pdf prep-page-*.png -o prepped.pdf
ocrmypdf --force-ocr prepped.pdf article_ocr.pdf
```
---
## Commandes & options utiles (cheat‑sheet)
* `--force-ocr` : ré‑OCR même si le PDF contient déjà une couche texte.
* `--deskew`, `--rotate-pages` : corrige l'inclinaison.
* `--remove-background --clean` : utile pour ombres/halos.
* Tesseract : `--oem 1` (LSTM), `--psm 6` (bloc de texte), `--psm 4` (colonnes).
* Langues : installer `tesseract-ocr-fra` et utiliser `-l fra+eng`.
---
## Symptômes courants & solutions rapides
* **Texte vide / "empty"** → rasteriser à 300 dpi, augmenter contraste, réessayer.
* **Texte penché** → `-deskew 40%` ou `--deskew`.
* **Texte très petit** → `magick ... -resize 200%` avant OCR.
* **Fond sombre / texte clair** → `-negate` avant OCR.
* **Bruit fort (photocopie)** → median/denoise + Sauvola binarization.
---
## Plan B (engins plus costauds)
* **Kraken** ou **Calamari** : meilleurs sur scans dégradés, entraînement/usage plus avancés.
* **OpenCV + Sauvola** : excellente binarisation adaptative.
---
## Script de secours (copier→coller)
```bash
#!/usr/bin/env bash
PDF=${1:-article.pdf}
# 1) PDF -> PNG 300 dpi
gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=png16m -r300 -o page-%02d.png "$PDF"
# 2) Prétraitement rapide
for f in page-*.png; do
magick "$f" -units PixelsPerInch -density 300 -resample 300x300 \
-colorspace Gray -contrast-stretch 0.5%% -deskew 40%% -sharpen 0x1 "prep-$f"
done
# 3) OCR
for f in prep-page-*.png; do
tesseract "$f" "${f%.png}" -l fra+eng --oem 1 --psm 6
done
cat prep-page-*.txt > article.txt
# 4) PDF accessible
img2pdf prep-page-*.png -o prepped.pdf
ocrmypdf --force-ocr prepped.pdf article_ocr.pdf
echo "OK : article.txt et article_ocr.pdf générés."
```
---
## Dépendances (rapide)
`ghostscript`, `imagemagick` (ou `magick`), `ocrmypdf`, `tesseract-ocr`, `tesseract-ocr-fra`, `img2pdf`, `unpaper` (optionnel).
---
## Rappel pratique
* Toujours travailler sur une copie. ??
* Si tu veux, je peux te générer un **PDF prêt‑à‑imprimer** de cette fiche ou une **version Markdown** pour ton dépôt.
---
*Fait pour les cas désespérés — garde cette page comme aide‑mémoire.*
Merci et bonne journée
Sincèrement
Bernard Schœnacker
Reply to: