CameraVLM이 카메라 움직임 방향을 언어모델이 해석하게 만든다

When Left Is Right? Camera-Motion Understanding beyond Screen

HF Daily2610.17242

Chong Cheng, Ran Zhang, Xinyuan Li2026-10-12

무엇인가

비전-언어 모델(VLM)은 시각 퍼즐을 풀고 한 시간짜리 영상을 따라가며 답하지만, 영상 속 카메라가 왼쪽으로 움직였는지 오른쪽으로 움직였는지 물으면 대부분 동전 던지기 수준의 정확도를 보인다. 논문은 인간이 같은 질문에서 86%까지 도달한다는 점을 대비시킨다. 기존 시도는 두 갈래였다. CameraBench와 ACaM처럼 카메라 모션 전용 데이터와 지시 튜닝을 붙이는 방향, DepthLM·DepthVLM·Cambrian-P·VLM-3R·CamInject처럼 깊이·포즈·3D 기하 특징을 넣는 방향이다. 저자들은 어느 쪽도 단독으로는 충분하지 않다고 말한다. 카메라 특화 모델은 자기 벤치마크에서만 좋아지고 다른 벤치마크로 전이되지 않으며, 명시적 기하를 넣은 모델은 같은 크기의 일반 VLM과 비슷하거나 오히려 더 나쁘다.

어떻게 동작하나

저자들의 주장은 두 조건이 동시에 성립해야 한다는 것이다. 첫째, 표현이 오프스크린 3D 기하와 온스크린 이미지 모션을 함께 결합해야 한다. 기하만 인코딩해서는 안 된다. 둘째, 그 표현을 포즈나 깊이 추정기로 따로 학습시키는 게 아니라 언어모델이 추론해야 한다. 근거로 제시하는 것은 이미지 모션의 모호성이다. 카메라 병진과 회전은 화면에서 비슷한 변화를 만들고, 피사체 움직임이 프레임 안의 겉보기 모션을 지배할 수도 있다. 시각 서보잉의 이미지 야코비안을 미분해 얻은 식에서 장면·카메라 병진, 카메라 회전, 내부 파라미터 변화라는 세 항이 유사한 1차 모션을 만들어낼 수 있음을 보인다. 팬과 횡방향 이동은 깊이가 거의 일정할 때 비슷하게 보이고 시차(parallax)로만 구분되며, 줌과 축방향 이동은 순간적인 스케일 변화가 비슷하지만 깊이 의존성이 다르다. 여기에 참조 기준 문제가 겹친다. 질의는 목표 엔티티, 참조 엔티티, 기준 프레임, 시간 구간을 지정하며, 같은 동적 상태도 질의에 따라 다른 언어 설명을 지원한다.

무엇과 다른가

제안 모델 CameraVLM은 Qwen3.5-VL-9B를 백본으로 삼고 토큰 시퀀스에 두 종류의 토큰을 추가한다. 카메라 토큰은 소스 프레임마다 하나씩 그 프레임의 비디오 토큰 옆에 삽입되는 학습 가능한 토큰으로, 백본을 통과한 뒤의 은닉 상태가 카메라 상태가 된다. Camera Head가 이 상태들에 self-attention을 적용해 프레임별 이동·회전·화각을 반복 정제해 예측하고 카메라 포즈로 지도한다. 지도가 별도 인코더가 아니라 언어모델이 읽는 바로 그 상태에 걸리기 때문에 카메라 모션은 pan·truck·zoom 같은 이산 레이블로 축소되지 않고 연속 표현으로 남는다. 플로우 토큰은 CoWTracker를 따라 비전 인코더 특징 위에서 점 운동을 특징 워핑과 시공간 어텐션으로 반복 정제하고, 균일 이미지 그리드에서 초기화한 점들의 궤적·가시성·신뢰도를 attention pooling으로 고정 개수 토큰으로 압축한 것이다. 개별 궤적에 카메라·피사체·배경 역할을 미리 부여하지 않고 카메라 상태·시각 맥락·질문과 함께 해석한다. 전체 목적함수는 QA 손실에 카메라 손실과 플로우 손실을 가중 합한 형태다.

어떻게 쓰나

