이전 논문리뷰에서 다뤘던 Omni-Emotion 후속연구로 진행한 논문입니다. 스트리밍 환경에서 실시간 상호작용개념을 소개하면서 기존 오프라인 비디오에 집중했던 연구보다 더욱 실제 환경에 적합해 보입니다.

 

1. Introduce

기존 LMM은 오프라인 비디오 기반이기 때문에, 전체 비디오를 한 번에 보고 처리하는 데에 초점이 맞춰져 있기 때문에 공간적, 시간적, 비디오 전반의 종합적인 이해도가 높은 편입니다. 하지만 스트리밍 비디오는 전체 비디오의 맥락을 미리 알 수 없고, 이후 데이터도 계속 들어오기 때문에 지속적인 업데이트가 필요합니다.

 

스트리밍과 오프라인 비디오 이해의 3가지 차이점은 다음과 같습니다.

 

- 시간 민감성 (Time-sensitivity)

  • 지금 무슨 일이 벌어지는 지는 시간에 따라 다른 답변을 요구할 수 있으며 모델은 적절한 타이밍에 정확한 응답이 필요합니다.

- 옴니 모달리티 (Omni-modality)

  • 스트리밍 비디오는 항상 오디오와 함께 들어옵니다.

- 상호작용성 (Interactivity)

  • Non-awakening interaction : 사용자는 언제든 에이전트와 상호작용이 가능합니다.
  • Interruption : 사용자가 대화를 멈추거나 주제를 바꿀 수 있습니다.
  • Proactive output : 에이전트도 판단 가능해야합니다.

본 연구에서는 상호작용 및 시각적 지시를 이해하고 이에 대해 즉각적 피드백을 수행시키기 위해 Visual Instruction Feedback을 이용하였고 이는 사전 정의된 일곱가지의 서브태스크를 지정해놓았습니다.

 

ViSpeak 모델은 Omni-modal을 기반으로 3단계 파인튜닝을 진행했습니다. 

 

1. Template Alignment

   기존 오프라인 모델 --> 스트리밍 템플릿에 맞춤

   입력과 응답이 동시에 시간 정렬

   중간에 끊는 Interruption 기능

 

2. Streaming Finetuning

   실시간 QA 능력 + Proactive output

 

3. ViSpeak-Instruct Finetuning

   Visual Instruction Feedback 태스크를 위한 tuning

 

결과적으로 StreamingBench ( 62.00) 및 OVO-Bench (61.08) 에서 SOTA 성능을 달성해 GPT-4o에 필적한 연구입니다.

 

2. Method

2.1. Visual Instruction Feedback Task

2.1.1. Task Definition

- Task = 시각적인 단서 (행동, 제스처, 이벤트 등) 만으로 사용자와 상호작용

- 정해진 시간 안에 인식하고 피드백을 제공해야

- 모든 피드백은 2인칭 관점 (너)로 이뤄지고 대화형 시나리오에 국한

# 서브태스크 설명 비디오 QA QA유형
1 Visual Wake-Up 사용자가 시각적 신호(예: 손 흔들기)로 대화를 시작 100 100 Open-ended
2 Anomaly Warning (AW) 갑작스러운 이상 행동(예: 넘어짐, 폭발)을 감지하고 즉시 경고 또는 도움 200 200 Open-ended
3 Gesture Understanding (GU) OK, GOOD, ONE, TWO 등의 제스처를 해석하고 적절히 반응 200 200 Open-ended
4 Visual Reference (VR) 사용자가 손가락으로 물체를 가리키면 그 물체가 무엇인지 파악 후 설명 200 200 Multi-choice
5 Visual Interruption (VI) 사용자가 중간에 "그만" 등의 제스처로 응답 중단을 요청하면 즉시 멈춤 100 100 Open-ended
6 Humor Reaction (HR) 시각적으로 웃긴 상황에 적절히 반응하여 정서적 교감 제공 100 100 Open-ended
7 Visual Termination (VT) 대화를 종료하는 제스처 인식 (문맥에 따라 wake-up과 구분됨) 100 100 Open-ended

 

2.1.2. Dataset Construction

- 공개 데이터셋

   - Anomaly Warning : OOPS, Holmes-VAU

   - Gesture : Jester

   - Humor : FunQA

   - Social Cue : Social-IQ, IntentQA, SMILE

 

- 자체 데이터셋

   - 약 1.2만개 영상

 

- 평가 방법

1. Time Accuracy 

   - 모델이 응답한 시점 T가 정답 시간 범위[t1, t2 + T]에 포함되어야함

 

2. Text Score

   - 대답의 내용이 시각적 행동이나 이벤트를 반영해야함

   - 상황에 맞고 긍정적이며, 사용자를 도와주는 피드백이어야 함

   - GPT-4o가 채점 (0 - 5점)

 

3. Overall Score

   - 각 서브태스크에 대해 O = 평균(T_acc × S)

   - 정확한 타이밍 + 적절한 답변 모두가 중요

 

2.2. The ViSpeak Model

2.2.1. Model Architecture

 

기존 LLM은 Turn-taking 방식으로 말 중간에 Interrupt가 어렵습니다. 따라서 ViSpeak은 사용자 입력과 에이전트 응답을 별도의 Stream으로 분리합니다.

 

<Stream 구조>

Stream 1 : User Input (비디오, 오디오, 텍스트 등) 

Stream 2 : Agent Input (History)

 

두 Stream은 LLM에 넣기 전 Weighted Sum으로 통합합니다. (선형 레이어로 학습)

 

<Segmentation>

LLM에 넣기 전 스트리밍 입력을 처리하기 위해 시간 단위로 분할합니다.

비디오 : 1 fps

오디오 : 1 sec

각 세그먼트는 <seg> 토큰으로 구분되고, LLM은 반드시 <seg>토큰에서만 응답을 시작할 수 있습니다.

 

<응답 포맷 / 모달리티 구분>

VITA 방식을 차용해 답변의 시작은 다음과 같이 다르게 표시합니다.

입력 유형 응답 시작 토큰
텍스트
오디오
비주얼

예를 들어, 사용자가 손을 흔들면, 모델은 ⇓ Nice to meet you

 

<언제 말할지 결정>

텍스트 응답은 기존 LLM의 Next Token Prediction으로 충분하기 때문에 다음 토큰이 예상되면 ⇐ 을 출력하고 계속 말합니다.

비주얼 응답은 단순한 토큰 예측 방식으로는 언제 말할지 판단이 불가능합니다. 따라서 별도의 binary classification head ("informative head")를 도입합니다. (MMDuet에서 착안)

   - binary classification head ("informative head") 는 "지금 말해야 하나?" 여부를 판단합니다.

   - 예를 들면 예측 점수가 임계값을 넘으면 말을 시작

오디오 응답의 Turn-taking 문제는 단순화 목적으로 고려하지 않았습니다.

 

<전체 흐름>

스트리밍 입력 → 이미지/오디오 인코딩 → 시간 단위 세분화 → <seg> 토큰 추가 → [사용자 입력 스트림 + 에이전트 응답 스트림] → 결합 → LLM 처리 → ⇐ / ⇒ / ⇓ 로 시작하는 응답 생성 + informative head가 응답 타이밍 조절

 

2.2.2. A Three-Stage Finetuning Recipe

스트리밍 대응 LLM을 처음부터 훈련하는 것은 너무 많은 리소스를 요구하기 때문에 기존 멀티모달 모델 (VITA 1.5)를 기반으로 파인튜닝을 했습니다.

 

2.2.2.1. Stage 1. Template Alignment

기존 오프라인 모델을 스트리밍 구조에 적응시키는 단계입니다.

VITA 1.5에서 270만개의 샘플을 200만개의 샘플로 압축해 빠른 학습을 했습니다. 

 

2.2.2.2. Stage 2. Streaming Finetuning

스트리밍 기반 QA 능력과 Proactive output 능력을 향상시키는 단계입니다. 

timestamp가 포함된 데이터로 실시간 반응성을 학습하고 이 단계에서 Informatve head 훈련을 진행합니다. 

MMduet을 포함해 총 65.7만개의 샘플로 학습했습니다.

 

2.2.2.3. Stage 3. Vispeak-Insturct Finetuning

최종적으로 논문에서 직접 수집한 Visual Instruction Feedback 태스크 데이터셋으로 튜닝합니다.

 

 

ViSpeak은 오픈소스 중 최고 성능을 기록했습니다. 

 

 

자체제작한 ViSpeak-Bench 입니다. 7가지의 서브태스크를 포함해 인간 평가과 비교한 결과입니다.

3. Experiment

2.1. Implementaton Detail

- 기반 모델 : VITA 1.5

   - LLM : Qwen2.5 7B

   - 이미지 인코더 : InternViT300M (448px)

   - 오디오 인코더 : VITA 자체 (341M 파라미터)

- 프레임 샘플링 : 1fps

- H/W : L20 GPU 32장

- Informative Head 임계값 : 0.35

 

2.2. Ablation Study

 

2 Stream 구조에서 Weighted Sum을 사용했을 때 (Adaptive Sum), 단순히 Feature 차원으로 ADD, 두 Stream을 붙이고 선형 통과(Linear) 방식을 비교했는데 성능 차이는 비슷했으나 이론적으로 가장 유연한 Adaptive Sum을 기본값으로 사용했습니다.

 

 

모델이 스스로 시각적 단서에 반응할 수 있는지 확인하는 실험에서 Inform Head를 사용하고 LLM과 공동으로 학습했을 때, 그리고 <seg> 보다 마지막 visual 토큰이 행동 경계 인식에 더 효과적이었습니다.

 

 

ViSpeak-Instruct 학습 시, 오프라인 데이터 포함 여부가 성능에 영향을 미치는지 분석을 했습니다. (HR(Humor Reaction), GU (Gesture Reaction)) 오프라인 데이터 포함 시, 제스처와 유머 인식 성능이 올라갔습니다.

 

 

파인튜닝이 진행될 수록 기존 성능은 유지하면서 스트리밍+시각 지시 반응 성능이 강화되는 것을 확인할 수 있었습니다. 

 

4. Conclusion

스트리밍 영상 이해에서 사람과의 자연스러운 상호작용을 위한 새로운 태스크를 제안했고, 추가적인 데이터 구축, 3단계 파인튜닝으로 학습된 ViSpeak 모델로 GPT-4o급의 SOTA 성능을 확보했습니다.

 

아직 유머와 이상 상황 감지(추론 능력)는 아직 부족한 것으로 파악됩니다.

 

 

이전 논문리뷰에서 다뤘던 VideoLLM-Online의 연구팀이 후속연구로 진행한 논문입니다. Fast & Slow 라는 개념을 소개하면서 이전 VideoLLM-Online을 다듬은 내용 같습니다.

 

1. Introduce

