[AI OCR] EasyOCR: Ready-to-use Optical Character Recognition (OCR) with 80+ supported languages
EasyOCR
Ready-to-use OCR with 80+ supported languages and all popular writing scripts including Latin, Chinese, Arabic, Devanagari, Cyrillic and etc.
Installation
Install using pip for stable release,
1 | pip install easyocr |
Docker and Docker Compose
TODO
Usage
1 | import easyocr |
Output will be in list format, each item represents bounding box, text and confident level, respectively.
1 | [([[189, 75], [469, 75], [469, 165], [189, 165]], '愚园路', 0.3754989504814148), |
Note 1: [‘ch_sim’,‘en’] is the list of languages you want to read. You can pass several languages at once but not all languages can be used together. English is compatible with every languages. Languages that share common characters are usually compatible with each other.
Note 2: Instead of filepath chinese.jpg, you can also pass OpenCV image object (numpy array) or image file as bytes. URL to raw image is also acceptable.
Note 3: The line reader = easyocr.Reader([‘ch_sim’,‘en’]) is for loading model into memory. It takes some time but it need to be run only once.
You can also set detail = 0
for simpler output.
1 | reader.readtext('chinese.jpg', detail = 0) |
Result:
1 | ['愚园路', '西', '东', '315', '309', 'Yuyuan Rd.', 'W', 'E'] |
Model weight for chosen language will be automatically downloaded or you can download it manually from the model hub and put it in ~/.EasyOCR/model
folder
In case you do not have GPU or your GPU has low memory, you can run it in CPU mode by adding gpu = False
1 | reader = easyocr.Reader(['ch_sim','en'], gpu = False) |
For more information, read tutorial and API Documentation.
Run on command line
1 | easyocr -l ch_sim en -f chinese.jpg --detail=1 --gpu=True |
References
[2] Jaided AI: EasyOCR demo - https://www.jaided.ai/easyocr/
[3] Jaided AI: EasyOCR tutorial - https://www.jaided.ai/easyocr/tutorial/