Kirish va tayyorgarlik
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:
- Kuchli GPU talab qiladi. Diffusion modelni o'qitish uchun 16 GB+ VRAM kerak. Ko'p talabada umuman videokarta yo'q.
- 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:
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
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
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:
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
# 1-yo'l: alohida oyna (oddiy Python skript uchun) cv2.imshow("Rasm", rasm) cv2.waitKey(0) cv2.destroyAllWindows()
# 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.