AR글래스나 HMD가 발전하면서 실시간 비디오 기반 AI 어시스턴트 활용이 증가했습니다. 본 연구에서는 1인칭 시점에서 주변 환경을 분석해 사전 대응하는 시스템을 연구했습니다. 기존 Online Video 어시스턴트의 한계는 다음과 같습니다. 

 

- 낮은 응답 결정 정확도

  • 기존 시스템은 2FPS의 낮은 프레임 속도로 비디오를 처리하기 때문에 시간적 관계를 학습하는 데 한계가 있어 응답이 필요한 순간을 제대로 인식하지 못했습니다.

- 부정확한 응답 생성

  • 모든 프레임을 같은 방식으로 처리해 중요한 공간 정보를 충분히 반영하지 못했습니다.

- 비효율적인 학습 및 추론

  • 모든 프레임에서 동일한 수의 토큰을 유지해 불필요한 연산이 증가했습니다. 
  • 응답 결정 단계에서는 많은 정보가 필요하진 않지만, 응답 생성 시에는 더 많은 정보를 활용해야합니다.

즉, 응답이 필요할 때만 연산을 집중하고, 중요 순간을 더 정밀하게 분석하는 방법을 도입했습니다.

따라서 본 연구에서는 다음과 같은  LION-FS : Fast & Slow Video-Language Thinker 프레임워크를 제안했습니다. 사람 사고 방식을 모방해, 빠른(FAST) 판단 + 정밀(SLOW) 분석을 결합했습니다. 

 

- Fast Path : 빠른 응답 결정

  • Token Aggregation Routing 
    • 1인칭 비디오의 장점 + 3인칭 비디오의 장점
    • 고프레임 특징을 유지하면서 연산량을 증가하지 않도록 최적화
  • Token Dropping Routing
    • 응답이 필요하지 않는 프레임에서는 불필요한 정보 삭제해 연산량 감소
    • 중복되는 배경, 변화가 없는 프레임 자동 감지, 토큰 감소

- Slow Path : 정밀한 응답 생성

  • Global Uniform Augmentation for Grid Tokens
    • 키 프레임을 여러 개의 그리드로 나눠, 개별 객체와 환경 요소를 더 정밀하게 분석
    • 더 많은 공간정보를 활용해 응답의 정확도를 높임
  • Local Adaptive Augmentation for Box Token
    • 손 동작 및 상호동작 중인 객체를 감지해 추가적인 정보 추출
    • Bounding Box를 사용해 중요한 객체만 선택적으로 분석

2. Method

 

LION-FS의 목표는 실시간 비디오 스트리밍을 처리하면서 적절한 응답 시점을 판단하고 필요할 경우 정밀한 응답을 생성하는 것입니다. Figure 2를 참고하면, 각 프레임이 들어올 때마다 Fast Path에서 응답이 필요한지 판단하고, 응답이 필요하지 않다면 다음 프레임을 분석합니다. 하지만 응답이 필요하다면 Slow Path에서 과거 문맥을 활용해 정밀한 응답을 생성하고 생성된 응답은 Autoregressive 방식으로 생성합니다.

 

본 연구에서는 Fast Path에서 응답 필요 여부를 학습하고(Streaming Loss), Slow Path에서는  응답을 생성하는 방식을 학습합니다(LM Loss). Loss Function은 다음과 같습니다.

 

2.1. Fast Path : Routing-Bassed Response Determination

Fast Path핵심 목표는 다음과 같습니다. 

- 고프레임 비디오에서도 실시간 응답을 제공한다. (2.1.1)

- 1인칭 시점과 3인칭 시점의 특징을 효과적으로 결합한다. (2.1.1)

- 중복된 정보를 자동으로 제거해 연산량을 최적화한다 (2.1.2)

- 응답이 필요한 순간을 정확하게 판단해 불필요한 대화 생성을 방지한다. (2.1.2)

 

2.1.1. Dual Encoding with Token Aggregation Router

기존 VideoLLM은 단일 이미지 인코더를 사용해 프레임을 독립적으로 처리해 시간 정보가 부족했습니다. 그리고 LLM에서 모든 프레임을 개별적으로 해석해 고프레임 비디오를 효과적으로 처리하지 못했으며 특히 3인칭 이미지 데이터로 훈련된 인코더는 1인칭 시점 비디오를 제대로 해석하지 못했습니다.

 

- Dual Encoding (1인칭 + 3인칭 결합)

1. E_gen (SigLIP) : 2FPS : 3인칭 시점의 일반적인 공간 정보 추출

2. E_ego (EgoVLPv2) : 8FPS : 1인칭 시점의 연속적인 시간 정보 추출

 

E_ego가 처리한 1인칭 시간 정보는 4개의 프레임 그룹으로 처리합니다.

 

CLS 토큰을 Visual Guidance(VG)로 가중치를 계산하고 SoftMax 기반의 적응형 가중치를 생성해 두 가지 특징을 가중치 기반으로 융합합니다.  결과적으로 [Frm]_i 는 두 정보가 최적의 비율로 결합된 결과입니다.

 

2.1.2. Sparse Decoding with Token Dropping Router

8FPS의 고프레임 비디오에서는 연속된 프레임이 거의 동일한 정보를 포함할 가능성이 큽니다. 이 중복된 프레임을 LLM에 모두 개별적으로 처리하면 연산량이 엄청나게 증가하기 때문에 중복을 제거해야합니다.

 

- Token Dropping Router 

반복된 프레임을 감지해 불필요한 정보를 제거하고, 객체의 움직임, 손-객체 상호작용 등의 변화가 있는 프레임만 유지합니다. 

1. 객체 움직임 : 연속된 프레임에서 변화가 있는 객체인가

2. 손-객체 상호작용 : 사용자의 손과 상호작용 중인 객체인가

3. Self-Attention 기반 중요도 평가 : 과거의 맥락에서 중요한 프레임인가

 

r^l : 특정 프레임의 토큰의 중요도

P^l : 특정 중요도 임계값

 

2.2. Slow Path : Multi-granularity Keyfame Augmetation

Fast Path에서 처리하는 프레임은 10개 토큰 (1 CLS + 3 x 3 pooled tokens) 만 사용됨 --> 세부적인 정보 손실

하지만 모든 프레임에서 Fine-grained 정보를 유지하면 연산량이 많아짐

 

따라서 Slow Path 핵심 목표는 다음과 같습니다. 

- Fast Path에서 응답해야한다고 판단된 Keyframe에서만 추가적인 Augmentation을 적용해 세부 정보 보강

 

2.2.1. Global uniform augmentation for Grid Tokens

Keyframe(1 x 6 x 6)을 4개의 그리드로 균등하게 나누고

각 Grid마다 3 x 3 pooling을 수행해 4 x 3 x 3 토큰을 생성합니다. 

즉 Keyframe을 4개의 작은 서브 프레임으로 나누어 더 높은 해상도 정보를 보강합니다.

 

2.2.2. Local adaptive augmentation for Box Tokens

Faster R-CNN을 이용해 손의 위치를 탐지하고 손과 상호작용하는 객체도 추가적으로 탐지합니다. 

Bounding Box 영역에서 Average Pooling을 수행해 단일 Box Token을 생성합니다.

NMS (Non-Maximum Suppression) 최적화를 수행해 중복된 Bounding Box를 제거합니다.

손과 객체 각각의 하나의 Box Token으로 변환합니다.

 

생성된 Grid Token과 Box Token을 활용해 다음과 같이 Multimodel Thinking Template 포맷을 활용합니다.

 

Stream: [Frame Tokens] [Grid Tokens]

User: Please focus on [Box Tokens].

Assistant: [Response]

 

3. Experience

  • 사용한 장비 : Nvidia A800 (80GB VRAM)
  • 데이터셋 
    • Ego4D Narration Stream Benchmark
      • Ego4D 데이터셋 사용
      • TimeStamp가 있는 나레이션 데이터셋 활용
    • Ego-Exo4D Benchmark
      • Ego-Exo4D 데이터셋 사용
      • 1인칭 + 3인칭 멀티뷰 영상 포함
  • 평가 지표 
    • Language Model Perplexity (LL-PPL)
      • 값이 낮을수록 모델이 더 자연스럽고 정확한 문장 생성
    • Time Difference (TimeDiff)
      • 낮을수록 실제 상황과 모델 응답 간의 시간 차이가 적음
    • Fluency
      • 높을수록 스트리밍 상황에서 모델이 부드럽고 자연스러운 응답 생성
    • LM-Correctness
      • 문맥을 잘 반영하여 정답을 생성하는가
      • 높을수록 정확한 정보를 제공하는 능력이 뛰어남

 

LION-FS가 기존 모델 대비 향상된 성능을 보였습니다. Ego4D 에서는 TimeDiff가 다소 증가했지만 이는 응답 길이 차이 때문입니다.

 

3.1. Ablation Study

- Token Aggregation Router

 

SigLIP (일반적 인코더) 과 EgoVLPv2 (1인칭 인코더)를 비교해 어떤 융합방식이 더 효과적인지 실험했습니다. 

SigLIP 은 LL-PPL과 TimeDiff에서 우수했고 EgoVLPv2는 Fluency와 LM-Correctness에서 우수했습니다. 결국 하나의 인코더만 사용하면 특정 측면에서 성능이 떨어지기 때문에 두 개의 특징을 효과적으로 융합해야합니다.

 

- Token Dropping Router

 

Droppiing 전략이 모델 성능에 어떤 영향을 미치는지 실험한 결과입니다. Random Dropping은 성능이 크게 감소했고 Token Dropping을 Interleaved 교차 레이어로 적용했을 때 가장 효과적이었습니다. 

 

- Multi-granularity Augmentation

Grid & Box Token이 모델의 성능에 어떻게 영향을 끼치는지, KeyFrame에 추가적인 정보를 반영하면 응답 품질이 얼마나 개선되는지 실험했습니다. 

 

- Qualitative Analysis

 

(VideoLLM-Online)LIVE (Baseline) : "You repaired the bicycle by removing the screw and rotating the pedal."

LION-FS (Fast-Path) : "You repaired the bicycle by adjusting the screw on the bicycle"

LION-FS (Fast + Slow) : "You repaired the bicycle by tightening the screw with a screwdriver."

 

이전 방식은 잘못된 추론을 했고 Fast-Path는 정답은 맞췄지만 세부적은 설명 부족, 모두 적용 시 더 정밀한 응답 생성을 했습니다.

 

4. Conclusion & Limitations

LION-FS는 실시간 비디오 분석 속도를 개선했고 응답 정확도도 향상시켰습니다. 1인칭 시점에 최적화된 모델이기 때문에 응용 가능성이 높습니다. 

 

