Bündelblockausgleichung konvergiert nicht (Geodäsie/Vermessung)

raptus93 @, Monday, 24.11.2014, 12:39 (vor 3441 Tagen)

Hallo Geodäten!

Selbst bin ich zwar kein Geodät (oder Geodäsist(?)) sondern CV'ler, aber dennoch möchte ich euch (als Kollektiv des geballten Wissens) mein Problem erläutern und um einen Lösungsansatz oder Ideen zur Problemfindung bitten. Zuerst mal kurz meine Vision: Ich möchte in einem Nahbereichssystem, in dem ich über Näherungswerte für Objektpunkte (3D) sowie für 2 Kamerapositionen (3D, Rotation, Translation und innere Orientierung) kenne, eine Ausgleichung durchführen. Den funktionalen Zusammenhang bilden die Kollinearitätsgleichungen, mein Beobachtungsvektor sei durch die Beobachtungen der Kameraaufnahmen gefüllt (soll heißen: Ich weiß wo Punkt A auf der Kameramatrix ist, und schreibe dieses Wissen untereinander in L). Ich setze die Näherugswerte in die Kollinearitätsgleichungen ein und erhalte L0, das nenne ich die geschätzte Beobachtung. Aus der Differenz der geschätzten Beobachtung und der Beobachtung erhalte ich l (kleines L), das nenne ich die gekürzte Beobachtung. Soweit klappt alles.

Dann stelle ich meine "Designmatrix" A auf. Dort hinein schreibe ich die linearisierten partiellen Ableitungen nach Taylor. Falls die exakte Struktur von Interesse ist, kann dazu gern weitere Informationen zur Verfügung stellen. Die Ausgleichung mache ich nun nach dem Prinzip, dass in der Diplomarbeit von Mathias Haberjahn auf Seite 26 anschaulich dargestellt ist.

Die Ausgleichung funktioniert iterativ und soll konvergieren, aber genau das tut es nicht in meiner Anwendung. Feststellen konnte ich dieses anhand der L2-Norm von x, welches die Verbesserung der Unbekannten darstellt, und eigentlich gegen Null laufen soll.

Der Übersicht halber möchte ich mich erstmal auf diese Information beschränken (viel mehr steckt auch garnicht in meinem System), ich suche jetzt jedoch nach der Lösung des Problems, und würde mich über einen regen Austausch freuen, d.h. ich beantworte auch gerne Detailfragen.

Vielen Dank für das Interesse, und viele Grüße
raptus93

Bündelblockausgleichung konvergiert nicht

raptus93 @, Monday, 24.11.2014, 12:42 (vor 3441 Tagen) @ raptus93

Hier noch der Link zur erwähnten Diplomarbeit:
Diplomarbeit Haberjahn

Avatar

Bündelblockausgleichung konvergiert nicht

MichaeL ⌂, Bad Vilbel, Monday, 24.11.2014, 13:58 (vor 3441 Tagen) @ raptus93

Hallo raptus93,

ich suche jetzt jedoch nach der Lösung des Problems, und würde mich über einen regen Austausch freuen, d.h. ich beantworte auch gerne Detailfragen.

Es gibt unterschiedliche Gründe, warum eine Ausgleichung nicht konvergiert. Das aufgestellte Gleichungssystem könnte einen Defekt haben oder (nahzu) singulär sein. In diesem Fall ist die Lösung uneindeutig und man müsste weitere Informationen einführen, um eine Lösung zu erhalten. Die eingeführten Startwerte könnten nicht ausreichen. Ein Vorzeichenfehler im Gleichungssystem; bspw. -l statt l (klein L). Es gibt also unterschiedliche Gründe für Divergenz, die sich aus Deinem geschilderten nicht genauer spezifizieren lassen.

Gruß Micha

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

Bündelblockausgleichung konvergiert nicht

raptus93, Monday, 24.11.2014, 14:23 (vor 3441 Tagen) @ MichaeL

Hallo MichaeL,

danke erstmal für die schnelle Antwort. Das es mehrere Gründe haben kann, ist denke ich allen klar. Zu den angesprochenen, möglichen Fehlerquellen möchte ich kurz Stellung nehmen:

Die eingeführten Startwerte reichen entsprechend der Literatur aus, ich werde jedoch auch diese erhöhen, um anhand einer Redundanz möglicherweise eine Konvergenz feststellen zu können. Danke für den Vorschlag. Ergebnisse folgen asap.

Einen Vorzeichenfehler kann ich mit hoher Wahrscheinlichkeit ausklammern, da es sich um verhältnismäßig wenig Code handelt, den ich verhältnismäßig häufig durchgegangen bin.

Das Aufgestellte Gleichungssystem ist in der Tat nahezu singulär. Die Kondition der Matrix beträgt ~9e-21, ist also SEEHR schwach. Wenn ich wüsste, dass es daran liegt. Momentan handelt es sich noch um ein rein virtuelles System, dh ich kann an der Objektpunktverteilung schrauben wie es mir gefällt. Wäre ein Ansatz, die Varianz der Punktverteilung zu erhöhen, um "größere" Ableitungsegebnisse zu bekommen?

Über weitere Fragen würde ich mich freuen.

Viele Grüße
raptus93

Avatar

Bündelblockausgleichung konvergiert nicht

MichaeL ⌂, Bad Vilbel, Monday, 24.11.2014, 14:43 (vor 3441 Tagen) @ raptus93

Hallo,

Die eingeführten Startwerte reichen entsprechend der Literatur aus, ich werde jedoch auch diese erhöhen, um anhand einer Redundanz möglicherweise eine Konvergenz feststellen zu können. Danke für den Vorschlag. Ergebnisse folgen asap.

Ist in Deiner vorliegenden Literatur kein Beispieldatensatz enthalten, den Du zum Validieren heranziehen könntest?

Einen Vorzeichenfehler kann ich mit hoher Wahrscheinlichkeit ausklammern, da es sich um verhältnismäßig wenig Code handelt, den ich verhältnismäßig häufig durchgegangen bin.

Ich wollte es nur angemerkt habe, da dies bei mir einer häufigsten Fehler ist, der gleichzeitig am schnellsten kontrolliert werden kann durch setzen von l = -l (klein L).

Das Aufgestellte Gleichungssystem ist in der Tat nahezu singulär.

Und das ist typisch für Dein Problem? Wird dieser Umstand also in der Literatur erwähnt oder wird in der Standardliteratur immer ein gutmütiges Gleichungssystem vorausgesetzt? Wenn letzteres der Fall ist, wäre die Frage, warum Dein System singulär ist, obwohl dies üblicherweise nicht sein dürfte.

Singularitäten können auch auftreten, wenn Du sehr große und sehr kleine Werte in der Normalgleichung hast. Hier kann eine Schwerpunktreduktion unter Umständen helfen.

Wäre ein Ansatz, die Varianz der Punktverteilung zu erhöhen, um "größere" Ableitungsegebnisse zu bekommen?

Grundsätzlich nein. Wenn Du Punkte auf einer Geraden hast, dann muss der Ausgleichungsansatz auch funktionieren, wenn all diese Punkte perfekt auf dieser Geraden liegen.

Gruß Micha

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

Bündelblockausgleichung konvergiert nicht

raptus93, Monday, 24.11.2014, 15:15 (vor 3441 Tagen) @ MichaeL

Ich wünschte es wäre ein Beispieldatensatz enthalten, da meine Aufgabe jedoch nur von sehr wenigen gelöst wurde, kann ich da nicht auf ein bestehendes System zurückgreifen. Im gleichen Zug kann ich auch sagen, dass ich nicht sagen kann, ob eine nahezu singuläre Matrix für meine Aufgabenstellung typisch ist.

"Wenn letzteres der Fall ist, wäre die Frage, warum Dein System singulär ist, obwohl dies üblicherweise nicht sein dürfte." -> Ja, das ist eine relevante Frage. Ich kann sie dir jedoch (vom jetzigen Standpunkt) nicht beantworten, werde mich aber mit der Frage auseinandersetzen. Meine Werte in N reichen von -417.09 bis 950.62, doch die meisten Werte sind 0,.. teilweise sogar -8.582500000000000e-05,

Es wird also vermutlich an der schlechten Skalierung liegen(?)

Da ich nicht weiß, was bei l = -l herauskommen muss, habe ich es grade einfach mal gemacht. Die resultierenden Diagramme ähneln den vorherigen sehr genau, ich vermute also, dass genau das passieren sollte.

Meine Vermutung ist also, dass ich an der Skalierung etwas ändern muss. Problematisch ist evtl, dass ich die äußere Orientierung von 2 Kamerapositionen ebenfalls in der gleichen Systemmatrix platziere, könnte es daran scheitern? Die Werte sind jedoch von bedeutender Ralevanz für die Lösung, ich kann also auch nicht vollkommen darauf verzichten!

Bündelblockausgleichung konvergiert nicht

raptus93, Monday, 24.11.2014, 15:29 (vor 3441 Tagen) @ raptus93

Ist es lohnenswert, die äußere Orientierung im ersten Schritt vollständig aus der Systemmatrix auszuklammern? Ist es möglich, diese in einem zweiten Schritt separat zu berechnen (nach meinem jetzigen Kenntnisstand nicht, da die Ausgleichung des gesamte System ausgleicht, inklusive der äußeren Orientierung), oder gibt es da eine Methode, wenn die Objektpunkte bereits ausgeglichen sind?

Vielen Dank Michael, du bist der erste im Internet, der mir mit meinem Problem hilft!

Bündelblockausgleichung konvergiert nicht

.seb, Monday, 24.11.2014, 15:44 (vor 3441 Tagen) @ raptus93

Hallo,

Ich habe mich auch lange Zeit mit Photogrammetrie bzw. Computer-Vision beschäftigt. Da du sagst, dass du viele Werte nahe bei 0 hast, fällt mir noch ein, dass es in Photogrammetrie-Büchern von Kraus und Luhmann eine kompakte Formeln für Sparse-nahe Matrizen gab. Ich weiß sie nicht mehr aus dem Kopf. Hierbei wurden die Koeffizienten so gestaltet, dass nur wenige Glieder in der Matrix berechnet werden mussten.
Ich habe leider kein Buch mehr zur Hand, um das nachzulesen. Bei Kraus(2004) war es im praktischen Teil verzeichnet. Mit dieser Formel würde ich dann die Matrix aufstellen.

