Asosiy qismga o'tish

Kirish va tayyorgarlik

0-bob 6 kod bloki 553 so'z

Bu kitob kompyuter ko'rish haqida. Lekin barcha mavzular emas — faqat ish topishga yordam beradiganlari.

Nima uchun bu tanlov

Kompyuter ko'rish juda keng: diffusion modellar, 3D rekonstruksiya, video generatsiya. Bularning hammasi qiziq, lekin ikkita muammo bor:

  1. Kuchli GPU talab qiladi. Diffusion modelni o'qitish uchun 16 GB+ VRAM kerak. Ko'p talabada umuman videokarta yo'q.
  2. Ish bozorida kam so'raladi. O'zbekistonda NeRF bo'yicha vakansiya deyarli yo'q. Hujjat tanish bo'yicha esa — bor.

Shuning uchun bu kitob hujjat AI yo'nalishiga qaratilgan: rasmdan matn ajratish, hujjatni tushunish, ma'lumotni tuzilmali holga keltirish.

Bularning hammasi oddiy noutbukda ishlaydi.

Kitob tuzilishi

Blok Boblar Nima o'rganasiz
Klassik CV 1–3 OpenCV: rasm, filtr, kontur
Chuqur o'rganish 4–7 CNN, klassifikatsiya, transfer learning
Amaliy vazifalar 8–10 OCR, obyekt aniqlash, hujjat AI

Klassik CV nega birinchi

Ko'pchilik to'g'ridan-to'g'ri neyron tarmoqdan boshlaydi. Bu xato.

Haqiqiy loyihalarda ishning yarmi — bu tayyorlash:

python10 qator
Qiyshiq skanerlangan hujjat
    |  OpenCV: burchakni to'g'rilash
    v
To'g'rilangan rasm
    |  OpenCV: shovqinni tozalash, kontrast
    v
Toza rasm
    |  OCR modeli
    v
Matn

Agar rasm qiyshiq va shovqinli bo'lsa, eng yaxshi OCR modeli ham xato qiladi. OpenCV bilan uni tozalasangiz — oddiy model ham yaxshi ishlaydi.

Qoida: model emas, MA'LUMOT sifati hal qiladi.

O'rnatish

bash6 qator
python -m venv venv
source venv/bin/activate      # Windows: venv\Scripts\activate

pip install opencv-python numpy matplotlib
pip install torch torchvision --index-url https://download.pytorch.org/whl/cpu
pip install pillow

--index-url .../cpu — bu CPU versiyasi. GPU bo'lmasa shuni oling: hajmi kichik (~200 MB), GPU versiyasi esa 2.5 GB.

GPU bo'lsa, oddiy pip install torch torchvision yozing.

Tekshirish

python7 qator
import cv2
import numpy as np
import torch

print("OpenCV :", cv2.__version__)
print("PyTorch:", torch.__version__)
print("GPU    :", torch.cuda.is_available())

GPU: False chiqsa — bu normal. Kitobdagi hamma narsa CPU da ishlaydi. Faqat sekinroq.

Sinov rasmi tayyorlash

Kitob davomida rasm kerak bo'ladi. Internetdan yuklab olish shart emas — o'zimiz yasaymiz:

python15 qator
import cv2
import numpy as np

# Oq fonda qora matn — hujjatga o'xshash
rasm = np.ones((300, 600, 3), dtype=np.uint8) * 255

cv2.putText(rasm, "HISOB-FAKTURA", (40, 60),
            cv2.FONT_HERSHEY_SIMPLEX, 1.2, (0, 0, 0), 2)
cv2.putText(rasm, "Summa: 250 000 som", (40, 130),
            cv2.FONT_HERSHEY_SIMPLEX, 0.8, (0, 0, 0), 2)
cv2.putText(rasm, "Sana: 2026-01-15", (40, 190),
            cv2.FONT_HERSHEY_SIMPLEX, 0.8, (0, 0, 0), 2)

cv2.imwrite("hujjat.png", rasm)
print("hujjat.png yaratildi")

Bu fayl keyingi boblarda ishlatiladi.

Rasmni ko'rsatish — ikki yo'l

python4 qator
# 1-yo'l: alohida oyna (oddiy Python skript uchun)
cv2.imshow("Rasm", rasm)
cv2.waitKey(0)
cv2.destroyAllWindows()
python6 qator
# 2-yo'l: Jupyter/Colab uchun — matplotlib
import matplotlib.pyplot as plt

plt.imshow(cv2.cvtColor(rasm, cv2.COLOR_BGR2RGB))
plt.axis("off")
plt.show()

cvtColor(..., BGR2RGB) nega kerak? Buni 1-bobda tushuntiramiz — va bu eng ko'p uchraydigan OpenCV xatosi.


Bu bobni bepul o'qidingiz.

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

Telegramda yozish Narxlar