Sisällysluettelo:

3D -rekonstruktio yhdestä valokuvasta: 8 vaihetta
3D -rekonstruktio yhdestä valokuvasta: 8 vaihetta

Video: 3D -rekonstruktio yhdestä valokuvasta: 8 vaihetta

Video: 3D -rekonstruktio yhdestä valokuvasta: 8 vaihetta
Video: AINO elokuva - (tekstitetty suomeksi) 2024, Marraskuu
Anonim
3D -rekonstruktio yhdestä valokuvasta
3D -rekonstruktio yhdestä valokuvasta
3D -rekonstruktio yhdestä valokuvasta
3D -rekonstruktio yhdestä valokuvasta

3D -rekonstruktion tehtävä liittyy yleensä kiikarinäköön. Vaihtoehtoisesti voit siirtää yhden kameran kohteen ympärille. Samaan aikaan, jos kohteen muoto tiedetään, tehtävä voidaan ratkaista yhdestä valokuvasta. Eli sinulla on vain yksi kamera eikä se liiku. Katsotaanpa kuinka se tehdään askel askeleelta. Käytämme Rubikin kuutiota, koska se on hyvin standardoitu ja siinä on runsaasti ominaisuuksia. Sitä voidaan pitää hyvin yksinkertaisena objektina ja samanaikaisesti monimutkaisena rakenteena. Joten konenäön on ylitettävä merkittävät esteet tehtävän suorittamiseksi.

Vaihe 1: Arvioi tehtävän monimutkaisuus

Arvioi tehtävän monimutkaisuus
Arvioi tehtävän monimutkaisuus
Arvioi tehtävän monimutkaisuus
Arvioi tehtävän monimutkaisuus
Arvioi tehtävän monimutkaisuus
Arvioi tehtävän monimutkaisuus
Arvioi tehtävän monimutkaisuus
Arvioi tehtävän monimutkaisuus

Ensi silmäyksellä tehtävä on yksinkertainen. Etsi keskisolmu, jossa kuution 3 reunaa tulevat yhteen, ja piirrä nämä reunat. Niiden koordinaateista on mahdollista laskea etäisyys kamerasta ja kiertokulmat. Ongelma on, että näitä linjoja ei ole olemassa. Vasemmasta kuvasta näet, että jokaista reunaa edustaa 2 yhdensuuntaista viivaa. Lisäksi oikeassa yläkulmassa oleva kuva osoittaa, että jokainen niistä on jaettu kolmeen segmenttiin. Lisäksi jos käytämme suositun Hough -muunnoksen varianttia, joka pystyy havaitsemaan linjalohkot, se suorittaa tehtävän joillakin virheillä, jotka tekevät keskussolmun havaitsemisen mahdottomaksi. Jos päät eivät osu toisiinsa, ei ole yhtä pistettä. Jos tunnistus ylittää pään, se näyttää reunan keskellä olevasta solmusta, kuten kahdessa jäljellä olevassa kuvassa.

Vaihe 2: Löydä oikea lähestymistapa

Löydä oikea lähestymistapa
Löydä oikea lähestymistapa

Kun liian monet yksityiskohdat tekevät deterministisistä algoritmeista toimimattomia, on aika harkita todennäköisyyspohjaista lähestymistapaa. Jos laskemme kuvan keskimääräiset parametrit, niiden virheet vähenevät merkittävästi ja paradoksaalisesti menetelmästä tulee luotettavampi. Tavallinen Hough -muunnos ei tuota linjasegmenttejä. Vain sen kaltevuus teeta ja etäisyys rho koordinaattien alkuperästä. Ne muodostavat Hough -tilan osan, joka on esitetty yllä. Tässä theta vastaa vaaka -akselia. Kirkkaat täplät merkitsevät mahdollisia viivoja kuvassa. Huomaa, että useita tällaisia kohtia on toistensa yläpuolella. Ei ihme, kuvassamme on monia yhdensuuntaisia viivoja. Heillä on sama teeta ja eri rho.

Vaihe 3: Laske Theta -histogrammi

Laske Theta -histogrammi
Laske Theta -histogrammi

