VideoChat: Chat-Centric Video Understanding

FSA·2024년 11월 20일
0

1. 관련 논문들


0. abstract

  • 현재의 비디오 이해 패러다임은 특정 작업에 맞춘, 사전 학습된 비디오 모델의 튜닝에 한정되어,
    • 비디오 콘텐츠에 대한 일반적인 시공간적 이해를 제한하고 있음

1. 소개

  • 최근 연구에서 이미지 중심의 multi modal 대화 시스템이 주목받고 있습니다.

  • 하지만 비디오 중심의 작업은 아직 데이터 중심의 관점에서 공식적으로 다루어지지 않았습니다.
  • 저희의 초기 비디오 중심 다중 모달 대화 시스템은 (과거 연구를 의미, VideoChat-Text)
    • 비디오 이해 문제를 -> 자연어 처리(NLP) 질문-응답으로 변형하여,
      • 공개된 비주얼 모델로 비디오 콘텐츠를 텍스트화
    • 그러나 이는 비디오를 텍스트 설명으로 변환하는 과정에서
      • 시각 정보의 손실시공간적 복잡성의 과도한 단순화를 초래

우리의 접근 방식

  • 이러한 문제를 해결하기 위해, 저희는 최첨단의 비디오 및 언어 도메인 기술을 활용한, 대화 중심의 비디오 이해 시스템인 VideoChat을 소개
  • 이 시스템은 비디오와 언어의 기반 모델을 학습 가능한 신경 인터페이스를 통해 통합하여,
    • 시공간적 추론, 이벤트 위치 지정, 인과 관계 추론에 뛰어난 성능을 보임

2. 관련 연구

비디오 기반 모델

대형 언어 모델

  • 최근 대형 언어 모델(LLM)의 발전은 언어 생성, 인컨텍스트 학습 등 놀라운 능력을 보여줌

LLM을 활용한 다중 모달 이해

  • LLM의 성공은, 비전 모델과 LLM을 결합하여 다중 모달 추론과 작업을 수행하는 시스템의 개발을 가속화
  • Visual instruction tuning은 시각적 지시 작업에 대해 LLM을 fine-tuning하는 기술을 도입하여

3. 논문 대충 요약

시스템 아키텍처

  • VideoChat은 비디오 기반 모델과 LLM을 학습 가능한 신경 인터페이스를 통해 통합

학습 방법

  • 두 단계의 경량 학습을 통해 시스템을 구축하였습니다:
  1. 1단계 - 시공간적 학습:
  • 대규모 비디오-텍스트 데이터셋을 활용하여 시공간적 정보를 학습
  1. 2단계 - 비디오-언어 정렬 학습:
  • 자체 구축한 비디오 지시 데이터셋을 활용하여 비디오와 언어의 정렬을 학습

비디오 중심의 지시 데이터셋 구축

데이터셋의 필요성

  • 비디오 중심의 다중 모달 대화 시스템을 효과적으로 학습시키기 위해서는 적절한 데이터셋이 필요
  • 기존의 이미지 중심 데이터셋은 비디오의 시공간적 특성을 충분히 반영하지 못하기 때문에,
    • 저희는 새로운 비디오 중심의 지시 데이터셋을 구축

데이터셋 구성

  • 비디오 수집:
    • 수천 개의 비디오를 수집
  • 텍스트 설명 생성:
    • 각 비디오에 대해 시간 순서대로 자세한 텍스트 설명을 생성
  • 대화 생성:
    • ChatGPT를 활용하여 생성된 텍스트 설명을 기반으로 대화를 구성
  • 시공간적 요소 강조:
    • 데이터셋은 시공간적 객체, 동작, 이벤트, 인과 관계를 강조하여 구성
  • 이를 통해 비디오 기반의 다중 모달 대화 시스템을 학습시키기에 적합한 데이터셋을 확보

