ΠΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½ Π΅ ΡΠ΅Π»ΠΈΠ· Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° ΠΎΠΏΡΠΈΡΠ½ΠΎ ΡΠ°Π·ΠΏΠΎΠ·Π½Π°Π²Π°Π½Π΅ Π½Π° ΡΠ΅ΠΊΡΡ 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