Tunnistetaan tällaiset klusterit. Tätä tarkoitusta varten teemme yhteenvedon kaikkien Hough -tilan pisteiden lukemista samalla teetalla. Kuvassa näkyy vastaava histogrammi. Muutama huomio mittauksista. Kun käsittelet kuvia pikselikoordinaateissa, X -akseli menee tavalliseen tapaan, mutta Y osoittaa alaspäin, joten koordinaattien lähtökohta on vasen yläkulma ja teeta on mitattava X -akselista myötäpäivään. Pidä mielessä, että koko theeta -pyyhkäisy kuvassa on 180 astetta, voit suunnilleen tarkistaa, että 3 suurta huippua edustavat 3 vallitsevaa kaltevuutta kuvassa.

Vaihe 4: Laske Rho -histogrammi

Laske Rho -histogrammi
Laske Rho -histogrammi

Nyt kun tiedämme kolme rinnakkaislinjojen pääryhmää, erotetaan viivat kussakin niistä. Voimme toistaa saman lähestymistavan. Otetaan sarake Hough -tilasta, joka vastaa yhtä huippua teeta -histogrammissa. Seuraavaksi laskemme toisen histogrammin, jossa X -akseli edustaa rho -arvoa ja Y - tiivistetyt lukemat tälle rho: lle. On selvää, että summa on pienempi, joten tämä kaavio ei ole niin sileä. Huiput ovat kuitenkin selvästi näkyvissä ja niiden määrä (7) vastaa tarkasti lähdekuvan rinnakkaisviivojen määrää. Valitettavasti kaikki kaaviot eivät ole niin täydellisiä, mutta periaate on selvä.

Vaihe 5: Etsi keskussolmu

Etsi Keskusolmu
Etsi Keskusolmu

Jos otamme rho -histogrammin keskipisteen kullekin teetalle, saamme 3 viivaa, jotka ovat punaisia kuvassa. Niiden leikkauspiste merkitsee tarvittavan pisteen.

Vaihe 6: Valitse kahdesta vaihtoehdosta

Valitse 2 vaihtoehdosta
Valitse 2 vaihtoehdosta
Valitse 2 vaihtoehdosta
Valitse 2 vaihtoehdosta

Näet, että jokainen viiva kulkee keskipisteestä molempiin suuntiin. Kuinka määrittää oikea puoli? Otetaan teeta3. Oletetaan, että otamme tämän rivin alaosan. Lasketaan vielä yksi Hough -tila vain kuvan osalle 2 vihreästä viivasta kuvan oikeaan yläkulmaan. Luo sitten sille theta -histogrammi. Näet, että kolmas huippu katosi kokonaan, joten olemme tehneet oikean valinnan.

Vaihe 7: Määritä ulkoiset kulmat

Määritä ulkoiset kulmat
Määritä ulkoiset kulmat

Nyt voimme käyttää rho -histogrammien ensimmäistä ja viimeistä huippua piirtämään sinisiä viivoja, jotka leikkaavat punaiset reunat ja merkitsevät loput kulmat. Tehtävä on ratkaistu.

Vaihe 8: Kokeile sitä käytännössä

Tämän Instructable -ohjelman kuvat on luotu käyttämällä Perception 1.0 -versiota. Tämä on ilmainen ohjelmisto, joka käyttää OpenCV: tä - tehokasta tietokonenäön kirjastoa. Se voi myös olla yhteydessä WinNB: hen, jota käytin toisessa Instructable -ohjelmassa, mikä tarjoaa robotiikan näkökyvyn. Voit ladata molemmat ohjelmat nbsite -sivustolta. Asenna vain suorittamalla ladattu exe -tiedosto. Myöhemmin voit poistaa sen Windowsin vakiotyökalulla. Sivustolla on myös resursseja tietokonenäöstä ja siihen liittyvistä aiheista. Perceptionista löydät kuvatun 3D -rekonstruktion menetelmän sekä monia muita. Tämän ohjelman etuna on, että se antaa lopputuloksen välitiedon kanssa. Voit tutkia, miten tietokonevisio toimii ilman ohjelmoijaa. Syötteen osalta jokaisessa menetelmässä on erityisesti valittu tyypillisiä näytteitä. Tietysti voit käyttää myös omaasi. On mahdollista syöttää kuvia tiedostosta tai tietokoneen kamerasta. Ota rohkeasti yhteyttä, jos sinulla on kysyttävää tai ehdotuksia.

Suositeltava: