Skip to main content

비디오에서 객체 리타이밍 입문

이 글은 “Layered Neural Rendering for Retiming People in Video”에서 다루는 방법을 살펴봅니다. 이를 통해 동작의 속도를 조절하고, 조작하며, 편집하는 등 다양한 리타이밍이 가능합니다. 이 글은 AI 번역본입니다. 오역이 의심되는 부분은 댓글로 자유롭게 알려 주세요.
Created on September 15|Last edited on September 15
비디오에서 사람의 움직임 타이밍을 조절하는 능력은 편집자가 흥미로운 효과를 만들고 사건에 대한 인식까지 바꾸는 데 도움을 줍니다. 사람의 동작을 빠르게 하거나 느리게 하여 시간을 바꾸는 비디오 조작은 영화에서 널리 사용됩니다. 박진감 넘치는 장면에서 우리가 좋아하는 액션 영화 주인공 주변의 악당들이 시간이 멈춘 듯 얼어붙는 장면을 얼마나 자주 보았나요?
이 보고서는 여러 사람이 움직이는 임의의 자연 영상에 적용할 수 있는 딥러닝 기반 방법을 살펴봅니다. 결과물은 사람들의 움직임 타이밍이 수정된, 사실적인 비디오 재렌더링입니다.

논문 | 프로젝트 웹사이트



목차



비디오에서 동작 리타이밍 입문

왜 이것이 어려운 문제일까?

비디오에서 사람의 동작을 리타이밍하는 일은 어렵습니다. 앞서 언급했듯이 리타이밍은 영화에서 널리 쓰이지만, 지금까지는 주로 캐릭터 애니메이션의 문맥에서 연구되어 왔습니다. 캐릭터 애니메이션에서는 관절 집합의 동작을 시간적으로 다시 맞추는 것이 핵심 과제입니다. 그러나 이러한 관절들 사이에는 시공간적 상관관계가 존재합니다. 보통 이러한 캐릭터에 대해서는 정답 3D 모델도 함께 제공됩니다.
사람의 타이밍을 조작하는 모습을 상상해 보세요 자연스러운 비디오입니다. 여기에는 단순히 관절을 움직이는 것을 넘어 몸 전체의 움직임이 포함됩니다. 게다가 사진처럼 사실적인 고품질 리타이밍 효과를 만들려면 사람의 그림자, 반사, 물 튀김 등 장면 속 다양한 요소들도 함께 고려해야 합니다. 상관된 사람의 동작과 함께 움직이므로 올바르게 리타이밍해야 합니다.
비디오는 한 사람에만 국한되지 않습니다. 피사체들 간의 상호작용을 함께 다뤄야 합니다. 프레임 간의 사소한 불일치와 같은 작은 오류도 시각적 아티팩트로 나타날 수 있습니다.

제안된 방법이 유망한 이유는?

  • 이 방법은 비디오마다 개별적으로 최적화되어, 각 프레임을 여러 개의 레이어로 분해합니다(RGBA 컬러 이미지로 구성되며, 이에 대해서는 뒤에서 자세히 설명합니다). 최적화 과정은 시간에 따라 각 RGBA 레이어가 비디오 속 특정 인물 또는 인물 그룹과 연관되도록 보장합니다. 이 그룹화는 사전에 정의할 수 있으며, 최적화는 해당 제약에 묶여 수행됩니다. 레이어당 한 그룹을 유지하면 리타이밍 효과에 대해 견고한 제어가 가능합니다.
  • 대략적인 파라미터화를 사용하여 사람들 기존 도구로 획득한, 모델 자동으로 그림자, 반사 등 장면에서 사람과 상관된 요소들을 사람과 함께 묶도록 학습합니다.
  • 각 그룹마다 레이어가 존재하므로, 특정 레이어를 삭제, 복사, 보간하는 등의 간단한 레이어 조작만으로 추가적인 학습이나 처리 없이 리타이밍 효과를 만들 수 있습니다. 이는 추정된 프레임들을 사용해 표준 후면에서 전면 순서의 합성으로 원본 비디오 프레임을 재구성할 수 있기 때문입니다.
  • 이 방법은 일반적인 자연 영상에 적용 가능한많은 응용 분야가 이 방법의 혜택을 받을 수 있습니다.
논문 저자들이 링크한 영상을 확인해 보세요. 👇


제안된 방법 개요

