Skip to content

1.2.10

Compare
Choose a tag to compare
@TimKoornstra TimKoornstra released this 30 Oct 08:03
· 412 commits to master since this release
dc94fcf

Release Notes for Loghi-HTR Version 1.2.3 -> 1.2.10

Date: 2023-10-27

Overview

Version 1.2.10 brings a suite of bug fixes, API improvements, and functional enhancements. This update focuses on increased flexibility in model training, improved normalization processes, added image processing augmentations, and enhanced multi-GPU support in the API.

New Features

  • Normalization File: Introduced the --normalization_file argument, replacing --normalize. Characters to be replaced can now be specified in a JSON file, where the key is the character to replace, and the value is the replacement character. This facilitates training models with a focus on reducing or changing uncommon characters to more common, similar ones.
    Example:

    {
      "ø": "o",
      "æ": "ae"
    }
  • Sauvola and Otsu Binarizations: Reintroduced these methods for image preprocessing.

  • New Image Augmentations: Added blur (--do_blur) and invert (--do_invert) augmentations.

  • Silent Training: Added --training_verbosity_mode with options [auto, 0, 1, 2] for controlling training output verbosity.

API Enhancements

  • Multi-GPU Support: Enhanced to support multiple GPUs.
  • Improved Logging: Added process IDs for easier debugging and enhanced overall logging.
  • GPU Usage: Improved GPU usage handling, including the use of mixed_float16 policy if supported.
  • Image Preparation: Moved all image preparation tasks to a dedicated worker.
  • Batch Queue Size: Adjusted the prepared max queue size to reflect batches instead of individual images.
  • API Response Codes: Updated to align more closely with Laypa and Tooling standards.

Bug Fixes

  • Freezing Layers Capitalization: Fixed an issue where capitalization was ignored when setting layers to non-trainable.
  • Charlist Inference: The charlist is no longer required when replacing the final layer; it can now be inferred from texts.
  • Normalization in Multi-Character Spaces: When a normalization file is used, all multi-character spaces are now replaced with a single space.
  • Config.json githash: Ensured that githash in the config.json file does not contain spaces.
  • Existing Model Naming: Fixed an issue where setting a new name for an existing model using --existing_model and --model_name didn't work as expected.
  • Random Shear in Augmentation: Corrected an issue where the random shear augmentation incorrectly applied elastic transform.
  • Prediction Padding Value: Resolved a bug in prediction due to an incorrect padding value.
  • Multiprocessing with Gunicorn/Flask: Moved multiprocessing outside of the gunicorn/flask apps.

Docker Image

The Docker image for version 1.2.10 can be obtained using the following command:

docker pull loghi/docker.htr:1.2.10

Contributors

  • @MMaas3: Key contributions in reintroducing binarizations, adding extra augmentations, and fixing the githash issue in the config.json file.
  • @rvankoert: Significant work in addressing the capitalization issue for freezing layers and the charlist inference.
  • @TimKoornstra: Major contributions across various aspects including enhancements, bug fixes, and general improvements in the application.

Full Changelog: 1.2.3...1.2.10