학습은 2단계다. 1단계 state-interface adaptation에서는 언어 백본을 동결한 채 카메라·플로우 경로를 학습하고 비전 인코더를 작은 학습률로 업데이트한다. 이때도 QA 손실이 동결된 언어모델을 통해 새 상태로 역전파되어, 새 토큰이 포즈·플로우 목표에만 맞춰지는 게 아니라 사전학습 모델이 이미 쓰는 표현 공간으로 들어가도록 정렬된다. 2단계 joint state-language adaptation에서는 언어 백본까지 풀고 전체 목적함수로 모든 구성요소를 공동 최적화하며, 언어 능력 보존을 위해 일반 비디오 QA를 섞는다. 학습 샘플은 세 종류로 나뉜다. 비디오만 주어지는 샘플에서는 카메라 상태를 프레임에서 추론해야 하고, 포즈만 주어지는 샘플에서는 정답 포즈를 카메라 토큰에 임베딩해 비디오 없이 기하와 카메라 모션 언어의 대응을 학습하며, 비디오+포즈 샘플은 둘을 함께 준다. 추론 시에는 비디오와 질문만 주어진다.

전제와 한계

학습 데이터는 같은 클립에 포즈·플로우 레이블과 언어 설명을 함께 붙인다. 카메라 모션 언어는 ACaM의 27K QA와 CameraBench의 68K QA 및 캡션에서 오고, 이 영상들에 카메라 어노테이션이 없어 VGGT-Ω로 오프라인 추정하고 CoWTracker로 궤적 지도를 생성한다. 여기에 Cambrian-P의 VSI-590K 공간 예시와 Cambrian-S의 510K 일반 비디오 QA, Cambrian-P가 쓴 정답 및 ViPE 기반 의사 카메라 포즈를 더하고, Kubric의 정답 포즈·궤적과 3DThinker의 10K 공간 CoT 예시를 포함한다. 학습과 평가 영상은 엄격히 분리한다.

실험은 CameraBench에서 Yes/No 질문 1,000개를 균일 샘플링하고 CineTechBench와 ShotBench는 카메라 모션 샘플 전체를 쓴다. 20개가 넘는 오픈소스·기하 인지·카메라 특화·상용 VLM 베이스라인과 비교해, 9B 파라미터만으로 세 벤치마크 모두에서 오픈소스 및 카메라 특화 모델을 큰 차이로 앞서고 평균적으로 GPT-6 Astra와 인간 시청자에 대등하거나 능가한다. 카메라 특화 데이터로 학습된 CameraModel과 ACaM도 CameraVLM보다 명확히 낮다. 48명 참가자(전문 촬영감독, 컴퓨터비전 학생, 카메라 모션 연구자)를 대상으로 한 인간 평가도 수행했다. 여덟 개 카메라 모션 카테고리 전반에서 고른 성능을 보이며, 정성 사례에서는 피사체 움직임이 커서 대부분 모델이 truck-left를 pull-out으로 오인한 클립을 배경 모션 단서로 바로잡는다. 상태 자체도 평가하는데, Sintel에서 스트리밍 베이스라인 중 최고 ATE와 RPE_t를 기록하고 TAP-Vid DAVIS에서 가려짐 정확도를 포함해 경쟁력 있는 추적 정보를 유지한다. 어블레이션에서는 플로우 상태를 제거하면 성능이 떨어지고, 카메라·플로우 지도가 없으면 백본 수준으로 떨어지며, 2단계 학습이 1단계보다 낫다. 추론 시 마스킹에도 성능 저하가 제한적이다. 다만 표에 담긴 구체적 수치들은 원문 본문에 제시되지 않았다.

개발자 관점에서 이 논문의 실용적 함의는 카메라 방향 질문에 답하려면 기하 추정기를 붙이는 것만으로는 부족하고, 연속 상태를 언어모델의 표현 공간 안에서 언어와 함께 학습시켜야 한다는 설계 지침이다. 추론 시 외부 기하 정보 없이 비디오와 질문만 필요하다는 점은 배포에 유리하다. 반면 구현 비용은 만만치 않다. 비전 인코더 27개 블록, 언어모델 32개 층, 은닉 차원 4096 구성에 영상을 최대 128프레임으로 균일 샘플링하고, 언어모델·비전 타워 2e-6, 카메라 모듈 1e-4, 플로우 모듈 1.5e-4의 학습률로 1단계 20K, 2단계 30K 반복을 32장의 H100에서 약 7.5일 돌린다. 영상 편집·생성 제어, 에고센트릭 로보틱스 에이전트, 영상 검색·캡셔닝처럼 카메라와 피사체 움직임을 분리해야 하는 작업에 적용을 검토할 만하다.

저자들이 밝힌 한계는 세 가지다. 일부 학습 영상이 VGGT-Ω와 CoWTracker로 생성한 오프라인 감독에 의존하므로 상태 학습이 상류 추정 오류를 물려받을 수 있다. 희귀한 복합 모션과 특이한 촬영 조건은 학습 데이터에 덜 표현되어 있다. 현재 설정은 샷 단위 카메라 모션에 초점을 두며 컷 사이의 카메라 모션 관계나 더 긴 촬영 시퀀스는 아직 모델링하지 않는다.