Projet | ArXiv | Papier | Huggingface-démo | Démo Colab
2024.02 Testez le modèle à l'aide d'échantillons d'écriture manuscrite personnalisés :
Une démo Huggingface est maintenant disponible et en cours d'exécution
Démo Colab pour les écritures manuscrites personnalisées
Démo Colab pour l'ensemble de données IAM/CVL
Ankan Kumar Bhunia, Salman Khan, Hisham Cholakkal, Rao Muhammad Anwer, Fahad Shahbaz Khan et Mubarak Shah
Résumé : Nous proposons une nouvelle approche de génération d'images de texte manuscrites stylisées basée sur un transformateur, HWT, qui s'efforce d'apprendre à la fois l'enchevêtrement style-contenu ainsi que les modèles de style d'écriture globaux et locaux. Le HWT proposé capture les relations à long et à court terme au sein des exemples de style grâce à un mécanisme d'auto-attention, codant ainsi les modèles de style globaux et locaux. De plus, le HWT basé sur un transformateur proposé comprend une attention codeur-décodeur qui permet l'intrication style-contenu en rassemblant la représentation de style de chaque caractère de requête. Au meilleur de nos connaissances, nous sommes les premiers à introduire un réseau génératif basé sur un transformateur pour la génération de texte manuscrit stylisé. Notre HWT proposé génère des images de texte manuscrites de style réaliste et surpasse considérablement l'état de l'art démontré par des évaluations qualitatives, quantitatives et humaines approfondies. Le HWT proposé peut gérer une longueur de texte arbitraire et tout style d'écriture souhaité en quelques prises de vue. De plus, notre HWT se généralise bien au scénario difficile dans lequel les mots et le style d'écriture sont invisibles pendant la formation, générant des images de texte manuscrites de style réaliste.
Python3.7
PyTorch >=1,4
Veuillez consulter INSTALL.md
pour installer les bibliothèques requises. Vous pouvez modifier le contenu du fichier mytext.txt
pour visualiser l'écriture manuscrite générée pendant l'entraînement.
Téléchargez les fichiers et les modèles de l'ensemble de données à partir de https://drive.google.com/file/d/16g9zgysQnWk7-353_tMig92KsZsrcM6k/view?usp=sharing et décompressez-les dans le dossier files
. En bref, exécutez les lignes suivantes dans un terminal bash.
git clone https://github.com/ankanbhunia/Handwriting-Transformerscd Écriture-Transformers pip install --upgrade --no-cache-dir gdown gdown --id 16g9zgysQnWk7-353_tMig92KsZsrcM6k && décompresser les fichiers.zip && rm files.zip
Pour commencer à entraîner le modèle : exécutez
python train.py
Si vous souhaitez utiliser wandb
veuillez l'installer et modifier votre auth_key dans le fichier train.py
(ln:4).
Vous pouvez modifier différents paramètres dans le fichier params.py
.
Vous pouvez entraîner le modèle dans n'importe quel ensemble de données personnalisé autre que IAM et CVL. Le processus consiste à créer un fichier dataset_name.pickle
et à le placer dans le dossier files
. La structure de dataset_name.pickle
est un simple dictionnaire Python.
{'train' : [{writer_1 :[{'img' : <PIL.IMAGE>, 'label' :<str_label>},...]}, {writer_2 :[{'img' : <PIL.IMAGE> , 'étiquette' :<str_label>},...]},...], 'test' : [{writer_3 :[{'img' : <PIL.IMAGE>, 'label' :<str_label>},...]}, {writer_4 :[{'img' : <PIL.IMAGE>, 'étiquette' :<str_label>},...]},...], }
docker run -it -p 7860:7860 --platform=linux/amd64 registry.hf.space/ankankbhunia-hwt:latest python app.py
Veuillez consulter le dossier results
dans le référentiel pour voir une analyse plus qualitative. Veuillez également consulter la démo Colab pour essayer avec votre propre texte et style d'écriture personnalisés.
Résultats de reconstruction utilisant le HWT proposé par rapport à GANwriting et Davis et al. Nous utilisons le même texte que dans les exemples de style pour générer des images manuscrites.
Si vous utilisez le code pour votre recherche, veuillez citer notre article :
@InProceedings{Bhunia_2021_ICCV, author = {Bhunia, Ankan Kumar and Khan, Salman and Cholakkal, Hisham and Anwer, Rao Muhammad and Khan, Fahad Shahbaz and Shah, Mubarak}, title = {Handwriting Transformers}, booktitle = {Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV)}, month = {October}, year = {2021}, pages = {1086-1094} }