제안된 방법은 입력 비디오를 레이어로 분해하도록 학습하는 새로운 딥 뉴럴 ��트워크에 기반합니다. 이를 통해 모델은 그림자, 반사 등과 같은 상관된 요소들과 함께 사람들의 움직임을 서로 다른 레이어로 분리해 냅니다.
제안된 모델은 비디오별로 자기지도 방식으로 학습됩니다. 전체적인 과제는 레이어를 예측해 원본 영상을 재구성하는 것입니다. 곰곰이 생각해 보면 꽤 영리한 접근입니다. 어떻게 이루어지는지 살펴보겠습니다.
  • 우선, 저자들은 다음과 같은 기성 방법을 사용했습니다. AlphaPose 그리고 DensePose 각 프레임에서 각 사람을 표현하는 그들의 기법과 결합하여.
  • 이 표현은 뉴럴 렌더러이 뉴럴 렌더러의 입력은 사람들(어떻게 하는지는 곧 설명합니다)과 정적인 배경만 포함합니다. 이 렌더러의 과제는 전체 입력 영상을 재구성할 수 있는 레이어를 생성하는 것입니다. 놀랍지 않나요? 이렇게 추정된 프레임을 사용하면 어떤 간단한 편집 기법으로도 재타이밍을 달성할 수 있습니다. 추가로, 학습된 레이어는 상관된 요소들까지 함께 포착한다는 이점이 있습니다.
    
  • 
그림 1제안된 방법 요약 출처
이제 제안된 방법의 핵심 구현 세부로 들어가 보겠습니다.

문제 정식화

입력 비디오가 주어지면 VV각 프레임을 분해하는 것이 목표입니다 TtVT_t \in V RGBA(색상 채널+불투명도) 레이어 집합으로. 이는 다음과 같이 표현됩니다:
At={Lti}i=1N={Cti,αti}i=1NA_t = \{L_t^i\}_{i=1}^N = \{ C_t^i, \alpha_t^i \}_{i=1}^N
여기에서 CtiC_t^i 는 컬러 이미지이며, αti\alpha_t^i 는 불투명도 맵입니다. 각 ithi^{th} 레이어는 다음과 연관됩니다 ithi^{th} 비디오 속 인물/그룹. 또한, Lt0L_t^0 는 배경 레이어입니다. 추정된 레이어들과 뒤에서 앞으로의 레이어 순서를 사용하면, 각 비디오 프레임은 표준 “over” 연산자로 렌더링할 수 있습니다. 이 연산은 다음과 같이 표기합니다:
I^t=Comp(At,ot)\hat I_t = Comp(A_t, o_t)
여기에서 oto_t 는 추정된 레이어들의 순서를 의미합니다. 위의 식에서의 등호는 렌더링된 프레임이 입력 프레임과 완전히 동일할 때 성립합니다.
저자들은 자기지도 학습을 영리하게 활용하여 각 프레임을 여러 레이어 집합으로 분해했습니다. 그 방법은 학습 섹션에서 살펴보겠습니다.

레이어드 뉴럴 렌더러

딥 뉴럴 네트워크 기반 아키텍처인 레이어드 뉴럴 렌더러 는 프레임을 여러 레이어 집합으로 분해하는 데 사용됩니다.
현실 세계의 비디오는 여러 가지 방식으로 분해될 수 있습니다. 전체 프레임을 담은 단일 레이어만으로도 영상을 완벽하게 분해할 수 있습니다. 그러나 이는 유용하지 않으므로, 저자들은 원하는 사람별 분해로 해를 유도할 수 있도록 뉴럴 렌더러에 제약을 부과했습니다.
렌더러의 입력은 다음과 같이 구성됩니다:
  • 사람 표현비디오의 각 사람은 하나의 인간 텍스처 아틀라스 TiT^i 그리고 프레임별 UV 좌표 맵 UVtiUV_t^i, 이는 프레임의 사람 영역 내 각 픽셀을 매핑하는 ItI_t 텍스처 아틀라스에. 사람을 표현하기 위해 ii 시간에 tt, 딥 텍스처 맵 TiT^i 을 사용하여 샘플링된다 UVtiUV_t^i 획득하기 TtiT_t^i.
  • 배경 표현배경은 단일 텍스처 맵으로 표현된다 T0T^0 전체 비디오에 대해 사용되며, 필요한 색상을 학습하는 데 활용된다. 배경에서의 샘플링은 UV 맵에 따라 수행된다 UVt0UV_t^0. 렌더러에 배경 문맥을 제공하기 위해 배경의 UV 맵을 각 개인의 UV 맵 뒤에 배치한다.
