Technologies communautaires/Améliorations de l'OCR
Ce projet a pour but d’améliorer les outils de reconnaissance optique de caractères (OCR) sur Wikisource. Actuellement, les contributeurs sur Wikisource utilisent un ensemble d’outils d'OCR pour extraire le texte des livres. Ces outils sont très importants, mais ils ont de nombreux problèmes, dont les suivants :
- les outils peuvent être difficiles à découvrir pour les nouveaux utilisateurs ;
- certains outils sont cassé, inefficaces ou peu fiables ;
- l’expérience utilisateur est complexe et peu attrayante ;
- il peut être difficile de déterminer quel outil est le meilleur pour un texte donné.
Pour toutes ces raisons, les utilisateurs peuvent être découragés de contribuer à Wikisource. Nous espérons pouvoir améliorer les outils d'OCR afin que les contributeurs puissent travailler plus facilement. Ce projet a été la deuxième demande de la Consultation 2020 des souhaits de la communauté. Au cours de ce projet, nous enquêterons et identifierons les principaux problèmes, collaborerons avec diverses communautés et mettrons en œuvre des solutions qui permettront aux bénévoles de contribuer plus facilement. Nous aimerions lire vos retours sur la page de discussion !
Pourquoi utiliser les outils d'OCR
Pour Wikisource, les outils d’OCR sont cruciaux pour les contributeurs. OCR signifie « reconnaissance optique de caractères » (« optical text recognition » en anglais). Un outil d’OCR convertit une image représentant du texte en un texte numériquement encodé comme étant du texte. Lorsque le processus est terminé, l’utilisateur obtient une version numérique du texte qui peut être modifié et stocké électroniquement et dans lequel on peut rechercher une expression. Les outils d’OCR sont communément utilisés par de nombreuses communautés et plateformes en ligne, dont Wikisource.
Quand les contributeurs ajoutent des livres sur Wikisource, ils procèdent généralement de la façon suivante :
- Importer un fichier sur Wikimedia Commons. Le livre est habituellement un fichier PDF ou DjVu, contenant des scans de pages.
- Créer une page Livre: (grâce à l'extension Proofread Page) pour le livre sur Wikisource.
- Relire le livre, page par page :
- [C’est là qu’intervient l’OCR] Convertir l’image en texte numérique modifiable à l’aide d’un outil d’OCR.
- Une fois terminé, l’utilisateur a une version nouvellement numérisée du texte.
Comment utiliser les outils d’OCR
Sur Wikisource, les outils d’OCR sont accessibles quand l’utilisateur clique sur l’onglet « Modifier » d’une page.
Une fois qu’il a cliqué sur « Modifier », l’utilisateur verra le fichier image original du texte (à droite). Parfois, le fichier a déjà été traité par OCR (à gauche), par exemple quand il vient d’Internet Archive qui traite automatiquement par OCR certains textes, notamment pour les langues avec un alphabet latin. Cependant, ces textes passent souvent une nouvelle fois par un traitement OCR avec les outils de Wikisource qui peuvent améliorer la couche de texte existante. Pour cela, l’utilisateur utilisera les outils d’OCR (décrits ci-dessous) pour faire du fichier image un fichier texte (comme affiché à gauche).
Parfois, les textes peuvent ne pas être passés du tout par un traitement OCR. Dans ce cas, l’utilisateur verra le fichier image (à droite) et une section vierge (à gauche). L'utilisateur utilise alors les outils d’OCR (décrits ci-dessous) pour transformer le fichier image en fichier texte (comme affiché à gauche). Une fois cela terminé, le texte est prêt à être relu.
Les désignations gauche et droite sont inversés pour les langues qui s’écrivent de droite à gauche.
Il est important de comprendre que les outils d’OCR ne fonctionnent pas pour tous les textes. Par exemple, les manuscrits écrits à la main sont rarement pris en charge par les outils d’OCR, parce que les caractères ne sont pas normalisés dans des polices générées par ordinateur. Dans ces cas, l'utilisateur doit saisir manuellement le texte affiché dans le fichier image.
Outils d’OCR disponibles sur Wikisource
Gadget OCR
Le gadget OCR (lien en anglais) aussi appelé OCR « basique », est un outil d’OCR largement utilisé sur Wikisource, développé à l’origine par Phe. Il utilise Tesseract, un système d’OCR à source ouverte sponsorisé par Google et hébergé sur Toolforge, pour générer le nouveau texte. Il fait partie d’une plus grande suite d’outils pour Wikisource appelée Phetools, et utilise un système sophistiqué de pré-traitement et de cache pour fournir de grandes performances interactives.
La dorsale utilise la norme de format d’OCR structuré hOCR pour communiquer avec le gadget. Le gadget OCR est considéré comme meilleur que l’OCR de Google (que nous allons décrire ci-dessous) pour reconnaître le texte en colonnes. Cependant, il a plus d’erreurs de caractères. De plus, il a une prise en charge limitée des langues : généralement, il prend en charge les langues à alphabet latin, mais prend rarement en charge les langues indo-aryennes. Par exemple, il ne prend pas en charge le hindi ni le pendjabi. Il manque aussi un mainteneur actif à l’outil, ce qui a conduit à de longues coupures partielles ou totales par le passé.
Pour activer le gadget OCR, allez dans vos préférences. Dans l’onglet « Gadgets », vous allez sur « Outils de rédaction pour l’espace de noms Page: ». Une fois activé, le gadget OCR est accessible depuis la barre d’outils (sur la capture d’écran, l’icône OCR est coloré en gris). Lorsque vous cliquez sur l’icône, une version traitée par OCR devrait apparaitre sur le côté gauche. L’utilisateur peut ensuite relire cette version du texte.
OCR de Google
En 2016, l’équipe Technologie communautaire a développé l’OCR de Google qui était le vœu no 25 de la Consultation 2015 des souhaits de la communauté. L’outil d’OCR de Google a été pensé pour répondre à l’absence de prise en charge des langues indo-aryennes dans les systèmes d’OCR basés sur Tesseract, tel que le gadget OCR. Ce nouvel outil d’OCR utilisait [Special:MyLanguage/Community Tech/Google OCR for Indic language Wikisources/notes l’API Cloud Vision] fournie par Google.
Avec le développement de l’OCR de Google, les contributeurs Wikisource ont pu utiliser un OCR pour les éditions linguistiques suivantes : Wikisource multilingue, arabe, assamais, bulgare, bengali, anglais, espagnol, hindi, kannada, marathi, malayalam, napolitain, odia, russe, sanscrit, tamoul, télougou et gujarati. Cependant, certaines langues indo-aryennes avec une communauté Wikisource active n’ont pas été incluses. Vous pouvez consulter la liste complète des langues prises en charge par l’API Google Vision.
Généralement, l’OCR de Google est considéré comme étant un outil d’OCR plutôt précis. Cependant, il y a parfois des problèmes pour reconnaître correctement le texte en colonnes, ce qui mélange les lignes.
Pour activer le gadget OCR de Google, allez dans vos préférences. Dans l’onglet Gadget, allez sur « Outils de rédaction pour l’espace de noms Page: » et cliquez sur « Google OCR : activer le bouton OCR de Google pour soumettre l’image de la page au service OCR de Google. » Une fois activé, le gadget Google est accessible dans la barre d’outils (voir la capture d’écran ci-dessus) en cliquant sur l’icône tri-colore « OCR ». Lorsque vous cliquez sur l’icône, une version traitée par OCR devrait apparaître à gauche. Sinon, vous pouvez aller sur le site web et ajouter l’image pour traiter une image unique (mais cela est principalement utilisé pour d’autres buts que Wikisource).
OCR indo-aryen
En 2018, Jay Prakash, un programmeur bénévole, a développé IndicOCR (OCR indo-aryen). Cet outil utilise Google Drive, lequel utilise une outil autre que Cloud Vision. L'outil devait permettre de contourner les limites imposées par GoogleOCR en fournissant un soutien à plus de langues indo-aryennes, dont le bengali, bhodjpouri, gujarati, hindi, kannada, Maithili, malayalam, marathi, népalais, Odia, pendjabi, sanskrit, tamoul, télougou et ourdou. Pour plusieurs de ces langues, il n'y a aucune communauté Wikisource ; cet outil pourrait leur servir dans le futur.
Pour activer IndicOCR, ajoutez la page common.js à votre wiki local.
mw.loader.load('//meta.wikimedia.org/w/index.php?title=User:Indic-TechCom/Script/IndicOCR.js&action=raw&ctype=text/javascript');
Si vous voulez ajouter un bouton supplémentaire dans l’éditeur visuel, ajoutez le code suivant à la page common.js de votre wiki local.
mw.loader.load('//meta.wikimedia.org/w/index.php?title=User:Indic-TechCom/Script/OCR4VE.js&action=raw&ctype=text/javascript');
Une fois activé, il apparait sous la forme d’une icône d’analyse de texte (une loupe par dessus du texte) dans la barre d’outils (regardez la capture d’écran ci-dessous). En cliquant sur l’icône, une version du texte traité par OCR devrait apparaitre sur le côté gauche. Autrement, vous pouvez aller sur le site web directement et ajouter l’image si vous n’en traitez qu’une. Pour plus d’informations consultez la documentation.
OCR4Wikisource
OCR4Wikisource, développé par T. Shrinivasan, est un script Python configuré pour s’exécuter sur les systèmes Linux. Il nécessite que vous indiquiez votre mot de passe en clair (sur votre appareil personnel). L’outil téléchargera le livre depuis Wikimedia Commons, divisera le fichier en pages uniques, téléversera les pages sur Google Drive une par une pour effectuer l’OCR, téléchargera le texte en résultant et le mettra en ligne sur les pages Wikisource respectives. Ce processus entier peut être fait sur un appareil personnel plutôt qu’en cliquant sur l’icône OCR pour chaque page. Au final, cela permet de mettre en ligne des versions traitées par OCR des pages directement sur Wikisource.
Il s’agit du seul outil de mise en ligne groupée proposé aux utilisateurs, c’est pourquoi certains l’apprécient. La qualité de l’OCR est aussi considérée comme étant plutôt bonne. Avant qu’IndicOCR ne soit développée, beaucoup de Wikisourciens de langues indo-aryennes utilisaient OCR4Wikisource. Vous pouvez lire la documentation.
Pour activer OCR4Wikisource, vous devrez télécharger le fichier zip depuis un lien (donné dans la documentation), puis vous devrez suivre les étapes depuis le terminal pour achever le processus.
Principaux problème avec les outils d’OCR
Découvrabilité
Si vous êtes un nouveau contributeur Wikisouce, il peut être difficile d’utiliser les outils d’OCR pour la première fois. Vous ne saurez peut-être pas que vous devriez utiliser des outils d’OCR. Si vous êtes au courant, il est quand même possible que vous ne sachiez pas quels outils sont disponible ou comment y accéder. La documentation sur ces processus varie selon les wikis, certains wikis ont une documentation plus complète que d’autres. Ainsi, les nouveaux contributeurs ont souvent besoin d’interagir directement avec des Wikisourciens expérimentés pour recevoir ces informations.
Une fois que les utilisateurs ont pris connaissance des outils d’OCR, il faut les installer sans « installation rapide ». Au lieu de ça, chaque outil a sa propre manière de s’installer. Certains peuvent s’activer avec une case à cocher dans les préférences ; d’autres sont activées en copiant du code dans la page common.js ; d’autres sont des scripts qui doivent être exécutés. Finalement, la découverte et l’installation sont déconnectées et souvent difficiles à appréhender.
Choix multiples
Le nombre d'outils d'OCR est trop grand. Parfois, avoir plusieurs outils est une bonne chose. Toutefois, en ce qui concerne Wikisource, l'éventail rend confus pour la raison qu'ils font tous la même chose : traduire les images en textes. En conséquence, les utilisateurs ne devraient pas avoir à choisir entre plusieurs outils qui se ressemblent, qui ont des noms semblables, qui ont des icônes semblables et qui sont conçus, en théorie, pour effectuer la même tâche. Les utilisateurs devraient plutôt avoir à ne choisir qu'un seul outil ou être guidés vers le meilleur outil sans devoir le chercher par eux-mêmes.
Fiabilité
Plusieurs des outils d'OCR ne fonctionnent pas toujours. Par exemple, le gadget d'OCR a été régulièrement hors service pour de longues périodes. Il souffre en effet du manque de développeurs. L'outil hOCR ne fonctionne pas pour les scripts qui sont rédigés avec des caractères non latins. Également, plusieurs outils d'OCR font l'objet de plusieurs demandes d'améliorations, dont lenteur d'exécution et faible qualité des textes produits. Les outils ont aussi de la difficulté à produire un résultat utile lorsque le texte est par exemple en colonnes (exemples : pages de magazines). Ils sont aussi mal adaptés aux caractères non-latins et aux caractères avec diacritiques.
Questions ouvertes
- Avons-nous pris en compte tous les principaux outils d'OCR utilisés par les contributeurs de Wikisource ?
- Avons-nous pris en compte les problèmes majeurs rencontrés lors de l’utilisation des outils d'OCR ?
- Quels outils d'OCR utilisez-vous principalement, et pourquoi ?
- Quelles sont les problèmes les plus courants et les plus gênants que vous rencontrez lorsque vous utilisez des outils d'OCR ?
- Quels problèmes, pour résumer, sont les plus importants à corriger selon vous, et pourquoi ?
- Quelque chose d’autre que vous voudriez ajouter ?
Partagez votre point de vue sur la page de discussion !
Status Updates
April 21, 2021
Hello, everyone! We are very excited to share our first project update below:
Project principles
As a team, we first conducted research on OCR tools for Wikisource, which we shared in this project page. Then, we collected feedback on the talk page. Following this feedback, we decided to establish some project principles. This way, we could have a stronger sense of the project and our goals. The principles are as follows:
- We want to improve the overall experience of OCR tools: Our #1 goal of the project is to improve the OCR experience on Wikisource. This means that we want the tools to be easier to discover and understand for newcomers, and we want the tools to be easier to use effectively for all Wikisource editors.
- We can’t build a new OCR tool: The original wish was entitled “New OCR tool.” Unfortunately, we don’t have the time or resources to build a new OCR tool, which would be an intensive, lengthy project. As a team, we try to take on smaller projects that last a few months, so that we can fulfill multiple wishes per year. However, we can make meaningful improvements to the existing OCR tools.
- We can improve Wikimedia OCR: The Wikimedia OCR tool (formerly known as Google OCR) was developed by the Community Tech team. For this reason, we have the ability to make impactful changes to the tool, and we also have already identified some areas of improvements. For this reason, we have made it one of our project priorities to improve this tool.
- We can address some major issues: On the project talk page, we heard users share some common pain points related to the OCR experience, including: lack of an easily accessible bulk OCR functionality, minimal support of texts with multiple columns, and other issues. We can’t fix all of the issues, but we will try to at least investigate some of the top issues and see if we can issue improvements.
Completed work
The team has already begun work on the project! Here is what we have completed so far:
- Add Symfony to Wikimedia OCR: During the Ebook Export Improvements project, we added Symfony to Wikisource Export. This turned out to be a good move, since it helped us maintain and improve the tool. Similarly, we wanted to do the same thing for Wikimedia OCR.
- Create Toolforge Staging for Wikimedia OCR: We wanted to create a test environment that we (and all of you!) could check out, as we began implementing changes. This is now complete, and you can check it out.
Work in development
- Move Wikimedia OCR to Wikisource Extension: We want to improve the current user experience, which requires that users install or enable multiple separate tools. To do this, we are moving the Wikimedia OCR to the Wikisource Extension. Once this work is complete, all users will be able to see the Wikimedia OCR tool on the Proofread page (with no installation required).
- Note: If wikis don’t want the tool displayed automatically, they can choose to opt out. Also, users will still be able to configure their toolbars with other OCR tools.
- Add Support for Tesseract on Wikimedia OCR: To improve Wikimedia OCR, we have decided to add Tesseract to it. This way, users do not need to install two separate OCR tools via Preferences, since both OCR engines will be available via Wikimedia OCR. This is currently testable on ocr-test.wmcloud.org.
- Accept Google Options on the API: This work is the first stage in being able to improve the quality of OCR for pages containing multiple languages. The final result will apply to both Google and Tesseract engines.
- Improve performance of Tesseract engine: We have identified a way that we can dramatically improve the speed of the Tesseract engine. If we move Tesseract from Toolforge to Cloud VPS, we could see it run much faster (potentially, about 10 times faster!). This work is in progress, and we hope its completion will result in an improved user experience for Wikisourcers.
- Investigate how to improve multiple column issues: Users have shared that Wikisource lacks sufficient OCR support for texts with multiple columns. For this reason, we have launched an investigation to see how this issue could be addressed. So far, we have come up with two potential approaches, and the investigation is in progress.
Work that is coming up
- Add Tesseract options on the API: Through our technical investigation, we learned that Tesseract has many options that may help improve the OCR experience. For example, Tesseract has multiple page segmentation modes, which could help with multiple column support. It also has options to handle multiple languages within one text. For this reason, we want to make some of these options available for an improved editor experience.
- Determine the user experience for choosing OCR engine: Once Wikimedia OCR has 2 engines (Tesseract and Google Cloud Vision), there will need to be a user experience to support how this is handled on the Proofread page. We will be working on developing a proposal for this experience soon.
Open questions
- What are your general thoughts about the project principles?
- How do you feel about our work to make Wikimedia OCR automatically available, with no installation required?
- How do you feel about our work to add Tesseract to Wikimedia OCR?
- Ideally, what user experience do you recommend for choosing an OCR engine when using Wikimedia OCR?
- What do you think of our work to improve the speed of Tesseract?
- Anything else you would like to add?
Please share your feedback on the project talk page!
May 18, 2021
Hello, everyone! We hope all of you are staying safe in these times. We know many of this wish’s enthusiasts collect resources in the languages of India and our minds are with anyone impacted by the devastating COVID-19 surge.
A few improvements are currently underway and we’d love to hear your input as we continue to move the OCR efforts along. The feedback we’re looking for can be summarized as two main asks:
- Which OCR is best for the language you conduct your transcriptions in?
- How much faster are the new engine improvements at loading your transcriptions now? Instructions below.
Completed Work
“Under the hood” engine improvements are now live – Since our last update, we’ve released a version of the newly supported OCR engines to Beta and in Advanced tools. We’d love to hear which engines work best for the different Wikisource wikis so that we may set up the right Default engine for each Wikisource.
To try out the improvements, visit our Advanced Tools page, which will require the URL of an image to transcribe. Once you’re there, try transcribing with both the tesseract or Google OCR versions in our Advanced Options and let us know generally which performs best for the languages you most interact with for a given Wikisource project. We’re looking forward to hearing about how fast or slow the transcriptions are as a result. We’d especially love to hear details on which OCR performs best for the language(s) that you normally transcribe.
Multi-column support in Advanced Options – The column support options are now live inside the Advanced Tools form. We’re looking to hear any tips and tricks about what options work best as you test them inside the test environment.
Opportunities to participate in Design Tests & help us set up a “Default”
- Design Flows and User Experience Tests
- The interface you currently see in Beta (as of late May 2021) is still a work in progress. We are still finalizing the layout on the page and are finalizing our designs by conducting unmoderated user research to see how intuitive our proposed improvements are. If you’re interested in participating in our user tests, please let us know in the talk page. We are looking for a mix of both advanced contributors and newcomers across projects.
Next Steps
- Implementing design results from user tests
- Once we conclude the round of tests mentioned above, the engineers will implement the finalized flows.
- Onboarding designs for newcomers
- Part of our improvements will also involve adding a pulsating user interface to let newcomers know about what an OCR is and what they can use it for in their transcription efforts.
Updates on Community Tech staffing
We wanted to update you on some changes that impact the scope of how much we can tackle:
- We have a new product manager that joined the team, Natalia Rodriguez. A note: “I am excited to work with all of you to fulfil this wish! It’s my very first wish, and I am excited to learn from you all to deliver a better OCR experience.”
- We have some engineers with upcoming parental leave starting in the second half of 2021.
- We have had an Engineering Manager departure and are hiring with hopes to fill the position by end of September.
We thank you for your patience as we onboard new members to the team and support our colleagues. The team will write a longer update on this matter as we are currently also undergoing annual planning and scoping out how this impacts our roadmap.
Open Questions
- In this advanced tools release, which engine performs best (Tesseract or Google OCR) for the languages you most often use in your transcriptions and the Wikisource projects you most contribute to?
- In this advanced tools release, what has your experience been in terms of load time per extraction?
- What are some suggestions on the parameters for the engines and multi-column support?
- Would you like to participate in our unmoderated user research?
As a new product manager for the team, Natalia would love to know what other details are useful in project updates. Please share any feedback!
August 13, 2021: Final Update
Hello everybody! We are excited to announce our completed OCR improvements. Working to improve the Transcription Tools in Wikisource has taught us so much, and we are incredibly grateful for all of your feedback from the beginning of the project and for your continued input as we polished the User Interface in the project's final stages. Below, we've fleshed out a summary of all that our improvements entailed. Thank you again for your continued input!
Underlying Engine Improvements
- Reliability: Prior to our work, the OCR tools available were housed as separate gadgets. We have added a Wikimedia OCR that has more stable and faster transcriptions which will be maintained by the Community Tech team onward. We also expect way less downtime in the tools given that we've set up reliable infrastructure supported in-house. This tool supports both the Tesseract and Google OCR engines under one dropdown icon inside the toolbar. The tool is available for all Wikisource projects. The pre-existing gadgets will also remain available and Wikisource projects will have sovereignty over when to enable or disable it.
- Speed: Prior to taking on this work, transcription jobs would take upwards of 40 seconds in some cases. Our improvements average a transcription time under 4 seconds. We are excited about the possibilities these new load times unlock for proof-readers!
- Multiple-language support: Documents with multiple languages included in them can be transcribed via our Advanced tools using the Languages (optional) input field and searching for and entering the languages in order of prevalence in the document.
- Cropping Tool / Multi-column support: We were also able to include a Cropper tool to select regions inside an image to transcribe when there are documents with columns with more complicated layouts than that of an ordinary page.
Discoverability and Accessibility of OCR
- We have introduced a pulsating blue user-interface components over the new tool icon in the toolbar for new users who may be unfamiliar with the process of transcription and the acronym OCR. The new UI explains what OCR means and what transcription means in this context. We are excited to give everyone the option to leverage transcription as a tool when editing in the Wikisource projects.
We are excited to observe the impact of these changes in the coming months and hope to see you at our 2022 wishlist. Thanks once again for making this work possible.