纸| Arxiv | NVS 代码|项目页面
MegaScenes 数据集是大约 430K 场景、900 万张图像和极几何的广泛集合,具有从 2M 图像中进行的超过 100K 运动结构重建。这些场景的图像是在不同的条件下捕获的,包括一天中的不同时间、不同的天气和照明,以及来自具有不同相机特性的不同设备。
要在浏览器中查看重建,请参阅我们的Web 查看器!
我们在这里提供 MegaScenes 的数据表。
如果您发现我们的数据集或论文有用,请考虑引用
@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 }
}
感谢 AWS 开放数据赞助计划,MegaScenes 数据集托管在 Amazon S3 上。
具体来说,MegaScenes 在US-West-2
AWS 区域中使用 AWS S3 存储桶 URL s3://megascenes/
。
所有文件都可以单独下载。它们不会被分成.tar
或.zip
文件。
用户可以使用 s5cmd 或 AWS CLI 访问数据集。这些是本地安装的命令行界面,可以访问 AWS 上的数据集。两个 CLI 都具有非常相似的命令,因此通常可以通过将前缀s5cmd
替换为aws s3
来将 s5cmd 命令转换为 AWS CLI 命令。
在本节中,我们将分享一些 s5cmd 命令。
要将文件或目录从 AWS 复制到本地磁盘,请使用以下命令: s5cmd --no-sign-request cp
或者,可以使用sync
代替cp
。 sync
还会检查 AWS 和本地下载的数据集之间的差异。
重要的
如果源 URL 是目录,则它必须具有通配符 ( *
)。
此命令会将整个数据集下载到名为MegaScenes/
本地文件夹。
s5cmd --no-sign-request cp s3://megascenes/* ./MegaScenes/
此命令以递归方式将images
文件夹的内容从 AWS 下载到本地文件夹MegaScenes/images/
中:
s5cmd --no-sign-request cp s3://megascenes/images/* ./MegaScenes/images/
此命令将特定的database.db
文件从AWS下载到其各自的本地文件夹中:
s5cmd --no-sign-request cp s3://megascenes/databases/main/000/000/database.db ./MegaScenes/databases/main/000/000/database.db
可以使用 s5cmd 定义要下载的 MegaScenes 子集;这是通过使用 s5cmd 命令的文本文件s5cmd run
来完成的。有关更多信息,请参阅 s5cmd 有关并行运行多个命令的文档。
列出 AWS 上的目录内容: s5cmd --no-sign-request ls
此命令有助于在将项目下载到本地计算机之前查看每个目录中的项目。
此命令列出 AWS 上的database/
子文件夹的内容。
输入:
s5cmd --no-sign-request ls s3://megascenes/databases/
输出:
DIR descriptors/
DIR main/
--no-sign-request
标志用于让用户无需创建和提供 AWS 凭证即可访问 AWS 存储桶。
有关其他命令,请参阅 s5cmd 或 AWS CLI 文档。
可以使用基本 URL https://megascenes.s3.us-west-2.amazonaws.com/
通过 HTTP(通过wget
或curl
)下载单个文件。
例如, https://megascenes.s3.us-west-2.amazonaws.com/metadata/subcat/000/007/subcats.json 是场景 ID 7
的子类别信息的直接下载。
Bucket的目录树如下:
s3://megascenes/
或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
场景由其零填充的六位场景 ID 号表示,如适用子目录中的场景文件夹中所述。将场景名称链接到场景 ID 的目录可以在以下位置找到: s3://megascenes/metadata/categories.json
。有关子文件夹内容的详细信息,请参阅下面的相应部分。
databases/
目录该目录包含每个场景的 COLMAP 数据库。 COLMAP 数据库包含有关图像、关键点、描述符、匹配和估计的双视图几何形状的表格信息。 COLMAP 数据库使用 SQLite 格式。
database/
目录分为两个子目录:
main/
(1.9 TB),其中包含database.db
文件descriptors/
TB压缩,8.3 TB未压缩),其中包含descriptors.db.gz
文件在上述两个子目录中,场景由其场景 ID 号表示,如场景文件夹中所述。
对于每个场景,COLMAP 数据库分为两个文件:
database.db
,这是没有 Descriptors 表的 COLMAP 数据库。descriptors.db.gz
,这是从 COLMAP 数据库中提取的 Descriptors 表作为其自己的 SQLite 数据库。它是用 gzip 压缩的。我们将描述符表分开,因为它占用了 COLMAP 数据库中的大部分空间,并且可能不包含某些应用程序的相关信息。
对于ID为1234
场景,数据库文件如下:
databases/main/001/234/database.db
databases/descriptors/001/234/descriptors.db.gz
images/
目录该目录包含每个场景的图像和图像元数据。场景由其场景 ID 号表示,如场景文件夹中所述。
images/
目录为 3.2 TB。
一个场景可以有任意数量的子类别。每个子类别包含图像、 raw_metadata.json
、 category.json
和0/category.json
。
图像元数据在raw_metadata.json
中表示。该 json 包含每个图像名称的密钥,并包含从 Wikimedia Commons 提取的各种数据的信息,包括 EXIF 数据和许可信息。
场景子类别名称位于subcategory_name/category.json
中。
图像名称列表位于subcategory_name/0/category.json
中。
对于 ID 1234
的场景,图像文件如下:
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/
目录该目录包含数据集的元数据。
metadata/
目录包含以下内容:
subcat/
(386 MB),该目录包含至少具有一个子类别的场景的子类别信息 JSON 文件wikidata/
(4.5 GB),该目录包含与场景或其层次类相关的所有 Wikidata 条目的 JSON 文件categories.json
(19.2 MB),这是一个将 Wikimedia Commons 类别名称映射到场景 ID 的字典。images_index.parquet
(~230 MB),它是 MegaScenes 中所有图像的表格索引子类别信息驻留在metadata/subcat/
目录中。该目录按场景 ID 号组织,如场景文件夹中所述。
仅当场景除了主类别之外至少有一个类别时,才会出现在metadata/subcat/
中。这样的场景会有一个subcats.json
来表示子类别数据。
subcats.json
文件是一个包含以下字段的字典:
main_category
:维基共享资源顶级类别名称的字符串。graph
:将维基共享资源类别映射到其直接子类别列表的字典。如果某个类别已被访问过,则该类别将成为graph
中的键。空列表意味着该类别没有子类别。frontier
: graph
中存在的子类别列表,这些子类别尚未扩展为在graph
中拥有自己的键。 Arco degli Argentari 类别的场景 ID 为7
。该场景的子类别信息位于s3://megascenes/metadata/subcat/000/007/subcats.json
,内容如下:
{
"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": []
}
此处,该图显示主类别 Arco degli Argentari 有两个子类别:艺术中的 Arco degli Argentari 和 Arco degli Argentari 的历史图像。艺术中的 Arco degli Argentari 类别没有子类别,因此列表为空。相比之下,Arco degli Argentari 的历史图像类别在艺术中具有 Arco degli Argentari 子类别。
前沿列表为空,这意味着该子类别图已全部展开。
我们在s3://megascenes/metadata/images_index.parquet
(HTTPS 下载)(~230 MB)提供了一个对 MegaScenes 中的图像进行索引的表。 Parquet 文件像 CSV 文件一样存储表格数据,但更紧凑且读取速度更快。可以使用 Python 数据帧库读取它们,例如 Polars(推荐)或 Pandas。该表包含超过 800 万行,每行代表数据集中的一个图像。这些列是:
图像各自的维基共享资源页面位于 URL https://commons.wikimedia.org/wiki/File:{image_name}
。同样,某个类别的相应维基共享资源页面位于 URL https://commons.wikimedia.org/wiki/Category:{cat or subcat}
。
虽然此表包含来自维基共享资源的解析许可信息,但我们鼓励用户自行验证图像许可。
wikidata/
子类别由 Wikidata Q-ID 组织。 Q-ID 的前三位数字定义了可以在其中找到 Wikidata JSON 信息的三个子文件夹。如果 Q-ID 少于三位数字,则其 JSON 位于other/
文件夹中。与场景 ID 不同,该数字不是用零填充的。
具有 Q-ID Q1234
的 Wikidata 项目的 JSON 位于metadata/wikidata/1/2/3/Q1234.json
。
具有 Q-ID Q12
的 Wikidata 项目的 JSON 位于metadata/wikidata/other/Q12.json
。
有关 JSON 文档,请参阅 Wikibase JSON 上的此页面。
有关解析此 JSON 的其他工具,请参阅有关数据访问的 Wikidata 页面。
reconstruct/
目录该目录包含每个场景的 COLMAP 稀疏点云重建。依据场景文件夹中描述的场景 ID 号, reconstruct/
目录按场景进行组织。每个重建都由images.bin
、 cameras.bin
和points3D.bin
组成,如此处所述。一个场景可能有零次或多次重建; reconstruct/
文件夹仅包含一个或多个场景。
reconstruct/
文件夹为 429 GB。
假设 ID 为1234
的场景有 3 个重建。在这个场景的sparses/
文件夹中,将有三个文件夹,编号从0
到2
。
具体来说,格式如下:
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
可以使用我们的网络查看器查看 MegaScenes 中的稀疏重建。
或者,可以使用 COLMAP GUI 在本地查看重建(需要安装 COLMAP)。
可以使用 COLMAP 存储库中的 read_write_model.py 脚本在 Python 中加载重建结果。具体来说,有用的函数是: read_model
、 read_points3D_binary
、 read_images_binary
、 read_cameras_binary
该数据集使用两个子文件夹的系统来划分场景,其中每个场景都有一个场景 ID 号。第一个子文件夹使用 6 位零填充场景 ID 的前三位。第二个子文件夹使用最后三位数字。与场景关联的数据位于后一个子文件夹中。
例如:
533
,则将其补零为000533
。该号码转换为目录000/533/
。422678
,它将转换为目录422/678/
。每个场景都基于维基共享资源的一个类别。例如,场景“Arc_de_Triomphe_de_l'Étoile”使用来自类别:Arc de Triomphe de l'Étoile 及其子类别的图像。 MegaScene 使用下划线代替空格作为场景名称,但它们在 Wikimedia Commons URL 中使用时可以互换。
文件s3://megascenes/metadata/categories.json
(HTTP 链接)将类别名称链接到场景 ID。
如果您发现任何不正确的重建或对数据集有改进,请创建 GitHub 问题或讨论帖子。
该数据集根据 Creative Commons Attribution 4.0 International License 获得许可。 images/
文件夹中的照片有自己的许可证。