논문 요약
1. Paper Bibliography
논문 제목
Video Super-Resolution With Convolutional Neural Network
저자
Kappeler, Armin, et al.
출판 정보 / 학술대회 발표 정보
IEEE transactions on computational imaging 2.2 (2016): 109-122.
년도
2016
2. Problems & Motivations
논문에서 언급된 현 VSR 연구들에서의 문제점 정리 + 관련 연구
딥러닝이 아닌 SR 알고리즘은 크게 2개의 카테고리로 나눌 수 있었다.
1) Model-based: 저해상도(LR) 이미지에 추가 노이즈를 더해 blurred, subsampled된 버전의 고해상도(HR) 이미지로 모델링한다. 이후 LR을 HR로 돌리는 일은 ill-posed하므로 정규화가 필요하다.
2) Learning-based: 방대한 학습 데이터 베이스를 기반으로 LR과 HR사이의 representations를 찾거나 하나의 이미지 내에서 유사한 부분을 찾는다. 대부분 패치 단위이며 패치 하나씩 복원되기 때문에 patch edge같은 아티팩트가 생길 수 있다.
딥러닝 기반 이미지 재건
- 2016년 당시, DNN은 여러가지 classification 등 이미지 문제에 많이 사용되었지만 image reconstruction에는 많이 사용되지는 않았다
- SRCNN: Dong et al. [17]은 f x f 사이즈의 이미지 패치를 n개의 atoms가 있는 dictionary로 표현하는 것을 f x f 사이즈의 필터 n개를 이미지에 적용하는 방식으로 해석. 2개의 hidden layer와 1개의 output layer로 구성된 CNN을 이용하여 LR을 HR로 비선형적으로 매핑하는 방법 개발. (Single Image)
- patch-based video SR: Cheng et al. [20]은 fully connected layer를 사용하는 patch-based VSR 알고리즘을 소개하였다. Convolutional layer를 사용하지 않으므로 '2차원 데이터 구조'에서 정보를 얻을 수 없다.
- two stage video SR: Liao et al. [21]는 MC를 구해서 SR drafts를 만들고 CNN을 통해 합치는 방식을 제안했다. 프레임마다 수많은 MC를 계산하는데 비용이 많이 든다.
[17] C. Dong, C. C. Loy, K. He, and X. Tang, “Learning a deep convolutional network for image super-resolution,” in Proc. IEEE Eur. Conf. Comput. Vis., 2014, pp. 184–199.
[20] M. Cheng, N. Lin, K. Hwang, and J. Jeng, “Fast video super-resolution using artificial neural networks,” in Proc. 8th Int. Symp. Commun. Syst. Netw. Digital Signal Process. (CSNDSP), 2012, pp. 1–4.
[21] R. Liao, X. Tao, R. Li, Z. Ma, and J. Jia, “Video super-resolution via deep draft-ensemble learning,” in Proc. IEEE Int. Conf. Comput. Vis. (ICCV), 2015, pp 531–539.
3. Proposed Solutions
논문에서 제안하는 해결책들 정리
A. Single Frame/Image Super-Resolution
- SRCNN 구조를 기반으로 하므로 SRCNN의 설명이긴하다.
- 처음 입력은 LR 이미지 Y는 bicubic upsample을 해서 HR 크기가 되도록 한다
- 보통 이미지 분류 등에서는 네트워크에 pooling이나 normalization layer를 추가하여 '일반적인 경우'에 잘 대응하도록 한다. SR에서는 '디테일'이 중요하므로 사용하는 것은 오히려 안좋을 수 있다.
B. Video Super-Resolution Architecture
- VSR의 경우 이웃 프레임에 있는 정보들이 도움이 될 수 있다
- Video SR architecture: input에 여러 프레임이 들어간다 - previous, current, next
- 첫 번째 레이어의 크기가 single image일 때는 1 x f1 x f1 x C1 (f1 x f1는 커널 사이즈, C1는 채널 수)였는데 이전/다음 프레임이 추가로 입력되기 때문에 a)의 경우 3 x f1 x f1 x C1이 된다. b)의 경우 처음부터 합쳐지지 않기 때문에 3개의 프레임을 각자 계산하였다. 그래서 두 번째 레이어는 첫 번째 레이어 3개가 합쳐진 것이 되므로 3C1 x f2 x f2 x C2가 된다.
- 레이어를 concat하는 위치는 다를 수 있다. (a), (b), (c)를 비교했을 때 (b)가 가장 높은 PSNR을 얻었으나 비슷한 성능이다. 학습 시간의 경우 (a), (b), (c) 순으로 빨랐으며 (따로 계산하는 것이 시간이 많이 걸린다) 입력 프레임 수가 많을수록 시간이 많이 걸린다 (weights 증가!)
- VSRNet은 가장 결과가 좋았던 (b)의 구조를 하고있다. PSNR과 SSIM을 전통적인 VSR과 SISR과 비교했을 때 가장 좋은 수치를 얻었다. 하지만 Table III의 Scale 4의 경우 Bayesian방법이 더 좋았는데 이를 통해 Video SR은 더 낮은 upscale에서 더 쉬우며 높은 upscaling factor의 경우 잘못된 motion compensation 때문에 결과가 나빠질 수 있음을 알 수 있다.
C. Weight Transfer From Pretraining
- ImageNet detection dataset(400,000 images)으로 훈련시킨 SRCNN 모델을 전이학습 하기 위해 kernel width, height와 그 수를 동일하게 사용하였다. (Input의 수가 다르기 때문에 filter의 depth는 다르다)
- 이미지의 경우 M x N x C의 결과를 갖는다. 여기서 weight는 M x N x 1 x C인데 이미지는 한가지 시점(t)의 grayscale이미지만 고려하기 때문이다
- 같은 데이터가 비디오 구조로 들어간다면 아래 수식으로 나타낼 수 있다
y가 y hat으로 바뀐 것을 볼 수 있는데 이는 3개의 연속적인 프레임 yt-1, yt, yt+1을 합친 것이다. 이를 풀어 쓰면 아래처럼 나타낼 수 있다
- 수식 3에서 hv를 h라 두고 y+1와 y-1을 yt로 바꾼다고 가정하면 수식 1과 3이 같아지는 것을 알 수 있다. (수식 1은 3을 3개 더한 것)
- 그러므로 video filter weights와 biases도 1/3했다. 이는 첫 번째 컨볼루션 레이어를 적용하기 전에 입력 영상의 평균을 구한 것과 같다
- Table V는 pretraining의 중요성을 보여준다.
F. Filter Symmetry Enforcement (FSE)
- 아무리 좋은 optical flow 계산 알고리즘이라도 에러가 있을 수 있다.
- 프레임을 하나하나 SR하다보면 언젠가는 프레임들은 한번씩 t-1, t, t+1이 될 것이다. 그런 관점에서 보면 t-1 -> t와 t->t+1의 motion compensation error가 같아질 수 있다.
- 그러므로 Filter Symmetry Enforcement를 하여 reference를 기준으로 대칭되는 곳에 대한 weights를 같게 하였다.
- 200,000의 iteration 이후 FSE를 사용한 모델, 사용하지 않은모델은 같은 reconstruction error로 수렴했다. 그 결과 PSNR차이는 미묘하나 FSE를 사용했을 때 더 빨리 수렴한 것을 알 수 있다. 이는 unknown weights의 수가 줄어들었기 때문이다.
E. Motion Compensation
- 많은 optical flow 알고리즘이 있는데 VSRNet에서는 Druleas algorithm[30]을 사용했다
1) Adaptive Motion Compensation
- MC는 다음 수식을 따라 적용된다.
- r(i, j)는 reference와 neighboring 사이의 (i, j)위치의 Convex combination을 조정한다. k는 상수 파라미터이며 e(i, j)는 에러이다.
- 만약 (i, j)에서 MC error e(i, j)가 커지면 해당하는 weight r(i, j)가 작아지게 된다
[30] M. Drulea and S. Nedevschi, “Total variation regularization of localglobal optical flow,” in Proc. IEEE Conf. Intell. Transp. Syst. (ITSC), 2011, pp. 318–323.
4. 입력의 형태
1) YCbCr로 변경해서 Y channel만 사용, color부분은 그냥 bicubic
2) 5개의 연속된 프레임 추출
3) MATLAB으로 downsample 후 bicubic으로 upsample해서 LR만듬
4) optical flow를 계산해서 motion compensated frames를 만듬
5) 36 x 36 x 5 데이터 큐브를 추출: pixel variance가 0.0035를 넘지 않으면 제외
--> 결과적으로 총 900,000개의 데이터 큐브
5. 시간적 정보 모델링 프레임워크
기본 프레임워크 (2D CNN, 3D CNN, RNN, etc)
- 2D CNN
구조에 기여한 바가 있다면?
- Single Image를 Video Sequence로 확장
6. 프레임 정렬 방식
Implicit (암시적) or Explicit (명시적)
- explicit
추가 설명
- motion estimation and motion compensation
- implicit은 실제로 가져온 값은 아니지만 보충하는 느낌 / explicit은 실제로 가져온 것
7. 업샘플링 방식
- LR이미지가 HR크기로 업샘플링 되어서 모델에 들어간다
8. 그 외
모델 파라미터 개수
-
학습 데이터
Myanmar video sequence (53)
- 4K resolution (3940 x 2160) -> downscale (960 x 540)
테스트 데이터
Myanmar video sequence (6)
- 4 frames
VideoSet4
- 처음, 마지막 프레임 2개씩 스킵: 그래야지 5프레임씩 가능
논문 분석
1. 앞서 정리한 논문들에 대한 비평들 중 해당 논문에서 해결된 바가 있다면 정리
- SRCNN 구조를 기반으로 하므로 SRCNN의 장점을 가져와 비디오에 적용했다고 할 수 있다: 네트워크는 Convolutional layers로 구성되어 있어서
- input image가 아무 사이즈여도 된다
- patch-based가 아니다
2. 해당 논문에 대한 비평(Critique)
1) Filter Symmetry Enforcement (FSE)는 속도를 빠르게 할 수 있겠지만 t-1 -> t와 t -> t+1이 같아진다는 것을 잘 모르겠다
2) 픽셀 분산이 일정 수준(0.0035)을 넘지 않으면 해당 패치를 제외시켰다. 0.0035는 어디서..
3) MISR에 가까울지도
Google Scholar Link
댓글