Tesseract Open Source OCR Engine (main repository)
Go to file
Stefan Weil 46c887b77e genericvector: Fix minimum size
Commit 907de5995f tried to improve
GenericVector, but missed a case where vectors with less than
kDefaultVectorSize were allocated. This resulted in additional
alloc / free operations.

Commit a28b2a033d (before memory optimization)
oem 0: total heap usage: 739,238 allocs, 739,237 frees, 161,699,214 bytes allocated
oem 1: total heap usage: 690,182 allocs, 690,175 frees, 144,470,400 bytes allocated
oem 2: total heap usage: 728,213 allocs, 728,206 frees, 182,885,824 bytes allocated

Commit fd3f8f9b2d without genericvector change
oem 0: total heap usage: 738,980 allocs, 738,979 frees, 161,697,150 bytes allocated
oem 1: total heap usage: 690,182 allocs, 690,175 frees, 144,470,400 bytes allocated
oem 2: total heap usage: 728,213 allocs, 728,206 frees, 182,885,824 bytes allocated
=> Improvements for oem 0, no change for oem 1 and oem 2.

Commit fd3f8f9b2d
oem 0: total heap usage: 772,648 allocs, 772,647 frees, 160,083,901 bytes allocated
oem 1: total heap usage: 748,591 allocs, 748,584 frees, 143,581,672 bytes allocated
oem 2: total heap usage: 764,796 allocs, 764,789 frees, 181,212,197 bytes allocated
=> Less bytes allocated, but more allocs / frees = bad for performance.

Commit fd3f8f9b2d with this patch
oem 0: total heap usage: 677,537 allocs, 677,536 frees, 160,444,634 bytes allocated
oem 1: total heap usage: 653,812 allocs, 653,805 frees, 143,423,008 bytes allocated
oem 2: total heap usage: 670,029 allocs, 670,022 frees, 181,517,760 bytes allocated
=> Improvements for all three cases.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
2017-05-03 09:49:23 +02:00
android Update Android.mk 2016-12-15 12:08:10 +02:00
api api: Remove unneeded NULL checks 2017-04-30 19:23:24 +02:00
arch More formatting fixes from clang tidy 2017-04-28 13:38:32 -07:00
ccmain More formatting fixes from clang tidy 2017-04-28 13:38:32 -07:00
ccstruct blobs: Remove unused macro 2017-05-01 17:12:43 +02:00
ccutil genericvector: Fix minimum size 2017-05-03 09:49:23 +02:00
classify Remove unused local variables 2017-05-02 09:43:29 +02:00
cmake Update SourceGroups.cmake 2016-12-15 14:11:47 +03:00
contrib helper script to generate dawg input files from text 2016-10-17 19:04:29 +01:00
cutil Remove undefined macro MAC_OR_DOS 2017-05-01 18:17:33 +02:00
dict Replace memalloc / memfree by C++ new / delete 2017-05-01 17:26:23 +02:00
doc doc: Fix use of MAINTAINER_MODE 2017-05-02 07:37:18 +02:00
java java: Improve build rules 2016-12-11 22:04:17 +01:00
lstm Added extra Init that takes a memory buffer or a filereader function pointer to enable read of traineddata from memory or foreign file systems. Updated existing readers to use TFile API instead of FILE. This does not yet add big-endian capability to LSTM, but it is very easy from here. 2017-04-27 15:48:23 -07:00
opencl Use Leptonica struct names L_Compressed_Data, Pix 2017-04-30 10:50:12 +02:00
snap Add the packaging metadata to build the tesseract snap 2017-02-03 06:37:39 +00:00
tessdata Update Makefile.am (add 'lstm.train') 2017-04-02 17:06:12 +09:00
testing testing: Fix warnings from shellcheck 2017-04-11 18:23:47 +02:00
textord Fix some typos in comments (found by codespell) 2017-03-10 19:50:17 +01:00
training training: Replace memfree by free 2017-05-01 18:14:00 +02:00
viewer SVNetwork: Avoid unneeded new / delete operations 2017-04-30 19:58:58 +02:00
vs2010 Remove support for VS2010 2016-12-16 08:31:56 +01:00
wordrec Remove unused include statements for freelist.h 2017-05-01 17:12:43 +02:00
.gitignore doc: Remove generated files and add rules to build manpages 2017-04-30 11:27:17 +02:00
.travis.yml Update Leptonica version for Travis CI 2017-04-22 17:51:39 +02:00
appveyor.yml Update appveyor.yml 2017-03-23 01:21:28 +03:00
AUTHORS AUTHORS: Add more contributors 2016-11-27 00:04:05 +02:00
autogen.sh autogen.sh: Small Typo Fix 2017-04-15 12:31:24 -04:00
ChangeLog Fix ChangeLog for Leptonica 1.74 2017-04-22 18:33:37 +02:00
CMakeLists.txt Correct include path for installed project 2017-04-20 14:59:13 +03:00
configure.ac opencl: Add missing TIFF library for macOS 2017-04-09 12:12:18 +02:00
CONTRIBUTING.md Fix typos 2017-01-29 13:12:24 +01:00
COPYING Result of clang tidy on recent merge 2016-11-07 10:46:33 -08:00
cppan.yml Remove global sse define from cppan. 2017-02-24 11:59:08 +03:00
docker-compose.yml Dockerifying using travis build script 2016-03-18 00:32:35 -04:00
Dockerfile Dockerifying using travis build script 2016-03-18 00:32:35 -04:00
INSTALL Fix typos 2017-01-29 13:12:24 +01:00
INSTALL.GIT.md Update INSTALL.GIT.md 2016-12-26 18:03:07 +01:00
LICENSE Added missing license headers 2016-11-18 15:53:11 -08:00
Makefile.am Merge pull request #576 from stweil/shellcheck 2016-12-15 08:30:30 +01:00
NEWS top-skimming import from sf.net 2007-03-07 20:03:40 +00:00
README.md README: Update stable version 2017-04-10 22:28:14 +02:00
tesseract.pc.cmake Cmake install 2017-04-20 14:50:53 +03:00
tesseract.pc.in improve tesseract.pc.in - fixes #241 2016-03-04 22:25:40 +01:00

