ref. https://medium.com/@prabhs./creating-a-frame-interpolation-model-from-scratch-using-convolutional-fusion-upsampling-5d0ed70a4447
프레임 보간(Frame Interpolation)은 비디오 처리 및 애니메이션 제작에서 중요한 기술로, 기존 프레임 사이에 새로운 프레임을 생성하여 비디오의 프레임율을 높이거나 애니메이션의 부드러움을 향상시키는 방법입니다. 이 기술은 다양한 응용 분야에서 사용되며, 특히 고속 카메라, 비디오 게임, 애니메이션, 가상 현실(VR), 증강 현실(AR) 등에서 중요한 역할을 합니다. 프레임 보간 기술은 3D 렌더링의 품질을 높이기 위해 동영상의 프레임 수를 증가시키는 데에도 활용됩니다.
비디오 프레임 보간(Video Frame Interpolation, 이하 VFI)은 연속하는 두 개의 프레임 사이의 중간 프레임을 생성하는 기술입니다. VFI는 비디오의 프레임율을 늘리는 데 주로 사용됩니다.
전통적인 VFI는 다음 두 단계로 구성됩니다:
$It+1(x,y)=It(x+u,y+v)$
여기서 It와 It+1는 각각 시간 t와 t+1에서의 프레임이고, u와 v는 x, y 방향의 이동 벡터입니다.
$\frac{\partial I}{\partial t} + \frac{\partial I}{\partial x} u + \frac{\partial I}{\partial y} v = 0$
딥러닝 기반 VFI는 2015년 처음으로 적용된 이후로 크게 발전하였습니다. 딥러닝을 사용한 VFI는 플로우 추정과 합성 단계를 포함하며, 전통적인 방법보다 더 정확하고 효율적입니다. 주요 알고리즘은 다음 두 가지로 구분됩니다
플로우 기반 알고리즘: 프레임 간의 플로우를 추정하여 중간 프레임을 생성합니다. 예로는 SuperSlomo, DAIN 등이 있습니다.
ref. SuperSlomo
커널 기반 알고리즘: 프레임 사이의 픽셀 이동을 커널 형태로 추정하여 중간 프레임을 생성합니다. 대표적으로 AdaConv와 SepConv가 있습니다.
**AdaConv(Adaptive Convolution)**는 2017년 Niklaus에 의해 제안된 알고리즘으로, 두 입력 프레임 간의 중간 프레임을 생성하기 위해 각 픽셀마다 적응적인 컨볼루션 커널을 사용합니다. CNN을 통해 픽셀 위치마다 커널을 예측하고 이를 기반으로 중간 프레임을 합성하는 방식으로, 큰 움직임이나 폐색, 급격한 밝기 변화와 같은 문제를 효과적으로 처리할 수 있습니다. 높은 정확도와 강력한 처리 능력을 제공하지만, 높은 메모리 사용량과 큰 커널 크기로 인한 연산 비용 증가라는 한계가 있습니다.
**SepConv(Separable Convolution)**는 AdaConv의 한계를 극복하기 위해 2017년 Niklaus에 의해 제안된 알고리즘으로, 2D 커널을 수직 및 수평 1D 커널로 분리하여 메모리 사용량을 줄이고 연산 효율성을 높입니다. CNN을 통해 각 위치에서 수직 및 수평 1D 커널을 예측하고 이를 사용하여 중간 프레임을 생성하는 방식으로, 메모리 효율성 및 연산 효율성을 강조하며 큰 커널 크기 처리 능력을 유지합니다. 복잡한 장면에서는 성능 저하가 발생할 수 있는 한계가 있습니다.
장점: • 메모리 사용량이 적어지고, 연산 효율성이 높아집니다. • 큰 커널 크기를 사용해도 효율적으로 처리할 수 있습니다.
한계: • 복잡한 장면에서는 여전히 성능 저하가 발생할 수 있습니다.