File size: 978 Bytes
38577b6 fac036e 38577b6 fac036e 38577b6 fac036e 38577b6 fac036e 38577b6 fac036e 38577b6 fac036e 38577b6 fac036e 38577b6 fac036e 38577b6 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | import easyocr
import os
MODEL_DIR = "./models"
LANG_GROUPS = {
"latin": ["en", "fr", "de", "es", "it", "tr"],
"arabic": ["ar", "fa", "ur"],
"cyrillic": ["ru", "uk"],
"east_asia": ["ch_sim", "ja", "ko"]
}
class OCRCore:
def __init__(self):
self.cache = {}
def detect_group(self, lang):
for group, langs in LANG_GROUPS.items():
if lang in langs:
return group
return "latin"
def get_reader(self, lang):
group = self.detect_group(lang)
if group in self.cache:
return self.cache[group]
reader = easyocr.Reader(
[lang],
model_storage_directory=MODEL_DIR,
download_enabled=False # 🔥 KRİTİK
)
self.cache[group] = reader
return reader
def run(self, image, lang):
reader = self.get_reader(lang)
result = reader.readtext(image)
return " ".join([r[1] for r in result]) |