360-Grad-Video in Oriented Imagery (Indoors)

Zusammenfassung

Extrahiert 360-Grad-Bilder aus 360-Grad-Videos in ein Oriented Imagery-Dataset. Die Ausgabe dieses Werkzeugs kann geschossbezogenen Karten und Szenen in ArcGIS Pro hinzugefügt werden.

Verwendung

  • Dieses Werkzeug unterstützt 360-Grad-MP4-Videos, die mit einer 360-Grad-Kamera aufgenommen wurden. Für das jeweilige Video muss eine äquirektanguläre Darstellung verwendet werden.

  • Der Parameterwert Ziel für Oriented Imagery muss ein Oriented Imagery-Layer mit Z-Werten sein.

    Hinweis:

    Verwenden Sie zum Erstellen eines Oriented Imagery-Dataset das Werkzeug Oriented Imagery-Dataset erstellen.

  • Der Oriented Imagery-Ziel-Layer kann aus einem lokalen Oriented Imagery-Dataset oder einem gehosteten Feature-Service stammen. Beim Importieren von Fotos in einen gehosteten Feature-Service muss der Feature-Service Feature-Anlagen unterstützen.

  • Georeferenzieren Sie die Ausgabe-Features mit den Parametern Passpunkt 1 und Passpunkt 2. Legen Sie die Parameterwerte wie folgt fest:

    • Videozeit: Geben Sie einen Zeitstempel für die Videowiedergabe an, um die Kameraposition im Format hh:mm:ss.s zu bestimmen.

      Verwenden Sie Zeitstempel, die mindestens 5 Sekunden vom Start oder Ende des Videos entfernt sind. Zwischen den Passpunkten müssen mindestens 5 Sekunden liegen.

    • Kameraposition: Platzieren Sie einen Punkt auf der Karte, der die Position der Kamera zum angegebenen Zeitstempel wiedergibt.

      Die Kamerapositionen müssen mindestens 1 Meter auseinanderliegen.

    Tipp:

    Verwenden Sie Passpunkte mit dem größtmöglichen Abstand zueinander, um die Genauigkeit bei der Georeferenzierung zu erhöhen.

  • Verwenden Sie die folgenden Parameter für die Videoextraktion, um anzugeben, wie die Bilder entlang des Videopfads automatisch extrahiert werden sollen:

    • Extraktionsintervall: Die Zeitdauer zwischen Ausgabebildern. Der Standardwert beträgt 2 Sekunden, was einer Bewegung von etwa 1,2 bis 1,8 Metern (4 bis 6 Fuß) bei durchschnittlichem Schritttempo entspricht.
    • Startzeitstempel: Der Zeitstempel für den Beginn der Extraktion von Bildern aus dem Video im Format hh:mm:ss.s. Verwenden Sie z. B. den Wert 00:15:10, wenn Sie die Extraktion bei 15 Minuten und 10 Sekunden im Video beginnen möchten. Die Standardeinstellung ist der Anfang des Videos.
    • Endzeitstempel: Der Zeitstempel für das Ende der Extraktion von Bildern aus dem Video im Format hh:mm:ss.s. Verwenden Sie z. B. den Wert 01:10:00, wenn Sie die Extraktion bei 1 Stunde und 10 Minuten im Video beenden möchten. Die Standardeinstellung ist das Ende des Videos.
    Hinweis:

    Die tatsächliche Startzeit, Endzeit und Zeit zwischen den extrahierten Bildern kann je nach Qualität des Eingabevideos variieren.

  • Dieses Werkzeug verwendet VSLAM (Visual Simultaneous Localization and Mapping), um die relativen Positionen und Ausrichtungen der extrahierten Bilder zu bestimmen. Die VSLAM-Genauigkeit hängt von Faktoren wie Bewegungsunschärfe, der Anzahl der verfolgbaren Positionen (Kanten, Ecken, Texturen) in der Umgebung und der Bewegungsgeschwindigkeit der Kamera ab.

  • Verwenden Sie den Parameter Eingabe-Ebenen-Feature, um zu bestimmen, wie Bilder für die Verwendung mit Indoor-Karten aufbereitet werden. Wenn ein Wert für diesen Parameter angegeben wird, konfiguriert das Werkzeug die Ausgabe-Features wie folgt:

    • Ist der Oriented Imagery-Ziel-Layer bereits geschossbezogen, speichert das Werkzeug Ebenen-ID-Werte im konfigurierten Geschossfeld des Layers. Andernfalls speichert das Werkzeug Ebenen-ID-Werte im LEVEL_ID-Feld des Layers. Das Werkzeug fügt LEVEL_ID hinzu, sofern erforderlich.
    • Wenn keine Passpunkte angegeben sind, werden die Ausgabe-Features entsprechend der Ausdehnung und Höhe des ausgewählten Ebenen-Features verschoben und skaliert. Allen Ausgabe-Features wird der Level-ID-Wert des ausgewählten Level-Features zugewiesen.
    • Sind Passpunkte angegeben, werden die ausgegebenen Features basierend auf den Passpunkten georeferenziert (verschoben, gedreht und skaliert). Georeferenzierten Features, die sich innerhalb des ausgewählten Ebenen-Features befinden, werden die ID und die Höhe dieser Ebene zugewiesen. Features außerhalb der Ebene erhalten die ID "Null" und die Höhe "0".

