Index
2026-06-25 — Analysis

ours (Tagged-Keyframe + 검색 회상) 동작 walkthrough

SceneMem (API track) | 실제 예시 = combo_014 · gemini-3.5-flash · ours R2 · 모델이 본 3-cam composite 그대로

TL;DR — 실제 이미지로 본 동작

1 파이프라인 (3단계)

① SELECT
walk 중 모델이 keyframe 지목(M2/MemER). 클러스터 → cap 8. 이 에피소드는 6장 보존.
② CAPTION(tag)
walk 종료 후 각 keyframe을 전용 콜로 태깅: objects(복수)·place·action. 행동 대상 외 물체까지 기록.
③ RETRIEVE
회상 질문의 object와 태그 매칭 → 최신 top-3 → 태그 텍스트 + 그 keyframe 이미지로 답.

아래는 전부 combo_014 실제 실행 산출물(모델이 실제로 본 세로 3-cam composite: 위=agentview-left, 중간=agentview-right, 아래=wrist eye-in-hand).

2 ① SELECT — 보존된 6개 keyframe

fine walk 동안 모델이 지목 → 클러스터 → 최종 6장. 각 이미지 아래는 ②에서 붙은 태그.

kf90
t0 · [cup, bottle] @ counter (pick)
kf190
t1 · [cup] @ microwave (place)
kf290
t2 · [juice_can] @ microwave (navigate)
kf910
t3 · [steak] @ fridge (open) ✗ 오라벨
kf6170
t4 · [wooden_spoon] @ counter (pick)
kf6360
t5 · [wooden_spoon, mug] @ counter (navigate)
관찰: 6장 중 bowl이 하나도 없다. RestockBowls의 bowl 배치 순간이 keyframe으로 지목되지 않아 메모리에 통째로 빠졌다(커버리지 갭). 또 t4/t5는 wooden_spoon 등 회상 질의와 무관한 프레임이 슬롯을 차지.

3 ③ RETRIEVE — 질문별 검색 결과 (이미지 동봉)

성공 "Show me where the cup is placed." → microwave ✓

cup keyframe

검색: 질문 object "cup" → 태그 [cup] @ microwave (place) 매칭(t1) → 이 태그 + 위 이미지를 근거로 제시.

이미지: 열린 microwave 앞, 로봇이 노란 cup을 microwave 안으로 넣는 순간(wrist cam에 cup 클로즈업). 캡션이 place=microwave, action=place정확.

: "Place the cup with liquid in the microwave" → 정답(microwave). m3v2는 같은 질문에 "counter"로 실패 — ours의 정밀 검색이 이김.

실패 "Show me where the steak is placed." → counter ✗ (정답 freezer)

steak keyframe

검색: "steak" → 태그 [steak] @ fridge (open) 매칭(t3) → 제시.

이미지: 중간 뷰에 열린 freezer 선반, wrist cam에 steak — 실은 steak를 freezer에 넣기 직전/순간. 프레임 선택 자체는 합리적.

그러나 캡션 오라벨: place=fridge(정답 freezer와 다른 fixture), action=open(place가 아님). 모델은 "open 태그는 배치 증거가 아니다"로 판단 → 마지막 장면(counter)에 끌려 "Place the steak on the counter"로 답. 옳게 고른 프레임이 캡션 한 줄 때문에 버려졌다.

실패 "Show me where the bowl is placed." → sink ✗ (정답 cabinet)

bowl keyframe
없음
(미선택)

검색: "bowl" → 매칭 태그 0건(6장 중 bowl 없음) → 폴백(전체 태그 dump).

: 근거 없이 추측 "Place the bowl in the sink" → 실패. bowl 배치 순간이 애초에 keyframe으로 안 잡혀 메모리에 없음 = 커버리지 갭.

4 종합 — combo_014 (ours vs m3v2)

질의정답oursm3v2실패 원인(ours)
cup 어디?microwavemicrowave ✓counter ✗
steak 어디?freezercounter ✗freezer ✓캡션 오라벨(freezer→fridge, place→open)
bowl 어디?cabinetsink ✗sink ✗keyframe 미선택(커버리지)

ours 1/3 vs m3v2 2/3. cup을 얻고 steak를 잃은 맞교환 — 검색은 작동하나 태그/커버리지 품질이 좌우.

5 진단 & 다음 (치팅 없는 방향)

병목 = 검색이 아니라 "캡션 품질 + 커버리지"

검색 메커니즘은 의도대로 동작한다(cup이 증명: m3v2가 틀린 걸 ours가 정밀 검색으로 맞춤). 실패는 두 군데서 온다 — (1) 캡션이 fixture/action을 틀림(steak: 프레임은 맞는데 freezer를 fridge로, place를 open으로), (2) 핵심 배치 순간이 keyframe으로 안 뽑힘(bowl). 둘 다 정답을 강제 주입하지 않고 개선 가능.

정답 위치를 메모리에 강제로 넣는 식(placement 강제 셀렉)은 치팅이라 배제. 대신: