Arvutinägemine

Arvutinägemine on teadusharu, mis üritab anda arvutile inimese omaga sarnase või kohati paremagi nägemisvõime. 
Arvutinägemine on eelkõige huvitatud pildil oleva info automaatse eraldamisega muust, konkreetse ülesande jaoks kasutust infost ning kättesaadud info analüüsimisest. Arvutinägemise puhul kasutatakse nii staatilisi ühekordseid pilte kui ka videolõike või reaalajas sissetulevat videomaterjali, mille abil üritatakse arvutile anda võime efektiivselt tajuda, analüüsida ning mõista visuaalseid andmeid.
Arvutinägemist võib käsitleda kui inverteeritud versiooni arvutigraafikast. Kui arvutigraafika puhul loob inimene arvuti abil stseeni, teades, mida stseeni soovitakse ning mis omadused erinevatel objektidel on, siis arvutinägemise puhul on ette antud stseen ning tuleb piiratud infokogusest tuletada objektide kirjeldusi ning omadusi.
Tehisnägemine.
Arvutinägemise süsteemid üritavad emuleerida inimese silma ja aju koostööd ning kohati on võimalik arvutil inimese võimetest ka üle olla. Tehislikel süsteemidel on võimalik kasutada palju enam erinevaid andureid kui inimesel. Inimesele nähtav valgus on vaid väike osa kogu elektromagnetilisest spektrist, mida on elektrooniliselt vähemalt teoreetiliselt võimalik mõõta.
Kui inimese puhul on eelkõige infoallikaks meile harjumuspärane värvi- ning tänu kahele silmale ka sügavusinfo, siis masinatel on lisaks kaamerale kasutada näiteks soojus- või kiirgusandureid. Seetõttu on masinatel võimalik mõõta ja kujutada palju suurem kogus infot, mis jääks inimvaatlejale nähtamatuks. Kõige levinum näiteks selles vallas oleks lisaks soojusinfole röntgenipilt.
Arvutinägemine on lai teema, mille hulka kuulub kõik, mida arvutil on võimalik lahendada "vaatamise" teel. Selle alla kuuluvad muuhulgas teemad nagu pildi taastamine, pildikvaliteedi tõstmine, automaatne visuaalne inspektsioon, robotnägemine, arvutil põhinev kolmedimensioonilise stseeni mõistmine.
Probleemid.
Bioloogiline ja tehisnägemine.
Inimestena on visuaalne info meie jaoks kõige suurem infoallikas ning selle töötlemine meie peas paistab toimuvat lihtsasti ning hetkega. Vaadates näiteks kapil asuvat vaasi lilledega ei paku meile mingisugust väljakutset kapi, vaasi ega lillede tuvastamine. Me saame lihtsasti ja intuitiivselt aru, milline osa meie vaateväljast on lilled, milline osa vaas ning milline kapp. Raskust ei paku ka see, kui toas on erineva eredusega valgusteid ning vaas on näiteks läbipaistev. Me saame aru, mis värvi on lill erinevates valgustingimustes, ning võime lihtsasti kokku lugeda lillede arvu vaasis ning ennustada, mis juhtuks lillede või vaasiga näiteks maha kukkudes. Me saame hetkega intuitiivse arusaama objektidest ning nende omadustest ilma selleks eriliselt pingutamata. Sellise ülesande lihtsus meie jaoks paneb meid alahindama sellise süsteemi tegelikku keerukust, mida üritatakse arvutinägemise puhul jäljendada.
Probleemid sensorite ja kogutud infoga.
Arvutisüsteemides taandub igasugune info binaarsele kujule ning sellest ei pääse ka visuaalsete andmete kogumisel. Kaamera kui elektrooniline süsteem on alati piirangutega. Piiranguteks võib olla näiteks eraldusvõime ehk kogus piksleid, mille abil kaamera esitab tehtud pilti. Päris maailmas ei ole teadupärast pikslitelaadset diskreetset süsteemi ning üks piksel kaamera puhul hoiab endas tegelikult keskmist pildisensorile jõudnud valgusest. Kui elektroonilised süsteemid on nii-öelda astmelised (diskreetselt), siis reaalses maailmas toimuvad protsessid on pidevad ehk sujuvad. Tihtipeale ongi arvutinägemise sisuks kadumaläinud informatsiooni taastamine.
Lisaks reaalse valgusinfo muundumisega tuleb arvestada ka sügavusinfo kadumisega. Et pikslid sisaldavad mustvalge pildi puhul ühte värvikanalit väärtustega 0–255 ning värvilise pildi puhul kolme värvikanalit samade väärtustega, siis ei ole võimalik pikslite infost üksinda taastada kolmedimensioonilist stseeni. Küll aga on sügavusinfot võimalik taastada stereokaamera abil, mis sisaldab kahte täpselt kalibreeritud kaamerat ning millest sügavusinfo eraldamine toimub analoogselt bioloogilise nägemissüsteemiga.
Samuti on jätkuvalt mureks ka sensoritel tekkiv müra, mis annab mingisugusele osale kogutud infost teistsuguse väärtuse kui see reaalsuses oli. Müra võib väljenduda kui vale värvi- või heledusinfo ning põhjustada kasutatavates algoritmides segadust või valepositiive ja valenegatiive.
Probleemid saadud info tõlgendamisega.
Arvutinägemise kõige põhilisemad probleemid on seotud sensoritelt saadud info tõlgendamisega. Suureks probleemiks on näiteks stseenis kasutatud valgustus. Olenevalt valgustuse kogusest, asukohast ja temperatuurist võib üks ja sama objekt arvuti jaoks välja näha sootuks erinevalt. Üks ja sama objekt võib omada väga palju erinevaid väljanägemisi olenevalt sellest, mis nurga alt või kui suures koguses talle valgust peale paistab. Lisaks sellele muudab valguse temperatuur väga oluliselt kogu stseeni värviinfot. Külma valguse puhul saab näiteks inimese nahk küllaltki tugeva sinise tooni ning ei pruugi enam arvuti poolt olla tuvastatav nahatoonina. Just seoses valgustuse probleemidega on arvutinägemine kõige efektiivsem kontrollitud tingimustes. Siiski on tehtud edusamme valgustusega seonduvate probleemide lahendamisega, näiteks on laialdaselt kasutust leidnud Gabori lained, mis võimaldavad minimeerida valgustuse mõjud objektile.
Sarnaselt valgusega on probleemiks ka vaadeldava objekti poos. Näiteks ei näe tool kõrvaltvaates välja samasugune nagu see on eest- või ülevaltvaates. Seepärast ei ole võimalik tooli pildil lihtsalt ära tunda, vaid tuleb leida tooli matemaatiline esitus ehk numbrilisel kujul see, mis teeb ühest toolist tooli. Samal ajal tuleb meeles pidada, et maailmas on väga palju väga erinevaid toole. Tihtipeale ei ole mõistlik või võimalik inimesel sellist universaalset matemaatilist esitust tuletada ning appi võetakse masinõppe algoritmid, mis leiavad sellise esituse iseenesest.
Nägemise tasemed.
Arvutinägemise võib ülesannete ja keerukuse järgi jagada tasanditeks. Igal tasand pakub uusi võimalusi ja keerukamaid meetodeid. Kõrgemad tasandid toimetavad enamasti madalamate tasandite meetodite poolt saadud infot.
Madalatasemeline nägemine.
Madalatasemeline nägemine hõlmab meetodeid, mis on kogu arvutinägemise alustaladeks ning selle eesmärk on töödelda pilt järgmistele tasemetele kasutatavamaks. Eesmärgiks on maksimeerida kasuliku info hulk ning minimeerida kasutu info. See on kõige põhilisem tasand, ilma milleta on võimatu lahendada keerulisemaid probleeme. Madala taseme operatsioonide hulka kuuluvad näiteks pilditüüpide teisendamine must-valgeks või binaarseks, müra vähendamine, ääretuvastus ja nurgatuvastus. Lisaks kuuluvad selle alla veel pikseloperatsioonid nagu kopeerimine, inverteerimine, künnisfilter (ingl "thresholding"). Künnisfiltri puhul on tegu pildiinfo binaarseks muutmisega. Sellisel puhul on võimalikud, vaid kaks olekut – must ja valge. Meid huvitav info muundatakse künnisfiltris üheks ja kasutu info teiseks väärtuseks ning seetõttu on tegu ühe kõige kasulikuma filtriga arvutinägemises. 
Kesktaseme nägemine.
Kesktaseme puhul on tegu juba keerukamate ülesannetega, mis hõlmavad madala taseme operatsioonide kasutamist. Kesktasemel ei olda niivõrd mures enam piksliinfo muutmisega või info leidmisega päris maailma kohta, vaid soovitakse saada pildi kohta abstraktset infot. Otsitavaks infoks võib olla näiteks huvipunktide või -objektide orientatsioon ja positsioon. Lisaks kuuluvad kesktasemele ka sellised funktsioonid, mis leiavad infot näiteks ringi või nelinurga olemasolu kohta pildil. Tüüpiliste meetodite hulka sellel tasandil kuuluvad kujutuvastus-, mustrituvastus-, joonetuvastusmeetodid.
Kõrgtaseme nägemine, 3D-nägemine.
Kõrgtaseme puhul on eesmärgiks saada infot päris maailmas toimuva kohta. Selle tasandi eesmärgiks oleks eelkõige sügavusinfo leidmine stereonägemist kasutades või taastamine ning liikumisinfo leidmine ja analüüs. Sellele tasandile jõuab üldiselt maksimaalselt töödeldud info, sest kõrgtasemelised algoritmid on tihti väga keerukad ning kulutavad suurte andmehulkade puhul väga palju aega.
Klassifitseerimine.
Tehisnägemise üheks haruks võib lugeda ka objektide klassifitseerimise, mille juures võetakse enamasti abiks masinõpe. Klassifitseerimine viiakse tavapäraselt läbi tehisnärvivõrkude, Support Vector Machine või mõne muu klassifitseerimisalgoritmi abil. Näiteks tehisnärvivõrkude puhul antakse algoritmile ette kogumik näiteid ning andmed näidete kohta, et algoritm saaks aru, milline on õige ja milline on vale näide. Algoritm käib andmed mitmekordselt läbi ning kohandab ennast iga korraga ning on piisava treeningumahu korral pärast võimeline uusi näiteid klassifitseerima. Selline operatsioon on aga väga ajakulukas, nõuab suurt andmebaasi näidetega ning ei ole sajaprotsendilise täpsusega. Siiski on olenevalt ülesandest võimalik saavutada tulemusi, mis konkureerivad inimestega või on inimestest juba natuke ees.