Sisukord:

3D rekonstrueerimine ühest fotost: 8 sammu
3D rekonstrueerimine ühest fotost: 8 sammu

Video: 3D rekonstrueerimine ühest fotost: 8 sammu

Video: 3D rekonstrueerimine ühest fotost: 8 sammu
Video: 3D живопись на стенах?Легко,8 идей. 2024, Juuli
Anonim
3D rekonstrueerimine ühest fotost
3D rekonstrueerimine ühest fotost
3D rekonstrueerimine ühest fotost
3D rekonstrueerimine ühest fotost

3D rekonstrueerimise ülesanne on tavaliselt seotud binokulaarse nägemisega. Teise võimalusena võite objekti ümber liigutada ühe kaamera. Vahepeal, kui objekti kuju on teada, võidakse ülesanne lahendada ühest fotost. See tähendab, et teil on ainult üks kaamera ja see ei liigu. Vaatame samm -sammult, kuidas seda teha. Kasutame Rubiku kuubikut, kuna see on hästi standardiseeritud ja sellel on rikkalik funktsioonide komplekt. Seda võib pidada väga lihtsaks objektiks ja samal ajal keeruliseks konstruktsiooniks. Seega peab masina nägemine ülesande täitmiseks ületama olulisi takistusi.

Samm: hinnake ülesande keerukust

Hinnake ülesande keerukust
Hinnake ülesande keerukust
Hinnake ülesande keerukust
Hinnake ülesande keerukust
Hinnake ülesande keerukust
Hinnake ülesande keerukust
Hinnake ülesande keerukust
Hinnake ülesande keerukust

Esmapilgul on ülesanne lihtne. Leidke keskne sõlm, kus kuubi 3 serva kokku tulevad, ja joonistage need servad. Nende koordinaatide põhjal on võimalik arvutada kaugus kaamerast ja pöördenurgad. Probleem on selles, et neid liine pole olemas. Vasakult pildilt näete, et iga serva tähistab 2 paralleelset joont. Lisaks näitab ülemine parempoolne pilt, et igaüks neist on jagatud kolmeks segmendiks. Veelgi enam, kui rakendame populaarse Hough -teisenduse varianti, mis suudab tuvastada joonelõike, täidab see ülesande mõningate vigadega, mis muudavad keskse sõlme tuvastamise võimatuks. Kui otsad teineteiseni ei ulatu, pole ühtegi punkti. Kui tuvastus ületab otsa, näeb see välja nagu serv serva keskel, nagu näete kahel ülejäänud pildil.

2. samm: leidke õige lähenemisviis

Leidke õige lähenemisviis
Leidke õige lähenemisviis

Kui liiga paljud üksikasjad muudavad deterministlikud algoritmid töötamatuks, on aeg kaaluda tõenäosuslikku lähenemist. Kui arvutame pildi keskmised parameetrid, vähenevad nende vead oluliselt ja paradoksaalselt osutub meetod usaldusväärsemaks. Tavaline Hough -teisendus ei väljasta liinisegmente. Ainult selle kalle teeta ja kaugus rho koordinaatide lähtekohast. Need moodustavad Hough ruumi osa, mille osa on näidatud ülal. Siin vastab teeta horisontaalteljele. Heledad täpid tähistavad pildil võimalikke jooni. Pange tähele, et mitu sellist täppi asuvad üksteise kohal. Pole ime, et meie kujutisel on palju paralleelseid jooni. Neil on sama teeta ja erinev rho.

3. samm: arvutage teeta histogramm

Teeta histogrammi arvutamine
Teeta histogrammi arvutamine

Avastame sellised klastrid. Sel eesmärgil võtame kokku kõigi Hough -ruumi punktide näidud sama teetaga. Näete joonisel vastavat histogrammi. Mõni märkus mõõtmiste kohta. Kui töötate pikslikoordinaatidega piltidega, läheb X -telg nagu tavaliselt, kuid Y osutab allapoole, nii et koordinaatide lähtepunkt on vasakpoolne ülemine nurk ja teetat tuleks mõõta X -teljel päripäeva. Pidades silmas, et kogu teeta pühkimine pildil on 180 kraadi, saate ligikaudselt kontrollida, kas 3 peamist tippu kujutavad kujutisel kolme domineerivat nõlva.

Samm: arvutage Rho histogramm

Arvutage Rho histogramm
Arvutage Rho histogramm

Nüüd, kui me teame 3 peamist paralleelsete sirgete klastrit, eraldagem neist igaüks eraldi. Võime sama lähenemist korrata. Võtame Hough ruumist veeru, mis vastab teeta histogrammi ühele tipule. Järgmisena arvutame välja teise histogrammi, kus X -telg tähistab rho väärtust ja Y - selle rho kokkuvõtlikud näidud. Ilmselt on summa väiksem, nii et see graafik pole nii sile. Sellegipoolest on piigid selgelt nähtavad ja nende arv (7) vastab täpselt lähtepildi paralleelsete joonte arvule. Kahjuks pole kõik graafikud nii täiuslikud, kuid põhimõte on selge.

Samm: leidke kesksõlm

Leidke kesksõlm
Leidke kesksõlm

Kui võtame iga teeta puhul rho histogrammi keskpunkti, saame 3 joont, mis on pildil punased. Nende ristmik tähistab vajalikku punkti.

Samm: valige kahe alternatiivi hulgast

Valige 2 alternatiivi hulgast
Valige 2 alternatiivi hulgast
Valige 2 alternatiivi hulgast
Valige 2 alternatiivi hulgast

Näete, et iga joon läheb keskpunktist mõlemas suunas. Kuidas määrata õige pool? Võtame teeta3. Oletame, et võtame selle rea alumise osa. Arvutame veel ühe Hough ruumi ainult selle pildi osa jaoks, mis koosneb kahest rohelisest joonest kuni pildi paremasse ülanurka. Seejärel looge selle jaoks teeta histogramm. Näete, et kolmas tipp kadus täielikult, nii et oleme teinud õige valiku.

Samm: määrake välisnurgad

Määrake välisnurgad
Määrake välisnurgad

Nüüd saame rho histogrammidel kasutada esimest ja viimast piiki, et tõmmata siniseid jooni, mis lõikavad punased servad ja tähistavad ülejäänud nurki. Ülesanne on lahendatud.

Samm: proovige seda praktikas

Selle juhendi illustratsioonid on loodud programmi Perception 1.0 abil. See on tasuta tarkvara, mis kasutab OpenCV -d - võimsat raamatukogu arvuti nägemiseks. Samuti võib see olla seotud WinNB -ga, mida kasutati minu teises Instructable'is, pakkudes seega robootika nägemisvõimet. Mõlemad programmid saate alla laadida saidilt nbsite. Paigaldamiseks käivitage lihtsalt allalaaditud exe -fail. Hiljem saate selle Windowsi standardse tööriista abil eemaldada. Sait sisaldab ka ressursse arvutinägemise ja sellega seotud teemade kohta. Perceptionist leiate nii kirjeldatud 3D rekonstrueerimise meetodi kui ka paljud teised. Selle programmi eeliseks on see, et see väljastab lõpptulemuse koos vaheandmetega. Saate programmeerijana uurida, kuidas arvutinägemine töötab. Sisendi osas on iga meetodi jaoks spetsiaalselt valitud tüüpilised proovid. Loomulikult võite kasutada ka oma. Pilte on võimalik sisestada failist või arvuti kaamerast. Küsimuste või ettepanekute korral võtke minuga julgelt ühendust.

Soovitan: