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

Metadata

Release files for shiftlab-ocr 0.3.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for shiftlab-ocr 0.3.2
File Size Uploaded
shiftlab-ocr-0.3.2.tar.gz 1.6 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for shiftlab-ocr 0.3.2
File Interpreter ABI Platform
shiftlab_ocr-0.3.2-py3-none-any.whl Python 3 none any Details

Total release size: 3.3 MB

Release files / shiftlab-ocr-0.3.2.tar.gz

Download URL shiftlab-ocr-0.3.2.tar.gz
Size 1.6 MB
Tags Source
SHA-256 checksum
How to use checksums
db95692c5af6c7a2a317ba36e6df5ce1fbbb15814a16743ade21098c5bdab162
BLAKE2b-256 checksum
How to use checksums
0272046035814cd471be9534bd7b0cb831b376cc9cac178edf58d7bca68cab00
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.13

Release files / shiftlab_ocr-0.3.2-py3-none-any.whl

Download URL shiftlab_ocr-0.3.2-py3-none-any.whl
Size 1.7 MB
Tags Python 3
SHA-256 checksum
How to use checksums
4f04a0a2292fda20d6d95ec652f24342a5a85a64984af63bac0c25e8656bc565
BLAKE2b-256 checksum
How to use checksums
cd30b3be68e7b970c7b3140607367dede17227e11209aa19ab9069ec08cbee52
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.13

Release history Release notifications | RSS feed

This release

0.3.2 This release

2 release files

0.3.1

1 release file

0.3

1 release file

0.2

1 release file

0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page