Ist es lohnenswert, die äußere Orientierung im ersten Schritt vollständig aus der Systemmatrix auszuklammern? Ist es möglich, diese in einem zweiten Schritt separat zu berechnen (nach meinem jetzigen Kenntnisstand nicht, da die Ausgleichung des gesamte System ausgleicht, inklusive der äußeren Orientierung), oder gibt es da eine Methode, wenn die Objektpunkte bereits ausgeglichen sind?

Aber du sprichst es schon an. Es sprichts nichts dagegen die äußere Orientierung getrennt zu berechnen. Dann hast du nicht so große Matrizen, sondern kleinere einzelne. Früher wurden die Stereopaare auch erst ausgerichtet in der inneren Orientierung (Kameragehäuse) und relativen Orientierung (Paarausrichtung) und dann in das Objektkoordinatensystem überführt. Musst du mal gucken, ich hab den Namen des Verfahrens vergessen. Es war die Formform der Aerotriangulation. Erst die Errungenschaften der schnellen Computer hat dann die gleichzeitige Berechnung von innerer und äußerer Orientierung ermöglicht.

LG
Sebastian

Avatar

Bündelblockausgleichung konvergiert nicht

MichaeL ⌂, Bad Vilbel, Monday, 24.11.2014, 15:44 (vor 3441 Tagen) @ raptus93

Hallo,

"Wenn letzteres der Fall ist, wäre die Frage, warum Dein System singulär ist, obwohl dies üblicherweise nicht sein dürfte." -> Ja, das ist eine relevante Frage. Ich kann sie dir jedoch (vom jetzigen Standpunkt) nicht beantworten, werde mich aber mit der Frage auseinandersetzen. Meine Werte in N reichen von -417.09 bis 950.62, doch die meisten Werte sind 0,.. teilweise sogar -8.582500000000000e-05,

Aber es gibt keine Spalte, die (fast) Null ist? Grundsätzlich könnte man auf die Pseudoinverse zurückgreifen oder (Bedingungs-)Gleichungen hinzufügen. Die Pseudoinverse würde ich nur nutzen, wenn wirklich klar ist, warum es zu einem singulären System kommt. Der Einsatz von Bedingungen setzt voraus, dass man den Defekt der Matrix kennt. Beides scheint im Moment wohl nicht vorzuliegen...

Es wird also vermutlich an der schlechten Skalierung liegen(?)

Das könnte(!) sein. Muss aber nicht.

Da ich nicht weiß, was bei l = -l herauskommen muss,

Naja, es sollte konvergieren. ;-) Also

dx = -A\l

statt

dx = A\l

Die resultierenden Diagramme ähneln den vorherigen sehr genau, ich vermute also, dass genau das passieren sollte.

Nein. Wenn dies der wirkliche Fehler war/ist, dann sollte es einmal konvergieren und einmal divergieren. In keinem Fall kann das selbe herauskommen.

Problematisch ist evtl, dass ich die äußere Orientierung von 2 Kamerapositionen ebenfalls in der gleichen Systemmatrix platziere, könnte es daran scheitern?

Aus dem Bauch heraus, sollte dies kein Problem sein. Du verwendest hier ja bekannte Passpunkte, um die Orientierung zu schätzen. Konvergiert Dein System denn, wenn Du nur die äußere Orientierung einer Kameraposition bestimmst?

Eine Frage habe ich noch zu Deiner Aussage:

Näherungswerte für Objektpunkte

aus Deinem Eingangsposting. Sollen in Deinem Gleichungssystem die Objektpunkte mitbestimmt/geschätzt werden und dienen diese Objektpunkte gleichzeigt auch zur Bestimmung der äußeren Orientierung? Wenn ja, dann ist dies das Problem.


Gruß Micha

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

Bündelblockausgleichung konvergiert nicht

raptus93, Monday, 24.11.2014, 16:09 (vor 3441 Tagen) @ MichaeL

Das Zeit-Raum-Kontinuum habe ich noch nicht überwunden (soll heißen ich konnte noch nicht alles genau untersuchen, aber vielen Dank schonmal für die vielen Hinweise, auch an dich, Sebastian), aber der letzte Satz grade machte mich stutzig. Du hast vollkommen recht, mein Plan ist:
Ich will aus den genäherten Objektpunkten mittels Ausgleichung auf die äußere Orientierung schließen. Auch für die äußere Orientierung habe ich Näherungswerte. Ich gehe seit Beginn meines Projektes davon aus, dass das möglich ist, jetzt grade ändert sich das :-)

Eins will ich noch erwähnen: Ich bin maximal durchschnittlicher Mathematiker, meine Leidenschaft ist die Informatik. Ich studiere im 5. Semester und habe keine Angst vor neuen Themen, brauche aber oft eine ganze Weile, um sie nachzuvollziehen. Soll nicht heißen, dass ich euch bitte, mit mir wie mit einem Idioten zu reden :-D

Viele Grüße,
raptus93

Avatar

Bündelblockausgleichung konvergiert nicht

MichaeL ⌂, Bad Vilbel, Monday, 24.11.2014, 16:42 (vor 3441 Tagen) @ raptus93

Hi,

Ich will aus den genäherten Objektpunkten mittels Ausgleichung auf die äußere Orientierung schließen.

Das ist kein Problem. Kritisch wird es, wenn Du diese Objektpunkte gleichzeitig auch bestimmen willst. Aus der äußeren Orientierung leitest Du schließlich die genauen Positionen für die Objektpunkte her. Du änderst damit also deren Koordinaten. Folglich ändert sich auch die Orientierung, da diese ja auf den Objektpunkten beruht, usw. - ein Endloskreislauf.

Auch für die äußere Orientierung habe ich Näherungswerte.

Näherungswerte sind dann nicht das Problem, sondern dass Du das "Datum" Deines Systems nicht definiert ist.

Schöne Grüße
Micha

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

Bündelblockausgleichung konvergiert nicht

raptus93, Tuesday, 25.11.2014, 09:43 (vor 3440 Tagen) @ MichaeL

Hallo!

Vielen Dank für die vielen ausführlichen Ideen!
Michael, ich denke ich werde erstmal deinen Ansatz verfolgen, dazu habe ich aber noch ein paar Fragen:
Zum "Datum" - ist der gleiche Begriff gemeint, den Luhmann so beschreibt:
"Die Festlegung des Koordinatenursprungs, der Koordinatenrichtungen und gegebenenfalls des Maßstabes bezeichnet man auch als (geodätisches) Datum."?

"Problem ist, dass das Datum des Systems nicht definiert ist" -> Das Datum im Sinne Luhmanns steckt doch in der äußeren Orientierung, oder?

Ich denke, ich bin ein bisschen verstrickt in den ganzen Kram, und will mich hiermit jetzt mal "out-of-the-box" setzen. Ich will die äußere Orientierung von 2 Kameras bestimmen. Alles andere ist schön und gut, aber thematisch irrelevant. Lässt es sich ausklammern, dann sei es so! Gegeben habe ich Näherungswerte für die Ä.O., sowie für eine Anzahl von Objektpunkten.

Bei der Bündelblockausgleichung wäre ich zufrieden, wenn sie sich nur auf die äußere Orientierung beschränkt. Eine Systemmatrix A wäre damit n x u, mit n = 4 * Anzahl Der Objektpunkte und u = 12 -> 6 Parameter pro Kamera: X0,Y0,Z0,omega,phi,kappa

In die Systemmatrix schreibe ich die partiellen Ableitungen der (nach Taylor) linearisierten Kollinearitätsgleichungen zB Kamerakoordinate x abgeleitet nach kappa des zugehörigen Projektors.

So.. dann habe ich eine Matrix die so aussieht (G - gefüllt, 0 - Nullelement):
A = [...
G G G G G G 0 0 0 0 0 0;
G G G G G G 0 0 0 0 0 0;
0 0 0 0 0 0 G G G G G G;
0 0 0 0 0 0 G G G G G G;
G G G G G G 0 0 0 0 0 0;
usw..
];

In l schreibe ich die gekürzte Beobachtung wie in meinem ersten Post beschrieben.
Ist dann das Verfahren der obigen Diplomarbeit p.26 zielführend? Meine genäherten Objektkoordinaten würden ja GARNICHT mehr ins System einfließen, ist das kein Problem?

Soll ich diesen Ansatz verfolgen? Ich bitte um noch weitere Unterstützung, und bin wirklich dankbar für die bisherige.

Avatar

Bündelblockausgleichung konvergiert nicht

MichaeL ⌂, Bad Vilbel, Tuesday, 25.11.2014, 10:25 (vor 3440 Tagen) @ raptus93

Hi,

Zum "Datum" - ist der gleiche Begriff gemeint, den Luhmann so beschreibt:
"Die Festlegung des Koordinatenursprungs, der Koordinatenrichtungen und gegebenenfalls des Maßstabes bezeichnet man auch als (geodätisches) Datum."?

Ja, es definiert also Dein Koordinatensystem, für welches Du die Orientierung Deiner Kamera suchst. Die Realisierung dieses Koordinatensystem geben idR. Stützpunkte vor. In Deinem Fall sind dies wohl die Objektpunkte.

"Problem ist, dass das Datum des Systems nicht definiert ist" -> Das Datum im Sinne Luhmanns steckt doch in der äußeren Orientierung, oder?

Durch die Bestimmung der äußeren Orientierung weißt Du, wo sich Deine Kamera bezogen auf das "Weltkoordinatensystem" befindet. Wenn Du die Orientierung kennst, kannst Du damit Punkte bestimmen; um die Orientierung abzuleiten, musst Du aber erst einmal Punkte vorgeben.

Gegeben habe ich Näherungswerte für die Ä.O., sowie für eine Anzahl von Objektpunkten.

