Pildituvastuse tööpõhimõte
Õpieesmärgid
Selle peatüki lõpuks oskate:
- Selgitada konvolutsiooniliste närvivõrkude põhikomponente ja nende funktsioone pildituvastuses.
- Märgata, kuidas pildituvastus toimib praktilistes rakendustes, nagu näotuvastus või autonoomsed sõidukid, ning tuua näiteid selle kasutamisest erinevates valdkondades.
- Kriitiliselt hinnata pildituvastuse lahenduste eetilisi aspekte.
Tehisintellekti (TI) pildituvastus (image recognition) on tehnoloogia, mis võimaldab arvutitel pilte analüüsida ja neist aru saada sarnaselt inimese nägemisele. See on osa masinõppest, täpsemalt sügavõppest (deep learning), ning põhineb peamiselt konvolutsiooniliste närvivõrkude (Convolutional Neural Networks, CNN) kasutamisel. Need on inspireeritud inimese nägemissüsteemist ja suudavad automaatselt õppida tuvastama piltidelt mustreid ja objekte.
Tänapäevased pildituvastussüsteemid suudavad lahendada kompleksseid ülesandeid alates objektide klassifitseerimisest ja lokaliseerimisest kuni semantilise segmenteerimise ja 3D-rekonstruktsioonini, saavutades paljudel juhtudel inimese võimekusega võrreldava või seda ületava täpsuse.
Pildituvastuse rakendused ja võimalused
-
Objektide klassifitseerimine on üks levinumaid pildituvastuse ülesandeid, mille käigus määratakse pildil olevale objektile vastav kategooria või klass. Näiteks suudab klassifitseerija tuvastada, kas pildil on kass, koer, auto või mõni muu objekt.
-
Objektide lokaliseerimine on ülesanne, mille eesmärk on lisaks objekti klassile määrata ka selle asukoht pildil, näiteks piiritleva ristküliku koordinaatide kaudu. See võimaldab pildituvastussüsteemil mitte ainult öelda, mis objektid pildil on, vaid ka näidata, kus need asuvad.
-
Semantiline segmenteerimine jagab pildi pikslid erinevatesse semantilistesse klassidesse. Näiteks võib süsteem määrata igale pikslile märgendi "tee", "hoone", "taevas" vms. See annab pildist detailse arusaama, mis on kasulik näiteks isejuhtivate autode või meditsiinilise diagnostika rakenduste jaoks.
-
3D-rekonstruktsioon võimaldab luua objektidest või stseenidest kolmemõõtmelisi mudeleid, kasutades selleks mitmest vaatenurgast tehtud pilte või sügavuskaameraid. Neid mudeleid saab kasutada näiteks virtuaalreaalsuse või robootika rakendustes.
-
Objektide jälgimine (object tracking) hõlmab objekti asukoha määramist ja jälgimist läbi järjestikuste piltide või video kaadrite. See ülesanne on eriti oluline videovalve, liikluse jälgimise ja interaktiivsete süsteemide kontekstis.
-
Tegevuste tuvastamine (activity recognition) analüüsib inimeste või objektide tegevusi ja käitumist video või piltide seerias. See on kasutusel näiteks turvalisuses, kus on vaja tuvastada kahtlaseid tegevusi, või spordianalüüsis, kus analüüsitakse sportlaste liikumist ja tehnikat.
-
Näotuvastus (face detection) ja näo analüüs hõlmab näo tuvastamist, tuvastatud näo isiku identifitseerimist (face recognition) ja näoilmete analüüsi. Need tehnoloogiad on laialdaselt kasutusel turvalisuses, autentimises ja isegi emotsioonide analüüsis.
-
Pildikirjelduse genereerimine (image captioning) on protsess, kus süsteem genereerib pildi põhjal kirjeldava teksti. See ülesanne nõuab nii pildi sisu mõistmist kui ka loomuliku keele genereerimise võimeid.
-
Anomaaliate tuvastamine (anomaly detection) hõlmab ebatavaliste või ootamatute mustrite tuvastamist piltides või andmetes. See on eriti kasulik näiteks tootmisprotsesside jälgimisel, kus on vaja tuvastada defekte või kõrvalekaldeid.
-
Kujutise restaureerimine (image restoration) ja kujutise parandamine (image enhancement) on ülesanded, mis hõlmavad piltide kvaliteedi parandamist, näiteks müra eemaldamist, kontrasti suurendamist või kadunud detailide taastamist.
Protsessi etapid ja nende omavahelised seosed
Pildituvastuse protsess algab lihtsatest piksliväärtustest ja kulmineerub keerukate mustrite ning objektide tuvastamisega, kasutades selleks sügavõppe algoritme.
1. Sisendi ettevalmistamine ja eeltöötlus
Pildituvastuse protsess algab digitaalse pildi vastuvõtmisega, mis koosneb pikslitest – väikestest värviühikutest, mida esindatakse numbriliste väärtustena. Värvilise pildi puhul sisaldab iga piksel kolme väärtust RGB (punane, roheline, sinine), mis jäävad vahemikku 0-255. Näiteks täiesti punane piksel esitatakse väärtustega [255, 0, 0].

