Monissa nykyisissä ja ennakoiduissa autonomisissa laitteissa on joitain vaatimuksia, jotka ovat yhteisiä melkein kaikille. Näin on erityisesti 3D-hahmotuksen kanssa. Olisi tehokasta jos esim. autonomisissa autoissa, veneissä, lennokeissa ja ruohonleikkureissa olisi yhteinen ohjelmistokomponentti tai hardware-osa joka hoitaa 3D-hahmotuksen, ja antaa tulosta standardin mukaisessa formaatissa. Yksi mahdollisuus on, että 3D-hahmotus-komponentti muodostaa tuloksen määrittelevän tiedoston 30 kertaa sekunnissa (laitekohtaisille ohjelmiston osille eli ylemmälle abstraktiotasolle). Sellaisen tiedoston formaatti voi olla jopa sama kuin joku 3D-mallinnus-ohjelmissa (kuten Blender tai 3D-studio-max (tai 3D studio max )) oleva formaatti tai jostain sellaisesta formaatista johdettu. Jos sen tuloksena tulevan tiedoston laittaa sitä formaattia ymmärtävään 3D-mallinnusohjelmaan, näkyy 3D maisema joka muistuttaa kameralla tai kameroilla kuvattua paikkaa ainakin geometrialtaan, joskaan ei tekstuureiltaan. Siksi sellainen 3D-hahmotus-osa mahdollistaa myös eräänlaisen videokuvanpakkauksen, jota voi käyttää esim. kauko-ohjauksessa silloin kun datakaistaa on niukalti (sanotaanko alle 100 kilobittiä/s).
Nyt tuntuu, että 3D-formaatin kannalta on sama millä teknisellä keinolla tila on hahmotettu. Sen hahmotuksen voi tehdä stereonäöllä, mononäöllä yhdestä kuvasta, mononäöllä liikkuvasta laitteesta eli monesta kuvasta, laser-etäisyysmittauksilla (eli ajastuksen kanssa), todella nopeasti välkkyvän ledin avulla (eli ajastuksen kanssa), heijastuvan valon voimakkuuden mittauksilla (fotometriaa) tai laser-viivalla joka pyyhkii näkymää erittäin nopeasti (pyörivän prisman avulla) ja jota kuvataan hieman sivusta (laser-viivan tai projisoidun led-viivan leveys voi olla 0,1 astetta ja pituus 90 astetta). Toisaalta, voi olla tarpeen, että 3D-formaatti antaa ilmaista myös mittausten virhemarginaalit, ja eri varmuusasteilla eli esim. 70%, 95% ja 99,99% varmuusasteilla. Ja voi olla tarvetta ilmaista miten vierekkäiset lukemat ovat oikeasti riippuvaisia toisistaan, vaikka mittaustulokset poikkeaisivat kymmeniä prosentteja (vaikkapa saman seinän eri osat jotka näkyvät esim. 0,01 asteen päässä toisistaan, voidaan päätellä olevan esim. metrin tarkkuudella samalla etäisyydellä, vaikka eri mittaustuloksissa olisikin sadan metrin ero).
-
Nyt tuntuu, että 3D-formaatin kannalta on sama millä teknisellä keinolla tila on hahmotettu. Sen hahmotuksen voi tehdä stereonäöllä, mononäöllä yhdestä kuvasta, mononäöllä liikkuvasta laitteesta eli monesta kuvasta, laser-etäisyysmittauksilla (eli ajastuksen kanssa), todella nopeasti välkkyvän ledin avulla (eli ajastuksen kanssa), heijastuvan valon voimakkuuden mittauksilla (fotometriaa) tai laser-viivalla joka pyyhkii näkymää erittäin nopeasti (pyörivän prisman avulla) ja jota kuvataan hieman sivusta (laser-viivan tai projisoidun led-viivan leveys voi olla 0,1 astetta ja pituus 90 astetta). Toisaalta, voi olla tarpeen, että 3D-formaatti antaa ilmaista myös mittausten virhemarginaalit, ja eri varmuusasteilla eli esim. 70%, 95% ja 99,99% varmuusasteilla. Ja voi olla tarvetta ilmaista miten vierekkäiset lukemat ovat oikeasti riippuvaisia toisistaan, vaikka mittaustulokset poikkeaisivat kymmeniä prosentteja (vaikkapa saman seinän eri osat jotka näkyvät esim. 0,01 asteen päässä toisistaan, voidaan päätellä olevan esim. metrin tarkkuudella samalla etäisyydellä, vaikka eri mittaustuloksissa olisikin sadan metrin ero).
-
Vastaukset 3
Vanhimmat
"Sellaisen tiedoston formaatti voi olla jopa sama kuin joku 3D-mallinnus-ohjelmissa (kuten Blender tai 3D-studio-max (tai 3D studio max )) oleva formaatti tai jostain sellaisesta formaatista johdettu. "
Konenäössä on oleellista näkyvien hahmojen tunnistus. 3D-mallinnusohjelmien formaateille on yhteistä, että mallinnus on hierarkista: mallinnettu tila muodostuu komponenteista, jotka muodostuvat alikomponenteita, jotka muodostuvat primitiiveistä tai hash-pinnoista. Tällaisen, esim Blender-mallin, muodostaminen automaattisesti vaikkapa kuvajoukon perusteella on yleisen AI:n tasoinen ongelma.
Voisi olla mahdollista luoda automaattisesti passiivinen 3D-hash-malli (siis mallinetaan näkyvat pinnat suurella joukolla toisiinsa liittyneitä kolmioita, joiden kärjet ovat 3D-pisteitä. Mutta tällaisesta "standardimallista" olisi aika vähän iloa.
Minun näkemykseni mukaan todellakin konenäkö on siirtymässä älykkääseen, hierarkiseen analyysiin (siis kohti em. ongelman ratkaisua). Tässä käytetään aivokuoren algoritmia, kuten Zen-Robotics sen on toteuttanut:
http://www.zenrobotics.com/finnish/
Tässä lähestymistavassa kohteen analyysi lisää ymmärrystä hierarkiataso kerrallaan, alkaen muutaman pikseli ryhmistä komponettien tummistamiseen ja 3D-hahmottamiseen, kuten esim ihminen sen tekee.
Konenäön suunnittelijan tulisi kiinnittää enemmän huomiota siihen, ettei ihminen tunnista mitään sellaista, mitä ei ole sitä ennen nähnyt. Tästä johtuu, että nähdessään jotain uutta ja kuvitellessaan näkevänsä jotain vanhaa, ihminen joutuu itse hirvittäviin onnettomuuksiin tai aiheuttaa hirvittävän onnettomuuden muille
"Voisi olla mahdollista luoda automaattisesti passiivinen 3D-hash-malli (siis mallinetaan näkyvat pinnat suurella joukolla toisiinsa liittyneitä kolmioita, joiden kärjet ovat 3D-pisteitä. Mutta tällaisesta "standardimallista" olisi aika vähän iloa."
Niin ja suurimmassa osassa kuvattavaa kuva-alaa ja kuvattavaa tilavuutta ne kolmiotkin voi jättää pois ja kuvata pisteitä vain "palloina" joihin pitää yrittää säilyttää minimietäisyyttä.
Mutta eikö sellainen ole välttämätöntä? Onko esim. helikopterin autonomisuustoiminnon tarpeen tunnistaa mihin kopteri olisi törmäämässä jos ei muuttaisi suuntaa? Siinä vain pilvet pitää tunnistaa, että jos on siirtymässä johonkin niin ei turhaan väistä niitä(ilmakuvien otossa pitää väistää pilviäkin). Ja luultavasti kaikenlaista sekalaista olisi hyvä muttei välttämätöntä tunnistaa.
Vastaava juttu autolla, eli esteitä pitää väistää riippumatta siitä onko ne tunnistettu vai ei. Tosin liikkumispintaa pitää voida tunnistaa, ettei esim. aja tulvan peittämälle tielle. Ja kaikenlaista sekalaista on välttämätöntä tunnistaa. Hahmontunnistus voi olla 2D tai 3D. Jos 3D, niin sen standardikomponentin asetuksissa pitäisi kertoa miltä alueelta 3D mallit annetaan sellaisella tarkkuudella, että joku muu komponentti voi niistä jotain tunnistaa. Jos 2D, niin "pallon" mukana annetaan 2D-textuuri jonkun muun osan käsiteltäväksi. (Voiko näissä yhteyksissä tarvita 1D tunnistusta? (jollaista esim. morsetuksen tulkinta on))