Linning Xu · Vasu Agrawal · William Laney · Tony García · Aayush Bansal
Changil Kim · Samuel Rota Bulò · Lorenzo Porzi · Peter Kontschieder
Aljaž Božič · Dahua Lin · Michael Zollhöfer · Christian Richardt
ACM SIGGRAPH Asia 2023
Escena | ver | cámaras | posición | imagen | 2K EXR | 1K EXR | 8K+ JPEG | 4k JPEG | 2K JPEG | 1K JPEG |
---|---|---|---|---|---|---|---|---|---|---|
departamento | v2 | 22 | 180 | 3.960 | 123GB | 31GB | 92GB | 20GB | 5GB | 1,2GB |
cocina | v2* | 19 | 318 | 6.024 | 190GB | 48GB | 142GB | 29GB | 8GB | 1,9 GB |
oficina1a | v1 | 9 | 85 | 765 | 24GB | 6GB | 15GB | 3GB | 1 GB | 0,2GB |
oficina1b | v2 | 22 | 71 | 1.562 | 49GB | 13GB | 35GB | 7GB | 2GB | 0,4GB |
oficina2 | v1 | 9 | 233 | 2.097 | 66GB | 17GB | 46GB | 9GB | 2GB | 0,5GB |
vista_oficina1 | v2 | 22 | 126 | 2,772 | 87GB | 22GB | 63GB | 14GB | 4GB | 0,8GB |
vista_oficina2 | v2 | 22 | 67 | 1.474 | 47GB | 12GB | 34GB | 7GB | 2GB | 0,5GB |
vista al río | v2 | 22 | 48 | 1.008 | 34GB | 8GB | 24GB | 5GB | 2GB | 0,4GB |
área_de_asientos | v1 | 9 | 168 | 1.512 | 48GB | 12GB | 36GB | 8GB | 2GB | 0,5GB |
mesa | v1 | 9 | 134 | 1.206 | 38GB | 9GB | 26GB | 6GB | 2GB | 0,4GB |
taller | v1 | 9 | 700 | 6.300 | 198GB | 50 GB | 123GB | 27GB | 8GB | 2,1GB |
raf_emptyroom | v2 | 22 | 365 | 8.030 | 252GB | 63GB | 213GB | 45GB | 12GB | 2,5GB |
raf_habitacionmueble | v2 | 22 | 154 | 3.388 | 106GB | 27GB | 90 GB | 19GB | 5GB | 1,1GB |
Total | 1.262GB | 318GB | 939GB | 199GB | 54GB | 12,5GB |
* v2 con 3 cámaras menos que la configuración estándar, es decir, solo 19 cámaras.
Abril de 2024: Las siguientes dos escenas acompañan nuestro artículo Real Acoustic Fields (CVPR 2024):
Todas las imágenes del conjunto de datos se tomaron con Eyeful Tower v1 o v2 (como se especifica en la tabla de descripción general). Eyeful Tower v1 consta de 9 cámaras ojo de pez, mientras que Eyeful Tower v2 consta de 22 cámaras estenopeicas (19 para “cocina”).
El conjunto de datos de Eyeful Tower está alojado en AWS S3 y puede explorarse con cualquier navegador o descargarse con software estándar, como wget o curl.
Sin embargo, para realizar la descarga más rápida y confiable, recomendamos utilizar la interfaz de línea de comandos de AWS (AWS CLI); consulte las instrucciones de instalación de la AWS CLI.
Opcional: acelere la descarga aumentando el número de descargas simultáneas de 10 a 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/
Alternativamente, use " sync
" para evitar transferir archivos existentes:
aws s3 sync --no-sign-request s3://fb-baas-f32eacb9-8abb-11eb-b2b8-4857dd089e15/EyefulTower/apartment/images-jpeg-1k/ apartment/images-jpeg-1k/
Para aquellos interesados en experimentar con cámaras específicas, recomendamos ver primero el vídeo del collage. Esto le ayudará a identificar qué vistas de cámara le gustaría utilizar. Por ejemplo, para esta escena de apartamento que utiliza el equipo de captura v2, podría considerar los ID de cámara 19, 20, 21 que están colocados a la misma altura.
para el conjunto de datos en la cocina del departamento oficina1a oficina1b oficina2 vista_oficina1 vista_oficina2 vista al río área_asientos mesa taller; hacer mkdir -p $conjunto de datos/imagenes-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 /;hecho
aws s3 sync --no-sign-request s3://fb-baas-f32eacb9-8abb-11eb-b2b8-4857dd089e15/EyefulTower/ .
Cada escena se organiza siguiendo esta estructura:
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
e images-2k/{camera}/*.exr
)Imágenes de alto rango dinámico fusionadas a partir de grupos de exposición sin formato de 9 fotografías.
Reducido a resolución “1K” (684×1024 píxeles) o “2K” (1368×2048 píxeles).
Espacio de color: DCI-P3 (lineal)
Almacenadas como imágenes EXR con números de punto flotante de 32 bits sin comprimir.
Todos los nombres de archivos de imágenes tienen como prefijo el nombre de la cámara, por ejemplo, 17_DSC0316.exr
.
Las imágenes con nombres de archivos que terminan en el mismo número se capturan al mismo tiempo.
Es posible que falten algunas imágenes, por ejemplo, debido a imágenes borrosas o imágenes que muestran al operador de captura que se eliminaron.
import os, cv2, numpy as np# Habilite la compatibilidad con OpenEXR en OpenCV (https://github.com/opencv/opencv/issues/21326).# Esta variable de entorno debe definirse antes de abrir la primera imagen EXR.os. environ["OPENCV_IO_ENABLE_OPENEXR"] = "1"# Leer una imagen EXR usando OpenCV.img = cv2.imread("apartment/images-2k/17/17_DSC0316.exr", cv2.IMREAD_UNCHANGED)# Aplicar escala de balance de blancos (Nota : OpenCV usa colores BGR).coeffs = np.array([0.726097, 1.0, 1.741252]) # apartamento [RGB]img = np.einsum("ijk,k->ijk", img, coeffs[::-1] )# Mapa de tonos usando curva sRGB.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)# Escriba la imagen resultante como 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
)Proporcionamos imágenes JPEG en cuatro niveles de resolución:
images-jpeg/
: 5784 × 8660 = 50 megapíxeles — resolución de imagen original completa
images-jpeg-4k/
: 2736 × 4096 = 11,2 megapíxeles
images-jpeg-2k/
: 1368 × 2048 = 2,8 megapíxeles
images-jpeg-1k/
: 684 × 1024 = 0,7 megapíxeles
Las imágenes JPEG son versiones con balance de blancos y mapas de tonos de las imágenes HDR. Consulte el código anterior para obtener más detalles.
Cada escena utiliza ajustes de balance de blancos derivados de un ColorChecker, que escala individualmente los canales RGB de la siguiente manera:
Escena | Factores de escala RGB |
---|---|
departamento | 0.726097, 1.0, 1.741252 |
cocina | 0.628143, 1.0, 2.212346 |
oficina1a | 0.740846, 1.0, 1.750224 |
oficina1b | 0.725535, 1.0, 1.839938 |
oficina2 | 0.707729, 1.0, 1.747833 |
vista_oficina1 | 1.029089, 1.0, 1.145235 |
vista_oficina2 | 0.939620, 1.0, 1.273549 |
vista al río | 1.077719, 1.0, 1.145992 |
área_de_asientos | 0.616093, 1.0, 2.426888 |
mesa | 0.653298, 1.0, 2.139514 |
taller | 0.709929, 1.0, 1.797705 |
raf_emptyroom | 0.718776, 1.0, 1.787020 |
raf_habitacionmueble | 0.721494, 1.0, 1.793423 |
cameras.json
) Este archivo JSON tiene la estructura básica {"KRT": [
, donde cada objeto de imagen tiene las siguientes propiedades:
width
: ancho de la imagen, en píxeles (normalmente 5784)
height
: altura de la imagen, en píxeles (normalmente 8660)
cameraId
: componente de nombre de archivo para esta imagen (por ejemplo, "0/0_REN0001"
); para obtener una ruta completa, use "{scene}/{imageFormat}/{cameraId}.{extension}"
para:
scene
: cualquiera de los 11 nombres de escena,
imageFormat
: uno de "images-2k"
, "images-jpeg-2k"
, "images-jpeg-4k"
o "images-jpeg"
extension
: extensión de archivo, jpg
para JPEG, exr
para imágenes EXR (HDR)
K
: matriz de cámara intrínseca de 3 × 3 para imagen de resolución completa ( columna principal )
T
: matriz de transformación de mundo a cámara 4×4 ( columna principal )
distortionModel
: modelo de distorsión de lente utilizado:
"Fisheye"
para imágenes de ojo de pez (Eyeful v1)
"RadialAndTangential"
para imágenes estenopeicas (Eyeful v2)
distortion
: coeficientes de distorsión de la lente para usar con la función cv2.undistort
de OpenCV
Nota: El modelo de proyección es un modelo de ojo de pez ideal (equidistante).
Imágenes de ojo de pez (Eyeful v1): [k1, k2, k3, _, _, _, p1, p2]
imágenes estenopeicas (Eyeful v2): [k1, k2, p1, p2, k3]
(mismo orden que cv2.undistort
)
frameId
: índice de posición durante la captura (enteros consecutivos)
todas las imágenes tomadas al mismo tiempo comparten el mismo frameId
sensorId
: ID del sensor Metashape ( también conocido como cámara) de esta imagen
todas las imágenes tomadas por la misma cámara comparten el mismo sensorId
cameraMasterId
(opcional): ID de cámara Metashape para la cámara maestra (en calibración del equipo) en esta posición/cuadro
todas las imágenes tomadas al mismo tiempo comparten la misma cameraMasterId
sensorMasterId
(opcional): ID del sensor Metashape para la cámara maestra en la calibración del equipo
debe tener el mismo valor para todas las cámaras excepto la cámara maestra (normalmente "6"
para Eyeful v1, "13"
para Eyeful v2).
Sistema de coordenadas mundial: diestro, y arriba, y=0
es el plano de tierra, las unidades están en metros.
cameras.xml
)Datos de calibración de la cámara exportados directamente desde Metashape, utilizando su formato de archivo patentado.
mesh.*
)Malla texturizada en formato OBJ, exportada desde Metashape y creada a partir de imágenes JPEG de resolución completa.
Sistema de coordenadas mundial: diestro, y arriba, y=0
es el plano de tierra, las unidades están en metros.
colmap/
)Estas reconstrucciones COLMAP se exportan desde nuestras reconstrucciones originales utilizando Metashape 2.1.3 con parámetros predeterminados.
Las imágenes en colmap/images
se eliminaron automáticamente de las imágenes en images-jpeg
a proyecciones estenopeicas con el punto principal en el centro de la imagen.
Tenga en cuenta que esta falta de distorsión recorta gravemente las imágenes de ojo de pez y tiende a producir diferentes tamaños de imagen para diferentes cámaras.
Las imágenes en colmap/images-*
son versiones reducidas de resolución completa sin distorsiones, similares al formato del conjunto de datos Mip-NeRF 360.
splits.json
) Contiene listas de imágenes para entrenamiento ( "train"
) y prueba ( "test"
).
Todas las imágenes de una cámara se presentan para prueba: la cámara 5
para Eyeful v1 y la cámara 17
para Eyeful v2.
3 de noviembre de 2023 : publicación inicial del conjunto de datos
18 de enero de 2024 : se agregaron archivos EXR y JPEG con resolución “1K” (684 × 1024 píxeles) para experimentación a pequeña escala.
19 de abril de 2024 : se agregaron dos salas del conjunto de datos de Real Acoustic Fields (RAF): raf_emptyroom
y raf_furnishedroom
.
9 de octubre de 2024 : se agregaron reconstrucciones COLMAP exportadas con imágenes sin distorsiones en formato Mip-NeRF 360, por ejemplo, compatible con gsplat.
Si utiliza datos de este conjunto de datos o algún código publicado en este repositorio, cite el documento VR-NeRF.
@InProceedings{VRNeRF, autor = {Linning Xu y Vasu Agrawal y William Laney y Tony García y Aayush Bansal y Changil Kim y Rota Bulò, Samuel y Lorenzo Porzi y Peter Kontschieder y Aljaž Božič y Dahua Lin y Michael Zollhöfer y Christian Richardt}, título = {{VR-NeRF}: espacios transitables virtualizados de alta fidelidad}, título del libro = {SIGGRAPH Asia Conference Proceedings}, año = {2023}, doi = {10.1145/3610548.3618139}, url = {https://vr-nerf .github.io}, }
Creative Commons Attribution-NonCommercial (CC BY-NC) 4.0, como se encuentra en el archivo LICENCIA.
[Términos de uso] [Política de privacidad]