Enne tegeliku analüüsi algust läbib pilt eeltöötluse etapi, kus toimub:
- Suuruse normaliseerimine: kõik pildid viiakse ühtsele suurusele (näiteks 224x224 pikslit)
- Väärtuste normaliseerimine: piksliväärtused teisendatakse vahemikku 0-1 või -1 kuni 1
- Andmete rikastamine ja müra eemaldamine: pilte pööratakse, muudetakse suurust, heledust või kontrastsust, et parendada mudeli üldistusvõimet
2. Tunnuste ekstraheerimine konvolutsiooniliste kihtide abil
Eeltöödeldud pilt sisestatakse konvolutsioonilisse närvivõrku (CNN), kus algab hierarhiline tunnuste ekstraheerimise protsess. See toimub mitmes järjestikuses etapis:
Esimestes kihtides rakendatakse pildile väikeseid filtreid (tavaliselt 3x3 või 5x5 pikslit), mis liiguvad süstemaatiliselt üle kogu pildi.
Näiteks servatuvastus:
Iga filter on spetsialiseerunud kindla mustri tuvastamisele – näiteks vertikaalsed jooned, horisontaalsed servad või diagonaalsed mustrid. Matemaatiliselt toimub see konvolutsioonioperatsioonina, kus filtri väärtused korrutatakse vastava pildiala piksliväärtustega ja tulemused summeeritakse.
TÄPSEMALT: Mis on konvolutsioonikiht?
Konvolutsioonikiht on närvivõrgu kiht, mis teostab konvolutsioonioperatsiooni sisendandmetel. See kiht koosneb mitmest konvolutsioonifiltrist (ehk kernelist), mis libisevad üle sisendpildi või -andmete, teostades konvolutsioonioperatsiooni.
Iga konvolutsioonifilter libiseb üle sisendandmete, teostades konvolutsioonioperatsiooni. See tähendab, et filter korrutab oma väärtused vastavate sisendandmete väärtustega ja summeerib tulemused. Konvolutsioonioperatsiooni tulemus on uus massiiv, mis esindab sisendandmete omadusi, mida on tuvastanud konvolutsioonifiltrid.
Pärast iga konvolutsioonikihti rakendatakse aktiveerimisfunktsiooni (tavaliselt ReLU - Rectified Linear Unit), mis eemaldab negatiivsed väärtused ja võimaldab võrgul teha keerukamaid arvutusi kui lihtsad sirgjoonelised seosed.
Koondamiskihtides vähendatakse tunnuskaartide ruumilist mõõdet ehk mudeli parameetrite arvu, säilitades samal ajal olulisimad tunnused. Kujutage ette, et teete suurest fotost väiksema, aga jätate alles kõik tähtsad detailid.
Näiteks maksimaalse koondamise (max-pooling) operatsiooni puhul jagatakse tunnuskaart väiksemateks piirkondadeks (näiteks 2x2) ja igast piirkonnast säilitatakse ainult maksimaalne väärtus. See muudab mudeli vastupidavamaks väikeste nihete ja moonutuste suhtes ja kiirendab arvutusi.
3. Hierarhiline tunnuste õppimine
CNN-i sügavamad kihid ehitavad üles järjest keerukamaid esitusi:
- Madalamad kihid (1-3) õpivad tuvastama lihtsaid geomeetrilisi kujundeid ja tekstuure
- Keskmised kihid (4-6) kombineerivad lihtsaid tunnuseid keerukamateks struktuurideks (näiteks silmad, nina)
- Kõrgemad kihid (7+) esindavad terviklikke objekte ja kontseptsioone
See hierarhiline lähenemine peegeldab inimese visuaalse korteksi tööpõhimõtteid, kus informatsioon töödeldakse järjest keerukamates etappides.
4. Klassifitseerimine ja otsuse tegemine
Pärast mitmeid konvolutsiooni- ja koondamiskihte jõuab info täielikult ühendatud kihtidesse, kus kõik tuvastatud omadused koondatakse ja tehakse lõplik otsus. Viimases konvolutsioonikihis olevad tunnuskaardid "lamestatakse" üheks pikaks vektoriks, mis sisaldab kogu ekstraheeritud informatsiooni.
Täisühendatud kihid kombineerivad kõiki tunnuseid, et teha lõplik otsus. Viimane kiht sisaldab täpselt nii palju neuroneid, kui on võimalikke klasse. Näiteks 1000 objekti tuvastamiseks on vaja 1000 väljundneuronit.
Softmax-funktsioon teisendab viimase kihi väljundid tõenäosusteks, mis summeeruvad üheks. See annab meile iga klassi tõenäosuse – näiteks: kass (85%), koer (10%), tiiger (5%).
5. Õppimisprotsess ja optimeerimine
Kogu see protsess õpitakse läbi tagasilevi (backpropagation) algoritmi:
- Edasisuunaline läbimus: pilt läbib kõik kihid ja tehakse ennustus.
- Vea arvutamine: võrreldakse ennustust tegeliku sildiga, kasutades kaofunktsiooni (näiteks cross-entropy).
- Tagasisuunaline läbimus: viga levitatakse tagasi läbi võrgu, arvutades iga kaalu panuse vea tekkimisse.
- Kaalude uuendamine: kasutades gradiendi laskumise algoritmi, uuendatakse kõiki võrgu kaalusid vea vähendamise suunas.
Treenimise käigus näidatakse mudelile tuhandeid või miljoneid pilte koos vastavate siltidega (nt "kass" või "koer"), kasutades andmekogumeid nagu ImageNet või COCO. Treenimise ajal mõõdab kaofunktsioon mudeli ennustuste ja tegelike vastuste vahelist viga ning tagasisidealgoritmi abil kohandatakse mudeli parameetreid, et vigu vähendada. Lisaks kasutatakse tehnikaid nagu andmete rikastamine (piltide pööramine, kärpimine) või dropout, et vältida üleõppimist, kus mudel õpib treeningandmeid liigselt pähe.
Kui mudel on treenitud, testitakse seda uutel, varem nägemata piltidel, et hinnata selle täpsust ja töökindlust. Hästi treenitud mudelit saab seejärel kasutada reaalajas rakendustes – olgu selleks nutirakendus, mis tuvastab kasutaja üleslaetud pildilt kassi, või autonoomne auto, mis tunneb ära liiklusmärgid ja jalakäijad.
Pildituvastusprotsess ei piirdu vaid objektide klassifitseerimisega; täiustatud tehnikad, nagu objektide tuvastamine (nt YOLO) või semantiline segmenteerimine, võimaldavad määrata objektide täpse asukoha või isegi klassifitseerida iga piksli pildil, mis on eriti kasulik meditsiinis või tööstuses.
6. Praktiline rakendamine
Treenitud mudeli kasutamine reaalses rakenduses on märkimisväärselt lihtsam kui treenimine:
- Uus pilt läbib sama eeltöötluse
- Toimub ainult edasisuunaline läbimus läbi võrgu (pole vaja tagasilevitamist)
- Tulemus saadakse millisekundite jooksul
Tänapäevased optimeerimistehnikad võimaldavad mudeleid käitada isegi mobiilseadmetes, kasutades selleks spetsiaalseid riistvarakiirendeid ja mudeli kokkusurumise tehnikaid.
Kasutusvaldkonnad
Valdkond | Rakendus | Näide |
---|---|---|
Turvalisus ja järelevalve | Näotuvastus | Nutitelefonide avamine (nt Apple Face ID) või kahtlaste isikute tuvastamine turvakaameratest. |
Numbrimärkide tuvastamine | Automaatne parkimissüsteem või kiiruskaamerate kasutamine numbrimärkide lugemiseks. | |
Meditsiin | Haiguste diagnoosimine | Röntgenipiltidelt või MRI-st vähkkasvajate või anomaaliate tuvastamine (nt IBM Watson Health). |
Kirurgilised abivahendid | Robotkirurgia süsteemid, mis tuvastavad operatsiooni käigus elundite piirjooni (nt Da Vinci). | |
Autotööstus | Autonoomsed sõidukid | Takistuste (jalakäijad, autod) ja liiklusmärkide tuvastamine (nt Tesla Autopilot). |
Juhi jälgimine | Juhi väsimuse või tähelepanu hajumise tuvastamine autosisese kaamera abil (nt BMW süsteemid). | |
Jaemüük ja e-poed | Toote tuvastamine | Amazon Go poed, kus kaamerad tuvastavad võetud tooted ja arveldavad automaatselt. |
Visuaalne otsing | Pinterest Lens või Google Lens, mis võimaldavad otsida tooteid piltide põhjal. | |
Sotsiaalmeedia | Fotode märgistamine | Facebooki automaatne inimeste märgistamine fotodel näotuvastuse abil. |
Sisufiltreerimine | Sobimatu sisu (nt vägivald, alastus) tuvastamine ja eemaldamine Instagramis või YouTube'is. | |
Põllumajandus | Taimehaiguste tuvastamine | Droonide või kaamerate kasutamine haigete taimede tuvastamiseks ja täpseks pritsimiseks. |
Saagikoristus ja sorteerimine | Robotid, mis tuvastavad küpsed viljad ja sorteerivad neid (nt maasikakorjajad). | |
Haridus | Interaktiivsed õppematerjalid | Rakendused, mis tuvastavad õpiku piltidelt objekte ja pakuvad lisainfot (nt Google Lens). |
Õpilaste jälgimine | Klassiruumi kaamerad, mis tuvastavad õpilaste kohaloleku või tähelepanu (nt Hiina koolid). | |
Meelelahutus | Mängude arendus | Liitreaalsuse (AR) mängud, mis tuvastavad keskkonna (nt Pokémon GO). |
Filmide ja videote analüüs | Stseenide või näitlejate tuvastamine videotes automaatseks märgistamiseks (nt Netflix). | |
Tööstus ja tootmine | Kvaliteedikontroll | Tootmisliinil defektsete toodete tuvastamine kaamerate abil (nt autotööstuses). |
Robootika | Tööstusrobotid, mis tuvastavad ja käsitlevad objekte (nt Amazoni laorobotid). | |
Keskkond ja loodus | Loomade jälgimine | Rajakaamerad, mis tuvastavad metsloomi ja aitavad liike jälgida (nt WWF-i projektid). |
Keskkonna jälgimine | Satelliidipiltidelt metsatulekahjude või ebaseadusliku metsaraie tuvastamine. |
Kokkuvõttes on pildituvastuse tehniline protsess keeruline, kuid loogiline teekond, mis algab toorpildi töötlemisest ja lõpeb täpse tõlgendamisega. See on võimas näide sellest, kuidas masinõpe ja närvivõrgud suudavad jäljendada inimlikku nägemist, avades uksi innovatsioonile paljudes valdkondades.