신경 렌더러는 층을 예측하여 분리된 피드포워드 패스. 이 렌더러의 입력과 출력은 다음과 같다:
  • 입력: 배경 문맥을 제공하기 위해 배경의 UV 맵은 각 개인의 UV 맵 뒤에 배치된다. 따라서 레이어의 입력은 ii 시간에 tt 샘플링된 딥 텍스처 맵이다 TtiT_t^i, 이는 사람이 구성 요소인 isi's 샘플링된 배경 텍스처 위에 배치된 샘플링된 텍스처.
  • 출력: 렌더러의 출력은 Lti={Cti,αti}L_t^i = \{C_t^i, \alpha_t^i \}. 여기 CtiC_t^i 시간에 따라 변하는 컬러 이미지이며 αti\alpha_t^i 불투명도 맵이다.
렌더러는 예측된 레이어(출력)로부터 원본 프레임을 복원하는 것을 목표로 한다.

학습

이 모델은 비디오별로 최적의 파라미터를 찾도록 학습된다. θθ. 저자들은 세 가지 손실 함수를 사용했다:
  • 가장 자명한 손실 함수는 L1L_1 이 과제는 복원 문제로 정식화되었기 때문에, 입력 프레임과 렌더링된 프레임 사이의 손실을 사용한다. 형식적으로,
  • Erecon=1KtItComp(At,ot)E_{recon} = \frac{1}{K} \sum_{t}||I_t - Comp(A_t, o_t)||
  • 이것만으로는 무작위 초기화에서 최적화가 수렴하도록 만들기에 충분하지 않다. 저자들은 학습된 알파 맵을 영리하게 유도하여 αti\alpha_t^i 레이어와 연결된 사람 세그먼트에 맞추기 위해 ii. 이는 모델의 초기 부트스트랩에만 사용되며, 최적화가 진행됨에 따라 비활성화된다.
  • Emask=1K1NtiD(mti,αti)E_{mask} = \frac{1}{K} \frac{1}{N} \sum_t \sum_i D(m_t^i, \alpha_t^i)
  • 여기에서, mtim_t^i UV 맵에서 얻은 트라이맵이다 UVtiUV_t^i, 그리고 DD 는 거리 함수이다.
  • 저자들은 불투명도에 정규화 손실도 적용했다. αti\alpha_t^i 이들이 공간적으로 희소해지도록 유도하기 위해. 형식적으로,"
  • Ereg=1K1Ntiγαti1+Φ0(αti)E_{reg} = \frac{1}{K} \frac{1}{N} \sum_t \sum_i γ||\alpha_t^i||_1 + Φ_0(\alpha_t^i)
  • 여기에서, Φ0(x)=2.Sigmoid(5x)1Φ_0(x) = 2. Sigmoid(5x) -1 알파 맵의 0이 아닌 값에 대해 천천히 패널티를 부여한다.
전체 손실은 다음과 같이 정의된다.
Etotal=Erecon+γmEmask+βEregE_{total} = E_{recon} + γ_mE_{mask} + βE_{reg}

결론

이 글은 제안된 방법의 요점을 전달하기 위해 작성되었습니다. 원문 논문에는 흥미로운 세부 내용이 가득하므로 꼭 읽어보시길 권합니다. 학습된 뉴럴 렌더러를 사용하면 입력 비디오를 여러 레이어로 분해할 수 있습니다. 이렇게 예측된 레이어들을 바탕으로, 레이어에 대한 간단한 조작만으로도 다양한 리타이밍과 편집 효과를 만들어낼 수 있습니다.
뉴럴 렌더러는 인물과 그와 상관된 모든 시공간적 시각 효과를 함께 표현한다. 여기에는 개인의 의복 움직임은 물론, 그림자와 반사처럼 까다로운 반투명 효과까지 포함된다. 이는 흥미로운 연구 주제로, 저자들은 논문 곳곳에서 기발한 아이디어들을 활용했다.
이 보고서를 통해 저자들이 무엇을 이루고자 하는지 감을 잡으셨길 바랍니다. 아래 댓글로 여러분의 생각을 남겨 주세요.


이 글은 AI 번역본입니다. 오역이 있을 수 있으니 댓글로 알려 주세요. 원문 보고서는 아래 링크에서 확인할 수 있습니다: 원문 보고서 보기