Vidéo à 360° vers imagerie orientée (Indoors)

Synthèse

Extrait des images à 360 degrés depuis une vidéo à 360 degrés dans un jeu de données d’imagerie orientée. Le résultat de cet outil peut être ajouté aux cartes et scènes tenant compte des étages dans ArcGIS Pro.

Utilisation

  • Cet outil prend en charge les vidéos MP4 à 360 degrés capturées par une caméra à 360 degrés. Les vidéos doivent utiliser une représentation équirectangulaire.

  • La valeur du paramètre Imagerie orientée cible doit être une couche d’imagerie orientée compatible avec les valeurs Z.

    Remarque :

    Créez un jeu de données d’imagerie orientée avec l’outil Créer un jeu de données d’imagerie orientée.

  • La couche d’imagerie orientée cible peut provenir d’un jeu de données d’imagerie orientée local ou d’un service d’entités hébergé. Si vous importez des photos dans un service d’entités hébergé, le service d’entités doit prendre en charge les pièces jointes de l’entité.

  • Géoréférencez les entités en sortie grâce aux paramètres Point de contrôle 1 et Point de contrôle 2. Définissez les valeurs des paramètres comme suit :

    • Temps vidéo : indiquez un horodatage de lecture vidéo au format hh:mm:ss.s pour déterminer la localisation de la caméra.

      Utilisez des horodatages qui se trouvent à au moins 5 secondes du début ou de la fin de la vidéo, et à au moins 5 secondes des points de contrôle.

    • Localisation de caméra : placez un point sur la carte qui reflète le positionnement de la caméra à l’horodatage indiqué.

      Les localisations de caméra doivent se trouver à une distance d’au moins 1 mètre les unes des autres.

    Conseil :

    Utilisez des points de contrôle séparés par la plus grande distance possible pour augmenter la précision lors du géoréférencement.

  • Utilisez les paramètres d’extraction vidéo pour indiquer la façon dont les images sont extraites automatiquement le long de la trajectoire vidéo :

    • Intervalle d’extraction : temps qui s’écoule entre les images en sortie. La valeur par défaut est de 2 secondes, soit un déplacement d’environ 1,2 à 1,8 mètre (4 à 6 pieds) à un rythme de marche moyen.
    • Horodatage de début : horodatage pour lancer l’extraction des images de la vidéo au format hh:mm:ss.s. Par exemple, utilisez la valeur 00:15:10 pour commencer l’extraction à 15 minutes, 10 secondes dans la vidéo. La valeur par défaut est le début de la vidéo.
    • Horodatage de fin : horodatage pour arrêter l’extraction des images de la vidéo au format hh:mm:ss.s. Par exemple, utilisez la valeur 01:10:00 pour mettre fin à l’extraction à 1 heure, 10 minutes dans la vidéo. La valeur par défaut est la fin de la vidéo.
    Remarque :

    Les temps de début, de fin et l’intervalle effectifs entre les images extraites peuvent varier en fonction de la qualité de la vidéo en entrée.

  • Cet outil utilise une localisation et cartographie simultanées visuelles (VSLAM) pour déterminer les positions et orientations relatives des images extraites. La précision VSLAM dépend de plusieurs facteurs, dont le flou de bougé, le nombre de localisations pouvant faire l’objet d’un suivi (segments, coins, textures) dans l’environnement et la vitesse de mouvement de la caméra.

  • Utilisez le paramètre Entités Niveau en entrée pour déterminer la façon dont les images sont préparées pour être utilisées dans les cartes indoor. Lorsqu’une valeur est précisée pour ce paramètre, l’outil configure les entités en sortie comme suit :

    • Si la couche d’imagerie orientée cible tient déjà compte des étages, l’outil stocke les valeurs ID de niveau dans le champ d’étage configuré de la couche. Sinon, l’outil enregistre les valeurs ID de niveau dans le champ LEVEL_ID de la couche. L’outil ajoute le champ LEVEL_ID, si nécessaire.
    • Si aucun point de contrôle n’est indiqué, les entités en sortie sont déplacées et mises à l’échelle en fonction de l’étendue et de l’élévation des entités Niveau sélectionnées. La valeur ID de niveau des entités Niveau sélectionnées sont attribuées à toutes les entités en sortie.
    • Lorsque les points de contrôle sont indiqués, les entités en sortie sont géoréférencées (déplacées, pivotées et mises à l’échelle) en fonction des points de contrôle. Les entités géoréférencées qui se trouvent parmi les entités Niveau sélectionnées reçoivent l’ID et l’élévation des niveaux en question. Un ID de valeur Null et une élévation égale à 0 sont attribués aux entités figurant hors du niveau.

Paramètres

ÉtiquetteExplicationType de données
Vidéo à 360° en entrée

Fichier .mp4 en entrée contenant une vidéo à 360° à partir de laquelle les images à 360° sont extraites.

File
Imagerie orientée cible

Couche d’imagerie orientée cible à laquelle ajouter les entités.

Oriented Imagery Layer
Dossier d’images cible

Dossier existant où les fichiers d’imagerie sont enregistrés.

Folder
Point de contrôle 1
(Facultatif)

Premier point de contrôle utilisé pour géoréférencer les entités en sortie.

  • Temps vidéo : horodatage vidéo au format hh:mm:ss.s.
  • Localisation de caméra : entité ponctuelle représentant la localisation de la caméra sur la carte à l’horodatage vidéo indiqué.

