Linning Xu · Vasu Agrawal · William Laney · Tony Garcia · Aayush Bansal
Changil Kim · Samuel Rota Bulò · Lorenzo Porzi · Peter Kontschieder
Aljaž Božič · Dahua Lin · Michael Zollhöfer · Christian Richardt
ACM SIGGRAPH Asien 2023
Szene | ver | Nocken | Pos | Bild | 2K EXRs | 1K EXRs | 8K+ JPEGs | 4K JPEGs | 2K JPEGs | 1K JPEGs |
---|---|---|---|---|---|---|---|---|---|---|
Wohnung | v2 | 22 | 180 | 3.960 | 123 GB | 31 GB | 92 GB | 20 GB | 5 GB | 1,2 GB |
Küche | v2* | 19 | 318 | 6.024 | 190 GB | 48 GB | 142 GB | 29 GB | 8 GB | 1,9 GB |
Büro1a | v1 | 9 | 85 | 765 | 24 GB | 6 GB | 15 GB | 3 GB | 1 GB | 0,2 GB |
Büro1b | v2 | 22 | 71 | 1.562 | 49 GB | 13 GB | 35 GB | 7 GB | 2 GB | 0,4 GB |
Büro2 | v1 | 9 | 233 | 2.097 | 66 GB | 17 GB | 46 GB | 9 GB | 2 GB | 0,5 GB |
office_view1 | v2 | 22 | 126 | 2.772 | 87 GB | 22 GB | 63 GB | 14 GB | 4 GB | 0,8 GB |
office_view2 | v2 | 22 | 67 | 1.474 | 47 GB | 12 GB | 34 GB | 7 GB | 2 GB | 0,5 GB |
Flussblick | v2 | 22 | 48 | 1.008 | 34 GB | 8 GB | 24 GB | 5 GB | 2 GB | 0,4 GB |
Sitzbereich | v1 | 9 | 168 | 1.512 | 48 GB | 12 GB | 36 GB | 8 GB | 2 GB | 0,5 GB |
Tisch | v1 | 9 | 134 | 1.206 | 38 GB | 9 GB | 26 GB | 6 GB | 2 GB | 0,4 GB |
Werkstatt | v1 | 9 | 700 | 6.300 | 198 GB | 50 GB | 123 GB | 27 GB | 8 GB | 2,1 GB |
raf_emptyroom | v2 | 22 | 365 | 8.030 | 252 GB | 63 GB | 213 GB | 45 GB | 12 GB | 2,5 GB |
raf_furnishedroom | v2 | 22 | 154 | 3.388 | 106 GB | 27 GB | 90 GB | 19 GB | 5 GB | 1,1 GB |
Gesamt | 1.262 GB | 318 GB | 939 GB | 199 GB | 54 GB | 12,5 GB |
* v2 mit 3 Kameras weniger als die Standardkonfiguration, also nur 19 Kameras.
April 2024: Die folgenden zwei Szenen begleiten unseren Artikel Real Acoustic Fields (CVPR 2024):
Alle Bilder im Datensatz wurden entweder mit Eyeful Tower v1 oder v2 aufgenommen (wie in der Übersichtstabelle angegeben). Eyeful Tower v1 umfasst 9 Fischaugenkameras, während Eyeful Tower v2 22 Lochkameras (19 für „Küche“) umfasst.
Der Eyeful Tower-Datensatz wird auf AWS S3 gehostet und kann mit jedem Browser durchsucht oder mit Standardsoftware wie wget oder curl heruntergeladen werden.
Für den schnellsten und zuverlässigsten Download empfehlen wir jedoch die Verwendung der AWS-Befehlszeilenschnittstelle (AWS CLI), siehe AWS CLI-Installationsanweisungen.
Optional: Beschleunigen Sie den Download, indem Sie die Anzahl gleichzeitiger Downloads von 10 auf 100 erhöhen:
aws configure set default.s3.max_concurrent_requests 100
aws s3 cp --recursive --no-sign-request s3://fb-baas-f32eacb9-8abb-11eb-b2b8-4857dd089e15/EyefulTower/apartment/images-jpeg-1k/ apartment/images-jpeg-1k/
Alternativ können Sie „ sync
“ verwenden, um die Übertragung vorhandener Dateien zu vermeiden:
aws s3 sync --no-sign-request s3://fb-baas-f32eacb9-8abb-11eb-b2b8-4857dd089e15/EyefulTower/apartment/images-jpeg-1k/ apartment/images-jpeg-1k/
Für diejenigen, die mit bestimmten Kameras experimentieren möchten, empfehlen wir, sich zuerst das Collage-Video anzusehen. Auf diese Weise können Sie ermitteln, welche Kameraansichten Sie verwenden möchten. Für diese Wohnungsszene mit dem V2-Aufnahmegerät könnten Sie beispielsweise die Kamera-IDs 19, 20, 21 in Betracht ziehen, die auf derselben Höhe platziert sind.
für den Datensatz in der Wohnung Küche Büro1a Büro1b Büro2 Büroansicht1 Büroansicht2 Flussblick Sitzfläche Tischwerkstatt; Tun mkdir -p $dataset/images-jpeg-1k; aws s3 cp --recursive --no-sign-request s3://fb-baas-f32eacb9-8abb-11eb-b2b8-4857dd089e15/EyefulTower/$dataset/images-jpeg-1k/ $dataset/images-jpeg-1k /;Erledigt
aws s3 sync --no-sign-request s3://fb-baas-f32eacb9-8abb-11eb-b2b8-4857dd089e15/EyefulTower/ .
Jede Szene ist nach dieser Struktur organisiert:
apartment │ ├── apartment-final.pdf # Metashape reconstruction report ├── cameras.json # Camera poses in KRT format (see below) ├── cameras.xml # Camera poses exported from Metashape ├── colmap # COLMAP reconstruction exported from Metashape │ ├── images # Undistorted images (full resolution) │ ├── images_2 # Undistorted images (1/2 resolution) │ ├── images_4 # Undistorted images (1/4 resolution) │ ├── images_8 # Undistorted images (1/8 resolution) │ └── sparse # COLMAP reconstruction (for full-res images) ├── images-1k # HDR images at 1K resolution │ ├── 10 # First camera (bottom-most camera) │ │ ├── 10_DSC0001.exr # First image │ │ ├── 10_DSC0010.exr # Second image │ │ ├── [...] # More images │ │ └── 10_DSC1666.exr # Last image │ ├── 11 # Second camera │ │ ├── 11_DSC0001.exr │ │ ├── 11_DSC0010.exr │ │ ├── [...] │ │ └── 11_DSC1666.exr │ ├── [...] # More cameras │ └── 31 # Last camera (top of tower) │ ├── 31_DSC0001.exr │ ├── 31_DSC0010.exr │ ├── [...] │ └── 31_DSC1666.exr ├── images-2k [...] # HDR images at 2K resolution ├── images-jpeg [...] # Full-resolution JPEG images ├── images-jpeg-1k [...] # JPEG images at 1K resolution ├── images-jpeg-2k # JPEG images at 2K resolution │ ├── [10 ... 31] │ ├── [10 ... 31].mp4 # Camera visualization │ └── collage.mp4 # Collage of all cameras ├── images-jpeg-4k [...] # JPEG images at 4K resolution ├── mesh.jpg # Mesh texture (16K×16K) ├── mesh.mtl # Mesh material file ├── mesh.obj # Mesh in OBJ format └── splits.json # Training/testing splits
images-1k/{camera}/*.exr
und images-2k/{camera}/*.exr
)Bilder mit hohem Dynamikbereich, zusammengeführt aus 9-Foto-Rohbelichtungsreihen.
Downsampling auf „1K“ (684×1024 Pixel) oder „2K“-Auflösung (1368×2048 Pixel).
Farbraum: DCI-P3 (linear)
Gespeichert als EXR-Bilder mit unkomprimierten 32-Bit-Gleitkommazahlen.
Allen Bilddateinamen wird der Kameraname vorangestellt, z. B. 17_DSC0316.exr
.
Bilder mit Dateinamen, die auf dieselbe Nummer enden, werden gleichzeitig aufgenommen.
Möglicherweise fehlen einige Bilder, z. B. aufgrund von verschwommenen Bildern oder entfernten Bildern, die den Aufnahmeoperator zeigen.
import os, cv2, numpy as np# Aktivieren Sie die OpenEXR-Unterstützung in OpenCV (https://github.com/opencv/opencv/issues/21326).# Diese Umgebungsvariable muss definiert werden, bevor das erste EXR-Image geöffnet wird.os. environ["OPENCV_IO_ENABLE_OPENEXR"] = "1"# Lesen Sie ein EXR-Bild mit OpenCV.img = cv2.imread("apartment/images-2k/17/17_DSC0316.exr", cv2.IMREAD_UNCHANGED)# Wenden Sie die Weißabgleichsskalierung an (Hinweis : OpenCV verwendet BGR-Farben).coeffs = np.array([0.726097, 1.0, 1.741252]) # apartment [RGB]img = np.einsum("ijk,k->ijk", img, coeffs[::-1] )# Tonemap mit sRGB-Kurve.linear_part = 12,92 * imgexp_part = 1,055 * (np.maximum(img, 0,0) ** (1 / 2,4)) - 0,055img = np.where(img <= 0,0031308, linear_part, exp_part)# Schreiben Sie das resultierende Bild als JPEG.img = np.clip(255 * img, 0.0, 255.0).astype(np.uint8)cv2.imwrite("apartment-17_DSC0316.jpg", img, params=[cv2.IMWRITE_JPEG_QUALITY, 100] )
images-jpeg*/{camera}/*.jpg
)Wir stellen JPEG-Bilder in vier Auflösungsstufen zur Verfügung:
images-jpeg/
: 5784 × 8660 = 50, Megapixel – volle Originalbildauflösung
images-jpeg-4k/
: 2736 × 4096 = 11,2 Megapixel
images-jpeg-2k/
: 1368 × 2048 = 2,8 Megapixel
images-jpeg-1k/
: 684 × 1024 = 0,7 Megapixel
Bei den JPEG-Bildern handelt es sich um Versionen der HDR-Bilder mit Weißabgleich und Tonwertzuordnung. Einzelheiten finden Sie im obigen Code.
Jede Szene verwendet von einem ColorChecker abgeleitete Weißabgleicheinstellungen, die die RGB-Kanäle wie folgt individuell skalieren:
Szene | RGB-Skalierungsfaktoren |
---|---|
Wohnung | 0.726097, 1.0, 1.741252 |
Küche | 0.628143, 1.0, 2.212346 |
Büro1a | 0.740846, 1.0, 1.750224 |
Büro1b | 0.725535, 1.0, 1.839938 |
Büro2 | 0.707729, 1.0, 1.747833 |
office_view1 | 1.029089, 1.0, 1.145235 |
office_view2 | 0.939620, 1.0, 1.273549 |
Flussblick | 1.077719, 1.0, 1.145992 |
Sitzbereich | 0.616093, 1.0, 2.426888 |
Tisch | 0.653298, 1.0, 2.139514 |
Werkstatt | 0.709929, 1.0, 1.797705 |
raf_emptyroom | 0.718776, 1.0, 1.787020 |
raf_furnishedroom | 0.721494, 1.0, 1.793423 |
cameras.json
) Diese JSON-Datei hat die Grundstruktur {"KRT": [
, wobei jedes Bildobjekt die folgenden Eigenschaften hat:
width
: Bildbreite in Pixel (normalerweise 5784)
height
: Bildhöhe in Pixel (normalerweise 8660)
cameraId
: Dateinamenkomponente für dieses Bild (z. B. "0/0_REN0001"
); Um einen vollständigen Pfad zu erhalten, verwenden Sie "{scene}/{imageFormat}/{cameraId}.{extension}"
für:
scene
: einer der 11 Szenennamen,
imageFormat
: eines von "images-2k"
, "images-jpeg-2k"
, "images-jpeg-4k"
oder "images-jpeg"
extension
: Dateierweiterung, jpg
für JPEGs, exr
für EXR-Bilder (HDR)
K
: 3×3 intrinsische Kameramatrix für ein Bild mit voller Auflösung ( spaltengroß )
T
: 4×4-Welt-zu-Kamera-Transformationsmatrix ( spaltengroß )
distortionModel
: Verwendetes Linsenverzerrungsmodell:
"Fisheye"
für Fischaugenbilder (Eyeful v1)
"RadialAndTangential"
für Lochbilder (Eyeful v2)
distortion
: Linsenverzerrungskoeffizienten zur Verwendung mit der cv2.undistort
-Funktion von OpenCV
Hinweis: Das Projektionsmodell ist ein ideales (äquidistantes) Fischaugenmodell.
Fischaugenbilder (Eyeful v1): [k1, k2, k3, _, _, _, p1, p2]
Lochbilder (Eyeful v2): [k1, k2, p1, p2, k3]
(gleiche Reihenfolge wie cv2.undistort
)
frameId
: Positionsindex während der Erfassung (aufeinanderfolgende ganze Zahlen)
Alle gleichzeitig aufgenommenen Bilder haben dieselbe frameId
sensorId
: Metashape-Sensor-ID ( auch bekannt als Kamera) dieses Bildes
Alle von derselben Kamera aufgenommenen Bilder haben dieselbe sensorId
cameraMasterId
(optional): Metashape-Kamera-ID für die Master-Kamera (in der Rig-Kalibrierung) an dieser Position/diesem Bild
Alle gleichzeitig aufgenommenen Bilder haben dieselbe cameraMasterId
sensorMasterId
(optional): Metashape-Sensor-ID für die Master-Kamera bei der Rig-Kalibrierung
sollte für alle Kameras außer der Masterkamera den gleichen Wert haben (normalerweise "6"
für Eyeful v1, "13"
für Eyeful v2).
Weltkoordinatensystem: rechtshändig, y-oben, y=0
ist die Grundebene, Einheiten sind in Metern.
cameras.xml
)Kamerakalibrierungsdaten werden unter Verwendung des proprietären Dateiformats direkt aus Metashape exportiert.
mesh.*
)Strukturiertes Netz im OBJ-Format, aus Metashape exportiert und aus den JPEG-Bildern in voller Auflösung erstellt.
Weltkoordinatensystem: rechtshändig, y-oben, y=0
ist die Grundebene, Einheiten sind in Metern.
colmap/
)Diese COLMAP-Rekonstruktionen werden aus unseren ursprünglichen Rekonstruktionen mit Metashape 2.1.3 mit Standardparametern exportiert.
Die Bilder unter colmap/images
wurden automatisch von den Bildern in images-jpeg
zu Lochprojektionen mit Hauptpunkt in der Bildmitte entzerrt.
Beachten Sie, dass durch diese Entzerrung Fischaugenbilder stark beschnitten werden und bei verschiedenen Kameras tendenziell unterschiedliche Bildgrößen entstehen.
Die Bilder in colmap/images-*
sind heruntergesampelte Versionen der unverzerrten Bilder in voller Auflösung, ähnlich dem Mip-NeRF 360-Datensatzformat.
splits.json
) Enthält Listen mit Bildern für Training ( "train"
) und Tests ( "test"
).
Alle Bilder einer Kamera werden zum Testen bereitgehalten: Kamera 5
für Eyeful v1 und Kamera 17
für Eyeful v2.
3. November 2023 – Erstveröffentlichung des Datensatzes
18. Januar 2024 – EXRs und JPEGs mit „1K“-Auflösung (684×1024 Pixel) für kleine Experimente hinzugefügt.
19. April 2024 – zwei Räume aus dem RAF-Datensatz (Real Acoustic Fields) hinzugefügt: raf_emptyroom
und raf_furnishedroom
.
9. Okt. 2024 – exportierte COLMAP-Rekonstruktionen mit unverzerrten Bildern im Mip-NeRF 360-Format hinzugefügt, z. B. kompatibel mit gsplat.
Wenn Sie Daten aus diesem Datensatz oder in diesem Repository veröffentlichten Code verwenden, zitieren Sie bitte das VR-NeRF-Papier.
@InProceedings{VRNeRF, Autor = {Linning Titel = {{VR-NeRF}: High-Fidelity Virtualized Walkable Spaces}, Buchtitel = {SIGGRAPH Asia Conference Proceedings}, Jahr = {2023}, Doi = {10.1145/3610548.3618139}, URL = {https://vr-nerf .github.io}, }
Creative Commons Attribution-NonCommercial (CC BY-NC) 4.0, wie in der LICENSE-Datei enthalten.
[Nutzungsbedingungen] [Datenschutzerklärung]