JaidedAI / EasyOCR

Ready-to-use OCR with 80+ supported languages and all popular writing scripts including Latin, Chinese, Arabic, Devanagari, Cyrillic and etc.
https://www.jaided.ai
Apache License 2.0
22.74k stars 3k forks source link

[offtopic] make a reimplementation in C++ #709

Open Kromtar opened 2 years ago

Kromtar commented 2 years ago

I would like to know if the community that uses this repository would be interested in a C++ reimplementation. This OCR has given me excellent results so far. But the fact that it is in Python and uses Torch makes it difficult to compile it in an optimized way. I am planning to make an exact reimplementation of the current version of EasyOCR but in C++ and using TorchScript. It is a lot of work. Is anyone else looking for a solution like this?

Greetings

euirim commented 2 years ago

I'm interested, particularly for inference. I don't have great C++ skills, but I may be able to write a bare bones Rust implementation that can compile into a C library.

cfanatic commented 2 years ago

I am interested, too.

Cilouche commented 1 year ago

I'm interested, thanks

BBO-repo commented 1 year ago

Totally agree, easyocr give great results thanks so much to the author and contributors

Having a C++ implementation would be great. I'm coding in C++ for more than 5 years @Kromtar please let me know if I can help

yunus-temurlenk commented 1 year ago

count on me

kevinkazzo commented 1 year ago

I started this, anyone else start?

BBO-repo commented 1 year ago

On my side start working on translating the craft algorithm (used by easyocr for text detection) in C++. If successful I'll try to go on with translating the text recognition algorithm

@kevinkazzo if you want we can join our effort?

facug91 commented 1 year ago

It would be great if someone could do some kind of planning so that everyone willing to help can address those different issues without overlapping each other. I know it's a lot of work I'm proposing for the person who would do it, but it would help a lot to speed up development.

BBO-repo commented 10 months ago

Maybe this repository is a good starting point https://github.com/jackvial/tuatara

kevinkazzo commented 10 months ago

sorry I forgot to update. I did this, will respond on my other github and upload the project and start allowing people to make PRs to improve it. Did not optimize it entirely, but got the detector and recognition network working in plain torchscript/ c++. Even got it in ONNX

BBO-repo commented 10 months ago

Great! Looking forward to seeing it and testing.

MinGiSa commented 9 months ago

sorry I forgot to update. I did this, will respond on my other github and upload the project and start allowing people to make PRs to improve it. Did not optimize it entirely, but got the detector and recognition network working in plain torchscript/ c++. Even got it in ONNX

When can we expect to see your amazing project? :)

SC-One commented 7 months ago

[C++ software engineer] you can count on me too.

ksasso1028 commented 7 months ago

Hey all, this is @kevinkazzo, on my main account will post it up by tomorrow evening!

ksasso1028 commented 7 months ago

hey all! uploaded here it is! - > https://github.com/ksasso1028/EasyOCR-cpp

A2va commented 5 months ago

For those who don't want to use libtorch, I implemented easyocr with opencv, onnxruntime and xtensor. This is not a full implementation, but I will include it in a library of mine that will come out later, for now it is just this.

The ONNX model is converted with the notebook provided by samiechan here

If you have any problems or suggestions about my code, I'm happy to listen to your suggestions/questions. I will edit this message to add CRAFT model when it's ready.

https://gist.github.com/A2va/64eea11018192284c7ce3db7bb3801bc

BBO-repo commented 5 months ago

Thank for those sharing, I'll give it a try!