Vídeo 360 a imágenes orientadas (Indoors)

Resumen

Extrae imágenes de 360 grados de un vídeo de 360 grados y las convierte en un dataset de imágenes orientadas. La salida de esta herramienta se puede agregar a mapas y escenas con reconocimiento de plantas en ArcGIS Pro.

Uso

  • Esta herramienta admite vídeos MP4 de 360 grados capturados por una cámara de 360 grados. El vídeo debe utilizar una representación equirrectangular.

  • El valor del parámetro Imágenes orientadas al objetivo debe ser una capa de imágenes orientadas habilitada para z.

    Nota:

    Cree un dataset de imágenes orientadas utilizando la herramienta Crear dataset de imágenes orientadas.

  • La capa de imágenes orientadas al objetivo puede proceder de un dataset local de imágenes orientadas o de un servicio de entidades alojado. Al importar fotos a un servicio de entidades alojado, el servicio de entidades debe admitir adjuntos de entidades.

  • Georreferencie las entidades de salida con los parámetros Punto de control 1 y Punto de control 2. Defina los valores de los parámetros de la siguiente manera:

    • Tiempo de vídeo: especifique una marca de tiempo de reproducción de vídeo para determinar la ubicación de la cámara en formato hh:mm:ss.s.

      Utilice marcas de tiempo que estén al menos a 5 segundos del inicio o del final del vídeo, y al menos a 5 segundos entre los puntos de control.

    • Ubicación de la cámara: coloque un punto en el mapa que refleje dónde se encontraba la cámara en la marca de tiempo especificada.

      Las ubicaciones de las cámaras deben estar separadas por al menos 1 metro.

    Sugerencia:

    Utilice puntos de control con la mayor distancia posible entre ellos para aumentar la precisión al georreferenciar.

  • Utilice los siguientes parámetros de extracción de vídeo para especificar cómo se extraerán automáticamente las imágenes a lo largo de la ruta del vídeo:

    • Intervalo de extracción: el tiempo entre las imágenes de salida. El valor predeterminado es 2 segundos, lo que equivale aproximadamente a 1,2-1,8 metros de movimiento a un ritmo de marcha medio.
    • Marca de tiempo de inicio: la marca de tiempo para comenzar a extraer imágenes del vídeo en formato hh:mm:ss.s. Por ejemplo, utilice un valor de 00:15:10 para comenzar la extracción a los 15 minutos y 10 segundos del vídeo. El valor predeterminado es el comienzo del vídeo.
    • Marca de tiempo de finalización: la marca de tiempo para detener la extracción de imágenes del vídeo en formato hh:mm:ss.s. Por ejemplo, utilice un valor de 01:10:00 para finalizar la extracción a 1 hora y 10 minutos del vídeo. El valor predeterminado es el final del vídeo.
    Nota:

    La hora de inicio, la hora de finalización y el tiempo entre las imágenes extraídas pueden variar en función de la calidad del vídeo de entrada.

  • Esta herramienta utiliza la localización y el mapeo simultáneos visuales (VSLAM) para determinar las posiciones y orientaciones relativas de las imágenes extraídas. La precisión del VSLAM depende de factores como el desenfoque por movimiento, el número de ubicaciones rastreables (bordes, esquinas, texturas) en el entorno y la velocidad de movimiento de la cámara.

  • Utilice el parámetro Entidad de niveles de entrada para determinar cómo se prepararán las imágenes para su uso con mapas de interiores. Cuando se especifica un valor para este parámetro, la herramienta configura las entidades de salida de la siguiente manera:

    • Si la capa de imágenes orientadas al objetivo ya tiene en cuenta la planta, la herramienta almacena los valores de Id. de nivel en el campo de planta configurado de la capa. De lo contrario, la herramienta almacenará los valores de Id. de nivel en el campo LEVEL_ID de la capa. La herramienta agregará el LEVEL_ID si es necesario.
    • Si no se especifican puntos de control, las entidades de salida se mueven y se escalan según la extensión y la elevación de la entidad Niveles seleccionada. A todas las entidades de salida se les asigna el valor de Id. de nivel de la entidad Niveles seleccionada.
    • Con los puntos de control especificados, las entidades de salida se georreferencian (se mueven, rotan y escalan) en función de los puntos de control. A las entidades georreferenciadas que se encuentran dentro de la entidad Niveles seleccionada se les asigna el Id. y la elevación de ese nivel; a las entidades fuera del nivel se les asigna un Id. de Null y una elevación de 0.

Parámetros

EtiquetaExplicaciónTipo de datos
Vídeo 360 de entrada

El archivo de entrada .mp4 que contiene el vídeo 360 del que se extraerán las imágenes 360.

File
Imágenes orientadas objetivo

La capa de imágenes orientadas al objetivo a la que se agregarán las entidades.

Oriented Imagery Layer
Carpeta de imágenes de destino

Carpeta existente en la que se escribirán los archivos de imagen.

Folder
Punto de control 1
(Opcional)

El primer punto de control que se utilizará para georreferenciar las entidades de salida.

  • Tiempo de vídeo: la marca de tiempo del vídeo en formato hh:mm:ss.s.
  • Ubicación de la cámara: la entidad de punto que representa la ubicación de la cámara en el mapa en la marca de tiempo de vídeo especificada.

