EasyOCR va PaddleOCR — Deep Learning Avlodi
Ikkinchi avlod nima beradi?
Tesseract klassik pipeline: layout analysis + LSTM. EasyOCR va PaddleOCR esa to'liq neyron tarmoqli detection (CRAFT/DB) ishlatadi — qiyshiq, egri, sochilgan, fotosuratdagi matnni ham topadi. Ko'cha belgilari, mahsulot etiketkalari, ekran suratlari — bu ularning maydoni.
EasyOCR — eng oson boshlash
PyTorch asosida, 80+ til. API haqiqatan ham oson:
import easyocr # Model birinchi chaqiruvda yuklanadi (~100 MB), keyin keshda reader = easyocr.Reader(["ru", "en"]) results = reader.readtext("photo_document.jpg") for bbox, text, conf in results: if conf > 0.5: print(f"{conf:.2f} {text}")
Har natija: bounding box + matn + confidence. Bbox — matn rasmning qayerida ekani: forma maydonlarini ajratish, hujjat strukturasini tiklash uchun asqotadi.
0.98 ДОГОВОР № 45 0.87 г. Ташкент 0.91 15 января 2024 г.
Kuchli tomoni: telefon suratlari, murakkab fon, egri matn. Zaif tomoni: CPU da sekin (~10 s/sahifa), o'zbek tili rasman yo'q (rus va ingliz bor).
PaddleOCR — jadval va struktura ustasi
Baidu ning PP-OCR seriyasi. Eng qimmatli xususiyati — PP-Structure: jadvalni jadval sifatida tanib, strukturasini qaytaradi:
from paddleocr import PaddleOCR # angle_cls: teskari/yon o'girilgan matnni avtomatik to'g'rilaydi ocr = PaddleOCR(use_angle_cls=True, lang="ru") result = ocr.ocr("scanned_page.png") for line in result[0]: bbox, (text, conf) = line print(f"{conf:.2f} {text}")
Jadvalli hujjat uchun PP-Structure alohida modul: jadvalni topadi, kataklarga bo'ladi, HTML/Excel qilib qaytaradi. Klassik OCR jadvalni satrma-satr "oqizib" yuborishini eslasak — bu jiddiy ustunlik.
Uchlik taqqoslash
| Tesseract | EasyOCR | PaddleOCR | |
|---|---|---|---|
| Texnologiya | LSTM + CTC | CRAFT + CRNN | DB + CRNN (PP-OCR) |
| O'zbek lotin | ✅ uzb |
❌ | ❌ |
| O'zbek kirill | ✅ uzb_cyrl |
❌ | ❌ |
| Rus | ✅ | ✅ | ✅ |
| CPU tezligi | ✅ ~1 s | ❌ ~10 s | ⚠️ ~5 s |
| GPU kerakmi | Yo'q | Tavsiya | Tavsiya |
| Toza skan | ✅✅ | ✅ | ✅ |
| Telefon surati | ⚠️ | ✅✅ | ✅✅ |
| Jadval strukturasi | ❌ | ❌ | ✅ PP-Structure |
| Bbox koordinatalar | ✅ | ✅ | ✅ |
O'zbek tili muammosi
Muhim va achchiq fakt: EasyOCR ham, PaddleOCR ham o'zbek tilini rasman qo'llab-quvvatlamaydi.
Amaliy oqibatlar:
- O'zbek lotin matni:
enmodeli harflarni o'qiydi, lekin o' g' sh ch birikmalari va diakritikalarda xato ko'p - O'zbek kirill:
rumodeli o'qiydi, lekin ў қ ғ ҳ harflarini rus harflariga "aylantirib" yuboradi
Shuning uchun O'zbekiston hujjatlari uchun amaliy formula:
O'zbek matn (lotin yoki kirill) -> Tesseract yoki VLM Rus matn, toza skan -> Tesseract (tez) Rus matn, telefon surati -> EasyOCR / PaddleOCR Jadvalli hujjat -> PaddleOCR (PP-Structure) yoki VLM
Xulosa
| Tushuncha | Asosiy fikr |
|---|---|
| EasyOCR | Eng oson API, telefon suratlari va murakkab fon uchun; GPU siz sekin |
| PaddleOCR | PP-Structure — jadvalni struktura bilan oladi; sanoat darajasi |
| O'zbek tili | Ikkalasida ham rasman yo'q — uzb uchun Tesseract yoki VLM |
| Tanlov | Toza skan → Tesseract; surat → EasyOCR/Paddle; jadval → Paddle yoki VLM |
Bu bobni bepul o'qidingiz.
Kitob o'rgatadi, lekin sizning kodingiz nega ishlamaganini ayta olmaydi. Kursda uy vazifangiz tekshiriladi.