Skip to main content

SHIFTLAB OCR

SHIFT OCR is a library for handwriting text segmentation and character recognition.

Get Started

pip install shiftlab_ocr

Doc2Text

Reader from doc2text performs text detection and the following recognition.

import urllib

from shiftlab_ocr.doc2text.reader import Reader


urllib.request.urlretrieve(
  'https://raw.githubusercontent.com/konverner/shiftlab_ocr/main/demo_image.png',
   'test.png')
   
reader = Reader()
result = reader.doc2text("test.png")

Display recognized text:

print(result[0])

Действительно ли добро сильнее зла?
Именно над этим вопросом аставля заставляет
читателей задуматься В. Тендряков.
Автор рассматривает данную пробле-
му на конкретном примере, рассказывая
историю 00 заблудившемся немце русских
солдатах, которые пожалели врала и
позволи ему остаться землянке. 

Display segmented crops:

import matplotlib.pyplot as plt

def show_img_grid(images, N):
    n = int(N**(0.5))
    k = 0
    f, axarr = plt.subplots(n,n,figsize=(10,10))
    for i in range(n):
        for j in range(n):
            axarr[i,j].imshow(images[k].img)
            k += 1
    f.show()

show_img_grid(result[1], 48)

Generator of handwriting

It generates handwriting script with random backgrounds and handwriting fonts with a given string or a list of strings saved in source.txt.

Generating a random sample from a string:

from shiftlab_ocr.generator.generator import Generator

g = Generator(lang='ru')
s = g.generate_from_string('Москва',min_length=4,max_length=24) # get from a string
s

Generating batch of random samples from source.txt:

import numpy as np

# upload source.txt with one word per line
g.upload_source('source.txt')
b = g.generate_batch(12,4,13) # get batch of random samples from source.txt
fig=plt.figure(figsize=(10, 10))
rows = int(len(b)/4) + 2
columns = int(len(b)/8) + 2
for i in range(len(b)):
  fig.add_subplot(rows, columns, i+1)
  plt.imshow(np.asarray(b[i][0])) 

Also, see Google Colab Demo

Download files

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

Source Distribution

shiftlab-ocr-0.3.2.tar.gz (1.6 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

shiftlab_ocr-0.3.2-py3-none-any.whl (1.7 MB view details)

Uploaded Python 3

File details

Details for the file shiftlab-ocr-0.3.2.tar.gz.

File metadata

  • Download URL: shiftlab-ocr-0.3.2.tar.gz
  • Upload date:
  • Size: 1.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.13

File hashes

Hashes for shiftlab-ocr-0.3.2.tar.gz
Algorithm Hash digest
SHA256 db95692c5af6c7a2a317ba36e6df5ce1fbbb15814a16743ade21098c5bdab162
MD5 3328b64d7446d8db3bbc36477922b1b9
BLAKE2b-256 0272046035814cd471be9534bd7b0cb831b376cc9cac178edf58d7bca68cab00

See more details on using hashes here.

File details

Details for the file shiftlab_ocr-0.3.2-py3-none-any.whl.

File metadata

  • Download URL: shiftlab_ocr-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.13

File hashes

Hashes for shiftlab_ocr-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 4f04a0a2292fda20d6d95ec652f24342a5a85a64984af63bac0c25e8656bc565
MD5 fed67162fd9052e23eda0312a52190e9
BLAKE2b-256 cd30b3be68e7b970c7b3140607367dede17227e11209aa19ab9069ec08cbee52

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.3.2 This release

2 files

0.3.1

1 file

0.3

1 file

0.2

1 file

0.1

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page