ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ ΡΠ΅Π»ΠΈΠ· ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΠΏΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ° Tesseract 4.1, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠ΅ΠΉ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² UTF-8 ΠΈ ΡΠ΅ΠΊΡΡΠΎΠ² Π½Π° Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ 100 ΡΠ·ΡΠΊΠ°Ρ , Π²ΠΊΠ»ΡΡΠ°Ρ ΡΡΡΡΠΊΠΈΠΉ, ΠΊΠ°Π·Π°Ρ ΡΠΊΠΈΠΉ, Π±Π΅Π»ΠΎΡΡΡΡΠΊΠΈΠΉ ΠΈ ΡΠΊΡΠ°ΠΈΠ½ΡΠΊΠΈΠΉ. Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ ΠΊΠ°ΠΊ ΠΎΡΠΊΡΡΡΡΠΌ ΡΠ΅ΠΊΡΡΠΎΠΌ, ΡΠ°ΠΊ ΠΈ Π² ΡΠΎΡΠΌΠ°ΡΠ°Ρ HTML (hOCR), ALTO (XML), PDF ΠΈ TSV. ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΠΈΡΡΠ΅ΠΌΠ° Π±ΡΠ»Π° ΡΠΎΠ·Π΄Π°Π½Π° Π² 1985-1995 Π³ΠΎΠ΄Π°Ρ Π² Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠΈΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Hewlett Packard, Π² 2005 Π³ΠΎΠ΄Ρ ΠΊΠΎΠ΄ Π±ΡΠ» ΠΎΡΠΊΡΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ Apache ΠΈ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΡΠ°Π·Π²ΠΈΠ²Π°Π»ΡΡ ΠΏΡΠΈ ΡΡΠ°ΡΡΠΈΠΈ ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊΠΎΠ² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Google. ΠΡΡ ΠΎΠ΄Π½ΡΠ΅ ΡΠ΅ΠΊΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΡΡΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ Apache 2.0.
Tesseract Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΡ ΡΡΠΈΠ»ΠΈΡΡ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ libtesseract Π΄Π»Ρ Π²ΡΡΡΠ°ΠΈΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ° Π² Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ· ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΡ Tesseract ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ GUI-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ gImageReader, VietOCR ΠΈ YAGF. ΠΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ Π΄Π²Π° Π΄Π²ΠΈΠΆΠΊΠ° ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ: ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ, ΡΠ°ΡΠΏΠΎΠ·Π½Π°ΡΡΠΈΠΉ ΡΠ΅ΠΊΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΈ Π½ΠΎΠ²ΡΠΉ, Π±Π°Π·ΠΈΡΡΡΡΠΈΠΉΡΡ Π½Π° ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠΈΡΡΠ΅ΠΌΡ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Π½Π° Π±Π°Π·Π΅ ΡΠ΅ΠΊΡΡΡΠ΅Π½ΡΠ½ΠΎΠΉ Π½Π΅ΠΉΡΠΎΠ½Π½ΠΎΠΉ ΡΠ΅ΡΠΈ LSTM, ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π΄Π»Ρ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ ΡΡΡΠΎΠΊ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅ΠΉ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΡΠΎΡΠ½ΠΎΡΡΠΈ. ΠΠΎΡΠΎΠ²ΡΠ΅ Π½Π°ΡΡΠ΅Π½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Ρ Π΄Π»Ρ 123 ΡΠ·ΡΠΊΠΎΠ². ΠΠ»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡΡΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ OpenMP ΠΈ SIMD-ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ AVX2, AVX, NEON ΠΈΠ»ΠΈ SSE4.1.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ Π² Tesseract 5.0:
- ΠΠ½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½ΠΎΠΌΠ΅ΡΠ° Π²Π΅ΡΡΠΈΠΈ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ Π²Π½Π΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π² API ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π½Π°ΡΡΡΠ°ΡΡΠΈΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΉ API libtesseract Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΏΡΠΈΠ²ΡΠ·Π°Π½ ΠΊ ΠΏΡΠΎΠΏΡΠΈΠ΅ΡΠ°ΡΠ½ΡΠΌ ΡΠΈΠΏΠ°ΠΌ Π΄Π°Π½Π½ΡΡ GenericVector ΠΈ STRING, Π²ΠΌΠ΅ΡΡΠΎ ΠΊΠΎΡΠΎΡΡΡ Π² ΠΊΠΎΠ΄Π΅ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½Ρ std::string ΠΈ std::vector.
- ΠΡΠΎΠ²Π΅Π΄Π΅Π½Π° ΡΠ΅ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ Π΄Π΅ΡΠ΅Π²Π° ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΡΠ΅ΠΊΡΡΠΎΠ². ΠΡΠ±Π»ΠΈΡΠ½ΡΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½Ρ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ include/tesseract.
- ΠΠ΅ΡΠ΅ΡΠ°Π±ΠΎΡΠ°Π½ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΡΡ, Π²ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ malloc ΠΈ free Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ Π½Π° ΠΊΠΎΠ΄ C++. ΠΡΠΎΠ²Π΅Π΄Π΅Π½Π° ΠΎΠ±ΡΠ°Ρ ΠΌΠΎΠ΄Π΅ΡΠ½ΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠ΄Π°.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π΄Π»Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ ARM ΠΈ ARM64, Π΄Π»Ρ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ARM NEON. ΠΡΠΎΠ²Π΅Π΄Π΅Π½Π° ΠΎΠ±ΡΠ°Ρ Π΄Π»Ρ Π²ΡΠ΅Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π½ΠΎΠ²ΡΠ΅ ΡΠ΅ΠΆΠΈΠΌΡ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΊΠΈ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΈ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ°, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠ΅ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ. ΠΠΎΠ²ΡΠ΅ ΡΠ΅ΠΆΠΈΠΌΡ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ ΠΈ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ. Π Π΄Π²ΠΈΠΆΠΊΠ΅ LSTM Π±ΡΡΡΡΡΠΉ ΡΠ΅ΠΆΠΈΠΌ float32 Π²ΠΊΠ»ΡΡΡΠ½ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
- ΠΡΡΡΠ΅ΡΡΠ²Π»ΡΠ½ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Unicode Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΎΡΠΌΡ NFC (Normalization Form Canonical).
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΎΠΏΡΠΈΡ Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π΄Π΅ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π»ΠΎΠ³ΠΎΠ² (—loglevel).
- ΠΠ΅ΡΠ΅ΡΠ°Π±ΠΎΡΠ°Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ±ΠΎΡΠΊΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Autotools, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠ΅ΡΠ΅Π²Π΅Π΄Π΅Π½Π° Π½Π° ΡΠ±ΠΎΡΠΊΡ Π² Π½Π΅ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅.
- ΠΠ΅ΡΠΊΠ° «master» Π² Git ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π° Π² «main».
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π½ΠΎΠ²ΡΡ
Π²ΡΠΏΡΡΠΊΠΎΠ² macOS ΠΈ ΡΠΈΡΡΠ΅ΠΌ Apple Π½Π° Π±Π°Π·Π΅ ΡΠΈΠΏΠ° M1.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru