Turinys:

3D rekonstrukcija iš vienos nuotraukos: 8 žingsniai
3D rekonstrukcija iš vienos nuotraukos: 8 žingsniai

Video: 3D rekonstrukcija iš vienos nuotraukos: 8 žingsniai

Video: 3D rekonstrukcija iš vienos nuotraukos: 8 žingsniai
Video: KAROLIS TALAZ: 8 kambarys, kūrybos procesas ir santykių iššūkiai atnešę ramybę | Tapk Geresniu 006 2024, Liepa
Anonim
3D rekonstrukcija iš vienos nuotraukos
3D rekonstrukcija iš vienos nuotraukos
3D rekonstrukcija iš vienos nuotraukos
3D rekonstrukcija iš vienos nuotraukos

3D rekonstrukcijos užduotis paprastai siejama su binokuliniu regėjimu. Arba galite perkelti vieną kamerą aplink objektą. Tuo tarpu, jei žinoma objekto forma, užduotis gali būti išspręsta iš vienos nuotraukos. Tai reiškia, kad turite tik vieną kamerą ir ji nejuda. Pažiūrėkime, kaip tai padaryti žingsnis po žingsnio. Mes naudosime Rubiko kubą, nes jis yra gerai standartizuotas ir turi daugybę funkcijų. Tai gali būti laikoma labai paprastu objektu ir tuo pat metu sudėtinga konstrukcija. Taigi mašinos matymas turi įveikti esmines kliūtis, kad galėtų atlikti užduotį.

1 žingsnis: Įvertinkite užduoties sudėtingumą

Įvertinkite užduoties sudėtingumą
Įvertinkite užduoties sudėtingumą
Įvertinkite užduoties sudėtingumą
Įvertinkite užduoties sudėtingumą
Įvertinkite užduoties sudėtingumą
Įvertinkite užduoties sudėtingumą
Įvertinkite užduoties sudėtingumą
Įvertinkite užduoties sudėtingumą

Iš pirmo žvilgsnio užduotis paprasta. Raskite centrinį mazgą, kuriame susilieja 3 kubo kraštai, ir nubrėžkite šiuos kraštus. Pagal jų koordinates galima apskaičiuoti atstumą nuo kameros ir sukimosi kampus. Problema ta, kad šių linijų nėra. Iš kairiojo vaizdo matote, kad kiekvieną kraštą vaizduoja 2 lygiagrečios linijos. Be to, viršutiniame dešiniajame paveikslėlyje parodyta, kad kiekvienas iš jų yra suskirstytas į 3 segmentus. Be to, jei taikome populiariosios Hough transformacijos variantą, kuris gali aptikti linijų segmentus, jis atlieka užduotį su tam tikromis klaidomis, dėl kurių neįmanoma aptikti centrinio mazgo. Jei galai nepasiekia vienas kito, nėra vieno taško. Jei aptikimas peržengia galą, jis atrodys kaip mazgas krašto viduryje, kaip matote 2 likusiuose vaizduose.

2 žingsnis: raskite tinkamą metodą

Raskite tinkamą požiūrį
Raskite tinkamą požiūrį

Kai per daug detalių lemia, kad deterministiniai algoritmai neveikia, atėjo laikas apsvarstyti tikimybinį metodą. Jei apskaičiuosime vidutinius vaizdo parametrus, jų klaidos iš esmės sumažės ir paradoksalu, kad metodas pasirodys patikimesnis. Standartinė Hough transformacija neišleidžia linijų segmentų. Tik jo nuolydis teta ir atstumas rho nuo koordinačių pradžios. Jie sudaro Hough erdvę, kurios dalis parodyta aukščiau. Čia teta atitinka horizontalią ašį. Ryškios dėmės žymi galimas vaizdo linijas. Atminkite, kad kelios tokios dėmės yra viena virš kitos. Nenuostabu, kad mūsų atvaizde yra daug lygiagrečių linijų. Jie turi tą pačią teta ir skirtingą rho.

3 žingsnis: apskaičiuokite teta histogramą

Apskaičiuokite teta histogramą
Apskaičiuokite teta histogramą

