Skip to main content

Django app for OCR and translation

Project description

pypi
pypi

OCR_translate

This is a Django app for creating back-end server aimed at performing OCR and translation of images received via a POST request.

The OCR and translation is performed using freely available machine learning models and packages (see below for what is currently implemented).

The server is designed to be used together with this browser extension, acting as a front-end providing the images and controlling the languages, models and plugins being used.

For more information, please consult the Full Documentation

Running the server

See the documentation for more information.

TLDR: If you are on windows you will need to:

  • install python with the check on Add python.exe to PATH
  • download>unzip the release file
  • run the run-user.bat file

Why do I need to install python

Before version v0.6.0 the server was distributed by including all possible plugins and their dependencies.
This made the distribution file (both the github release and docker image) quite large and the release process cumbersome.
Furthermore, not every user might be interested in every plugin and might end up downloading GB of files that they will never use.

For this reason a plugin_manager has been added to the project that will download/install the plugins and their dependencies on demand.
Installing python packages requires pip to be available (which is included with python on the windows installer).
Unfortunately I have not found a way to include pip reliably in the frozen install produced for the release file.
The alternative would've been to add a 2nd installer just to get pip before running the server, but why reinvent the wheel.

The check on Add python.exe to PATH is needed so that pip can be run without having to make any assumption on the installation path.

Also since I am now asking people to install python, I decided to go all the way and use an approach similar to what automatic1111's webui.bat does for stable diffusion.
This batch script will create/reuse a virtual environment in a folder venv in the same directory as the script and install the required packages in it.

Contributing

  • Suggestions/Ideas are always welcome and can be posted as discussions.
    You can also just propose a new model to be tested/added to the ones available by default.
  • Bugs can be reported as issues
  • Code contributions as pull requests. Check the documentation for more information.

Plugins

The server is designed to only offer the basic functionalities, while the models that can be used and how they are used are defined by plugins.

See the documentation for a list of available plugins

Notes

  • When switching the server between CPU/CUDA mode for the first time, run the installation of the plugins again to make sure the scope-specific dependencies are installed.

Possible problems

  • Issue 25 Using uBlock origin (or possibly other extension capable of blocking content) could stop the extension from sending requests to the server. This can be recognized if the popup for setting the language and models works fine but than the translations fails without producing any new log in the server windows. (WIP long term fix in the extension)

  • Issue 27 Having non latin characters in the model's path can cause HuggingFace transformers to fail loading them

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django_ocr_translate-0.6.0.tar.gz (1.2 MB view details)

Uploaded Source

Built Distribution

django_ocr_translate-0.6.0-py3-none-any.whl (1.2 MB view details)

Uploaded Python 3

File details

Details for the file django_ocr_translate-0.6.0.tar.gz.

File metadata

  • Download URL: django_ocr_translate-0.6.0.tar.gz
  • Upload date:
  • Size: 1.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.32.3

File hashes

Hashes for django_ocr_translate-0.6.0.tar.gz
Algorithm Hash digest
SHA256 c7184b86e44f79ffce107f33879dcd65800356edeab2a77b54fbb39e92243bd5
MD5 0cd9bab61d8126218be6829aa52fe896
BLAKE2b-256 16b85a9b86c4a4e7d7b49273d513454850037358763b2580352e9b42b1483775

See more details on using hashes here.

File details

Details for the file django_ocr_translate-0.6.0-py3-none-any.whl.

File metadata

File hashes

Hashes for django_ocr_translate-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6f9c695eefcd7801e407592de6254a9cf2e072ca96be5dcb84e809f79a69fbba
MD5 f49f12ce8dfabd27ca409f9b902bc26a
BLAKE2b-256 421091c9e97982f6c837cd521997f1c282ef303c93e654abdad789958f9f637a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page