Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Segmentation based Multi-View Stereo

Ähnliche Präsentationen


Präsentation zum Thema: "Segmentation based Multi-View Stereo"—  Präsentation transkript:

1 Segmentation based Multi-View Stereo
Seminar: 3D Rekonstuktion FU-Berlin - SoSe 2011

2 MVS allgemein vs. Segmentation Based MVS
Generell gilt bei MVS → homogene Flächen sind problematisch (keine/wenig Features) Dieses Paper: nutzt homogene Flächen benötigt nur wenig Features pro Fläche Flächen werden über Farbsegmentierung gefunden "Nebenprodukt": gute Performance Annahme: Flächen, homogen in Intensitaet und Farbe, bilden Flächen mit einheitlicher Normalen Dieses Paper behandelt Multi View Stereo mit ein paar Erweiterungen. Allgemein werden bei MVS viele Bilder gegeben und es soll ein 3D-Modell (3D-Mesh) oder eine Punktwolke der Szene erstellt werden. Die Kamerabilder koennen kalibriet sein, muessen es aber nicht. Ggf. kommt dabei ein weitere Verarbeitungsschritt hinzu. Ein typische Problem bei MVS ist, dass homogene Flaechen wenig/keine Features enthalten und diese Fleachen nicht richtig rekonstruiert werden koennen, da  nur den Features 3D-Punkte zugeordnet werden.  Unser Paper benutzt allerdings diese homogenen Flaechen als 'Features'. Diese Flaechen werden ueber Farbsegmentierung gefunden. Es benoetigt relativ wenig Features und hat deswegen eine gute Performance. Die Annahme ist, dass Flaechen die homogen in Farbe und Intensitaet sind, eine Flaeche mit einheitlicher Normalen sind (Bsp.: Wand). 