6. 결론

  • 이 시스템은 비디오 중심의 다중 모달 대화 시스템으로, 두 가지 버전으로 구현
  1. 텍스트 기반 버전 (VideoChat-Text):
  • 대형 언어 모델을 비디오 작업의 범용 디코더로 활용하는 방법의 효과를 보여줌
  1. 엔드투엔드 버전 (VideoChat-Embed):
  • 비디오 이해를 지시된 비디오-텍스트 형식으로 처리하려는 초기 시도를 나타냄
  • 엔드투엔드 솔루션은, 학습 가능한 신경 인터페이스를 통해 비디오 기반 모델과 대형 언어 모델을 효과적으로 결합
  • 시스템의 성능 향상을 위해 시공간적 추론과 인과 관계를 강조하는 비디오 중심의 지시 데이터셋을 도입

7. 한계점

  1. 장기 비디오 처리의 어려움:
  • VideoChat-Text와 VideoChat-Embed 모두 1분 이상의 장기 비디오를 처리하는 데 어려움을 겪습니다.
    • 이는 긴 비디오의 맥락을 효과적이고 효율적으로 모델링하는 것이 복잡하고 지속적인 연구 과제이기 때문
  • 또한 사용자 친화적인 상호 작용을 제공하면서 긴 비디오를 처리할 때
    • 응답 시간, GPU 메모리 사용량 및 시스템 성능에 대한 사용자 기대치를 균형 있게 조절하는 것이 어려움
  1. 시공간적 및 인과 추론 능력의 미흡:
  • 시스템의 시공간적 및 인과 추론 능력은 아직 초기 단계
    • 이러한 한계는 현재의 지시 데이터 규모와 구축 방법, 전체 시스템 규모사용된 모델에 기인
  1. 시간에 민감하고 성능이 중요한 응용 분야에서의 성능 격차:
  • 예를 들어, 자가 중심적인 작업 지시 예측지능형 모니터링과 같은 분야에서의 성능 격차를 해결하는 것은 지속적인 과제

8. method (제대로된 깊은 설명)

  • VideoChat은 비디오 이해를 위해 두 가지 접근 방식을 제안합니다: VideoChat-TextVideoChat-Embed입니다.

3.1 VideoChat-Text

3.1.1. Perception Models

  • 주어진 비디오에 대해 ffmpeg를 사용하여 저속 FPS로 주요 프레임을 추출하여, T개의 비디오 프레임과 관련 오디오를 생성
  • 추출된 프레임과 오디오를 다양한 모델에 입력함으로써, 아래의 다양한 정보를 얻습니다.
  • 비디오 및 이미지 모델 [46, 34, 20, 48, 15, 33]을 결합하여
    • 행동 [46, 20, 21] (InternVideo [46] 사용), 객체 [45, 15], 객체 주석 및 위치 [48] 등을 분석
    • TODO: InternVideo 가 행동을 어떻게 추출하는지 보자.
  • 이들 모델의 대부분은 출력이 독립적인 경향이 있지만,
    • 사전 학습된 T5 언어 모델 [34]을 사용하여 설명을 더 명확하게 다듬습니다.
  • 또한, Whisper [33] 음성 인식 모델을 VideoChat-Text에 통합하여 비디오 내 오디오 데이터를 활용함으로써 비디오 설명의 풍부함을 더욱 향상시킵니다.
    • Robust speech recognition via large-scale weak supervision

3.1.2 프롬프트 시스템 (Prompt System)

  • 비디오를 다양한 비전 모델에 입력하여 여러 텍스트화된 비디오 출력을 얻은 후 이를 템플릿(Table 1)에 따라 구성하여 LLM의 입력으로 제공
  • 이후, LLM에 맥락을 제공하여 입력된 텍스트(인식 모델로부터 생성된 구조화된 비디오 정보)를 통해 비디오를 "보는" 것처럼 상상하게 하고 사용자와 대화를 진행하도록 합니다.
  • 이러한 프롬프트는 Table 2에 나와 있습니다.