실시간 비디오 대화 모델은 EOS 토큰이 훨씬 더 자주 등장하기 때문에 모델이 응답하기 보단 침묵하는 경향이 강해져 결과적으로 모델이 너무 조용해질 수 있습니다. 즉, 모델이 EOS로 예측하는게 안전하다고 판단할 수 있습니다.

따라서 EOS를 단순히 예측하는 게 아니라, 다양한 응답 확률을 가진 Special Token을 추가해 응답 확률을 회귀로 학습하는 방법이 필요합니다. 즉, 단순한 EOS/응답 예측이 아닌 응답을 할 확률을 연속적인 값으로 예측하도록 설계해야합니다. 예를 들어, EOS / 간단한 응답 / 자세한 응답 / 긴급 응답  등 다중 클래스를 추가하거나, 이 프레임에서 응답할 확률이 몇 퍼센트인지 예측해 확률이 높으면 즉시 응답하고 낮으면 다음 프레임까지 대기, 더 낮으면 침묵하는 것으로 수준을 조절할 수 있습니다.

 

LION-FS 또한 KV Cache를 통해 Context를 저장합니다. 하지만 무한한 길이의 비디오를 처리하기엔 한계가 있어 Fixed-Length Memory Mechanism을 도입해 최근 정보를 우선 유지하면서 핵심적인 과거 정보도 함께 저장하는 방식으로 변경해야합니다. 

실시간 비디오 스트리밍에서 자연스러운 이해와 사용자와의 대화를 유지할 수 있는 온라인 Video LLM 논문입니다. 

1. Introduce

기존 Video LLM들은 사전 정의된 짧은 비디오 클립을 입력으로 학습되기 때문에 AR 글래스나 스마트 카메라에서는 즉각적인 반응이 필요하지만 기존 방식들은 이를 제대로 지원하지 못했습니다. 기존 Video LLMs의 한계는 다음과 같습니다.

 

- 이벤트 감지 부족

  • 기존 Video LLMs는 정해진 비디오 클립을 분석하고 요약하는 방식
  • 언제 이벤트가 발생하는지 같은 감지 기능이 없어 실시간 대응이 어려움

- 장기 컨텍스트 유지 어려움

  • 실시간 비디오 스트리밍에서는 이전 대화 및 장면을 어느정도 기억해야함
  • 하지만 LLM의 컨텍스트 윈도우 제한으로 장기적인 정보를 유지하는 것이 어려움

- 실시간 응답 지연 (Inference 속도)

  • 기존 모델들은 한 프레임당 텍스트 응답을 너무 길게 생성
  • 프레임마다 긴 내용을 생성하면 지연이 발생해 실시간 대응이 어려움

따라서 본 논문에서는 다음과 같이 LIVE (Learning-In-Video-strEam) 프레임워크를 제안했습니다.

 

- Streaming EOS (End-Of-Sequence) Predictin : 언제 말할까?

  • 매 프레임마다 응답을 생성하려고 하는 기존 LLM은 비효율적
  • 모델이 응답할지 말지 학습해, 필요할 때만 응답하도록 학습

- Streaming Dialogue Data Generation : 실시간 데이터로 변환

  • 기존 비디오 데이터셋은 사전 녹화된 비디오에 대한 annotation이 포함됨
  • 이를 실시간 대화형태로 변환해 스트리밍 비디오에서 자연스럽게 응답하도록 변환

- Optimized Inference Pipeline : 고속 추론

  • Key-Value Caching 활용하여 이전 정보를 빠르게 검색
  • Vision encoding과 Text encoding을 병렬화해 속도 최적화

본 논문은 결과적으로 5분짜리 비디오를 10FPS 이상 속도로 실시간 분석이 가능했으며 (A100 기준) Memory Cost 20GB 이하로 유지하여 장시간 비디오 스트리밍이 가능했습니다.

 

2. Method

2.1. Video Streaming Dialogue

기존 비디오 LLM은 정적인 비디오 클립을 대상으로 작동하며 실시간 비디오 스트리밍 환경에서의 상호작용이 부족합니다. 기존 비디오LLM 및 GPT-4V를 실시간 비디오 스트리밍 대화에 적용하려고 하면 다음과 같은 문제가 발생합니다.

 

- Interleaved Vision-Language Chatting

 일정한 시간 간격마다 프레임을 받아서 텍스트 생성

  - 불필요한 중복 발생 : 프레임 간 큰 변화가 없는 경우에도 같은 내용 반복 생성

  - 지속적인 프레임 처리로 연산 증가

  - 수동으로 타임스탬프 설정 필요

 

- Per-Frame Chatting

 각 프레임 마다 개별적인 언어 모델 수행

  - 매 프레임마다 생성으로 속도 지연

  - 프레임 스키핑 문제 발생

  - GPU 메모리 부담 증가

 

2.1.1. Streaming EOS Prediction 

기존 방식처럼 매 프레임마다 긴 텍스트를 생성하지 않으면서 언제 응답해야 하는지 (EOS : End Of Sequence)를 예측하는 방식으로 최적화하여 필요할 때만 응답하고, 불필요한 응답을 줄이는 방법을 소개합니다.

 

- 기존 방식처럼 모든 프레임에서 언어 모델링을 수행하는 대신, 특정 타임스탬프 t_2에 도달했을 때 텍스트 응답을 생성할지 여부를 판단하고, (t_1 <= t < t_2 동안 불필요한 turn 추가 X) 만약 응답할 필요가 없다면 EOS 토큰을 출력하고 다음 프레임으로 이동하는 방법입니다.

 

이전 context와 현재 프레임을 고려해 t_2 시점에서 적절한 텍스트를 생성하는 확률을 최적화하는 것이 목표입니다.

즉, 지금 텍스트를 생성할 타이밍이 맞다고 판단되면 텍스트를 생성합니다.

 

다음 수식은 해당 프레임에서 응답이 필요하지 않다면 EOS를 출력하고 다음 프레임으로 이동하는 수식입니다. 

 

2.2. Data

기존 오프라인 데이터셋을 실시간 스트리밍 대화 형식으로 변환하는 방법을 설명합니다. 즉, 기존의 offline annotation이 달린 비디오 데이터를 활용해 online 대화 데이터셋을 구축하는 과정입니다.

 

일부 비디오 데이터셋 (Ego4D Narrations)은 원래부터 스트리밍 방식으로 수집되어 (인간 주석자가 5분짜리 비디오를 보면서 실시간으로 설명을 추가하는 방식) 이러한 데이터를 활용해 모델을 학습시키는 건 가능합니다.

하지만 대부분의 비디오 데이터셋은 offline 방식으로 수집되어 30~60초짜리 짧은 클립을 대상으로 annotation을 달아 학습하는 방식이기 때문에 실시간 스트리밍 문맥에서 활용하려면 변환 과정이 필요했습니다.

 

따라서 비디오에서 과거, 현재, 미래에 대해 질문할 수 있도록 템플릿을 생성하고 각 50개씩 총 150개의 Query를 준비합니다. 

기존 offline 데이터셋에는 타임스탬프별 비디오 annotation 이 존재하는데 이는 다음과 같습니다.

- t1-t2 : 물을 끓이고 있다.

- t3-t4 : 야채를 썰고 있다.

이러한 상태 변화가 일어나는 시간 t1-t4를 응답을 생성한 이상적인 타이밍으로 설정하고 

 

각 타임스탬프 t1-t4 에서 LLM에 질문을 던지고 그에 대한 답변을 저장하는 것을 반복해 질문과 답변을 포함하는 학습 데이터를 구축합니다. 

또한 더욱 자연스러운 학습데이터를 구축하기 위해, 랜덤 타임스탬프에 질문을 삽입해, 새로운 질문이 추가되면 이전 질문 이후의 응답을 무효화해 자연스러운 대화 흐름을 유지시킵니다.

 

본 연구에는 Ego4D Narrations, COIN, Ego4D GoalStep 데이터셋을 사용했습니다.  

 

3. Model Training

 

3.1 Model Architecture

모델 아키텍처는 Image Encoder, MLP Projector, Language Model 로 총 세 가지 요소로 구성되어있습니다.

 

3.1.1. Image Encoder

CLIP ViT-L(DataComp1B로 사전학습)을 사용합니다. 

비디오 프레임을 2FPS로 샘플링하여 임베딩을 생성하고 각 프레임의 임베딩 크기는 다음과 같습니다.

(1+h_p * w_p) : CLS 토큰 + 공간 토큰

c : 차원 수 (임베딩 차원)

실험에서는 h_p = w_p = 0으로 설정해 긴 비디오를 처리하도록 최적화하였으나 데모 모델은 3(10개 토큰)으로 사용해 더 정밀하지만 짧은 비디오만 지원됩니다.

 

따라서 비디오 프레임을 CLIP ViT-L을 통해 벡터화하고 이 정보를 활용해 LLM이 대화를 생성합니다.

 

3.1.2. MLP Projector

이미지 인코더에서 생성된 프레임 임베딩을 MLP Projector 에서 프레임 토큰으로 변환합니다. 본 연구에선 LLaVA-1.5와 동일한 방식을 적용했습니다. 

CLIP의 출력값을 LLM이 이해할 수 있게 프레임 토큰과 언어 토큰을 결합해 형식을 변환합니다.

 

3.1.3. Language Model

LLaMA-2-7B-Chat / LLaMA-3-8B-Instruct 를 사용합니다. LoRA를적용해 파라미터를 효율적으로 튜닝을 했습니다. 이전에서 프레임 토큰 + 언어 토큰을 입력으로 받아 대화를 생성합니다.

 

3.2 Training Loss

LIVE 프레임워크는 두 가지 손실 함수를 사용하여 학습됩니다.

 

3.2.1. LM Loss

LLM이 입력된 텍스트 시퀀스를 기반으로 적절한 다음 단어를 생성하도록 학습합니다.

LLM이 j번째 토큰을 보고 다음 텍스트 토큰 Txt_j+1을 예측하는 확률

 

3.2.2. Streaming EOS Prediction Loss

모델이 불필요한 순간에는 침묵하고 적절한 순간에만 응답하도록 학습합니다.

j번째 토큰에서 EOS 토큰을 예측할 확률, 이 확률이 높아질 수록 모델은 지금 말할 타이밍이 아니다 라고 판단하고 침묵

 

4. Inference

 

Inference 과정에서는 실시간 속도를 최적화하기 위해 Key-Value Caching, EOS 확률 보정, 병렬 처리 등의 기법이 적용됩니다.

 

4.1. EOS Probability Correction

LIVE 프레임워크에서는 모델이 불필요할 경우엔 침묵하도록 학습됩니다. 하지만 학습 중에 EOS 토큰이 너무 자주 등장하면 모델이 과도하게 침묵하게 될 수 있어, 이를 방지하기 위해 EOS 예측 확률이 특정 임계값 이하일 경우 EOS를 무시하도록 설정합니다.

