Hallo zusammen - ich arbeite jetzt seit fast 3 Tagen an diesem Thema und habe endlich eine Methode entwickelt, um Video vom DJI FPV-Drohne in Drone2Map zu importieren, um Orthomosaike und andere 2D-Projekte zu erstellen. Ich konnte keine Informationen oder frühere Literatur zu einer Methode finden, die DJI's FPV-Drohne in das Drone2Map-System integriert, daher hoffe ich, dass dies der nächsten Person helfen kann, die nach einer Antwort auf diese Frage sucht. Ich bin sicher, dass es bessere Wege gibt, das zu tun, was ich gleich beschreiben werde, und wenn es welche gibt, lassen Sie es mich bitte wissen. Außerdem, wenn diese Methode für andere Drohnen nützlich ist, informieren Sie mich bitte. <\/P>
Bevor ich anfange, möchte ich ein paar Annahmen\/Einschränkungen darlegen. Diese Methode wurde nur entwickelt, um Videoaufnahmen aus einem Nadir- bis Schrägwinkel in geotaggte Standbilder umzuwandeln, die in Drone2Map importiert werden können. Es erfordert minimale Kenntnisse im Umgang mit der Kommandozeile und dem Bearbeiten von Python-Skripten, ein paar Drittanbieter-Anwendungen zusätzlich zu Drone2Map und Aufmerksamkeit für Ihre Höhe und Zeitpunkte während des Fluges (die Höhenanzeige der DJI FPV ist konstant ungenau und nutzlos). Ich gehe davon aus, dass die meisten Personen Bilder in konstanter Höhe über relativ flachem Gelände aufnehmen. Das könnte eine falsche Annahme sein, aber sie wird in dieser Zusammenfassung getroffen. Für diesen Prozess müssen Sie die DJI FPV-Drohne so einstellen, dass SRT-Daten aufgezeichnet werden.<\/EM> Dies ist standardmäßig aktiviert, kann aber im Systemmenü ein- oder ausgeschaltet werden. Diese Methode erfordert außerdem: VLC Media Player<\/STRONG>, Exif Tool<\/STRONG>, eine Skript-Bearbeitungssoftware<\/STRONG> (ich verwende Visual Studio).<\/P>Den VLC Media Player finden Sie hier: https:\/\/www.videolan.org\/vlc\/download-windows.html<\/A><\/P>Exif Tool hier (laden Sie die Windows-Executable herunter und installieren Sie sie. Ändern Sie den Anwendungsnamen von "exiftool(-k).exe" zu "exiftool.exe" und legen Sie diese dann im Verzeichnis C:\Windows ab): https:\/\/exiftool.org\/<\/A> <\/P>Visual Studio Code hier: https:\/\/code.visualstudio.com\/download<\/A> <\/P>Wenn alles bereit ist, können wir beginnen. Zuerst erstellen Sie ein Arbeitsverzeichnis. Für dieses Beispiel nenne ich es "C:\User\YOUR_NAME\Documents\FPV Geotagging". Verschieben Sie Ihre Daten (Video und .SRT) von Ihrer microSD-Karte in dieses Verzeichnis. Erstellen Sie jetzt Kopien dieser Daten zur Sicherheit. Gehen Sie auf diese Seite: https:\/\/djitelemetryoverlay.com\/srt-viewer\/<\/A>. Klicken Sie auf der Startseite auf "Load File(s)" und laden Sie die .SRT-Datei des Videos hoch, das Sie in geotaggte Bilder umwandeln möchten. Bewundern Sie die unglaublich coole Visualisierung Ihres Flugpfads und der Daten. Laden Sie die Telemetriedaten als CSV herunter. Dies ist eine Aufzeichnung der GPS-Latitude/Lon/Altitude (wenn Sie dem letzten Wert vertrauen – ich persönlich tue das nicht) Daten für jeden Frame des Videos. Speichern Sie diese in unserem Arbeitsverzeichnis.<\/P>Öffnen Sie Ihr FPV-Video im VLC Media Player. Öffnen Sie das Menü "Tools" und wählen Sie "Preferences". Unten links im Fenster der Einstellungen gibt es einen Umschalter zwischen einfachen und erweiterten Einstellungen. Wählen Sie erweiterte Einstellungen aus. Scrollen Sie im linken Menü nach unten zum Menü "Video". Klicken Sie auf das Dropdown-Menü, um alle Videoeinstellungen anzuzeigen, und klicken Sie auf "Filters". Die rechte Hälfte dieses Fensters sollte nun mehrere Filter mit Kontrollkästchen anzeigen. Aktivieren Sie den Filter namens "Scene video filter" (in meiner VLC-Version ist er der dritte von oben in der zweiten Spalte). Mit diesem Filter ausgewählt kehren Sie zum scrollbaren Menü links zurück und klicken auf den Pfeil neben dem Wort "Filters". Scrollen Sie nach unten und wählen Sie "Scene filter" aus. Ändern Sie die Einstellungen so, dass das Bildformat "JPG" ist und der Verzeichnispfad-Präfix unser Arbeitsverzeichnis ist (in diesem Fall "C:\User\YOUR_NAME\Documents\FPV Geotagging"). Passen Sie als Nächstes das Aufnahmeverhältnis entsprechend der Bildrate Ihrer Kamera und wie viele Fotos aus diesem Video exportiert werden sollen an. DJI FPV nimmt mit 60 Bildern pro Sekunde auf, daher habe ich das Aufnahmeverhältnis auf 60 gesetzt, um jede Sekunde ein Foto aufzunehmen. Für weitere Informationen darüber, wie das funktioniert und welches Aufnahmeverhältnis verwendet werden sollte, sehen Sie sich diesen großartigen Leitfaden an (https:\/\/www.vlchelp.com\/automated-screenshots-interval\/#:~:text=Expand%20further%2C%20Video%20%3E%20Filters%20%3E,would%20make%20it%2050%20seconds<\/A>). Klicken Sie unten rechts auf Speichern und schließen dann das VLC-Fenster. Öffnen Sie das Video erneut in VLC; es sollte nun anfangen, jede Sekunde ein Foto in unser Arbeitsverzeichnis zu exportieren. Überprüfen Sie, ob dies geschieht. Falls nicht, konsultieren Sie die zuvor verlinkte Ressource. Jeder Frame sollte als Bild mit Namen wie "scene00001.jpg", "scene00061.jpg", "scene00121.jpg" usw. exportiert werden. Die Zahlen nach "scene" entsprechen dem Frame im Video, von dem sie aufgenommen wurden (z.B., "scene0001.jpg" ist ein JPG-Bild des ersten Frames des Videos). Wenn diese im Verzeichnis gespeichert sind, ist es Zeit, die Bilder zu geotaggen. <\/P>Öffnen Sie Visual Studio Code sowie die zuvor gespeicherte CSV-Datei. Falls VS Code noch eingerichtet werden muss, tun Sie dies jetzt. Es gibt viele Online-Dokumentationen dazu. Wenn Sie eine andere Code-Bearbeitungssoftware verwenden, ignorieren Sie diesen Teil einfach .<\/P>Angenommen, Sie verwenden Microsoft Excel: Kehren Sie zur CSV zurück und erstellen neben der Spalte "FRAMECNT" eine neue Spalte namens "File Name". Markieren Sie die Werte in der Spalte "FRAMECNT", klicken mit der rechten Maustaste darauf und wählen „Zellen formatieren“. Wählen Sie im linken Menü „Spezial“ aus und dann unter „Typ“ „Postleitzahl“. Dadurch werden führende Nullen zu unserer Frame-Zählung hinzugefügt. Es gibt andere Methoden dafür; wenn Ihnen eine bessere Methode bekannt ist, posten Sie diese bitte. Dies ist nur eine schnelle und einfache Lösung dafür. In der ersten Zelle unter „File Name“ erstellen Sie einen Ausdruck zur Rekonstruktion des Dateinamens; in diesem Fall soll „scene00001.jpg“ in der ersten Zelle unter „File Name“ stehen, „scene00061.jpg“ in der zweiten usw. Stellen Sie sicher, dass diese Werte als Werte eingefügt oder neu erstellt werden (nicht als Formeln). Erstellen Sie ein neues Blatt innerhalb dieser CSV-Datei und öffnen ein Windows Explorer-Fenster. Navigieren Sie zum Arbeitsverzeichnis. Sortieren alle Dateien nach Namen und markieren alle Drohnenbilddateien (nur<\/EM> die Bilder). Halten Sie Shift gedrückt, klicken mit der rechten Maustaste darauf und wählen „Pfad kopieren“. Kehren zurück zu Excel und unserem leeren Blatt; fügen die Liste der Dateien ein. Erstellen erneut eine Spalte namens „File Name“ und extrahieren die Dateinamen vom Ende der Dateipfade (mit „=RECHTS(A2;14)“ sollte das funktionieren). Ziehen diese Formel nach unten durch alle Zeilen durch; stellen sicher, dass diese Spalte als Werte eingefügt wird (nicht als Formeln). Erstellen fünf neue Spalten namens „LATITUDE“, „LAT REF“, „LONGITUDE“, „LON REF“ und „ALTITUDE“. Verwenden X- oder VLOOKUP-Funktionen um für jede Datei Latitude-, Longitude- und Höhenwerte anhand der Spalte „File Name“ abzurufen. In den Spalten Lat/Lon Ref geben sie N/S bzw E/W ein (siehe: https:\/\/exiftool.org\/faq.html#Q14<\/A> für eine Erklärung dazu). Es könnte bessere oder einfachere Methoden geben; schauen sie bei Microsofts Support-Seiten zu X- und VLOOKUP nach für weitere Informationen dazu. Entschuldigen sie eventuelle Verwirrung hierbei; das Ziel ist eine Liste mit Lat/Lon/Höhenwerten für jede Datei – was mit dieser Anleitung erreicht werden kann. Sobald dies erledigt ist speichern sie dieses Tabellenblatt als eigene CSV-Datei im Arbeitsverzeichnis unter dem Namen „SRT_Telemtry.csv“.<\/P> <\/P>Kehren wir zu Visual Studio zurück: Fügen sie folgenden Block ein:<\/P> <\/P> <\/P> <\/P>import os import csv with open('F:\/Drone Footage \/05.10.2022 \/Frame_Geotagging_Data.csv','r') as file: reader=csv.DictReader(file) for lyrname in reader: picture_filename = lyrname['File Name'] gps_latitude = lyrname['Latitude'] gps_longitude = lyrname['Longitude'] gps_altitude = '20' gps_lat_ref = lyrname['Lat Ref'] gps_lon_ref = lyrname['Lon Ref'] command_string = f'exiftool -GPSLatitude="{gps_latitude}" {picture_filename}' os.system(command_string) command_string = f'exiftool -GPSLatitudeRef="{gps_lat_ref}" {picture_filename}' os.system(command_string) command_string = f'exiftool -GPSLongitude="{gps_longitude}" {picture_filename}' os.system(command_string) command_string = f'exiftool -GPSLongitudeRef="{gps_lon_ref}" {picture_filename}' os.system(command_string) command_string = f'exiftool -GPSAltitude="{gps_altitude}" {picture_filename}' os.system(command_string)<\/code><\/pre> <\/P> <\/P> <\/P> Ändern sie den Dateipfad auf ihr eigenes Arbeitsverzeichnis (der String hinter dem Befehl "open" in Zeile 3) ab und speichern sie dieses Skript im Arbeitsverzeichnis unter dem Namen "batch_exif_writing.py" ab. Öffnen sie ein Kommandozeilenfenster und wechseln ins Arbeitsverzeichnis (mit "cd C:\Users\YOUR_NAME\Documents\FPV Geotagging"). Geben sie "python batch_exif_writing.py" ein und drücken Enter. Im Terminal sollten Meldungen wie "1 image has been updated" erscheinen während alle Dateien geotaggt werden.<\/P>Sobald das Skript fertig läuft (bei mir dauerte es etwa 5 Minuten), sind ihre Bilder geotaggt und können in Drone2Map geladen werden! Ich hoffe jedenfalls sehr, dass diese Anleitung jemandem hilft da draußen, die die DJI FPV Drohne und Drone2Map verwenden möchten. Ich arbeite noch daran, die Bilder zu bereinigen, um Artefakte/ungewollte Bildteile aus dem Aufnahmeprozess zu entfernen. Aber das ist ein Thema für einen anderen Tag. Bitte lassen Sie mich wissen, wenn Sie Bearbeitungen/Vorschläge/Kommentare/Kritiken zu diesem Prozess haben. Ich bin sicher, dass es einfachere Wege gibt, dies zu tun, aber das ist, was für mich funktioniert hat und ich musste es im Vakuum machen. Vielen Dank!<\/P>
Exif Tool hier (laden Sie die Windows-Executable herunter und installieren Sie sie. Ändern Sie den Anwendungsnamen von "exiftool(-k).exe" zu "exiftool.exe" und legen Sie diese dann im Verzeichnis C:\Windows ab):
Visual Studio Code hier:
Wenn alles bereit ist, können wir beginnen. Zuerst erstellen Sie ein Arbeitsverzeichnis. Für dieses Beispiel nenne ich es "C:\User\YOUR_NAME\Documents\FPV Geotagging". Verschieben Sie Ihre Daten (Video und .SRT) von Ihrer microSD-Karte in dieses Verzeichnis. Erstellen Sie jetzt Kopien dieser Daten zur Sicherheit. Gehen Sie auf diese Seite:
Öffnen Sie Ihr FPV-Video im VLC Media Player. Öffnen Sie das Menü "Tools" und wählen Sie "Preferences". Unten links im Fenster der Einstellungen gibt es einen Umschalter zwischen einfachen und erweiterten Einstellungen. Wählen Sie erweiterte Einstellungen aus. Scrollen Sie im linken Menü nach unten zum Menü "Video". Klicken Sie auf das Dropdown-Menü, um alle Videoeinstellungen anzuzeigen, und klicken Sie auf "Filters". Die rechte Hälfte dieses Fensters sollte nun mehrere Filter mit Kontrollkästchen anzeigen. Aktivieren Sie den Filter namens "Scene video filter" (in meiner VLC-Version ist er der dritte von oben in der zweiten Spalte). Mit diesem Filter ausgewählt kehren Sie zum scrollbaren Menü links zurück und klicken auf den Pfeil neben dem Wort "Filters". Scrollen Sie nach unten und wählen Sie "Scene filter" aus. Ändern Sie die Einstellungen so, dass das Bildformat "JPG" ist und der Verzeichnispfad-Präfix unser Arbeitsverzeichnis ist (in diesem Fall "C:\User\YOUR_NAME\Documents\FPV Geotagging"). Passen Sie als Nächstes das Aufnahmeverhältnis entsprechend der Bildrate Ihrer Kamera und wie viele Fotos aus diesem Video exportiert werden sollen an. DJI FPV nimmt mit 60 Bildern pro Sekunde auf, daher habe ich das Aufnahmeverhältnis auf 60 gesetzt, um jede Sekunde ein Foto aufzunehmen. Für weitere Informationen darüber, wie das funktioniert und welches Aufnahmeverhältnis verwendet werden sollte, sehen Sie sich diesen großartigen Leitfaden an (
Öffnen Sie Visual Studio Code sowie die zuvor gespeicherte CSV-Datei. Falls VS Code noch eingerichtet werden muss, tun Sie dies jetzt. Es gibt viele Online-Dokumentationen dazu. Wenn Sie eine andere Code-Bearbeitungssoftware verwenden, ignorieren Sie diesen Teil einfach .<\/P>
Angenommen, Sie verwenden Microsoft Excel: Kehren Sie zur CSV zurück und erstellen neben der Spalte "FRAMECNT" eine neue Spalte namens "File Name". Markieren Sie die Werte in der Spalte "FRAMECNT", klicken mit der rechten Maustaste darauf und wählen „Zellen formatieren“. Wählen Sie im linken Menü „Spezial“ aus und dann unter „Typ“ „Postleitzahl“. Dadurch werden führende Nullen zu unserer Frame-Zählung hinzugefügt. Es gibt andere Methoden dafür; wenn Ihnen eine bessere Methode bekannt ist, posten Sie diese bitte. Dies ist nur eine schnelle und einfache Lösung dafür. In der ersten Zelle unter „File Name“ erstellen Sie einen Ausdruck zur Rekonstruktion des Dateinamens; in diesem Fall soll „scene00001.jpg“ in der ersten Zelle unter „File Name“ stehen, „scene00061.jpg“ in der zweiten usw. Stellen Sie sicher, dass diese Werte als Werte eingefügt oder neu erstellt werden (nicht als Formeln). Erstellen Sie ein neues Blatt innerhalb dieser CSV-Datei und öffnen ein Windows Explorer-Fenster. Navigieren Sie zum Arbeitsverzeichnis. Sortieren alle Dateien nach Namen und markieren alle Drohnenbilddateien (nur<\/EM> die Bilder). Halten Sie Shift gedrückt, klicken mit der rechten Maustaste darauf und wählen „Pfad kopieren“. Kehren zurück zu Excel und unserem leeren Blatt; fügen die Liste der Dateien ein. Erstellen erneut eine Spalte namens „File Name“ und extrahieren die Dateinamen vom Ende der Dateipfade (mit „=RECHTS(A2;14)“ sollte das funktionieren). Ziehen diese Formel nach unten durch alle Zeilen durch; stellen sicher, dass diese Spalte als Werte eingefügt wird (nicht als Formeln). Erstellen fünf neue Spalten namens „LATITUDE“, „LAT REF“, „LONGITUDE“, „LON REF“ und „ALTITUDE“. Verwenden X- oder VLOOKUP-Funktionen um für jede Datei Latitude-, Longitude- und Höhenwerte anhand der Spalte „File Name“ abzurufen. In den Spalten Lat/Lon Ref geben sie N/S bzw E/W ein (siehe:
<\/P>
Kehren wir zu Visual Studio zurück: Fügen sie folgenden Block ein:<\/P>
import os import csv with open('F:\/Drone Footage \/05.10.2022 \/Frame_Geotagging_Data.csv','r') as file: reader=csv.DictReader(file) for lyrname in reader: picture_filename = lyrname['File Name'] gps_latitude = lyrname['Latitude'] gps_longitude = lyrname['Longitude'] gps_altitude = '20' gps_lat_ref = lyrname['Lat Ref'] gps_lon_ref = lyrname['Lon Ref'] command_string = f'exiftool -GPSLatitude="{gps_latitude}" {picture_filename}' os.system(command_string) command_string = f'exiftool -GPSLatitudeRef="{gps_lat_ref}" {picture_filename}' os.system(command_string) command_string = f'exiftool -GPSLongitude="{gps_longitude}" {picture_filename}' os.system(command_string) command_string = f'exiftool -GPSLongitudeRef="{gps_lon_ref}" {picture_filename}' os.system(command_string) command_string = f'exiftool -GPSAltitude="{gps_altitude}" {picture_filename}' os.system(command_string)<\/code><\/pre> <\/P> <\/P> <\/P> Ändern sie den Dateipfad auf ihr eigenes Arbeitsverzeichnis (der String hinter dem Befehl "open" in Zeile 3) ab und speichern sie dieses Skript im Arbeitsverzeichnis unter dem Namen "batch_exif_writing.py" ab. Öffnen sie ein Kommandozeilenfenster und wechseln ins Arbeitsverzeichnis (mit "cd C:\Users\YOUR_NAME\Documents\FPV Geotagging"). Geben sie "python batch_exif_writing.py" ein und drücken Enter. Im Terminal sollten Meldungen wie "1 image has been updated" erscheinen während alle Dateien geotaggt werden.<\/P>Sobald das Skript fertig läuft (bei mir dauerte es etwa 5 Minuten), sind ihre Bilder geotaggt und können in Drone2Map geladen werden! Ich hoffe jedenfalls sehr, dass diese Anleitung jemandem hilft da draußen, die die DJI FPV Drohne und Drone2Map verwenden möchten. Ich arbeite noch daran, die Bilder zu bereinigen, um Artefakte/ungewollte Bildteile aus dem Aufnahmeprozess zu entfernen. Aber das ist ein Thema für einen anderen Tag. Bitte lassen Sie mich wissen, wenn Sie Bearbeitungen/Vorschläge/Kommentare/Kritiken zu diesem Prozess haben. Ich bin sicher, dass es einfachere Wege gibt, dies zu tun, aber das ist, was für mich funktioniert hat und ich musste es im Vakuum machen. Vielen Dank!<\/P>
OMG this is amazing @RyanWalter . gonna try this out and let you know how it goes!
Angemeldete Mitglieder können Beiträge verfassen, Updates folgen und mehr. Neu hier? Registriere ein kostenloses Konto.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.