Konenäkö

Seuraa 
Viestejä45973
Liittynyt3.9.2015

Miten koneelle saisi näön? Siis jos on kamera ja siitä otetaan kuva tarkasteltavaksi vaikka kolme kertaa sekunnissa niin siitä kuvasta pitäisi pystyä päättelemään todella paljon kaikkea että sitä voisi edes näöksi kutsua(verrattaessa ihmisen näköön) niin mitähän kaikkea kuvasta voisi todeta ja millä tavoin? Ainakin valon voimakkuuden eri osissa kuvaa ja kenties värejäkin mutta se ei ihan riitä. Entäs jos otetaan toinen kamera ja verrataan molempien kameroiden kuvia vielä keskenään niin sillähän on mahdollista totetuttaa syvyysnäkö.

Kommentit (10)

Pikku Gen
Seuraa 
Viestejä3210
Liittynyt2.6.2005

Veikkaan että perushahmontunnistuksella päästäisiin alkuun, mutta ohjelma sen takana saisi olla aika jyry. Jos koneen taas pitäisi oikeasti tietää mitä näkee... no, eikös konetietoisuuden ongelmaa käsitelty jossain toisessa threadissa?

Pidän muuten palstan nimikkolehdessä tai uutisissa aikoinaan esitetystä teoriasta, että tietoisella koneella pitäisi olla lapsuus, että se voisi todella olla tietoinen...

"Ubi est actio hic?" Missä täällä on säpinää?

Vierailija
Pikku Gen
Pidän muuten palstan nimikkolehdessä tai uutisissa aikoinaan esitetystä teoriasta, että tietoisella koneella pitäisi olla lapsuus, että se voisi todella olla tietoinen...

No jos on kyse tietoisesta koneesta niin senhän tulee olla oppiva ja oppimisen alkuvaihettahan voidaan sitten kutsua lapsuudeksi.

En muuten puhunut tietoisesta koneesta vaan pelkästään siitä mitä erilaisia asioita kuvasta voisi tunnistaa ja mitä niiden perusteella voi päätellä ja miten se mahdollisesti toteutetaan.

jiitu
Seuraa 
Viestejä266
Liittynyt29.8.2006
aleksialeksi

En muuten puhunut tietoisesta koneesta vaan pelkästään siitä mitä erilaisia asioita kuvasta voisi tunnistaa ja mitä niiden perusteella voi päätellä ja miten se mahdollisesti toteutetaan.

Kuvasta voidaan toki koittaa tunnistaa hyvinkin monenlaisia asioita. Mitä nyt mieleen tulee. Onko kuvassa ihmisiä, autoja, tahi lentokoneita. Onko yö, vai päivä jne. Ja kasvonpiirteiden perusteella voidaan tunnistaa tiettyjä yksittäisiä ihmisiä. Ei kait tässä ole kuin mielikuvitus rajana.

Kysymys kuuluukin sitten miten. Yksittäisiin sovelluksiin vaaditaan aina oma ohjelmaosansa. Kasvontunistuksessa vertaillaan kuvien mittasuhteita jne.

Eräs keskeinen ja varsin yleispätevä menetelmä ovat neuroverkot. En nyt ala tarkemmin kertomaan niiden toiminnasta, mutta periaatteessa ne voidaan opettaa tunnistamaan melkeimpä mitä vain. Käytäntö on kuitenkin aina toinen asia ja neuroverkkoja käytettäessä on aina oltava tosi tarkkana.

Eräs tarina, joka lienee pelkkää legendaa (en ole varma, voi jotain perääkin olla taustalla), mutta kuvaa kuitenkin hyvin neuroverkkoja, on tarina jenkkien panssarivaunujen tunnistusohjelmasta. Tavoitteena oli tunnistaa nopeasti ja tehokkaasti ilmakuvista, onko kuvassa näkyvä panssarivaunu oma, vai vihulaisen tankki. Tämä ratkasitiin neuroverkoilla, joka sitten opetettiin laajalla opetuskuvamateriaalilla. Testatessa tulokset olivat hämmästyttävän hyviä. Kuva kuin kuva ja ohjelma oli aina oikeassa. Nopeasti ja varmasti.

