260406-260412 · long-horizon VQA via spatio-temporal graph
Egocentric 비디오에서 시공간 그래프를 자동 구축하여 long-term memory 기반 VQA를 수행하는 시스템. 긴 비디오(수십 분~수 시간)에서 Object / Action / Time / Space 4축으로 쿼리 가능한 구조화된 지식 그래프를 만들어, "10분 전에 칼을 어디에 뒀지?" 같은 long-horizon 질문에 답변. 최종적으로 VLA의 long-term memory 모듈로 확장 가능. 논문 목표.
Why: v3 결과에서 노이즈 노드(person 계열 13개, generic ID, water/wall, 셀러리 11개 중복 등)가 누적되어 그래프가 ~74개 object 노드로 부풀려 있었음. VQA에는 정확히 ~25개 고유 물체만 필요한데도 ~3배의 잡음.
How: P0 항목(코드 변경 없이 PHASE1 프롬프트 수정만으로 처리 가능한 것)들을 모아 한 번에 적용:
Result:
| 지표 | v3 (이전) | v4 (개선) | Δ |
|---|---|---|---|
| Object 노드 | 74 | 39 | −47% |
| Person 계열 | 13 | 5 | −62% |
| Generic ID (object_N) | 3 | 0 | 완전 제거 |
| Noise (water/wall/shoes) | 4 | 1 | −75% |
| Celery 계열 | 11 | 2 | −82% |
| Action 노드 | 14 | 10 | −29% |
| Washing 과분할 | 6개 | 1개 | 해결 |
| Spatial edges | 248 | 192 | −23% |
Takeaway: 프롬프트 개선만으로 ~47% 노이즈 감소. VLM이 100% 규칙을 따르진 않아서 person/hands/water가 일부 잔존 — 후처리 정규화가 여전히 필요하지만, 비용 0의 P0 작업으로 가장 큰 개선 회수.
Why: 그래프 자체는 평가 도구이지 QA 생성 도구가 아니다(자기 채점이 되므로 벤치마크로 무의미). 그래프 외부에서 순수 VLM + 사람 검증으로 VQA 데이터셋을 만드는 파이프라인을 설계해야 했다.
How: 5단계 파이프라인 정의:
비용 추산: 10분 영상 ~$0.12, 1시간 영상 ~$0.72.
Result: 파일 구조 정리 (scripts/generate_qa.py, src/qa_generator.py, src/qa_validator.py, data/qa/) + 카테고리별 프롬프트 템플릿 작성. 코드 구현은 다음 사이클.
Why: Ego4D NLQ, NExT-QA, EgoSchema, STAR, EgoPlan 등 기존 벤치마크 조사 결과, "장시간 메모리 기반 일상 질문"에 직접 대응하는 벤치마크가 부족. 우리 시스템의 차별점인 valid_from/valid_until spatial edge는 특히 STATE TRACKING(EM2)에서 우위를 보임. 메인 태스크와 카테고리를 명확히 정의해야 QA 생성 단계에서 표적이 잡힘.
How: claude/0409_vqa_tasks.md에 정리:
Result: 카테고리 매트릭스가 QA 생성 프롬프트의 직접 입력으로 사용 가능한 형태로 완성. 기존 벤치마크 8개 비교 표 작성.
Why: 04-10에 v4 그래프로 첫 QA 생성을 시도했더니 결과물이 "00:00:30 무렵 냉장고 문 상태는?" / "세그먼트 시작 시 카메라 시야를 처음 가린 물건은?" 같은 부자연스러운 질문이 다수 나옴. 사람이 실제로 묻지 않는 형태.
How: claude/0410_vqa_feedback.md에 3가지 문제 식별:
QA 생성 프롬프트 수정 방향 정리 — "Do NOT include timestamps in questions", "Do NOT reference 'segment'/'frame'", "Questions should sound like someone recalling".
Result: 다음 사이클의 QA 재생성에 적용할 명확한 corrective rule 세트. 예외 (EM3 Temporal Memory)도 명시.
의미: 이번 주는 "그래프 → QA → 평가" 파이프라인 중 그래프 단계의 quality와 QA 단계의 spec을 동시에 묶은 주. 두 단계가 정합되지 않으면 평가 자체가 의미 없으므로 동시에 다듬는 것이 정답이었다.
scripts/generate_qa.py 등).