bag-of-words model in computer vision
Megjelenés
Főnév
bag-of-words model in computer vision (tsz. bag-of-words model in computer visions)
- (informatika, mesterséges intelligencia) A Bag-of-Words (BoW) model nemcsak természetes nyelvfeldolgozásban (NLP), hanem számítógépes látásban (Computer Vision) is alkalmazható — például képek osztályozására, képkeresésre vagy tárgyfelismerésre. A koncepció ugyanaz, de itt a “szavak” nem szövegszavak, hanem vizuális jellemzők, azaz “visual words”.
📸 BoW model számítógépes látásban – Alapötlet
- Képet nem szavak, hanem lokális jellemzők (pl. SIFT, ORB, SURF) reprezentálnak
- Ezeket a jellemzőket egy kódkönyv (dictionary) alapján kvantáljuk: minden jellemző a legközelebbi „vizuális szóra” van leképezve
- Egy kép így egy hisztogramként jelenik meg, amely azt mutatja, hány alkalommal fordult elő egy-egy „vizuális szó” a képen
Ez az analógia:
NLP → Computer Vision ----------------------------------------- Szövegszó → Lokális vizuális jellemző Dokumentum → Kép Szókincs → Vizuális kódkönyv (cluster centroidok) BoW vektor → Képjellemző-hisztogram
🧭 Lépések lépésről lépésre
1. 🔍 Lokális jellemzők kinyerése
- Minden képről jellemzőpontokat számítunk, pl.:
- SIFT (Scale-Invariant Feature Transform)
- SURF, ORB, AKAZE stb.
- Ezek vektorokkal reprezentált kulcspontok.
2. 📦 Kódkönyv építése
- Összegyűjtjük az összes jellemzővektort az adatbázis képeiből
- Egy klaszterezési algoritmust (pl. K-means) használunk, hogy:
- A teljes jellemzőhalmazt K klaszterre bontsuk
- Ezek lesznek a vizuális szavak:
3. 🔢 Kép kvantálása
- Minden új képen a jellemzőpontokat a kódkönyv elemeihez rendeljük (pl. legközelebbi szomszéd)
- Létrehozunk egy K-dimenziós hisztogramot, amely számlálja, hányszor került egy jellemző az adott klaszterhez
4. 📊 Hisztogram mint jellemzővektor
- A képet így már egy fix méretű vektor reprezentálja: a vizuális BoW vektor
- Ezt a gépi tanuló algoritmusok (pl. SVM, k-NN, Random Forest) használhatják képosztályozáshoz
🎯 Példa: Képklasszifikáció folyamata
- Képek betöltése, jellemzőpontok kiszámítása (pl. SIFT)
- Összes jellemző összegyűjtése és K-means klaszterezés → kódkönyv
- Minden kép → BoW hisztogram
- Hisztogramok → gépi tanulás → kategória (pl. „kutya” vagy „macska”)
💻 Python példa (OpenCV + scikit-learn, vázlatosan)
import cv2
import numpy as np
from sklearn.cluster import KMeans
from sklearn.svm import SVC
# 1. SIFT jellemzők kinyerése
sift = cv2.SIFT_create()
descriptors_list = []
for img in training_images:
kp, desc = sift.detectAndCompute(img, None)
descriptors_list.extend(desc)
# 2. Kódkönyv (K-means klaszterezés)
kmeans = KMeans(n_clusters=100)
kmeans.fit(descriptors_list)
vocab = kmeans.cluster_centers_
# 3. Képek kvantálása hisztogrammá
def bow_histogram(img, kmeans, sift):
_, desc = sift.detectAndCompute(img, None)
words = kmeans.predict(desc)
hist, _ = np.histogram(words, bins=np.arange(kmeans.n_clusters + 1))
return hist
X_train = [bow_histogram(img, kmeans, sift) for img in training_images]
# 4. Gépi tanulás
clf = SVC()
clf.fit(X_train, y_train)
✅ Előnyök
- 🌐 Általános és egyszerű eljárás
- 📏 Rögzített méretű reprezentáció tetszőleges hosszúságú jellemzőből
- 📦 Kompatibilis klasszikus gépi tanulási algoritmusokkal
❌ Hátrányok
- ❌ Nem tartalmaz térbeli információt: nem tudja, hol van a szó a képen
- ❌ Nem fogja fel a szemantikai hasonlóságokat
- ❌ Az SIFT/SURF számítási igénye nagy lehet
🧩 Kiterjesztések
| Modell | Leírás |
|---|---|
| Spatial Pyramid Matching | BoW + helyalapú elrendezés |
| VLAD (Vector of Locally Aggregated Descriptors) | Lokális jellemzők aggregálása, kompaktabb |
| Fisher Vector | Statisztikai modellek a jellemzőpontokra |
| CNN-alapú BoW | Helyettesíti a jellemzőpontokat neurális jellemzőkkel (deep features) |
🧩 TL;DR
A bag-of-words modell számítógépes látásban a képeket egy vizuális szókincs segítségével reprezentálja: minden kép egy hisztogram, amely azt mutatja, milyen „vizuális szavak” és milyen gyakorisággal fordulnak elő benne. Ez az egyszerű, hatékony megközelítés lehetővé teszi képek klasszikus gépi tanulással történő osztályozását.
- bag-of-words model in computer vision - Szótár.net (en-hu)
- bag-of-words model in computer vision - Sztaki (en-hu)
- bag-of-words model in computer vision - Merriam–Webster
- bag-of-words model in computer vision - Cambridge
- bag-of-words model in computer vision - WordNet
- bag-of-words model in computer vision - Яндекс (en-ru)
- bag-of-words model in computer vision - Google (en-hu)
- bag-of-words model in computer vision - Wikidata
- bag-of-words model in computer vision - Wikipédia (angol)