È stata pubblicata la versione del sistema di riconoscimento ottico dei caratteri Tesseract 4.1, che supporta il riconoscimento di caratteri UTF-8 e testi in oltre 100 lingue, inclusi russo, kazako, bielorusso e ucraino. I risultati possono essere salvati sia come testo semplice che nei formati HTML (hOCR), ALTO (XML), PDF e TSV. Inizialmente, il sistema è stato creato tra il 1985 e il 1995 nel laboratorio della Hewlett Packard, nel 2005 il codice è stato reso pubblico sotto licenza Apache e successivamente sviluppato con la partecipazione di Google. I testi sorgente del progetto sono distribuiti sotto la licenza Apache 2.0.
Tesseract include un'utilità da console e la libreria libtesseract per integrare le funzionalità di riconoscimento del testo in altre applicazioni. Tra le interfacce GUI di terze parti che supportano Tesseract, si possono notare gImageReader, VietOCR e YAGF. Vengono offerti due motori di riconoscimento: uno classico, che riconosce il testo a livello di modelli di singoli caratteri, e uno nuovo, basato sull'applicazione di un sistema di apprendimento automatico basato su reti neurali ricorrenti LSTM, ottimizzato per il riconoscimento dell'intera riga e che consente di ottenere un notevole aumento della precisione. Modelli pre-addestrati sono stati pubblicati per 123 lingue. Per ottimizzare le prestazioni, sono disponibili moduli che utilizzano OpenMP e istruzioni SIMD AVX2, AVX, NEON o SSE4.1.
Miglioramenti principali in Tesseract 5.0:
- La significativa modifica del numero di versione è dovuta a cambiamenti nell'API che compromettono la compatibilità. In particolare, l'API libtesseract disponibile pubblicamente non è più collegata ai tipi di dati proprietari GenericVector e STRING, sostituiti nel codice da std::string e std::vector.
- Riorganizzazione della struttura dei testi sorgente. I file di intestazione pubblici sono stati spostati nella directory include/tesseract.
- Rivisitazione della gestione della memoria, tutte le chiamate a malloc e free sono state sostituite con codice C++. È stata effettuata una modernizzazione generale del codice.
- Ottimizzazioni aggiunte per le architetture ARM e ARM64, con utilizzo delle istruzioni ARM NEON per accelerare i calcoli. È stata effettuata un'ottimizzazione delle prestazioni comune a tutte le architetture.
- Sono state implementate nuove modalità di addestramento dei modelli e riconoscimento del testo basate su calcoli in virgola mobile. Le nuove modalità offrono prestazioni superiori e un ridotto consumo di memoria. Nella macchina LSTM, la modalità rapida float32 è attivata per impostazione predefinita.
- Effettuato il passaggio all'uso della normalizzazione Unicode con la forma NFC (Normalization Form Canonical).
- Aggiunta l'opzione per configurare il livello di dettaglio dei log (—loglevel).
- Riorganizzato il sistema di build basato su Autotools, ora configurato per la costruzione in modalità non ricorsiva.
- Il branch «master» in Git è stato rinominato in «main».
- Aggiunto il supporto per le nuove versioni di macOS e i sistemi Apple basati su chip M1.
Fonte: opennet.ru
