틀린 질문에서 올바른 답이 나올 수 없다
- 최민식, 이상한 나라의 수학자 -
우리는 종종 정지된 이미지를 보면서도 그 속에 담긴 움직임을 상상하곤 합니다. 촛불이 흔들리는 모습, 바람에 나뭇잎이 바스락거리는 소리, 잔잔한 호숫가의 물결 등, 이러한 움직임은 우리의 지각 능력과 밀접하게 연결되어 있습니다. 그렇다면 이러한 자연스러운 움직임을 컴퓨터가 스스로 모델링하고 생성할 수 있다면 어떨까요? "Generative Image Dynamics" 논문은 바로 이러한 질문에서 시작되었습니다.
이 논문에서는 우리가 자연에서 관찰할 수 있는 움직임을 모델링하는 데 집중합니다. 특히, 앞서 언급했던 자연스럽게 반복되는 움직임을 모델링하는 데 초점을 맞추고 있습니다. 단순히 움직임을 예측하는 것을 넘어, 사용자의 상호작용에 반응하는 인터랙티브 시뮬레이션까지 가능하게 하는 것이 이 논문의 핵심 목표입니다. 이러한 목표를 달성하기 위해 이 논문에서는 스펙트럴 볼륨(Spectral Volume) 이라는 새로운 모션 표현 방법을 도입하고, 이를 diffusion model과 결합하여 효과적으로 모델링하고 있습니다.
스펙트럴 볼륨(Spectral Volume): 움직임을 주파수로 표현하다
논문의 핵심 아이디어 중 하나는 이미지 내 움직임을 주파수 공간에서 표현하는 것입니다. 이를 위해 이 논문에서는 스펙트럴 볼륨(Spectral Volume)이라는 새로운 개념을 도입합니다. 스펙트럴 볼륨은 이미지 내 각 픽셀의 시간적 움직임 변화를 푸리에 변환하여 얻어진 주파수 기반 표현입니다.
즉, 각각의 픽셀이 시간에 따라 어떻게 움직이는지를 푸리에 변환을 통해 주파수 성분으로 분해하여 표현한 것입니다. 예를 들어, 바람에 흔들리는 나뭇잎의 움직임을 생각해보면, 그 움직임은 여러 주파수 성분의 조합으로 표현될 수 있습니다. 나뭇잎의 전체적인 흔들림은 저주파 성분으로, 나뭇잎 끝의 미세한 떨림은 고주파 성분으로 표현되는 것이죠. 이러한 움직임을 각 주파수 성분으로 분해하여 표현하는 것이 스펙트럴 볼륨의 핵심입니다.
$$ S(p) = FFT(F(p)) $$
수식은 픽셀 p에서의 움직임 F(p)를 푸리에 변환(FFT, Fast Fourier Transform)하여 스펙트럴 볼륨 S(p)를 얻는 과정을 나타냅니다. 여기서 F(p)는 픽셀의 움직임을 시간 축에 따라 나타낸 것이고, FFT를 통해 이 움직임을 각 주파수 성분으로 분해합니다. 즉, 복잡한 움직임을 여러 주파수 성분으로 분해하여 분석하기 위한 수식입니다. 이렇게 얻어진 S(p)는 각 주파수 성분의 진폭과 위상을 포함하는 복소수로 표현됩니다.
움직임을 주파수 공간에서 표현하는 이유는 무엇일까요? 자연 현상의 움직임은 대부분 진동 운동이나 반복 운동과 같은 주기성을 가지기 때문입니다. 이러한 주기적인 움직임은 푸리에 변환을 통해 다양한 주파수 성분으로 분해할 수 있으며, 각 주파수 성분의 진폭과 위상을 조절함으로써 다양한 움직임을 표현할 수 있습니다.
쉽게 말해, 우리가 음악을 들을 때 여러 악기의 소리가 섞여 있는 것처럼, 자연의 움직임도 여러 주파수의 진동이 섞여 있다고 볼 수 있습니다. 이러한 각 주파수 성분을 분리해서 분석하고 조작하는 것이 스펙트럴 볼륨의 핵심입니다. 따라서 스펙트럴 볼륨은 장기간에 걸친 움직임을 효율적으로 모델링하는 데 효과적인 표현 방식입니다.
Frequency-Coordinated Diffusion Model 을 이용한 스펙트럴 볼륨 예측
스펙트럴 볼륨을 얻었다면 이제 이를 예측하는 방법을 알아야 합니다. 이 논문에서는 Latent Diffusion Model을 사용하여 스펙트럴 볼륨을 예측합니다. LDM은 이미지 또는 데이터의 잠재 공간에서 점진적으로 노이즈를 제거하여 새로운 데이터를 생성하는 생성 모델입니다. LDM은 VAE(Variational Autoencoder)를 통해 입력 데이터를 잠재 공간(latent space)으로 인코딩 한 뒤, 확산 과정을 통해 노이즈를 추가하고, 디노이즈 과정을 통해 다시 복원하여 원본과 유사한 데이터를 생성하는 방식으로 학습됩니다.
확산 모델을 사용하여 스펙트럴 볼륨을 예측하는 과정을 보여줍니다. 입력 이미지를 VAE를 통해 latent space로 인코딩한 후, LDM을 사용하여 점진적으로 노이즈를 제거하면서 스펙트럴 볼륨을 예측합니다. 그림에서는 각 단계를 시각적으로 나타내어 이해를 돕습니다. 특히, 그림에서 각 블록이 2D 공간 레이어와 어텐션 레이어를 번갈아 사용하는 모습을 확인할 수 있습니다. 이는 주파수 성분 간의 의존성을 효율적으로 모델링하기 위한 핵심적인 구조입니다.
이 논문에서는 특히 Diffusion Model을 사용하여, 모션의 움직임을 표현하는 스펙트럴 볼륨을 예측합니다. 자연스러운 움직임은 다양한 주파수 성분의 조합으로 이루어져 있으며, 각 주파수 성분은 서로 긴밀하게 연결되어 있습니다. 따라서 스펙트럴 볼륨을 예측할 때 각 주파수 성분 간의 상관관계를 고려하는 것이 중요합니다.
기존에는 단일 확산 모델을 사용하여 모든 주파수 성분을 한 번에 예측하거나, 각 주파수에 대해 독립적인 확산 모델을 사용하는 방식이 있었습니다. 하지만 이 논문에서는 각 주파수 성분에 대해 독립적인 확산 모델을 사용하되, 각 확산 모델의 중간 레이어에 어텐션 레이어를 도입하여 주파수 성분 간의 의존성을 학습합니다.
이렇게 함으로써 각 주파수 성분이 독립적으로 예측되는 것이 아니라, 서로 연관된 정보를 공유하면서 더욱 자연스러운 스펙트럴 볼륨을 생성할 수 있습니다. 예를 들어, 나뭇잎의 흔들림을 모델링할 때, 저주파 성분이 전체적인 움직임을 담당하고 고주파 성분이 미세한 떨림을 담당한다면, 이 둘 간의 관계를 명시적으로 학습하여 더욱 현실적인 움직임을 예측할 수 있는 것입니다.
$$ L_{LDM} = E_{n\in U[1,N], e_n\in N(0,1)} [||e_n - \epsilon_\theta (z_n; n, c) ||^2] $$
DM(Latent Diffusion Model)의 학습 손실 함수입니다. 여기서 $e_n$은 실제 노이즈, $\epsilon_\theta (z_n; n, c)$는 확산 모델이 예측한 노이즈를 의미하며, 이 둘 사이의 차이를 최소화하는 방향으로 모델을 학습합니다. 즉, 확산 모델이 노이즈를 제거하는 과정을 모방하면서 실제 데이터를 복원하는 능력을 학습하는 것입니다.
여기서 한 가지 더 중요한 것이 있습니다. 스펙트럴 볼륨은 저주파 성분이 크고 고주파 성분이 작다는 특징을 가지고 있습니다. 만약 주파수 성분에 대한 아무런 처리 없이 그대로 사용하면 모델이 저주파 성분에만 집중하고 고주파 성분을 무시할 수 있습니다. 이러한 문제를 해결하기 위해 frequency adaptive normalization 과정이 필요합니다.
$$ S’{fj}(p) = sign(S{fj}(p)) * \sqrt{|S_{fj}(p)| / s_{fj}} $$
이 수식은 스펙트럴 볼륨 S의 푸리에 계수를 정규화하는 과정입니다. 푸리에 계수의 크기가 이미지의 크기에 따라 달라지는 문제를 해결하고, 모델 학습 시 모든 주파수에서 균등한 학습이 이루어지도록 하기 위해 주파수별로 푸리에 계수를 스케일링합니다. 즉, $s_{fj}$는 각 주파수 $fj$에 대한 푸리에 계수 크기의 95번째 백분위수이며, 이를 이용하여 푸리에 계수를 재조정하여 모든 주파수 성분이 학습에 균등하게 기여할 수 있도록 합니다. 이 과정을 통해 모델이 특정 주파수 성분에만 편향되지 않고, 전체적인 움직임을 더 정확하게 모델링할 수 있습니다.
Image-Based Rendering
자, 이제 힘들게 예측한 스펙트럴 볼륨을 눈으로 볼 수 있도록 만들어야겠죠? 이 단계를 Image-Based Rendering이라 칭합니다. 이미지 기반 렌더링은 3D 모델링 없이 2D 이미지들을 사용하여 새로운 시점의 이미지를 생성하는 기술입니다. 마치 사진들을 짜깁기하여 새로운 풍경을 만드는 것처럼, 이미지 기반 렌더링은 기존 이미지들을 활용하여 움직임을 만들어냅니다. 이 논문에서는 다음과 같은 단계를 거쳐 이미지 기반 렌더링을 수행합니다.
- 특징 맵 추출: 먼저, 입력 이미지에서 다양한 스케일의 특징 맵을 추출합니다. 특징 맵은 이미지의 중요한 특징들을 추출한 것으로, 이미지의 윤곽선, 질감, 색상과 같은 정보를 포함합니다. 이 특징 맵들은 마치 이미지의 뼈대와 같은 역할을 합니다.
- 움직임 텍스처 적용: 다음으로, 예측된 스펙트럴 볼륨을 기반으로 움직임 텍스처를 생성합니다. 움직임 텍스처는 각 픽셀이 시간에 따라 어떻게 움직이는지를 나타내는 벡터 정보의 집합입니다. 이 움직임 텍스처는 마치 그림의 움직임을 표현하는 화살표와 같은 역할을 합니다.
- 특징 맵 변형(Warping): 생성된 움직임 텍스처를 사용하여 특징 맵을 변형합니다. 이 과정은 마치 지도 위에 화살표를 따라 움직이는 것처럼, 특징 맵의 픽셀들을 움직임 텍스처에 따라 이동시키는 것입니다.
- 이미지 합성: 마지막으로, 변형된 특징 맵을 이미지 합성 네트워크에 입력하여 최종적으로 애니메이션된 이미지를 생성합니다. 이 단계는 마치 화가들이 물감을 덧칠하고 혼합하여 그림을 완성하는 과정과 유사합니다.
여기서 핵심은 픽셀을 1대1로 대응시키는 것이 아니라, 여러 픽셀의 값을 부드럽게 혼합하여 더 자연스러운 애니메이션을 생성한다는 점입니다. 만약 픽셀을 단순히 이동시키기만 하면 이미지가 찢어지거나 구멍이 생길 수 있습니다. 이러한 문제를 해결하기 위해 feature pyramid soft splatting이라는 방법을 사용합니다.
마치 물감을 흩뿌리듯이, 소스 픽셀의 값을 여러 타겟 픽셀에 가중치를 두어 분산시켜 보다 부드러운 움직임을 표현하는 것이죠. 또한, 이미지의 여러 스케일에서 특징 맵을 추출하여 움직임 텍스처를 적용함으로써, 저해상도에서는 큰 움직임을, 고해상도에서는 미세한 움직임을 표현하여 애니메이션의 디테일을 향상시킵니다.
Quantitative Results
- 낮은 FID, KID, FVD, DTFVD 점수: 논문에서 제시하는 방법이 기존의 single-image animation 방법들보다 이미지 합성 품질 (FID, KID) 및 비디오 합성 품질 (FVD, DTFVD) 측면에서 월등히 뛰어난 성능을 보임. 특히, DTFVD (Dynamic Texture Frechet Video Distance) 점수는 제안 방법이 자연스러운 동적 텍스처를 잘 생성한다는 것을 입증.
- 슬라이딩 윈도우 (Sliding Window) 평가: 슬라이딩 윈도우 FID 및 DTFVD 평가에서 제안 방법이 기존 방법들보다 시간이 지나도 영상 품질 저하가 적고, 일관적인 움직임을 유지함을 확인. 이는 제안 방법이 장기적인 움직임 모델링에 강점을 가지고 있다는 것을 의미함.
Qualitative Results
- X-t slices 시각화: 제안 방법으로 생성한 비디오의 X-t 슬라이스(시간에 따른 움직임을 시각화한 그래프)가 ground truth 비디오의 X-t 슬라이스와 가장 유사함. 반면, 기존 방법들은 움직임이 너무 부드럽거나, 비주기적이거나, 일관성이 없는 패턴을 보임.