Der Begriff Objektpunkte impliziert bei mir, dass Du die Punkte lediglich näherungsweise kennst. Zur Bestimmung der äußeren Orientierung brauchst Du aber feste/bekannte Punkte. Also Punkte, von denen Du nicht nur näherungsweise die Koordinaten kennst.

Ist dann das Verfahren der obigen Diplomarbeit p.26 zielführend? Meine genäherten Objektkoordinaten würden ja GARNICHT mehr ins System einfließen, ist das kein Problem?

Doch, sie sind doch in l enthalten.

Gruß Micha

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

Bündelblockausgleichung konvergiert nicht

raptus93, Tuesday, 25.11.2014, 11:14 (vor 3440 Tagen) @ MichaeL

Jap, danke!

Ich hab das System bisher so verstanden, dass alle Unbekannten ausgeglichen werden:
[image]

Das heißt, ich muss meine Objektpunkte erst um die äußere Orientierung der Kamera verschieben und rotieren? Die Kollinearitätsgleichungen beschreiben die Kamerapunkte doch in Abhängigkeit der Ä.O.!?

Meine Objektpunkte habe ich im WKS, wie auch die Ä.O. der Kameras, nur die Bildpunkte beschreibe ich im KKS. Ist das nicht korrekt, im Anbetracht des Charakters der Kollinearitätsgleichugen? (Eingabe: ObjPkte, IO, ÄO (im WKS) - Ausgabe Bildpunkte im KKS).

Ich will mich noch für die partielle Doofheit meiner Fragen entschuldigen, ich arbeite gleichermaßen an mir wie an der Ausgleichung, doch ich glaube, dass es keinen Königsweg zur Mathematik gibt, wie Euklid schon sagte.

Jetzt mache ich mich mal etwas konzentrierter und voller neuer Ansätze an die Arbeit, ein fettes Dankeschön ist nicht genug. Würde ich nicht grade 300 km weiter nördlich wohnen als du Michael, würde ich dich sowas von auf ein Bier einladen!

Ich werde mich mit weiteren Fragen oder bei Ergebnissen hier wieder melden, bis dahin verabschiede ich mich schonmal.

Gruß, raptus93

Bündelblockausgleichung konvergiert nicht

Barny.G, Monday, 24.11.2014, 20:03 (vor 3441 Tagen) @ raptus93

Rein aus Neugier habe ich mal Deine Frage gelesen. Ein Gedanke kam mir sogleich, der allerdings die (positive) Beantwortung einer/zweier Frage voraussetzt:

Konvergiert Dein System überhaupt nicht? Nicht wenigstens einen Iterationsschritt?

Es gibt da verschiedene Quellen des Ärgers die mir dazu einfallen:

- die Beträge des Modellvektors streuen über mehrere Dekaden
- die Beträge des Datenvektors (Messwerte) streuen über mehrere Dekaden

und natürlich die Singularitäten, die schon erwähnt wurden. Dazu folgendes - auch ich hatte ein solches Problem zu lösen und habe es zuverlässig mathematisch in den Griff bekommen indem ich

1) eine Regularisierung (\lambda)
2) eine Schrittweitenbegrenzung (\alpha \in (0,1] )

eingeführt habe. Das zur Iteration verwendete Gleichungssystem hat(te) dann die Struktur

m_{k+1} = m_k + \alpha (J^\top J + \lambda I)^{-1} J^\top \Delta d \hspace{20pt}  mit  \hspace{20pt} \Delta d = F(m_k) - d

wobei

J ... Jacobimatrix = Matrix der ersten Ableitungen (Linearisierungen)
F(m_k) ... Vorwärtsoperator F, angewandt auf m_k = Berechnung mit Näherungswerten
m ... Modellvektor = Vektor der Parameter
I ... Einheitsmatrix

Die Theorie dazu ist ein wenig komplizierter, aber vielleicht löst die vorgeschlagene Iteration ja Dein akkutes Problem.

Zunächst würde ich eine Schrittweitenbegrenzung mit \alpha = 0.5 (oder kleiner) testen und sehen, ob es dann mindestens einen Schritt weit konvergiert...

Viele Grüße

Thomas

Bündelblockausgleichung konvergiert nicht

raptus93, Tuesday, 25.11.2014, 09:56 (vor 3440 Tagen) @ Barny.G

Hallo Barny!

Auch dir: Danke.
"Konvergiert Dein System überhaupt nicht? Nicht wenigstens einen Iterationsschritt?"

Doch es konvergiert. Gelegentlich. Die Kurve, die die L2 Norm des Fehlers beschreibt, sieht aus wie stetige Aktienkurse, es pendelt um einen Wert.

Ich mache mal folgende Annahmen:
"Datenvektor" meint die Beobachtungen, also nach obiger Diplarbeit L (p.26)
"Modellvektor" meint die geschätzte Beobachtung L0 (?)
"Über mehrere Dekaden" meint über verschiedene 10er. Das ist der Fall, lässt sich aber durch die Änderung der Einheiten (problemarm) ändern

Diesen Schritt werde ich angehen, da er verhältnismäßig weniger Aufwand nach sich zieht, sollte das nicht klappen, gehe ich zur Regularisierung und zur Schrittweitenbegrenzung. Dazu habe ich auch gleich schon zwei Fragen:

Was bedeutet Regularisierung? Gibt es eine Möglichkeit, das (anschaulich) im Kontext zu erklären?

Zur Schrittweitenbegrenzung: Mir ist klar, dass du mein System nicht kennst, aber die Ausgleichung entspricht momentan 1:1 Haberjahn Ausgleichung, bezogen auf das funktionale Modell. An welcher Stelle wird da eine Schrittweite gesetzt? Wenn keine gesetzt wird, ist sie immer 1?

"Die Theorie dazu ist ein wenig komplizierter, aber vielleicht löst die vorgeschlagene Iteration ja Dein akutes Problem."

Ja, "ein wenig" :-D
Sollte ich das Problem auf die Kette kriegen, laufe ich wohl Gefahr, Größenwahnsinnig zu werden! :-P

Viele Grüße,
raptus93!

Avatar

Bündelblockausgleichung konvergiert nicht

MichaeL ⌂, Bad Vilbel, Tuesday, 25.11.2014, 10:13 (vor 3440 Tagen) @ raptus93

Hi,

Was bedeutet Regularisierung? Gibt es eine Möglichkeit, das (anschaulich) im Kontext zu erklären?

Das Du aus einem singulären System ein reguläres machst, sodass die Inverse definiert ist. Das vorgeschlagene Verfahren beruht auf dem Levenberg-Marquardt-Algorithmus. Dennoch halte ich es hier für unangemessen. Nehmen wir an, Du hast eine Strecke und einen Winkel gemessen, sodass Du - ausgehen von einem bekannten Standpunkt - einen weiteren Punkt bestimmen kannst über polares Anhängen. Es scheint offensichtlich, dass es nicht möglich ist, auch den Standpunkt durch die gegeben Messungen (1 Strecke und 1 Winkel) zu bestimmen. Dein Gleichungssystem wäre demnach singulär.

Auch wenn Du Wiederholungsmessungen einführst, um die Grundforderung von n≥u zu erfüllen, wird dies nicht zu einem eindeutig lösbaren System führen. Die Modifikation von Levenberg (und später Marquardt) führt auf eine Normalgleichung M (in Deiner Notation mit A als Jacobi-Matrix mit den Ableitungen)

M = N + \lambda I

mit

N = A^T A

und I=Einheitsmatrix. Für jedes λ > 0 ist dieses Gleichungssystem regulär. Wenn λ → 0 erhält man eine Lösung, die man aus einer normalen Ausgleichung erhalten würde. Für λ → ∞ wechselt der Algorithmus in das Gradienten-Verfahren, da der Einfluss von A keine Rolle mehr spielt.

Auch wenn das Gleichungssystem lösbar wird, erscheint mir ein Ansatz, der Ursachenorientiert arbeitet, hier sinnvoller.

Schöne Grüße
Micha

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

Bündelblockausgleichung konvergiert nicht

raptus93, Tuesday, 25.11.2014, 10:22 (vor 3440 Tagen) @ MichaeL

Ich habe oben noch direkt auf deine Aussage geantwortet.
In der Annahme, dass du es vielleicht nicht gesehen hast:
Über einen Antwort darauf wäre ich auch noch sehr erfreut!!

Gruß!

Bündelblockausgleichung konvergiert nicht

raptus93, Tuesday, 25.11.2014, 10:38 (vor 3440 Tagen) @ raptus93

<a href="http://www.pixentral.com/show.php?picture=1oSaU8woLAgQGBih6vOfB0DbuNXKO"/><img alt="Picture hosted by Pixentral" src="http://www.pixentral.com/hosted/1oSaU8woLAgQGBih6vOfB0DbuNXKO_thumb.jpg" border="0"/></a>

So sieht übrigens die L2-Norm des Verbesserungsvektors x aus..

Bündelblockausgleichung konvergiert nicht

raptus93, Tuesday, 25.11.2014, 11:27 (vor 3440 Tagen) @ MichaeL

Jap, danke!

Ich hab das System bisher so verstanden, dass alle Unbekannten ausgeglichen werden:
[image]

Das heißt, ich muss meine Objektpunkte erst um die äußere Orientierung der Kamera verschieben und rotieren? Die Kollinearitätsgleichungen beschreiben die Kamerapunkte doch in Abhängigkeit der Ä.O.!?

Meine Objektpunkte habe ich im WKS, wie auch die Ä.O. der Kameras, nur die Bildpunkte beschreibe ich im KKS. Ist das nicht korrekt, im Anbetracht des Charakters der Kollinearitätsgleichugen? (Eingabe: ObjPkte, IO, ÄO (im WKS) - Ausgabe Bildpunkte im KKS).

Ich will mich noch für die partielle Doofheit meiner Fragen entschuldigen, ich arbeite gleichermaßen an mir wie an der Ausgleichung, doch ich glaube, dass es keinen Königsweg zur Mathematik gibt, wie Euklid schon sagte.

