2023-07-11 - V5.3.2 * Updates for snap package building. * Support for Sgaw and W Pwo Karen languages in the Myanmar validator (#4065). * Improve format of logging from lstmtraining. * Use less digits in filenames of checkpoints written by lstmtraining. * Replace deprecated sprintf. * Remove unused code in function fix_rep_char. * Avoid 32 bit overflow in multiplication (fixes 3 CodeQL CI alerts). * Avoid conversions from std::string to char* to std::string. * Abort with error message if OSD is requested with LSTM-only model. * cmake: allow to disable tiff (-DDISABLE_TIFF=ON). * cmake: provide info about disabled LibArchive and CURL. * cmake: check if leptonica was build with tiff support. * Remove old broken GitHub action vcpkg-4.1.1 (fixes issue #4078). * Create config.yml. * Fix typos. 2023-04-01 - V5.3.1 * Bug fixes for some special scenarios: * Fix issue #4010. * textord: Catch empty rows in block iterator (fixes #4039). * Fix FP division by zero (issue #3995). * Improve documentation and log messages. * Build fixes and improvements (mainly for cmake). 2022-12-22 - V5.3.0 * Minor updates for documentation and cmake builds. 2022-12-13 - V5.3.0-rc1 * Fix the training tools for the legacy OCR engine (fix issue #3925). * PDF renderer: Ignore non-text blocks (fix issue #3957). * Remove colormap before thresholding (fix issue #3940). * Fix a number of performance issues reported by Coverity Scan. * Training tools: Replace call of exit function by return statement in main function. * Fix double free in function vigorous_noise_removal (fix issue #3876). * Create to_win if needed in Textord::make_spline_rows (fix issue #3875). * Bug fixes for ScrollView viewer: * Fix memory issues in ScrollView::MessageReceiver. * Catch potential nullptr in SVNetwork::SVNetwork. * Move svpaint.cpp from src/viewer to src/. * Add rule for svpaint executable in Autotools. * Bug fixes and improvements for build tools: * Fix AMD64 detection with autobuild on FreeBSD (fix issue #3964). * Fix tesseract.pc generated from CMake to match Autotools. * Detect availability of AVX512-VNNI. * configure.ac: fix build on aarch64_be. * Drop CI for old versions of macOS and Ubuntu. 2022-07-06 - V5.2.0 * Improvements and fixes for continuous integration, autoconf and cmake builds. * Set /Os for some 32 bit MS compilers (fixes #3769). * Improve comments and other documentation. * Add initial support for Intel AVX512F. * Fix for very large PDF files on 32 bit hosts (fixes #3805). * Fix NEON detection on FreeBSD. * Fix regression with UZN files (fixes #3837). * Fix calling delete[] for memory allocated by malloc in C API. * Add an API function to init tesseract with traineddata from memory (fixes #3691). * Replace direct access to Leptonica internal data structures by function calls and support latest releases of Leptonica. * Replace std::regex by std::string functions (fixes issue #3830). * Use compiled-in TESSDATA_PREFIX also on Windows (fixes #3767). * Add new parameter 'invert_threshold', change the default threshold from 0.5 to 0.7 and mark parameter 'tessedit_do_invert' as deprecated. 2022-03-01 - V5.1.0 * Handle image and line regions in output formats ALTO, hOCR and text. * New parameter curl_timeout for curl_easy_setop. * Build fixes and improvements. * Catch nullptr in PageIterator::Orientation to improve robustness. * Remove unused code. 2022-01-06 - V5.0.1 * Add SPDX-License-Identifier to public include files. * Support redirections when running OCR on a URL. * Lots of fixes and improvements for cmake builds. Distributions should use the autoconf build. * Fix broken msys2 build with gcc 11. * Fix parameter certainty_scale (was duplicated). * Fix some compiler warnings and clean code. * Correctly detect amd64 and i386 on FreeBSD. * Add libarchive and libcurl in continuous integration actions. * Update submodule googletest to release v1.11.0. 2021-11-22 - V5.0.0 * Faster training and recognition by default (float instead of double calculations) * More options for binarization * Improved support for ARM NEON * Modernized code * Removed proprietary data types like GenericVector and STRING from public API * pdf.ttf no longer needed, now integrated into the code * Faster flat build with automake * New options for combine_tessdata to show details of traineddata files * Improved training messages * Improved unit tests and fuzzing tests * Lots of bug fixes 2021-11-15 - V4.1.3 * Fix build regression for autoconf build 2021-11-14 - V4.1.2 * Add RowAttributes getter to PageIterator * Allow line images with larger width for training * Fix memory leaks * Improve build process * Don't output empty ALTO sourceImageInformation (issue #2700) * Extend URI support for Tesseract with libcurl * Abort LSTM training with integer model (fixes issue #1573) * Update documentation * Make automake builds less noisy by default * Don't use -march=native in automake builds 2019-12-26 - V4.1.1 * Implemented sw build (cppan is depreciated) * Improved cmake build * Code cleanup and optimization * A lot of bug fixes... 2019-07-07 - V4.1.0 * Added new renders Alto, LSTMBox, WordStrBox. * Added character boxes in hOCR output. * Added python training scripts (experimental) as alternative shell scripts. * Better support AVX / AVX2 / SSE. * Disable OpenMP support by default (see e.g. #1171, #1081). * Fix for bounding box problem. * Implemented support for whitelist/blacklist in LSTM engine. * Improved cmake configuration. * Code modernization and improvements. * A lot of bug fixes... 2018-10-29 - V4.0.0 * Added new neural network system based on LSTMs, with major accuracy gains. * Improvements to PDF rendering. * Fixes to trainingdata rendering. * Added LSTM models+lang models to 101 languages. (tessdata repository) * Improved multi-page TIFF handling. * Fixed damage to binary images when processing PDFs. * Fixes to training process to allow incremental training from a recognition model. * Made LSTM the default engine, pushed cube out. * Deleted cube code. * Changed OEModes --oem 0 for legacy tesseract engine, --oem 1 for LSTM, --oem 2 for both, --oem 3 for default. * Avoid use of Leptonica debug parameters or functions. * Fixed multi-language mode. * Removed support for VS2010. * Added Support for VS2015 and VS2017 with CPPAN. * Implemented invisible text only for PDF. * Added AVX / SSE support for Windows. * Enabled OpenMP support. * Parameter unlv_tilde_crunching change to false. * Miscellaneous Fixes. * Detailed Changelog can be found at https://tesseract-ocr.github.io/tessdoc/4.0x-Changelog.html and https://tesseract-ocr.github.io/tessdoc/ReleaseNotes.html#tesseract-release-notes-oct-29-2018---v400 2017-02-16 - V3.05.00 * Made some fine tuning to the hOCR output. * Added TSV as another optional output format. * Fixed ABI break introduced in 3.04.00 with the AnalyseLayout() method. * text2image tool - Enable all OpenType ligatures available in a font. This feature requires Pango 1.38 or newer. * Training tools - Replaced asserts with tprintf() and exit(1). * Fixed Cygwin compatibility. * Improved multipage tiff processing. * Improved the embedded pdf font (pdf.ttf). * Enable selection of OCR engine mode from command line. * Changed tesseract command line parameter '-psm' to '--psm'. * Write output of tesseract --help, --version and --list-langs to stdout instead of stderr. * Added new C API for orientation and script detection, removed the old one. * Increased minimum autoconf version to 2.59. * Removed dead code. * Require Leptonica 1.74 or higher. * Fixed many compiler warning. * Fixed memory and resource leaks. * Fixed some issues with the 'Cube' OCR engine. * Fixed some openCL issues. * Added option to build Tesseract with CMake build system. * Implemented CPPAN support for easy Windows building. 2016-02-17 - V3.04.01 * Added OSD renderer for psm 0. Works for single page and multi-page images. * Improve tesstrain.sh script. * Simplify build and run of ScrollView. * Improved PDF output for OS X Preview utility. * INCOMPATIBLE fix to hOCR line height information - commit 134ebc3. * Added option to build Tesseract without Cube OCR engine (-DNO_CUBE_BUILD). * Enable OpenMP support. * Many bug fixes. 2015-07-11 - V3.04.00 * Tesseract development is now done with Git and hosted at github.com (Previously we used Subversion as a VCS and code.google.com for hosting). * Tesseract now requires leptonica 1.71 or a higher version. * Removed official support for VS 2008. * Added support for 39 additional scripts/languages, including: amh, asm, aze_cyrl, bod, bos, ceb, cym, dzo, fas, gle, guj, hat, iku, jav, kat, kat_old, kaz, khm, kir, kur, lao, lat, mar, mya, nep, ori, pan, pus, san, sin, srp_latn, syr, tgk, tir, uig, urd, uzb, uzb_cyrl, yid * Major updates to training system as a result of extensive testing on 100 languages. * New training data for over 100 languages * Improved performance with PIC compilation option. * Significant change to invisible font system in pdf output to improve correctness and compatibility with external programs, particularly ghostscript. * Improved font identification. * Major change to improve layout analysis for heavily diacritic languages: Thai, Vietnamese, Kannada, Telugu etc. * Fixed problems with shifted baselines so recognition can recover from layout analysis errors. * Major refactor to improve speed on difficult images, especially when running a heap checker. * Moved params from global in page layout to tesseractclass. * Improved single column layout analysis. * Allow ocr output to multiple formats using tesseract command line executable. * Fixed issues with mixed eng+ara scripts. * Improved script consistency in numbers. * Major refactor of control.cpp to enable line recognition. * Added tesstrain.sh - a master training script. * Added ability to text2image training tool to just list available fonts. * Added ability to text2image to underline words. * Improved efficiency of image processing for PDF output. * Added parameter description for each parameter listed with 'print-parameters' command line option. * Added font info to hOCR output. * Enabled streaming input and output of multi-page documents. * Many bug fixes. 2014-02-04 - V3.03(rc1) * Added new training tool text2image to generate box/tif file pairs from text and truetype fonts. * Added support for PDF output with searchable text. * Removed entire IMAGE class and all code in image directory. * Tesseract executable: support for output to stdout; limited support for one page images from stdin (especially on Windows) * Added Renderer to API to allow document-level processing and output of document formats, like hOCR, PDF. * Major refactor of word-level recognition, beam search, eliminating dead code. * Refactored classifier to make it easier to add new ones. * Generalized feature extractor to allow feature extraction from greyscale. * Improved sub/superscript treatment. * Improved baseline fit. * Added set_unicharset_properties to training tools. * Many bug fixes. * More training source data included. 2012-02-01 - V3.02 * Moved ResultIterator/PageIterator to ccmain. * Added Right-to-left/Bidi capability in the output iterators for Hebrew/Arabic. * Added paragraph detection in layout analysis/post OCR. * Fixed inconsistent xheight during training and over-chopping. * Added simultaneous multi-language capability. * Refactored top-level word recognition module. * Added experimental equation detector. * Improved handling of resolution from input images. * Blamer module added for error analysis. * Cleaned up externally used namespace by removing includes from baseapi.h. * Removed dead memory mangagement code. * Tidied up constraints on control parameters. * Added support for ShapeTable in classifier and training. * Refactored class pruner. * Fixed training leaks and randomness. * Major improvements to layout analysis for better image detection, diacritic detection, better textline finding, better tabstop finding. * Improved line detection and removal. * Added fixed pitch chopper for CJK. * Added UNICHARSET to WERD_CHOICE to make mult-language handling easier. * Fixed problems with internally scaled images. * Added page and bbox to string in tr files to identify source of training data better. * Fixes to Hindi Shiroreka splitter. * Added word bigram correction. * Reduced stack memory consumption and eliminated some ugly typedefs. * Added new uniform classifier API. * Added new training error counter. * Fixed endian bug in dawg reader. * Many other fixes, including the way in which the chopper finds chops and messes with the outline while it does so. 2010-11-29 - V3.01 * Removed old/dead serialise/deserialze methods on *LISTIZED classes. * Total rewrite of DENORM to better encapsulate operation and make for potential to extract features from images. * Thread-safety! Moved all critical global and static variables to members of the appropriate class. Tesseract is now thread-safe (multiple instances can be used in parallel in multiple threads.) with the minor exception that some control parameters are still global and affect all threads. * Added Cube, a new recognizer for Arabic. Cube can also be used in combination with normal Tesseract for other languages with an improvement in accuracy at the cost of (much) lower speed. *There is no training module for Cube yet.* * `OcrEngineMode` in `Init` replaces `AccuracyVSpeed` to control cube. * Greatly improved segmentation search with consequent accuracy and speed improvements, especially for Chinese. * Added `PageIterator` and `ResultIterator` as cleaner ways to get the full results out of Tesseract, that are not currently provided by any of the `TessBaseAPI::Get*` methods. All other methods, such as the `ETEXT_STRUCT` in particular are deprecated and will be deleted in the future. * ApplyBoxes totally rewritten to make training easier. It can now cope with touching/overlapping training characters, and a new boxfile format allows word boxes instead of character boxes, BUT to use that you have to have already bootstrapped the language with character boxes. "Cyclic dependency" on traineddata. * Auto orientation and script detection added to page layout analysis. * Deleted *lots* of dead code. * Fixxht module replaced with scalable data-driven module. * Output font characteristics accuracy improved. * Removed the double conversion at each classification. * Upgraded oldest structs to be classes and deprecated PBLOB. * Removed non-deterministic baseline fit. * Added fixed length dawgs for Chinese. * Handling of vertical text improved. * Handling of leader dots improved. * Table detection greatly improved. * Fixed a couple of memory leaks. * Fixed font labels on output text. (Not perfect, but a lot better than before.) * Cleanup and more bug fixes * Special treatments for Hindi. * Support for build in VS2010 with Microsoft Windows SDK for Windows 7 (thanks to Michael Lutz) 2010-09-21 - V3.00 * Preparations for thread safety: * Changed TessBaseAPI methods to be non-static * Created a class hierarchy for the directories to hold instance data, and began moving code into the classes. * Moved thresholding code to a separate class. * Added major new page layout analysis module. * Added HOCR output (issues 221, 263: thanks to amkryukov). * Added Leptonica as main image I/O and handling. Currently optional, but in future releases linking with Leptonica will be mandatory. * Ambiguity table rewritten to allow definite replacements in place of fix_quotes. * Added TessdataManager to combine data files into a single file. * Some dead code deleted. * VC++6 no longer supported. It can't cope with the use of templates. * Many more languages added. * Doxygenation of most of the function header comments. * Added man pages. * Added bash completion script (issue 247: thanks to neskiem) * Fix integer overview in thresholding (issue 366: thanks to Cyanide.Drake) * Add Danish Fraktur support (issues 300, 360: thanks to dsl602230@vip.cybercity.dk) * Fix file pointer leak (issue 359, thanks to yukihiro.nakadaira) * Fix an error using user-words (Issue 345: thanks to max.markin) * Fix a memory leak in tablefind.cpp (Issue 342, thanks to zdravco) * Fix a segfault due to double fclose (Issue 320, thanks to souther) * Fix an automake error (Issue 318, thanks to ichanjz) * Fix a Win32 crash on fileFormatIsTiff() (Issues 304, 316, 317, 330, 347, 349, 352: thanks to nguyenq87, max.markin, zdenop) * Fixed a number of errors in newer (stricter) versions of VC++ (Issues 301, among others) 2009-06-30 - V2.04 * Integrated bug fixes and patches and misc changes for portability. * Integrated a patch to remove some of the "access" macros. * Removed dependence on lua from the viewer, speeding it up dramatically. * Fixed the viewer so it compiles and runs properly! * Specifically fixing issues: 1, 63, 67, 71, 76, 81, 82, 106, 111, 112, 128, 129, 130, 133, 135, 142, 143, 145, 147, 153, 154, 160, 165, 170, 175, 177, 187, 192, 195, 199, 201, 205, 209, 108, 169 2008-04-22 - V2.03 * Fixed crash introduced in 2.02. * Fixed lack of tessembedded.cpp in distribution. * Added test for leptonica header files and conditional test for lib. 2008-04-21 - V2.02 (again) * Fixed namespace collisions with jpeg library (INT32). * Portability fixes for Windows for new code. * Updates to autoconf system for new code. 2008-01-23 - V2.02 * Improvements to clustering, training and classifier. * Major internationalization improvements for large-character-set * languages, eg Kannada. * Removed some compiler warnings. * Added multipage tiff support for training and running. * Updated graphics output to talk to new java-based viewer. * Added ability to save n-best lists. * Added leptonica support for more file types. * Improved Init/End to make them safe. * Reduced memory use of dictionaries. * Added some new APIs to TessBaseAPI. 2007-08-27 - V2.01 * Fixed UTF8 input problems with box file reader. * Fixed various infinite loops and crashes in dawg code. * Removed include of config_auto.h from host.h. * Added automatic wctype encoding to unicharset_extractor. * Fixed dawg table too full error. * Removed svn files from tarball. * Added new functions to tessdll. * Increased maximum utf8 string in a classification result to 8. 2007-07-02 - V2.00 * Converted internal character handling to UTF8. * Trained with 6 languages. * Added unicharset_extractor, wordlist2dawg. * Added boxfile creation mode. * Added UNLV regression test capability. * Fixed problems with copyright and registered symbols. * Fixed extern "C" declarations problem. 2007-05-15 - V1.04 * Added dll exports for Windows. * Fixed name collisions with stl etc. * Made some preliminary changes ready for unicodeization. * Several bug fixes discovered during unicodeization. 2007-02-02 - V1.03 * Added mftraining and cntraining. * Added baseapi with adaptive thresholding for grey and color. * Fixed many memory leaks. * Fixed several bugs including lack of use of adaptive classifier. * Added ifdefs to eliminate graphics code and add embedded platform support. * Incorporated several patches, including 64-bit builds, Mac builds. * Minor accuracy improvements. 2006-10-04 - V1.02 * Removed dependency on Aspirin. * Fixed a few missing Apache license headers. * Removed $log. 2006-09-07 - V1.01. * Added mfcpch.cpp and getopt.cpp for VC++. * Fixed problem with greyscale images and no libtiff. * Stopped debug window from being used for the usage output. * Fixed load of inttemp for big-endian architectures. * Fixed some Mac compilation issues. 2006-06-16 - V1.0 of open source Tesseract checked-in.