특정 프레임 j에 대해서 EOS 토큰의 확률이 상기 확률일 때, EOS를 무시합니다. 본 연구에서는 theta값이 0.5-0.8일 때 최적 성능을 나타냈습니다.

 

4.2. Continuous Key-Value Cache

LLM은 토큰을 생성할 때 이전 Context를 계속 유지해야합니다. 일반적으로 LLM은 입력된 문장을 처음부터 다시 계산해야하지만 Key-Value Cache를 사용하면 이미 계산된 부분을 저장해둬서 속도를 높일 수 있습니다. 즉, 과거 정보를 저장해두고, 새로운 입력이 들어오면 그 부분만 추가로 처리해서 계산량을 줄이는 방식입니다. (본 연구에서는 2FPS로 들어오는 비디오 프레임을 입력받고 바로 토큰을 생성합니다.)

 

4.3. Parallelization of encoding and decoding (비디오 인코딩과 언어모델 디코딩 병렬 처리)

영상 인코더 CLIP ViT-L (307M)은 상대적으로 빠르고 언어 디코더 LLaMA는 상대적으로 느리기 때문에 만약 LLM이 긴 문장을 생성하면 비디오 프레임이 들어오는 속도보다 디코딩 속도가 느려질 수 있어 프레임이 스킵될 수 있습니다.

 

따라서 FIFO 큐를 활용해 프레임을 먼저 인코딩하고 언어 모델이 여유가 있을 때 가져가도록 처리하는데, 즉 비디오 프레임 인코더는 항상 동작하며 프레임을 인코딩하고 저장한 뒤, 언어모델은 이전 프레임 처리를 마치는 즉시 저장된 프레임을 가져가서 처리합니다.

 

5. Experiments

5.1. Implementation Details

본 연구에서는 두 가지 버전의 VideoLLM-online을 구현했습니다. 각 버전은 효율성, 성능에 따라 구현 방법이 다릅니다.

 

5.1.1. VideoLLM-online-7B-v1 (효율성)

  • 비디오 프레임 인코더 : OpenCLIP-ViT-L-224
  • MLP : 2-layer MLP
  • LLM : LLaMA-2-7B-Chat
  • 토큰 사용량 : 각 비디오 프레임당 CLS 토큰 한개만 사용 (최소한의 메모리)

5.1.2. VideoLLM-online-8B-v1+ (성능)

  • 비디오 프레임 인코더 : SigLIP-ViT-L-384
  • MLP : 2-layer MLP
  • LLM : LLaMA-3-8B-Instruct
  • 토큰 사용량 : CLS 토큰 1개 + 추가적인 공간 토큰 (3 x 3 average pooling) , 총 10개 토큰/프레임 사용

기본 실험 환경은 다음과 같습니다.

  • VideoLLM-online-7B-v1을 기본 모델로 사용
  • 2 FPS로 샘플링된 비디오를 학습 데이터로 사용
  • 학습 시 모든 Linear Layers에 LoRA 적용 (rank=128, scaling factor=256)
  • Vision-Language 정렬 없이 바로 학습
  • MLP는 LLaVA-1.5를 사용하지 않고 랜덤 초기화

학습 Epoch 설정은 다음과 같습니다.

  • 비디오 스트리밍 대화모델 (Online) : 2 Epochs 학습
  • 비디오 이해 관련 오프라인 실험(Offline) : 5~6 Epochs 학습
  • 스트리밍 학습 시 EOS Loss 가중치 w = 1.0으로 설정

5.2. Evaluation Setting

VideoLLM-online 모델이 어떻게 평가되었는지 사용된 데이터셋과 평가지표를 설명합니다.

 

5.2.1. Dataset 및 평가 설정 (COIN, Ego4D Dataset)

  • Ego4D Narration Stream
    • Ego4D 데이터셋에서 주어진 timestamp-narration 데이터 활용해 실시간 나레이션 생성 능력 평가
    • 모델이 Ego4D의 인간 어노테이터처럼 적절한 시점에 행동을 평가할 수 있는지 평가
  • COIN + Ego4D Narration Stream
    • COIN 데이터셋의 행동 단계를 Ego4D 스타일 나레이션으로 변환하여 추가 학습
    • 모델이 행동이 시작할 때 알려주고, 끝날 때 요약하며, 다음 행동을 예측하는 능력 평가
  • Ego4D GoalStep + Narration Stream
    • 목표 지향적 작업을 수행할 때, 모델이 얼마나 잘 대응하는지 평가
  • COIN Benchmarks
    • Step Recognition (행동 단계 인식)
    • Step Forecasting (다음 행동 예측)
    • Task Summarization (작업 요약)
    • Procedure Forecasting (절차 예측)
    • Goal-based Procedure Forecasting (목표 기반 절차 예측)
  • Ego4D Long-Term Action Anticipation (LTA) Benchmarks
    • 주어진 과거 8단계의 행동을 바탕으로, 향후 20개의 행동(동사+명사 조합)을 예측하는 능력 평가
    • 비디오 기반 AI 어시스턴트가 미래 행동을 예측할 수 있는지 테스트

5.2.2. Evaluation Metrics (평가 지표)

본 연구는 비디오를 보면서 실시간으로 나레이션을 생성하는 AI 어시스턴트 역할을 수행해야 합니다.

 

  • 언어 모델 성능 평가
    • LM-PPL (Language Model Perplexity)
      • 언어 모델이 특정 시점에서 얼마나 정확하게 답변을 생성했는지 평가
      • LM-PPL 값이 낮을수록 모델이 더 정확한 답변을 생성
      • 서로 다른 LLM 비교 시에는 토큰화 방식 차이로 직접 비교 X
    • LG-Match (Language Generation Matching Ratio)
      • 7B 모델과 8B 모델을 비교
      • 정답과 비교해, 처음으로 틀린 토큰이 나오기 전까지의 일치율을 측정
      • 얼마나 모델이 정확하게 나레이션을 수행했는지 평가
  • 시간 정렬 평가
    • TimeDiff
      • 모델의 응답 시점과 실제 행동이 발생한 시점간의 차이
      • 적을 수록 더 실시간 나레이션 수행
    • Fluency
      • 한 대화(turn)에서 연속적으로 성공한 토큰의 비율을 측정
      • 언어 모델의 정확성과 시간 정렬 성능을 종합적으로 평가

5.2.3. Baseline 모델 

본 논문 발표 전까지 실시간 비디오 스트리밍에 맞춰 자유로운 자연어 응답을 생성하는 모델이 없어 저자는 자체적으로 Baseline 모델을 구축해 비교 실험을 수행했습니다.

 

  • Video-Text Interleaved Dialogue (비디오 텍스트 대화 모델)
    • 기존 LLM과 비디오를 조합해 한 프레임씩 대화하는 방식
  • Per-Frame Dialogue (프레임 별 대화 모델)
    • 매 프레임마다 개별적으로 응답하는 방식

 

5.3. Ablation Study

 

본 연구의 Streaming Dialogue 는 언어 모델의 loss 증가 없이도 학습이 가능했으며, Per-Frame 방식은 너무 많은 EOS 토큰을 예측하기 때문에 LM-PPL 값이 증가되었습니다. 또한 TimeDiff, Fluency 에서도 좋은 성능을 보였습니다. 

 

어떤 손실 함수가 스트리밍 학습에서 가장 적합한지 테스트를 했습니다. 기본설정인 Cross Entropy(CE) Loss, τ = 1.0 에서 가장 안정적인 성능을 보였습니다. 복잡한 손실 함수 추가없이 기본 CE Loss만으로도 충분히 학습 가능했습니다.

 

어떤 방식이 실시간 스트리밍에서 가장 빠르고 메모리 효율적인지 비교합니다. Ego4D 나레이션 스트림 테스트 (5분짜리 비디오)를 진행했고 A100에서 평가를 진행했습니다.

 

5.4. Results

COIN 데이터셋에서 작업 요약 및 다음 단계 예측에서 SOTA를 달성했습니다. 즉 비디오의 내용을 이해하고 절차적인 흐름을 예측하는 성능이 높았습니다.

 

Ego4D LTA 벤치마크에서도 높은 성능을 보였습니다. 

 

실시간 나레이션 성능 비교에서는 본 연구의 세 가지 모델을 비교하였습니다. 8B 모델을 사용하면 실시간 성능이 향상됩니다. 

 

6. Conclusion

본 연구는 특정 벤치마크 (COIN, Ego4D 등)에 최적화되어, 일반화 모델을 개발할 계획입니다. 특히 Zero-Shot 성능 향상을 목표로 하고있습니다. 추가적으로 현재는 속도를 유지하기 위해 프레임당 적은 토큰을 사용했으나 향후에는 더 많은 공간 토큰을 활용해 성능 및 속도 최적화를 진행할 예정입니다.

 

LLM과 3D 조합된 논문을 보다가, 제가 일전에 리뷰하던 NeRF 관련 3D 생성 분야와 LLM이 합쳐진 논문이 있어 리뷰합니다. 2024년 NeurIPS에 올라온 논문입니다.

1. Introduce

본 논문은 NeRF의 장점을 활용해 직접 처리할 수 있는 MLLM을 수행할 수 있는 새로운 기술을 소개했습니다. NeRF의 MLP 가중치를 직접 처리해 NeRF 캡션 생성, Q&A, 분류 등과 같은 작업을 수행할 수 있으며, 기존의 렌더링 없이 MLP 가중치에서 직접 정보를 추출하기 때문에 빠른 속도로 처리가 가능하다고 합니다. 캡션은 ShapeNet 데이터셋에서 훈련된 NeRF를 대상으로 자동화된 캡션 생성 프레임워크를 설계했고 추가로 텍스트 설명 데이터셋도 추가하여 더욱 정밀하게 평가가 가능합니다.

 

 

MLP 기반의 NeRF를 사용했으며, 기존 방법들은 NeRF로부터 이미지나 3D 데이터를 렌더링하고 추출하여 사용했지만, 이는 시간이 오래걸리기 때문에 LLaNA는 이러한 과정을 건너뛰고 NeRF의 MLP 가중치를 직접 입력하여 처리했습니다.

 

NeRF의 MLP 가중치를 임베딩 공간으로 프로젝션하고 이를 통해 NeRF의 정보를 LLaMA 2같은 Pretrained LLM이 이해할 수 있는 형태로 변환해, Pretrained LLM을 통해 캡션 생성, Q&A, 제로샷 분류를 수행할 수 있습니다.

 

2. Method

 

2.1 Neural Radiance Fields (NeRF)

MLP 기반 NeRF를 통해 출력되는 MLP 가중치(W)와 바이어스(b)를 사용합니다. 가중치에는 객체의 형상(Geometry)와 객체의 외형(Appearance) 가 포함되는데, 형상에는 3D 공간에서의 구조적 정보, 외형에는 각 좌표에서의 색상 정보가 포함됩니다. 

