Retrospective Open-Vocabulary Memory for Long-Term Object Search
Organizations: National University of Singapore
Abstract
Long-term object search requires learning where objects usually appear from repeated but uneven observations of a changing environment. We formulate retrospective open-vocabulary memory as probabilistic inference from censored observations, where the key idea is to reason with evidence per opportunity: a detection or non-detection should influence belief only in proportion to the robot's opportunity to observe the corresponding location. We introduce ECROM, which uses this principle to estimate long-term prevalence for concepts specified only at query time and converts the resulting belief directly into an active-search prior. To evaluate this problem, we introduce a controlled long-term benchmark in ten HM3D homes that independently varies object placement and observation opportunity across repeated traversals. ECROM improves support-level AP on held-out queries by 4.5 points and search SPL by 4.2 points over the strongest competing memory in each metric. The benchmark, dataset, and code will be open-sourced. Project page: https://jiaming.im/ecrom/
Figures & tables
| Method | AP | Top-5 | AUROC | SR | SPL | |
| Ecrom (ours) | .216 | .368 | .760 | .0287 | .587 | .381 |
| Detection count | .148 | .318 | .659 | – | .440 | .330 |
| Visit frequency | .116 | .261 | .619 | .0811 | .433 | .299 |
| Opportunity-normalized count | .171 | .310 | .655 | .0773 | .467 | .310 |
| PredictiveGraphs-style (Perpetua ⋆ ) | .160 | .263 | .659 | .0302 | .533 | .339 |
| RAVEN-style retrieval | .150 | .340 | .600 | – | .420 | .310 |
| Method | SR | Travel (m) | Views |
|---|---|---|---|
| Ecrom (ours) | .93 | 19.4 | 4.7 |
| Detection count | .67 | 29.1 | 9.3 |
| PredictiveGraphs-style | .73 | 29.5 | 8.9 |
Appendix figures & tables8 assets
Supplementary material from the paper’s appendix.
Appendix
| Component | Original PredictiveGraphs (Perpetua ⋆ ) | Our implementation on LOOP-Bench |
|---|---|---|
| Relation state | binary object–receptacle relation | binary object–support relation on the shared m supports |
| Edge instantiation | first accepted detection | first localized accepted positive ( ) within the mapping traversals; supports without an edge carry the base rate of never-detected supports |
| Temporal models | persistence and emergence , log-normal duration mixtures, EM-fitted | unchanged; one to three components selected by AIC, fitted by the reference EM on the calibration histories with gaps preserved |
| Detector emissions | , | unchanged; pooled rates of the calibration objects |
| Model selection | Bayesian selection with annealing and forgetting | unchanged; clock is the traversal index, so is per traversal and per update |
| Switching prior | FreMEn / LLM schedules over weeks of hourly data | order zero from the edge’s own corrected detection fraction, shrunk towards the pooled rate (placements are independent across the 20 traversals) |
| Setting | Source of | Labels | Used for |
|---|---|---|---|
| Simulation | class histograms of all episode–support cells of the calibration objects, pooled over houses | simulator | every Ecrom row of Table 1 |
| Robot | score-stratified sample of about 120 stored keyframes per labeled prompt, pooled over prompts; histograms shrunk towards the simulation histograms ( ) | VLM, whole keyframe | Table 2 |
| Views | Opportunity | ||||||
|---|---|---|---|---|---|---|---|
| Score bin | All | 12–19 | – | ||||
| Method | AP | Top-5 | AUROC |
|---|---|---|---|
| Detection count | +.068 [+.034, +.105] | +.050 [+.016, +.089] | +.101 [+.053, +.151] |
| Visit frequency | +.101 [+.058, +.147] | +.106 [+.044, +.182] | +.141 [+.090, +.193] |
| Opportunity-normalized count | +.045 [+.005, +.092] | +.057 [+.001, +.123] | +.105 [+.059, +.154] |
| PredictiveGraphs-style | +.056 [+.017, +.095] | +.105 [+.012, +.196] | +.101 [+.052, +.151] |
| RAVEN-style retrieval | +.067 [+.031, +.105] | +.027 [ .054, +.109] | +.160 [+.113, +.205] |
| DynaMem-style latest state | +.115 [+.060, +.174] | +.171 [+.085, +.270] | +.132 [+.067, +.199] |
| Queries | AP | Top-5 | AUROC | ||
|---|---|---|---|---|---|
| Least observed third | 17 | +.057 | +.052 | +.112 | .0032 |
| Middle third | 16 | +.020 | +.013 | +.038 | .0031 |
| Best observed third | 17 | .001 | +.011 | .024 | .0005 |
| Component | Simulation | Robot |
|---|---|---|
| Mapping traversals | 20 per house | 10 |
| Likelihood ratio | calibration objects, simulator labels | VLM labels of stored keyframes (whole-image question), shrunk towards the simulation histograms |
| Live belief update | verified discovery, Eq. 8 , on every support weighted by its exposure | detector event with and , on the one support each frame is assigned to |
| Success | detector fires and at least 500 target pixels are in the executed view | detector fires and the operator confirms |
| Budget | 120 m of travel | 20 inspected views |
| Ecrom (ours) | Detection count | PredictiveGraphs-style | ||||
| Query | Success | Travel (m) | Success | Travel (m) | Success | Travel (m) |
| red cup | 3/3 | 25.4 | 2/3 | 49.9 | 2/3 | 42.2 |
| luncheon meat | 2/3 | 17.7 | 0/3 | 17.1 | 1/3 | 29.7 |
| headphones | 3/3 | 24.7 | 3/3 | 26.8 | 3/3 | 26.9 |
| cupcakes | 3/3 | 20.0 | 3/3 | 21.5 | 3/3 | 23.1 |
| scissors | 3/3 | 9.0 | 2/3 | 30.4 | 2/3 | 25.6 |