Table 2: 시스템 프롬프트
시스템이 텍스트화된 비디오를 이해하고 문서의 관련 내용을 기반으로 응답하도록 합니다. 비디오와 무관한 질문에는 답하지 않도록 설정합니다.

프롬프트 예시:
당신은 비디오 맥락을 기반으로 대화를 진행하는 챗봇입니다. 주어진 맥락을 기반으로 주로 답변하며, 태그 정보를 수정하거나 비디오에 포함된 인물이나 객체와 관련된 지식을 활용할 수도 있습니다. 타이밍 설명은 초당 1/F P S의 설명으로 시간을 변환할 수 있습니다. 설명할 때는 주로 타이밍 설명을 참조하세요. 밀도 캡션은 5초마다 내용을 제공합니다. 타이밍으로 이를 구분할 수 있습니다. 하지만 비디오 줄거리를 임의로 생성하지는 마세요.

시작!
비디오 맥락의 시간 순서: textualizing_videos (Table 1의 내용)
질문: question

3.1.3. 분석

  • 10초 분량의 비디오 클립을 NVIDIA-A10 GPU로 약 2초 안에 처리
  • 그러나 텍스트를 소통 매체로 사용하는 것은 인식 모델의 디코더 성능을 제한하여 표현 능력을 제약합니다.
  • LLM에 비디오에서 더 풍부한 시각적 정보를 제공하려면 보다 고급의 인식 모델을 사용해야 하지만 이는 VideoChat-Text의 효율성과 충돌할 수 있습니다.
  • 또한, VideoChat-Text는 인기 있는 시각적 지침 튜닝(Visual Instruction Tuning) [25]의 잠재적 이점을 충분히 활용하지 못합니다.

3.2. VideoChat-Embed

  • 비디오와 언어 기반 모델을 결합하고 학습 가능한 비디오-언어 토큰 인터페이스(VLTF)를 추가로 사용
  • 더 나은 모달리티 간 최적화를 위해, [53, 49, 46, 21]에서 영감을 받아 언어 친화적인 비디오 기반 모델을 채택
    • 46: internvideo
  • 비디오의 중복성을 고려하여 [41], VLTF를 도입하여 cross-attention 를 활용해 비디오 토큰을 압축

3.2.1. Architecture

  • 이 논문에서는 VideoChat-Embed를 BLIP-2 [18]와 StableVicuna [10]를 기반으로 구현(Figure 2a).
    • 구체적으로, 사전 학습된 ViT-G [39]를 Global Multi-Head Relation Aggregator(GMHRA)와 결합하여 사용하며, 이는 InternVideo [46]와 UniFormerV2 [20]에서 사용된 시간적 모델링 모듈
      • 39: Eva-clip: Improved training techniques for clip at scale
  • 토큰 인터페이스로는 추가 linear-projection과 함께 사전 학습된 QFormer를 사용하며,
    • 비디오 맥락 모델링을 위해 추가적인 쿼리 토큰이 보완됩니다.
  • 이를 통해 대화에 적합한 컴팩트한 LLM 호환 비디오 임베딩을 얻을 수 있습니다.
  • 학습 과정에서, 새롭게 통합된 GMHRA, 쿼리 및 선형 투영을 제외한 대부분의 매개변수는 고정됩니다.
  • [21]에서 영감을 받아, 우리는 이미지 데이터를 공동 학습에 도입합니다(Figure 2b).
    • 1단계에서는 대규모 비디오-텍스트 fine-tuning을 통해 비디오 인코더를 LLM에 정렬
    • 2단계에서는 비디오 설명과 비디오 질문-답변 쌍이라는 두 가지 유형의 비디오 지침 데이터를 사용하여 시스템을 조정

3.2.2. Instruction Data

  • VideoChat-Text의 도움을 받아 비디오 텍스트를 기반으로 만든 후, 이것을 이용하여 데이터를 생성

3.2.2.1. 상세 비디오 설명 (Detailed Video Descriptions)

  • 제공된 비디오 설명을 GPT-4를 사용하여 비디오 내러티브로 요약합니다(Table 5).
