영상과 임의 리그의 3D 모션을 함께 생성하는 JCA
Joints, Camera, Action! Co-Generating 3D Motion and Video for Arbitrary Rigs
무엇인가
영상 생성 모델은 이제 원숭이가 가로대를 뛰어넘는 장면을 그럴듯하게 만들어내지만, 그 결과는 픽셀일 뿐이다. 같은 점프를 3D 장면에 놓인 원숭이 리그에 재생하려면 영상과 일치하는 3D 모션과, 그 모션을 영상이 묘사하는 장면에 등록하는 카메라 변환이 함께 필요하다. 기존 연구는 사람 스켈레톤만 다루거나(UniMo, EchoMotion, CoMoVi), 생성된 2D 포즈 맵에서 3D 모션을 삼각측량하는 우회 경로(AnimaX)를 택했다. 전자는 비디오 백본을 확장한 수십억 파라미터 규모의 모션 브랜치를 붙이고, 후자는 다시점 비디오가 있어야 학습이 가능하다. 이 논문은 임의의 리그에 대해 영상, 3D 모션, 카메라를 한 번에 공동 생성하는 JCA를 제안한다.
어떻게 동작하나
구조의 핵심은 두 모델을 분리해 둔다는 점이다. 모션 쪽은 리그를 방향성 트리 그래프로 보고, 조인트별로 6D 회전과 3D 위치, 그리고 프레임 간 변화량을 합쳐 18채널로 표현한다. 리그 인코더는 조인트 이름(비디오 모델의 동결된 텍스트 인코더로 임베딩), 레스트 포즈 기하, 참조 이미지에서의 2D 위치, 루트·체인·리프 지시자를 합쳐 조인트별 디스크립터를 만들고, 본을 따라 양방향으로 전파하는 그래프 어텐션과 전체 자기어텐션을 거쳐 스켈레톤 위상을 반영한다. 모션 디노이저는 프레임×조인트 토큰에 대해 전역 자기어텐션과 프레임 내 그래프 어텐션을 함께 수행하는 트랜스포머로, 텍스트 크로스어텐션과 시간 로터리 임베딩을 쓴다. 이 모션 네트워크는 영상 없이 모션 데이터만으로 먼저 사전학습된다.
무엇과 다른가
이렇게 따로 학습한 모션 디노이저를 사전학습된 Wan2.2 I2V-A14B 비디오 백본에 연결하는 것이 제로 초기화된 양방향 크로스어텐션 '브리지'다. EchoMotion식으로 비디오 백본 40개 블록 중 절반에 모션 전용 가중치와 조인트 어텐션을 넣으면 약 7B 파라미터가 추가되지만, JCA가 더한 모션 디노이저·리그 인코더·로컬라이제이션 헤드·브리지를 모두 합쳐도 178M이다. 브리지 출력 사영을 0으로 초기화해 공동학습 초기에는 두 사전학습 모델이 각자 하던 대로 동작하게 한다. 추론 시에는 브리지를 켠 예측과 끈 예측의 차이를 증폭하는 '브리지 가이던스'를 적용해 영상-모션 일치도를 높이며, 이 때문에 디노이징 스텝마다 순전파가 네 번 필요하다. 여기에 더해 각 3D 조인트가 영상 프레임 어디에 나타나는지를 예측하는 로컬라이제이션 헤드를 학습시켜 2D-3D 대응을 얻고, 이를 이용해 클립당 하나의 정적 원근 카메라(회전·이동·초점거리 추정, 주점은 이미지 중앙 고정)를 피팅해 모션을 장면에 정합한다.
어떻게 쓰나
학습 데이터는 원래 존재하지 않아 직접 구축했다. 사람 영상은 장면과 상호작용이 풍부하지만 스켈레톤이 하나뿐이고, Objaverse·Objaverse-XL의 애니메이션 자산은 리그는 다양하지만 동작이 단순하고 흰 배경 렌더라 장면 맥락이 없다. 저자들은 자산을 임시 설정에 렌더한 뒤 비전-언어 모델로 동작을 묘사하고 어울리는 환경을 제안하게 하고, 생성형 비디오 편집기(Bernini)로 그 환경을 클립에 입혔다. 편집이 피사체 실루엣이나 이미지 공간상의 움직임을 바꾸면 3D 라벨이 무효가 되므로, 편집 전후 마스크를 비교하고 VLM으로 물리적 타당성을 검사하며 카메라가 정적이었는지도 확인해 실패 클립은 새 시드로 재생성했다. 이렇게 만든 OiV 데이터셋은 43K 자산에서 나온 118K 영상이고, 여기에 사람 영상 60K 클립과 키네마틱 모델로 모션을 얻은 로봇 영상 27K 클립을 더해 약 200K 영상-모션 쌍을 확보했다. 모션 단독 사전학습에는 조인트 수·연결성·기하가 다른 무작위 휴머노이드 리그로 리타게팅한 사람 모션을 포함한 125K 시퀀스를 추가로 사용했다.
전제와 한계
실험은 Puppeteer 테스트셋에서 자산 20개를 뽑아 자산당 5개 프롬프트를 생성한 100개 쌍으로 진행됐다. 비교 대상은 리그 없이 메시 정점을 애니메이션하는 AnimateAnyMesh, ActionMesh와 정답 리그를 쓰는 Puppeteer였고, AnimaX는 코드·가중치·평가 벤치마크가 공개되지 않아 제외했다. 멀티모달 심사 모델로 측정한 프롬프트 준수 점수는 58.4로 가장 강한 베이스라인 43.4를 크게 앞섰고, 메시 왜곡은 가장 낮았으며 동적 정도는 가장 높았다. 사람 스켈레톤에 대해서는 HumanML3D 테스트 분할의 프롬프트 250개로 EchoMotion과 비교했는데, SMPL로 10K 스텝 파인튜닝한 JCA SMPL-FT가 동기화 지표 세 개 모두에서 앞서며 PA-MPJPE를 26%, SA-MPJVE를 37% 줄였고 해부학적 타당성도 .93 대 .73으로 높았다. 다만 EchoMotion의 동적 정도가 더 높은데, 그중 상당 부분은 카메라 움직임(비정적 카메라 비율 74% 대 약 45%)일 수 있다고 저자들은 짚는다. 절제 실험에서는 두 브랜치를 완전히 끊으면 영상-모션 동기화가 나빠졌고, 브리지 가이던스(ω=2)가 연결만 한 경우보다 동기화를 더 개선했다. 모션 단독 체크포인트와 비교하면 공동학습 모델이 프롬프트 준수를 51.6에서 58.4로, 동적 정도를 .72에서 .83으로 올렸다.
개발자 관점에서 이 모델은 세 가지로 쓰인다. 텍스트에서 리그 애니메이션과 영상을 동시에 뽑는 생성, 영상을 넣고 해당 리그의 모션을 복원하는 video-to-motion, 3D 궤적과 리그를 고정하고 영상만 생성하는 motion-to-video다. 한쪽 모달리티를 노이즈 0으로 고정하고 다른 쪽만 디노이징하면 조건부 생성이 되기 때문이다. 추가 학습 없이 RGB 키프레임 몇 장으로 그 사이의 3D 리그 궤적과 영상을 함께 생성하는 키프레임 제어도 지원한다. 실무에서 확인할 점은 카메라 피팅이 클립당 정적 카메라를 가정한다는 것, 그리고 모션 모델이 3D 장면 기하를 직접 보지 않는다는 것이다.
저자들이 밝힌 한계도 분명하다. 정합 절차가 추론 시 정적 카메라를 전제하므로 움직이는 카메라로 확장하는 일이 남아 있다. 학습 리그가 양족 보행에 치우쳐 있는데, Objaverse 캐릭터 대부분이 두 발이고 동작 범위도 좁으며 추가 모션 데이터도 휴머노이드 모션이다. 장면은 오직 영상을 통해서만 모션에 도달하므로 접촉을 강제하거나 관통을 막는 장치가 없고, 피사체가 상호작용하는 물체는 영상에서는 움직이지만 3D로 복원되지 않으며, 클립마다 리그 하나만 애니메이션한다.