Jetzt mache ich mich mal etwas konzentrierter und voller neuer Ansätze an die Arbeit, ein fettes Dankeschön ist nicht genug. Würde ich nicht grade 300 km weiter nördlich wohnen als du Michael, würde ich dich sowas von auf ein Bier einladen!

Ich werde mich mit weiteren Fragen oder bei Ergebnissen hier wieder melden, bis dahin verabschiede ich mich schonmal.

Gruß, raptus93

Avatar

Bündelblockausgleichung konvergiert nicht

MichaeL ⌂, Bad Vilbel, Tuesday, 25.11.2014, 11:38 (vor 3440 Tagen) @ raptus93

Hi,

Ich hab das System bisher so verstanden, dass alle Unbekannten ausgeglichen werden:

Das ist korrekt. Aber Deine Passpunkte kennst Du im WKS mit unendlicher Genauigkeit (Perfekte Koordinaten). Von diesen Passpunkten kennst Du das jeweilige Pendant auch im KKS. Über diese Passpunkte bestimmst Du nun die äußere Orientierung. Mithilfe dieser kommst Du von Deinen übrigen Bildkoordinaten zu Koordinaten im WKS.

Da ich in meinem letzten Posting schon drauf hingewiesen habe, dass der Begriff "Objektpunkte" mißverständlich ist, solltest Du diesen vielleicht mal definieren.

Meine Objektpunkte habe ich im WKS, wie auch die Ä.O. der Kameras, nur die Bildpunkte beschreibe ich im KKS.

Das ist korrekt. Du benötigst aber auch homologe Punkte. Also Punkte, deren Koordinaten Du im WKS und KKS kennst. Nur diese Passpunkte sind zur Bestimmung der Orientierung notwendig.

Schöne Grüße
Micha

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

Bündelblockausgleichung konvergiert nicht

raptus93, Tuesday, 25.11.2014, 13:24 (vor 3440 Tagen) @ MichaeL

Da ich mein System momentan noch rein virtuell aufstelle, sind meine "Objektpunkte" homologe Punkte in dem Sinne, dass ich von jedem Punkt P im WKS 4 zugehörige Koordinaten im Kamerakoordinatensystem habe, die diesen Punkt beschreiben. Daher rührt die Überbestimmtheit, denn ich kann somit 4 Gleichungen für 3 Unbekannte aufstellen.

Ja, ich kenne die Werte der Objektpunkte mit unendlicher Genauigkeit im WKS, aber diese Werte dürfen nicht in das System einfließen, denn in der Realität habe ich diese Werte ja auch nicht. In der Realität habe ich lediglich Näherungswerte (diese berechne ich durch einen Strahlenschnitt auf Basis von den Näherungswerten der äußeren Orientierung), die schon halbwegs passen. Die exakten Werte sind nur zur späteren Verifikation (oder Validierung? - verwechsle das immer) geeignet.

Also ich muss zugeben, dass ich durch deine Postings nicht mehr so ganz durchblicke. Ich will mein System nochmal kurz beschreiben, um da weitere mögliche Brandherde sichtbar zu machen:

Erzeugung 20 exakter homologer Punkte mit Zufallsfaktor, so dass sie zwischen
-1<X<1
-1<Y<1
3<Z<4
liegen und abspeichern (im WKS).

Erzeugung von Näherungswerten, erneut im WKS mit Zufallswert mit einer Mindestgenauigkeit von 0.01 (größter möglicher Abstand zum echten Punkt).

Berechnung der Abbildungen der exakten Objektpunkte (im KKS).
Diese Werte werden untereinander geschrieben in L.
Sinn: Im realen System später habe ich die genauen Abbildungspunkte, aber nicht die Objektpunkte. Dieser Nutzen der exakten Werte sei dadurch "legitimiert".

Berechnung der Abbildungen der genäherten Objektpunkte (im KKS).
Diese Werte werden untereinander geschrieben in L0.

Bildung von l durch l = L - L0;

Bildung von A durch die partiellen Ableitungen nach diesem Prinzip.
[image]

Dann wird mit
N = A' * A;
die Normalmatrix bestimmt,

n = A' * l;
-> x = inv(N) * n;
v = A*x - l;
beschreibt die Verbesserung der Beobachtungen
l = l + v;
L = L + v;
und
X0 = X0 + x;
die Verbesserung der Näherungswerte.

die L2-Norm von x nutze ich dann als Fehlermaß, denn die Verbesserungen der Unbekannten müssten ja nach i Iterationen kleiner werden.

L2Norm(x) trage ich gegen i auf und erhalte:

[image]

Und das stört mich. Habe ich dir jetzt mehr Informationen mit signifikanter Relevanz liefern können? Kann das System vom Prinzip her so bleiben?

Avatar

Bündelblockausgleichung konvergiert nicht

MichaeL ⌂, Bad Vilbel, Tuesday, 25.11.2014, 13:44 (vor 3440 Tagen) @ raptus93

Hi,

wir gehen es mal Schritt für Schritt durch. Du nutzt die Kollinearitätsgleichungen:


x - x_0=  -c\ \frac{R_{11} (X-X_0)+ R_{21}(Y-Y_0) + R_{31} (Z-Z_0)}
{R_{13}(X-X_0) + R_{23} (Y-Y_0) + R_{33} (Z-Z_0)}

und

y - y_0=  -c\ \frac{R_{12} (X-X_0)+ R_{22}(Y-Y_0) + R_{32} (Z-Z_0)}
{R_{13}(X-X_0) + R_{23} (Y-Y_0) + R_{33} (Z-Z_0)}

Hiervon setzten wir die innere Orientierung (x0/y0/z0 und c) als bekannt voraus.

Bestimmen willst Du die Drehwinkel und die Translation T=[X0/Y0/Z0]. Die Winkel stecken in den mit R bezeichneten Elementen, die zusammengesetzt eine Rotationsmatrix beschreiben.

Du kennst im Bild die x und y-Werte eines Punktes (Pixelkoordinaten im KKS) und die X,Y und Z Koordinaten des selben Punktes im WKS. Wir nennen dies beiden Punkte ein homologes Punktpaar (Passpunkt). Dir liegen mind. 3 solcher Passpunkte vor. Pro Passpunkt hast Du somit zwei Gleichungen - eine für x und eine für y. Bei 3 Passpunkten wären dies also 6 Gleichungen.

Sind wir soweit noch konform?

Gruß
Micha

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

Bündelblockausgleichung konvergiert nicht

raptus93, Tuesday, 25.11.2014, 13:59 (vor 3440 Tagen) @ MichaeL

Hiervon setzten wir die innere Orientierung (x0/y0/z0 und c) als bekannt voraus.

Jap. c = 2, x0 = y0 = 0;

Bestimmen willst Du die Drehwinkel und die Translation T=[X0/Y0/Z0].

Jap. Aber nicht dadurch, dass ich genaue X, Y und Z habe. Nur ungefähre Werte, ich weiß aber genau, wo sie (die exakten Werte) abgebildet werden.

Du kennst im Bild die x und y-Werte eines Punktes (Pixelkoordinaten im KKS) und die X,Y und Z Koordinaten des selben Punktes im WKS. Wir nennen dies beiden Punkte ein homologes Punktpaar (Passpunkt). Dir liegen mind. 3 solcher Passpunkte vor. Pro Passpunkt hast Du somit zwei Gleichungen - eine für x und eine für y. Bei 3 Passpunkten wären dies also 6 Gleichungen.

Mir liegen diese Punkte nicht vor (im WKS), sondern nur deren Abbildungen.
Darum brauche ich eine Ausgleichung, denn sonst wäre ja möglich, vollständig darauf zu verzichten (oder?).

Sind wir soweit noch konform?

Tut mir leid, aber ich glaube bereits in diesem allerersten Schritt verstehe ich dich oder du mich falsch.

Langsam wirds richtig spannend!

Gruß, raptus93

Avatar

Bündelblockausgleichung konvergiert nicht

MichaeL ⌂, Bad Vilbel, Tuesday, 25.11.2014, 14:12 (vor 3440 Tagen) @ raptus93

Hi,

Bestimmen willst Du die Drehwinkel und die Translation T=[X0/Y0/Z0].

Jap. Aber nicht dadurch, dass ich genaue X, Y und Z habe. [...] Mir liegen diese Punkte nicht vor (im WKS), sondern nur deren Abbildungen.

Du hast also gar keine Passpunkte? Schau Dir noch einmal Dein Schema an. Ohne Passpunkte kannst Du keine Transformationsparameter (äußere Orientierung) schätzen.

Darum brauche ich eine Ausgleichung, denn sonst wäre ja möglich, vollständig darauf zu verzichten (oder?).

Nein, nehmen wir an, Du hast 50 Passpunkte. Dein Gleichungssystem wäre demnach überbestimmt. Die Ausgleichung würde Dir dann die Wahrscheinlichste Lösung für die äußere Orientierung liefern. Die Ausgleichung wäre nur überflüssig, wenn Pixelkoordinaten und die zugehörigen Punkte im WKS exakt aufeinander Passen würden. Durch Messfehler wird dies aber idR. nicht der Fall sein.

Sind wir soweit noch konform?

Tut mir leid, aber ich glaube bereits in diesem allerersten Schritt verstehe ich dich oder du mich falsch.

Macht ja nichts. Aber zumindest grenzen wir die Problemursache schon mal ein und suchen nicht am falschen Ende. Die Ausgleichung selbst ist ja gar nicht das Problem. Das Problem ist Dein funktionales Modell, welches Du bisher nicht näher spezifiziert hast. Die von mir gezeigten Kollinearitätsgleichungen setzten bekannte Passpunkte voraus, um aufgelöst zu werden (oder alternativ eine bekannte äußere Orientierung). Du kannst aus dem Satz des Pythagoras auch nicht von c auf a und b schließen. Du wirst mindestens noch a oder b vorgeben müssen.

Gruß
Micha

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

Bündelblockausgleichung konvergiert nicht

raptus93, Tuesday, 25.11.2014, 14:33 (vor 3440 Tagen) @ MichaeL