Build Status Build status

For the latest online version of the README.md see:

https://github.com/tesseract-ocr/tesseract/blob/master/README.md

About

This package contains an OCR engine - libtesseract and a command line program - tesseract.

The lead developer is Ray Smith. The maintainer is Zdenko Podobny. For a list of contributors see AUTHORS and GitHub's log of contributors.

Tesseract has unicode (UTF-8) support, and can recognize more than 100 languages "out of the box". It can be trained to recognize other languages. See Tesseract Training for more information.

Tesseract supports various output formats: plain-text, hocr(html), pdf.

This project does not include a GUI application. If you need one, please see the 3rdParty wiki page.

You should note that in many cases, in order to get better OCR results, you'll need to improve the quality of the image you are giving Tesseract.

The latest stable version is 3.05.00, released in February 2017.

Brief history

Tesseract was originally developed at Hewlett-Packard Laboratories Bristol and at Hewlett-Packard Co, Greeley Colorado between 1985 and 1994, with some more changes made in 1996 to port to Windows, and some C++izing in 1998.

In 2005 Tesseract was open sourced by HP. Since 2006 it is developed by Google.

Release Notes

For developers

Developers can use libtesseract C or C++ API to build their own application. If you need bindings to libtesseract for other programming languages, please see the wrapper section on AddOns wiki page.

Documentation of Tesseract generated from source code by doxygen can be found on tesseract-ocr.github.io.

License

The code in this repository is licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

NOTE: This software depends on other packages that may be licensed under different open source licenses.

Installing Tesseract

You can either Install Tesseract via pre-built binary package or build it from source.

Supported Compilers

  • GCC 4.8 and above
  • Clang 3.4 and above
  • MSVC 2015, 2017

Other compilers might work, but are not officially supported.

Running Tesseract

Basic command line usage:

tesseract imagename outputbase [-l lang] [--psm pagesegmode] [configfiles...]

For more information about the various command line options use tesseract --help or man tesseract.

Support

Mailing-lists:

Please read the FAQ before asking any question in the mailing-list or reporting an issue.