오늘은 Foley-Flow 논문! CVPR 2025 논문이다.
Abstract와 Proposed Method만 읽어보려고 한다.
0. Abstract
V에서 A를 생성할 때는 생성된 A의 semantic과 rhytmic들이 모두 V에 정확하게 대응되어야 한다.
이전 연구들에서는 먼저 contrastive learning을 통해서 AV 인코더를 정렬시키고, 그 다음에 V의 representation을 통해서 A를 생성하는 2 stage 방법을 사용했다.
하지만 ! *contrastive learing하고 **global video guidance가 semantic 정렬에는 효과적이지만 rhythmic 정렬에는 한계가 있다!
(왜? 둘 다 시간정보를 활용하지 않기 때문. 둘 다 인풋으로 V, A 가 통으로 들어)
* contrastive learning: 같은 의미를 가진 데이터는 가깝게, 아니면 멀게 학습하는 방식
** global video guidance: 전체 영상을 하나의 feature로 요약하는 방식
그래서 이 논문에서는 Foley-Flow를 제안한다.
이게 뭐냐?
먼저 masked modeling 학습을 통해서 unimodal 데이터로 pretrained된 AV 인코더를 정렬하고, 이 때 masked된 A들은 V를 보면 복원된다.
이렇게 되면 AV 인코더들이 semantic와 rhythmic 측면에서 모두 정렬되게 된다.
이후에는 마지막 단계인 A 생성을 위해서 dynamic conditional flow 모델을 설계한다.
이게 뭐냐?
Velocity flow를 기반으로 시간에 따라 변하는 video feature들을 dynamic condition으로 두고 A를 생성하는 방법이다.
이거를 위해서 masked AV alignment에서 semantic과 rhythmic이 일관되는 표현을 추출해서 video segment 단위로 temporal하게 A를 생성한다.
이런 과정을 거쳐서 나온 결과들은 여러 지표에서 기존 방법들을 크게 뛰어넘는다.
Foley-Flow가 semantic, rhytmic 측면에서 모두 잘 정렬된 A를 생성함을 알 수 있다.

3. Proposed Method
Masked AV 모델링 + generalized flow로 semantic, rhythmic적으로 정렬된 A를 만드는 Foley-Flow를 소개할거야!
3.1 Preliminaries
먼저 문제 설정하고 기호 표기 설명한 다음에 contrastive VA pretraining하고 denoising diffusion probabilistic model을 살펴볼 것이다.
Problem Setup and Notations.
목표: V와 semantically 대응되고 rhythmically 정렬된 A를 만드는 것
Audio를 A라고 하고, video를 V라고 한다. $F^v \in \mathbb R^{T_v \times D_v}$ 이고 $F^a \in \mathbb R^{T_a \times D_a}$이다.
$T_v$, $T_a$는 각각 V와 A의 시간길이이고 $D_v$, $D_a$는 각각 V와 A의 feature 차원이다.
Masked Autoencoders.
Generalized Masked Autoencoder는 unimodal representation learning에 효과적이다.
수식은 $\mathcal{L} = \| X_{mask} - \hat{X}_{mask}(X_{unmask}) \|^2$ 이다.
$X_{mask}$는 정답, $\hat{X}_{mask}(X_{unmask})$는 $X_{unmask}$를 보고 예측한 $X_{mask}$값이다.
이렇게 self-supervised 방식을 사용해서 풍부한 unimodal 표현을 학습할 수 있다.
Flow-Based Generations
Flow-Based 생성 모델들은 $z \sim \mathcal{N}(0,I)$와 같은 단순한 노이즈 분포로부터 복잡한 타겟 분포로 가는 가역적인 변환을 학습한다.
잠재변수 $z$가 주어졌을 때 $f_{\phi}$변환을 거쳐서 타겟 분포 $x$가 된다.
목표는 생성된 분포와 타겟 분포의 *KL divergence를 최소화하는 것이다.
* KL divergence: Kullback-Leibler divergence. 분포 p를 기준으로 볼 때 q가 얼마나 다른가?
수식은 $\mathcal{L}_{flow} = D_{KL}(p(x) \| p_{target}(x)) = \int p(x) \log \frac{p(x)}{p_{target}(x)} \,dx$ 이다.
Foley-Flow에서는 조건이 시간에 따라서 변하는 dynamic conditional flow를 사용했다.
3.2 Video-Audio Masking Alignment
기존의 VA 생성들은 보통 AV를 정렬하기 위해서 contrastive learning을 사용한다.
이게 global한 semantic 정렬은 잘 되지만 rhythmic 정렬을 어려워 한다. Temporal 관계를 모델링하지 않기 때문이다.
이러한 문제를 해결하기 위해서 Video-Audio Masking Alignment (VAMA)를 제안한다.
이게 뭐냐? Temporal하게 대응되는 V 피처하고 남은 A 피처를 이용해서 masked된 A 부분을 복원하는 것이다.
이렇게 하면 semantic 정렬뿐만 아니라 rhythm 정렬도 동기화되도록 할 수 있다.
V랑 A가 서로 상호보완적이라는 점을 활용하는 새로운 cross-modal masking 방법을 사용한다.
A의 일부를 가리고 $F^v$랑 $F^a_{unmask}$를 이용해서 복원하도록 한다.
이렇게 복원하는 방법이 현실세계의 노이즈 낀 A를 추론하는 상황과 비슷하다.
수식으로 나타내면 $\mathcal{L}_{VAMA} = \| F^a_{mask} - \hat{F}^a_{mask}(F^v, F^a_{unmask}) \|^2$이다.
시간 축을 기준으로 마스킹이 되고, 모델이 V와 A의 synchronization 패턴을 학습하도록 한다.
$F^a$를 query로, $F^v$를 key, value로 사용하는 cross-attention을 통해서 각각의 $F^a$에 대응되는 $F^v$의 중요도를 계산한다. 이렇게 해서 모델이 rhythmic 패턴에 집중하도록 한다.
Cross-modal 환경에서 segment 단위의 마스킹을 사용하는 것은 AV 모델의 temporal 정렬을 새로운 학습 방법이다.
3.3 Generalized Video-Audio Flow
Flow를 사용하는 모델들이 효율적인 샘플링으로 고품질 아웃풋을 내는 것으로 알려져있다.
하지만, 보통 *static condition을 사용하기 때문에 **dynamic한 특성을 포착하기에 충분하지가 않다.
* static condition: 정적인 조건. 시간 전체에 대해서 조건을 1개만 넣는 방
** dynamic한 특성: V는 시간에 따라서 장면 내용, 움직임, 리듬이 계속 변함
이를 해결하기 위해서 시간에 따라 변화하는 V를 조건으로 사용하는 dynamic conditional flow 모듈을 제안한다.
Dynamic Conditional Flow.
Generalized Dynamic Conditional Flow.
Flow-based Mapping.
Training Objective.
Efficient Inference with Conditional Flows.
Integration with Masking Alignment.
----
foley-flow하고 video-foley에서 각각 나온 모델들 성능
(video + 일부 audio) → 가려진 audio 복원
video랑 audio는 시간 길이도 다르고 어디를 봐야 할지 모름. e.g. video frame 10, audio segment 200