Inhaltsverzeichnis:
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-13 06:56
Die Drohnen-Videografie ist in den letzten Jahren wirklich explodiert, und es gibt eine große Anzahl talentierter Piloten, die mit ihren Quadrocoptern und First-Person-View-Headsets die akrobatischsten Videos machen. Mein Bruder Johnny FPV ist einer dieser Piloten, also wollte ich sehen, ob es möglich ist, die Umgebungen, in denen er fliegt, aus seinen Freestyle-Aufnahmen zu rekonstruieren.
Stetiges, Point-of-Interest-gesperrtes Drohnenmaterial kann sicherlich ein 3D-Modell mit hoher Wiedergabetreue erzeugen, wie hier beschrieben, aber was passiert, wenn das Filmmaterial so hektisch ist?
Schritt 1: Vorverarbeiten Ihres Videos
Sobald Sie Luftaufnahmen haben, ist eine Vorverarbeitung erforderlich. Ich verwende Adobe Media Encoder, aber fast jede Videobearbeitungssoftware sollte dies übernehmen können.
Ich habe einen kurzen Clip (~11 Sekunden) ausgewählt und die Framerate von 29,77 auf 30fps geändert und das neue Video in meinem gewünschten Ordner gespeichert.
Als nächstes verwende ich FFMPEG, um jeden zweiten Frame des Videos als-j.webp
Eine gute Anleitung zur Installation von FFMPEG finden Sie hier.
Sie sollten Ihr Verzeichnis in den Speicherort Ihrer Bilddatei (CD) ändern und dann das folgende Skript verwenden:
ffmpeg -i (Name Ihrer Videodatei) -vf fps = 15 exp%03d.jpg
Das Ändern der fps ändert natürlich die Anzahl der Bilder, die pro Sekunde des Videos exportiert werden. Dies geht darauf zurück, warum ich die fps des Videos von 29,97 auf 30 geändert habe. Wenn Sie 15 Bilder pro Sekunde aufnehmen, wird jetzt einfach jeder zweite Frame aus dem Video erfasst. Wenn Sie jedes sechste Bild haben möchten, würden Sie es auf 5 fps einstellen … usw.
"exp%03d.jpg" führt dazu, dass die Bilder als exp000-j.webp
(Hinweis: "ffmpeg -i (Name Ihrer Videodatei) -r (Framerate) -f image2 exp%03d.jpg" funktioniert auch zum Extrahieren von Frames aus Videos, aber aus irgendeinem Grund bekomme ich bessere Punktwolken aus Bildern, die in verarbeitet wurden die frühere Methode)
Schritt 2: Fotos importieren und eine Punktwolke erstellen
Sobald Sie eine Reihe von Bildern haben, können Sie mit einem normalen Photogrammetrie-Workflow beginnen. Ich verwende Agisoft PhotoScanPro, aber andere Programme wie Autodesk Remake wären wahrscheinlich genauso erfolgreich (wenn nicht sogar mehr).
Nach dem Import meiner Fotos habe ich auch die Kamerakalibrierung auf Fisheye gesetzt, da dieses Filmmaterial ursprünglich von einer GoPro stammt. Ein paar Minuten Verarbeitung später beginnen einige 3D-Informationen aufzutauchen! Die Punktwolke sieht vielleicht nicht viel aus und besteht nur aus ein paar tausend Punkten, sodass sie noch nicht ganz ausreicht, um ein Netz zu berechnen. Daraus habe ich eine dichte Punktwolke erstellt und habe jetzt etwa 200.000 Punkte, mit denen ich arbeiten kann.
Schritt 3: Erstellen Sie ein Mesh
Da wir nun alle diese Punkte haben, mit denen wir arbeiten können, kann ein Netz berechnet werden. Ich verwende eine relativ hohe Flächenanzahl und ermögliche die Interpolation - dies macht das Netz etwas "unscharfer", aber am Ende werden viel weniger Oberflächen und Löcher im Netz fehlen. Nach ein paar Minuten Verarbeitung haben wir ein Ergebnis, das der Architektur ähnelt, in der die Drohne herumflog!
Schritt 4: Textur und Endergebnisse
Photoscan ermöglicht es Ihnen auch, aus den Eingabebildern eine Textur für Ihr Netz zu erstellen, die dem Modell den letzten Schliff verleiht. Ich habe gemischte Gefühle bezüglich der Ergebnisse dieses Prozesses (es gibt viel bessere Möglichkeiten, ein genaues Modell zu erstellen), aber insgesamt finde ich es erstaunlich, dass überhaupt jedes Modell aus so verrücktem Filmmaterial entstehen kann!
Weitere Richtungen, die ich bei diesem Projekt einschlagen könnte, könnten darin bestehen, die Oberflächen zu wasserdichten Modellen für den 3D-Druck zu verdicken, oder sie könnten Teil einer surrealistischen VR-Landschaft werden.