Aptinkime tokias grupes. Šiuo tikslu mes apibendrinsime visų taškų Hough erdvėje su ta pačia teta rodmenis. Iliustracijoje matote atitinkamą histogramą. Keletas pastabų apie matavimus. Kai dirbate su vaizdais pikselių koordinatėmis, X ašis eina kaip įprasta, tačiau Y nukreipta žemyn, taigi koordinačių pradžia yra viršutinis kairysis kampas, o teta turi būti matuojama nuo X ašies pagal laikrodžio rodyklę. Turint omenyje, kad visas teta yra nufotografuotas 180 laipsnių kampu, galite apytiksliai patikrinti, ar 3 pagrindinės smailės atspindi 3 vyraujančius vaizdo šlaitus.

4 žingsnis: apskaičiuokite Rho histogramą

Apskaičiuokite Rho histogramą
Apskaičiuokite Rho histogramą

Dabar, kai žinome 3 pagrindines lygiagrečių linijų grupes, atskirkime linijas kiekvienoje iš jų. Mes galime pakartoti tą patį požiūrį. Paimkime stulpelį iš Hough erdvės, kuri atitinka vieną teta histogramos smailę. Toliau apskaičiuosime kitą histogramą, kurioje X ašis reiškia rho reikšmę, o Y - apibendrinti šio rho rodmenys. Akivaizdu, kad suma bus mažesnė, todėl ši diagrama nėra tokia sklandi. Nepaisant to, smailės yra aiškiai matomos ir jų skaičius (7) tiksliai atitinka šaltinio vaizdo lygiagrečių linijų skaičių. Deja, ne visos diagramos yra tokios tobulos, tačiau principas aiškus.

5 žingsnis: raskite centrinį mazgą

Raskite centrinį mazgą
Raskite centrinį mazgą

Jei kiekvienai tetai paimsime rho histogramos centrinę smailę, gausime 3 linijas, kurios paveikslėlyje yra raudonos. Jų sankirta žymi būtiną tašką.

6 žingsnis: Pasirinkite iš 2 alternatyvų

Pasirinkite iš 2 alternatyvų
Pasirinkite iš 2 alternatyvų
Pasirinkite iš 2 alternatyvų
Pasirinkite iš 2 alternatyvų

Matote, kad kiekviena linija eina iš centrinio taško į abi puses. Kaip nustatyti teisingą pusę? Paimkime teta3. Tarkime, paimame apatinę šios linijos dalį. Apskaičiuokime dar vieną Hough erdvę tik paveikslo daliai nuo 2 žalių linijų iki viršutinio dešiniojo vaizdo kampo. Tada sukurkite jai teta histogramą. Matote, kad trečioji smailė visiškai išnyko, todėl pasirinkome teisingai.

7 žingsnis: nustatykite išorinius kampus

Nustatykite išorinius kampus
Nustatykite išorinius kampus

Dabar mes galime naudoti pirmąją ir paskutinę smailę rho histogramose, kad nubrėžtume mėlynas linijas, kurios nukirptų raudonus kraštus ir pažymėtų likusius kampus. Užduotis išspręsta.

8 žingsnis: Išbandykite tai praktiškai

Šios „Instructable“iliustracijos buvo sukurtos naudojant „Perception 1.0“. Tai nemokama programinė įranga, kuri naudoja „OpenCV“- galingą biblioteką kompiuteriniam matymui. Be to, jis gali būti susietas su „WinNB“, kuris buvo naudojamas mano kitame „Instructable“, taip suteikiant galimybę matyti robotiką. Abi programas galite atsisiųsti iš nbsite. Norėdami įdiegti, tiesiog paleiskite atsisiųstą exe failą. Vėliau galite jį pašalinti naudodami standartinį „Windows“įrankį. Svetainėje taip pat yra išteklių apie kompiuterio viziją ir susijusias temas. „Perception“rasite aprašytą 3D rekonstrukcijos metodą ir daugelį kitų. Šios programos pranašumas yra tas, kad ji pateikia galutinį rezultatą kartu su tarpiniais duomenimis. Jūs galite ištirti, kaip veikia kompiuterio vizija, nebūdamas programuotoju. Kalbant apie įvestį, kiekvienas metodas turi specialiai parinktus tipinius mėginius. Žinoma, galite naudoti ir savo. Galima įvesti vaizdus iš failo arba iš kompiuterio kameros. Nesivaržykite susisiekti su manimi bet kokiais klausimais ar pasiūlymais.

Rekomenduojamas: