Filtern von RANSAC-geschätzten Homografien

10

Ich verwende den RANSAC- Algorithmus für die Homografieschätzung zwischen Bildpaaren, die mit Kameras aufgenommen wurden, zwischen denen keine Translation besteht (reine Drehung und Änderung des Maßstabs / Zooms). In der Hälfte der Fälle funktioniert es gut. Die richtige Ausgabe sieht folgendermaßen aus:

Geben Sie hier die Bildbeschreibung ein

Die roten Linien sind gefilterte Entsprechungen und die Vierecke veranschaulichen, wie die Homographie die Perspektive verzerrt.

Manchmal passieren jedoch viele schlimme Fälle wie diese:

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Ich habe bereits einen einfachen Test in der RANSAC-Schleife. Es macht ein einfaches Viereck (ein Einheitsquadrat) und transformiert es mit einer Beispieltransformation. Dann sieht es aus, ob die Transformation ihre Konvexität beibehalten hat.

Trotzdem kommen Bündel konkaver Vierecke heraus.

Haben Sie eine Idee, wie Sie die Homografie richtig testen können, wenn sie sich "gut" verhält und die falschen Lösungen herausfiltert?

Ich habe einen Code gefunden, in dem getestet wird, dass keiner der drei transformierten Punkte kolinear ist. Dies scheint jedoch nicht ausreichend zu sein, da Deltamuskeln und andere "ungültige" Vierecke nicht herausgefiltert werden ...

Libor
quelle

Antworten:

4

Es gibt ein Problem bei der Überprüfung, ob die Homografie in Ordnung ist.

Der Algorithmus zum Überprüfen korrekter Homografien könnte jemanden interessieren, daher werde ich ihn hier aufschreiben:

ABDC

A:(w/2,h/2,1.0)B:(w/2,h/2,1.0)C:(w/2,h/2,1.0)D:(w/2,h/2,1.0)

w,h

ABDCC=HC

uv

d1:A+(DA)s=A+usd2:B+(CB)t=B+vt

d1=d2

t=1d[(ByAy)ux(BxAx)uy]

s=1d[(AxBx)vy(AyBy)vx]

s,t(0,1)

s,t(λ,1.0λ)λ=0.01

Älteres Problem, behoben im obigen Algorithmus:

Ich habe das Problem hier gefunden - mit einer bestimmten Homographie kann der Test für ein kleineres Viereck bestehen, aber nicht für das größere. Aus diesem Grund gingen einige "kranke" Homografien durch.

Das grüne Quadrat repräsentiert ein Quellbild, das Orange ist ein transformiertes. Wie Sie sehen können, ist die linke konvex, verformt sich jedoch, wenn die Quelle größer ist:

Geben Sie hier die Bildbeschreibung ein

Schließlich ergeben noch größere Quellen einen nicht konvergierten Viereck:

Geben Sie hier die Bildbeschreibung ein

(x,y,w)xyw

Ich habe den Algorithmus entsprechend korrigiert.

Libor
quelle
1

x_i \sim Hx_i^'\sum_{j=1\dots n}\|x_j - Hx_j^'\|H^'x^' = H^'x\sum_{j=1\dots n}\|x_j - Hx_j^'\| + \|x_j^' - H^'x\|

Siehe Hartley und Zisserman - Multiple View Geometry on Computer Vision, Kapitel 4.2 und insbesondere 4.2.3 und Gleichung (4.8).

buq2
quelle
Die angezeigten Vierecke werden einfach dort eingefügt. Ich bin mir über die Entsprechungen sicher, da die Passform sehr gut ist. Ich habe den von Hartley & Zisserman vorgeschlagenen normalisierten DLT-Algorithmus verwendet und dann, wie Sie erwähnt haben, iterative Verfeinerung und geführte Anpassung verwendet.
Libor
Aber der Sitz des Homografie kann nicht sein , dass gut wie im ersten Bild zwei Gruppen von Punkten gibt es: diejenigen in der Wohnung Gebäude (was wahrscheinlich auf einer gleichen Ebene sind) und die , die auf den Bäumen (die wahrscheinlich nicht einmal auf eine gleiche Ebene innerhalb ihrer eigenen Gruppe). Sind Sie sicher, dass Sie keine fundamentale Matrix verwenden wollten?
Buq2
Die Linien verbinden entsprechende Punkte und ich habe sie alle überprüft - wenn die Bilder ausgerichtet sind, treffen sie sich alle. Wenn ich die schlecht passenden Bildpaare ausschließe, ergibt sich ein schönes Panorama.
Libor
Die Bilder werden mit einer rotierenden Kamera aufgenommen, so dass es den Anschein hat, als würden sich die Ebenen ändern. Da sich die Kameras jedoch um das optische Zentrum drehen, bin ich mir ziemlich sicher, dass die Homographie geschätzt wird. Ich kann daraus sogar Brennweite und Rotationsmatrix berechnen. Aber das Problem ist woanders, eine Eigenart in meiner Software, die ich finden muss ...
Libor
Ahh, Sie haben nicht die Information aufgenommen, dass es keine Übersetzung zwischen den Kameras gibt. Dann haben Sie Recht und Homographie beschreibt die Transformation zwischen den Bildern.
Buq2