OCR engines compared
OCR · Benchmark · Python package
A benchmark that runs Tesseract, EasyOCR, RapidOCR, PaddleOCR and keras-ocr on the same images and reports what each read, how fast and how confidently.
Overview
A tool that runs several OCR engines over the same images and reports what each one read, how long it took and how confident it was, so the trade-offs can be seen rather than read about. I first wrote it in 2022 to compare keras-ocr, EasyOCR and Tesseract, and later turned it into a small package with RapidOCR and PaddleOCR in the line-up.
How it works
Each engine is an optional extra, so you install only the ones you want to run. Every engine returns the same shape, a text box with its text, polygon and confidence, so adding an engine means writing one small adapter and registering it. A command-line tool picks the engines and languages, prints a table of boxes, time per image and mean confidence, and can save a comparison figure or write JSON. The tests run without any engine installed and download nothing.
What it showed
In the original run Tesseract was not good at finding text in a whole image, so the text should be detected first, keras-ocr was accurate but slow on a CPU, and EasyOCR was a good all-rounder that coped with noise and did well on receipts and PDFs. Since then keras-ocr has stopped being maintained, so it sits behind its own extra, and PaddleOCR is listed with the strongest accuracy in the line-up. The right engine still depends on your images.
Built with
Python · Tesseract · EasyOCR · RapidOCR · PaddleOCR · keras-ocr · pytest