Hallo!

Du hast also gar keine Passpunkte? Schau Dir noch einmal Dein Schema an. Ohne Passpunkte kannst Du keine Transformationsparameter (äußere Orientierung) schätzen.

Nein, in dem Sinne von exakten Werten habe ich keine Passpunkte.
Ich habe aber Schätzwerte, die ich bisher für ausreichend hielt. D.h. sie beinhalten einen Fehler, wie es auch bei gemessenen Passpunkten mit Messfehlern der Fall ist. Dementsprechend (abgesehen von der Güte) ist das Prinzip doch dasselbe? Nach dem Motto: Ob es nun falsch ist, weil ich die fehlerbehaftet gemessen habe, oder weil ich die nur geschätzt habe, ist das selbe.

Die Ausgleichung wäre nur überflüssig, wenn Pixelkoordinaten und die zugehörigen Punkte im WKS exakt aufeinander Passen würden. Durch Messfehler wird dies aber idR. nicht der Fall sein.

Jap!

Sind wir soweit noch konform?

Tut mir leid, aber ich glaube bereits in diesem allerersten Schritt verstehe ich dich oder du mich falsch.

Du kannst aus dem Satz des Pythagoras auch nicht von c auf a und b schließen. Du wirst mindestens noch a oder b vorgeben müssen.

Schöner Vergleich. Ich versuche nochmal zu rechtfertigen, warum das in diesem Fall gehen müsste (könnte), meiner Auffassung nach, indem ich Haberjahn zitiere:
Ich habe pro Objektpunkt 4 Bildpunkte, "dieser entscheidende vierte, linear unabhängige Messwert führt zu einer Überbestimmung der Kollinearitätsgleichungen. Mit Hilfe des Ausgleichungssatzes ist es nun möglich, unter Hinzunahme mehrerer Messpunkte (jeweils vier Gleichungen), ein linearisiertes Normalgleichungssystem aufzustellen, welches die gesuchten Orientierungsparameter liefert.[...] Das Modell, das die verschiedenen Ansichten (Strahlenbündel) auf ein Objektpunkt mathematisch in Form der Kollinearitätsgleichungen vereint, mit dem Ziel der Koordinaten- und Orientierungsbestimmung, ist der Bündelblockausgleich[...]"

Gruß!

Avatar

Bündelblockausgleichung konvergiert nicht

MichaeL ⌂, Bad Vilbel, Tuesday, 25.11.2014, 15:13 (vor 3440 Tagen) @ raptus93

Hi,

Nein, in dem Sinne von exakten Werten habe ich keine Passpunkte.

Nehmen wir sie für einen Moment als ausreichend genau an. Dann bist Du mit Hilfe dieser Punkte in der Lage, die äußere Orientierung einer Kameraposition zu bestimmen. Funktioniert das bei Dir?

Schöner Vergleich. Ich versuche nochmal zu rechtfertigen, warum das in diesem Fall gehen müsste (könnte), meiner Auffassung nach, indem ich Haberjahn zitiere: [...]

Das mißverstehst Du meiner Meinung nach. Ja, es ist korrekt, dass Du die äußere Orientierungen aus einem Bildverband für die Kamerapositionen aus Punkten ableiten kannst, die in mehreren Bilder vorhanden sind. Dies bedeutet aber nicht, dass Du vollständig auf vorab bekannte Punkte im WKS verzichten kannst.

Du kannst es Dir vielleicht sequenziell besser vorstellen:

Nehmen wir an, Du hast drei bekannte Punkte im WKS. Über diese drei Punkte kannst Du die erste Kameraposition orientieren. Hierdurch ist es Dir möglich, Punkte auf einem Objekt bspw. einem Haus zu bestimmen, deren Koordinaten Du vorher nicht im WKS hattest.
Nun möchtest Du die äußere Orientierung eines zweiten Kamerastandpunktes bestimmen, von dem Du die ursprünglichen drei bekannten Punkte jedoch nicht siehst, aber das Haus. Über die Punkte am Haus, könntest Du aber auch hier die Orientierung ableiten. Für die zweite Position wären demnach keine Punkte nötig, die Du vorab schon kanntest - wohl aber Passpunkte (hier das Haus). Die äußere Orientierung Deiner zweiten Position hängt also von der Güte der ersten Orientierung ab und das Datum wird durch die drei bekannten Punkte im WKS beschrieben.

Anderes Beispiel: Du hast wiederum drei bekannte Punkte im WKS. Von jeder Kameraposition konntest Du nur einen der Punkte sehen. Du kannst demnach die äußere Orientierung für eine Position nicht bestimmen. Wenn Du aber zunächst die Kamerapositionen relativ zueinander bestimmst, hast Du in der Summe auch Pixelkoordinaten für alle drei WKS-Punkte vorliegen und kannst die äußeren Orientierungen (den absoluten Bezug) bestimmen.

Gruß Micha

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

Bündelblockausgleichung konvergiert nicht

raptus93, Tuesday, 25.11.2014, 16:22 (vor 3440 Tagen) @ MichaeL

Nehmen wir sie für einen Moment als ausreichend genau an. Dann bist Du mit Hilfe dieser Punkte in der Lage, die äußere Orientierung einer Kameraposition zu bestimmen. Funktioniert das bei Dir?

Gut, das heißt, dass meine gekürzte Beobachtung jetzt nicht mehr
l = L - L0
ist, sondern
l = L0,
richtig? Ich bin mir grade nicht sicher, wie ich testen kann, ob es mit "exakten" Werten geht!

Das mißverstehst Du meiner Meinung nach. Ja, es ist korrekt, dass Du die äußere Orientierungen aus einem Bildverband für die Kamerapositionen aus Punkten ableiten kannst, die in mehreren Bilder vorhanden sind. Dies bedeutet aber nicht, dass Du vollständig auf vorab bekannte Punkte im WKS verzichten kannst.

Okay.. das bedeutet, philosophisch gesehen, dass mein gesamtes System humbug ist, wenn ich es richtig verstehe. Ich habe definitiv keine exakten Punkte im WKS, deren Abbildung ich kenne. Dennoch bin ich davon überzeugt, dass es geht, Grund ist das Kapitel zur Selbstkalibrierung von Seite 21 bis Seite 23. Ich möchte dich bitten, sie kurz zu lesen oder zu überfliegen. Ich hoffe es kommt so rüber, wie ich es mir denke: Als gesunde Skepsis, und nicht als Zweifel an deinem Wissen.

Du kannst es Dir vielleicht sequenziell besser vorstellen:[...]

Gut, ich verstehe beide Beispiele, auch wenn mir die Idee hinter dem zweiten Beispiel bisher neu war. Ich möchte es auch mal versuchen:

Stell dir vor, du hast einen Haufen Unbekannte, sagen wir 100 Stück. Außerdem hast du einen Haufen Bekannte, sagen wir 150 Stück, diese sind jedoch durch die Messungen fehlerbehaftet, aber nur ein bisschen. Es herrscht ein funktionaler Zusammenhang zwischen den Unbekannten und den Bekannten, d.h. du kannst die Unbekannten in eine Funktion einsetzen, und der Funktionsoutput beschreibt deine Bekannten. Jetzt rätst du deine Unbekannten (Näherungswerte für Obj Pkte), setzt sie ein, und schaust, ob das rauskommst, was du willst. Wenn nicht, drehst du an den Reglern, und schaust was dann rauskommt. Wenn eine Verbesserung stattgefunden hat, kann es Sinn machen, sich weiter in diese Richtung zu bewegen.

Diese kindische Formulierung habe ich eher gewählt, um es mir selbst nochmal klar zu machen. Dieser Philosophie glaube ich momentan noch, es werden keine genauen Werte vorausgesetzt, sondern reine Näherungswerte.

Gruß!

Avatar

Bündelblockausgleichung konvergiert nicht

MichaeL ⌂, Bad Vilbel, Tuesday, 25.11.2014, 16:52 (vor 3440 Tagen) @ raptus93

Hi,

richtig? Ich bin mir grade nicht sicher, wie ich testen kann, ob es mit "exakten" Werten geht!

Nein, l bleibt wie es war. Zum Testen kannst Du folgendes machen:
1. Geb' Dir bitte für die äußere Orientierung Werte vor.
2. Geb' Dir für mind. 3 Punkte X,Y und Z im WKS vor.
3. Rechne mittels 1. und 2. die Pixelkoordinaten aus.
(4. lege ein Rauschen auf die Pixelkoordinaten)

nun hast Du die perfekte Ausgangssituation. Versuche nun mittels Ausgleichung die äußere Orientierung aus den Punkten von 1. und 3. (bzw. 4.) zurück zu bestimmen. Funktioniert das?

Okay.. das bedeutet, philosophisch gesehen, dass mein gesamtes System humbug ist, wenn ich es richtig verstehe.

Nein, das nicht. Es funktioniert ja, aber Du musst über das Datum verfügen. Entweder, indem Du WKS-Punkte einführst oder indem Du die äußere Orientierung von einer Kameraposition als gegen annimmst und alle anderen relativ zu dieser bestimmst. (Oder Du eine Bedingungsmatrix zur Datumsfestlegung noch zusätzlich einführst - diesen Fall besprechen wir, wenn der Rest klappt ;-))

Ich möchte dich bitten, sie kurz zu lesen oder zu überfliegen.

Ich verweise auf S. 21, Kapitel 3.2 Bündelausgleichung, Satz 1 und 2.

Gut, ich verstehe beide Beispiele, auch wenn mir die Idee hinter dem zweiten Beispiel bisher neu war.

Ich verweise auf S. 21, Kapitel 3.2 Bündelausgleichung, Satz 2: ... sodass größere passpunktlose Räume [...] überbrückt werden können.

Es herrscht ein funktionaler Zusammenhang zwischen den Unbekannten und den Bekannten, d.h. du kannst die Unbekannten in eine Funktion einsetzen, und der Funktionsoutput beschreibt deine Bekannten.

