Single View Metrology Juhász Réka Pintér Csaba Papp László Soponyai György
A megoldandó probléma: Ha ismerjük az oszlop magasságát, akkor mekkora az ember?
Vanishing point A képen találhatók „sarkok” Épületek, macskakő, falak Perspektivikus kép párhuzamos egyenesei összetartanak Vanishing point kiv.: az egyenesek a kamera vetítési síkjával is párhuzamosak
Vanishing line Vanishing pointok összekötése Vanishing line
Vanishing line Talppontokat összekötjük Ha valamelyik objektum nem a „földön” áll, akkor meghosszabbítjuk Az egyenes metszi a vanishing line-t A tetőpontból húzunk egy egyenest ebbe a metszéspontra
Voilà
Problémás eset 1 Valamelyik (vagy mindkét) objektum a vanishing line-on áll a méret
Problémás eset 2 “közel párhuzamos” egyenesek túlcsordulás
Programok MatLab (részben külső forrás) A new Approach for Vanishing Point Detection in „ Architectural Environments" by Carstern Rother 2002 Vanishing line meghatározása adatfájl C++ / wxWindows (saját fejlesztés) GUI Mérés
MatLab
MatLab kód ismertetése A bemeneti képen Canny-éldetektort hajtunk végre
MatLab kód ismertetése A Canny élképen Hough transzformációval illesztünk egyeneseket Az egyeneseket halmazokba soroljuk aszerint, hogy az egyes egyenesek szögei mennyiben térnek el egymástól
MatLab kód ismertetése Töröljük azokat a halmazokat, melyekbe „kevés” vonal esik (ezzel szűrjük a „zajos” vonalakat)
MatLab kód ismertetése A megmaradt egyenesek metszéspontjait vizsgáljuk egy befoglaló kör segítségével Minél távolabb vagyunk a képtől, annál nagyobb a kör sugara Ha az isdoor paramétert true-ra állítottuk, akkor a körök sugarai kisebbek, mert feltehetően kevesebb vonal van a képen (így kevesebb metszéspontot kell kisebb sugárban keresni) A választott vanishing point a kör középpontja lesz Csak a 3 legvalószínűbb vanishing pointot hagyjuk meg
GUI
Manuális Vanishing Point -feltöltés
Futási eredmények A MatLab kód „ideális” esetben jó eredményt produkál, ekkor a számítás is helyes Sok vagy nagyon kevés egyenes esetén bizonytalan az eredmény
Továbbfejlesztési lehetőségek MatLab kódhoz wrapper felület készítése, hogy a GUI-ból közvetlenül indítható legyen MatLab kód átírása C++-ra, hogy a GUI beépített osztályként kezelje Más vanishing point keresési stratégiák alkalmazása a meglévő mellett