- InkSight de Google Research est une approche qui restaure des photos d’écriture manuscrite sous forme d’encre numérique au niveau des traits de stylo, afin de stocker et modifier des notes papier comme des notes numériques sans équipement spécialisé
- Contrairement à un simple OCR, qui se limite à transcrire du texte, InkSight restaure les trajectoires des traits qui ont formé l’écriture, permettant de l’examiner et de continuer à écrire tout en conservant le style manuscrit
- Le modèle n’extrait pas seulement des caractéristiques géométriques : il apprend simultanément à lire et écrire, avec un encodeur ViT et un encodeur-décodeur mT5 pour gérer la reconnaissance des mots et la génération des traits
- Pour une page complète, le système utilise un flux où l’OCR trouve des boîtes englobantes au niveau des mots, dérend chaque mot séparément, puis remplace l’écriture en pixels par les traits restaurés
- Lors de l’évaluation, les sorties de Large-i, qui compte environ 1 milliard de paramètres, ont été jugées dans plusieurs cas similaires à de l’encre numérique produite par des humains, et 87 % ont été classées comme de bons tracés ou comme des tracés ne présentant que de petites erreurs
Pourquoi transformer l’écriture manuscrite sur papier en encre numérique
- Les notes numériques offrent durabilité, possibilité d’édition et indexabilité, mais beaucoup de personnes continuent à prendre des notes avec du papier et un stylo
- Le processus qui transforme l’écriture manuscrite physique en forme numérique est le dérendu (derendering), et le résultat est constitué de traits qui stockent les mouvements du stylo ou du doigt sous forme de séquences de points
- Cette représentation est aussi appelée représentation d’écriture « en ligne » ou encre numérique
- Un simple OCR transcrit l’écriture manuscrite en document texte, tandis que l’encre numérique capture le document manuscrit comme un ensemble de traits
- L’utilisateur peut l’éditer plus naturellement à la main
- Le style d’écriture et la sensation d’une vraie écriture manuscrite peuvent être préservés
- Les notes peuvent être organisées et intégrées avec des images, du texte, des liens et des fonctions d’assistance numérique
- Jusqu’ici, certaines approches utilisaient des stylos intelligents, du papier spécial et des piles logicielles dédiées, mais le matériel supplémentaire et le coût constituent des freins à l’adoption
Ce que restaure InkSight
- InkSight: Offline-to-Online Handwriting Conversion by Learning to Read and Write extrait les traits qui ont formé l’écriture à partir de photos de notes manuscrites
- Il n’utilise que des photos en entrée, sans équipement séparé, et le modèle ainsi que le code d’inférence sont disponibles dans le repo GitHub
- Il ne dépend pas des composants géométriques classiques comme les gradients, les contours ou les formes dans l’image
- Le modèle apprend deux capacités en même temps
- Lecture : reconnaître les mots dans l’image
- Écriture : produire des traits qui ressemblent à de l’écriture manuscrite
- Cette combinaison est conçue pour fonctionner de manière plus robuste même avec des entrées difficiles, comme des conditions d’éclairage variées, des occultations ou des apparences diverses
Flux système pour le traitement au niveau de la page
- L’objectif de base est de capturer les trajectoires au niveau des traits de l’écriture manuscrite afin que l’utilisateur puisse les stocker dans l’application de prise de notes de son choix
- En interne, un modèle OCR prêt à l’emploi identifie les mots manuscrits, puis le modèle convertit ces mots en traits
- Pour la reproductibilité, la réutilisation et la facilité d’adoption, l’approche combine l’encodeur ViT et l’encodeur-décodeur mT5, largement utilisés
- Comme il faut traiter des images de taille arbitraire, différentes résolutions et des quantités de contenu variables, la scalabilité est un enjeu majeur
- Entraîner directement sur des entrées à très haute résolution et de longues séquences de sortie augmente fortement le coût de calcul ; le dérendu de page est donc divisé en trois étapes
- Extraire les boîtes englobantes au niveau des mots avec l’OCR
- Dérendre chaque mot séparément
- Remplacer la représentation en pixels hors ligne par les traits dérendus
- L’augmentation de données est utilisée pour réduire l’écart de domaine entre les images synthétiques d’encre rendue et les photos réelles
- Randomisation de l’angle de l’encre, de la couleur et de la largeur des traits
- Ajout de bruit gaussien et d’arrière-plans complexes
Comment le modèle apprend à lire et à écrire ensemble
- Rassembler suffisamment de paires d’images et d’encre numérique de référence pour l’apprentissage supervisé est coûteux et prend du temps, et il semble qu’il n’existe pas de dataset suffisamment diversifié pour cette tâche
- InkSight utilise une configuration d’apprentissage multitâche afin de généraliser sans un grand volume d’échantillons appariés
- Le mélange d’entraînement comprend cinq types de tâches
- Une tâche de dérendu qui génère de l’encre numérique à partir d’une image
- Une tâche de dérendu qui reçoit en entrée une image et le texte reconnu par OCR pour générer de l’encre numérique
- Une tâche de reconnaissance qui produit du texte à partir d’images réelles
- Une tâche de reconnaissance qui produit du texte à partir d’images synthétiques
- Une tâche mixte reconnaissance-dérendu qui produit à la fois du texte et de l’encre
- Chaque tâche utilise un texte d’entrée propre à la tâche, afin que le modèle puisse distinguer les tâches pendant l’entraînement et l’inférence
- L’apprentissage de la lecture aide à localiser et extraire plus précisément les éléments textuels dans l’image
- L’apprentissage de l’écriture fait en sorte que la représentation vectorielle de sortie suive une dynamique physique et un ordre des traits proches de la manière dont les humains écrivent
Représentation de l’encre numérique et tokenisation
- L’entraînement utilise des paires composées d’images de texte et de l’encre numérique correspondante
- L’encre numérique est échantillonnée à partir de trajectoires d’écriture en temps réel, puis représentée sous forme de séquences de traits
- Chaque trait est une séquence de points échantillonnés à vitesse constante
- L’exemple utilise un échantillonnage de 50 points par seconde
- Les images correspondantes sont générées en rendant l’encre sous forme de bitmap à une résolution donnée
- Ce processus crée la correspondance pixels-traits qui sert de prérequis aux paires entrée-sortie du modèle
- Le tokenizer d’encre transforme les points dans un format adapté aux LLM
- Chaque point est converti en deux tokens encodant respectivement les coordonnées x et y
- La séquence de tokens d’encre commence par
b, qui indique le début d’un trait - Elle est ensuite suivie des tokens de coordonnées des points échantillonnés
Données d’évaluation et modèles comparés
- Un dataset d’évaluation distinct a été collecté pour mesurer les performances
- Les données d’évaluation partent de données OCR et ajoutent des paires de tracés produits par des humains, où des personnes ont directement recopié les images de texte présentées
- Trois variantes du modèle ont été entraînées
- Small-p : environ 340 millions de paramètres, configuration public
- Small-i : configuration in-house
- Large-i : environ 1 milliard de paramètres
- La baseline General Virtual Sketching a été utilisée comme point de comparaison
- Dans les évaluations automatiques comme humaines, les représentations vectorielles produites par le système sont sémantiquement et géométriquement proches des images d’entrée, et similaires aux données d’encre numérique produites par des humains
Différences observées dans l’évaluation qualitative
- Les modèles et GVS ont été comparés sur les datasets publics d’évaluation IAM, IMGUR5K, ainsi que sur un dataset de croquis hors domaine
- Les modèles InkSight reflètent généralement correctement le contenu textuel et ignorent l’arrière-plan sans rapport avec le sens
- Ils peuvent aussi traiter des entrées comportant des occultations, ce qui montre l’intérêt des connaissances préalables de lecture acquises
- GVS génère plusieurs traits redondants et a du mal à distinguer l’arrière-plan du premier plan
- Large-i conserve davantage de détails et peut accepter une plus grande variété de styles d’images
- Sur les croquis hors domaine, les modèles dérendent généralement les croquis simples, mais des artefacts tels que des traits inutiles ou mal alignés apparaissent encore
Évaluation humaine et limites
- Il n’existe actuellement pas d’indicateurs ou de benchmarks établis pour l’évaluation quantitative dans ce domaine
- Dans l’évaluation humaine, les données de tracés humains du dataset HierText ont été utilisées comme groupe témoin, et les sorties du modèle pour les mêmes échantillons comme groupe expérimental
- Les évaluateurs voyaient l’image originale et l’échantillon d’encre numérique rendu, puis répondaient à deux questions
- Évaluer si la sortie est un tracé raisonnable de l’image d’entrée
- Évaluer si cette encre numérique pourrait sembler avoir été produite par un humain
- L’évaluation a impliqué 16 personnes familières avec l’encre numérique mais n’ayant pas participé à la recherche
- Chaque échantillon a été évalué par 3 évaluateurs
- Les résultats ont été agrégés par vote majoritaire
- La majorité de l’encre dérendue générée par Large-i a été jugée d’un niveau similaire à celle produite par des humains
- 87 % des sorties de Large-i ont été classées comme de bons tracés ou comme des tracés ne présentant que de petites erreurs
- Dans les comparaisons d’exemples, tous les modèles ont mal traité les guillemets doubles de l’échantillon de la ligne du haut, tandis que dans l’échantillon de la ligne du bas, un tracé humain se concentrait uniquement sur les mots principaux et manquait la plupart des autres éléments
- Les tracés humains eux-mêmes ne sont pas parfaitement alignés avec l’image de base, ce qui montre que le traçage des parties manuscrites de HierText est en soi complexe et difficile
Conclusion
- InkSight est une première approche de ce type pour convertir des photos d’écriture manuscrite en encre numérique
- Sa configuration d’entraînement est conçue pour fonctionner même sans données d’entraînement appariées
- Elle fonctionne de manière robuste sur diverses entrées, peut être appliquée à des notes manuscrites complètes et se généralise dans une certaine mesure aux croquis hors domaine
- C’est une approche qui peut être construite avec des composants standards, sans modélisation complexe
1 commentaires
Avis sur Hacker News
J’ai acheté un petit tableau blanc pour réfrigérateur, et combiné à la fonction de l’iPhone qui photographie l’écriture manuscrite pour la copier en texte, c’est assez excellent
Ce n’est pas toujours parfait, et mon écriture ne l’est pas non plus, mais c’est largement suffisant pour corriger une ou deux lettres et l’envoyer
C’est efficace parce qu’on n’envoie pas toute l’image, on n’a pas besoin de taper ni de glisser le doigt, on n’a même pas besoin de regarder l’écran, mon conjoint peut consulter la liste à tout moment, et il n’est pas nécessaire de la mettre dans le cloud
Pas besoin d’alimentation, les marqueurs durent longtemps, et quand il manque quelque chose dans le réfrigérateur, le geste de prendre aussitôt le marqueur pour l’écrire dessus paraît très naturel
Très chouette. Il y a des applications intéressantes pour ce genre de technologie. Mon écriture manuscrite est assez mauvaise, et encore pire quand j’écris vite
Quand j’enseigne, l’écriture que je mets au tableau est souvent bien moins lisible que je ne le voudrais
Je pourrais imaginer entraîner un tel système avec mon écriture très lente et très soignée, puis lui faire transformer, pendant le cours, mon écriture rapide et mauvaise au tableau blanc en une version plus propre de ma propre écriture
Le retour est complètement différent de celui d’un stylo-bille, et cela dépend aussi du type de papier et d’encre. L’écriture devient moins « prévisible » et un peu plus agréable
On peut très bien commencer avec un modèle bon marché à 5–15 dollars à plume moyenne ; certains finissent par collectionner les stylos-plume, mais moi j’écris la plupart de ce que je mets sur papier avec un Pelikan Jazz à environ 20 dollars
Au début, on ralentit, mais pas très longtemps
C’est l’un des conseils qui ont « changé la donne » quand j’étais tuteur à l’université. L’autre consistait à toujours recopier les livres de la fin vers le début ; c’était très utile, même si c’est aujourd’hui une méthode un peu datée
En particulier, en combinant la voix qui explique les formules avec le LaTeX, on peut aussi corriger les erreurs
En ne lisant que le titre, j’ai naïvement cru qu’il s’agissait d’un article sur la façon de retrouver une compétence perdue et de revenir à de beaux carnets manuscrits faciles à lire
C’est un problème que je rencontre aujourd’hui, après avoir trop tapé au clavier et moins écrit à la main pendant des années
La vraie recherche de Google aide tout de même, puisqu’elle rend mes notes numériques moins chaotiques. Mais je préférerais ne pas dépendre d’innovations technologiques pour améliorer mon écriture
Certaines personnes publient gratuitement ou vendent des feuilles d’entraînement avec des lignes spéciales pour aider à aligner les différentes hauteurs ou à obtenir l’inclinaison parfaite
Comme quand on apprend à écrire au début, il faut y consacrer du temps, s’y intéresser et le faire soi-même
Mon écriture est bien meilleure au stylo-plume qu’au stylo-bille ou au stylo gel. Je pense que c’est parce qu’un stylo-plume impose une position et un angle optimaux. Ce n’est pas un objet qui écrit quel que soit l’angle avec lequel on l’appuie sur le papier, donc il est plus exigeant, et il offre aussi une sensation plus douce et un meilleur retour
Pas besoin d’aller trop loin : un Pilot Metro à plume moyenne, autour de 20 euros, ou un modèle similaire, suffit largement
À partir de là, il est facile de développer son propre style
Le stylo-plume m’a aidé à ralentir, mais fondamentalement il s’agissait d’écrire assez lentement pour former consciemment de belles lettres ; une fois que c’est devenu plus facile, la vitesse est revenue. L’habitude de prêter assez attention pour former de belles lettres est tout de même restée
Plutôt qu’un entraînement délibéré avec des feuilles d’exercices ou des drills, le plus important est d’écrire assez lentement pour former correctement les lettres jusqu’à ce que la mémoire musculaire s’installe et que la vitesse revienne
https://handwritingrepair.info/
Ou bien ceci vaut aussi le détour
https://sites.google.com/view/briem/free-books
Le superbe The First Writing Book: Arrighi's Operina de John Howard Benson, ou l’excellent An Italic Calligraphy Handbook de Carolyn Knudsen, sont également de bonnes ressources. Leurs titres sont modestes, mais le contenu est bien meilleur, et on peut les utiliser avec un marqueur à pointe biseautée ou un stylo-plume
Il y a 10 ans, j’ai essayé Tesseract pour l’OCR, et il reconnaissait suffisamment bien l’anglais. Si ma mémoire est bonne, Tesseract était aussi développé par Google et open source
À l’époque, je l’avais essayé sur une langue autre que l’anglais, à savoir le grec, et les résultats étaient très mauvais
C’est réjouissant de voir de bons travaux de recherche en OCR fondé sur les Transformers
J’ai aussi passé la table des matières à l’OCR, puis j’ai ajusté les paramètres de segmentation des pages dans le terminal jusqu’à obtenir une sortie copiable-collable, avant d’ajouter une table des matières navigable
1 : avec l’aide de https://github.com/ocrmypdf/OCRmyPDF
2 : https://tesseract-ocr.github.io/tessdoc/Command-Line-Usage.html, « Using different Page Segmentation Modes »
Mais il a quand même l’avantage d’être gratuit
Je me demande quel est l’état de l’art actuel pour détecter l’écriture manuscrite dans des photos
Le suivi des traits est intéressant, mais ce qui m’intéresse davantage, c’est de convertir mes notes manuscrites en Markdown
Cela dit, la précision est plutôt autour de 90 à 95 %, donc il faut relire la sortie avant de s’y fier
Expérience très intéressante. Je développe une application d’écriture manuscrite depuis quelques années, et ce serait vraiment bien de pouvoir y ajouter une fonction qui prend une photo et la convertit en encre numérique
[0] https://scrivanolabs.github.io
Est-ce que ça peut aussi lire les gribouillis des médecins ? Si oui, ce serait une avancée majeure pour la saisie de données médicales
Il faut être très prudent avant d’ajouter une couche d’interprétation supplémentaire entre le médecin et l’infirmier ou l’infirmière chargé(e) des soins
C’est dommage qu’on n’enseigne pas l’écriture en lettres capitales à la fac de médecine comme on l’enseignait autrefois aux dessinateurs industriels
Le moment où Apple Notes a corrigé mon écriture dans mon propre style manuscrit a été effrayant
J’attends toujours un environnement de programmation utilisable au stylet sur tablette. J’aimerais qu’on ne soit pas obligé de transporter un clavier Bluetooth
Malheureusement, comme la plupart des gens ne paieraient probablement pas pour ça, personne ne semble s’y intéresser comme opportunité commerciale
J’aime aussi travailler avec du papier et un stylo, mais c’est mieux adapté à la génération d’idées, aux diagrammes et aux listes de tâches qu’à une saisie structurée
Je pense que les modèles qui transforment l’écriture manuscrite « hors ligne », c’est-à-dire l’encre sur papier, en une forme « en ligne », avec l’ordre et le timing des traits, pourraient être vraiment utiles dans les pipelines de reconnaissance d’écriture manuscrite de documents historiques
Mais au final, il faudra une approche intégrée de bout en bout
Je ne comprends pas pourquoi la reconnaissance de l’écriture manuscrite dans les documents historiques est autant négligée dans tous les benchmarks d’évaluation des modèles multitâches. Il existe des millions de documents historiques manuscrits non indexés, qui pourraient nous permettre de comprendre bien mieux notre passé récent
Et, par extension, donner aussi aux modèles une bien meilleure compréhension de ce passé récent