Feature Description: kompyuter ko’radigan belgilar tili

2 minute read

Tasavvur qiling, Computer Vision tizimi rasmga qaraydi, lekin “bu nima?” degan savolga javob berishi uchun unga ishonchli ishoralar kerak. Ana shu ishoralar: feature (xususiyatlar, atributlar). Model avval feature’larni o‘rganadi, keyin yangi rasmlarda ham shu belgilar orqali tanib oladi.

1) Feature’larni data structure’larda qanday saqlaymiz?

Feature’lar turlicha bo‘lishi mumkin: son, kategoriya, rasm, matn va hokazo. Ularni to‘g‘ri ko‘rinishda saqlash keyingi ishlov (processing) uchun juda muhim.

Numerical features (sonli feature’lar):

  • Array/List: eng sodda ko‘rinish. Har bir element alohida feature.
  • Tensor: ko‘p o‘lchovli massiv. Katta hajmdagi ma’lumotlar bilan ML framework’larda eng ko‘p ishlatiladi.

Categorical features (kategoriya feature’lar):

  • Dictionary/List: kategoriyani label qilib saqlash (yoki to‘g‘ridan-to‘g‘ri qiymat sifatida).
  • One-hot encoding: kategoriya uchun binary vektor, har bir bit alohida kategoriyani bildiradi.

Image features (rasm feature’lar):

  • Pixel values: rasmni matritsa yoki multi-dimensional array sifatida saqlash.
  • CNN features: pre-trained Convolutional Neural Network (CNN) orqali “tayyor” feature’larni ajratib olish.

2) Yaxshi descriptor nimasi bilan “yaxshi”?

Descriptor: rasm ichidagi obyekt yoki sahnaning muhim axborotini siqilgan, ammo mazmunli ko‘rinishda ifodalovchi feature to‘plami.

Yaxshi descriptor quyidagilarga ega bo‘ladi:

  • Transformatsiyalarga invariant: rotation, translation, scaling, yoritish (illumination) o‘zgarsa ham “xulqini” yo‘qotmaydi.
  • Distinctiveness: obyektni boshqasidan ajratib bera oladi.
  • Dimensionality: juda katta bo‘lmasdan, yetarli axborotni saqlaydi.
  • Locality: lokal nuqtalar yoki kichik regionlarni yaxshi tasvirlaydi.
  • Repeatability: shovqin yoki kichik farqlar bo‘lsa ham bir xil obyekt uchun barqaror chiqadi.
  • Matching algoritmlariga mos: masofa metric’lari yoki ML asosidagi matching bilan yaxshi ishlaydi.
  • Computational efficiency: tez hisoblanadi, real-time uchun muhim.
  • Adaptability: vaqt o‘tishi bilan data’ga moslasha olishi foydali.
  • Noise robustness: shovqinda ham buzilib ketmaydi.

3) Feature descriptor’lar: SIFT va SURF

Bu yerda ikkita klassik “detektiv” bor: biri aniqlikni yaxshi ko‘radi (SIFT), biri tezlikni (SURF). Ikkalasi ham rasm ichidan keypoint topadi va ularni taqqoslash uchun descriptor yaratadi.

SIFT (Scale-Invariant Feature Transform)

SIFT rasmda turli scale’larda barqaror keypoint’larni topib, har biri uchun descriptor beradi.

Ishlash bosqichlari:

  • Scale Space Extrema detection: Difference of Gaussian (DoG) orqali ko‘p scale’da max/min nuqtalarni topadi.
  • Keypoint Localization: sub-pixel aniqlikda joylashuvni aniqlaydi, past kontrast va edge’ga yaqin noto‘g‘ri keypoint’larni chiqarib tashlaydi.
  • Orientation Assignment: lokal gradient’lardan dominant yo‘nalish topadi, shu bilan rotation’ga invariant bo‘ladi.
  • Descriptor Generation: keypoint atrofidagi gradient axborotidan descriptor hosil qiladi.
  • Descriptor Matching: ikki rasm orasida mos keypoint’larni topish uchun descriptor’lar taqqoslanadi.

Qo‘llanishlar: object recognition, image stitching, 3D reconstruction.

SIFT linklar:

  • https://docs.opencv.org/4.x/da/df5/tutorial_py_sift_intro.html
  • https://www.educative.io/answers/what-is-sift
  • https://www.cse.iitb.ac.in/~ajitvr/CS763/SIFT.pdf

SURF (Speeded Up Robust Features)

SURF ham lokal feature topadi, lekin tezlik uchun optimizatsiya qilingan. Bu tezlikda uning asosiy “quroli”: integral image va Haar wavelet’lar.

Ishlash bosqichlari:

  • Integral images: to‘rtburchak sohalar yig‘indisini juda tez hisoblashga yordam beradi.
  • Blob detection: Hessian matrix orqali intensity o‘zgarishi kuchli bo‘lgan “blob” regionlarni topadi.
  • Scale selection: turli scale’da Hessian determinant’ini tekshirib barqaror keypoint’larni tanlaydi.
  • Orientation assignment: keypoint atrofida Haar wavelet response’lar bilan dominant yo‘nalishni belgilaydi.
  • Descriptor matching: hosil bo‘lgan feature vector’lar orqali keypoint’larni moslaydi.

Kuchli tomonlari: scale, rotation, illumination o‘zgarishlariga robust bo‘lishi va real-time’ga yaqin ishlashga mosligi.

SURF linklar:

  • https://docs.opencv.org/3.4/df/dd2/tutorial_py_surf_intro.html
  • https://www.ijtra.com/view/feature-extraction-using-surf-algorithm-for-object-recognition.pdf

Yakuniy takeaway: Feature va descriptor: modelning “ko‘rish lug‘ati”. Qanchalik lug‘at aniq va barqaror bo‘lsa, tanib olish va matching shunchalik ishonchli bo‘ladi. SIFT ko‘proq robust va aniqlik tarafdori, SURF esa tezlik va samaradorlikka urg‘u beradi.