Origen y objetivo del dataset
Structured3D es un dataset de visión 3D orientado a espacios interiores. Incluye 3.500 escenas creadas por diseñadores, acompañadas de anotaciones geométricas y semánticas precisas junto con renderizaciones fotorealistas 2D. Su propósito es facilitar la investigación en comprensión de escenas interiores, reconstrucción 3D, detección de layouts y segmentación semántica e instancia.
Características distintivas
- Topología estructurada: cada escena contiene nodos, líneas, planos y relaciones semánticas que describen muros, suelos, techos, puertas y ventanas.
- Renderizados fotorealistas: imágenes panorámicas y de perspectiva con distintas condiciones de iluminación.
- Anotaciones densas: segmentación semántica, segmentación por instancias, profundidad y normales de superficie.
Organización de los datos
Cada escena reside en su propio directorio. El archivo annotation_3d.json almacena la estructura 3D, mientras que bbox_3d.json contiene cajas envolventes. Los renderizados 2D se ubican bajo 2D_rendering, organizados por habitación y tipo de vista.
escena_0001/
├── 2D_rendering/
│ └── habitacion_0/
│ ├── panorama/
│ │ ├── rgb.png
│ │ ├── semantica.png
│ │ ├── instancia.png
│ │ ├── profundidad.png
│ │ ├── normales.png
│ │ ├── albedo.png
│ │ ├── layout.txt
│ │ └── camara.txt
│ └── perspectiva/
│ └── posicion_0/
│ ├── rgb.png
│ ├── semantica.png
│ ├── instancia.png
│ ├── profundidad.png
│ ├── normales.png
│ ├── albedo.png
│ ├── layout.json
│ └── camara.txt
├── anotacion_3d.json
└── cajas_3d.json
La anotación 3D describe puntos clave, aristas entre puntos, planos de superficie y relaciones semánticas. Esto permite construir representaciones vectoriales del espacio sin depender únicamente de nubes de puntos o mallas.
Configuración del entorno
Se recomienda usar Conda para instalar las dependencias principales:
conda install -c open3d-admin open3d
conda install -c conda-forge opencv
conda install -c conda-forge numpy matplotlib shapely descartes
pip install panda3d
Una vez instaladas las librerías, clonar el repositorio oficial del dataset en el directorio de trabajo:
git clone https://github.com/bertjiazheng/Structured3D.git
cd Structured3D
Visualización de la estructura 3D
El proyecto proporicona scripts para inspeccionar la geometría de una escena. Los modos disponibles incluyen wireframe, planos y planta arquitectónica:
# Visualizar la estructura en modo alambre
python visualize_3d.py --path /ruta/a/Structured3D --scene escena_0001 --type wireframe
# Visualizar los planos del interior
python visualize_3d.py --path /ruta/a/Structured3D --scene escena_0001 --type plane
# Generar la planta arquitectónica
python visualize_3d.py --path /ruta/a/Structured3D --scene escena_0001 --type floorplan
Visualización de malas texturizadas
Para observar una habitación con texturas se utiliza el siguiente comando:
python visualize_mesh.py --path /ruta/a/Structured3D --scene escena_0001 --room habitacion_0
Detección y visualización de layouts
El dataset incluye herramientas para superponer el layout estimado sobre panoramas o vistas de perspectiva:
# Layout sobre imagen panorámica
python visualize_layout.py --path /ruta/a/Structured3D --scene escena_0001 --type panorama
# Layout sobre vista de perspectiva
python visualize_layout.py --path /ruta/a/Structured3D --scene escena_0001 --type perspective
Divisiones estándar
Para garantizar comparaciones justas, el dataset se divide de la siguiente forma:
- Entrenamiento: scene_00000 a scene_02999
- Validación: scene_03000 a scene_03249
- Prueba: scene_03250 a scene_03499
Aplicaciones principales
Structured3D resulta especialmente útil en las siguientes líneas de investigación:
- Comprensión semántica de interiores
- Reconstrucción 3D a partir de imágenes 2D
- Estimación de layouts geométricos
- Segmentación semántica y por instancias