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 Asie 2023
Scène | ver | cames | position | img | 2K EXR | 1K EXR | 8K+ JPEG | 4K JPEG | 2K JPEG | 1K JPEG |
---|---|---|---|---|---|---|---|---|---|---|
appartement | v2 | 22 | 180 | 3 960 | 123 Go | 31 Go | 92 Go | 20 Go | 5 Go | 1,2 Go |
cuisine | v2* | 19 | 318 | 6 024 | 190 Go | 48 Go | 142 Go | 29 Go | 8 Go | 1,9 Go |
bureau1a | v1 | 9 | 85 | 765 | 24 Go | 6 Go | 15 Go | 3 Go | 1 Go | 0,2 Go |
bureau1b | v2 | 22 | 71 | 1 562 | 49 Go | 13 Go | 35 Go | 7 Go | 2 Go | 0,4 Go |
bureau2 | v1 | 9 | 233 | 2 097 | 66 Go | 17 Go | 46 Go | 9 Go | 2 Go | 0,5 Go |
bureau_view1 | v2 | 22 | 126 | 2 772 | 87 Go | 22 Go | 63 Go | 14 Go | 4 Go | 0,8 Go |
bureau_view2 | v2 | 22 | 67 | 1 474 | 47 Go | 12 Go | 34 Go | 7 Go | 2 Go | 0,5 Go |
vue sur la rivière | v2 | 22 | 48 | 1 008 | 34 Go | 8 Go | 24 Go | 5 Go | 2 Go | 0,4 Go |
zone_de_siège | v1 | 9 | 168 | 1 512 | 48 Go | 12 Go | 36 Go | 8 Go | 2 Go | 0,5 Go |
tableau | v1 | 9 | 134 | 1 206 | 38 Go | 9 Go | 26 Go | 6 Go | 2 Go | 0,4 Go |
atelier | v1 | 9 | 700 | 6 300 | 198 Go | 50 Go | 123 Go | 27 Go | 8 Go | 2,1 Go |
raf_emptyroom | v2 | 22 | 365 | 8 030 | 252 Go | 63 Go | 213 Go | 45 Go | 12 Go | 2,5 Go |
raf_furnishedroom | v2 | 22 | 154 | 3 388 | 106 Go | 27 Go | 90 Go | 19 Go | 5 Go | 1,1 Go |
Total | 1 262 Go | 318 Go | 939 Go | 199 Go | 54 Go | 12,5 Go |
* v2 avec 3 caméras de moins que la configuration standard, soit seulement 19 caméras.
Avril 2024 : Les deux scènes suivantes accompagnent notre article Real Acoustic Fields (CVPR 2024) :
Toutes les images de l'ensemble de données ont été prises avec Eyeful Tower v1 ou v2 (comme spécifié dans le tableau récapitulatif). Eyeful Tower v1 comprend 9 caméras fisheye, tandis que Eyeful Tower v2 comprend 22 caméras sténopé (19 pour « cuisine »).
L'ensemble de données Eyeful Tower est hébergé sur AWS S3 et peut être exploré avec n'importe quel navigateur ou téléchargé avec un logiciel standard, tel que wget ou curl.
Cependant, pour le téléchargement le plus rapide et le plus fiable, nous vous recommandons d'utiliser l'interface de ligne de commande AWS (AWS CLI), voir les instructions d'installation de l'AWS CLI.
Facultatif : Accélérez le téléchargement en augmentant le nombre de téléchargements simultanés de 10 à 100 :
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/
Vous pouvez également utiliser « sync
» pour éviter de transférer des fichiers existants :
aws s3 sync --no-sign-request s3://fb-baas-f32eacb9-8abb-11eb-b2b8-4857dd089e15/EyefulTower/apartment/images-jpeg-1k/ apartment/images-jpeg-1k/
Pour ceux qui souhaitent expérimenter avec des caméras spécifiques, nous recommandons de visionner d’abord la vidéo du collage. Cela vous aidera à identifier les vues de caméra que vous souhaitez utiliser. Par exemple, pour cette scène d'appartement utilisant la plate-forme de capture v2, vous pouvez considérer les ID de caméra 19, 20, 21 qui sont placés à la même hauteur.
pour l'ensemble de données dans la cuisine de l'appartement office1a office1b office2 office_view1 office_view2 riverview sièges_area table atelier ; faire 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 /;fait
aws s3 sync --no-sign-request s3://fb-baas-f32eacb9-8abb-11eb-b2b8-4857dd089e15/EyefulTower/ .
Chaque scène est organisée selon cette structure :
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
et images-2k/{camera}/*.exr
)Images à plage dynamique élevée fusionnées à partir de supports d'exposition brute de 9 photos.
Sous-échantillonné à une résolution « 1K » (684 × 1 024 pixels) ou « 2K » (1 368 × 2 048 pixels).
Espace colorimétrique : DCI-P3 (linéaire)
Stocké sous forme d'images EXR avec des nombres à virgule flottante 32 bits non compressés.
Tous les noms de fichiers d'images sont précédés du nom de la caméra, par exemple 17_DSC0316.exr
.
Les images dont les noms de fichiers se terminent par le même numéro sont capturées en même temps.
Certaines images peuvent manquer, par exemple en raison d'images floues ou d'images montrant l'opérateur de capture qui ont été supprimées.
import os, cv2, numpy as np# Activez la prise en charge d'OpenEXR dans OpenCV (https://github.com/opencv/opencv/issues/21326).# Cette variable d'environnement doit être définie avant l'ouverture de la première image EXR.os. environ["OPENCV_IO_ENABLE_OPENEXR"] = "1"# Lire une image EXR à l'aide d'OpenCV.img = cv2.imread("apartment/images-2k/17/17_DSC0316.exr", cv2.IMREAD_UNCHANGED)# Appliquer une mise à l'échelle de la balance des blancs (Remarque : OpenCV utilise les couleurs BGR).coeffs = np.array([0.726097, 1.0, 1.741252]) # appartement [RGB]img = np.einsum("ijk,k->ijk", img, coeffs[::-1] )# Tonemap utilisant sRGB Curve.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)# Écrivez l'image résultante au format 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
)Nous fournissons des images JPEG à quatre niveaux de résolution :
images-jpeg/
: 5784 × 8660 = 50, mégapixels — résolution d'image originale complète
images-jpeg-4k/
: 2736 × 4096 = 11,2 mégapixels
images-jpeg-2k/
: 1368 × 2048 = 2,8 mégapixels
images-jpeg-1k/
: 684 × 1024 = 0,7 mégapixels
Les images JPEG sont des versions équilibrées en blancs et mappées en tons des images HDR. Voir le code ci-dessus pour les détails.
Chaque scène utilise des paramètres de balance des blancs dérivés d'un ColorChecker, qui mettent à l'échelle individuellement les canaux RVB comme suit :
Scène | Facteurs d'échelle RVB |
---|---|
appartement | 0.726097, 1.0, 1.741252 |
cuisine | 0.628143, 1.0, 2.212346 |
bureau1a | 0.740846, 1.0, 1.750224 |
bureau1b | 0.725535, 1.0, 1.839938 |
bureau2 | 0.707729, 1.0, 1.747833 |
bureau_view1 | 1.029089, 1.0, 1.145235 |
bureau_view2 | 0.939620, 1.0, 1.273549 |
vue sur la rivière | 1.077719, 1.0, 1.145992 |
zone_de_siège | 0.616093, 1.0, 2.426888 |
tableau | 0.653298, 1.0, 2.139514 |
atelier | 0.709929, 1.0, 1.797705 |
raf_emptyroom | 0.718776, 1.0, 1.787020 |
raf_furnishedroom | 0.721494, 1.0, 1.793423 |
cameras.json
) Ce fichier JSON a la structure de base {"KRT": [
, où chaque objet image possède les propriétés suivantes :
width
: largeur de l'image, en pixels (généralement 5784)
height
: hauteur de l'image, en pixels (généralement 8660)
cameraId
: composant de nom de fichier pour cette image (par exemple "0/0_REN0001"
); pour obtenir un chemin complet, utilisez "{scene}/{imageFormat}/{cameraId}.{extension}"
pour :
scene
: n'importe lequel des 11 noms de scène,
imageFormat
: l'un des "images-2k"
, "images-jpeg-2k"
, "images-jpeg-4k"
ou "images-jpeg"
extension
: extension de fichier, jpg
pour les JPEG, exr
pour les images EXR (HDR)
K
: matrice de caméra intrinsèque 3×3 pour une image pleine résolution ( colonne majeure )
T
: matrice de transformation monde-caméra 4×4 ( colonne majeure )
distortionModel
: modèle de distorsion de l'objectif utilisé :
"Fisheye"
pour les images fisheye (Eyeful v1)
"RadialAndTangential"
pour les images sténopé (Eyeful v2)
distortion
: coefficients de distorsion de l'objectif à utiliser avec la fonction cv2.undistort
d'OpenCV
Remarque : Le modèle de projection est un modèle fisheye idéal (équidistant).
images fisheye (Eyeful v1) : [k1, k2, k3, _, _, _, p1, p2]
images sténopé (Eyeful v2) : [k1, k2, p1, p2, k3]
(même ordre que cv2.undistort
)
frameId
: index de position lors de la capture (entiers consécutifs)
toutes les images prises en même temps partagent le même frameId
sensorId
: ID du capteur Metashape ( alias caméra) de cette image
toutes les images prises par la même caméra partagent le même sensorId
cameraMasterId
(facultatif) : ID de caméra Metashape pour la caméra principale (en calibrage du rig) à cette position/image
toutes les images prises en même temps partagent le même cameraMasterId
sensorMasterId
(facultatif) : ID du capteur Metashape pour la caméra principale lors de l'étalonnage de la plate-forme
doit avoir la même valeur pour toutes les caméras à l'exception de la caméra principale (généralement "6"
pour Eyeful v1, "13"
pour Eyeful v2).
Système de coordonnées mondial : droitier, y vers le haut, y=0
est le plan du sol, les unités sont en mètres.
cameras.xml
)Données d'étalonnage de la caméra exportées directement depuis Metashape, en utilisant son format de fichier propriétaire.
mesh.*
)Maillage texturé au format OBJ, exporté depuis Metashape et créé à partir des images JPEG pleine résolution.
Système de coordonnées mondial : droitier, y vers le haut, y=0
est le plan du sol, les unités sont en mètres.
colmap/
)Ces reconstructions COLMAP sont exportées à partir de nos reconstructions originales en utilisant Metashape 2.1.3 avec les paramètres par défaut.
Les images sous colmap/images
n'étaient automatiquement pas déformées, depuis les images images-jpeg
jusqu'aux projections au sténopé avec le point principal au centre de l'image.
Notez que cette non-distorsion recadre considérablement les images fisheye et a tendance à produire des tailles d'image différentes pour différentes caméras.
Les images dans colmap/images-*
sont des versions sous-échantillonnées des images pleine résolution non déformées, similaires au format de jeu de données Mip-NeRF 360.
splits.json
) Contient des listes d'images pour la formation ( "train"
) et les tests ( "test"
).
Toutes les images d'une caméra sont soumises à des tests : caméra 5
pour Eyeful v1 et caméra 17
pour Eyeful v2.
3 novembre 2023 – publication initiale de l'ensemble de données
18 janvier 2024 – ajout des fichiers EXR et JPEG de résolution « 1K » (684 × 1 024 pixels) pour les expérimentations à petite échelle.
19 avril 2024 – ajout de deux salles de l'ensemble de données Real Acoustic Fields (RAF) : raf_emptyroom
et raf_furnishedroom
.
9 octobre 2024 – ajout de reconstructions COLMAP exportées avec des images non déformées au format Mip-NeRF 360, par exemple compatibles avec gsplat.
Si vous utilisez des données de cet ensemble de données ou tout code publié dans ce référentiel, veuillez citer l'article VR-NeRF.
@InProceedings{VRNeRF, author = {Linning Xu et Vasu Agrawal et William Laney et Tony Garcia et Aayush Bansal et Changil Kim et Rota Bulò, Samuel et Lorenzo Porzi et Peter Kontschieder et Aljaž Božič et Dahua Lin et Michael Zollhöfer et Christian Richardt}, title = {{VR-NeRF} : Espaces piétonniers virtualisés haute fidélité}, booktitle = {Actes de la conférence SIGGRAPH Asia}, année = {2023}, doi = {10.1145/3610548.3618139}, url = {https://vr-nerf .github.io}, }
Creative Commons Attribution-NonCommercial (CC BY-NC) 4.0, tel que trouvé dans le fichier LICENSE.
[Conditions d'utilisation] [Politique de confidentialité]