JaidedAI/EasyOCR
49.7
Weak · 18 September 2026
18.2k
lines of production code
Python
with C++
1
measurement over time
What this system is
This system is EasyOCR, a library for optical character recognition that performs text detection and recognition. It supports multiple detection algorithms, including CRAFT and DBNet, with DBNet offering CPU-compatible inference via deformable convolution operators. The project provides tools for training custom models, managing dependencies, and validating functionality through a comprehensive unit testing framework.
Features
Add CRAFT text detection training code and configuration
The \trainer\ directory now includes the complete training infrastructure for the CRAFT (Character Region Awareness for Text Detection) model. This addition provides Python scripts for training on synthetic (SynthText) and custom datasets, along with evaluation utilities and metrics. It also introduces YAML configuration files to manage training hyperparameters, data augmentation settings, and model architecture options, enabling users to train and fine-tune the CRAFT detection model.
trainer · high confidence
Add DBNet text detection module with CPU-compatible Deformable Convolution
This change introduces the DBNet text detection module to EasyOCR, providing an alternative to the default CRAFT detector. The module includes a new \DBNet\ class for model initialization and inference, along with ResNet and MobileNetV3 backbone implementations. A key feature is the integration of Deformable Convolution (DCN) operators that support Just-in-Time (JiT) compilation, allowing the module to run on CPU hardware in addition to CUDA-enabled GPUs. The implementation also includes updated pretrained weight naming conventions and configuration files to support this inference-only, cross-platform deployment.
easyocr/DBNet · high confidence
Added Japanese dictionary and punctuation generation script
A new Ruby script (scripts/generate-ja.rb) has been added to download and process the JMdict and JMnedict XML resources, generating updated Japanese character lists, a word dictionary, and a punctuation set for the EasyOCR library. A corresponding .gitignore file has been added to exclude the downloaded XML archives from version control.
scripts · high confidence
DBNet detection now supports CPU inference
The DBNet text detection module now runs on CPUs by adding C++ and CUDA implementations for deformable convolution and deformable PSROI pooling operators. This allows users to perform text detection with DBNet on systems without a GPU or when GPU acceleration is unavailable, whereas previously these operations were likely restricted to CUDA-enabled hardware.
easyocr · high confidence
EasyOCR v1.7.2 release with Docker support and CLI entry point
This update introduces EasyOCR version 1.7.2, which includes a new Dockerfile for containerized deployment, a MANIFEST.in file to ensure model and script assets are included in package distributions, and a console script entry point (\easyocr\) for command-line usage. The project has been rebranded from 'JaidedRead' to 'EasyOCR' in the README, and a \custom\_model.md\ guide has been added to document how to train and use custom recognition models.
(repo-wide) · high confidence
Behavioural changes
Refactored model architecture for TorchScript compatibility and torchvision updates
The model implementation in easyocr/model has been refactored to support TorchScript serialization and maintain compatibility with newer versions of torchvision. The VGG backbone now uses a standard class instead of a named tuple for outputs, resolving serialization issues. Additionally, the code handles deprecated pretrained parameter usage in torchvision (version 0.13+) and includes a workaround for AdaptiveAvgPool2d with None target size to ensure TorchScript compatibility. The BidirectionalLSTM module also includes a try-except block for flatten\_parameters to support multi-GPU environments.
easyocr/model · high confidence
Test coverage
Added EasyOCR unit testing framework and documentation
Introduced a new \unit\_test\ module that provides a comprehensive framework for validating EasyOCR functionality. This includes a \UnitTest\ class for executing tests against specific EasyOCR modules (such as detection, recognition, and text extraction), a Python script (\run\_unit\_test.py\) and an IPython notebook (\demo.ipynb\) for running these tests with configurable verbosity, and a utility script (\make\_test\_solution.py\) for generating test data packages. The addition is accompanied by a \README.md\ detailing usage instructions and argument options.
_unit\test · high confidence
Dependencies
Add dependency manifests for CRAFT training and base project
Added requirements.txt files for the base project and the CRAFT trainer component. The base requirements.txt specifies dependencies including torch, torchvision, opencv-python-headless, scipy, numpy, Pillow, scikit-image, python-bidi, PyYAML, Shapely, pyclipper, and ninja. The trainer/craft/requirements.txt pins specific versions for conda, opencv-python, Pillow, Polygon3, PyYAML, scikit-image, Shapely, torch, torchvision, and wandb to ensure reproducible training environments.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Baseline
- First survey — no prior run to compare against. CAI 50.
Lenses
- Code Health 84
- Architecture 94
- Maturity 44
- Readiness 32
- Security 86
Changes since last survey
- 300 commits — 267 feature/other, 33 fixes
By area
- (repo) — 104 commits
- (root) — 66 commits
- easyocr/character — 23 commits
- easyocr/easyocr.py — 22 commits
- easyocr/dict — 16 commits
- easyocr/utils.py — 16 commits
- trainer/craft — 12 commits
- easyocr/model — 8 commits
- easyocr/DBNet — 6 commits
- easyocr/config.py — 5 commits
- easyocr/cli.py — 4 commits
- easyocr/detection.py — 3 commits
- easyocr/recognition.py — 3 commits
- easyocr/init.py — 2 commits
- easyocr/craft_utils.py — 2 commits
- easyocr/export.py — 2 commits
- .vs/EasyOCR — 1 commit
- .vscode/settings.json — 1 commit
- trainer/modules — 1 commit
- trainer/train.py — 1 commit
Notable commits
- fix: :bug: Bugfix: empty free_list
- fix: Bug fix: replace latin I with polochka Ӏ
- fix: Fix DBNet for numpy >= 1.20.0
- fix: Fix bug group_text_box(...) when a center of the big boxes with almost equal to a center of the small boxes.
- fix: Fix detection speed issue
- fix: Fix onnx export issue when gpu is avai
- fix: Fix setuptools warning
- fix: Fix wrong param type
- fix: Fix: Using Variables(imgH) for Custom Models
- fix: Fix: broken link for Train/use your own model
- fix: Fix: import get_display
- fix: Fixes JaidedAI/EasyOCR#504
- fix: Fixes a bug of the progress bar, and improves .gitignore. The original progress bar prints a '\r' at first, but it prints another '\r' just after the progress is printed, which makes the bar flicker. Since the progress bar is only used when downloading the model, the trailing '\r' is useless and is removed, so that it should not flicker when downloading.
- fix: Merge pull request #500 from SamSamhuns/detection-speed-fix
- fix: Merge pull request #545 from alexander-soare/fix-rotation-tta
- fix: Merge pull request #556 from strobelTha/fix/fix_non_merging_overlapping_boxes
- fix: array element bug fix
- fix: fix ZeroDivision Error for blank images #346
- fix: fix bug when text box ratio is too slim
- fix: fix compare width_ths to group_text_box
- …and 280 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
JaidedAI/EasyOCR was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 18 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 363afb184047ce452e436f4224f3098422df872e — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-5d04157a340d.