Ja, dass kann ich mir vorstellen. Nur, wie sieht Dein funktionaler Zusammenhang denn aus, wenn Du weder die X/Y/Z im WKS noch die äußere Orientierung kennst? Bei Dir ist auf einer Seite des Gleichungssystem nichts vorgegeben.

Machen wir es mal etwas anschaulicher. Gehen wir von einer Ursprungsgeraden aus y = a*x. Die y-Werte kennst Du, wissen willst Du a und x. Für beides hast Du von mir aus Näherungen a0 und x0. Dennoch kannst Du das System nicht eindeutig lösen. Denkbar ist, dass x = y und a=1 wird, genauso gut könnte x=0.5y und a=2 gelten, usw. Der funktionale Zusammenhang nutzt Dir nur etwas, wenn Du entweder x oder a (fest) vorgibst. Bei Dir ist das a Deine äußere Orientierung und das x sind Deine Objektpunktkoordinaten im WKS.

drehst du an den Reglern, und schaust was dann rauskommt.

Ja, aber an welchen Reglern. Ändere ich die Koordinaten der Objektpunkte, sodass die äußere Orientierung passt oder passe ich die äußere Orientierung an, sodass sie zu den Koordinaten passt. Beide sind abhängig voneinander. Es lassen sich aber nur unabhängige Parameter in der Ausgleichung schätzen. A muss vollen Spalten-Rang haben.

Gruß Micha

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

Bündelblockausgleichung konvergiert nicht

raptus93, Tuesday, 25.11.2014, 17:08 (vor 3440 Tagen) @ MichaeL

WOW! Epische Ansage! Ich beginne langsam, das Problem zu verstehen.. Was du beschreibst (quasi wie der output sein müsste bei meinem Vorgehen), entspricht meinem Output. Klasse!

Leider habe ich soziale Verpflichtungen, denen ich mich heute abend widmen muss, soll heißen ich bin ab morgen früh wieder am Start, um das auszuprobieren. (Grummel, so lang warten-.-)

Ich bin unfassbar dankbar, vielen Dank für die intensive Widmung.

Bündelblockausgleichung konvergiert nicht

raptus93, Wednesday, 26.11.2014, 10:05 (vor 3439 Tagen) @ raptus93

So, ich bin jetzt soweit. Das soll heißen, ich hab mir 6 Objektpunkte bestimmt,
und für beide Kameras deren Pixelkoordinaten berechnet. In L schreibe ich jetzt die 4 Koordinaten pro Punkt untereinander nach dem Muster:

(x1L, y1L, x1R, y1R ... xnL, ynL, xnR, ynR)'

Sollte ich die Pixelkoordinaten für nur eine der Kameras berechnen? Dann ist die Struktur von L analog:

(x1,y1...xn,yn)'

Zur Ausgleichung brauche ich jetzt aber noch die Systemmatrix A, diese soll die äußere Orientierung beider (oder im ersten Schritt einer) Kamera(s) berechnen. Ich denke ich muss es direkt mit 2 Kameras machen, um klassische Strahlenbündel zu haben, richtig?

Nach all dem stellt sich mir die Frage, was mir die genauen Objektkoordinaten jetzt bringen, oder mit anderen Worten, wie kann ich dafür sorgen, dass sie in das System einfließen? A würde ich jetzt intuitiv so strukturieren, das in den Zeilen L nach den Spalten X0L,Y0L,Z0L,omegaL,phiL,kappaL abgeleitet wird. Wo bleiben da aber X, Y und Z indiziert von 1-n, schreibe ich sie in die nachfolgenden Spalten? Oder wie setze ich das Datum?

Ich hoffe dieser Thread kann auch noch anderen Leute irgendwann mal helfen.
Vielen Dank, und viele Grüße.

raptus93

Avatar

Bündelblockausgleichung konvergiert nicht

MichaeL ⌂, Bad Vilbel, Wednesday, 26.11.2014, 11:06 (vor 3439 Tagen) @ raptus93

Hallo,

ich hab mir 6 Objektpunkte bestimmt, und für beide Kameras deren Pixelkoordinaten berechnet. In L schreibe ich jetzt die 4 Koordinaten pro Punkt untereinander nach dem Muster:

(x1L, y1L, x1R, y1R ... xnL, ynL, xnR, ynR)'

Sollte ich die Pixelkoordinaten für nur eine der Kameras berechnen? Dann ist die Struktur von L analog:

(x1,y1...xn,yn)'

Ich würde zunächst nur mit einer Kamera rechnen. Wenn das funktioniert, nimmst Du die zweite hinzu. So stellen wir sicher, dass es partiell geht und suchen den Fehler nicht an verschiedenen Stellen.

Zur Ausgleichung brauche ich jetzt aber noch die Systemmatrix A, diese soll die äußere Orientierung beider (oder im ersten Schritt einer) Kamera(s) berechnen. Ich denke ich muss es direkt mit 2 Kameras machen, um klassische Strahlenbündel zu haben, richtig?

Nein. Die äußere Orientierung kann für eine Kamera geschätzt werden.

Nach all dem stellt sich mir die Frage, was mir die genauen Objektkoordinaten jetzt bringen, oder mit anderen Worten, wie kann ich dafür sorgen, dass sie in das System einfließen?

Sie fließen über die Kollinearitätsgleichungen ein und werden als deterministisch angesehen. Wenn Du nach einem Deiner Winkel partiell ableitest, bleiben die Komponenten X, Y und ggf. Z in der Ableitung erhalten. Hier setzt Du nun die jeweils den passenden Punkt aus dem WKS ein.

Gruß Micha

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

Bündelblockausgleichung konvergiert nicht

raptus93, Wednesday, 26.11.2014, 13:24 (vor 3439 Tagen) @ MichaeL

Zu Schritt 1.

Ich mache es jetzt so:

a11*x1 + a12*x2 + a13*x3 = b1
a21*x1 + a22*x2 + a23*x3 = b2
a31*x1 + a32*x2 + a33*x3 = b3

wird zu: A*x = b
mit A ist Matrix; x,b sind Vektoren

Die Lösung ist dann inv(A)*b = x

Aber das dürfte doch nur bei linearen Gleichungssystemen funktionieren?

Noch eine weitere Frage: Muss ich, wenn ich das tun will, z.B. R(1,1) durch
cos(phi)*cos(kappa) ersetzen? Das ist die Definition von R(1,1), dadurch würde ich doch meine Unbekannten der Rotation von 9 auf 3 reduzieren, und somit wirklich nur noch 3 Punkte benötigen, korrekt?

Gruß,
raptus93

Avatar

Bündelblockausgleichung konvergiert nicht

MichaeL ⌂, Bad Vilbel, Wednesday, 26.11.2014, 13:46 (vor 3439 Tagen) @ raptus93

Hallo,

Die Lösung ist dann inv(A)*b = x

Aber nur in dem Fall, dass die Anzahl der Unbekannten identisch ist mit der Anzahl der Beobachtungen und A damit quadratisch ist. Allgemein wäre des demnach x = A\b.

Muss ich z.B. R(1,1) durch cos(phi)*cos(kappa) ersetzen?

Ja.

dadurch würde ich doch meine Unbekannten der Rotation von 9 auf 3 reduzieren, und somit wirklich nur noch 3 Punkte benötigen, korrekt?

Mindestens drei, ja. Es dürfen aber auch 10 oder 42 sein.

Man könnte es auch mit Bedingungen lösen, da eine Rotationsmatrix stets eine orthogonale Matrix ist und sich hierdurch 6 Restriktionen ergeben, aber grundsätzlich würde man wohl die Substitution auflösen, wie Du es vorgeschlagen hast.

Schöne Grüße
Micha

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

Bündelblockausgleichung konvergiert nicht

raptus93, Thursday, 27.11.2014, 13:21 (vor 3438 Tagen) @ MichaeL

So.. jetzt sitz ich da schon eine ganze Weile dran, aber komme nicht auf das richtige Vorgehen. Ich hab es mit dem Excel solver versucht, weil ich die Struktur selbst nicht aufgestellt bekommen habe. Damit komme ich aber auch nicht so ganz zurecht, weil ich den Zusammenhang zwischen der äußeren Orientierung und den Objektpunkten nicht so, wie ich es will, abgebildet bekomme. Hast du Erfahrungen mit dem Solver? Ich fühl mich grade echt dumm.. Ich habe einen Fehler definiert (L2) und Excel möchte von mir wissen, welche Werte er ändern soll, um den Fehler zu minimieren. Da weiß ich jetzt nicht: Was muss ich denn ändern? Eigentlich ja die ÄO, denn die will ich ja bestimmen, aber wie stelle ich dann den Zusammenhang her?
Ich bin ein Idiot, es tut mir Leid, dass ich so lange für solche Aufgaben brauche. Man man man.

Für jede Antwort bin ich dankbar!

Bündelblockausgleichung konvergiert nicht

raptus93, Thursday, 27.11.2014, 14:29 (vor 3438 Tagen) @ raptus93

So.. es läuft! Mein Fehler war, dass ich den kleinen aber hinterhältigen Haken bei "nicht eingeschränkte Variablen als nicht-negativ festlegen" nicht deaktiviert hatte. Was jetzt passiert ist folgendes:

Ich habe 3 Passpunkte:
X Y Z x y
1,5 2,0 4,5 -358 -438
0,5 1,5 3,2 -353 -588
-0,5 -0,5 4,0 -66 -102

die in sich stimmig sind unter der ÄO:
Degree Radiant
omega: 2,5 0,043633 X0: -1
phi: 2,5 0,043633 Y0: -1
kappa: 2,5 0,043633 Z0: 1

Nun habe ich einen Fehler definiert als Differenz zwischen gespeicherten Werten von x und y und von der ÄO abhängigen Werten von x und y. Dieser Fehler soll minimiert werden.

Die Parameter, die dazu geändert werden sollen, sind die sechs der äußeren Orientierung. Nach Ausgleichung mit dem "GRG-nichtlinear" Algorithmus kamen (sinnvoll) verbesserte Parameter der äußeren Orientierung dabei herum:

