DRAFT: Decoding and Reconstructing 3D Room Layouts from fMRI and Camera Trajectories
Organizations: National Tsing Hua University · National Yang Ming Chiao Tung University
Abstract
While functional magnetic resonance imaging (fMRI) decoders reconstruct images and 3D objects, recovering the metric geometry of rooms from a moving viewpoint remains an open challenge. We introduce, to our knowledge for the first time, the task of reconstructing 3D layouts of held-out scenes using only the known camera trajectories and the fMRI signals of participants watching indoor walkthroughs, without any visual frames. The task is hard because of the temporal mismatch between rapid visual changes and blurred fMRI signals. Our method, DRAFT (Decoding and Reconstructing 3D room lAyouts from fMRI and Trajectories), extracts a compact layout representation from the early visual cortex and fuses this neural code with the geometric free space derived from camera motion. To evaluate it, we propose layout r, the Pearson correlation between predicted and ray-cast log depths. On ten held-out scenes (20 participants), DRAFT reaches a layout r of 0.480, outperforming the camera path alone (0.446) and seven fMRI decoders (at most 0.429). DRAFT also works as a plug-in that improves all seven decoders without retraining, raising their layout r from 0.171-0.429 to 0.487-0.493. Brain activity and camera motion can thus recover the metric layout of unseen rooms, a first step toward reconstructing the 3D spaces people see.
Figures & tables
| Layout | Pixel | Surface | |||||
| Layout from | Inputs | Row | L/R | MAE (m) | F@25cm | Chamfer (m) | |
| Generator alone | none | 0.303 | 0.626 | 0.602 | 1.507 | 0.478 | 0.449 |
| Readout, target | C, M | 0.440 | 0.656 | 0.621 | 1.176 | 0.485 | 0.417 |
| Trajectory head | M | 0.390 | 0.665 | 0.632 | 1.264 | 0.447 | 0.443 |
| Trajectory head | M, T | 0.446 | 0.688 | 0.658 | 1.252 | 0.465 | 0.427 |
| Fusion head (DRAFT) | C, M, T | 0.480 | 0.696 | 0.668 | 1.153 | 0.484 | 0.405 |
| Layout | F@25cm | Chamfer (m) | |||||||
| Method | alone | + path | + DRAFT | alone | + path | + DRAFT | alone | + path | + DRAFT |
| Linear depth | 0.429 | 0.454 | 0.490 ∗ | 0.393 | 0.440 | 0.455 ∗ | 0.508 | 0.454 | 0.436 ∗ |
| CLIP retrieval | 0.261 | 0.451 | 0.488 ∗ | 0.455 | 0.473 | 0.493 ∗ | 0.421 | 0.406 | 0.383 ∗ |
| Image decoding | 0.171 | 0.450 | 0.488 ∗ | 0.442 | 0.456 | 0.474 ∗ | 0.446 | 0.426 | 0.403 ∗ |
| Depth decoding | 0.322 | 0.455 | 0.491 ∗ | 0.317 | 0.435 | 0.449 ∗ | 0.727 | 0.462 | 0.444 ∗ |
| DREAM depth branch † | 0.428 | 0.450 | 0.488 ∗ | 0.368 | 0.435 | 0.449 ∗ | 0.561 | 0.464 | 0.445 ∗ |
| Comparison | Metric | Gain [95% interval] | Scenes |
|---|---|---|---|
| DRAFT vs generator | +0.172 [0.135, 0.210] | 10 a | |
| Row | +0.066 [0.040, 0.094] | 10 | |
| L/R | +0.065 [0.028, 0.101] | 8 | |
| MAE | +0.356 [0.304, 0.408] | 10 | |
| vs fixed template | +0.144 [0.084, 0.204] | 9 b | |
| vs per-second median | +0.225 [0.149, 0.298] | 10 a |
Appendix figures & tables18 assets
Supplementary material from the paper’s appendix.
Appendix
| Scene | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Total |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Archive ID suffix | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 09 | 10 | 12 | |
| Styles | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 3 | 2 | 3 | 36 |
| Recordings | 24 | 24 | 24 | 24 | 74 | 74 | 74 | 38 | 24 | 36 | 416 |
| Participants | 6 | 6 | 6 | 6 | 19 | 19 | 19 | 13 | 12 | 12 | 20 |
| Routes | 36 | 36 | 36 | 36 | 36 | 36 | 36 | 27 | 18 | 27 | 324 |
| (a) DRAFT minus each method | ||||||||
| Layout | F@25cm | |||||||
| DRAFT minus | Mean [95% CI] (scenes) | Mean [95% CI] (scenes) | ||||||
| References | ||||||||
| Video frames + DA V2 ‡ | 0.393 | [ 0.445, 0.340] | – | 0.258 | [ 0.295, 0.221] | – | ||
| Fixed template | 0.144 | [0.084, 0.204] | – | 0.093 | [0.080, 0.108] | – | ||
| Decoder alone (unmodified output) | ||||||||
| Input | Cos. | Entry | MSE (std.) | MAE (std.) | Cos. | Scenes |
|---|---|---|---|---|---|---|
| EVC (V1 to hV4) | 0.334 | 0.394 | 0.848 | 0.678 | 0.219 [ 0.150, 0.290] | 10 |
| Scene-selective | 0.174 | 0.221 | 0.971 | 0.740 | 0.059 [ 0.019, 0.088] | 9 |
| Union (both) | 0.334 | 0.394 | 0.847 | 0.678 | 0.219 [ 0.151, 0.287] | 10 |
| Motion alone (reference) | 0.115 | 0.185 | 0.987 | 0.751 | – | – |
| Layout | Pixel MAE (cm) | F@25cm (pp) | Chamfer (cm) | |||||||||||
| G | D | G 1 | G 2 | D 1 | D 2 | G 1 | G 2 | D 1 | D 2 | G 1 | G 2 | D 1 | D 2 | |
| Feature replacement: intact minus centered EVC features | ||||||||||||||
| Mean | 0.064 | 0.037 | 5.7 | 3.5 | 7.7 | 4.2 | 2.1 | 1.1 | 4.0 | 3.6 | 2.3 | 0.3 | 4.7 | 2.5 |
| 95% low | 0.046 | 0.025 | 7.4 | 5.8 | 10.6 | 6.6 | 1.4 | 0.7 | 2.2 | 2.4 | 3.0 | 0.4 | 6.4 | 3.6 |
| 95% high | 0.082 | 0.051 | 4.4 | 1.4 | 5.3 | 2.0 | 2.8 | 1.5 | 5.9 | 5.0 | 1.7 | 0.9 | 3.1 | 1.1 |
| Scenes better | 10 | 10 | 10 | 7 | 10 | 9 | 10 | 10 | 10 | 10 | 10 | 4 | 10 | 9 |
| Held-out scene | D | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Mean | D G | 95% interval | better | ||
| Layout | G | 0.307 | 0.336 | 0.314 | 0.283 | 0.343 | 0.277 | 0.285 | 0.275 | 0.262 | 0.324 | 0.301 | |||
| D | 0.551 | 0.513 | 0.578 | 0.532 | 0.492 | 0.359 | 0.479 | 0.391 | 0.408 | 0.427 | 0.473 | 0.172 | [ 0.135, 0.210] | 10/10 | |
| Pixel MAE (m) | G | 1.419 | 1.493 | 1.577 | 1.434 | 1.529 | 1.559 | 1.410 | 1.512 | 1.668 | 1.572 | 1.517 | |||
| D | 1.225 | 1.131 | 1.049 | 1.024 | 1.242 | 1.153 | 1.120 | 1.172 | 1.289 | 1.211 | 1.162 | 0.356 | [ 0.408, 0.304] | 10/10 | |
| F@25cm | G | 0.455 | 0.478 | 0.465 | 0.480 | 0.534 | 0.506 | 0.472 | 0.462 | 0.466 | 0.464 | 0.478 | |||
| Depth map | Merged eight-view surface | |||||||||
| Layout | Pixel MAE (m) | F@25cm | Chamfer (m) | |||||||
| Scene | G | D | G | D | G | D | BD + L | G | D | BD + L |
| 1 | 0.536 | 0.563 | 0.988 | 0.856 | 0.574 | 0.541 | 0.488 | 0.277 | 0.279 | 0.304 |
| 2 | 0.356 | 0.500 | 1.258 | 0.846 | 0.560 | 0.550 | 0.606 | 0.426 | 0.299 | 0.252 |
| 3 | 0.010 | 0.566 | 2.277 | 1.756 | 0.435 | 0.431 | 0.434 | 0.484 | 0.440 | 0.403 |
| 4 | 0.435 | 0.583 | 1.221 | 0.705 | 0.536 | 0.686 | 0.635 | 0.399 | 0.238 | 0.259 |
| (a) | Median-aligned | Log-affine fit | Unaligned pixels | ||||
|---|---|---|---|---|---|---|---|
| Method | F | Chamfer (m) | F | Chamfer (m) | SI-log | AbsRel | |
| Fixed template | 0.569 | 0.331 | 0.575 | 0.319 | 52.8 | 1.150 | 0.281 |
| Generator | 0.548 | 0.340 | 0.592 | 0.316 | 54.9 | 0.851 | 0.265 |
| Trajectory head | 0.582 | 0.324 | 0.622 | 0.280 | 50.6 | 0.857 | 0.223 |
| Linear depth | 0.581 | 0.322 | 0.607 | 0.290 | 50.1 | 0.825 | 0.234 |
| Brain-Diffuser | 0.571 | 0.328 | 0.601 | 0.291 | 57.3 | 1.064 | 0.291 |
| F@25cm, eight views | Change in 3D error (m), 1 s lag | |||
| Prediction source | ||||
| Current models | ||||
| Generator | 0.469 [0.442, 0.493] | 0.456 [0.435, 0.477] | 0.585 [0.561, 0.613] | 1.227 [1.170, 1.292] |
| DRAFT | 0.418 [0.391, 0.445] | 0.467 [0.435, 0.494] | 0.372 [0.347, 0.398] | 0.627 [0.577, 0.681] |
| Decoders | ||||
| Brain-Diffuser | 0.492 [0.467, 0.516] | 0.411 [0.398, 0.427] | 0.915 [0.887, 0.944] | 2.404 [2.314, 2.498] |
| Scored against the evaluated scene | Correct | Correct minus wrong scene | ||||||
| Prediction | F@25cm | Precision | Recall | Chamfer (m) | F@25cm | F gain [95% CI] | Scenes (of 10) | |
| Fixed template | ||||||||
| Fixed template | 1 | 0.391 | 0.399 | 0.405 | 0.524 | – | – | – |
| 2 | 0.437 | 0.390 | 0.519 | 0.437 | – | – | – | |
| Wrong-scene control: predictions for the next held-out scene | ||||||||
| DRAFT | 1 | 0.379 | 0.379 | 0.403 | 0.546 | 0.416 | [0.011, 0.063] | 6 |
| Pixel MAE (m) | F@25cm | Chamfer (m) | |||||
| Method (inputs) | Layout | ||||||
| Generator alone (none) | 0.303 | 1.168 | 1.507 | 0.477 | 0.478 | 0.426 | 0.449 |
| 0.002 [ 0.012, 0.013] | 0.023 [ 0.002, 0.047] | ||||||
| Readout, target (C, M) | 0.440 | 1.097 | 1.176 | 0.432 | 0.485 | 0.478 | 0.417 |
| Trajectory head (M) | 0.390 | 1.217 | 1.264 | 0.383 | 0.447 | 0.535 | 0.443 |
| Trajectory head (M, T) | 0.446 | 1.185 | 1.252 | 0.397 | 0.465 | 0.514 | 0.427 |
| (a) Calibration-factor sweep | |||||
|---|---|---|---|---|---|
| Calibration factor | |||||
| Method | 1 | 1.5 | 2 | 2.5 | 3 |
| F@25cm | |||||
| DRAFT | 0.416 | 0.464 | 0.484 | 0.484 | 0.473 |
| Generator alone | 0.477 | 0.500 | 0.478 | 0.444 | 0.410 |
| Brain-Diffuser | 0.492 | 0.465 | 0.424 | 0.388 | 0.358 |
| (a) Selected factor and scores | ||||||
|---|---|---|---|---|---|---|
| Selected by Chamfer distance | Selected by F-score | |||||
| Method | (folds) | F@25cm | Chamfer (m) | (folds) | F@25cm | Chamfer (m) |
| DRAFT | 2 (10) | 0.484 | 0.405 | 2 (5), 2.5 (5) | 0.477 | 0.439 |
| Generator alone | 1.5 (10) | 0.500 | 0.391 | as by Chamfer distance | ||
| Brain-Diffuser | 1 (10) | 0.492 | 0.389 | as above | ||
| MindEye | 1 (10) | 0.494 | 0.381 | as above | ||
| Question | Statistic | Estimate [95% CI] | Scenes | Holm | Outcome | |
|---|---|---|---|---|---|---|
| Does the brain’s gain survive single recordings? | Layout , DRAFT minus feature replacement, one recording, no pooling | [0.005, 0.018] | 8 | 0.010 | 0.049 | support |
| Does averaging more recordings raise layout ? | Slope per doubling of recordings (1, 2, 3, 6) | [0.0038, 0.0055] | 10 | 0.002 | 0.012 | support ∗ |
| Is the gain larger where the path covers less of the view? | Within-scene Spearman of path coverage and per-view gain | [ , 0.110] | 7 | 0.27 | 0.82 | null † |
| Does the gain over the path grow with path noise? | Slope of DRAFT minus trajectory head over six noise levels | [ , 0.0036] | 4 | 0.81 | 0.82 | null |
| Is DRAFT more scene-specific than MindEye? | Correct minus wrong-scene F@25cm, DRAFT minus unmodified MindEye | [ , 0.042] | 6 | 0.37 | 0.82 | null |
| Does DRAFT gain on MindEye at coarser thresholds? | Slope of the F-score difference per doubling of the threshold (10 cm to 1 m) | [ , ] | 2 | 0.010 | 0.049 | contrary |
| Scene | Recordings (participants) | DRAFT | H1: trajectory head | H2: fixed template | H3: feature replacement |
| W1 | 56 (19) | 0.285 | [0.006, 0.020] ∗ | [0.099, 0.114] ∗ | [0.022, 0.036] ∗ |
| W2 | 24 (6) | 0.489 | [0.003, 0.045] ∗ | [0.202, 0.246] ∗ | [0.048, 0.092] ∗ |
| W3 | 6 (6) | 0.476 | [ , 0.030] | [0.181, 0.236] ∗ | [0.001, 0.061] ∗ |
| W4 | 24 (6) | 0.579 | [ , 0.044] | [0.163, 0.209] ∗ | [ , 0.037] |
| W5 | 24 (6) | 0.534 | [ , 0.035] | [0.152, 0.219] ∗ | [ , 0.065] |
| Mean, scenes, | , 5, 0.031 | , 5, 0.031 | , 5, 0.031 |
| Inputs | Layout | Contrast | Difference [95% CI] | Scenes | Role | |
|---|---|---|---|---|---|---|
| M0: camera motion | 0.338 | M3 M1 | [ , 0.033] | 6 | 0.25 | primary: null |
| M1: + image features | 0.561 | M1 M0 | [0.203, 0.244] | 10 | 0.008 (Holm) | secondary |
| M2: + EVC (paper) | 0.440 | M2 M0 | [0.053, 0.152] | 9 | 0.008 (Holm) | secondary |
| M3: + image features + EVC | 0.573 | M3 M2 | [0.109, 0.164] | 10 | 0.008 (Holm) | secondary |
| M2 M1 | [ , ] | 1 | 0.008 (Holm) | secondary |
3D Reconstruction
3D reconstruction recovers a scene’s shape, appearance, and camera motion from images, video, depth, or other sensor measurements.
See all 955 papers