NVP(3) - Ideas Proposal

구명규·2023년 3월 30일
0

'23 Individual Research

목록 보기
8/19
post-thumbnail

  Pixel-wise implicit neural representation for video 모델인 NVP에서, 압축 성능을 향상시킬 수 있는 새로운 아이디어를 생각해내야 한다... '압축 성능'이라 하면, 결국 어느 정도의 PSNR score를 유지하며 BPP 값을 최대한 떨어뜨려야 한다. 물론 동일한 BPP 값, 즉 같은 parameter 수로 더 높은 PSNR score를 얻어낼 수도 있겠지만, PSNR score는 어느 정도 수준으로 수렴할 것이기 때문에 모델의 parameter 수를 최소화하는 것이 핵심이겠다.

  그럼 모델을 하나씩 뜯어가며 개선사항이 있을지 생각해보자고.


Learnable Latent Keyframes + Sparse Positional Features

gθ(x,y,t)=(zxy,zxt,zyt,zxyt)g_\theta(x,y,t)=(z_{xy},z_{xt},z_{yt},z_{xyt})

  C=4C=4차원의 2D latent code는 LL-level multi-resolution structure로 구성되어 있다. 논문에서는 L=16,γ=1.35,H1=W1=16L=16, \gamma=1.35, H_1=W_1=16으로 설정하였으므로 16×1616\times 16, 21×2121\times 21, ..., 1442×14421442\times 1442개의 latent code들이 존재하며, 각 layer에서의 latent vector는 가장 인접한 이들을 linearly interpolate하여 구한다. 이런 2D grid가 xy, xt, yt 각각의 평면에 대해 정의되는 것이고.

1. 2D latent grid를 2n×2n2^n\times 2^n size로 크게 하나만 정의해두고 (혹은 2(n1)×2n2^{(n-1)}\times 2^n) latent vector는 해당 grid의 latent code를 선택적으로 사용하여 구한다면 multi-layer로 구성하지 않아도 되지 않을까? 가장 dense하게는 모든 latent code를 사용하고, 그 다음엔 (2i,2j)(2i, 2j)의 grid만, 그 다음은 (4i,4j)(4i, 4j)의 grid만 사용하는 식으로 말이다. 성능이 많이 떨어지려나..?

  반면 D=4D=4차원의 3D latent code는 H×W×S(=300×300×600)H\times W\times S(=300\times 300\times 600)만큼 정의되어 input coordinate와 가장 인접한 h×w×s(=3×3×1)h\times w\times s(=3\times 3\times 1)개의 code들을 concatenate하여 latent vector를 구성한다.

2. 무조건 정사각형, 정육면체 형태의 latent grid를 선언하지 말고 video의 resolution, frame 수에 맞도록 조절하면 더 compact하게 정보를 저장할 수 있지 않을까?


Modulated Implicit Function

hϕ(zxy,zxt,zyt,zxyt)=(r,g,b)h_\phi(z_{xy},z_{xt},z_{yt},z_{xyt})=(r,g,b)

  C×LC\times L차원의 2D latent vector와 D×h×w×sD\times h\times w\times s차원의 3D latent vector를 concatenate한 최종 latent vector를 K(=3)K(=3)-layer MLP에 대입한다. Latent vector zz가 입력되는 modulator는 LeakyReLU를, time tt가 입력되는 synthesizer는 SirenNet을 사용하는데, 여기선 크게 손볼 수 있는 부분이 없는 것 같다.


Training Method

모델 구조 상으로는 앞선 두 가지 말고는 생각이 나질 않는다. 그 외의 학습 방법에 있어 개선시켜볼 수 있는 점은...

3. L2 loss에서 L1+SSIM loss로 바꾼다면? Frame-wise representation 논문에서는 대부분 L1-SSIM loss를 사용하던데, 여기서도 pixel-wise지만 training dataset을 1,245,184개의 random points의 batch 단위가 아니라 frame 단위로 입력한다면 더 빠른 수렴속도를 기대해볼 수 있지 않을까?

++ 말고는... Motion flow 같은 다른 개념을 도입해야 할 것 같은데, 이건 다른 후속 논문들을 읽어봐야 할 것 같다.

  • 실제 codec보다 더 높은 compression 성능을 보이고 있는 FFNeRV 논문의 모델은 frame-wise representation에 flow map을 통한 guidance를 접목한 아이디어로, pixel-wise representation에 적용시키기엔 구조적 한계가 존재하는 것 같다. 아무리 고민해봐도 연결고리가 생각나지 않음...
profile
K'AI'ST 학부생까지의 기록

0개의 댓글