Asosiy qismga o'tish

OCR Qanday Ishlaydi — Ichki Arxitektura

2-bob 2 kod bloki 551 so'z

Nega ichki tuzilishni bilish kerak?

Mashinani haydash uchun dvigatel qurilishini bilish shart emas. Lekin qaysi mashinani sotib olishni tanlayotganda — bilgan yaxshi. OCR bilan ham shunday: ichki arxitekturani tushunsangiz, "nega Tesseract jadvalni buzib o'qiyapti?", "nega VLM qo'lyozmani yaxshi o'qiydi?" degan savollarga o'zingiz javob topasiz.

To'rt bosqichli pipeline

Zamonaviy OCR tizimlari to'rt bosqichdan o'tadi:

python16 qator
Rasm
  |
  v
[1. PREPROCESSING]        rasmni tozalash va to'g'irlash
  |                       (kulrang, shovqin, qiyshiqlik)
  v
[2. TEXT DETECTION]       matn QAYERDA? — bloklarni topish
  |                       (har bir so'z/qator uchun ramka)
  v
[3. TEXT RECOGNITION]     matn NIMA deydi? — belgilarni o'qish
  |                       (har bir ramka ichini matnga aylantirish)
  v
[4. POST-PROCESSING]      xatolarni tuzatish
  |                       (til modeli, lug'at)
  v
Matn

Har bir bosqichni ochib ko'ramiz.

1-bosqich: Preprocessing

Rasm sifatini oshirish: kulrang qilish, shovqinni olib tashlash, kontrastni kuchaytirish, qiyshiqlikni to'g'rilash. Bu bosqich shunchalik muhimki, unga alohida bob ajratganmiz (3-bob). Hozircha bitta raqam: yaxshi preprocessing aniqlikni 10-30% ga oshirishi mumkin.

2-bosqich: Text Detection — matn qayerda?

Sahifada matn qayerda joylashgan? Bu savol ko'ringanidan qiyin: matn ustunlarda bo'lishi, rasm atrofida oqishi, jadval ichida turishi, qiyshiq yozilgan bo'lishi mumkin.

Ikki avlod yechim:

  • Klassik (Tesseract): sahifani qatlamlarga ajratish (layout analysis) — bo'sh joylar bo'yicha ustun/paragraf/qator chegaralarini topish. Toza hujjatda zo'r, murakkab dizaynda adashadi.
  • Deep learning (CRAFT, DB): neyron tarmoq har bir piksel uchun "bu matnning bir qismimi?" deb baholaydi, keyin qo'shni piksellar so'z ramkalariga birlashtiriladi. EasyOCR va PaddleOCR shu usulda ishlaydi — egri, qiyshiq, sochilgan matnni ham topadi.

3-bosqich: Text Recognition — matn nima deydi?

Ramka ichidagi piksellar ketma-ketligini belgilarga aylantirish. Bu OCR ning "yuragi". Ikki asosiy yondashuv:

CTC (Connectionist Temporal Classification) — Tesseract 4+, PaddleOCR:

python10 qator
Rasm ustunlar ketma-ketligi sifatida o'qiladi (chapdan o'ngga):

[ustun][ustun][ustun][ustun][ustun] ...
   |      |      |      |      |
   v      v      v      v      v
  CNN + LSTM har ustun uchun belgi ehtimolini beradi:
   S      SS     h      a      rr    ...
   |
   v CTC decoding: takrorlarni birlashtirish
  "Shar..."

Tez va aniq, lekin qat'iy chapdan-o'ngga o'qiydi — murakkab layout va qo'lyozmada qiynaladi.

Attention / Transformer (TrOCR, VLM lar) — rasm patch larga bo'linadi, dekoder xuddi LLM matn generatsiya qilgandek belgilarni birma-bir chiqaradi, har qadamda rasmning kerakli joyiga "qaraydi" (attention). RAG qo'llanmasi 15-bobida ko'rgan attention mexanizmining o'zi — faqat matn tokenlariga emas, rasm bo'laklariga qaratilgan.

Bu oila kuchliroq: kontekstni ishlatadi ("Toshk_nt" ni ko'rib "Toshkent" deb o'qiydi), qo'lyozmani yaxshiroq tushunadi. Evaziga sekinroq.

4-bosqich: Post-processing

Xom natijani tuzatish:

  • Lug'at tekshiruvi: "0'zbekist0n" → "O'zbekiston" (nol harfi O ga)
  • Til modeli: "shaxtnoma" → "shartnoma" (kontekst bo'yicha)
  • Format qoidalari: sana, raqam, seriya formatlarini tiklash

VLM larda bu bosqich "ichiga qurilgan" — model o'zi til modeli bo'lgani uchun o'qish paytidayoq tuzatadi. Bu ham kuch (toza natija), ham xavf (haddan ortiq "tuzatib", asl matnni o'zgartirib yuborishi mumkin — 6-bobda gaplashamiz).

Ikki avlod: yonma-yon

Klassik (Tesseract) Deep Learning / VLM
Detection Layout analysis (bo'sh joy) Neyron tarmoq (CRAFT, DB)
Recognition LSTM + CTC Transformer + attention
Toza hujjat ✅ Zo'r ✅ Zo'r
Murakkab layout ⚠️ Adashadi ✅ Yaxshi
Qo'lyozma ❌ Yomon ✅ O'rtacha-yaxshi
Tezlik (CPU) ✅ Tez ⚠️ Sekin
Resurs CPU yetadi GPU tavsiya

Xulosa

Tushuncha Asosiy fikr
4 bosqich Preprocessing → Detection → Recognition → Post-processing
Detection Klassik: bo'sh joy tahlili; zamonaviy: piksel darajasida neyron tarmoq
CTC Ustunma-ustun o'qish — tez, toza matn uchun ideal
Attention LLM kabi generatsiya — kontekstni ishlatadi, qo'lyozmaga chidamli
Amaliy foyda Muammoning qaysi bosqichda ekanini bilsangiz, to'g'ri yechim tanlaysiz

Bu bobni bepul o'qidingiz.

Kitob o'rgatadi, lekin sizning kodingiz nega ishlamaganini ayta olmaydi. Kursda uy vazifangiz tekshiriladi.

Telegramda yozish Narxlar