SYDLAB_hanyang/Paper Reviews

Paper Review - Softmax splatting(2) for Frame Interpolation

빈그레 2024. 4. 2. 23:03

3. Softmax splatting for frame interpolation

 

# off-the-shelf optical flow method

: input frames 사이에서 both direction으로 F0->1, F1->0을 estimate하기 위한 방

 

#forward warping

softmax splatting 형식의 forward warping을 사용한다. 입력프레임을 직접 중간 프레임으로 forward mapping 하여 optical flow의 복잡한 연산이 필요하지 않다.

제안하는 시스템은 색상 뿐만 아니라 여러 해상도(multiple resolutions)에서의 feature space에 대한 와핑을 수행함으로써 synthesis network가 더 나은 예측을 하도록 한다.

 

//backward warping은 Ft->0과 Ft->1을 계산해야하며, t-centric optical flow를 계산하는 복잡한 과정을 포함하며 근사치에 의존해야 한다는 단점이 있다.

 

 

 backward warping (requir Ft->0, Ft->1) //t-centric optical flow forward warping

 

 

 

 


 

 

 

Softmax Splatting for Frame Interpolation

 

 

 

 

 

 

Backward warping은 딥러닝 프레임워크에서 잘 지원되지만, forward warping은 input으로부터 target image를 와핑할 때, 동시에 한점에 매핑될 수 있다는 것 때문에 프레임워크에서 직접적으로 지원되지 않는다.

 

이러한 문제를 해결하기 위해 softmax splatting이라는 새로운 방법을 제안한다.

forward warping에서 발생할 수 있는 모호성(mapping-ambiguity)을 처리하고, 해결책을 제안한다.

//z-buffering같이 여러개의 요소 중 하나를 선택하는 것 기반인데? 미분이 가능하도록 softmax를 활용한!..맞나?

 

//forward warping <=> splatting

 

 

Forward splatting 의 4가지 방법

[1]. Summation Splatting
[2]. Average Splatting
[3]. Linear Splatting
[4]. Softmax Splatting


- [1] Summation splatting
앞서 말한 mapping-ambiguity를 다루는 가장 직관적인 접근 방법은 동일 target pixel을 노리는 source pixel의 contribution을 모두 합하는 것이다.

 summation splatting
sum of all contribution from I0 to It (F0->t에 따른)  
//F0->t 가 bilinear kernel b에 의존한다 
*** bilinear kernel b : 이미지 처리에서 한 픽셀 위치에서의 값을 다른 위치로 재배치(warp)할 때 주변 픽셀 값을 부드럽게 혼합하기 위해 사용되는 함수이다.

1. 변위벡터 계산
u : 목표픽셀에 대한 원본 픽셀의  사이의 거리를 나타내는 변위 벡터
p : 목표이미지 (It) 내의 픽셀 위치 
q : 원본이미지 (I0)내의 픽셀 위치
F0->t[q] : q에서 p로 이동하기 위한 광학 흐름 벡터


2. bilinear kernel ( 변위 u에 대한 bilinear interpolation 가중치)

b(u) : 주어진 변위 u에 대한 bilinear interpolation 가중치 계산
x축에 대한 변화도와 y축에 대한 변화도의 곱으로 가중치 선정..?
변위벡터의 크기가 커질수록 값이 줄어들어 기여도가 낮아진다.
-> 원본이미지와 멀리 떨어진 목표 픽셀값이 큰 기여를 하게 되면 노이즈가 많아져 부자연스러워진다.
따라서 변위가 클수록 가중치 b(u)를 감소시켜 해당 픽셀이 목표 픽셀에 미치는 영향력을 줄인다.
(변위가 1보다 작을 때에만 양의 값을 가진다)

3. 픽셀 값 계산


목표이미지에서의 위치 p에 대한 픽셀 값
즉, source pixel들로부터 보간된 목표 이미지의 픽셀값일텐데,,! 이 값은 source image인 I0의 (target으로의 mapping을 원하는) 모든 픽셀 q의 기여도를 bilinear kernel b(u)를 통해 합산하여 계산된다.

변화도가 작을수록 b(u)가 커져서 픽셀값이 합에 더 많이 반영


4. 합산 결과
위 3번에 방법으로 계산된 target image에서의 p위치의 값은 
I0에서 F0->t를 따라 forward warped된 이미지를 나타낸다.

warping 과정


근데 이렇게 하면 다 더해지면서 밝기 불일치가 나타날 수 있다.


2,3방법은 밝기 불균형 문제를 개선하지만 여전히 겹침 처리에서는 미흡
반면 softmax splatting은 겹치는 영역에서도 물체 간 경계를 명확하게 유지하는 향상된 결과를 제공한다.


여기부터 softmax splatting 찐설명

