Papier | Arxiv | Code NVS | Page du projet
L'ensemble de données MegaScenes est une vaste collection d'environ 430 000 scènes et 9 millions d'images et géométries épipolaires, comprenant plus de 100 000 reconstructions de structure à partir du mouvement à partir de 2 millions de ces images. Les images de ces scènes sont capturées dans diverses conditions, notamment différentes heures de la journée, différentes conditions météorologiques et éclairages, et à partir de différents appareils dotés de caméras intrinsèques distinctes.
Pour visualiser les reconstructions dans le navigateur, consultez notre Web Viewer !
Nous fournissons une fiche technique pour MegaScenes ici .
Si vous trouvez notre ensemble de données ou notre article utile, pensez à le citer
@inproceedings {
tung2024megascenes,
title = { MegaScenes: Scene-Level View Synthesis at Scale } ,
author = { Tung, Joseph and Chou, Gene and Cai, Ruojin and Yang, Guandao and Zhang, Kai and Wetzstein, Gordon and Hariharan, Bharath and Snavely, Noah } ,
booktitle = { ECCV } ,
year = { 2024 }
}
L'ensemble de données MegaScenes est hébergé sur Amazon S3 grâce au programme de parrainage AWS Open Data.
Plus précisément, MegaScenes utilise l'URL du compartiment AWS S3 s3://megascenes/
dans la région AWS US-West-2
.
Tous les fichiers peuvent être téléchargés individuellement . Ils ne sont pas regroupés dans des fichiers .tar
ou .zip
.
Les utilisateurs peuvent accéder à l'ensemble de données à l'aide de s5cmd ou d'AWS CLI. Il s'agit d'interfaces de ligne de commande installées localement qui peuvent accéder aux ensembles de données sur AWS. Les deux CLI ont des commandes très similaires, donc une commande s5cmd peut généralement être convertie en commande AWS CLI en remplaçant le préfixe s5cmd
par aws s3
.
Dans cette section, nous partagerons quelques commandes s5cmd.
Pour copier un fichier ou un répertoire d'AWS vers le disque local, utilisez cette commande : s5cmd --no-sign-request cp
Alternativement, sync
peut être utilisé à la place de cp
. sync
vérifie également les différences entre AWS et l'ensemble de données téléchargé localement.
Important
Si l'URL source est un répertoire, elle doit alors comporter un caractère générique ( *
).
Cette commande téléchargera l'intégralité de l'ensemble de données dans un dossier local appelé MegaScenes/
.
s5cmd --no-sign-request cp s3://megascenes/* ./MegaScenes/
Cette commande télécharge de manière récursive le contenu du dossier images
depuis AWS dans le dossier local MegaScenes/images/
:
s5cmd --no-sign-request cp s3://megascenes/images/* ./MegaScenes/images/
Cette commande télécharge un fichier database.db
spécifique depuis AWS dans son dossier local respectif :
s5cmd --no-sign-request cp s3://megascenes/databases/main/000/000/database.db ./MegaScenes/databases/main/000/000/database.db
Il est possible d'utiliser s5cmd pour définir des sous-ensembles de MegaScenes à télécharger ; cela se fait avec s5cmd run
avec un fichier texte de commandes s5cmd. Pour plus d'informations, consultez la documentation de s5cmd sur l'exécution de plusieurs commandes en parallèle.
Répertoriez le contenu du répertoire sur AWS : s5cmd --no-sign-request ls
Cette commande est utile pour voir quels éléments se trouvent dans chaque répertoire avant de les télécharger sur la machine locale.
Cette commande répertorie le contenu de la database/
sous-dossier sur AWS.
Saisir:
s5cmd --no-sign-request ls s3://megascenes/databases/
Sortir:
DIR descriptors/
DIR main/
L'indicateur --no-sign-request
permet à l'utilisateur d'accéder au compartiment AWS sans avoir besoin de créer et de fournir des informations d'identification AWS.
Pour les autres commandes, veuillez consulter la documentation s5cmd ou AWS CLI.
Les fichiers singuliers peuvent être téléchargés via HTTP (via wget
ou curl
) en utilisant l'URL de base https://megascenes.s3.us-west-2.amazonaws.com/
.
Par exemple, https://megascenes.s3.us-west-2.amazonaws.com/metadata/subcat/000/007/subcats.json est un téléchargement direct des informations de sous-catégorie pour l'ID de scène 7
.
L'arborescence des répertoires du bucket est la suivante :
s3://megascenes/
ou https://megascenes.s3.us-west-2.amazonaws.com/
databases/
main/
000/000/
. . . 458/152/
descriptors/
000/000/
. . . 458/152/
images/
000/000/
. . . 458/152/
metadata/
subcat/
000/000/
. . . 458/148/
wikidata/
0/0/0/
. . . 9/9/9/
, other/
reconstruct/
000/000/
. . . 458/150/
README.md
Une scène est représentée par son numéro d'identification de scène à six chiffres complété par des zéros, comme décrit dans Dossiers de scène dans les sous-répertoires applicables. Un répertoire qui relie le nom de la scène à l'ID de la scène peut être trouvé à l'adresse : s3://megascenes/metadata/categories.json
. Pour plus de détails sur le contenu des sous-dossiers, consultez les sections respectives ci-dessous.
databases/
AnnuaireCe répertoire héberge les bases de données COLMAP pour chaque scène. Les bases de données COLMAP contiennent des informations tabulées sur les images, les points clés, les descripteurs, les correspondances et les géométries estimées à deux vues. Les bases de données COLMAP utilisent le format SQLite.
Le répertoire database/
est divisé en deux sous-répertoires :
main/
(1,9 To), qui contient les fichiers database.db
descriptors/
(6,8 To compressés, 8,3 To non compressés), qui contient les fichiers descriptors.db.gz
Dans les deux sous-répertoires ci-dessus, une scène est représentée par son numéro d'identification de scène, comme décrit dans Dossiers de scène.
Pour chaque scène, la base de données COLMAP est partitionnée en deux fichiers :
database.db
, qui est la base de données COLMAP sans la table Descriptors.descriptors.db.gz
, qui est la table Descriptors extraite de la base de données COLMAP en tant que sa propre base de données SQLite. Il est compressé avec gzip.Nous séparons la table Descripteurs car elle occupe la majorité de l'espace dans la base de données COLMAP et peut ne pas contenir d'informations pertinentes pour certaines applications.
Pour une scène avec l'ID 1234
, les fichiers de base de données sont les suivants :
databases/main/001/234/database.db
databases/descriptors/001/234/descriptors.db.gz
images/
RépertoireCe répertoire héberge les images et les métadonnées d'image pour chaque scène. Une scène est représentée par son numéro d'identification de scène, comme décrit dans Dossiers de scène.
Le répertoire images/
fait 3,2 To.
Une scène peut avoir un nombre illimité de sous-catégories. Chaque sous-catégorie contient des images, un raw_metadata.json
, category.json
et un 0/category.json
.
Les métadonnées de l'image sont représentées dans raw_metadata.json
. Ce json contient une clé pour chaque nom d'image et contient des informations sur diverses données extraites de Wikimedia Commons, y compris des données EXIF et des informations de licence.
Le nom de la sous-catégorie de scène réside dans subcategory_name/category.json
.
Une liste de noms d’images réside dans subcategory_name/0/category.json
.
Pour une scène avec l'ID 1234
, les fichiers image sont les suivants :
images/
001/234/
commons/
subcategory_name_1/
category.json
raw_metadata.json
0/
category.json
pictures/
image1.jpg
image2.jpg
subcategory_name_2/
category.json
raw_metadata.json
0/
category.json
pictures/
image1.jpg
image2.jpg
metadata/
RépertoireCe répertoire héberge les métadonnées de l'ensemble de données.
Le répertoire metadata/
a le contenu suivant :
subcat/
(386 Mo), qui est un répertoire contenant des fichiers JSON d'informations de sous-catégorie pour les scènes comportant au moins une sous-catégoriewikidata/
(4,5 Go), qui est un répertoire contenant des fichiers JSON pour toutes les entrées Wikidata liées à une scène ou à leurs classes hiérarchiquescategories.json
(19,2 Mo), qui est un dictionnaire qui mappe un nom de catégorie Wikimedia Commons à un ID de scène.images_index.parquet
(~ 230 Mo), qui est un index tabulaire de toutes les images de MegaScenes Les informations sur les sous-catégories résident dans le répertoire metadata/subcat/
. Ce répertoire est organisé par numéro d'ID de scène, comme décrit dans Dossiers de scène.
Une scène est présente dans metadata/subcat/
uniquement si elle possède au moins une catégorie en plus de la catégorie principale. Une telle scène aura un subcats.json
pour représenter les données de sous-catégorie.
Un fichier subcats.json
est un dictionnaire qui contient les champs suivants :
main_category
: une chaîne du nom de la catégorie de niveau supérieur Wikimedia Commons.graph
: un dictionnaire mappant une catégorie Wikimedia Commons à une liste de ses sous-catégories directes. Une catégorie sera une clé dans graph
si elle a été visitée. Une liste vide signifie que la catégorie ne comporte aucune sous-catégorie.frontier
: une liste de sous-catégories présentes dans graph
qui n'ont pas été développées pour avoir leur propre clé dans graph
. La catégorie Arco degli Argentari a un ID de scène de 7
. Les informations de sous-catégorie pour cette scène se trouvent sur s3://megascenes/metadata/subcat/000/007/subcats.json
et ont le contenu suivant :
{
"main_category": "Arco_degli_Argentari",
"graph": {
"Arco_degli_Argentari": [
"Arco_degli_Argentari_in_art",
"Historical_images_of_the_Arco_degli_Argentari"
],
"Arco_degli_Argentari_in_art": [],
"Historical_images_of_the_Arco_degli_Argentari": [
"Arco_degli_Argentari_in_art"
]
},
"frontier": []
}
Ici, le graphique montre que la catégorie principale Arco degli Argentari comprend deux sous-catégories : Arco degli Argentari dans l'art et Images historiques de l'Arco degli Argentari. La catégorie Arco degli Argentari dans l'art n'a pas de sous-catégories, d'où la liste vide. En revanche, la catégorie Images historiques de l'Arco degli Argentari a la sous-catégorie Arco degli Argentari en art.
La liste des frontières est vide, ce qui signifie que ce graphique de sous-catégorie est développé dans son intégralité.
Nous fournissons un tableau qui indexe les images dans MegaScenes à l' s3://megascenes/metadata/images_index.parquet
(téléchargement HTTPS) (~ 230 Mo). Les fichiers Parquet stockent des données tabulaires comme les fichiers CSV, mais sont plus compacts et plus rapides à lire. Ils peuvent être lus à l'aide de bibliothèques de trames de données Python, telles que Polars (recommandé) ou Pandas. Ce tableau contient plus de 8 millions de lignes, chacune représentant une image dans l'ensemble de données. Les colonnes sont :
La page Wikimedia Commons respective pour une image se trouve à l'URL https://commons.wikimedia.org/wiki/File:{image_name}
. De même, la page Wikimedia Commons respective d'une catégorie se trouve à l'URL https://commons.wikimedia.org/wiki/Category:{cat or subcat}
.
Bien que ce tableau contienne les informations de licence analysées de Wikimedia Commons, nous encourageons l'utilisateur à vérifier lui-même les licences d'image.
La sous-catégorie wikidata/
est organisée par Wikidata Q-ID. Les trois premiers chiffres du Q-ID définissent les trois sous-dossiers dans lesquels les informations JSON de Wikidata peuvent être trouvées. Si le Q-ID a moins de trois chiffres, alors son JSON réside dans le dossier other/
. Contrairement aux identifiants de scène, ce numéro n’est PAS complété par des zéros.
Le JSON pour un élément Wikidata avec le Q-ID Q1234
se trouve dans metadata/wikidata/1/2/3/Q1234.json
.
Le JSON d'un élément Wikidata avec le Q-ID Q12
se trouve dans metadata/wikidata/other/Q12.json
.
Pour la documentation JSON, consultez cette page sur Wikibase JSON.
Pour des outils supplémentaires pour analyser ce JSON, consultez cette page Wikidata sur l'accès aux données.
reconstruct/
Répertoire Ce répertoire contient les reconstructions de nuages de points clairsemés COLMAP pour chaque scène. Le répertoire reconstruct/
est organisé par scènes, selon un numéro d'identification de scène comme décrit dans Dossiers de scènes. Chaque reconstruction se compose d'un images.bin
, cameras.bin
et points3D.bin
comme décrit ici. Une scène peut avoir zéro ou plusieurs reconstructions ; le dossier reconstruct/
ne contient que des scènes avec un ou plusieurs.
Le dossier reconstruct/
fait 429 Go.
Supposons qu'une scène portant l'ID 1234
comporte trois reconstructions. Dans le dossier sparses/
de cette scène, il y aura trois dossiers numérotés de 0
à 2
.
Concrètement, le format est le suivant :
reconstruct/
001/234/
sparses/
0/
images.bin
cameras.bin
points3D.bin
1/
images.bin
cameras.bin
points3D.bin
2/
images.bin
cameras.bin
points3D.bin
Les reconstructions éparses dans MegaScenes peuvent être visualisées à l'aide de notre visionneuse Web.
Alternativement, les reconstructions peuvent être visualisées localement à l'aide de l'interface graphique COLMAP (nécessite une installation COLMAP).
Les reconstructions peuvent être chargées en Python à l'aide du script read_write_model.py du référentiel COLMAP. Plus précisément, les fonctions utiles sont : read_model
, read_points3D_binary
, read_images_binary
, read_cameras_binary
L'ensemble de données utilise un système de deux sous-dossiers pour diviser les scènes, chaque scène ayant un numéro d'identification de scène. Le premier sous-dossier utilise les trois premiers chiffres de l'ID de scène à 6 chiffres sans remplissage. Le deuxième sous-dossier utilise les trois derniers chiffres. Les données associées à la scène résident dans ce dernier sous-dossier.
Par exemple:
533
, elle est complétée par des zéros à 000533
. Ce numéro se traduit par le répertoire 000/533/
.422678
, elle se traduit dans le répertoire 422/678/
.Chaque scène est basée sur une catégorie de Wikimedia Commons. Par exemple, la scène "Arc_de_Triomphe_de_l'Étoile" utilise des images de Category:Arc de Triomphe de l'Étoile et ses sous-catégories. Les MegaScenes utilisent des traits de soulignement au lieu d'espaces pour les noms de scènes, mais ils sont interchangeables lorsqu'ils sont utilisés dans les URL Wikimedia Commons.
Le fichier s3://megascenes/metadata/categories.json
(lien HTTP) relie le nom de la catégorie à l'ID de la scène.
Si vous trouvez des reconstructions incorrectes ou si vous avez des améliorations pour l'ensemble de données, veuillez créer un problème ou un message de discussion GitHub.
Cet ensemble de données est sous licence internationale Creative Commons Attribution 4.0. Les photos du dossier images/
ont leurs propres licences.