Photogrammetrie: Vorwärtsschnitt (Geodäsie/Vermessung)

Redone, Thursday, 14.03.2019, 09:40 (vor 1832 Tagen)

Hallo Zusammen,

ich hätte eine Frage aus dem Bereich Ausgleichungsrechnung in einer praktischen Anwendung in der Photogrammetrie.

Ermittelt werden soll die Kovarianzmatrix eines 3D-Punktes, der durch einen photogrammetrischen Vorwärtsschnitt im Rahmen einer vermittelnden Ausgleichung bestimmt wird. Der 3D-Punkt ist in zwei Kameras gemessen worden. Die innere und äußere Orientierung beider Kameras ist aus einer früheren Bündelblockausgleichung (BBA) bekannt.

Die Beobachtungsgleichungen sind die 4 Kollinearitätsgleichungen für die 4 Bildpunktkoordinaten x',y' und x'',y''. Berechnet man nun die Ausgleichung, so wird die Kovarianzmatrix der BBA nicht berücksichtigt, da die innere und äußere Orientierung der beiden Kameras als fehlerfrei angenommen wird, was sie ja nicht sind.

Hätte man stattdessen für jede Koordinate (X,Y,Z) des 3D-Punktes eine Gleichung der Form Koordinate = f(unsicherheitsbehaftete Bildpunktbeobachtungen, unsicherheitsbehaftete innere und äußere Orientierung), so könnte man das allgemeine Varianzforpflanzungsgesetz anwenden.

Nun ist ja der Lösungsvektor der Ausgleichung x = N^-1*AT*P*L. Die Designmatrix A enthält die Ableitungen, die ich durch symbolische Ableitung kenne. Somit könnte ich doch anhand drei obigen Gleichungen das allgemeine Varianzfortpflanzungsgesetz anwenden. Ich müsste doch nur noch die Kovarianzmatrix der BBA um die Kovarianzmatrix der 4 Bildpunktbeobachtungen (mal angenommen, ich kenne sie hinreichend genau) erweitern.

Ist das so richtig, oder gibt es einen anderen praktikableren Weg?

Alternativ könnte man ja auch die inneren und äußeren Orientierungen jeweils als eine fiktive Beobachtung in die Ausgleichung der 3D-Punkt-Bestimmung einbaun?

Avatar

Photogrammetrie: Vorwärtsschnitt

MichaeL ⌂, Bad Vilbel, Thursday, 14.03.2019, 20:56 (vor 1831 Tagen) @ Redone

Hallo,

oder gibt es einen anderen praktikableren Weg?

Eine Monte-Carlo Simulation bietet sich hier an. Die ist einfach umzusetzen und weißt keine Linearisierungsfehler auf - im Gegensatz zu Deiner Herangehensweise.

Alternativ könnte man ja auch die inneren und äußeren Orientierungen jeweils als eine fiktive Beobachtung in die Ausgleichung der 3D-Punkt-Bestimmung einbaun?

Das wäre der andere Weg, der auch funktioniert. Alternativ kannst Du aber auch das Gauß-Helmert-Modell verwenden. Bei richtiger Implementierung werden beide Varianten zum selben Ergebnis kommen.

Viele Grüße
Micha

--
applied-geodesy.org - OpenSource Least-Squares Adjustment Software for Geodetic Sciences

Tags:
Ausgleichung, Gauß-Helmert-Modell, Vorwärtsschnitt, Photogrammetrie

Photogrammetrie: Vorwärtsschnitt

Redone, Friday, 15.03.2019, 08:53 (vor 1831 Tagen) @ MichaeL

Moin MichaeL,

vielen Dank für Deine Antwort.

Ok, an Monte-Carlo hatte ich nicht gedacht. Das wäre aber wirklich ein eleganter Weg. Allerdings, wahrscheinlich für mich nicht praktikabel, da ich für eine Vielzahl von 3D-Punkten in möglichst kurzer Zeit die Kovarianzmatrix berechnen muss. Sofern ich Dich richtig verstanden habe, würde man ja dann für jeden 3D-Punkt n-mal (und n sollte groß sein) die Beobachtungen der Bildpunkte entsprechend des stoschastischen Modells und die Parameter der inneren und äußeren Orientierung beider Kameras entsprechend der Kovarianzmatrix der BBA variieren und dann die Vorwärtsschnittausgleichung durchführen. Insofern könnte diese Variante aus Performance-Gründen herausfallen.

