Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Lineaarialgebra Kuvankäsittelyssä | Osio
Soveltava tietokonenäkö

bookLineaarialgebra Kuvankäsittelyssä

Pyyhkäise näyttääksesi valikon

Lineaarialgebra on keskeisessä asemassa kuvankäsittelyssä. Koska digitaaliset kuvat esitetään matriiseina, joissa on pikseliarvoja, matemaattisia operaatioita kuten muunnoksia, skaalausta ja kiertoja voidaan suorittaa matriisien avulla. Tarkastellaan tietokonenäössä käytettyjä olennaisia lineaarialgebran käsitteitä.

Kuvan esittäminen matriiseina

Digitaalinen kuva on pohjimmiltaan pikseliruudukko, jossa jokaisella pikselillä on intensiteettiarvo. Harmaasävykuvissa tämä on 2D-matriisi, jossa jokainen alkio vastaa kirkkaustasoa (0 tarkoittaa mustaa, 255 valkoista). Esimerkiksi yksinkertainen 6×6 harmaasävykuva voisi näyttää tältä:

harmaasävymatriisi

Värikuvat puolestaan ovat 3D-matriiseja (myös tensorit), joissa on erilliset kerrokset punaiselle, vihreälle ja siniselle (RGB).

RGB_grid
Note
Huomio

Tensori on yleistermi moniulotteiselle lukutaulukolle. Vektorit (1D) ja matriisit (2D) ovat tensoreiden erikoistapauksia. Yleisesti ottaen tensoreilla voi olla mikä tahansa määrä ulottuvuuksia, ja ne toimivat perustana datan esittämiselle monissa tietokonenäön ja koneoppimisen sovelluksissa.

Harmaasävykuvien muoto on (60, 60), mikä tarkoittaa, että niissä on 60 riviä ja 60 saraketta, ja jokainen pikseli edustaa yhtä intensiteettiarvoa – käytössä on vain yksi värikanava. Sen sijaan RGB-kuvien muoto on (60, 60, 3), mikä osoittaa saman spatiaalisen resoluution (60 riviä ja 60 saraketta), mutta mukana on lisäulottuvuus väreille: jokainen pikseli sisältää kolme arvoa, jotka vastaavat punaisen, vihreän ja sinisen kanavia, ja yhdessä nämä määrittävät kyseisen kohdan täydellisen värin.

Lineaarialgebran muunnokset kuvankäsittelyssä

Useat kuvamanipulaatiot perustuvat matriisioperaatioihin, joten lineaarialgebra on keskeinen osa tietokonenäköä. Käydään läpi yleisimmät käytetyt muunnokset.

Kuvan skaalaus (koon muuttaminen)

Skaalaus suurentaa tai pienentää kuvan kokoa. Tämä toteutetaan kertomalla kuvan matriisi skaalausmatriisilla:

S=[sx00sy]S = \begin{bmatrix} s_x & 0 \\ 0 & s_y \end{bmatrix}

missä sxs_x ja sys_y ovat leveyden ja korkeuden skaalauskertoimet. Esimerkki: Jos halutaan kaksinkertaistaa kuvan koko, käytetään:

S=[2002]S = \begin{bmatrix} 2 & 0 \\ 0 & 2 \end{bmatrix}
koon muuttaminen

Kertomalla tämä matriisi jokaisen pikselin koordinaateilla kuva suurennetaan.

Kuvan kierto

Kuvan kiertämiseen kulmalla θ\theta käytetään kiertomatriisia:

R=[cosθsinθsinθcosθ]R = \begin{bmatrix} \cos{\theta} & -\sin{\theta} \\ \sin{\theta} & \cos{\theta} \end{bmatrix}

Esimerkiksi kuvan kiertäminen 90 astetta myötäpäivään tarkoittaa seuraavaa:

θ=90°R=[0110]\theta = 90\degree \\[6pt] R = \begin{bmatrix} 0&1\\-1&0 \end{bmatrix}
kierrä

Tämän muunnoksen soveltaminen siirtää jokaisen pikselin uuteen sijaintiin, mikä käytännössä kiertää kuvaa.

Leikkaus (Kuvan vinouttaminen)

Leikkaus vääristää kuvaa siirtämällä sen rivejä tai sarakkeita. Leikkausmuunnoksen matriisi on:

Ω=[1ωxωy1]\Omega = \begin{bmatrix} 1 & \omega_x \\ \omega_y & 1 \end{bmatrix}

missä ωx\omega_x ja ωy\omega_y määrittävät, kuinka paljon kuvaa vinotetaan vaakasuunnassa ja pystysuunnassa. Kuvan siirtäminen 30 % vaakasuunnassa ja 20 % pystysuunnassa:

Ω=[10.30.21]\Omega = \begin{bmatrix} 1 & 0.3 \\ 0.2 & 1 \end{bmatrix}
siirto

Miksi lineaarialgebra on tärkeää konenäössä

Lineaarialgebra muodostaa perustan monille kuvankäsittelytehtäville, kuten:

  • Objektien tunnistus (rajauslaatikot perustuvat muunnoksiin);
  • Kasvontunnistus (ominaisuuksien poiminta ominaisvektoreilla ja PCA:lla);
  • Kuvan parantaminen (suodatus hyödyntää matriisikonvoluutioita);
  • Neuroverkot (painot tallennetaan matriiseina).

Ymmärtämällä nämä perusoperaatiot voimme käsitellä kuvia tehokkaasti ja rakentaa kehittyneempiä konenäköratkaisuja.

question mark

Mikä seuraavista vaihtoehdoista voi olla RGB-kuvan muoto?

Select all correct answers

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 3

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 1. Luku 3
some-alt