Value Table
Punto de control 2
(Opcional)

El segundo punto de control que se utilizará para georreferenciar las entidades de salida.

  • Tiempo de vídeo: la marca de tiempo del vídeo en formato hh:mm:ss.s.
  • Ubicación de la cámara: la entidad de punto que representa la ubicación de la cámara en el mapa en la marca de tiempo de vídeo especificada.

Value Table
Entidad de niveles de entrada
(Opcional)

La capa Niveles de entrada del modelo de Indoors que contiene un elemento de nivel seleccionado. La herramienta asigna el valor LEVEL_ID del elemento de nivel seleccionado al campo de Id. de nivel del elemento de imágenes orientado a la salida.

Feature Layer
Intervalo de extracción
(Opcional)

El intervalo en el que se extraerán las imágenes del vídeo de entrada. Puede seleccionar una unidad de intervalo de milisegundos, segundos o minutos. El valor predeterminado es 2 segundos y el mínimo es 0,2 segundos (200 milisegundos).

Time Unit
Marca de tiempo inicial
(Opcional)

Punto de inicio del vídeo para comenzar a extraer imágenes. La entrada aceptada es en formato hh:mm:ss.s.

String
Marca de tiempo final
(Opcional)

Punto final del vídeo para terminar de extraer imágenes. La entrada aceptada es en formato hh:mm:ss.s.

String

Salida derivada

EtiquetaExplicaciónTipo de datos
Imágenes orientadas actualizadas

El dataset de imágenes orientadas actualizado. Los datos de imágenes orientadas existentes se conservarán durante la importación. Se incorporará una nueva entidad de punto para cada imagen en los datos de entrada, y la imagen asociada se agrega como un archivo adjunto. Los atributos se establecerán en los nuevos elementos puntuales basándose en los atributos del archivo de imagen de entrada.

Oriented Imagery Layer
Carpeta de imágenes actualizadas

Carpeta actualizada en la que se escribirán los archivos de imágenes.

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})
NombreExplicaciónTipo de datos
in_360_video

El archivo de entrada .mp4 que contiene el vídeo 360 del que se extraerán las imágenes 360.

File
target_oriented_imagery

La capa de imágenes orientadas al objetivo a la que se agregarán las entidades.

Oriented Imagery Layer
target_image_folder

Carpeta existente en la que se escribirán los archivos de imagen.

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

El primer punto de control que se utilizará para georreferenciar las entidades de salida.

  • Tiempo de vídeo: la marca de tiempo del vídeo en formato hh:mm:ss.s.
  • Ubicación de la cámara: la entidad de punto que representa la ubicación de la cámara en el mapa en la marca de tiempo de vídeo especificada.

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

El segundo punto de control que se utilizará para georreferenciar las entidades de salida.

  • Tiempo de vídeo: la marca de tiempo del vídeo en formato hh:mm:ss.s.
  • Ubicación de la cámara: la entidad de punto que representa la ubicación de la cámara en el mapa en la marca de tiempo de vídeo especificada.

Value Table
in_levels_feature
(Opcional)

La capa Niveles de entrada del modelo de Indoors que contiene un elemento de nivel seleccionado. La herramienta asigna el valor LEVEL_ID del elemento de nivel seleccionado al campo de Id. de nivel del elemento de imágenes orientado a la salida.

Feature Layer
extraction_interval
(Opcional)

El intervalo en el que se extraerán las imágenes del vídeo de entrada. Puede seleccionar una unidad de intervalo de milisegundos, segundos o minutos. El valor predeterminado es 2 segundos y el mínimo es 0,2 segundos (200 milisegundos).

Time Unit
start_timestamp
(Opcional)

Punto de inicio del vídeo para comenzar a extraer imágenes. La entrada aceptada es en formato hh:mm:ss.s.

String
end_timestamp
(Opcional)

Punto final del vídeo para terminar de extraer imágenes. La entrada aceptada es en formato hh:mm:ss.s.

String

Salida derivada

NombreExplicaciónTipo de datos
updated_oriented_imagery

El dataset de imágenes orientadas actualizado. Los datos de imágenes orientadas existentes se conservarán durante la importación. Se incorporará una nueva entidad de punto para cada imagen en los datos de entrada, y la imagen asociada se agrega como un archivo adjunto. Los atributos se establecerán en los nuevos elementos puntuales basándose en los atributos del archivo de imagen de entrada.

Oriented Imagery Layer
updated_image_folder

Carpeta actualizada en la que se escribirán los archivos de imágenes.

Folder

Muestra de código

Ejemplo 1 de ThreeSixtyVideoToOrientedImagery (ventana de Python)

La siguiente secuencia de comandos de la ventana de Python muestra cómo utilizar la función ThreeSixtyVideoToOrientedImagery de modo inmediato.

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", 
                                               "", "", "", "", "", "")
Ejemplo 2 de ThreeSixtyVideoToOrientedImagery (ventana de Python)

El siguiente script independiente muestra cómo utilizar la función ThreeSixtyVideoToOrientedImagery.

# 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")

Entornos

Esta herramienta no utiliza ningún entorno de geoprocesamiento.

Información de licenciamiento

  • Basic: No
  • Standard: No
  • Advanced: Requiere ArcGIS Indoors Pro o ArcGIS Indoors Maps

Temas relacionados