Myöhemmin havaittiin kuitenkin, että kentällä homma ei toimi laisinkaan niin hyvin vaan ohjelma antoi ihan sattumanvaraisia tuloksia. Sitten tajuttiin, että opetus- ja testimateriaalissa käytetyt kuvat olivat järjestäen sellaisia, että vihulaisen tankeista oli läinnä salaa yöllä otettuja kuvia ja omista oli kauniita kuvia auringon paisteessa. Niinpä neuroverkko olikin oppinut tunnistamaan kuvista, oliko yö vai päivä. Ei mitään muuta.

Hauska tarina, jos ei muuta. Ja tosiaankin esittelee neuroverkkoja kaikessa karuudessaan. Kuitenkin oikein käytettynä nillä on loistavat sovellusmahdollisuudet.

Ding Ding
Seuraa 
Viestejä9031
Liittynyt16.3.2005

Eikös Google ole suunnittelemassa hakutoimintoa joka pystyisi määrittelemään kuvan sisällön "katsomalla" sitä? Jostain muistan tällaista lukeneeni. Epäilemättä sellainen haku tulee tavalla tai toisella käyttöön muutaman vuoden kuluessa.

David
Seuraa 
Viestejä8875
Liittynyt25.8.2005

Nähdäkseni tuollainen mekaaninen "näkö" pitäisi perustua johonkin malleihin. Koneen täytyisi siis verrata edellistä ja seuraavaa kuvaa keskenään ja jos muutosta on joiltain osin tapahtunut, hakea tiedostosta joillain järkevillä kriteereillä vertailukuvia, joihin on sitten liitetty joku merkitys erillisenä tiedostona.

Tapahtuman jatkumon tunnistaminen pitäisi sitten olla vielä omana systeeminään. Jos tapahtumalle ei löydy vastinetta, koneelle pitäisi sitten syöttää kuvaus ko. tilanteesta. Syötön ajaksi tapahtuman eteneminen pitäisi keskeyttää, koska niistä pitäisi tietysti tallentua myös kesto.

Jos samaan systeemiin / tilanteeseen saadaan myös tunnistekoodi ja virherajat, niin tiedetään mitä koneen pitäisi olla tekemässä ja saadaan hallintaan myös mahdolliset virhetilanteet .

Tällaiseen systeemiin tarvitaan tietysti tosi tehokas tietokone ja myös ohjelmistolta vaaditaan melko paljon.

Kosh
Seuraa 
Viestejä21228
Liittynyt16.3.2005
aleksialeksi
Miten koneelle saisi näön? Siis jos on kamera ja siitä otetaan kuva tarkasteltavaksi vaikka kolme kertaa sekunnissa niin siitä kuvasta pitäisi pystyä päättelemään todella paljon kaikkea että sitä voisi edes näöksi kutsua(verrattaessa ihmisen näköön) niin mitähän kaikkea kuvasta voisi todeta ja millä tavoin? Ainakin valon voimakkuuden eri osissa kuvaa ja kenties värejäkin mutta se ei ihan riitä. Entäs jos otetaan toinen kamera ja verrataan molempien kameroiden kuvia vielä keskenään niin sillähän on mahdollista totetuttaa syvyysnäkö.

Syvyysnäkö on suhteellsien triviaalia toteuttaa noin. Lähinnä tarvitaan hahmontunnistusmekanismit (kuten kaikessa muussakin konenäössä) piirteenirroitukseen, jotka erottavat kuvasta värien, intensiteettien yms vaihtelun perusteella muotoja. "Kulmapisteitä" ja viivoja on suhteellisen helppo tunnistaa tietyillä algoritmeilla, samoin kuin yhtenäisiä pintojakin. Erilaisin suodatuksin saadaan näitä piirteitä korostettua niin että ne voidaan suurella tarkkuudella tunnistaa. Kun kuvasta erotetaan pintoja, viivoja ja "kulmia", voidaan siirtyä geometriaan. Helpointa on jos kameran optiset arvot tunnetaan, kuten linssistön polttoväli yms. Silloin voidaan pyöräyttää kahden hiukan eriävän kuvan 2D-projektio erinäisten laskutoimitusten kautta 3D-koordinaateiksi. Näin siis toisiaan vastaavien piirteiden sijainti voidaan määrittää ja siten Kuvissa näkyvän maiseman geometria yleensäkin. Tosin kameran optiikan tunteminen ei ole välttämätöntä, vaan se voidaan opettaa kalibroiden referenssigeometrioiden avulla.