이러한 출력값 (W와 b)을 하나의 행렬(M)로 변환시켜 다음 단계로 입력시킵니다.

 

2.2 Meta-encoder

메타 인코더는 nf2vec 기반을 사용하는데 NeRF의 가중치를 입력으로 받아 전역 임베딩을 생성하는 역할을 수행합니다. NeRF에서 들어온 가중치, 바이어스 행렬인 M의 각 행을 독립적으로 처리해 S개의 토큰을 생성하고,  Max-Pooling하여 전역 임베딩g로 요약합니다, 이 전역 임베딩 g는 NeRF 전체 가중치에서 형상과 외형정보를 포함합니다. 

전역 임베딩 g를 기반으로 Decoder가 생성한 이미지와 원래 NeRF로 부터 렌더링된 이미지간의 차이를 최소화하도록 학습합니다. 이를 통해 g가 NeRF의 중요한 정보를 효과적으로 압축하게 됩니다. 

 

2.3 Large language and NeRF assistant

메타 인코더를 통해 출력된 전역 임베딩 g를 Pretrain된 LLaMA 2 LLM의 텍스트 임베딩 공간으로 투영 레이어 변환합니다. 투영 레이어는 NeRF 임베딩 g와 LLaMA 2의 텍스트 임베딩 공간 간의 차원을 맞추기 위해 사용합니다.

G : g의 길이(1024), T : LLaMA2의 단어 임베딩 차원

이러한 투영 레이어는 (⟨nstart,ϕ(g),nend,w1,w2,,wk) 형태의 Special 토큰으로 감싸져 LLaMA 2에 입력되고, 학습됩니다. Special 토큰은 NeRF 데이터를 텍스트 데이터와 명확히 구분하기 위해 사용합니다.

 

3. Experiment

4. Conclusion

본 연구에서 사용된 Meta Encoder인 nf2vec은 ShapeNet에서 생성된 데이터로만 사전 학습됐기 때문에, 실제 객체에 대한 일반화 성능이 떨어질 수 있습니다. 또한 MLP 기반의 NeRF를 사용했기 때문에 InstantNGP 같은 더 복잡한 아키텍쳐는 지원하지 못합니다. 추가적으로 LLaNA 는 객체 중심의 NeRF만 테스트했기 때문에 전체 장면을 표현하는 NeRF에는 적용되지 않아 추가적인 연구가 필요합니다. 

 

최대한 빠른 시간에 많은 논문을 읽어야할 일이 생겨서, 딥하게 리뷰하지 않고, 수박 겉 핥기 수준으로 리뷰하는게 좋을 것 같아, 이제부터는 간단하게 리뷰하고 넘어가려고 합니다. 

 

LLM과 3D 조합 시리즈를 이어갑니다. 아마 가장 최근 논문인 것 같네요. 2024년 12월에 아카이브에 올라온 논문입니다.

1. Introduce

기존 연구는 3D 데이터를 학습하기 위해 별도의 3D 장면 finetuning이 필요했고, 3D Point Cloud나 Voxel 등의 추가적인 복원 과정이 필요했습니다. 이를 통해 데이터 및 계산이 복잡했습니다. 따라서 본 논문은 RGB-D Video만을 이용해 3D 장면을 이해하고 LLM과 통합하여 MLLM으로 캡셔닝이 가능한 방법을 소개합니다. 

 

 

2. Method

 

3.1. Frame Sampling Strategy

Input으로 들어온 RGB-D 비디오에서 3D 장면을 표현하기 위해 필요한 최소한의 비디오 프레임을 선택합니다.

프레임 선택은 Maximum Coverage Problem 방법을 사용합니다. 

이 알고리즘은 주어진 비디오 프레임 집합에서 최대한 많은 복셀을 커버하는 프레임의 부분집합을 선택합니다. 가능한 모든 K 프레임 조합을 탐색하지 않고, Greedy 알고리즘을 통해 매 단계에서 가장 많은 복셀을 커버한느 프레임만 선택함으로써 더욱 효율적으로 프레임을 선택하게 됩니다.

 

3.2. Position-Aware Video Representation

깊이 이미지(D)와 카메라의 내(K).외적(T) 행렬을 통해 픽셀 좌표--> 글로벌 좌표로 변환합니다.

 

Vision Transformer (ViT)를 사용해 프레임 이미지를 패치로 분할하여 각 패치의 특징을 추출해 비디오 프레임을 비주얼 임베딩으로 변환합니다. 

 

그 이후, 각 이미지 패치에 대응하는 3D 글로벌 좌표(패치 내에 100개 픽셀이라면 100개의 3D 좌표를 평균) Sinusoidal Position Encoding을 통해 3D 좌표로 표현합니다. 각 패치에 대해 비주얼 임베딩과 3D 좌표 임베딩을 결합합니다.

 

3.3. Training Objective 

본 논문의 훈련 목표는 단일 모델로 다양한 3D 장면에서의 작업 (Q&A, 캡션, 앵커링)을 처리할 수 있도록 학습하는 것입니다. 

 

3.3.1. Q&A, Dense Captioning

Cross-Entropy Loss를 통해 모델이 입력된 3D 장면에 대해 자연어로 질의응답을 수행하거나, 3D 장면의 특정 영역에 대해 캡션(설명)할 수 있도록 학습합니다. 

 

3.3.2. 3D Visual Grounding

모델이 주어진 3D 장면에서 특정 객체를 정확히 식별하고, 해당 객체의 위치를 3D 공간에서 앵커링(지정)할 수 있도록 학습합니다.

주어진 장면에서 bounding box를 생성하고, 비주얼 임베딩+3D 좌표 임베딩을 통해 객체 표현을 생성한 뒤, InfoNCE Loss를 통해 모델이 정답 객체와 유사도를 최대화하도록 학습합니다.

 

3. Conclusion

본 모델은 3D 장면을 이해하는 벤치마크에서 SOTA 성능을 달성했습니다. 비디오를 통해 3D 장면을 해석하고 이해할 수 있어, 기존 모델보다 더욱 효율적인 연구입니다. 

하지만 RGB가 아닌 Depth를 포함하는 비디오기 때문에 이는 확장 가능성이 있어보입니다.

 

 

1. Introduce

아직 아카이브에 있지만 발표 준비 중인 것 같은 2024년에 공개된 Dynamic Gaussian Fusion from Casual Videos via 4D Motion Scaffolds 논문을 리뷰합니다. 가칭은 MoSca고 이번 글에서도 MoSca로 부를 예정입니다.

이번 글에서는 Gaussian Splatting 관련된 내용은 생략했습니다. 조만간 Gaussian Splatting 논문도 리뷰할 예정입니다. background가 되는 논문을 먼저 리뷰해야하는데 MoSca가 좀 더 내가 하고자하는 방향에 맞는 것 같아서 급하게 읽어봤습니다.

기존 재구성 논문들은 Multi-View를 많이 쓰고 있었습니다. 근데 Video footage에서는 Multi-view가 제한적입니다. 예를 들면 단안 카메라에서 촬영된 Video는 하나의 시점에서만 촬영하고 동일한 장면을 여러 각도에서 캡처하려면 다중 카메라 시스템이 필요하지만, 이는 일반적인 Video에서는 불가능합니다.

따라서 본 논문에서는 단안 카메라에서 촬영된 Video(single view) 영상을 4D로 재구성하는 방법을 소개합니다.

전체적인 전개는 다음과 같습니다.


단안 영상이 들어오면 4D Motion Scaffolds 를 생성하고 움직이는 물체에 대해서 시간과 공간내에서 시각적으로 표현 후, Gaussian Splatting을 사용해 렌더링합니다.

2. Method

(A) 단안 영상이 Input으로 들어오면, Pretrained 2D Vision Model로 2D 이동궤적, depth, optical flow, epiplolar 에러 등을 추출합니다.

 

(B) 정적인 배경과 움직이는 물체를 분리하고 카메라 내외부파라미터를 추정하여 장면의 기초 구조를 성정합니다. Optical Flow와 Epipolar를 통해 정적배경을 동적 물체와 분리합니다.

 

(C) 2D 예측 데이터 (이동궤적, depth 등) 기반으로 3D Motion Scaffold(그래프)로 lifting 하여 3D노드와 엣지로 구성된 그래프 형태로 표현합니다.

 

손실함수는 ARAP (As-Rigid-As-Possible) + 속도 및 가속도 손실함수를 사용합니다.

  1. ARAP

    첫 번째 항 : 시간의 흐름에 따라 두 노드 간의 거리가 계속 유지되도록 합니다. 이는 변형 관정에서 노드 간의 상대적 배치를 보존해 물리적 일관성을 유지시켜줍니다.
    두 번째 항 : 노드 n의 로컬 좌표계에서 노드 m의 위치가 시간에 따라 크게 변하지 않도록 보장합니다. 이는 로컬 좌표계 기준으로 변형의 매끄러움을 유지시켜줍니다. (예를 들어, 손목이 움직이더라도 손목과 팔과 어깨간의 거리는 크게 변하지 않습니다.)
    따라서 ARAP에서는 변형이 가능한, rigid를 유지시키려고 노력합니다. 물리적으로 일관성은 유지하되, 부드럽게 변형될 수 있게 합니다.
  2. 속도

    시간 흐름에 따라 노드의 이동거리를 최소화 시킵니다. 불필요한 변형이거나 비현실적인 움직임을 최소화 시키려고 합니다.
  3. 가속도

    시간 흐름에 따라 노드의 가속도도 최소화시킵니다. 역시 이 부분도 움직임이 갑작스럽게 변하지 않도록 제한합니다.
    전체 손실함수 (ARAP + 속도 및 가속도 손실함수)

    ARAP, ACC, VEL에 각각의 가중치를 두어 전체적인 손실함수를 구성합니다.

 

 

(D) Motion Scaffold의 노드 위치 기반으로 Gaussian Splatting 생성하고 Fusion을 통해 시간적으로 서로 다른 프레임에서 관측된 정보를 융합한 뒤, 렌더링합니다.

각 시간마다 3D 데이터들은 Gaussian으로 표현되고, 각 시간마다 동일한 물체는 위치, 크기, 색상이 다를 수 있으니 SE(3)공간에서 각 시간 단계 간의 변형을 표현합니다.

이에 Fusion at target time은 Gaussian Splatting을 통해 모든 시간 단계의 데이터를 통합하고, ARAP 및 Photometric Loss를 사용해 최적화합니다.

전체적인 손실함수는 다음과 같습니다.


RGB Loss : 입력 프레임과 재구성된 이미지 간의 픽셀 단위 색상 차이 최소화
--> 시각적으로 사실적인 결과를 생성하기 위해
DEPTH Loss : 입력 depth와 재구성된 depth 차이 최소화
--> 거리감 및 공간적 정확성 향상
TRACKING Loss : 입력된 경로와 재구성된 물체의 경로의 차이 최소화
--> 물체의 움직임과 실제 궤적을 일치