omega: 0,041795
phi: 0,043538
kappa: 0,043868
X0: -1,0
Y0: -1,001523889
Z0: 1,008286263

Diese Werte sind fantastisch, durch die Rundung der Pixelwerte ist der Fehler 0, bei Betrachtung des NKS ist der Fehler 0,777037 -> verkraftbar.

Wie sollte ich jetzt am sinnvollsten weiter machen - durch eine Ausweitung auf 2 Kameras und >=6 Passpunkte?

Vielen Dank für die Betreuung bisher!

Gruß, raputs93

Avatar

Bündelblockausgleichung konvergiert nicht

MichaeL ⌂, Bad Vilbel, Thursday, 27.11.2014, 14:39 (vor 3438 Tagen) @ raptus93

Hi,

Nun habe ich einen Fehler definiert als Differenz zwischen gespeicherten Werten von x und y und von der ÄO abhängigen Werten von x und y. Dieser Fehler soll minimiert werden.

Der Widerspruch ergibt sich aus den Kollinearitätsgleichungen. Ich hoffe, dass hast Du so auch gemacht.

Die Parameter, die dazu geändert werden sollen, sind die sechs der äußeren Orientierung. Nach Ausgleichung mit dem "GRG-nichtlinear" Algorithmus kamen (sinnvoll) verbesserte Parameter der äußeren Orientierung dabei herum:

omega: 0,041795
phi: 0,043538
kappa: 0,043868
X0: -1,0
Y0: -1,001523889
Z0: 1,008286263

Wurden die Punkte vorab verrauscht oder warum kommt die ä.O. die nicht perfekt wieder raus?

bei Betrachtung des NKS

NKS?

Wie sollte ich jetzt am sinnvollsten weiter machen - durch eine Ausweitung auf 2 Kameras und >=6 Passpunkte?

Verwende >3 Passpunkte und nur eine Kamera. Wenn das auch geht, erhöhe auf zwei Kameras.

Gruß Micha

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

Bündelblockausgleichung konvergiert nicht

raptus93, Thursday, 27.11.2014, 15:04 (vor 3438 Tagen) @ MichaeL

Hi!

Der Widerspruch ergibt sich aus den Kollinearitätsgleichungen. Ich hoffe, dass hast Du so auch gemacht.

Ja, da x und y durch die (rechte Seite der) Kollinearitätsgleichungen definiert sind.

Wurden die Punkte vorab verrauscht oder warum kommt die ä.O. die nicht perfekt wieder raus?

Die Punkte wurden mathematisch korrekt auf ganze Pixel gerundet. Ich vermute, dass es daran liegt. Desweiteren rechne ich mit dem Bogenmaß, gebe die Winkel aber im Gradmaß ein. Durch die Multiplikation mit einem Pi mit endlichen NKS kommt ein weiterer kleiner Fehler rein. Ich weiß nicht mit welcher Genauigkeit rechnet, auch daran kann es liegen!

NKS?

Entschuldige. Nachkommastellen.

Verwende >3 Passpunkte und nur eine Kamera. Wenn das auch geht, erhöhe auf zwei Kameras.

In Progress! Ich melde mich entweder gleich, nachher oder Montag wieder!

Gruß!

Bündelblockausgleichung konvergiert nicht

raptus93, Thursday, 27.11.2014, 15:32 (vor 3438 Tagen) @ raptus93

Ja, läuft:

Fehler: 0,000037
Mit 6 Passpunkten:
X Y Z x y
1,5 2,0 4,5 -358 -438
0,5 1,5 3,2 -353 -588
-0,5 -0,5 4,0 -66 -102
0,2 1,2 8,0 -72 -177
0,4 0,3 4,0 -222 -229
0,8 0,8 5,0 -214 -238

unter der äußeren Orientierung:
Degree Radiant
omega: 2,5 0,043633 X0: -1
phi: 2,5 0,043633 Y0: -1
kappa: 2,5 0,043633 Z0: 1

Jetzt füge ich 6 weitere Parameter hinzu, für eine weitere Kamera die äO.

Gruß!

Avatar

Bündelblockausgleichung konvergiert nicht

MichaeL ⌂, Bad Vilbel, Thursday, 27.11.2014, 15:47 (vor 3438 Tagen) @ raptus93

Hi,

Jetzt füge ich 6 weitere Parameter hinzu, für eine weitere Kamera die äO.

Kannst Du mal mit ungerundetetn Werten (also krummen Pixelkoordinaten) in die Ausgleichung gehen? Dann müsste Deine vorgegebene ä.O. perfekt wieder zurück bestimmt werden. Passiert das?

Wenn das geht, erweiterst Du um die zweite Kamera, ja.

Gruß Micha

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

Bündelblockausgleichung konvergiert nicht

raptus93, Monday, 01.12.2014, 08:52 (vor 3434 Tagen) @ MichaeL

Mit den (Haar-)genauen Werten: Nein, das passiert nicht. Es ist immer ein kleiner Fehler drin. Das kann aber an der Division in den Kollinearitätsgleichungen, an der Umrechnung vom Gradmaß ins Bogenmaß bzw. der begrenzten Nachkommagenauigkeit liegen, die der Rechner bzw. Excel aufweist. In meinen Augen ist das nicht schlimm.

Das System kann jetzt auch die 6 Parameter der rechten Kamera berechnen, zur Verfügung hat es grade mal 6 Passpunkte.

Was könnte ein nächster Schritt sein? Meine Sorge ist momentan noch, das ganze in MATLAB zu übersetzen. Könntest du mir da noch irgeneinen Ansatz liefern? MATLAB kann ich mittlerweile ganz gut, es würde also schon helfen, wenn du mir die Rechnungen mit der Systemmatrix etc. beschreiben könntest, seit ich "exakte" Passpunkte habe, weiß ich nicht mehr, wie ich damit umgehen muss.

Vielen Dank für deine Hilfe und freundliche Grüße!
raptus93

Bündelblockausgleichung konvergiert nicht

raptus93, Monday, 01.12.2014, 09:15 (vor 3434 Tagen) @ raptus93

Hallo!

Ich habe da noch eine Frage zu einer Sache, rein philosophisch gesehen:
Wäre es möglich, die relative Orientierung zu bestimmen im Bezug zu einer Kalibrierkamera? Ich meine die äußere Orientierung der beiden Kameras ist das einzige was mich wirklich interessiert, könnte man also diese Ä.O. einfach in Relation zu einer dritten Kamera bestimmen, die den Stereobereich der ersten beiden Kameras abdeckt?

Sollte das irgendwie möglich sein, wie wäre der Ansatz?

Gruß!

Avatar

Bündelblockausgleichung konvergiert nicht

MichaeL ⌂, Bad Vilbel, Monday, 01.12.2014, 09:21 (vor 3434 Tagen) @ raptus93

Hi,

Sollte das irgendwie möglich sein, wie wäre der Ansatz?

Hatte ich Dir bereits vorgeschlagen:

oder indem Du die äußere Orientierung von einer Kameraposition als gegen annimmst und alle anderen relativ zu dieser bestimmst.

Gruß Micha

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

Avatar

Bündelblockausgleichung konvergiert nicht

MichaeL ⌂, Bad Vilbel, Monday, 01.12.2014, 09:18 (vor 3434 Tagen) @ raptus93

Hi,

Mit den (Haar-)genauen Werten: Nein, das passiert nicht.

im Solver wird i.A. ein Grenzwert eingestellt. Möglich, dass es auch an diesem liegt. Grundsätzlich sollten die Werte aber wieder rauskommen.

Es ist immer ein kleiner Fehler drin.

Klein ist 10E-8?

In meinen Augen ist das nicht schlimm.

Es geht hier um die Validierung Deiner Rechnung. Da ist wenig Spielraum für subjektives. ;-)

Das System kann jetzt auch die 6 Parameter der rechten Kamera berechnen, zur Verfügung hat es grade mal 6 Passpunkte.

Die hoffentlich nicht auf die beiden Kamerapositionen zwefallen zu je 3 Passpunkten pro Kamera? Kurzum, mit 20 Passpunkten gehts auch noch?

Was könnte ein nächster Schritt sein? Meine Sorge ist momentan noch, das ganze in MATLAB zu übersetzen.

Dann ist wohl Matlab der nächste Schritt.

MATLAB kann ich mittlerweile ganz gut, es würde also schon helfen, wenn du mir die Rechnungen mit der Systemmatrix etc. beschreiben könntest, seit ich "exakte" Passpunkte habe, weiß ich nicht mehr, wie ich damit umgehen muss.

Du gehst genauso vor, wie in Excel. Du leitest die Kollinearitätsgleichung nach den Parametern der äußeren Orientierung ab. Wenn Du gleich mit beiden Kameras rechnen willst, dann hat Deine Modellmatrix A hat 12 Spalten und 2*n Zeilen, wobei n die Anzahl der Passpunkte ist. Der Widerspruchsvektor b ergibt sich direkt aus den Kollinearitätsgleichungen, wie auch in Excel schon. Es bleibt ein dx = A\b in Matlab. Wobei dx die Zuschläge zu Deinen vorgegebenen Näherungswerten für die äußere Orientierung sind.

Gruß Micha

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

Bündelblockausgleichung konvergiert nicht

.seb, Monday, 01.12.2014, 09:25 (vor 3434 Tagen) @ raptus93

Hallo Raptus93,

Was könnte ein nächster Schritt sein? Meine Sorge ist momentan noch, das ganze in MATLAB zu übersetzen. Könntest du mir da noch irgeneinen Ansatz liefern? MATLAB kann ich mittlerweile ganz gut, es würde also schon helfen, wenn du mir die Rechnungen mit der Systemmatrix etc. beschreiben könntest, seit ich "exakte" Passpunkte habe, weiß ich nicht mehr, wie ich damit umgehen muss.

Ich habe bereits mal eine Ausgleichungsgerade mit MATLAB programmiert. Grundlage hierfür waren die Ansätze von Mordwinzew:

MATLAB-Ausgleichung (Mordwinzew)

