전체 정확도 비교(Graph 67.9% vs Baseline 70.0%)만으로는 각 시스템이 어떤 종류의 실수를 하는지 알 수 없음. 560개 질문별 정답/오답 패턴을 4가지로 분류하여 그래프의 진짜 강점 영역과 치명적 약점, 그리고 개선 방향의 우선순위를 명확히 하기 위해 분석.
두 eval 결과 JSON을 매칭하여 각 질문을 {둘 다 맞음, Graph만, Baseline만, 둘 다 틀림}으로 분류. 카테고리 × 난이도 cross-tab 집계. Query plan, 선택지까지 비교하여 원인 추적.
| 상태 | 수량 | 비율 |
|---|---|---|
| 둘 다 맞음 | 303 | 54.1% |
| Graph만 맞음 | 77 | 13.8% |
| Baseline만 맞음 | 89 | 15.9% |
| 둘 다 틀림 | 91 | 16.3% |
그래프 action 노드의 정확한 start_sec/end_sec로 duration 질문에 정확히 답변. Baseline(20프레임 분산)은 초 단위 추정 불가.
spatial edge의 valid_from/valid_until로 "언제 어떤 상태였나"를 정확히 답변. Baseline은 해당 프레임이 샘플링되지 않으면 추정 불가.
참여 관계 + 시간 순서로 "왜"에 구조적 답변. Cross-event 연결 필요 질문.
그래프에는 "있다" 정보만 있고 "어디에, 어느 방향에 보이냐"의 시각적 맥락이 없음.
참여자는 정확하지만 순서/세부 단계를 놓침. Query plan이 participant(single_object) 패턴으로 단일 물체 기준이라 시간순 단계 전체 포착 불가.
"~했어? 안 했어?" 질문에서 그래프가 participates edge가 있으면 무조건 긍정으로 해석.
"~하기 직전 상태" 질문에서 그래프가 연속적으로 유지되는 상태만 기억, 순간적 상태 놓침.
Norm1 정규화 후에도 남아있는 중복 object. plan이 participant(chopping_board_green)인데 실제 노드는 cutting_board.
| Category/Diff | 둘 다✓ | Graph만✓ | Base만✓ | 둘 다✗ | 판정 |
|---|---|---|---|---|---|
| EM1/L1 | 24 | 6 | 13 | 7 | Base 압도 |
| EM2/L2 | 11 | 2 | 9 | 4 | Base 압도 |
| EM3/L2 | 8 | 7 | 4 | 13 | Graph 우세 |
| EM5/L2 | 18 | 2 | 8 | 3 | Base 압도 |
| EM5/L3 | 20 | 3 | 0 | 0 | Graph 독점 |
| T2/L1 | 13 | 7 | 6 | 2 | Graph 우세 |
| T3/L2 | 13 | 6 | 3 | 2 | Graph 우세 |
| T3/L3 | 18 | 4 | 1 | 3 | Graph 우세 |
EM3(시간), T2(상태), T3(인과), L3(cross-event) — 공통점은 "정확한 수치·순서·관계가 필요한 질문". 그래프의 start_sec/end_sec, valid_from/valid_until, participates chain이 직접적으로 답변에 기여. 이 영역에서 77개 고유 정답이 나왔고, VLM이나 프레임으로는 절대 대체 불가.
EM1/L1(방향·위치), EM2/L2(동작 반복 세부 타이밍), EM5/L2(단계별 순서) — 공통점은 "프레임을 직접 봐야 판단 가능한 정보". 그래프가 이를 표현할 수 없는 구조적 한계. 빌드 단계에서 시각 메타데이터(좌/우/위/아래, 반복 횟수)를 추가하지 않는 한 해결 불가.
시각 메타데이터 추가: object가 프레임의 어디에 있었는지(좌/우/상/하) 저장. Action 세분화: stirring을 "stir 1, pause, stir 2"로 분리 유지. Transient state tracking: "~하기 직전" 순간 상태를 별도 캡쳐.
Multi-object query: participant([zucchini, diced_zucchini, zucchini_slices]). Context scoring: query 결과에서 질문 관련도 높은 것부터 context 구성. Fallback 다양화: participant 실패 시 time 쿼리로 자동 전환.
둘 다 틀린 91개 중 얼마나가 QA 자체 오류인지 수동 확인. EM1/L1처럼 시각 관찰이 답인 질문은 그래프 평가에서 분리 (그래프 미적용 영역으로 표시).
Graph context + 관련 keyframe 함께 제공 (이미 vqa_pipeline.py에 일부 구현). EM1/L1 13패 영역에서 keyframe 추가로 얼마나 회복 가능한지 측정.