Skip to content

Releases: naptha/tesseract.js

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.
      • worker.initialize('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

v4.1.1

21 Jun 05:14
Compare
Choose a tag to compare

What's Changed

  • Fixed detection of image orientation metadata (#783)
    • Allows Tesseract.js to work with images taken on iOS devices
  • Minor changes to documentation and types (#781, #782, #778)

New Contributors

Full Changelog: v4.1.0...v4.1.1

v4.1.0

03 Jun 00:57
Compare
Choose a tag to compare

What's Changed

  • Added ability to run layout analysis without recognition (#656)
  • Added support for OffscreenCanvas in browser version by @nathanbabcock (#766)
  • Fixed bug where recognize was running OCR even when not necessary (#769)
  • Fixed bug where certain valid langPath URLs caused errors in browser version (#558)
  • Removed problematic file-type and resolve-url dependencies (#773, #711)

Full Changelog: v4.0.6...v4.1.0

v4.0.6

16 May 03:23
Compare
Choose a tag to compare

What's Changed

  • Invalid langData (.traineddata files) are now cleared from cache (#753)
    • Note: setting cacheMethod: 'none' or cacheMethod: 'refresh' to prevent invalid files from being cached should no longer be necessary
  • Added source maps to esm build (#761)
  • Various updates to documentation

Full Changelog: v4.0.5...v4.0.6