Wydanie systemu rozpoznawania tekstu Tesseract 5.0

Ukazała się premiera systemu optycznego rozpoznawania tekstu Tesseract 4.1, obsługującego rozpoznawanie znaków UTF-8 i tekstów w ponad 100 językach, w tym rosyjskim, kazachskim, białoruskim i ukraińskim. Wynik można zapisać w postaci zwykłego tekstu lub w formatach HTML (hOCR), ALTO (XML), PDF i TSV. System pierwotnie powstawał w latach 1985-1995 w laboratorium Hewlett Packard, w 2005 roku kod został otwarty na licencji Apache i był dalej rozwijany przy udziale pracowników Google. Kod źródłowy projektu rozpowszechniany jest na licencji Apache 2.0.

Tesseract zawiera narzędzie konsolowe i bibliotekę libtesseract umożliwiające osadzanie funkcji OCR w innych aplikacjach. Interfejsy GUI innych firm obsługujące Tesseract obejmują gImageReader, VietOCR i YAGF. Oferowane są dwa silniki rozpoznawania: klasyczny rozpoznający tekst na poziomie poszczególnych wzorców znaków oraz nowy oparty na wykorzystaniu systemu uczenia maszynowego opartego na rekurencyjnej sieci neuronowej LSTM, zoptymalizowanej pod kątem rozpoznawania całych ciągów znaków i umożliwiającej znaczny wzrost dokładności. Gotowe, wyszkolone modele zostały opublikowane dla 123 języków. Aby zoptymalizować wydajność, oferowane są moduły wykorzystujące instrukcje OpenMP i SIMD AVX2, AVX, NEON lub SSE4.1.

Główne ulepszenia w Tesseract 5.0:

  • Istotna zmiana numeru wersji wynika ze zmian wprowadzonych w API, które zakłócają kompatybilność. W szczególności publicznie dostępny interfejs API libtesseract nie jest już powiązany z zastrzeżonymi typami danych GenericVector i STRING na rzecz std::string i std::vector.
  • Drzewo tekstu źródłowego zostało zreorganizowane. Publiczne pliki nagłówkowe zostały przeniesione do katalogu include/tesseract.
  • Zarządzanie pamięcią zostało przeprojektowane, wszystkie wywołania malloc i free zostały zastąpione kodem C++. Przeprowadzono generalną modernizację kodu.
  • Dodano optymalizacje dla architektur ARM i ARM64; instrukcje ARM NEON służą do przyspieszenia obliczeń. Przeprowadzono optymalizację wydajności wspólną dla wszystkich architektur.
  • Zaimplementowano nowe tryby uczenia modeli i rozpoznawania tekstu w oparciu o wykorzystanie obliczeń zmiennoprzecinkowych. Nowe tryby oferują wyższą wydajność i mniejsze zużycie pamięci. W silniku LSTM tryb szybki float32 jest domyślnie włączony.
  • Dokonano przejścia na normalizację Unicode przy użyciu formularza NFC (Normalization Form Canonical).
  • Dodano opcję konfiguracji szczegółów dziennika (--loglevel).
  • System kompilacji oparty na Autotools został przeprojektowany i przełączony na kompilację w trybie nierekurencyjnym.
  • Nazwa gałęzi „master” w Git została zmieniona na „main”.
  • Dodano obsługę nowych wydań systemów macOS i Apple opartych na chipie M1.

    Źródło: opennet.ru

Dodaj komentarz