Ei tuo siis mistään koko kartasta sitä selaa, vaan vertaa yhteen esimerkkiin. Jos sulla on vaikka sadan kuvan "kirjasto", niin siinä menee monta sekuntia käydä yksi frame jokaista ruutua vasten.
Mennään OT, mutta tämä (tehokas laskenta ja kuvantunnistus) on asia jonka kanssa olen tehnyt ihan töitä, ja se ei ihan oikeasti mene millään ihan pienellä suorittimella. Ei ARMilla, ei GPUlla, ei FPGA:lla.. Se vaatii aika ison määrän laskentaoperaatioita ja homma tiivistyy siihen että jostain ne operaatiot on ilmoille vedettävä.
Jos tosiaan pitäisi lähteä käymään läpi kamerakuvaa karttadataa vasten, niin käytännössä siinä ensin ajettaisiin joku yksinkertainen viivantunnistusalgoritmi, jolla päästään eroon kaikesta muusta informaatiosta kuvassa paitsi terävistä reunoista. Oletetaan FullHD kuva, jolloin tuollaisen tekeminen syö about 600 multiply-accumulate operaatiota per pikseli, eli noin 1200M operaatiota. Intel Core-i7 11700:sta on 100% hyötysuhteen olettaen kaivettavissa noin 1000Gflops (8-core * 2x aritmetiikkayksikkö * 3,6GHz * AVX-512), eli tuo operaatio ei tunnu vielä missään. Pelkkien viivojen vertailu kuitenkin tiputtaa lopun prosessoinnin tarvetta oman hihavakion mukaan noin 90%, eli ehdottomasti kannattaa tehdä.
Itse kuvan löytäminen kirjastosta puolestaan on aika ikävää hommaa, siinä ei auta muu kun koittaa etsiä kuvista merkitseviä muotoja (esim. viivojen risteykset tai eristyksissä olevat kuviot) ja sen jälkeen koittaa yksinkertaisia geometriamuunniksia että noita piirteitä saisi kohdakkain ja lopulta rumaasti vaan laskea esimerkkikuvan ja geometrialtaan muutetun kuvan samankaltaisuus. Jos vastaavuus on riittävän hyvä voidaan olettaa että kameran kuva on jostain kohtaa karttakuvaa. Jokainen tuollainen vertailukierros syö ~4M opetaatiota per yritys, käytännössä kannattaa laskea jollain vähän leveämmällä 2D filtterillä, jolloin laskennan tarve kasvaa yli 100-kertaiseksi mutta sietokyky huonolle sovitukselle kasvaa radikaalisti. Käytännössä tuo on ehkä 2G operaatiota per tehokas yrite. Jos GPS:llä löydetään suurinpiirteinen sijainti niin 9 kuvasta todennäköisimmän löytäminen olisi ehkä tehtävissä 50FPS nopeudella, isomman kirjaston kanssa tai huonomman optiikan (eli monimutkaisemmat geometriamuunnikset ja sovitukset) kanssa homma hidastuu aika nopeasti.
Toimiakseen tuo tosiaan vaatii ajantasaisen karttadatan ja rahallisesti melko arvokkaan laskentapaketin. Verrokkina yksinkertainen kompassi+gyroskooppianturi, korkeusmittari, nopeusmittari, satelliittipaikannin ja datan yhdistäminen Kalman-filtterillä pääsee vastaavaan tai parempaan tarkkuuteen ihan vaan yksinkertaisen Atmegan laskentateholla. Koko paketti vaatii sähköä reilusti alle watin ja maksaa isoissa erissä ehkä vitosen.
EDIT: voidaan jatkaa tästä jossain toisessa langassa, mutta pointtina oli siis että kuvantunnistuksella tapahtuva tarkka navigointi ei ole järkevää jos tuotteen on tarkoitus olla halpa ja massatuotettava. Risteilyohjuksessa tuollainen 1ke kuvantunnistuspaketti ei tunnu missään, halvassa itsemurhadronessa se tuplaa hinnan. Katsoin kuitenkin järkeväksi kirjoittaa tässä langassa hiukan auki että mitä tuollainen pitää sisällään, joku muukin on varmasti miettinyt samaa aihetta muiden dronejen ja lentovehkeiden suhteen.