250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- video retireval
- 파이싼
- Retrieval
- 파이썬
- 그리디 알고리즘
- n과 m
- 가상환경
- 1101
- BOJ
- 경사하강법
- 밑바닥부터 시작하는 딥러닝
- 손실함수
- N-Queen
- 티스토리챌린지
- 신경망 학습
- Python
- 오블완
- pyenv
- end to end
- streamlit
- 15649
- 백트래킹
- 개발환경
- 9020
- 4948
- 1002
- 백준
- 기계학습
- 재귀
- REST API
Archives
- Today
- Total
파이톨치
RAVU (Retrieval Augmented Video Understanding 본문
728x90
논문 RAVU (Retrieval Augmented Video Understanding)는 기존 멀티모달 모델들이 긴 영상에서 복잡한 질의를 이해하는 데 한계가 있다는 점에서 출발합니다. 이 논문은 영상의 구조적 메모리(graph)를 만들고, **그 위에서 질의에 따라 단계적으로 추론(compositional reasoning)**을 수행해 답을 찾는 방식을 제안합니다.
🔍 왜 이렇게 접근했는가? (문제의식)
문제 1: LMM은 긴 영상에 약함
- 영상은 길고, 프레임 수는 많으며, LMM은 입력 토큰 수에 제한이 있음.
- 예: 1시간 영상이면 수십만 개의 비주얼 토큰이 필요 → 불가능.
문제 2: 기존 접근은 “질의에 직접 맞는 프레임”만 찾음
- 유사도 기반으로 중요한 장면을 찾지만, “이 사람이 이 행동을 한 다음에 뭘 했는가?” 같은 멀티홉 reasoning이 필요한 질문에 취약.
- 객체의 추적이나 시간적 흐름을 고려하지 않음 → 정확한 맥락 파악이 어려움.
🔧 어떻게 접근했는가? (방법 개요)
전체 구조 요약
- Spatio-temporal Graph 생성 (기억)
- 객체와 관계를 노드와 엣지로 표현 → 시간 흐름에 따라 연결.
- Compositional Reasoning (추론)
- 질문을 reasoning steps로 나눔 → 그래프 위에서 단계적으로 추론.
- 추론 결과로 key frames를 선택 → LMM에 넣고 답 생성.
📌 예시: "What did the dog do after running up the stairs?"
Step 1: localize_node("dog running up the stairs")
- 그래프에서 "계단을 오르는 개"에 해당하는 노드 탐색.
Step 2: sample_entity_events(localized_node, "future")
- 이후에 이 개가 어떤 행동을 했는지를 이벤트 단위로 추출.
→ 최종적으로 해당 프레임들을 LMM에 넣고 답을 생성.
🧠 구체적인 방법 (Method Detail)
1. Spatio-Temporal Graph 생성
단계
- 객체 탐지 및 트래킹
- SAM2를 사용해 각 프레임의 객체를 감지하고 ID 부여.
- 프레임 및 객체 설명 생성 (LMM)
- 프레임과 객체들을 언어로 기술 → rich한 설명 확보.
- 그래프 구축 (LLM)
- 위 설명을 바탕으로 노드(객체), 엣지(관계)를 연결해 그래프 생성.
- Entity-wise Event Chunking
- 같은 객체의 행동을 시간 흐름에 따라 이벤트 단위로 나눔.
2. Compositional Reasoning over Graph
핵심 아이디어
- 복잡한 질문을 논리적인 reasoning steps로 나눠서 해결.
사용된 주요 함수
- localize_node: 조건에 맞는 객체와 프레임을 찾음.
- sample_entity_events: 해당 객체의 시점 이후/이전 이벤트를 샘플링.
- count_nodes, analyze_events, get_global_context 등.
예시 기반 설명
- 질문: “What did the boy do after he drink from the juice pack?”
- Step1: “boy drinking”이라는 상태를 가진 노드 찾기.
- Step2: 그 이후의 행동에 해당하는 이벤트 샘플링 → “eat the food” 도출.
📊 어떤 결과를 얻었는가? (성능 비교)
NExT-QA (zero-shot)
모델전체 정확도TemporalCausalDescriptive
RAVU | 74.1 | 68.9 | 76.7 | 76.1 |
VideoAgent | 71.3 | 64.5 | 72.7 | 81.1 |
LLoVi | 66.3 | 60.1 | 67.1 | 76.5 |
- Temporal 질문에서 특히 뛰어남 (multi-hop reasoning 구조 덕분).
EgoSchema
모델정확도
RAVU | 66.6 |
VideoAgent | 60.2 |
LLoVi | 52.2 |
SeViLA | 25.7 |
- 3분짜리 영상에서 단 10프레임만 보고도 우수한 성능.
🚧 한계점은?
- 그래프 생성 품질에 민감
- SAM2 또는 LMM이 객체를 잘못 인식하면 전반적인 reasoning 실패 가능.
- 실제로 human-annotated graph가 가장 좋은 성능을 냄 (Table 6).
- 추론 단계의 비용 높음
- 질문을 분석하고 여러 단계를 거치는 방식 → 토큰 수 증가, inference latency 증가.
- 예: 평균 5.9k 토큰 사용 (in-context example 포함). 이를 줄이기 위한 finetuning 필요.
- Gemini 모델에 의존
- 안전성 필터링 때문에 일부 질문/프레임 차단 → 실험 범위 제한됨.
🧩 요약
항목내용
문제의식 | 긴 영상에서 멀티홉 reasoning과 객체 추적이 어려움 |
핵심 아이디어 | 그래프 기반 장기 메모리 + 구성적 추론으로 해결 |
구현 방식 | 프레임마다 객체/관계 추출 → 그래프 생성 → 질문에 맞춰 단계적 reasoning |
결과 | 적은 수의 프레임만 보고도 경쟁력 있는 성능 확보 |
한계 | 그래프 품질 의존도 높고, 추론 비용이 큼 |
필요하다면, Figure 기반으로 설명이나 발표 슬라이드용 정리도 도와줄게요!
728x90