Parameter

BeschriftungErläuterungDatentyp
Eingabe-360-Grad-Video

Die .mp4-Eingabedatei des 360-Grad-Videos, aus dem 360-Grad-Bilder extrahiert werden.

File
Ziel für Oriented Imagery

Der Ziel-Oriented Imagery-Layer, dem Features hinzugefügt werden.

Oriented Imagery Layer
Ziel-Bildordner

Der vorhandene Ordner, in den die Bilddatendateien geschrieben werden.

Folder
Passpunkt 1
(optional)

Der erste Passpunkt, der für die Georeferenzierung der Ausgabe-Features verwendet wird.

  • Videozeit: Der Videozeitstempel im Format hh:mm:ss.s.
  • Kameraposition: Das Punkt-Feature, das die Position der Kamera auf der Karte zum angegebenen Videozeitstempel darstellt.

Value Table
Passpunkt 2
(optional)

Der zweite Passpunkt, der für die Georeferenzierung der Ausgabe-Features verwendet wird.

  • Videozeit: Der Videozeitstempel im Format hh:mm:ss.s.
  • Kameraposition: Das Punkt-Feature, das die Position der Kamera auf der Karte zum angegebenen Videozeitstempel darstellt.

Value Table
Eingabe-Ebenen-Feature
(optional)

Der Eingabe-Layer "Levels" aus dem Indoors-Modell, der ein ausgewähltes Ebenen-Feature enthält. Das Werkzeug weist den LEVEL_ID-Wert des ausgewählten Ebenen-Features dem Ebenen-ID-Feld des Oriented Imagery-Ausgabe-Features zu.

Feature Layer
Extraktionsintervall
(optional)

Das Intervall, in dem die Bilder aus dem Eingabevideo extrahiert werden. Sie können die Intervalleinheit "Millisekunden", "Sekunden" oder "Minuten" auswählen. Der Standard beträgt 2 Sekunden, und das Minimum liegt bei 0,2 Sekunden (200 Millisekunden).

Time Unit
Startzeitstempel
(optional)

Ein Startpunkt im Video, an dem mit der Extraktion der Bilder begonnen wird. Akzeptiert werden Eingaben im Format hh:mm:ss.s.

String
Ende-Zeitstempel
(optional)

Ein Endpunkt im Video, an dem die Extraktion der Bilder beendet wird. Akzeptiert werden Eingaben im Format hh:mm:ss.s.

String

Abgeleitete Ausgabe

BeschriftungErläuterungDatentyp
Aktualisiertes Oriented Imagery

Das aktualisierte Oriented Imagery-Dataset. Vorhandene Oriented Imagery-Daten bleiben beim Import erhalten. Für jedes Bild in den Eingabedaten wird ein neues Punkt-Feature hinzugefügt, wobei das verknüpfte Bild als Anlage hinzugefügt wird. Attribute werden für neu hinzugefügte Punkt-Features basierend auf den Attributen der Eingabe-Bilddatei festgelegt.

Oriented Imagery Layer
Aktualisierter Bilddatenordner

Der aktualisierte Ordner, in den die Bilddatendateien geschrieben werden.

Folder

arcpy.indoors.ThreeSixtyVideoToOrientedImagery(in_360_video, target_oriented_imagery, target_image_folder, {control_point_1}, {control_point_2}, {in_levels_feature}, {extraction_interval}, {start_timestamp}, {end_timestamp})
NameErläuterungDatentyp
in_360_video

Die .mp4-Eingabedatei des 360-Grad-Videos, aus dem 360-Grad-Bilder extrahiert werden.

File
target_oriented_imagery

Der Ziel-Oriented Imagery-Layer, dem Features hinzugefügt werden.

Oriented Imagery Layer
target_image_folder

Der vorhandene Ordner, in den die Bilddatendateien geschrieben werden.

Folder
control_point_1
[control_point_1,...]
(optional)

Der erste Passpunkt, der für die Georeferenzierung der Ausgabe-Features verwendet wird.

  • Videozeit: Der Videozeitstempel im Format hh:mm:ss.s.
  • Kameraposition: Das Punkt-Feature, das die Position der Kamera auf der Karte zum angegebenen Videozeitstempel darstellt.

Value Table
control_point_2
[control_point_2,...]
(optional)

Der zweite Passpunkt, der für die Georeferenzierung der Ausgabe-Features verwendet wird.

  • Videozeit: Der Videozeitstempel im Format hh:mm:ss.s.
  • Kameraposition: Das Punkt-Feature, das die Position der Kamera auf der Karte zum angegebenen Videozeitstempel darstellt.

Value Table
in_levels_feature
(optional)