3. Experiments

PSNR, SSIM, LPIPS를 활용해 3D 재구성 품질을 평가합니다.

전체적으로 기존 기술 대비 높은 점수를 기록했습니다. 특히 복잡한 움직임과 역동적인 물체가 포함된 장면에서 우수한 성능을 보였습니다. 또한 렌더링 속도도 real time에 가까운 성능을 제공했습니다.

맨 위 그림 앉아있는 남자는 pose가 있을 경우입니다.

자동차 스티어링을 돌리는 장면은 pose가 없을 경우입니다.

4. Conclusion

MoSca의 한계는 다음과 같습니다.

  1. 매우 복잡한 움직임과 심한 occlusion은 재구성이 힘들 수 있음.
  2. input Video의 품질이 낮거나 움직임이 너무 제한적인 경우, 정확한 3D 구조를 추출하기 어려움.
  3. 매우 큰 데이터셋에서는 실시간 처리가 어려울 수 있음.
  4. 사람, 차량 등 특정한 동적 장면에 최적화되어 있으며, 더 다양한 장면에 일반화하기 위해서는 추가 연구가 필요함.

이전 논문인 3D-LLM에 이어 LLM과 3D를 이어주는 초기 3D LLM 논문을 읽어보기로 했습니다.

1. Introduce

본 논문은 3D Point Cloud를 2D 이미지, 언어, 오디오, 비디오 같은 다중 모달리티와 alignment하는 3D 다중 모달리티 모델 Point-Bind와 3D 다중 모달 지시에 따른 최초의 3D LLM인 PointLLM을 소개합니다. 

기존 연구의 한계점

3D Geometry 이해를 위한 연구는 2D 언어 임베딩을 이용해 3D 월드를 인식하거나, 시각적, 텍스트적의미를 결합해 3D 표현 학습을 하는 방식이 주를 이뤘습니다. 하지만 기존 연구들은 학습 단계에서 제공된 제한된 모달리티에 의해 인식 능력이 제한되는 경우가 많았습니다.

 

Text to 3D Synthesis는 2D 생성 모델에서 영감을 받아 텍스트 3D 생성에 대한 연구가 많이 이뤄졌습니다. 하지만 기존 연구들은 다중 모달 입력을 기반으로 한 Any to 3D 에는 한계가 있었습니다.

 

기존 연구들은 LLM에 내장된 사전 학습된 언어 데이터를 활용하지 못해, 3D Geometry 데이터를 효과적으로 이해하는데 한계가 있었고, 따라서 다중 모달리티와 통합된 3D 프레임워크의 개발이 필요했습니다. 

 

따라서 첫 번째로, 본 논문에선 Point-Bind를 제안했습니다. Point-Bind는 Point Cloud를 여러 모달리티와 정렬해 통합된 3D 분석을 지원하는 다중 모달리티 프레임워크이며 주요 Contribution은 다음과 같습니다.

 

1. 3D와 ImageBind의 정렬

- Point-Bind는 ImageBind의 가이드를 통해 공동 임베딩 공간에서 3D Point Cloud와 다중 모달리티를 처음으로 정렬합니다. 이를 통해 3D 데이터와 다른 모달리티 간의 일관된 표현을 가능하게 합니다.

 

2. Any to 3D 생성

- 기존 Text to 3D를 확장해 Point-Bind는 다양한 모달리티를 기반으로 3D 생성합니다.

 

3. 3D 임베딩 공간 연산

- Point-Bind를 통해 추출된 3D 특징은 다른 모달리티와 결합해 그들의 Semantic을 통합할 수 있습니다. 이를 통해 교차 모달 검색을 할 수 있는데, 교차 모달 검색은 텍스트와 3D 특징을 조합해 특정 장면을 검색하거나, 이미지와 3D 데이터를 조합해 특정 콘텐츠를 찾는 기능을 할 수 있습니다.

 

4. 3D zero-shot

- Point-Bind는 3D 제로샷 분류에서 SOTA성능을 달성했는데, 텍스트 기반 참조 외에도 오디오 참조를 통해 3D 월드를 이해합니다. 예를 들어 오디오로 특정 장면이나 객체를 식별하거나 텍스트 명령어로 3D 환경 내 작업을 수행할 수 있습니다.

두 번째로, Point-LLM을 제안했습니다. Point-LLM은 3D LLM으로 3D Point Cloud 와 언어를 통해 3D 기반의 질의응답과 다중 모달 데이터를 처리할 수 있습니다. Point-LLM은 Point-Bind를 기반으로 LLaMA와 통합하여 개발됐습니다. 주요 Contribution은 다음과 같습니다.

 

1. 3D 질의응답

- Point-LLM은 3D Point Cloud 기반으로 언어 지시를 처리하여 응답하는 최초의 모델입니다. 일단 영어와 중국어가 가능합니다.

 

2. 효율성

- 3D 지시 데이터가 필요 없기 때문에 적은 데이터와 리소스로 학습이 가능합니다.

 

3. 다중 모달 및 3D 추론

- Point Cloud, 이미지, 오디오와 같은 다양한 데이터를 결합한 추론이 가능합니다.

 

 

2. Method

1. Point-Bind

 

1. ImageBind

 

먼저 ImageBind에 대해서 설명이 필요합니다. ImageBind는 다중 모달리티를 공동 임베딩 공간에 통합하는 방법을 제안한 기술입니다. 따라서 본 논문에서도 6가지의 모달리티 (이미지, 텍스트, 오디오, 깊이, 열, IMU)를 하나의 공유 표현 공간으로 정렬해 크로스 모달 zero-shot에 도움을 줄 수 있습니다. ImageBind의 특징은 다음과 같습니다.

 

1. Image-Pair 데이터만 사용

- 6가지 모달리티를 공동 임베딩 공간에 정렬하기 위해, 이미지와 짝지어진 데이터만 사용합니다.(모든 모달리티가 서로 직접 짝을 이루는 데이터는 필요없음)

 

2. 이미지의 바인딩 속성 활용

- 각 모달리티를 독립적으로 이미지와 정렬하여 모달리티 간의 간접적인 연결을 형성합니다. (텍스트 -이미지 정렬과 오디오-이미지 정렬을 통해 텍스트-오디오 간 간접적인 연관성을 형성)

 

3. 크로스 모달 대조 학습

- 다양한 모달리티 데이터를 대응하는 encoder에 입력해 이미지-페어 데이터에 대해 대조 학습을 수행하여 모달리티 간의 일관된 표현을 학습합니다. (텍스트 : 사과 / 이미지 : 사과사진 / 오디오 : 사과소리? -->(학습) --> 공동 임베딩 공간에 가까워짐)

* 대조 학습 (Contrastive Learning) : positive pair(dog이미지와 dog텍스트)와 negative pair(cat이미지와 dog텍스트)를 구분하고 positive pair의 거리는 줄이고, negative pair의 거리는 늘려 대상들의 차이를 더 명확하게 보여줄 수 있는 학습 

 

이러한 ImageBind의 원리를 확장해 Point-Bind는 3D 다중 모달 프레임워크를 제안합니다.

 

2. Training Data

 

3D Point Cloud를 다른 모달리티와 정렬하기 위한 방법을 설명합니다. ImageBind의 사전 학습된 임베딩 공간을 활용해 대조학습을 통해 3D 데이터와 여러 모달리티 간의 관계를 학습합니다.

먼저 3D, 이미지, 텍스트, 오디오의 데이터 Pair를 수집하기 위해 세 가지 단계를 수행합니다.

 

1. 3D-이미지-텍스트 데이터 Pair

- ShapeNet(3D CAD 데이터셋) 의 각 3D PointCloud를 해당 2D 이미지와 텍스트와 연결

 - 2D 이미지는 3D 모델의 Multi View로 생성

 - 텍스트는 3D 모델의 카테고리 명과 64개의 사전 정의된 템플릿으로 생성 

 

2. 3D-오디오 데이터 Pair

- ESC-50(다양한 환경 소리 데이터셋), ShapeNet

 - ShapeNet의 55개 카테고리 중 실제 소리를 낼 수 있는 물체를 선택

 - ESC-50에 해당 카테고리가 존재하는지 확인해서 최종적으로 9개의 카테고리 선정 후, ShapeNet의 3D 모델과 ESC-50의 오디오 클립을 연결

 

3. 3D-이미지-오디오-텍스트 데이터 Pair 통합

- 3D-이미지-텍스트, 3D-오디오를 매칭해 통합

 - 학습 시, Point Cloud와 함께 연결된 이미지와 오디오, 텍스트 데이터를 동시에 입력해 대조 학습 --> 이를 통해 3D 데이터와 다른 모달리티 간의 정렬 관계를 학습

 

3. 3D와 다중 모달리티 정렬

이는 3D Point Cloud와 이미지, 텍스트, 오디오 데이터를 공동 임베딩 공간에 정렬을 하기 위한 학습 방법을 설명합니다. 이는 대조 학습을 통해 이뤄집니다.

(3D Point Cloud : P  /  2D 이미지 : I  /  텍스트 설명 : T_s  /  오디오 : A )

 

3-1. 3D Point Cloud 임베딩

I2P-MAE 3D 인코더를 사용해 3D 데이터를 F_3D로 변환하는데 3D 임베딩을 ImageBind 공간에 맞추기 위해 Projection을 합니다.

 

3-2. 이미지 텍스트 오디오 임베딩

ImageBind 인코더를 사용해 2D 이미지, 텍스트 설명, 오디오를 각각 임베딩합니다.

 

3-3. 텍스트 임베딩 평균 pooling

텍스트 임베딩의 평균 pooling을 사용해 통합된 텍스트 임베딩 F_T를 생성합니다. (텍스트 임베딩의 robustness를 위해)

 

3-4. 대조 손실

 

마지막으로 대조 학습을 통해 3D Point Cloud와 다른 모달리티 간의 임베딩을 정렬합니다. (오디오가 없는 경우엔 오디오 손실을 계산에서 제외합니다.)

 

 

따라서 Point-Bind를 통해 다음과 같은 작업이 가능합니다.

Any-to-3D : 자동차 경적소리 --> 자동차 3D 생성

3D 임베딩 공간 연산 : 3D 자동차 + 바다소리 = 해변가에 있는 자동차 이미지

3D 제로샷 이해 : 시계 소리 --> 시계 3D 형태 인식

 

2. Point-LLM

 

Point-LLM은 Point-Bind를 활용하여 개발된 3D LLM입니다. 이는 LLaMA를 fine tuning 해 3D 질의응답 추론을 할 수 있습니다. 먼저 Point-LLM의 3D 기반 명령 수행 기능을 소개합니다.

 

