Giter Site home page Giter Site logo

theos-ai / easy-paddle-ocr Goto Github PK

View Code? Open in Web Editor NEW
16.0 3.0 1.0 15.14 MB

This a clean and easy-to-use implementation of Paddle OCR. Made with ❤️ by Theos AI.

Home Page: https://theos.ai

Python 100.00%
custom-ocr license-plate-recognition machine-learning ocr optical-character-recognition paddle paddleocr paddlepaddle python text-recognition

easy-paddle-ocr's Introduction

🤙🏻 Easy Paddle OCR ⚡️

Easy Paddle OCR by Theos AI

This a clean and easy-to-use implementation of Paddle OCR. Made with ❤️ by Theos AI.

Don't forget to subscribe to our YouTube Channel!

Install the package

pip install easy-paddle-ocr

How does it work?

The text recognition is made on a cropped part of a larger image, usually these crops are made with the bounding box output of an Object Detection model. You can learn how to build a license plate recogition model on the following YouTube Tutorial. You can easily train a model to make bounding boxes around any kind of text, not just license plates. After training your own object detection model, you can pass those cropped bounding boxes to Easy Paddle OCR in order to perform text recognition and read the text they contain.

Read the text

On the read.py file we recognize the text of 3 different cropped bounding boxes, each taken from larger images.

broadway.jpeg broadway.jpeg

brooklyn.jpeg brooklyn.jpeg

casino.jpeg casino.jpeg

Let's recognize all of them with the following script.

from easy_paddle_ocr import TextRecognizer
import time
import cv2

text_recognizer = TextRecognizer() # for custom weights do TextRecognizer(weights='folder_path')
images = ['broadway.jpeg', 'brooklyn.jpeg', 'casino.jpeg']

for filename in images:
  image = cv2.imread(filename)
  start = time.time()
  prediction = text_recognizer.read(image)
  print(f'\n[+] image: {filename}')
  print(f'[+] text: {prediction["text"]}')
  print(f'[+] confidence: {int(prediction["confidence"]*100)}%')
  print(f'[+] inference time: {int((time.time() - start)*1000)} milliseconds')

print()

After running the read.py script you should see the following output.

[+] image: broadway.jpeg
[+] text: BROADWAY
[+] confidence: 98%
[+] inference time: 39 milliseconds

[+] image: brooklyn.jpeg
[+] text: BROOKLYN
[+] confidence: 96%
[+] inference time: 31 milliseconds

[+] image: casino.jpeg
[+] text: CASINO
[+] confidence: 78%
[+] inference time: 30 milliseconds

Custom Training

If you find that the default Paddle OCR weights don't work very well for your specific use case, we recommed you to train your own OCR model on Theos AI.

A tutorial on how to do this is coming soon, but if you already signed up and figured out how to build your own dataset on Theos and trained it on Paddle OCR, the only thing you have to do now is download your custom weights from your training session experiment by clicking the weights button on the top right corner.

Button

Weights

Download the Last or Best weights and extract the zip file. Only the following files are required.

dictionary.txt
inference.pdiparams
inference.pdiparams.info
inference.pdmodel

Finally, set the new weights folder path when you instantiate your TextRecognizer.

text_recognizer = TextRecognizer(weights='./best')

Contact us

Reach out to [email protected] if you have any questions!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.