Udgivelsen af Tesseract 4.1, et system til optisk tegngenkendelse, er blevet offentliggjort. Det understøtter genkendelse af UTF-8 tegn og tekster på mere end 100 sprog, herunder russisk, kasakhisk, hviderussisk og ukrainsk. Resultatet kan gemmes som almindelig tekst eller i formaterne HTML (hOCR), ALTO (XML), PDF og TSV. Systemet blev oprindeligt skabt i 1985-1995 i laboratoriet hos Hewlett Packard, og i 2005 blev koden åbnet under Apache-licensen og videreudviklet med deltagelse af medarbejdere fra Google. Kildekoderne til projektet distribueres under Apache 2.0-licensen.
Tesseract inkluderer et kommandolinjeværktøj og bibliotektet libtesseract for at integrere tekstgenkendelsesfunktioner i andre applikationer. Blandt de understøttede tredjeparts GUI-grænseflader kan gImageReader, VietOCR og YAGF nævnes. Der tilbydes to genkendelsesmotorer: den klassiske, som genkender tekst på niveauet for individuelle tegn, og den nye, der er baseret på brugen af et maskinlæringssystem ved hjælp af en rekurrent neural netværk LSTM, der er optimeret til genkendelse af hele linjer og tillader en betydelig nøjagtighedsforøgelse. Færdige træningsmodeller er offentliggjort for 123 sprog. For at optimere ydeevnen tilbydes moduler, der anvender OpenMP og SIMD-instruktioner AVX2, AVX, NEON eller SSE4.1.
De vigtigste forbedringer i Tesseract 5.0:
- Den betydelige ændring i versionsnummeret skyldes ændringer i API'et, der bryder kompatibiliteten. Specifikt er det offentligt tilgængelige API libtesseract ikke længere knyttet til proprietære datatyper som GenericVector og STRING, i stedet anvendes std::string og std::vector i koden.
- Strukturen for kildekoden er blevet reorganiseret. Offentlige header-filer er blevet flyttet til kataloget include/tesseract.
- Hukommelseshåndteringen er blevet genovervejet, og alle kald til malloc og free er blevet erstattet med C++-kode. Der er foretaget en generel modernisering af koden.
- Optimeringer er tilføjet til ARM- og ARM64-arkitekturer, hvor ARM NEON-instruktioner anvendes for at fremskynde beregninger. Der er udført en generel optimering af ydeevnen for alle arkitekturer.
- Implementeret nye træningstilstande for modeller og tekstgenkendelse baseret på flydende punkt beregninger. De nye tilstande skelner sig ved højere ydeevne og lavere hukommelsesforbrug. I LSTM-motoren er hurtig float32-tilstand som standard aktiveret.
- Overgangen til brugen af Unicode-normalisering ved hjælp af NFC-form (Normalization Form Canonical) er gennemført.
- Tilføjet mulighed for at tilpasse detaljeringsniveauet for logfiler (—loglevel).
- Bygsystemet er omarbejdet baseret på Autotools, som nu er konverteret til ikke-rekursiv bygning.
- Git-grenen 'master' er blevet omdøbt til 'main'.
- Ny understøttelse til nye versioner af macOS og Apple-systemer baseret på M1-chip er tilføjet.
Kilde: opennet.ru
