Skip to content

Releases: naptha/tesseract.js

v5.1.1

24 Aug 07:00
Compare
Choose a tag to compare

What's Changed

  • Fixed bug where incorrect language data was loaded when oem is 2 (#938)
  • Fixed bug where boolean values in blocks output format would always be false (#907)

Full Changelog: v5.1.0...v5.1.1

v5.1.0

07 May 06:19
Compare
Choose a tag to compare

What's Changed

  • Added line size metrics to blocks output (#906)
    • line objects now include a property named rowAttributes, which is an object containing ascenders, descenders, and row_height metrics
    • These metrics allow for manual font size calculations that are more accurate than using the font_size property.
  • Updates to documentation, types, and dependencies

New Contributors

Full Changelog: v5.0.5...v5.1.0

v5.0.5

26 Feb 05:09
Compare
Choose a tag to compare

What's Changed

  • Fixed bug triggered by running worker.recognize while a previous call to worker.recognize is still running (#875)
    • Sending multiple jobs to the same worker at the same time is still not recommended.
    • Instead, schedulers should be used to coordinate running jobs in parallel (see this example)
  • Fixed bug with rotateAuto option unnecessarily inflating runtime (#892)
  • Minor fixes to documentation and types

Full Changelog: v5.0.4...v5.0.5

v5.0.4

24 Dec 04:56
Compare
Choose a tag to compare

What's Changed

  • Fixed support for setting "init only" parameters using config option of createWorker (#862)
    • For example, load_number_dawg is an "init only" parameter that cannot be set using either worker.setParameters or the options argument of worker.recognize.
    • However, load_number_dawg can be set by the following createWorker statement.
      • createWorker('eng', "0", {}, {load_number_dawg: "0"});
  • Improvements to documentation

New Contributors

Full Changelog: v5.0.3...v5.0.4

v5.0.3

30 Oct 00:02
Compare
Choose a tag to compare

What's Changed

  • Minor changes to types, documentation, and build

New Contributors

Full Changelog: v5.0.2...v5.0.3

v5.0.2

03 Oct 23:13
Compare
Choose a tag to compare

What's Changed

Version 5.0.1 is nearly identical to 5.0.2 and was the latest version for under a day, so does not have its own release notes.

Full Changelog: v5.0.0...v5.0.2

v5.0.0

28 Sep 07:42
Compare
Choose a tag to compare

What's Changed

Major New Features

  1. Significantly smaller file sizes
    1. 54% smaller file sizes for English, 73% smaller for Chinese (see #806 for details)
    2. This results in a ~50% decrease in runtime for first-time users (who do not yet have the data downloaded/cached)
  2. Significantly lower memory usage
    1. Worker memory utilization in the web benchmark is reduced from 311 MB to 164 MB (47% reduction)
    2. The lower memory footprint makes it feasible to use more workers, significantly improving performance for projects that utilize schedulers for parallel processing
  3. Compatible with iOS 17 (using default settings)
    1. iOS 17 broke compatibility with Tesseract.js v4--upgrading to v5 should resolve
      1. See discussion section below for details

Breaking Changes Impacting Many Users

  1. createWorker arguments changed
    1. Setting non-default language and OEM now happens in createWorker
      1. E.g. createWorker("chi_sim", 1)
  2. worker.initialize and worker.loadLanguage functions now do nothing and can be deleted from code
    1. Loading the language and initialization now occurs in createWorker
    2. Workers can be re-initialized with different settings using worker.reinitialize

In other words, code should be modified from this:

const worker = await Tesseract.createWorker();
await worker.loadLanguage('eng');
await worker.initialize('eng');
const ret = await worker.recognize(file);

To this:

const worker = await Tesseract.createWorker("eng");
const ret = await worker.recognize(file);

Breaking Changes Impacting Fewer Users

  1. Users who manually set corePath will need to update the contents of their corePath directory
    1. corePath should point to a directory that contains all 4 of the files below from Tesseract.js-core v5:
      1. tesseract-core.wasm.js
      2. tesseract-core-simd.wasm.js
      3. tesseract-core-lstm.wasm.js
      4. tesseract-core-simd-lstm.wasm.js
    2. Tesseract.js will automatically select the correct version to use
  2. worker.detect function disabled by default
    1. Orientation + script detection is a function of the Legacy model only, which is no longer included by default
    2. To enable, set arguments legacyCore: true and legacyLang: true in createWorker options
      1. E.g. Tesseract.createWorker("eng", 1, {legacyCore: true, legacyLang: true});
  3. Language of progress logs standardized
    1. This should only impact users who parse status logs (e.g. to update a loading bar)

Non-Breaking Changes

  1. Language data loaded from jsdelivr by default (rather than GitHub pages)
    1. This should result in improved performance and uptime
  2. Separate "development" build (that produced tesseract.dev.js and worker.dev.js removed
  3. Documentation and examples were modified to prevent new users from using Tesseract.recognize and Tesseract.detect
    1. Users who already use these functions are encouraged to modify their code to use worker.recognize and worker.detect instead

Considering upgrading from v2 to v5? See #771 for a full guide for updating.

Full Changelog: v4.1.3...v5.0.0

v4.1.4

28 Sep 06:58
Compare
Choose a tag to compare

What's Changed

  • Restored compatibility with certain versions of Node.js v14

Full Changelog: v4.1.3...v4.1.4

v4.1.3

28 Sep 02:04
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v4.1.2...v4.1.3

v4.1.2

28 Aug 04:36
Compare
Choose a tag to compare

What's Changed

  • Fixed bug causing excessive memory use when using FS + writeFile function (#812)
  • Fixed bug where setting output option debug: true was forcing recognition to be run (#788)
  • Added warning message when setParameters is used to set options that can only be set during initialize (#816)
  • Minor edits to reduce memory use (#815)
  • Minor changes to documentation, types, and example code (#575, #791, #803, #805, #810, #817)

New Contributors

Full Changelog: v4.1.1...v4.1.2