Table 5: 상세 비디오 설명 예시

주어진 비디오
Human: <Video>video_embed</Video> 비디오는 \(t_0, t_1, ..., t_T\) 초에서 샘플링된 \(T\)개의 프레임을 포함합니다.
Human: 비디오의 분위기와 사건들을 생생하고 묘사적인 서사로 표현하세요.
Assistant:
처음에, 긴 갈색 머리를 가진 젊은 여성이 배낭을 메고 절벽 끝에 서서 아름다운 산 풍경을 바라보고 있는 모습이 보입니다. 그녀는 경이로움에 잠겨 몇 초 동안 서 있습니다. 다음으로, 그녀가 천천히 몸을 돌리며 두 팔을 활짝 펴는 모습이 보입니다. 그런 다음, 그녀가 협곡을 마주 보며 몇 걸음 뒤로 물러나고 여전히 두 팔을 활짝 편 채 서 있는 모습이 보입니다. 그녀는 풍경의 웅장함을 만끽하는 듯합니다. 마지막으로, 그녀는 배낭을 맨 채로 절벽 가장자리에 자신감 있게 서 있습니다. 마치 산을 정복한 것처럼 보입니다.

비디오 전반에 걸쳐 협곡의 광활한 풍경과 배경에 있는 산들이 보입니다. 하늘은 일부는 흐리고, 일부는 맑은 파란색으로 아름다운 대비를 이룹니다. 전체적으로 이 젊은 여성은 풍경에 매료되어 두 팔을 활짝 펼치며 매 순간을 즐기고 있는 듯합니다.

  • 이는 비디오의 시간적 진행을 강조하여 비디오의 전개를 설명
  • 관련 프롬프트는 Table 3과 4에 나와 있습니다.
    • 첫 번째 프롬프트는 예측된 다양한 텍스트 레이블을 일관되고 진화하는 이야기로 변환하며,
    • 두 번째 프롬프트는 서사를 명료하고 일관되게 개선하고, 환각(hallucination)을 최소화합니다.
  • 우리는 임의로 선택된 비디오 7,000개에서 설명을 생성했습니다.

Table 3: 상세 비디오 설명을 위한 프롬프트

주어진 프롬프트
Human: origin_caption으로 제공된 비디오입니다. 비디오의 내용을 시간 순서에 따라 설명합니다: textualizing_videos.
"first", "next", "then", "finally"와 같은 순서 부사를 사용하여 이 비디오를 자세히 설명하세요. 특정 시간을 언급하지 마세요. 가능한 한 많은 세부 정보를 포함하세요. 보이는 모든 것을 말하세요. 설명은 150자 이상 200자 이하로 작성하세요.


Table 4: 후처리를 위한 프롬프트

주어진 프롬프트
Human: 주어진 문단의 오류를 수정하세요. 반복되는 문장, 의미 없는 문자, 영어가 아닌 문장 등을 제거하세요. 불필요한 반복을 제거하세요. 미완성된 문장을 다시 작성하세요. 설명 없이 결과만 반환하세요.
문단이 이미 올바른 경우, 입력 문단을 그대로 반환하세요. 설명은 하지 마세요.



3.2.2.2. 비디오 대화 (Video Conversations)

  • 비디오 설명을 바탕으로 ChatGPT와 함께 설명적, 시간적, 인과적 콘텐츠에 관한 세 가지 유형의 프롬프트를 사용하여 다중 회차 대화를 생성
  • 설명적 부분은 주로 LLaVA [25]의 주요 포인트를 계승합니다.
  • 시간적 및 인과적 부분의 경우, 각각 시간 인식/추론과 설명/의도 및 원인 발견에 초점을 맞춘 프롬프트를 제안합니다(Table 6).
  • 우리는 임의로 선택된 비디오 4,000개에서 다중 회차 대화를 생성했습니다.
  • 비디오 대화의 예는 Table 7에 나와 있습니다.
Table 6: 비디오 대화를 위한 프롬프트