Value Table
Point de contrôle 2
(Facultatif)

Deuxième point de contrôle utilisé pour géoréférencer les entités en sortie.

  • Temps vidéo : horodatage vidéo au format hh:mm:ss.s.
  • Localisation de caméra : entité ponctuelle représentant la localisation de la caméra sur la carte à l’horodatage vidéo indiqué.

Value Table
Entités Niveau en entrée
(Facultatif)

Couche Niveaux en entrée du modèle Indoors qui contient une entité Niveau sélectionnée. L’outil attribue la valeur LEVEL_ID de l’entité Niveau sélectionnée au champ ID de niveau de l’entité d’imagerie orientée en sortie.

Feature Layer
Intervalle d’extraction
(Facultatif)

Intervalle d’extraction des images depuis la vidéo en entrée. Vous pouvez sélectionner une unité en millisecondes, secondes ou minutes pour l’intervalle. La valeur par défaut correspond à 2 secondes et la valeur minimale à 0,2 secondes (200 millisecondes).

Time Unit
Horodatage de début
(Facultatif)

Point initial de la vidéo pour lancer l’extraction des images. L’entrée autorisée est au format hh:mm:ss.s.

String
Horodatage de fin
(Facultatif)

Point final de la vidéo pour terminer l’extraction des images. L’entrée autorisée est au format hh:mm:ss.s.

String

Sortie obtenue

ÉtiquetteExplicationType de données
Imagerie orientée mise à jour

Jeu de données d’imagerie orientée mis à jour. Les données d’imagerie orientée existantes sont conservées lors de l’importation. Une nouvelle entité ponctuelle est ajoutée pour chaque image dans les données en entrée, avec l’image associée comme pièce jointe. Les attributs sont définis sur les nouvelles entités ponctuelles selon les attributs du fichier image en entrée.

Oriented Imagery Layer
Dossier d’imagerie mis à jour

Dossier mis à jour dans lequel les fichiers d’imagerie sont enregistrés.

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})
NomExplicationType de données
in_360_video

Fichier .mp4 en entrée contenant une vidéo à 360° à partir de laquelle les images à 360° sont extraites.

File
target_oriented_imagery

Couche d’imagerie orientée cible à laquelle ajouter les entités.

Oriented Imagery Layer
target_image_folder

Dossier existant où les fichiers d’imagerie sont enregistrés.

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

Premier point de contrôle utilisé pour géoréférencer les entités en sortie.

  • Temps vidéo : horodatage vidéo au format hh:mm:ss.s.
  • Localisation de caméra : entité ponctuelle représentant la localisation de la caméra sur la carte à l’horodatage vidéo indiqué.

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

Deuxième point de contrôle utilisé pour géoréférencer les entités en sortie.

  • Temps vidéo : horodatage vidéo au format hh:mm:ss.s.
  • Localisation de caméra : entité ponctuelle représentant la localisation de la caméra sur la carte à l’horodatage vidéo indiqué.

Value Table
in_levels_feature
(Facultatif)

Couche Niveaux en entrée du modèle Indoors qui contient une entité Niveau sélectionnée. L’outil attribue la valeur LEVEL_ID de l’entité Niveau sélectionnée au champ ID de niveau de l’entité d’imagerie orientée en sortie.

Feature Layer
extraction_interval
(Facultatif)

Intervalle d’extraction des images depuis la vidéo en entrée. Vous pouvez sélectionner une unité en millisecondes, secondes ou minutes pour l’intervalle. La valeur par défaut correspond à 2 secondes et la valeur minimale à 0,2 secondes (200 millisecondes).

Time Unit
start_timestamp
(Facultatif)

Point initial de la vidéo pour lancer l’extraction des images. L’entrée autorisée est au format hh:mm:ss.s.

String
end_timestamp
(Facultatif)

Point final de la vidéo pour terminer l’extraction des images. L’entrée autorisée est au format hh:mm:ss.s.

String

Sortie obtenue

NomExplicationType de données
updated_oriented_imagery

Jeu de données d’imagerie orientée mis à jour. Les données d’imagerie orientée existantes sont conservées lors de l’importation. Une nouvelle entité ponctuelle est ajoutée pour chaque image dans les données en entrée, avec l’image associée comme pièce jointe. Les attributs sont définis sur les nouvelles entités ponctuelles selon les attributs du fichier image en entrée.

Oriented Imagery Layer
updated_image_folder

Dossier mis à jour dans lequel les fichiers d’imagerie sont enregistrés.

Folder

Exemple de code

Exemple 1 d’utilisation de la fonction ThreeSixtyVideoToOrientedImagery (fenêtre Python)

Le script ci-dessous pour la fenêtre Python montre comment utiliser la fonction ThreeSixtyVideoToOrientedImagery en mode immédiat.

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", 
                                               "", "", "", "", "", "")
Exemple 2 d’utilisation de la fonction ThreeSixtyVideoToOrientedImagery (fenêtre Python)

Le script autonome ci-dessous illustre l’utilisation de la fonction 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")

Environnements

Cet outil n’utilise pas d’environnement de géotraitement.

Informations de licence

  • Basic: Non
  • Standard: Non
  • Advanced: Nécessite ArcGIS Indoors Pro ou ArcGIS Indoors Maps

Rubriques connexes