1. 3D 명령 데이터 X

- 일반적으로 3D 데이터와 텍스트 명령을 연결하기 위해서는 3D 명령 데이터셋이 필요합니다. 예를 들어 3D 모델과 텍스트 명령("이 객체를 왼쪽으로 이동시켜라")의 Pair 학습이 필요한데, Point-LLM은 다음과 같은 해결방법으로 3D 명령 데이터를 사용하지 않고도 3D 기반 명령을 학습합니다.

  - 공개된 이미지-텍스트 Pair만 사용해 LLaMA 를 fine tuning하고

  - Point-Bind가 3D와 다른 모달리티를 같은 임베딩 공간에 정렬하기 때문에, 한 가지 모달리티(이미지(가장많음))가 LLaMA와 연결되면 다른 모달리티도 자동으로 정렬되기 때문

 

2. 효율적인 학습

- 일반적으로 LLM의 모든 매개변수를 조정하면 학습에 많은 시간이 소모되기 때문에 Point-LLM은 LLaMA의 대부분의 매개변수는 고정시키고, ImageBind의 이미지 인코더와 LLaMa의 언어 공간을 연결합니다. 그 이후 output으로 나온 이미지들의 특징을 LLaMA의 단어 토크에 추가하는데, 여기서 학습에 갑자기 새로운 정보가 들어오게 되면 학습이 불안정하게 될 수 있어, 넣을 때 zero로 초기화하여 점진적으로 반영시킵니다. (Zero-initialized Gating)

 

마지막으로 3D Point Cloud와 텍스트 질문을 처리해, 3D 데이터를 기반으로 답변을 생성하는 질의응답 과정을 설명합니다. (다중 모달리티 추론 포함)

 

처리 단계를 순차적으로 표현하면 다음과 같습니다.

1. 다중 모달리티 추론

2D 이미지와 오디오는 ImageBind에 의해 처리되고, 3D Point Cloud는 Point-Bind에 의해 처리됩니다. 각 모달리티는 개별적인 임베딩 벡터로 변환되는데, Addiction 연산을 통해 이미지+오디오+3D Point Cloud의 단일 통합 특징 벡터를 생성합니다.

 

2. Visual Cache

학습 시에는 이미지 인코더를 사용했지만, 추론 시에는 3D 인코더를 사용하기 때문에 이미지와 3D 간의 모달리티 차이가 존재합니다. 따라서 학습 데이터에서 얻은 특징을 Cache로 저장하고, 이를 Knowledge Retrieval에 사용합니다. 

- 이미지 특징 --> Key-Value 구조 (Key : 이미지 특징(임베딩)  /  Value : 같은 이미지의 의미 정보를 포함한 특징)

- 입력된 3D 특징을 Query로 사용해 유사한 이미지 Key를 검색

- 유사한 이미지의 Value를 선택해 가중 평균을 계산

- 계산된 결과를 3D 특징에 Residual Connection으로 3D 특징 강화

 

3. 특징 변환 및 답변 생성

- 강화된 3D 특징을 바인드 네트워크에 입력해 LLaMA에 연결

- LLaMA가 언어 입력과 3D 데이터를 기반으로 응답을 생성

 

 

3. Experiments

실험은 다음과 같은 방식으로 진행되었습니다.

1. 3D 명령 지시 : 이 객체가 무엇인가요? 이 객체를 회전시켜라

2. 3D 교차 모달 검색 : 이 모델과 관련된 이미지를 찾아줘

3. 3D 임베딩 공간 연산 : 3D 자동차 + 바다소리 = 해변가에 있는 자동차

4. Any-to-3D : 자동차 경적소리 -> 자동차 3D 생성

5. 3D 제로샷 : 이 소리를 내는 3D 객체는 무엇인가요?

 

 

4. Conclusion

3D 데이터를 다중 모달리티와 정렬할 수 있는 프레임워크와 3D+언어를 최초로 통합한 대규모 모델에 의의가 있습니다. 현재는 3D 모델이지만 향후에는 장면 데이터도 포함하는 것이 필요해보입니다. 

1. Introduce

기존 LLMs (GPT 등)은 이미지, 동영상 등 새로운 Multi-Modal LLM을 통해 확장 중입니다. 그러나 기존 LLMs은 3D 환경을 이해하고 이를 바탕으로 추론할 수 있는 SF 영화 속 로봇에 비해서는 부족할 수 있습니다.

이를 해결하기 위해, 본 논문에서는 LLM에 3D 세계를 통합하는 (3D World를 입력으로 받고 3D 관련 작업을 수행하는 LLM) 환경을 제공합니다. 이 논문에서 소개하는 3D LLM의 중요한 이점은 다음과 같습니다.

 

1. 전체 장면에 대한 장기 기억 : 부분적인 관찰보다 전체적인 3D 표현 (포인트 클라우드 등)을 사용하기 때문에 장면의 모든 것을 하나의 전체적인 데이터로 저장해, 단편적인 관찰보다 훨씬 유리함.

 

2. 3D 속성(활용 가능성, 공간적 관계) : 3D 표현 (포인트 클라우드 등)에서 추론할 수 있기 때문에, "의자에 앉을 수 있다" 같은 활용 가능성을 전체적인 3D 데이터를 바탕으로 추론할 수 있고, "의자가 책상 옆에 있다" 같은 공간적 관계도 따로 설명하지 않아도 추론이 가능함. 

 

 

본 논문에서 가장 중요하게 생각하는 첫 번째 단계는 데이터 수집입니다. 2D 기반의 이미지, 텍스트 데이터는 방대하지만, 3D 데이터는 부족하고 특히, 언어 설명과 Pair를 이루는 3D 데이터를 더욱 부족합니다. 따라서 본 논문에서는 3D 데이터와 언어 설명을 Pairing 할 수 있는 파이프라인을 제시합니다. 

 

두 번째로는 수집된 3D 데이터를 효과적으로 활용하기 위해 3D 특징을 언어특징과 연결해야 합니다. 기존에 2D 이미지와 언어를 연결하는 방법 (CLIP 등) 을 3D에 그대로 적용하면 2D 데이터 대비 훨씬 비용이 많이 듭니다.

그래서 본 논문에서는 2D Multi-View 이미지의 사전 학습된 2D CLIP 특징을 활용해 3D 특징을 구성하는 3D 특징 추출기를 사용합니다. 다시 설명하자면, Multi-view 이미지를 입력받아 이미 VLM (BLIP-2, Flamingo) 으로 학습된 2D 특징을 그대로 사용하는데, 3D 특징은 '2D 사전 학습된 특징 공간'으로 매핑되기 때문에 기존의 2D VLM을 백본으로 사용할 수 있으며, 이를 통해 2D로 학습된 모델을 그대로 사용하면서도 3D 데이터에서 정보를 얻을 수 있는 것입니다.

 

그러나 2D 특징이기 때문에 3D 공간 감각을 제공하기 위해 3D Localization 메커니즘을 사용합니다. 

1. 3D Position Embedding

- 추출된 3D 특징에 위치 정보를 추가합니다. (3D 포인트가 장면 어디에 있는지 숫자로 표현)

 

2. Location Token 

- 특정 객체의 위치를 더 잘 파악하도록 학습시키기 위해, 텍스트 설명과 연결된 위치 정보 추가합니다. (의자가 방의 오른쪽 구석에 있다.)

 

2. Method

1. Date Generation

문제 정의 : 3D 데이터는 텍스트 설명이 부족하거나 노이즈가 많아 3D와 언어 데이터를 Pairing하기 어려움. 따라서 GPT와 같은 기술을 활용해 3D-언어 데이터를 생성하려고 시도합니다.

 

본 논문에서는 GPT를 활용한 세 가지 프롬프트 전략을 제안합니다. 

 

1. Boxes-Demonstration-Instruction 기반 프롬프트

- 3D 장면의 AABB (Axis-Aligned Bounding Box) 데이터를 입력으로 사용합니다. 경계 상자는 방이나 객체의 위치나 크기 정보를 GPT에게 제공하고 텍스트로 3D 장면의 설명을 생성하도록 지시합니다. 이는 Few-shot 학습을 통해 학습시키는데, Few-Shot 학습은 GPT에 0~3개의 예시 데이터를 입력으로 제공해 모델이 어떤 유형의 데이터를 생성해야 하는지 학습시키는 방법입니다.

 

2. ChatCaptioner 기반 프롬프트

- ChatGPT와 BLIP-2를 결합해 3D 장면에 대한 설명을 생성합니다. 

 - BLIP-2 : Multi-view이미지를 기반으로 질문에 답변

 - ChatGPT : 이미지를 보지 않고도 정보를 수집하기 위해 질문을 생성

BLIP-2에 Multi-view 이미지를 입력하면 ChatGPT가 장면의 다양한 영역에 대한 정보를 묻는 질문을 생성하고 BLIP-2가 대답해, 두 모델이 상호작용하여 장면 전체에 대한 종합적인 3D 설명을 생성합니다. 

 

3. Revision 기반 프롬프트

- 하나의 3D 데이터 유형을 다른 유형으로 변환합니다. 

예를 들어 "The white chair is near the table" 이라는 3D 객체의 설명이 있으면, GPT에게 "이 장면에 대해서 질문과 답변 세트를 만들고, 질문은 3D 공간 정보와 객체의 특징을 포함해줘" 라고 입력합니다. 

GPT는 Q : What color is the chair near the table? A : The Chair near the table is white. 이런 식으로 출력합니다.이를 통해 3D-LLM 학습에 필요한 다양한 데이터를 생성할 수 있습니다.

 

2. 3D-LLM 학습

문제 정의 : 3D LLM을 처음부터 학습하기에는 어려움. 사전 학습된 2D CLIP 모델이 잇지만 3D 데이터에서는 존재하지 않음. 따라서 3D 특징 추출기와 2D VLM을 활용한 백본 설계, 3D Localizaiton 메커니즘을 제안합니다.

 

 

1. 3D Feature Extractor (3D 특징 추출기)

3D 데이터를 2D 데이터 기반으로 학습하기 위해, 3D 특징을 생성하는 세가지 방법을 사용합니다.

 

1. Direct Reconstruction (직접 재구성)

- RGB-D 이미지와 정확한 카메라 매트릭스를 사용해 3D Point Cloud를 생성하고, 생성된 포인트에 이미지 특징을 직접 매핑합니다. 

- 언제? 정확한 카메라 Pose와 Depth가 있을 때,

 

2. Feature Fusion (특징 융합)

- Multi-view로 추출한 2D 특징을 gradSLAM을 통해 3D 특징 맵에 융합합니다.

- 언제? Depth에 노이즈가 있거나 카메라 Pose가 부정확할 때,

 

3. Neural Field

- NeRF

