YoloCR is a convenient OCR script.

README 6.9KB

Pour les nuls :

Installer les prérequis avec le script d'installation pour Debian Stretch.
Vous pouvez installer Debian Stretch dans une machine virtuelle telle que Virtualbox.

Prérequis :

Prérequis Unix :

Prérequis Windows :

  • Cygwin : https://www.cygwin.com/ /!\ Si vous utilisez Windows 10, vous pouvez installer BashOnWindows à la place de Cygwin.
  • Paquets à activer durant l'installation de Cygwin : bc gnupg links make perl wget tesseract-ocr tesseract-ocr-fra
  • ABBYY FineReader (Optionnel), si vous ne souhaitez pas utiliser ou installer Tesseract
  • Installation de GNU Parallel, depuis la console Cygwin : wget -O - pi.dk/3 | bash if [ -f ~/bin/parallel ]; then mv ~/bin/parallel /usr/local/bin/; fi
  • Utilisation de la console Cygwin : https://doc.ubuntu-fr.org/tutoriel/console_commandes_de_base Le chemin du disque C est "/cygdrive/c". Les scripts devront être lancés depuis la console Cygwin.

Script d'installation des prérequis pour Debian Stretch :

sh YoloDebInstallation.sh

PPA Vapoursynth pour Ubuntu et Linux Mint (non testé) :

https://launchpad.net/~djcj/+archive/ubuntu/vapoursynth

0) Vous pouvez déterminer les paramètres à rentrer dans YoloCR.vpy à l'aide de Vapoursynth Editor et des scripts annexes.

Dans l'éditeur, vous pourrez vérifier vos résultats avec la touche "F5".
Ouvrez d'abord YoloResize.vpy dans Vapoursynth Editor.
    FichierSource est le chemin de la vidéo à OCR. Ne pas oublier les apostrophes.
    DimensionCropBox vous permet de limiter la zone à OCR. Cela augmentera la vitesse de traitement ET la fiabilité de l'OCR qui s'en suivra.
    HauteurCropBox définit la hauteur du bord inférieur de la CropBox.
        Notez que ces deux paramètres se règlent avant upscale.
    Vous pouvez ensuite passer la valeur de Supersampling à -1 et vérifier que vos sous-titres ne sont pas en contact avec le bord blanc.
Ouvrez maintenant YoloSeuil.vpy dans l'éditeur.
    Paramétrez les paramètres FichierSource, DimensionCropBox et HauteurCropBox comme précedemment.
    Choisissez le ModeS qui vous convient. 'L' dans le cas d'un seuil blanc ou noir, successivement 'R', 'G' et 'B' dans le cas contraire.
    Réglez le Seuil. Les valeurs pourront être trouvées à l'aide du "Color Panel" disponible dans la fenêtre de prévisualisation.
        Dans le cas de l'inline (intérieur des sous-titres), cherchez le seuil minimum.
        Dans de le cas de l'outline (bordure des sous-titres), cherchez le seuil maximum.
            Vous pouvez vérifier les valeurs sucessivement trouvées en modifant le paramètre Seuil par celles-ci.
        Dans le cas de l'inline, les sous-titres doivent rester pleinement visibles.
        Dans de le cas de l'outline, l'outline doit être complètement noire.
    Si vous ne comprenez pas l'utilisation de ce script, passez à l'étape suivante.
Vérifiez dans YoloCR.vpy que le résultat du filtrage vous convient.
    Augmentez le SeuilO (seuil outline) si il manque des lettres.
    Diminuez le SeuilI (seuil inline) si cela permet une amélioration de la propreté des lettres.

1) Filtrer la vidéo à l'aide du script YoloCR.vpy.

N'oubliez pas d'éditer les premières lignes de YoloCR.vpy en fonction de votre fichier source et des réglages trouvés précedemment.
    Une fois les paramètres configurés, fermez l'éditeur pour éviter que le fichier "SceneChanges.log" qui sera créé durant l'étape suivante ne soit écrasé par erreur.
vspipe -y YoloCR.vpy - | ffmpeg -i - -c:v mpeg4 -qscale:v 3 -y Vidéo_Filtrée.mp4
    Faites bien attention à utiliser un nom différent pour votre "Vidéo_Source" et votre "Vidéo_Filtrée".
Vous disposez maintenant d'une vidéo OCR-isable et des informations de changement de scène.

2) Script d'OCR en lui-même : YoloCR.sh.

La vidéo OCR-isable et les informations de changement de scène doivent être dans le même dossier.
./YoloCR.sh Vidéo_Filtrée.mp4

Vous pouvez utiliser YoloTime.sh à la place de YoloCR.sh si vous souhaitez seulement le Time des sous-titres.

3) C'est l'heure du Check :D

Utilisation de YoloCR en série :

1) Vérifiez bien que sxiv n'est pas installé.
2) Assurez-vous que le répertoire YoloCR contient tous les épisodes à OCR et uniquement ceux-ci.
3) Commentez la première ligne de YoloCR.vpy. ("FichierSource" devient "#FichierSource".)
4) Placez vous dans le répertoire de YoloCR et utilisez cette commande bash :
    for file in *.mp4; do filef="${file%.*}_filtered.mp4"; vspipe -y --arg FichierSource="$file" YoloCR.vpy - | ffmpeg -i - -c:v mpeg4 -qscale:v 3 -y "$filef"; ./YoloCR.sh "$filef"; done
        "*.mp4" signifie "tous les fichiers possédant l'extension mp4". Documentez vous sur les regex bash pour plus de souplesse.

Bugs connus :

  • Le moteur LSTM de Tesseract produit un OCR de moindre qualité (notamment au niveau de la détection des italiques). Utiliser les traineddata du moteur Legacy à la place : https://github.com/tesseract-ocr/tessdata
  • Cygwin (Windows), à la première utilisation du script YoloCR.sh. Signal SIGCHLD received, but no signal handler set. ./YoloCR.sh: ligne 121: ((: > 4 : erreur de syntaxe : opérande attendue (le sym bole erroné est "> 4 "). L'erreur disparaît à partir de la seconde utilisation.
  • Babun (Windows), un florilège d'erreurs lors de l'utilisation du script YoloCR.sh. Installez Cygwin à la place.

Contact : https://discord.gg/USD6wK3