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 Ásia 2023
Cena | ver | câmeras | posição | imagem | 2K EXRs | 1K EXRs | 8K+ JPEGs | 4K JPEGs | 2K JPEGs | 1K JPEGs |
---|---|---|---|---|---|---|---|---|---|---|
apartamento | v2 | 22 | 180 | 3.960 | 123 GB | 31GB | 92GB | 20GB | 5GB | 1,2GB |
cozinha | v2* | 19 | 318 | 6.024 | 190GB | 48GB | 142GB | 29GB | 8GB | 1,9GB |
escritório1a | v1 | 9 | 85 | 765 | 24GB | 6GB | 15 GB | 3GB | 1 GB | 0,2GB |
escritório1b | v2 | 22 | 71 | 1.562 | 49GB | 13GB | 35GB | 7GB | 2 GB | 0,4 GB |
escritório2 | v1 | 9 | 233 | 2.097 | 66GB | 17GB | 46 GB | 9GB | 2 GB | 0,5GB |
escritório_view1 | v2 | 22 | 126 | 2.772 | 87 GB | 22 GB | 63GB | 14GB | 4GB | 0,8 GB |
escritório_view2 | v2 | 22 | 67 | 1.474 | 47GB | 12GB | 34 GB | 7GB | 2 GB | 0,5GB |
vista para o rio | v2 | 22 | 48 | 1.008 | 34 GB | 8GB | 24GB | 5GB | 2 GB | 0,4 GB |
área_de_assento | v1 | 9 | 168 | 1.512 | 48GB | 12GB | 36GB | 8GB | 2 GB | 0,5GB |
mesa | v1 | 9 | 134 | 1.206 | 38 GB | 9GB | 26GB | 6GB | 2 GB | 0,4 GB |
oficina | v1 | 9 | 700 | 6.300 | 198GB | 50GB | 123 GB | 27GB | 8GB | 2,1GB |
raf_emptyroom | v2 | 22 | 365 | 8.030 | 252GB | 63GB | 213GB | 45GB | 12GB | 2,5GB |
raf_furnishedroom | v2 | 22 | 154 | 3.388 | 106 GB | 27GB | 90GB | 19GB | 5GB | 1,1GB |
Total | 1.262GB | 318GB | 939GB | 199 GB | 54 GB | 12,5 GB |
* v2 com 3 câmeras a menos que a configuração padrão, ou seja, apenas 19 câmeras.
Abril de 2024: As duas cenas a seguir acompanham nosso artigo Real Acoustic Fields (CVPR 2024):
Todas as imagens no conjunto de dados foram tiradas com Eyeful Tower v1 ou v2 (conforme especificado na tabela de visão geral). Eyeful Tower v1 compreende 9 câmeras fisheye, enquanto Eyeful Tower v2 compreende 22 câmeras pinhole (19 para “cozinha”).
O conjunto de dados Eyeful Tower está hospedado no AWS S3 e pode ser explorado com qualquer navegador ou baixado com software padrão, como wget ou curl.
No entanto, para um download mais rápido e confiável, recomendamos usar a interface de linha de comando da AWS (AWS CLI). Consulte as instruções de instalação da AWS CLI.
Opcional: Acelere o download aumentando o número de downloads simultâneos de 10 para 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 a transferência de arquivos 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 aqueles interessados em experimentar câmeras específicas, recomendamos visualizar primeiro o vídeo da colagem. Isso o ajudará a identificar quais visualizações de câmera você gostaria de utilizar. Por exemplo, para esta cena de apartamento usando o equipamento de captura v2, você pode considerar as IDs de câmera 19, 20, 21 que são colocadas na mesma altura.
para conjunto de dados em apartamento cozinha office1a office1b office2 office_view1 office_view2 riverview assentos_area oficina de mesa; fazer mkdir -p $conjunto de dados/imagens-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 /;feito
aws s3 sync --no-sign-request s3://fb-baas-f32eacb9-8abb-11eb-b2b8-4857dd089e15/EyefulTower/ .
Cada cena é organizada seguindo esta estrutura:
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
)Imagens de alta faixa dinâmica mescladas a partir de colchetes de exposição bruta de 9 fotos.
Redução da resolução para “1K” (684×1024 pixels) ou resolução “2K” (1368×2048 pixels).
Espaço de cores: DCI-P3 (linear)
Armazenados como imagens EXR com números de ponto flutuante de 32 bits não compactados.
Todos os nomes de arquivos de imagem são prefixados com o nome da câmera, por exemplo, 17_DSC0316.exr
.
Imagens com nomes de arquivos que terminam com o mesmo número são capturadas ao mesmo tempo.
Algumas imagens podem estar faltando, por exemplo, devido a imagens borradas ou imagens que mostram o operador de captura que foram removidas.
import os, cv2, numpy as np# Habilite o suporte OpenEXR no OpenCV (https://github.com/opencv/opencv/issues/21326).# Esta variável de ambiente precisa ser definida antes que a primeira imagem EXR seja aberta.os. environ["OPENCV_IO_ENABLE_OPENEXR"] = "1"# Ler uma imagem EXR usando OpenCV.img = cv2.imread("apartment/images-2k/17/17_DSC0316.exr", cv2.IMREAD_UNCHANGED)# Aplicar escala de equilíbrio de branco (Nota : OpenCV usa cores BGR).coeffs = np.array([0.726097, 1.0, 1.741252]) # apartamento [RGB]img = np.einsum("ijk,k->ijk", img, coeffs[::-1] )# Mapa de tons 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)# Escreva a imagem 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
)Fornecemos imagens JPEG em quatro níveis de resolução:
images-jpeg/
: 5784 × 8660 = 50. megapixels — resolução total da imagem original
images-jpeg-4k/
: 2736 × 4096 = 11,2 megapixels
images-jpeg-2k/
: 1368 × 2048 = 2,8 megapixels
images-jpeg-1k/
: 684 × 1024 = 0,7 megapixels
As imagens JPEG são versões com balanceamento de branco e mapeamento de tons das imagens HDR. Veja o código acima para obter detalhes.
Cada cena usa configurações de equilíbrio de branco derivadas de um ColorChecker, que dimensiona individualmente os canais RGB da seguinte forma:
Cena | Fatores de escala RGB |
---|---|
apartamento | 0.726097, 1.0, 1.741252 |
cozinha | 0.628143, 1.0, 2.212346 |
escritório1a | 0.740846, 1.0, 1.750224 |
escritório1b | 0.725535, 1.0, 1.839938 |
escritório2 | 0.707729, 1.0, 1.747833 |
escritório_view1 | 1.029089, 1.0, 1.145235 |
escritório_view2 | 0.939620, 1.0, 1.273549 |
vista para o rio | 1.077719, 1.0, 1.145992 |
área_de_assento | 0.616093, 1.0, 2.426888 |
mesa | 0.653298, 1.0, 2.139514 |
oficina | 0.709929, 1.0, 1.797705 |
raf_emptyroom | 0.718776, 1.0, 1.787020 |
raf_furnishedroom | 0.721494, 1.0, 1.793423 |
cameras.json
) Este arquivo JSON possui a estrutura básica {"KRT": [
, onde cada objeto de imagem possui as seguintes propriedades:
width
: largura da imagem, em pixels (geralmente 5784)
height
: altura da imagem, em pixels (geralmente 8660)
cameraId
: componente do nome do arquivo desta imagem (ex. "0/0_REN0001"
); para obter um caminho completo, use "{scene}/{imageFormat}/{cameraId}.{extension}"
para:
scene
: qualquer um dos 11 nomes de cena,
imageFormat
: um de "images-2k"
, "images-jpeg-2k"
, "images-jpeg-4k"
ou "images-jpeg"
extension
: extensão de arquivo, jpg
para JPEGs, exr
para imagens EXR (HDR)
K
: Matriz intrínseca da câmera 3×3 para imagem de resolução total ( coluna principal )
T
: Matriz de transformação mundo-câmera 4×4 ( coluna principal )
distortionModel
: modelo de distorção de lente usado:
"Fisheye"
para imagens fisheye (Eyeful v1)
"RadialAndTangential"
para imagens pinhole (Eyeful v2)
distortion
: coeficientes de distorção da lente para uso com a função cv2.undistort
do OpenCV
Nota: O modelo de projeção é um modelo olho de peixe ideal (equidistante).
imagens olho de peixe (Eyeful v1): [k1, k2, k3, _, _, _, p1, p2]
imagens pinhole (Eyeful v2): [k1, k2, p1, p2, k3]
(mesma ordem que cv2.undistort
)
frameId
: índice de posição durante a captura (números inteiros consecutivos)
todas as imagens tiradas ao mesmo tempo compartilham o mesmo frameId
sensorId
: ID do sensor Metashape ( também conhecido como câmera) desta imagem
todas as imagens tiradas pela mesma câmera compartilham o mesmo sensorId
cameraMasterId
(opcional): ID da câmera Metashape para a câmera mestre (na calibração da plataforma) nesta posição/quadro
todas as imagens tiradas ao mesmo tempo compartilham o mesmo cameraMasterId
sensorMasterId
(opcional): ID do sensor Metashape para a câmera mestre na calibração da plataforma
deve ter o mesmo valor para todas as câmeras, exceto a câmera mestre (geralmente "6"
para Eyeful v1, "13"
para Eyeful v2).
Sistema de coordenadas mundiais: destro, y para cima, y=0
é o plano terrestre, as unidades estão em metros.
cameras.xml
)Dados de calibração de câmera exportados diretamente do Metashape, usando seu formato de arquivo proprietário.
mesh.*
)Malha texturizada em formato OBJ, exportada do Metashape e criada a partir de imagens JPEG de resolução total.
Sistema de coordenadas mundiais: destro, y para cima, y=0
é o plano terrestre, as unidades estão em metros.
colmap/
)Essas reconstruções COLMAP são exportadas de nossas reconstruções originais usando o Metashape 2.1.3 com parâmetros padrão.
As imagens em colmap/images
foram automaticamente distorcidas das imagens em images-jpeg
para projeções pinhole com o ponto principal no centro da imagem.
Observe que essa não distorção corta severamente as imagens olho de peixe e tende a produzir tamanhos de imagem diferentes para câmeras diferentes.
As imagens em colmap/images-*
são versões com resolução reduzida das imagens sem distorção de resolução total, semelhantes ao formato do conjunto de dados Mip-NeRF 360.
splits.json
) Contém listas de imagens para treinamento ( "train"
) e teste ( "test"
).
Todas as imagens de uma câmera são colocadas para teste: câmera 5
para Eyeful v1 e câmera 17
para Eyeful v2.
3 de novembro de 2023 – lançamento inicial do conjunto de dados
18 de janeiro de 2024 – adicionada resolução “1K” (684×1024 pixels) EXRs e JPEGs para experimentação em pequena escala.
19 de abril de 2024 – adicionadas duas salas do conjunto de dados Real Acoustic Fields (RAF): raf_emptyroom
e raf_furnishedroom
.
9 de outubro de 2024 – adicionadas reconstruções COLMAP exportadas com imagens não distorcidas no formato Mip-NeRF 360, por exemplo, compatível com gsplat.
Se você usar algum dado deste conjunto de dados ou qualquer código lançado neste repositório, cite o artigo VR-NeRF.
@InProceedings{VRNeRF, autor = {Linning Xu e Vasu Agrawal e William Laney e Tony Garcia e Aayush Bansal e Changil Kim e Rota Bulò, Samuel e Lorenzo Porzi e Peter Kontschieder e Aljaž Božič e Dahua Lin e Michael Zollhöfer e Christian Richardt}, title = {{VR-NeRF}: espaços virtualizados transitáveis de alta fidelidade}, booktitle = {SIGGRAPH Asia Conference Proceedings}, ano = {2023}, doi = {10.1145/3610548.3618139}, url = {https://vr-nerf .github.io}, }
Creative Commons Attribution-NonCommercial (CC BY-NC) 4.0, conforme encontrado no arquivo LICENSE.
[Termos de Uso] [Política de Privacidade]