Bei der Variante mit den fiktiven Beobachtungen bin ich dahingehend etwas unsicher, ob ich sehr ähnliche/identische Ergebnisse wie bei der Monte-Carlo-Simulation erhalte. Diese fiktiven Beobachtungen sind ja nur ein Hilfskonstrukt. Aber das kann man ja mal exemplarisch testen.

Ich habe aber nicht verstanden, wie mir das Gauß-Helmert-Modell weiterhelfen soll?

Avatar

Photogrammetrie: Vorwärtsschnitt

MichaeL ⌂, Bad Vilbel, Friday, 15.03.2019, 11:16 (vor 1831 Tagen) @ Redone

Hallo Redone,

Sofern ich Dich richtig verstanden habe, würde man ja dann für jeden 3D-Punkt n-mal (und n sollte groß sein) die Beobachtungen der Bildpunkte entsprechend des stoschastischen Modells und die Parameter der inneren und äußeren Orientierung beider Kameras entsprechend der Kovarianzmatrix der BBA variieren und dann die Vorwärtsschnittausgleichung durchführen. Insofern könnte diese Variante aus Performance-Gründen herausfallen.

Ja, dass kann sein. Es klang in Deinem ersten Posting so, als würdest Du das nur einmalig machen müssen. Wenn Du es numerisch lösen willst, dann wäre die Unscented Transformation möglicherweise eine Alternative. Das aber nur zur Vollständigkeit.

Bei der Variante mit den fiktiven Beobachtungen bin ich dahingehend etwas unsicher, ob ich sehr ähnliche/identische Ergebnisse wie bei der Monte-Carlo-Simulation erhalte.

Das hängt davon ab, wie nicht-linear Dein Problem ist. Üblicherweise wird eine lineare Approximation ausreichen und der Mehrwert der Simulation ist begrenzt.

Diese fiktiven Beobachtungen sind ja nur ein Hilfskonstrukt. Aber das kann man ja mal exemplarisch testen.

Es wäre schon eine strenge Lösung - keine Sorge. Das wird im Bereich der Netzausgleichung auch so praktiziert. Stichwort: dynamische Ausgleichung, bei der die Anschlußpunkte sowohl Beobachtungen als auch Unbekannte sind.

Ich habe aber nicht verstanden, wie mir das Gauß-Helmert-Modell weiterhelfen soll?

Das Gauß-Markov Modell, welches Du verwendest (so hatte ich es verstanden) fordert ja, dass Du jede Beobachtung als Funktion der Unbekannten darstellen kannst, d.h. f(x) = y. Wenn nun aber die Parameter der inneren Orientierung als zusätzliche Beobachtung fungieren sollen, dann hast Du ein Modell in der Form f(x,y1) = y2, wobei y1 die Parameter der inneren Orientierung enthalten und y2 die Pixelkoordinaten. Solche (impliziten) Modelle werden üblicherweise im Gauß-Helmert Modell gelöst, da hier die Forderung nach eigenständigen Funktionen für alle Beobachtungen x nicht existiert. Im Gauß-Helmert Modell hast Du dann zwei Jacobi-Matrizen. Die A-Matrix hast Du ja schon, die B-Matrix enthält dann die Ableitungen an den Beobachtungen (y1, y2). Das wäre die Alternative zu Deinen fiktiven Beobachtungen, würde aber bei korrekter Implementierung zum selben Resultat führen.

Viele Grüße
Micha

--
applied-geodesy.org - OpenSource Least-Squares Adjustment Software for Geodetic Sciences

Tags:
Unscented Transformation, Gauß-Helmert-Modell, Monte-Carlo-Simulation, Parameterschätzung, Gauß-Markov-Modell, Vorwärtsschnitt, Photogrammetrie

Photogrammetrie: Vorwärtsschnitt

Redone, Friday, 15.03.2019, 14:25 (vor 1831 Tagen) @ MichaeL

Hallo Redone,

Wenn Du es numerisch lösen willst, dann wäre die Unscented Transformation möglicherweise eine Alternative. Das aber nur zur Vollständigkeit.

Das schaue ich mir gern mal genauer an ;).

