Asosiy qismga o'tish

EasyOCR va PaddleOCR — Deep Learning Avlodi

5-bob 4 kod bloki 497 so'z

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:

python10 qator
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.

matn3 qator
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:

python9 qator
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: en modeli harflarni o'qiydi, lekin o' g' sh ch birikmalari va diakritikalarda xato ko'p
  • O'zbek kirill: ru modeli o'qiydi, lekin ў қ ғ ҳ harflarini rus harflariga "aylantirib" yuboradi

Shuning uchun O'zbekiston hujjatlari uchun amaliy formula:

python4 qator
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.

Telegramda yozish Narxlar