3 Pipeline / Inhalt Kamera-Kalibrierung Farbsegmentierung
Initiale 3D-Seeds 3D-Segmente erstellen aus Farbsegmenten und 3D Seeds nicht zugeordneten Farbsegmenten Oberflächenkonstruktion (PSR) Hier ein kuzer Ueberblick ueber das Vorgehen:  Wir gehen davon aus, dass die Kamerabilder kalibiert sind (d.h. interne und externe Parameter der Kamera bekannt (siehe VL ComputerVision/Bildverarbeitung/etc.). Diese Bilder werden dann Farbsegmentiert. Es werden initiale 3D-Seeds erzeugt. Dazu werden korrespondierende Features in den Bildern gesucht und wie in klassischer Stereovision 3D-Informationen berechnet. Anschliessend werden die 3D-Seeds und die Farbsegmente kombiniert und wir erhalten 3D-Segmente (3D-Koordinate + Form des Farbsegmentes + Normale). Aus diesen 3D-Segmenten wird dann mittels Poisson Surface Reconstruction ein 3D-Modell erzeugt. Farbsegmentierung und 3D-Seeds sind unabhaengig voneinander und koennen auch in anderer Reihenfolge oder auch parallel bearbeitet werden.

4 Farbsegmentierung Eigenschaften:
Vorverarbeitungsprozess zur Bestimmung von aussagekräftigen Gruppierungen / Regionen des Bildes   vielseitig einsetzbar, wenn effizient berechenbar Ziel: charakteristische homogene Regionen Probleme: großflächige Farb- / Intensitätsverläufe Regionen mit hohen Schwankungen → lokale Kriterien reichen nicht aus Farbsegmentierung (vergleichbar mit Kantenerkennung) ist ein für Computer Vision-Probleme interessanter Vorverarbeitungsprozess und essentiell für den Ansatz dieses Papers. Farbsegmentierung liefert an hand von Farben charakteristische Regionen/Segmente und wobei das Bild stark vereinfacht wird. Für unseren Ansatz stellen diese Segmente genau die homogenen Flächen dar, von denen man ausgeht, dass sie eine Ebene im 3D-Raum repräsentieren. Es gibt zwei Probleme bei Farbsegmentierung: Intensitätsverläufe und Regionen mit hohen Schwankungen.

5 Farbsegmentierung graph-based image segmentation [8]:
Der Ansatz zur Farbsegmentierung, welcher im Paper verwendet wird, löst die Probleme und ist trotzdem effizient - arbeitet in linearer Zeit. Er verwendet dafür ein nicht lokales Kriterium und soll im folgenden noch kurz zusätzlich vorgestellt werden. Erwähnenswert: Sourcecode und Paper sind frei!

6 Farbsegmentierung - Bild als Graph
Der Ansatz arbeitet auf dem Bild repräsentiert als Graph: Pixel => Knoten   Kanten zu jedem benachbartem Pixel (<=8) Kantengewicht entspricht Intensitätsdifferenz Danach: Vom Graph ausgehen werden minimale Spannbäume aufgebaut - also Inseln von Graphen. Diese entsprechen am Ende den Farbsegmenten.  Hierzu wird eine Modifikation von Krukal verwendet (also greedy),  mit einem zusätzlichem Kriterium für die Verschmelzung Kantengewichte entsprechen Intensitätsdifferenzen

7 Farbsegmentierung - Hauptkriterium
Die entstehende Spannbäume entsprechen den Farbsegmenten. Es werden für das Schmelzkriterium zwei Kennzahlen verwendet: DIFF= minimale Differenz zwischen zwei Komponenten INT = maximale Differenz innerhalb einer Komponente = maximales Kantengewicht innerhalb einer Komponente Sobald die Differenz zwischen zwei Komponenten kleiner ist als das minimum der beiden internen Differenzen wird verschmolzen. Schmelzkriterium: DIFF(C1,C2) < MINT(C1,C2)                ,mit MINT(C1,C2) = Min(INT(C1),INT(C2))

8 Farbsegmentierung - Algorithmus
     Das ganze nun nochmal kurz als Algorithmus. Genau wie bei Kruskal werden: die Kanten nach minimalem Kantengewicht sortiert durchgegangen und bei jeder Kante die Segmente der Endpunkte bestimmt. Sollten die Segmente gleich sind gibt es nichts zu tun. Andernfalls muss das   Schmelzkriterium geprüft und gegenfalls verschmolzen werden. Am Beispiel: Sollte das Gewicht von e kleiner sein als  MINT(C1,C2) (das Minimum der beiden internen Differenzen) werden C1 und C2 verschmolzen. w(e) entspricht dann dem maximalen Kantengewicht des neuen Segments, also der internen Differenz.

9 3D Seeds 3D-Seeds durch guided matching Gegeben: Bilder Ziel:
Initiale 3D-Seeds Schritte: Features Matching Triangulation Clustering Ziel dieses Schrittes ist es, aus den vielen Bildern initiale 3D-Seeds (nicht zu viele, nicht zu wenig) zu erzeugen. Dazu werden in den Bilder Features gesucht. Korrelierende Features werden ueber die Bilder hinweg identifiziert und 3D-Seeds werden erzeugt. Um die Anzahl gering zu halten werden die 3D-Seeds noch geclustert. guided matching: reduce search space for features. “guided matching methods are often used to reduce the size of the search region from the entire image to a region expected to contain the corresponding feature.” epipolare geometrie:

10 3D Seeds - Features wähle Reference-Image Ir Rest: Target-Image It
unterteile in Rechtecke guided matching Features pro Rechteck Features: Ein Bild wird als Referez-Bild Ir gewaehlt. Die anderen Bilder sind Target-Images It. Alle Bilder werden in Rechtecke unterteilt. Mittels guided matching werden jedem Rechteck in Ir Rechtecke in It zugewiesen (sofern moeglich). Der Suchraum wird mittels guided matching sehr reduziert. In jedem Rechteck werden Features (Harris-Features) bestimmt. Schlechte Features werden weggeschmissen und nur die besten k Features werden behalten. (Harris ist ein Edge/Corner-Detector. Er ist Rotations- aber nicht Skalierungsunabhaegig. Er misst die Staerke von gefundenen Ecken und markiert diese nur, falls die Staerke groesser ist als ein Schwellwert.) Jetzt haben wir Bilder mit Features und wissen ungefaehr in welcher Region (korrespondierende Rechtecke) Features korrespondieren.

11 3D Seeds - Features wähle Reference-Image Ir Rest: Target-Image It
unterteile in Rechtecke guided matching Features pro Rechteck

12 3D Seeds - Features wähle Reference-Image Ir Rest: Target-Image It
unterteile in Rechtecke guided matching Features pro Rechteck

13 3D Seeds - Features wähle Reference-Image Ir Rest: Target-Image It
unterteile in Rechtecke guided matching Features pro Rechteck

14 3D Seeds - Matching Matchende Features finden:
Feature in Ir auf epipolare Linie in It NCC für alle Features der Linie Match, wenn max. Korrelation von Ir zu It und umgekehrt Matching: Die Features in Ir muessen den Features in It zugeordnet werden um anschliessend 3D-Seeds zu erzeugen. Fuer jedes Feature in Ir wird in der Nachbarschaft entlangder epipolaren Linie in It nach korrespondierenden Features gesucht (naechste Folie). Sofern das Feature auch der maximale Match von It in Ir ist (übernächste Folie) wird ein 3D-Seed erzeugt.

15 3D Seeds - Matching Matchende Features finden:
Feature in Ir auf epipolare Linie in It NCC für alle Features der Linie Match, wenn max. Korrelation von Ir zu It und umgekehrt

16 3D Seeds - Matching Matchende Features finden:
Feature in Ir auf epipolare Linie in It NCC für alle Features der Linie Match, wenn max. Korrelation von Ir zu It und umgekehrt

17 3D Seeds - Triangulation
3D-Seed erzeugen: klassische StereoVision Tiefeninformation aus Disparität Aus den korrelierenden Features werden nun wie in klassischer StereoVision 3D-Punke (unsere 3D-Seeds) erzeugt.  (Ueber die Disparitaet laesst sich die Tiefeninformation berechnen.) (Zusaetzlich wird noch eine vorlaeufige Normale des 3D-Seeds gespeichert, die Normale des Punktes zur Kamera. Diese wird spaeter optimiert.)

18 3D Seeds - Clustering Clustern: viele 3D-Seeds für gleichen Punkt
Cluster von Seeds durch einen 3D-Seed ersetzen Vorherige Schritte werden fuer jedes Bild wiederholt, sprich jedes Bild wird einmal Ir sein. Anschliessend gibt es viele 3D-Seeds die ein und denselben Punkt in 3D beschreiben. Wir wollen jedoch nur eine relativ geringe Anzahl von 3D-Seeds. Deswegen clustern wir die 3D-Seeds (wir benutzen QL-Clustering). (QL-Clustering: Quality Clustering. "Exploring Expression Data: Identification and Analysis of Coexpressed Genes")

19 Segmentation Based MVS (SBMVS)
Zusammenspiel der 3D-Seeds und der Farbsegmente Ziel: 3D Segmente erstellen Schritte: aus Farbsegmente und 3D Seeds aus nicht zugeordneten Farbsegmenten Wir kommen nun zum eigentlichen Hauptteil unseres Ansatzes. Dem eigentlichen Clou, welcher das Problem mit homogenen, Feature armen Flächen lösen soll. Also dem Zusammenspiel zwischen den 3D-Seeds und der Farbsegmente. Ziel ist es aus der Kombination 3D Segmente zu erstellen.  3D Segmente sind Flächen im 3D Raum, zu denen ein 3D Fixpunkt bekannt ist und die Ausrichtung der Fläche, also der Normalvektor. Das ganze erfolt in zwei Schritten:  Im ersten werden bekannte Seeds und Farbsegmente verarbeitet.  Im zweiten geht es darum, auch aus Farbsegmente, zu denen keine 3D Seeds gefunden worden, 3D Segmente zu erstellen. Hierzu wird ihre Nachbarschaft betrachetet.

20 SBMVS - Optimale 3D Segmente
Zuordnung zwischen: 3D Seed X  Farbsegment si Von jedem Seed ist das Referenzbild, von welchem er gefunden wurde bekannt. Es kann somit einfach die Projektionsmatrix des Bildes verwendet werden um das entsprechende Farbsegment zu ermitteln.

21 SBMVS - Optimale 3D Segmente
gegeben: 3D Koordinate - Fixpunkt 2D Form (Segment) gesucht:   Normalvektor n der Fläche / des Segments Damit sind bisher vom 3D Segment die Form des Segments und die Koordinaten des Fixpunkts bekannt. Benötigt wird nun noch die Ausrichtung des Segments. Also der Normalvektor der Fläche. Der Normalvektor wird über zwei Schritte ermittelt: eine erste Abschätzung und davon ausgehende Optimierung per Gradientenabstieg. Zum Abzuschätzen werden alle möglichen Normalenvektoren unter einem Änlichkeitskriterium durchgetestet.  Die Idee hinter dem Änlichkeitsmaß ist folgende: Je nach Normalvektor werden die Farbsegmente aus dem Ir unterschiedlich gut auf die It projeziert. Normalvektor n über durchtesten abschätzen  (pro Achsen zwischen 0° und 180° in 18° Schritten)

22 SBMVS - Optimale 3D Segmente
Das kann man sich so vorstellen (siehe Bild).

23 SBMVS - Optimale 3D Segmente
im Detail: alle Pixel p aus si über n (und die epipolare Geometrie zwischen den Kameras) auf Targetbilder It abbilden Zu jedem n wird dazu getestet wie gut die Pixel aus si und ihre Abbildungen auf It übereinstimmen. Die Abbildung wird dabei über den Normalvektor selber und die epipolare Geometrie zwischen den Kameras realisiert. Die verwendete Metrik für die Kriteriumsfunktion wird im Paper nicht benannt. Eine Möglichkeit wäre der minimale quadratische Abstand.

24 SBMVS - Optimale 3D Segmente
Gradientenabstieg von bester Abschätzung aus Abschätzung und Optimierung über alle Targetbilder It genau ein 3D Segment pro Farbsegment Von der besten Abschätzung aus wird n über Gradientenabstieg noch weiter optimiert. Sowohl für die Abschätzung als auch für die Optimierung werden immer alle Targetbilder berücksichtigt. Da es zu einem Farbsegment mehrere 3D-Seeds geben kann gibt es am Ende auch mehrere 3D-Segmente. Es wird aber zu jedem Farbsegment nur das Beste (nach Kriteriumsfunktion) gespeichert.

25 SBMVS - freie Farbsegmente
explored        -    unexplored    -    explored Für Farbsegmente ohne 3D Seed und damit ohne 3D Segment werden benachbarte Flächen, welchen ein 3D Segment zugeordnet worde, herangezogen.

26 SBMVS - freie Farbsegmente
Schnittpunkt von r und dem benachbarten 3D Segment als neuer 3D Seed Abschätzung und Optimierung von n => 3D Segment Man bestimmt zu jedem Nachbarn den Schnittpunkt aus der Ebene des benachbarten 3D Segments und dem Strahl r zwischen Kamera und dem Schwerpunkt des freien Farbsegments.  Dieser Schnittpunkt wird als 3D Seed für das Farbsegment interpretiert. Nun hat man wieder alles bis auf den Normalvektor gegeben und kann diesen wie besprochen abschätzen und optimieren. Die 3D Koordinate wird dabei entlang des Strahls r mit optimiert. Pro Nachbar erhält man ein 3D Segment und wählt von allen wieder das Beste aus.

27 Oberflächkonstruktion mit PSR
Poisson Surface Reconstruction gegeben: Oberflächen-Samples gesucht: 3D-Mesh umbauen Idee: Indikatorfunktion: Aussen < 0 < Innen Hintergrund: Poisson Gleichung: elliptische partitielle Differentialgleichung oft bei Randwertproblemen verwendet. Ähnlich zur Laplace-Gleichung. Octree als Datenstruktur Der letzte Schritt ist die Erzeugung eines 3D-Mesh aus den 3D-Segmenten. Dies ist nicht der Kern von unserem Paper, aber die verwendete Methode ist relativ interessant und unterscheidet sich stark von den sonst im Seminar vorgestellten. Die Idee basiert darauf, eine Funktion zu definieren, die angibt, ob ein Datenpunkt in oder ausserhalb eines Objektes ist. Der Wert der Funktion ist kleiner als 0 wenn der Datenpunkt ausserhalb, groesser als 0 wenn der Datenpunkt innerhalb des Objektes ist. Die Poisson-Gleichung wird hierfuer verwendet (auch sonst wird sie oft fuer Randwertprobleme eingesetzt). Als Datenstruktur wird ein Octree verwendet. Der Octree ist eine Baum-Datenstruktur mit der Daten in 3D-Dargestellt werden koennen. Jeder Knoten/Wuerfel ist eine 3D-Koordinate. Sofern Daten in diesem Wuerfel vorkommen, hat der Knoten acht Kinder. Die Aufloesung wird so erhoeht.

28 Poisson Surface Reconstruction
Octree erzeugen Vektor-Feld Indikator-Funktionen Divergenz: Vector -> Scalar Poisson-Gleichung lösen Extrahiere Isofläche Das Vorgehen bei dem Algo. teilt sich in vier Schritte ein: Octree erzeugen Vektor-Feld Indikator-Funktionen Extrahiere Isoflaeche Beim Erzeugen des Octrees werden die 3D-Segmente einfach in die Form des Octrees uebersetzt.

29 Poisson Surface Reconstruction
Octree erzeugen Vektor-Feld Indikator-Funktionen Divergenz: Vector -> Scalar Poisson-Gleichung lösen Extrahiere Isofläche Die Normalen der Segmente werden in Vektoren umgeformt und ein Vektor-Feld wird so erzeugt.

30 Poisson Surface Reconstruction
Octree erzeugen Vektor-Feld Indikator-Funktionen Divergenz: Vector -> Scalar Poisson-Gleichung lösen Extrahiere Isofläche Im dritten Schritt wird die eigentliche Indikator-Funktion angewendet. Dazu wird aus dem Vektorfeld die Divergenz berechnet. Die Divergenz entspricht der Magnitüde der Vektoren. Wir machen aus dem Vector als ein Skalar

31 Poisson Surface Reconstruction
Octree erzeugen Vektor-Feld Indikator-Funktionen Divergenz: Vector -> Scalar Poisson-Gleichung lösen Extrahiere Isofläche Jetzt koennen wir die Poisson-Gleichung loesen und erhalten als Ergebnis den Indikator, der angibt, ob wir uns im oder ausserhalb des Objektes befinden.

32 Poisson Surface Reconstruction
Octree erzeugen Vektor-Feld Indikator-Funktionen Divergenz: Vector -> Scalar Poisson-Gleichung lösen Extrahiere Isofläche Bei gegebenen Werten der Indikatorfunktion kann nun der Isosurface extrahiert werden. Der Isosurface entspricht der Oberflaeche der Objekte. (Isolinien sind z.B. aus Wetterkarten bekannt. Isosurfaces sind die Entsprechung in 3D.)

33 Was bisher geschah ... Farbsegmentierung Initiale 3D-Seeds
3D-Segmente erstellen aus Farbsegmente und 3D Seeds nicht zugeordneten Farbsegmenten Oberflächenkonstruktion (PSR) Hier noch mal als Erinnerung was wir bisher gemacht haben. (Siehe Slide.)

34 Ergebnisse Aussagen der Autoren:
Homogene Farb-Regionen werden gut erkannt Genauigkeit mit anderen Verfahren vergleichbar Gute Performance: 35 min vs 3h pro Bild Unsere Bewertung: Vergleich der Performance relativ nichtssagend Genauigkeit nur in einem nicht erklärten Plot erklärt Algorithmen im Fließtext erklärt Die Autoren betonen, dass ihr Ansatz fuer homogene Farb-Regionen sehr gut funktioniert. Die Performance ist im Vergleich zu einem anderen Ansatz um ein Vielfaches besser und die Genauigkeit ist mit anderen Top-Verfahren vergleichbar. Allerdings sind die Aussagen ueber Genauigkeit und Performance sehr grob. Die alternativen Verfahren werden nicht genannt. Ein einziger, nicht naeher erklaerter Plot, zeigt die Performanche zu anderen Ansaetzen auf. Um welche Benchmarks es sich handelt wird jedoch nicht klar.

35 Besten Dank! Fragen?

36 Resources Marc Pollefeys. Visual 3D Modeling from Images. University of North Carolina - Chapel Hill, USA. http://www.cs.unc.edu/~marc/tutorial/ [1] http://people.cs.uchicago.edu/~pff/segment/ [8] Pedro F. Felzenszwalb and Daniel P. Huttenlocher.  Efficient graph-based image segmentation. In IJCV, 2004. [9] Y. Furukawa and J. Ponce. Accurate, dense, and robust multi-view stereopsis. In CVPR, pages 1–8, 2007. [10] C. Harris and M. Stephens. A combined corner and edge detector. In 4th Alvey Vision Conference, pages 147–151, 1998. [11] R. Hartley and A. Zisserman. Multiple view geometry in computer vision. In Cambridge University Press, 2003. [16] S. Kruglyak L. J. Heyer and S. Yooseph. Exploring expression data: Identification and analysis of coexpressed genes. In Genome Research, pages 9:1106–1115, 1999. TODO: edit [2] T. Pajdla A. Torii, M. Havlena and B. Leibe. Measuring camera translation by the dominant apical angle. In CVPR, 2008. [3] E. Boyer A. Zaharescu and R. P. Horaud.  Transformesh: a topology-adaptive mesh-based approach to surface evolution. In ACCV, 2007. [4] D. Bradley, T. Boubekeur, and W. Heidrich. Accurate multi-view reconstruction using robust binocular stereo and surface meshing. In CVPR08, pages 1–8, 2008. [5] L. Van Gool C. Strecha, R. Fransens. Wide-baseline stereo from multiple views: a probabilistic account. In CVPR, 2004. [6] L. Van Gool C. Strecha, R. Fransens. Combined depth and outlier estimation in multi-view stereo. In CVPR, 2006. [7] N.D.F. Campbell, G. Vogiatzis, C. Hernandez, and R. Cipolla. Using multiple hypotheses to improve depth-maps for multi-view stereo. In ECCV08, pages I: 766–779, 2008. [12] C. Hernandez and F. Schmitt. Silhouette and stereo fusion for 3d object modeling. In CVIU04, 2004. [13] C. Hernindez Esteban, G. Vogiatzis, and R. Cipolla.  Probabilistic visibility for multi-view stereo. In CVPR, pages 1–8, 2007. [14] A. Hornung and L.P. Kobbelt. Hierarchical volumetric multi-view stereo reconstruction of manifold surfaces based on dual graph embedding. In CVPR06, pages I: 503–510, 2006. [15] M. Kazhdan, M. Bolitho, and H. Hoppe. Poisson surface reconstruction. In SGP06, pages 61–70, 2006. [17] P. Labatut, J.P. Pons, and R. Keriven. Efficient multi-view reconstruction of large-scale scenes using interest points, delaunay triangulation and graph cuts.  In ICCV07, pages 1–8, 2007. [18] T. Pajdla. M. Jancosek. Effective seed generation for 3d reconstruction. In CVWW, 2008. [19] D. Martinec and T. Pajdla. Robust rotation and translation estimation in multiview reconstruction. In CVPR, 2007. [20] Brian Curless Hugues Hoppe Steven M. Seitz Michael Goesele, Noah Snavely. Multi-view stereo for community photo collections. In ICCV, 2007. [21] S. M. Seitz, B. Curless, J. Diebel, D. Scharstein, and R. Szeliski. A comparison and evaluation of multi-view stereo reconstruction algorithms. In CVPR, pages 519–528, 2006. [22] N. Snavely, S. M. Seitz, and R. Szeliski. Photo tourism: Exploring photo collections in 3d. In SIGGRAPH, 2006. [23] C. Strecha, W. von Hansen, L.J. Van Gool, P. Fua, and U. Thoennessen. On benchmarking camera calibration and multi-view stereo for high resolution imagery. In CVPR08, pages 1–8, 2008. [24] H. Tao and H.S. Sawhney. Global matching criterion and color segmentation based stereo. In WACV, 2000. [25] C. Zach S. Lazebnik J. M. Frahm. X. W. Li, C. C. Wu.  Modeling and recognition of landmark image collections using iconic scene graphs. In ECCV, 2008. [26] A. Zaharescu, E. Boyer, and R. Horaud.  Transformesh: A topology-adaptive mesh-based approach to surface evolution. In ACCV07, pages II: 166–175, 2007.


Herunterladen ppt "Segmentation based Multi-View Stereo"

Ähnliche Präsentationen


Google-Anzeigen