주어진 프롬프트
Human: 단일 비디오를 관찰하고 있는 AI 비주얼 어시스턴트로서, 비디오의 설명이 시간 순서대로 제공됩니다. 이 설명에는 객체 유형, 위치(좌표 사용), 속성, 객체 간 상호작용, 동작, 환경 등이 포함됩니다.
이 설명을 기반으로 비디오를 직접 보고 있는 것처럼 모든 질문에 답변하는 것이 과제입니다.
비디오의 시각적 콘텐츠를 다루는 질문을 포함하세요. 예:

  • 객체 유형, 속성, 객체 수, 동작, 위치
  • 객체 간 상대적 위치
  • 시간에 따라 객체 동작이나 위치의 변화
  • 객체 간 상호작용

다음으로, 시간적 인식과 추론과 관련된 질문을 포함하세요. 예:

  • 사람이 특정 사건 이전이나 이후에 한 행동
  • 특정 사건이나 동작의 시간 정보

마지막으로, 비디오 콘텐츠와 관련된 복잡한 질문도 포함하세요. 예:

  • 객체나 동작에 대한 배경 지식
  • 비디오에서 발생하는 사건 논의
  • 반사실적 주제 (예: 남자가 비디오에서 휴대폰을 가지고 놀고 있는데 그것을 잃어버린다면 어떻게 될지)
  • 등장인물의 감정이나 행동의 이유 설명
  • 비디오의 이야기나 장면이 어떻게 진행될지 예측

비디오 설명을 제공받는 동안 시간에 따른 시각적 변화와 이러한 변화의 이유 또는 원인을 묻는 질문에 우선 순위를 두세요. 단일 프레임에서 추론할 수 있는 질문보다는 이런 질문이 우선입니다.
불확실한 세부 사항에 대해서는 묻지 마세요.
복잡한 질문에 답할 때는 설득력 있고 체계적인 내용을 제공하기 위해 상세한 예제나 추론 단계를 포함한 철저한 답변을 작성하세요. 필요하면 여러 단락으로 답변하세요.
제공된 설명으로 답변할 수 없는 질문에 대해서는 “제공된 비디오에는 그런 정보가 나타나지 않습니다”라고 답변하세요. 텍스트 설명에서 나온 것이라고 언급하지 마세요.

강조된 부분에서 볼 수 있듯이, AI 비주얼 어시스턴트는 정적인 이미지보다는 비디오와 관련된 측면을 질문하도록 권장됩니다.


Table 7: 비디오 대화 예시

주어진 비디오
Human: <Video>video_embed</Video> 비디오는 \(t_0, t_1, ..., t_T\) 초에서 샘플링된 \(T\)개의 프레임을 포함합니다.
Human: 비디오에서 무슨 일이 일어나고 있나요?
Assistant: 비디오에서는 젊은 여성이 스마트폰을 들고 해변에서 밤하늘 아래 바다 위로 지는 노을을 찍고 있는 실루엣이 보입니다. 그런 다음, 다른 몇 명의 실루엣이 사진을 찍고 휴대폰을 들여다보는 장면이 나타납니다.
Human: 비디오에서 객체 간 상호작용을 설명해 줄 수 있나요?
Assistant: 비디오 속 사람들의 실루엣은 스마트폰을 들고 있으며, 그녀는 해변에서 바다 위로 지는 노을을 찍고 있습니다.
Human: 이 장면의 위치는 어디인가요?
Assistant: 이 장면은 바닷가, 즉 밤에 바다 근처의 해변에 위치해 있습니다.
Human: 비디오에서 시간에 따라 어떤 변화가 발생하나요?
Assistant: 비디오가 진행되면서 하늘의 색이 주황색에서 회색으로 변합니다. 또한, 해변에서 사람들이 사진을 찍고 휴대폰을 들여다보는 행동이 나타납니다.

profile
모든 의사 결정 과정을 지나칠 정도로 모두 기록하고, 나중에 스스로 피드백 하는 것

0개의 댓글