Es wäre schon eine strenge Lösung - keine Sorge. Das wird im Bereich der Netzausgleichung auch so praktiziert. Stichwort: dynamische Ausgleichung, bei der die Anschlußpunkte sowohl Beobachtungen als auch Unbekannte sind.

Diese Variante kenne ich (aus dem von Dir genannten Bereich, allerdings schon mehrere 10er Jahre her...) durchaus ganz gut. Was mich daran etwas stört ist, dass durch die Hinzunahme der inneren und äußeren Orientierung als fiktive Beobachtungen diese Parameter erneut ausgeglichen werden. Natürlich werden die Änderungen an den Größen marginal sein, da die Varianzen der fiktiven Beobachtungen sehr klein sind (kommen ja aus der BBA mit einer großen Überbestimmung). Dennoch werden die 4 Beobachtungsgleichungen (Bildpunkte) eine Änderung der inneren und äußeren Orientierung beider Kameras bewirken. Das könnte/sollte einen Einfluss auf die Kovarianzmatrix des Neupunktes (also der Submatrix der gesamten Kovarianzmatrix mit den zusätzlich ausgeglichenen inneren und äußeren Orientierungen) haben. Insofern erscheint mir "gefühlt" der Monte-Carlo-Ansatz richtiger zu sein.

Das Gauß-Markov Modell, welches Du verwendest (so hatte ich es verstanden) fordert ja, dass Du jede Beobachtung als Funktion der Unbekannten darstellen kannst, d.h. f(x) = y. Wenn nun aber die Parameter der inneren Orientierung als zusätzliche Beobachtung fungieren sollen, dann hast Du ein Modell in der Form f(x,y1) = y2, wobei y1 die Parameter der inneren Orientierung enthalten und y2 die Pixelkoordinaten. Solche (impliziten) Modelle werden üblicherweise im Gauß-Helmert Modell gelöst, da hier die Forderung nach eigenständigen Funktionen für alle Beobachtungen x nicht existiert. Im Gauß-Helmert Modell hast Du dann zwei Jacobi-Matrizen. Die A-Matrix hast Du ja schon, die B-Matrix enthält dann die Ableitungen an den Beobachtungen (y1, y2). Das wäre die Alternative zu Deinen fiktiven Beobachtungen, würde aber bei korrekter Implementierung zum selben Resultat führen.

Korrekt, ich nutze das Gauß-Markov-Modell mit 4 Kollinearitätsgleichungen. Die Bildbeobachtungen sind auf der einen Seite, die Funktion der zu schätzenden Parameter (X,Y,Z) jeweils auf der anderen Seite. Das Gauß-Helmert-Modell kenne ich bisher nur aus dem Lehrbuch (brauchte ich bisher praktisch noch nicht).

Das Beispiel mit dem Kreis aus dem Niemeier verstehe ich prinzipiell auch. Ich verstehe aber immer noch nicht, wie ich dieses Modell in meinem Fall anwenden soll? Bedingt das auch die Berücksichtigung der fiktiven Beobachtungen? Werden in diesem Fall auch die inneren und äußeren Orientierungen beider Kameras mitausgeglichen? Originär will ich diese ja gar nicht ausgleichen sondern nur deren Kovarianzmatrix bei der Ableitung der Kovarianzmatrix des Neupunktes berücksichtigen.

Wenn aber hier schlussendlich das gleiche wie beim Gauß-Markov-Modell inkl. der fiktiven Beobachtungen herauskommt ist es zumindest für mein Ergebnis ja "wurscht" :-P

Viele Grüße!

Alex

Avatar

Photogrammetrie: Vorwärtsschnitt

MichaeL ⌂, Bad Vilbel, Friday, 15.03.2019, 15:02 (vor 1831 Tagen) @ Redone

Hallo Alex,

Was mich daran etwas stört ist, dass durch die Hinzunahme der inneren und äußeren Orientierung als fiktive Beobachtungen diese Parameter erneut ausgeglichen werden.