Der Eingabe-Layer "Levels" aus dem Indoors-Modell, der ein ausgewähltes Ebenen-Feature enthält. Das Werkzeug weist den LEVEL_ID-Wert des ausgewählten Ebenen-Features dem Ebenen-ID-Feld des Oriented Imagery-Ausgabe-Features zu.

Feature Layer
extraction_interval
(optional)

Das Intervall, in dem die Bilder aus dem Eingabevideo extrahiert werden. Sie können die Intervalleinheit "Millisekunden", "Sekunden" oder "Minuten" auswählen. Der Standard beträgt 2 Sekunden, und das Minimum liegt bei 0,2 Sekunden (200 Millisekunden).

Time Unit
start_timestamp
(optional)

Ein Startpunkt im Video, an dem mit der Extraktion der Bilder begonnen wird. Akzeptiert werden Eingaben im Format hh:mm:ss.s.

String
end_timestamp
(optional)

Ein Endpunkt im Video, an dem die Extraktion der Bilder beendet wird. Akzeptiert werden Eingaben im Format hh:mm:ss.s.

String

Abgeleitete Ausgabe

NameErläuterungDatentyp
updated_oriented_imagery

Das aktualisierte Oriented Imagery-Dataset. Vorhandene Oriented Imagery-Daten bleiben beim Import erhalten. Für jedes Bild in den Eingabedaten wird ein neues Punkt-Feature hinzugefügt, wobei das verknüpfte Bild als Anlage hinzugefügt wird. Attribute werden für neu hinzugefügte Punkt-Features basierend auf den Attributen der Eingabe-Bilddatei festgelegt.

Oriented Imagery Layer
updated_image_folder

Der aktualisierte Ordner, in den die Bilddatendateien geschrieben werden.

Folder

Codebeispiel

ThreeSixtyVideoToOrientedImagery: Beispiel 1 (Python-Fenster)

Das folgende Skript für das Python-Fenster veranschaulicht, wie die Funktion ThreeSixtyVideoToOrientedImagery im Direkt-Modus verwendet wird.

import arcpy

#Note: Video timestamps are strings in format hh:mm:ss.s

arcpy.indoors.ThreeSixtyVideoToOrientedImagery(r"C:\SiteFootage\Building1_Floor1.mp4", r"C:\Campus.gdb\OIDataset", r"C:\Data\ImagesFolder", 
                                               "", "", "", "", "", "")
ThreeSixtyVideoToOrientedImagery: Beispiel 2 (Python-Fenster)

Das folgende eigenständige Skript veranschaulicht, wie die Funktion ThreeSixtyVideoToOrientedImagery verwendet wird.

# Import system modules
import arcpy

# Create temporary control point feature classes in memory for camera locations
sr = arcpy.SpatialReference(102100) # WGS 1984 Web Mercator (Auxiliary Sphere)
arcpy.management.CreateFeatureClass("memory", "point_1_fc", "POINT", spatial_reference=sr)
arcpy.management.CreateFeatureClass("memory", "point_2_fc", "POINT", spatial_reference=sr)

# Add camera locations to the temporary control point feature classes
with arcpy.da.InsertCursor(r"memory\point_1_fc", ["SHAPE@XY"]) as cursor:
    cursor.insertRow([arcpy.Point(-13046063.3, 4036427.6)])
with arcpy.da.InsertCursor(r"memory\point_2_fc", ["SHAPE@XY"]) as cursor:
    cursor.insertRow([arcpy.Point(-13046055.9, 4036422.1)])

# Set local variables

# Set the control point parameter values
# Note: Video timestamps are strings in format hh:mm:ss.s
control_point_1 = ["00:05:40.7", r"memory\point_1_fc"]
control_point_2 = ["00:11:25.3", r"memory\point_2_fc"]

# Specify indoor level for floor awareness
arcpy.management.MakeFeatureLayer(r"C:\IndoorsModel.gdb\Indoor\Levels", "levels_lyr", 
                                  "NAME = 'Building 1 Floor 1'")
in_levels_feature = "levels_lyr"

# Set remaining parameter variables
in_360_video = r"C:\SiteVideos\Building1_Floor1.mp4"
target_oriented_imagery = r"C:\Campus.gdb\OIDataset" 
target_image_folder = r"C:\Data\ImagesFolder"
extraction_interval = "5 Seconds"
start_timestamp = "00:05:35"
end_timestamp="00:15:00"



# Run the tool
arcpy.indoors.ThreeSixtyVideoToOrientedImagery(in_360_video, target_oriented_imagery, target_image_folder, control_point_1, control_point_2, 
in_levels_feature, extraction_interval, start_timestamp, end_timestamp) 

# Release memory
del cursor
arcpy.Delete_management(r"memory\point_1_fc")
arcpy.Delete_management(r"memory\point_2_fc")

Umgebungen

Dieses Werkzeug verwendet keine Geoverarbeitungsumgebungen.

Lizenzinformationen

  • Basic: Nein
  • Standard: Nein
  • Advanced: Erfordert ArcGIS Indoors Pro oder ArcGIS Indoors Maps

Verwandte Themen