So berechnen Sie die richtige Position für dieses Foto im Inception-Stil

Ich bin auf diesen Beitrag gestoßen: Wie wird dieser sich ändernde vertikale Perspektiveneffekt erzielt?

Angenommen, diese Bilder wurden von einer Drohne aufgenommen. Wie würden Sie die Positionen (Breitengrad, Längengrad), die Höhe und den Kamerawinkel für die einzelnen Fotos berechnen?

Mit Fotografie scheint mir das nichts zu tun zu haben. Was Sie suchen, liegt wahrscheinlich im Bereich der Bildverarbeitung und heißt Bildregistrierung : en.wikipedia.org/wiki/Image_registration
Ich denke, es ist eine faire Fotografie-Frage zur Aufnahmetechnik. Habe das Tag hinzugefügt.

Antworten (2)

Obwohl eine Berechnung möglich sein sollte, würde ich eher empfehlen, mit Versuch und Irrtum zu beginnen. Beginnen Sie damit, dass Ihre Drohne beim Aufsteigen filmt. Machen Sie dann Screenshots von Standbildern aus dem Video. Machen Sie Ihre Nähte und sehen Sie, ob Ihr Bild für Sie gut aussieht. Wenn ja, notieren Sie sich, wo in Ihrem Videoclip Sie die Screenshots gemacht haben. Wenn Ihre Drohne langsam und mit konstanter Geschwindigkeit aufsteigt, können Sie ihre Höhe von der Stelle aus berechnen, an der Sie Ihre Standbilder aufgenommen haben: Nehmen wir an, sie stieg 60 Sekunden lang auf und Ihre erste Aufnahme erfolgt bei der 5-Sekunden-Marke im Video, Ihre nächste bei 10 Sekunden , dein nächster bei 20 Sekunden, dein vierter bei 60 Sekunden. Dann wurden Ihre Aufnahmen bei 5/60, 10/60, 20/60 und 60/60 des Weges nach oben gemacht.

Sehr gute Idee, aber ich würde wirklich gerne eine berechnungsbasierte Lösung finden. Es geht nicht nur darum, zu welcher Zeit die Bilder aufgenommen werden sollen, sondern auch darum, wie die Flugbahn der Drohne überhaupt sein soll. Ich würde sagen, die Flugbahn muss eine logarithmische Kurve sein.
@gasparuff Sie führen sehr viele Variablen ein, wenn Sie vermuten, dass sich die Drohne nicht vertikal bewegt hat.

Die genaue Berechnung ist unmöglich, da die Szene volumetrisch ist. Wenn die Szene flache Details hätte, könnten Sie eine Karte bekommen und die Karte und das Foto abgleichen und die Funktion bekommen.

Sie können jedoch immer noch die Karte abrufen und versuchen, sie manuell abzugleichen, was darauf hindeutet, dass sich die Drohne vertikal bewegt hat. Ihr Prozess sollte in etwa so aussehen:

  • Finden Sie die Position des Fotografen auf der Karte
  • Wählen Sie zwei Punkte auf jeder horizontalen Linie und finden Sie passende Punktpaare auf der Karte (ja, das ist noch menschliche Arbeit)
  • Wenn Sie den Maßstab des Objekts kennen, erhalten Sie Entfernung
  • Die Höhe der Drohne, die Sicht der Drohne auf jedes Objekt (auch bekannt als die Entfernung) und die Projektion der Sicht der Drohne bilden ein 90-Grad-Dreieck. Sie kennen die Projektion der Sichtweite der Drohne (aus der Karte) und Sie kennen die Entfernung von der Drohne zum Objekt (Sie erhalten sie aus dem Verhältnis zwischen dem Abstandsverhältnis der übereinstimmenden Punkte). Sie erhalten die Höhe, wenn Sie den Satz von Pifagor verwenden
  • Anhand der Höhe können Sie den Winkel als trigonometrische Funktion berechnen: Winkel = Arctan (Höhe / Entfernung) - bei einem steigenden Kopter wird er von 90 Grad auf 0 Grad abgestuft. Durch die Berechnung der Höhe für jede horizontale Linie erhalten Sie eine Reihe von Paaren <Winkel, Höhe>, die Sie interpolieren können

Dies ist ein Hinweis darauf, wie Sie es tun würden, und es ist nicht sehr detailliert.

Die Verwendung von Fisheye-Objektiven macht es viel schwieriger, dies zu formalisieren. Es ist immer noch zu erraten, wenn Sie Ihre passenden Paare in der Nähe der vertikalen Mitte des Fotos halten.

