AI:n perusteet
Mitä on tietokoneen näkö?
Mitä on tietokoneen näkö?
Tietokoneen näön algoritmit ovat yksi maailman muuntavimmista ja voimakkaimmista tekoälyjärjestelmistä tällä hetkellä. Tietokoneen näköjärjestelmät ovat käytössä itseohjautuvissa ajoneuvoissa, robottien navigoinnissa, kasvontunnistusjärjestelmissä ja muissa sovelluksissa. Mutta mitä tietokoneen näön algoritmit ovat oikein? Miten ne toimivat? Vastatakseni näihin kysymyksiin, tutustumme tietokoneen näön teoriaan, tietokoneen näön algoritmeihin ja tietokoneen näköjärjestelmien sovelluksiin.
Miten tietokoneen näköjärjestelmät toimivat?
Jotta voimme täysin ymmärtää, miten tietokoneen näköjärjestelmät toimivat, käydään ensin läpi, miten ihmiset tunnistavat objekteja. Neuropsykologian parasta selitystä sille, miten tunnistamme objekteja, on malli, joka kuvaa objektin tunnistamisen alkuvaihetta objektin tunnistamisena, jossa objektin peruskomponentit, kuten muoto, väri ja syvyys, tulkitaan aivoissa ensin. Silmästä aivoihin tulevat signaalit analyysoidaan, jotta objektin reunat voidaan erottaa, ja nämä reunat yhdistetään yhdeksi objektin muodoksi.
Tietokoneen näköjärjestelmät toimivat hyvin samankaltaisesti kuin ihmisen visuaalinen järjestelmä, reunat ensin erottamalla ja sitten yhdistämällä ne objektin muodoksi. Suuri ero on, että koska tietokoneet tulkitsevat kuvia numeroina, tietokoneen näköjärjestelmän on oltava jokin tapa tulkita yksittäisiä kuvapikseleitä, jotka muodostavat kuvan. Tietokoneen näköjärjestelmä antaa arvot kuvan pikseleille, ja vertaamalla arvoja eri pikseliryhmien välillä, tietokone voi erottaa reunat. Esimerkiksi, jos kyseessä on harmaasävykuva, arvot vaihtelevat mustasta (jota edustaa 0) valkoiseen (jota edustaa 255). Äkillinen muutos arvojen vaihtelussa lähellä toisiaan olevissa pikseleissä osoittaa reunan.
Tämä periaate, jossa vertaillaan pikseliarvoja, voidaan soveltaa myös värikuvissa, jolloin tietokone vertaa eroja eri RGB-värikanaalien välillä. Nyt, kun tiedämme, miten tietokoneen näköjärjestelmä tarkastelee pikseliarvoja kuvan tulkitsemiseksi, katsotaan tietokoneen näköjärjestelmän arkkitehtuuri.
Convolutional Neural Networks (CNNs)
Tietokoneen näön tehtävissä käytettävä tekoäly on perustuu convolutional neural networksiin. Mitä convolution tarkalleen ottaen on?
Convolution on matemaattinen prosessi, jota verkko käyttää erojen määrittämiseen pikselien välillä. Jos kuvittelet ruutua, jossa on pikseliarvoja, kuvittele pienempi ruutu, joka liikkuu tämän pääruudun yli. Arvot, jotka ovat toisen ruudun alla, analyysoidaan verkossa, joten verkko tarkastelee vain muutamia pikseleitä kerrallaan. Tätä kutsutaan usein “liukuvien ikkunoiden” tekniikaksi. Verkko tiivistää arvot, jotka analyysoidaan liukuvan ikkunan alla, mikä auttaa vähentämään kuvan monimutkaisuutta ja tekee siitä helpomman verkolle löytää kuvasta mallineita.
Convolutional neural networkit on jaettu kahteen osaan, convolutional osaan ja täysin kytkettyyn osaan. Verkon convolutional kerrokset ovat piirteiden extractoijia, joiden tehtävänä on tarkastella kuvan pikseleitä ja muodostaa niistä edustuksia, joita täysin kytkettyjen kerrosten verkkoon voidaan oppia. Convolutional kerrokset aloittavat tarkastelemalla pikseleitä ja extractoimalla kuvan matalatason piirteet, kuten reunat. Myöhemmät convolutional kerrokset yhdistävät reunat yhdeksi monimutkaisemmaksi muodoksi. Lopulta verkon on tarkoitus antaa täysin kytketyille kerroksille edustus reunista ja yksityiskohdista, jonka verkkoon voidaan opettaa.
Kuvan annotointi
Vaikka convolutional neural network voi itse extractoida kuvista mallineita, tietokoneen näön järjestelmän tarkkuutta voidaan parantaa merkittävästi annotoimalla kuvia. Kuvan annotointi on prosessi, jossa kuvaan lisätään metadataa, joka auttaa luokittelijaa havaitsemaan tärkeitä objekteja kuvassa. Kuvan annotoinnin käyttö on tärkeää silloin, kun tietokoneen näköjärjestelmien on oltava erittäin tarkkoja, kuten esimerkiksi itseohjautuvissa ajoneuvoissa tai roboteissa.
Kuvia voidaan annotoida useilla tavoilla parantamaan tietokoneen näön luokittelijan suorituskykyä. Kuvan annotointi tehdään usein reunakkeiden avulla, jotka ympäröivät kohde-objektin reunat ja kertovat tietokoneelle, missä se on keskittynyt. Semanttinen segmentointi on toinen annotoinnin tyyppi, joka toimii siten, että jokainen kuvapikseli saa luokan. Toisin sanoen jokainen pikseli, joka voidaan pitää “ruohona” tai “puita”, on merkitty kuuluvan näihin luokkiin. Tämä tekniikka tarjoaa pikselitasoisen tarkkuuden, mutta semanttisen segmentoinnin annotointi on monimutkaisempaa ja aikaa vievää kuin yksinkertaisten reunakkeiden luominen. Muita annotointimenetelmiä, kuten viivoja ja pisteitä, on myös olemassa.