Diese Quelle gibt dir Auskunft, wie du die Gleichungen für die Designmatrix A und Beobachtungsmatrix B linearisiert. Der hat da einen speziellen Trick mit Näherungskoordinaten nach einem Autor BOCK verwendet, nachzulesen auch unter:

Gauß-Krüger-Modell (Mordwinzew)

Diese Ansätze kannst du auch auf deine Problemstellung übertragen. Der ganze Formelapparat ist ja prinzipiell der selbe.

Wie du dort deine Passpunkte einbindest, sollte klar sein... die werden als Matrix definiert und fließen dann bei der Berechnung der Näherungskoordinaten etc. ein. Guck dir erstmal den Matlab-Code von der oben genannten Quelle an, dann sollte sich der Rest durch Ableiten deinerseits ergeben.


Grüße
Sebastian

Bündelblockausgleichung konvergiert nicht

raptus93, Monday, 01.12.2014, 09:36 (vor 3434 Tagen) @ .seb

Okay, mach ich. Danke!

Avatar

Bündelblockausgleichung konvergiert nicht

MichaeL ⌂, Bad Vilbel, Monday, 01.12.2014, 10:31 (vor 3434 Tagen) @ raptus93

Okay, mach ich. Danke!

Auch wenn der von .seb aufgezeigt Weg möglich ist, hätte ich diesen hier nicht gewählt. Bei Deinem Problem reicht ein Gauß-Markov-Modell aus, wie es auch in der zitierten Diplomarbeit Anwendung findet. Da Unbekannte und Beobachtungen trennbar sind, werden beide Wege zur selben Lösung führen.

Gruß
Micha

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

Bündelblockausgleichung konvergiert nicht

raptus93, Monday, 01.12.2014, 11:00 (vor 3434 Tagen) @ MichaeL

Hmmm.. gut.
Was denkst darüber, die Ausgleichung relativ zu einer Kalibrierkamera durchzuführen, ist das möglich?

Avatar

Bündelblockausgleichung konvergiert nicht

MichaeL ⌂, Bad Vilbel, Monday, 01.12.2014, 11:13 (vor 3434 Tagen) @ raptus93

Was denkst darüber, die Ausgleichung relativ zu einer Kalibrierkamera durchzuführen, ist das möglich?

Ich hatte dies bereits beantwortet...

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

Bündelblockausgleichung konvergiert nicht

raptus93, Monday, 01.12.2014, 13:12 (vor 3434 Tagen) @ MichaeL

Ich hatte dies bereits beantwortet...

Achso, jetzt verstehe ich diesen Satz erst. Ich dachte, du meinst damit eine der beiden relevanten Kameras, und nicht eine dritte Kamera. Das ist genau was ich will:
Sagen wir, in meinem System ist die dritte Kamera der Ursprung des WKS, und die Z-Achse liegt auf der optischen Achse.

Dann kann ich also die ÄO relativ zu dieser bestimmen, theoretisch? Sehr, sehr, sehr gut.
Wie bilden sich dann die Passpunkte? Die ÄO ist 0,0,0,0,0,0, über genaue Objektpunkte weiß ich dadurch immer noch nicht bescheid. Ich könnte mir vorstellen, dass die Passpunkte dann aus den Bildpunkten und deren Bildstrahlen bestehen, da die Z-Koordinate, auch bei bekannter Orientierung ja immer noch fehlt.
Kann ich diesen Missstand durch eine erhöhte Anzahl dieser Informationen kompensieren?

Bitte entschuldige, dass ich nicht gleich verstanden habe, wie du das meintest.
Dennoch hilft es mir enorm, wie ihr mir hier im Forum helft!

Gruß, raptus93!

Avatar

Bündelblockausgleichung konvergiert nicht

MichaeL ⌂, Bad Vilbel, Monday, 01.12.2014, 14:01 (vor 3434 Tagen) @ raptus93

Hi,

Wie bilden sich dann die Passpunkte? Die ÄO ist 0,0,0,0,0,0, über genaue Objektpunkte weiß ich dadurch immer noch nicht bescheid.

Stimmt, dadurch, dass Du die Z-Komponente nicht aus einer Kameraposition bekommst, greift meine ursprüngliche Antwort wohl zu kurz, und Du kannst nicht einfach eine a.O. vorgeben, um das System eindeutig zu lösen. :-( Man müsste wohl sogar zwei Kamerapositionen fixieren.

Dein Hauptproblem ist, dass Du die WKS-Punkte nicht fest vorgeben willst, oder? Du hast die Möglichkeit, sie als stochastische Parameter zu betrachten. Deine Designmatrix A wäre dann:

\begin{pmatrix}
  A_{Kamera} & A_{WKS} \\
  0 & I
\end{pmatrix}

In A_{Kamera} sind die Ableitungen nach den ä.O. drin, A_{WKS} enthält die Ableitungen nach den WKS-Punkten. I ist eine Einheitsmatrix. Sinngemäß bedeutet dies, dass die WKS-Punkte sich selbst beobachten.

Gruß Micha

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

Bündelblockausgleichung konvergiert nicht

raptus93, Monday, 01.12.2014, 14:51 (vor 3434 Tagen) @ MichaeL

Hallo!

Nun gut, auch das ist eine gute Erkenntnis! Vielen Dank für die Hilfe bisher!
Das mit der stochastischen Komponente werde ich nicht noch in die Arbeit einbeziehen.

Dein Hauptproblem ist, dass Du die WKS-Punkte nicht fest vorgeben willst, oder?

Ja, das ist in der realen Aufgabenstellung einfach nicht gegeben. Deswegen macht es für mich keinen Sinn, da ein vollständig virtuelles System zu konstruieren, welches in der Realität aufgrund von fehlenden Informationen schlicht nicht funktionieren kann.

Mein Zeitraum endet in 11 (Arbeits-)tagen, und ich muss noch an meiner Arbeit schreiben. Die Zeitknappheit liegt nicht daran, dass ich "zu spät angefangen habe" oder dergleichen, sondern
1.) an der Einarbeitung in das Thema (Grundlagen wie Triangulation..) und
2.) an der Messung und (Bildverarbeitungsmäßigen) Vorverarbeitung dieser Daten,
da ich davon ausgegangen war, dass ich erst mit realen Werten weiter am System arbeiten kann.

Es ist übrigens KEINE Bachelorarbeit, sondern ein Praxisbericht. Dennoch habe ich glücklicherweise ein wissenschaftliches Thema erwischt, und bin nicht irgendwo im Tagesgeschäft gelandet. Alles in allem bin ich zufrieden mit den erlangten Erkenntnissen, sowohl technisch als auch was das wissenschaftliche Arbeiten, Projekt-und Zeitmanagement sowie den Umgang mit komplexen Zusammenhängen in unbekannten Themengebieten angeht. Zur Erklärung: Ich studiere keine Geodäsie, Photogrammetrie oä, sondern Computervisualistik: Darin war Ausgleichung und 3D-Rekonstruktion nie ein Teil des Lehrplans (bisher), ich bin aber ein guter Bildverarbeiter, weswegen ich mich für diese Aufgabe entschied. Auch über mich selbst habe ich in dem Projekt viel gelernt.

VIELEN DANK, liebe Geodäten, ich kann es nicht in Worte fassen, wieviel ihr mich weiter gebracht habt - god bless you. Tausend Dank: MichaeL, .seb und Barny.G, ihr habt was gut bei mir!

Jetzt, wo das Internet alles über mich weiß,
verabschiede ich mich schonmal.

Viele Grüße,
raptus93

Avatar

Bündelblockausgleichung konvergiert nicht

MichaeL ⌂, Bad Vilbel, Monday, 01.12.2014, 15:22 (vor 3434 Tagen) @ raptus93

Hallo,

Ja, das ist in der realen Aufgabenstellung einfach nicht gegeben.

Wenn Du die WKS-Punkte auch nicht als stochastisch betrachten willst, kannst Du Bedingungen einführen. Siehe hierzu 11.2.2 Freie Ausgleichung. Für Dein Problem wäre die Matrix (11.33) relevant. Die Datumsgebenden Punkte im WKS würde man dort - in der Matrix G - entsprechend berücksichtigen und damit die Normalgleichung rändern. Die Lösung eines solchen Gleichungssystems ist in (7.70) angegeben, wobei A2 dann G wäre.

VIELEN DANK, liebe Geodäten, ich kann es nicht in Worte fassen, wieviel ihr mich weiter gebracht habt

Dir auch viel Erfolg

Gruß Micha

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

Bündelblockausgleichung konvergiert nicht

.seb, Monday, 01.12.2014, 11:32 (vor 3434 Tagen) @ MichaeL

Hallo Micha,

Auch wenn der von .seb aufgezeigt Weg möglich ist, hätte ich diesen hier nicht gewählt. Bei Deinem Problem reicht ein Gauß-Markov-Modell aus, wie es auch in der zitierten Diplomarbeit Anwendung findet. Da Unbekannte und Beobachtungen trennbar sind, werden beide Wege zur selben Lösung führen.

Du hast recht Micha, das speziellere Gauß-Markov-Modell reicht völlig aus für seine Anwendung. Aber die Lösung ist trotzdem nützlich.
Mein Vorschlag bezog sich nur auf die MATLAB-Implementierung im engeren Sinne sowie die Linearisierungsmöglichkeiten der Gleichung mittels MATLAB. Er kann ja die Implementierung des allgemeinen Gauß-Helmert-Modells von Mordwinzew nehmen und dann die Implementierung auf das Gauß-Markov-Modell spezifizieren bzw. vereinfachen. Das wäre ein gangbarer Weg!

Die Implementierung von Mordwinzew ist recht elegant, da man sich mit keinerlei zusätzliche Taylor-Reihen beschäftigen muss. Ist alles schon integriert.

Um das Programm auf Gauß-Markov zu vereinfachen, muss man lediglich an die While-Schleife im Matlab-Programm bestimmte Gleichungen vereinfachen oder streichen. Der ganze obere Teil bleibt gleich. Oder er lässt es bleiben. :-P

Schneller kommt man wirklich nicht zu Lösung! :)

RSS-Feed dieser Diskussion