Ja, das ist korrekt. Aber streng genommen hast Du mit den zwei neuen Bildern ja auch eine Zusatzinformation, die bei der Bestimmung der inneren und äußen Orientierung bisher unberücksichtigt blieb. Insofern erscheint es nachvollziehbar, dass sich die Werte im Rahmen ihrer Genauigkeit auch ändern dürfen. In NRW wird die dynamische Ausgleichung vom Landesvermessungsamt als empfohlene Methode angewendet. Sollten die Anschlußpunkte nur marginal variieren, so verwirft man diese Änderung. Überschreiten sie einen Grenzwert, so zeigt es letztlich, dass der AP nicht mehr invariant ist und zu überprüfen ist. Wenn diese Werte sich nicht ändern dürften (also perfekt wären), hätten sie doch keine Kovarianzmatrix.

Das könnte/sollte einen Einfluss auf die Kovarianzmatrix des Neupunktes (also der Submatrix der gesamten Kovarianzmatrix mit den zusätzlich ausgeglichenen inneren und äußeren Orientierungen) haben.

Ich dachte, Du wolltest diese Auswirkungen (also die Dispersion der Parameter) gerade berücksichtigen? Die Kovarianz ist doch letztlich die Streuung, insofern scheint es doch gerechtfertigt, dass diese Werte auch streuen dürfen.

Insofern erscheint mir "gefühlt" der Monte-Carlo-Ansatz richtiger zu sein.

Hier erzeugst Du für die innere und äußere Orientierung aber auch Zufallswerte, die um den Erwartungswert streuen im Rahmen der Genauigkeit. Hier machst Du das sogar aktiv. Nur weil Du die Änderung der inneren und äußeren Orientierung dann vielleicht nicht bestimmst, heißt dies doch nicht, dass sie nicht da wäre.

Mal ein anderes Beispiel: In einer Netzausgleichung kann man Parameter aus dem Gleichungssystem verlustfrei eliminieren. Häufig wird dies auf die Orientierung von Richtungssätzen angewandt, da diese für die Analyse nicht so aussagekräftig sind. Die Orientierung taucht in der Ausgleichung nach der Eliminierung nicht mehr explizit auf aber implizit ist sie nach wie vor im Modell vorhanden. Nur, weil man sie nicht mehr "sieht", ist sie also nicht weg. Soll heißen: Nur weil Du möglicherweise die Änderungen der inneren und äußern Orientierung nicht mehr berechnest, heißt dies nicht, dass sie nicht vorhanden sind.

Ich verstehe aber immer noch nicht, wie ich dieses Modell in meinem Fall anwenden soll?

Du stellst die A-Matrix auf, in dem Du die vier Gleichungen nach Deinen unbekannten Parametern ableitest - also nach X, Y und Z des Punktes.
Für die B-Matrix leitest Du nun partiell diese vier Gleichungen nach Deinen Beobachtungen ab. In Deinem Fall sind dies die Pixelkoordinaten und die Parameter der inneren und äußeren Orientierung. Eine Zeile in A bzw. B korrespondiert mit einem funktionalen Zusammenhang. Eine Spalte in A mit einem unbekannten Parameter. Eine Spalte in B mit einer Beobachtung (Pixelkoordinaten, innere und äußere Orientierung).

Bedingt das auch die Berücksichtigung der fiktiven Beobachtungen? Werden in diesem Fall auch die inneren und äußeren Orientierungen beider Kameras mitausgeglichen?

Da Du diese als Beobachtungen berücksichtigst, schätzt Du auch Verbesserungen für die innere und äußere Orientierung. Im Modell mit fiktiven Beobachtungen entsprechen die Parameterzuschläge für die innere und äußere Orientierung diesen Verbesserungen.

Originär will ich diese ja gar nicht ausgleichen sondern nur deren Kovarianzmatrix bei der Ableitung der Kovarianzmatrix des Neupunktes berücksichtigen.

Durch diese Matrix drückst Du aber gerade aus, dass es keine perfekten Werte sind. Folglich ergibt diese Forderung keinen Sinn.

Wenn aber hier schlussendlich das gleiche wie beim Gauß-Markov-Modell inkl. der fiktiven Beobachtungen herauskommt ist es zumindest für mein Ergebnis ja "wurscht" :-P

Sag' ich doch. ;-) In diesem Kontext vielleicht noch ein Beitrag von Koch.

Viele Grüße
Micha

--
applied-geodesy.org - OpenSource Least-Squares Adjustment Software for Geodetic Sciences

RSS-Feed dieser Diskussion