- 언제? RGB 데이터만 있고 Depth가 없을 경우,

 

2. 2D VLM 백본

3D 특징이 2D VLM과 동일한 특징 공간으로 매핑되기 때문에, 사전 학습된 2D VLM (BLIP-2, Flamingo)을 백본으로 사용합니다.

- 3D 특징 추출기를 통해 3D 데이터를 2D 특징 공간으로 변환.

- 변환된 3D 특징을 2D VLM에 입력하여 3D-LLM을 학습.

 

3. 3D Localizaion 

3D 공간 정보를 더 잘 학습시키기 위해 사용합니다.

 

1. 3D Position Embedding

추출된 3D 특징에 위치 정보를 추가합니다. 

- X, Y, Z 축 각각에 대해 dv/3 크기의 임베딩을 생성하고 이를 3D 특징에 결합

 

2. Location Token 

언어 모델의 어휘에 3D 공간 정보를 나타내는 위치 토큰을 추가합니다.

- AABB를 토큰 형태로 표현 (xmin, ymin, zmin, xmax, ymax, zmax) 

- 위치 토큰의 입력 및 출력 임베딩 가중치를 학습 가능하도록 설정

 

 

3. Experiments

 

ScanQA 데이터셋을 사용한 3D-LLM의 성능 결과를 나타냅니다. 표1은 Validation set 결과, 표2는 Test set 결과를 나타냅니다.

 

표 1, 2에서 나타난 결과와 같이 3D-LLM의 결과는 모두 좋았으며, BLIP2가 대부분 최고 성능을 기록했습니다. 

Baseline 모델들은 명시적인 객체 표현을 사용해 제한적인 정보를 학습했기 때문에 성능이 낮게 나온 것을 확인 할 수 있습니다. 

 

정성적인 결과로는 이러한 결과가 나왔습니다. 굉장히 잘 표현하는 것으로 보입니다.

 

4. Conclusion

3D 데이터를 활용하는 새로운 LLM 계열을 소개하는 논문입니다. 하지만 2D Multi view 이미지에 의존하고, 3D 데이터를 직접 학습하지 못하기 때문에 (간접적 처리) 더 효율적인 학습 방법이 요구될 수 있을 것 같습니다. 

1. Introduce

COLMAP은 Structure-from-Motion Revisited 논문을 기반으로 만들어진 라이브러리입니다. COLMAP은 SfM(Structure from Motion)과 MVS(Multi-View Stereo)를 사용할 수 있게 만든 오픈소스 라이브러리며 3D Reconstruction 분야에서 초기 데이터 설정 등에 많이 사용되고 있습니다. 본 논문에서 SfM 등의 알고리즘을 만든 것이 아닌, 그 알고리즘들을 범용적으로 사용할 수 있는 COLMAP을 제공하는 논문이라고 생각하시면 됩니다.

 

 

2. Overview

COLMAP의 전체적인 Overview입니다. SfM(Structure-from Motion)인 경우 Figure 2에서 Incremental Reconstruction을 제외한 것이라고 생각하시면 됩니다. (본 논문에서 제시하는 것은 Incremental Reconstruction이 포함된 Incremental SfM)

전체적으로 각기 다른 View Points로부터 3D Reconstruction 하는 방법을 소개합니다.

 

Figure 2에서 보여지는 순서를 간략하게 설명하자면

1. Multi-View Image 들이 (Input) 으로 들어오면
2. (Correspondence Search) 그 이미지 들의 관련성을 찾습니다.
     - Feature Extraction : 어떻게 특징점을 추출할 것인가
     - Matching : 모든 Feature 쌍을 찾아 가장 오버랩이 많은 Image들을 Pair
     - Geometric Verification : Matching된 Image Pair들을 Geometric 방법을 통해 검증 
3. (Incremental Reconstruction) Matching된 Feature들을 통해 3D로 Reconstruction
     - Initialization : Location 정보가 많은 Pair를 선택해 Initialization
     - Image Registration : Scene Graph를 통해 다음 Edge에 연결된 Pair를 가져옴
     - Triangulation : Pair에서 두개의 Projection Matrices와 매칭된 2D Points를 통해 3D Point Recon
     - Bundle Adjustment : Recon된 3D Points와 Pose를 Reprojection 하고 Error를 최소화시킨다.
     - Outlier Filtering : 잘못된 3D Points들 제거 

 

3. Method

Correspondence Search

Input : 정렬이 안된 Images

Output : Image Pair들을 Edge로 한 Scene Graph

 

1. Feature Extraction

- 특징점을 추출하는 단계

𝑥_𝑗 : 이미지 I에서의 특징 위치 (2D 좌표)
𝑓_𝑗 : 해당 위치에서의 descriptor (특징의 시각적 속성을 나타내는 벡터)
𝑁_𝐹𝑖 : 이미지 I에서 감지된 총 특징 개수

 

- 특징은 Radiometric 및 Geometric 변화에 강해야 합니다. , 조명, 색상, 명암 등이 변화하거나 이미지가 회전, 확대, 왜곡 등의 변화에 강해야 합니다. 

 

- Feature Extraction은 SIFT(Scale-Invariant Feature Transform) 알고리즘을 전통적으로 사용하는데, 요즘은 SIFT 대신 딥러닝을 많이 사용합니다.) 

(SIFT 알고리즘)

- Gaussian Blur로 다양한 Scale의 이미지를 만들고, 각 픽셀을 주변 8개 및 상하위 18개 픽셀과 비교해 최대값 또는 최대값인지 확인하고, 이를 통해 중요한 점(극점, Extrema)를 탐지합니다. 
- 각 극점의 강도와 환경을 분석하고 노이즈에 민감하지 않고 강한 특징만 남깁니다.

 

2. Matching

- 여러 이미지에서 같은 장면을 봤던 부분을 찾고, 이들 사이의 특징점을 매칭하는 단계

Input : 𝑥_𝑗, 𝑓_𝑗 을 포함하는 특징 집합 𝐹_𝑖 과 이미지 집합 I
Output : 겹치는 장면을 촬영한 Image pair (𝐼_𝑎, 𝐼_𝑏) 집합인 C /  Image pair에서 매칭된 특징점 쌍(𝑀_𝑎𝑏)의 집합

 

𝐼_𝑎, 𝐼_𝑏 의 유사성을 비교하기 위해 naïve한 방법으로는 Similarity Metric을 사용하는데 최근에 효율적으로는 ANN, Feature Clustering, 딥러닝 등을 많이 사용합니다.



3. Geometric Verification

- 매칭된 포인트들은 외형을 기준으로 잡았기 때문에, 실제로 같은 Scene에 있는지를 확인하는 과정이 필요합니다. (예를 들어, 같은 모양의 물건이 한 장소에 여러개가 있는 경우 등)

 

Input : 특징점 쌍(𝑀_𝑎𝑏), Image pair (𝐼_𝑎, 𝐼_𝑏)
Output : 매칭 Image Pairs 𝐶 ̅  /  Outlier를 제거하고 남은 매칭 점 𝑀 ̅_𝑎𝑏 / 수학적 변환 모델 𝐺_𝑎𝑏 / Scene Graph (노드 : 이미지 I, 엣지 : 검증된 이미지 쌍 𝐶 ̅ )

두 이미지 간의 기하학적 관계를 수학적 변환 모델로 바꿉니다.
- Epipolar Geometry
  - 두 이미지 간의 관계는 다음과 같이 설명 가능합니다.
     - Essential Matrix (E) : 내부 카메라 파라미터(Calibration)가 알려진 경우
     - Fundamental Matrix (F) : Calibration 정보가 없는 경우
이미지 두 장의 관계성으로 상대 Pose를 추정한 뒤에, 기준 View의 Feature Point들을 다른 View로 Projection했을 때 Mapping이 잘되는지 검증합니다. 

Incremental Reconstruction

Input : Scene Graph
Output : 최종 Image들의 Pose Estimates P, 3D 공간의 Point Cloud X

 

1. Initialization

- 겹치는 영역도 많고 기하학적으로 검증된 이미지 Pair (𝐼_𝑎, 𝐼_𝑏) 을 선택합니다.
- 선택된 이미지 Pair에서 Essential Matrix 기반으로 초기 카메라 위치와 방향 (𝑃_𝑎, 𝑃_𝑏) 을 추정합니다.
- 선택된 이미지 Pair의 매칭된 특징점으로 초기 3D Point Cloud (𝑋_𝑘) 을 생성합니다.

 

2. Image Registration

- 초기화된 Camera pose와 Image Pair를 사용해 2D 매칭점에서 3D Points 계산합니다.


𝑥_𝑗  : 새로운 이미지 𝐼_𝑐 의 2D 특징점
𝑋_𝐾 : 이미 계산된 3D Point Cloud 의 Point

(𝑥_𝑗, 𝑋_𝐾)을 기반으로, 새로운 이미지의 카메라 pose 𝑃_𝑐를 추정합니다.
이러한 Pose 들의 집합인 P로 출력합니다.

 

3. Triangulation

- 새로운 이미지와 기존 3D 모델간의 관계를 확장하고, 추가적인 3D 포인트를 생성해 Point Cloud를 확장하는 목적 (동일한 3D Point를 여러 이미지에서 관측하면 중복성이 생겨 모델의 안정성을 높입니다.)

https://www.cs.cmu.edu/~16385/s17/Slides/11.4_Triangulation.pdf

- 각 이미지에서 매칭된 2D Point에서 Ray를 생성하고 이 Ray들의 Intersection을 찾습니다.
- Multi-view Triangulation : 다수의 이미지라면 더 정확하지만, 계산량이 많고, 노이즈에 민감합니다.(잘못된 매칭점인 Outlier가 모델에 악영향)  --> RANSAC 등을 사용

 

4. Bundle Adjustment

- 카메라의 파라미터와 3D Point의 좌표를 동시에 최적화하여 정확도를 올리는 과정
- 특징점 2D와 3D Point 간의 Reprojection Error를 최소화합니다. 


- Image Registration과 Triangulation은 별개의 과정이지만, IR에서 예측한 pose는 3D포인트의 TR에 영향을 주고, 반대로 TR에서 예측한 3D포인트는 IR에서 Pose를 구하는데 영향을 줍니다. 따라서 BA를 통해 동시에 최적화해 정확도를 높입니다. 따라서 BA에서는 Camera pose (𝑃_𝑐)와 3D Point(𝑋_𝑘)를 동시에 최적화합니다. 

4. Conclusion

- 기존 SfM 알고리즘에서의 완전성, 강건성, 정확도, 효율성 문제를 해결한 논문입니다. 본 논문은 COLMAP의 근간이 되는 논문으로 아직까지 많이 사용되기 때문에 완전히 숙지하지는 못해도, 어느정도 어떻게 구성되는지는 알아야 할 것 같습니다. 

+ Recent posts