[4] Softmax splatting
importance mask Z : 중요도 마스크로, translational invariance하다. 즉 변화가 있어도 변하지 않는다.
overlapping 되는 영역을 mask에 따라 명확하게 분리해내기 위해서는 아래와 같은 sofmax splatting을 제안한다.


다른 forward 방식들과 차별화되게 차량과 배경을 명확하게 분리했음


이러한 구조는 softmax 함수와 비슷한 개념을 사용하여 Z에 대한 변환 베타에 불변하는 특성을 가진다.
-> 여러 픽셀이 같은 위치로 매핑될 때 중요한 개념 ( 이미지의 겹치는 영역을 다룰 때 )
이 기술은 여러 픽셀이 한 목표 픽셀에 매핑 될 때 어떤 픽셀의 영향력을 강조할지 결정하기 위해 소프트맥스 함수와 유사한 가중치 할당 방식을 사용한다. (그러나 전체적인 문맥은 소프트맥스 함수와 다름..!)


만약 Z가 depth를 나타낸다면 "차량이 Z=1에 있고 배경이 Z=10에 있든" , " 차량이 Z=101에 있고 배경이 Z=110"에 있든간에 그림에서 차량과 배경은 동등하게 처리된다. //차이가 10이라는 것은 동등
즉, Z의 절대적인 값이 커지거나 작아지는 것과 관계없이 차이값에 대해서만 픽셀의 기여도가 결정된다.


한 점을 결정하는 픽셀의 기여도는 차이값에 의해서만 결정되지만,
겹치는 영역에서 각 픽셀이 갖는 상대적 중요도를 조절하기 위해 스케일 팩터로 알파를 곱할 수 있다.

작은 알파를 곱하면, 중요도의 차이를 줄여서 겹치는 픽셀들이 비슷한 기여를 하도록 만들 수 있다.
큰 알파를 곱하면, 중요도의 차이를 확 늘려서 겹쳤던 부분을 눈에 띄게 분리한다. //더 중요한 애를 훨씬 진하게

따라서 알파에 따라 분리되는 강도가 정해진다.
작은 알파는 평균을 낼 때 사용되고, 큰 알파는 z-buffering에 사용된다.
 *** z-buffering : 깊이에 따라 피셀을 정렬하는 그래픽스 처리 기법 (뭔가를 좀 더 크게 선택하는 느낌)

알파는 end-to-end 훈련을 통해 학습된다.
Z가 가지는 차이값에 의해 처리가 되는데 만약 Z=1이고, Z=10일때 차이는 9이지만,
Z에 알파 10이 붙으면 Z=10이고, Z=100이 되므로 차이가 90이 되어 더 분명히 구분이 될 것이다.

# importnace metirc
Z를 통해 I0(input frame)의 픽셀에 가중치를 부여함으로써
여러 픽셀이 I0에서 It의 동일한 target pixel로 매핑되는 경우를 해결한다. 

예로, Z는 depth를 표현할 수 있다. 하지만, depth estimation은 계산 비용이 많이들고 정확성에 문제가 있을 수 있다. 그러므로 occlusion의 measure(척도)로서 brightness constancy( 밝기 일관성 )을 사용한다.? 뭐래


//와핑된 차이를 이용
Z = 중요도 마스크

I1을 optical flow F0->1을 사용하여 backward warping(역변환)한다
 두 이미지가 시간적으로 다른 프레임에서 촬영된 것이기 때문에, 먼저 와핑을 통해 이미지간의 정합성을 맞춰준 후에 차이를 구해봄으로써 실제로 변화가 일어난 부분에 대해 명확히 파악하여 중요도 마스크를 생성한다.

노름은 픽셀 값 차이의 절대값을 총합한 

또한, soft splatting은 fully differentiable(완전 미분 가능)하여 알파 뿐만 아니라 small neural network v도 학습할 수 있다. (알파는 초기에 -1로 설정된다. )

v는 I0와 warping된 I1이미지 사이의 차이를 기반으로 중요도를 결정하는 신경망이다.
v를 사용하여 I0로부터 직접 Z를 얻을 수도 있지만, v가 converge(수렴)하지 않았다....!

softmax splatting을=frame interpolation과 다른 태스크에 적용할 때에는 중요도 mask인 Z를 조정해야한다.


[Efficiency]
 : pytorch의 backward warping은 full-HD image를 와핑하는데에 1.1ms가 걸린다. 
(표준 정규 분포 N(0,10^2) 에서 추출한 합성 광학 흐름을 사용하여)

반면, softmax splatting의 implementation은 3.7ms가 걸린다. 
Z를 계산해야하고, warping동안의 race condition(여러 연산이 동시에 같은 데이터에 접근하여 발생하는 문제)를 처리해야하기 때문에!!..