Yhdelläkin kameralla sadaana 3D-geometrioita selville, jos kameraa liikutellaan ja verrataan eri freimejä toisiinsa em. kaltaisin tekniikoin. Vastaavasti liikkuvan kohteen muodot ja sijainti on yhtä lailla arvioitavissa tietyin varauksin. Jonkin verran myös staattisetsa maisematsa voidana tunnistaa 3D-muotoja, esimerkiksi hyödyntäen perspektiivi-ilmiöitä kuten yhdensuuntaisten viivojen yhetistä katoamispistettä horisontissa jne. Tällaiset tosin vataivat rajatumpaa ympäristöä tai hienostuneempaa ympäristön tuntemusta sekä myös varsin monimutkaisia algoritmeja.

Muunlaista tunnistamista konenäköön perustuen voidaan tehdä myös. Esimerkiksi voidaan laskea kaikenlaisia "keinotekoisia" piirteitä, joille ei sinänsä ole välttämättä suoraa, helposti ymmärrettävää visuaalista vastinetta.

Tärkein kysymys onkin, mitä sinä haluat kamerasysteemisesi näkevän?

Joku mainitsi neuroverkot. Ne ovat sellainen tietokoneälyn perustyöjuhta, joka sopii vähän kaikkeen mutta aina vähän kyseenalaisesti. Ne ovat nimenomaan oppijoita, mutta sellaisenaan arvaamattomia ja suhteellsien tehottomia. Jotta saa neuroverkon oppimaan oikeita, vaan ei vääriä, asioita, vaaditaan erityistä huolellisuutta. Konenäössäkin niitä voidaan hyödyntää, mutta usein kannattaa käyttää muita menetelmiä. Neuroverkonkin opettamisen kannalta piirteenirrotus on joka tapauskessa erittäin hyödyllistä ja tärkeää, sillä siten voidaan kontrolloida sitä mitä verkko tosissaan oppii. Jos sille syötetään kuvia raakapikselidatana, se voi oppia juurikin vaikkapa päivän ja yön vastoin oletuksia.

Omaa konenäkösysteemiä suunnittelevalle suosittelen erittäin hyvää ohjelmointitaitoa jollakin kielellä ja vankkaa matemaattista perustietoa ja -taitoa. Matriisialgebraan on oltava käytännössä hyvin lämpimissä suhteissa ennenkuin voi jotain itse todella tehdä. Periaatteessa valmisratkaisuita voisi hyödyntää ilmankin, mutta ne lienevät aika harvassa nykyisin. Tällä alalla painopiste on vielä kovin lähellä perustutkimusta, vaikka hyötysovelluksia yksittäiskohteisiin onkin jo vuosia ollut olemassa. Yleistä konenäköjärjestelmää ei vielä ole, vaan se on aina osvitettava tapauskohtaisetsi omiin tarkoituksiin.

Se oli kivaa niin kauan kuin sitä kesti.

Vierailija

Stanley, eli Stanfordin yliopiston kehittämä autonominen auto.

While the vehicle is in motion, the environment is perceived through four laser range finders, a radar system, a stereo camera pair, and a monocular vision system.

Ei tuo nyt varsinaista näkemistä ole, mutta aavikkomaastossa Stanley osaa jo edetä.
Stanleysta ja muista autonomisista ajoneuvoista oli enemmän tietoa BBC:n dokumentissa The great robot race.

Vierailija

Kyllähän värit, sävyt ja muodot on koneenkin 'ymmärrettävissä'. Eihän digikamerakaan ota varsinaisesti värillistä tallennusta, vaan värit tallentuvat kennon kautta. Luultavasti tuo näkemänsä ymmärtäminen on melkoinen este. Minulla olohuoneessa ruskea arkkupöytä, koneelle se on vain ruskea laatikko

Vierailija
Does not compute
Kyllähän värit, sävyt ja muodot on koneenkin 'ymmärrettävissä'. Eihän digikamerakaan ota varsinaisesti värillistä tallennusta, vaan värit tallentuvat kennon kautta. Luultavasti tuo näkemänsä ymmärtäminen on melkoinen este. Minulla olohuoneessa ruskea arkkupöytä, koneelle se on vain ruskea laatikko

Ainakin aiemmin mainetsemassini dokumentissa Stanley ymmärsi "näkemäänsä" riittävästi osatakseen karulla aavikolla välttää suuret kivet ja muut epätasaisuudet. Lisäksi Stanley ohitti kilpailun aikana edellä lähteneen auton joka kärsi (vaihteisto?) viasta.
Stanleyn "aivoihin" ladattiin vain GPS reitti, mutta itse ajouran se sai päättää itse.

Uusimmat

Suosituimmat