Skip to content

Qengineering/OpenCV_OCR_DNN

Repository files navigation

OpenCV_OCR_DNN

output image output image

Recognize text with deep learning on a bare Raspberry Pi 4.

License

Paper: https://arxiv.org/pdf/1507.05717.pdf
Special made for a bare Raspberry Pi 4, see Q-engineering deep learning examples


Tip.

👉 See also PaddleOCR-Lite solution. It is 5 times faster and more accurate.


Dependencies.

To run the application, you have to:

  • A raspberry Pi 4 with a 32 or 64-bit operating system. It can be the Raspberry 64-bit OS, or Ubuntu 18.04 / 20.04. Install 64-bit OS
  • OpenCV version 4.5.1 or higher 64-bit installed. Install OpenCV 4.5
  • Code::Blocks installed. ($ sudo apt-get install codeblocks)

Notes.

The image is resized to 100x32 pixels (line 56 at main.cpp) before being processed by OpenCV's deep learning engine.
Obvious, your text must be one line and not too long to be recognized properly.
In contrast to tesseract, deep learning models are less sensitive to font, colour, noise, scale, and skew.
For more models, check the OpenCV tutorial. Most consume considerably more computer power, hence more significant interference times.


Installing the app.

To extract and run the network in Code::Blocks
$ mkdir MyDir
$ cd MyDir
$ wget https://github.com/Qengineering/OpenCV_OCR_DNN/archive/refs/heads/main.zip
$ unzip -j master.zip
Remove master.zip, LICENSE and README.md as they are no longer needed.
$ rm master.zip
$ rm LICENSE
$ rm README.md

Your MyDir folder must now look like this:
*.png
alphabet_36.txt
alphabet_94.txt
OpenCV_OCR.cpb
main.cpp
DenseNet_CTC.onnx


Running the app.

To run the application load the project file OpenCV_OCR.cbp in Code::Blocks.
Next, follow the instructions at Hands-On.


paypal