Während die genaue Berechnung möglicherweise unmöglich ist, kann eine sehr sehr gute Annäherung durchgeführt werden. Es ist schon eine Weile her, dass unbemannte Fahrzeuge Computervision verwenden können, um sich selbst zu orientieren und die Verschiebung zu berechnen. Der Rover auf dem Mars nutzt Computer Vision. Die Bündelanpassungstechnik und die Bildregistrierung tun genau das: Nehmen Sie ein Bündel von Bildern auf, approximieren Sie die 3D-Szene und die Parameter jedes Bildes (Position, Ausrichtung, Kameramodell, ...)
@Olivier, es ist lustig, dass Sie abgelehnt haben, weil es in meinem gesamten Beitrag um die Berechnung der genannten Annäherung geht.
Ich habe abgelehnt, weil Ihr erster Satz falsch ist. Die von mir erwähnte Annäherung hat mit Ihrer nicht viel gemeinsam. Die nachfolgende Mathematik mag stimmen, basiert aber auf einer Hypothese, die im wirklichen Leben selten vorkommt. Der Link, den ich in meinem ersten Kommentar (Bildregistrierung) bereitgestellt habe, lieferte bereits Informationen zum Auffinden von Ansichtsparametern aus Bildern. Bitte suchen Sie nach Bündelanpassung
@Olivier Sie haben zugegeben, dass mein erster Satz in der ersten Zeile Ihres Kommentars korrekt ist. Das maschinelle Sehen hat einen Informationsgrad mehr als bei dem besprochenen Problem - es ist in Ordnung anzunehmen, dass sich der Kopter nicht nach links oder rechts bewegt hat, aber es ist nicht richtig anzunehmen, dass er sich nicht vorwärts bewegt hat. Beim maschinellen Sehen sind die Koordinaten der Blickpunkte bekannt (also nur eine Dimension - von 1 bis N) und sie werden benötigt, um ein ungefähres 3D-Modell zu erstellen. weiter.....
@Olivier Dieser Fall ist unvollständig umgekehrt: Nur das flache Modell ist bekannt (volumetrische Karten sind nicht sehr verbreitet und genau) und es ist erforderlich, 2 Koordinaten aus einer Reihe flacher Modelle abzuleiten.
@Olivier Wenn Sie davon ausgehen, dass sich der Kopter nur vertikal bewegt oder eine 3D-Karte erhält, wird das Problem lösbar.
Meine erste Zeile war humorvoll, da in der Bildverarbeitung, insbesondere Computer Vision , so gut wie nichts exakt ist. Auch hier lade ich Sie ein, sich insbesondere nach Bildregistrierungstechniken und Bundle-Anpassungen umzusehen: en.m.wikipedia.org/wiki/Bundle_adjustment
Auszug aus einem Wikipedia-Artikel Bei einer Reihe von Bildern, die eine Reihe von 3D-Punkten aus verschiedenen Blickwinkeln darstellen, kann die Bündelanpassung als das Problem der gleichzeitigen Verfeinerung der 3D-Koordinaten definiert werden, die die Szenengeometrie, die Parameter der relativen Bewegung und die optischen Eigenschaften von beschreiben die zum Erfassen der Bilder verwendete(n) Kamera(s) gemäß einem Optimalitätskriterium, das die entsprechenden Bildprojektionen aller Punkte umfasst.
Wenn Sie oder Gasparuff (das OP) interessiert sind, schreibe ich eine Schritt-für-Schritt-Anleitung, um die Parameter verschiedener Bilder zu finden. Es ergibt ein sehr einfaches 3D-Modell der Szene und die Position und Ausrichtung der Kamera für jedes Bild. Auch hier geht es meiner Meinung nach nicht wirklich um Fotografie ... aber es war eines meiner ersten Projekte und der Grund, warum ich mir überhaupt eine DSLR gekauft habe.
@Olivier "Die nachfolgende Mathematik mag richtig sein, aber sie basiert auf einer Hypothese, die im wirklichen Leben selten vorkommt." präzisieren das.
Alle Bilder, die von einem fliegenden UAV aufgenommen werden, haben eine Chance von etwa 0, ausgerichtet zu werden. Die von Ihnen vorgeschlagenen Projektionen weisen wahrscheinlich Fehler auf, und ihre Verwendung zum Ausrichten der Bilder wird wahrscheinlich fehlschlagen. Aus diesem Grund ist die Bündelanpassung ein globales Optimierungsproblem und nimmt Rechenzeit in Anspruch. Im Allgemeinen werden mehr als 20 Punkte zwischen zwei aufeinanderfolgenden Bildern benötigt, um sie korrekt auszurichten und die Kameraparameter zu lösen. Ich garantiere, dass nur das Argumentieren auf einer Zeile und eine Skaleninformation ein unordentliches Ergebnis liefert.
@Olivier was ist der eigentliche Flop? Hast du jemals die OP-Frage gelesen?
Es führt nirgendwo hin, vielleicht wegen meines begrenzten Englisch. Eine ausführliche Antwort schreibe ich später. Noch eine letzte Frage: Gehen Sie auch davon aus, dass bei allen Aufnahmen die gleiche Brennweite verwendet wird?