Look Where You Can: Active View Selection for CAD Reconstruction under Occlusion
Organizations: Helmholtz-Zentrum Hereon · Leuphana Universität Lüneburg · Universität des Saarlandes · Technische Universität Hamburg
Abstract
CAD reconstruction methods assume a luxury reality rarely grants: unrestricted visual access to the object, photographed from any desired angle. Real objects, however, are scene-embedded, bolted against walls, wedged into corners, resting on floors, where the scene renders much of the view sphere unreachable and the remaining views unequally informative. We introduce \textbf{SightCAD}, a framework for parametric CAD reconstruction that treats view feasibility as a first-class constraint. In this work we consider objects from standard CAD benchmarks embedded in realistic indoor scenes with physically derived visibility constraints over a discrete view sphere. A learned view selector must choose feasible views for a vision--language model (VLM) that generates executable CadQuery code, scored by geometric fidelity of the executed solid. Because reward arrives only after discrete view selection, autoregressive generation, and CAD-kernel execution, we propose a joint training paradigm in which the view selector and the CAD-generation VLM are trained together against this reward. The learned selection policy departs sharply from random, uniform, and coverage-greedy alternatives, outperforming surface-area maximization (SA-max) by up to Intersection-over-Union (IoU) points across budgets . The full system surpasses strong external baselines on scene-embedded, occluded multi-view renders of DeepCAD and Fusion360 objects ( and effective-mIoU points over the best baseline, respectively), as well as on test-time domain-canonicalized real images from the industrial T-LESS benchmark and on both synthetic and real images from the MP6D industrial metal-parts benchmark, while producing the highest rate of executable programs of any method compared (invalid-code rate ).
Figures & tables
| SA-max ( a ) | fw-SA ( a ) | Learned ( a ) | Policy-neutral generator ( b ) | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| SFT | +GRPO | SFT | +GRPO | SFT | +GRPO | Random | Uniform | SA-max | fw-SA | Learned | |
| 1 | 45.80 | 53.05 | 44.15 | 50.98 | 49.97 | 55.86 | 24.36 | 23.79 | 40.90 | 39.23 | 44.05 |
| 2 | 47.36 | 54.28 | 46.72 | 53.75 | 50.68 | 56.95 | 33.11 | 36.40 | 44.44 | 44.32 | 46.04 |
| 3 | 47.75 | 54.72 | 47.66 | 54.40 | 51.69 | 58.51 | 36.89 | 40.57 | 46.02 | 46.11 | 47.46 |
| 4 | 48.15 | 55.16 | 48.26 | 54.99 | 52.90 | 60.52 | 38.82 | 42.68 | 46.30 | 46.59 | 47.81 |
| 5 | 48.55 | 55.40 | 48.89 | 55.29 | 53.88 | 61.79 | 39.85 | 43.81 | 46.01 | 46.68 | 48.86 |
| DeepCAD | Fusion360 | |||||||
|---|---|---|---|---|---|---|---|---|
| Method | IR% | medCD | mIoU% | mIoU eff | IR% | medCD | mIoU% | mIoU eff |
| Ours ( , +GRPO) | 0.00 | 5.36 | 68.49 | 68.49 | 1.00 | 10.42 | 53.56 | 53.03 |
| Ours ( , SFT) | 0.00 | 6.83 | 62.18 | 62.18 | 1.00 | 11.96 | 49.86 | 49.36 |
| cadrille | 4.00 | 18.30 | 49.05 | 47.09 | 5.00 | 33.62 | 37.73 | 35.85 |
| CAD-Fit | 6.00 | 21.07 | 47.08 | 44.26 | 17.00 | 26.46 | 40.32 | 33.47 |
| CAD-Coder | 2.00 | 37.10 | 38.29 | 37.52 | 3.00 | 66.61 | 28.56 | 27.71 |
| Synth ( ) | Real ( ) | Canon ( ) | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Method | IR% | medCD | mIoU% | mIoU eff | IR% | medCD | mIoU% | mIoU eff | IR% | medCD | mIoU% | mIoU eff |
| Ours ( , +GRPO) | 0.00 | 18.79 | 54.02 | 54.02 | 1.45 | 111.59 | 8.38 | 8.26 | 0.00 | 43.56 | 32.48 | 32.48 |
| Ours ( , SFT) | 3.33 | 24.47 | 46.76 | 45.20 | 4.35 | 101.41 | 9.68 | 9.25 | 11.59 | 71.36 | 19.83 | 17.53 |
| cadrille | 10.00 | 36.45 | 34.92 | 31.43 | 24.64 | 104.27 | 13.39 | 10.09 | 27.54 | 81.21 | 15.11 | 10.95 |
| CAD-Fit | 13.33 | 12.53 | 57.73 | 50.03 | 57.97 | 45.54 | 34.33 | 14.43 | 39.86 | 47.54 | 29.86 | 17.96 |
| CAD-Coder | 6.67 | 84.22 | 17.94 | 16.74 | 23.91 | 94.36 | 15.58 | 11.86 | 2.90 | 58.36 | 27.11 | 26.32 |
| Synth ( ) | Real ( ) | |||||||
|---|---|---|---|---|---|---|---|---|
| Method | IR% | medCD | mIoU% | mIoU eff | IR% | medCD | mIoU% | mIoU eff |
| Ours ( , +GRPO) | 0.00 | 20.55 | 48.31 | 48.31 | 0.50 | 57.91 | 25.71 | 25.58 |
| Ours ( , SFT) | 10.00 | 31.22 | 40.81 | 36.73 | 4.00 | 72.09 | 19.37 | 18.59 |
| cadrille | 10.00 | 26.91 | 43.03 | 38.73 | 30.50 | 77.94 | 18.44 | 12.82 |
| CAD-Fit | 20.00 | 29.51 | 42.39 | 33.91 | 21.50 | 71.03 | 21.85 | 17.16 |
| CAD-Coder | 15.00 | 49.47 | 27.51 | 23.38 | 7.50 | 66.28 | 21.45 | 19.84 |
Appendix figures & tables26 assets
Supplementary material from the paper’s appendix.
Appendix
| Learned | SA-max | fw-SA | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ortho. # | az-gap ( ∘ ) | cov. % | rig % | ortho. # | az-gap ( ∘ ) | cov. % | rig % | ortho. # | az-gap ( ∘ ) | cov. % | rig % | |
| 1 | 0.30 | — | 43.5 | 8.7 | 0.16 | — | 47.4 | 6.5 | 0.26 | — | 45.5 | 5.4 |
| 2 | 0.61 | 52.5 | 54.0 | 16.5 | 0.31 | 135.6 | 75.8 | 9.4 | 0.45 | 131.2 | 73.5 | 9.6 |
| 3 | 1.25 | 15.8 | 60.7 | 21.6 | 0.79 | 55.3 | 81.1 | 16.3 | 0.92 | 55.0 | 80.5 | 17.2 |
| 4 | 2.15 | 11.2 | 66.3 | 39.2 | 1.29 | 31.0 | 82.5 | 25.6 | 1.41 | 29.8 | 82.5 | 26.4 |
| 5 | 2.13 | 12.6 | 72.1 | 43.8 | 1.70 | 21.3 | 82.9 | 34.8 | 1.82 | 20.0 | 83.1 | 36.3 |
| Joint training | Generator RL tuning | |
|---|---|---|
| Group size | 4 | 8 |
| Sampling temperature | (view subsets) | (decodes) |
| Batch size | 64 global (4 GPUs) | 12 per GPU (4 GPUs) |
| Selector optimizer | AdamW, lr | frozen |
| Generator optimizer | AdamW, lr , wd | AdamW, lr |
| SFT weight | — |
| Policy | mIoU eff | IR% |
|---|---|---|
| Random | 36.89 | 2.03 |
| Uniform | 43.80 | 1.85 |
| SA-max | 47.75 | 2.00 |
| fw-SA | 47.76 | 2.00 |
| Learned (Joint-Training) | 51.69 | 1.80 |
| mIoU eff (pp) | |||||
|---|---|---|---|---|---|
| Policy-neutral | [2.4, 3.8] | [0.8, 2.4] | [0.7, 2.2] | [0.7, 2.3] | [2.0, 3.7] |
| Co-adapted +GRPO | [2.3, 3.3] | [2.1, 3.2] | [3.2, 4.4] | [4.8, 6.0] | [5.8, 7.0] |
| floor | |||||
| wall | |||||
| corner |
| Method | IR% | medCD | mIoU% | mIoU eff |
|---|---|---|---|---|
| Ours ( , +GRPO) | 0.30 | 8.10 | 66.70 | 66.50 |
| Ours ( , SFT) | 1.25 | 11.68 | 60.00 | 59.25 |
| cadrille | 17.12 | 13.02 | 54.30 | 45.01 |
| CAD-Coder | 33.40 | 48.20 | 37.75 | 25.14 |
| CAD-Recode TripoSR | 43.23 | 84.94 | 18.43 | 10.46 |
| GenCAD | 77.00 | 73.18 | 18.72 | 4.31 |