논문 요약
1. Paper Bibliography
논문 제목
Real-Time Video Super-Resolution with Spatio-Temporal Networks and Motion Compensation
저자
Caballero, Jose, et al.
출판 정보 / 학술대회 발표 정보
Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2017.
년도
2017
2. Problems & Motivations
논문에서 언급된 현 VSR 연구들에서의 문제점 정리 + 관련 연구
ESPCN[33]의 아이디어와 한계
- 예전 방법들은 실시간으로 temporal correlation을 얻기 힘들었다. ESPCN이 sub-pixel convolution으로 이를 나이브하게 해결하였으나 프레임간의 의존성을 얻기 힘들었고 시간적으로 연관된 결과를 얻기 힘들었다
LR이미지를 먼저 upscale하고 input으로 넣음
- VSRNet[22]은 여러 프레임들을 input으로 넣어서 복원 퀄리티를 높였다
- 하지만 LR을 bicubic으로 먼저 upscaling한 후 비효율적인 motion compensation 방법을 사용하여 속도가 굉장히 느렸다.
비효율적인 Optical Flow와 Motion Compensation
- STN[19]은 공간을 변환을 학습하고 변형된 이미지를 만들 수 있는 CNN이다. 이를 통해 optical flow를 인코딩할 수 있었으나 이를 이용한 motion compensation에 대해서는 연구되지 않았다
참고
https://tutorials.pytorch.kr/intermediate/spatial_transformer_tutorial.html
[33] W. Shi, J. Caballero, H. Ferenc, T. Johannes, A. P. Aitken, R. Bishop, R. Daniel, and Z. Wang. Real-time single image and video super-resolution using an efficient sub-pixel convolutional neural network. 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), pages 1874– 1883, 2016.
[22] A. Kappeler, S. Yoo, Q. Dai, and A. K. Katsaggelos. Video super-resolution with convolutional neural networks. IEEE Transactions on Computational Imaging, 2(2):109– 122, 2016.
[19] M. Jaderberg, K. Simonyan, A. Zisserman, and K. Kavukcuoglu. Spatial transformer networks. Advances in Neural Information Processing Systems (NIPS), pages 2017–2025, 2015.
3. Proposed Solutions
논문에서 제안하는 해결책들 정리
1) Sub-pixel convolution SR
- CNN의 매핑함수와 적절한 파라미터를 통해 LR이미지를 SR이미지로 만들 수 있다.
- 이러한 매핑함수는 비선형적이고 L개의 레이어들을 concat하여 만들 수 있다. 각 레이어들은 weights와 biases로 이루어져있다
- Mean Squared Loss(MSE)를 최소화하는 것이 목표: LR, HR 이미지 차이 줄이기
- LR 이미지를 bicubic upsampling한 후 처리할 경우 output number of filters가 1이 된다. Sub-pixel convolution은 LR이미지가 LR인 상태로 처리할 수 있게 하며 output filters가 r^2개가 되게 한다. [33]
재정렬하는 방식: 원본 이미지가 H x W 사이즈라면 r배 업스케일링된 이미지의 사이즈는 rH x rW이다.
마지막 레이어인 sub-pixel convolution layer는 LR보다 r^2만큼 채널 수(feature map)를 늘린 다음, 한 픽셀씩 가져와 순서대로 조합해 HR 이미지를 만든다.
Pytorch의 pixel shuffle
https://pytorch.org/docs/stable/generated/torch.nn.PixelShuffle.html
[33] W. Shi, J. Caballero, H. Ferenc, T. Johannes, A. P. Aitken, R. Bishop, R. Daniel, and Z. Wang. Real-time single image and video super-resolution using an efficient sub-pixel convolutional neural network. 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), pages 1874– 1883, 2016.
2) Spatio-temporal networks
- input으로 single frame대신 연속된 frames 사용 (temporal 차원을 고려)
- Eq. (1)이 Eq. (4)로 표현할 수 있게된다
- Fig 4를 보면 Single frame을 사용한 것 보다 multi frames를 사용한 것이 성능이 좋음을 알 수 있다. Early fusion이기 때문에 초반에 합쳐져서 사용 프레임 수에 따른 complexity 차이는 그렇게 크지 않다. E7는 성능이 떨어졌는데 이는 netoworks에게 너무 complex한 문제가 되어 temporal dependencies가 noise처럼 작용해 성능을 저하시켰기 때문이다.
1) Early fusion
- temporal depth와 input layer의 수를 같게 함. (temporal depth가 1이 된다)
- temporal information이 첫 레이어에서 무너지며 처음 input을 제외한 나머지 연산은 Single Image SR과 다를바 없음
2) Slow fusion
- 계층적으로 합치는 방법. 어느정도 temporal information이 남아있으며 video classification 부분에서 early fusion보다 좋은 성능을 보였다[23]
3) 3D convolution
- dimension 차원에서 layer weight를 공유하도록 한다
- features를 재사용 할 수 있다
- 여기서 시간적 특징과 필터 features의 배치가 Fig 2b와 비교하여 바뀐다
- (7 layers) Slow fusion은 early fusion보다 빠른데 그 이유는 초기 레이어에서 features를 적게 사용하기 때문이다.
- (9 layers) 더 적은 complexity로 slow fusion이 early fusion만큼의 정확도를 얻었다. 이는 깊은 네트워크에서는 slowly fusing하는 것이 효과적임을 보여준다
- weight sharing은 accuracy를 감소시켰는데 이는 network parameters가 줄어서이다. 하지만 network features를 재사용할 수 있는 만큼 프레임 별 더 적은 연산이 필요함을 의미한다
[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.
[23] A. Karpathy, G. Toderici, S. Shetty, T. Leung, R. Sukthankar, and L. Fei-Fei. Large-scale video classification with convolutional neural networks. In IEEE Conference on Computer Vision and Pattern Recognition (CVPR), pages 1725–1732, 2014.
3) Spatial transformer motion compensation
- Optical flow는 reference frame과 neighbor frames 사이의 고유한 움직임, 왜곡 등을 찾는 것이다(explicit한 방법)
- Flow는 pixel-wise로 추정이 되며 픽셀들의 새로운 위치를 정할 수 있게 되는데 이 때 regular grid안에 들어가도록 다시 배치할 필요가 있다
- VESPCN에서는 flow를 구하기 위해 multi-scale 디자인을 채택했다.
- 2개의 input frames를 early fusing하여 x4 coarse flow estimation을 만든 후 x2 strided covolution으로 downscaling 한다
- coarse flow는 sub-pixel convolution으로 upscale하고 target frame과 합쳐져서 warp된다
- warp된 이미지는 coarse flow와 처음 2개의 input frames와 함께 fine flow estimation module로 들어간다
- single strided convolution(stride 2)과 x2 upscaling을 거쳐 finer flow map을 얻는다
- 마지막으로 coarse flow와 fine flow를 더한 total flow와 target frame을 warp해서 final motion compensated frame을 얻는다
- Spatial transformer가 MC를 하도록 훈련하기 위해
- transformed frame과 reference frame사이의 MSE를 최소화한다
- smooth함을 위해 flow map gradients에 Huber loss 패널티를 준다
- Spatial transformer과 SR module은 함께 end-to-end로 훈련시킬 수 있다
4. 입력의 형태
- Video samples are broken into non-overlapping subsamples of spatial dimensions 33 × 33, which are randomly grouped in batches for stochastic optimisation.
5. 시간적 정보 모델링 프레임워크
기본 프레임워크 (2D CNN, 3D CNN, RNN, etc)
- 2D CNN
구조에 기여한 바가 있다면?
- optical flow를 단순하게 계산하지 않고 학습을 통해 더 정확히 구할 수 있게 하였다
6. 프레임 정렬 방식
Implicit (암시적) or Explicit (명시적)
- explicit
추가 설명
- optical flow를 단순하게 계산하지 않고 학습을 통해 더 정확히 구할 수 있게 하였다
7. 업샘플링 방식
- pixel shuffle
8. 그 외
모델 파라미터 개수
학습 데이터
CDVL database
- 115개의 FHD 비디오 중 100개
- 30 random samples가 HR-LR 페어에서 추출되어 3000 training samples가 생김 (그 중 5%는 validation에 사용)
테스트 데이터
CDVL database
- 115개의 FHD 비디오 중 15 개
VideoSet4
- 널리 사용되는 벤치마크
논문 분석
1. 앞서 정리한 논문들에 대한 비평들 중 해당 논문에서 해결된 바가 있다면 정리
- VESPCN도 초기 논문인 만큼 다양한 구조에 대한 실험을 하였다 (SISR 대비...)
- VSRNet은 bicubic upsampling을 사용해서 LR이미지를 HR크기로 만든 후 학습하였다. 이는 컴퓨팅 비용이 많이 드는 비효율적인 방법인데 VESPCN은 이를 sub-pixel convolution으로 해결했다
- VSRNet은 optical flow를 구할 때 Druleas algorithm을 선택하여 사용했고, 적응형으로 에러에 따른 weight를 조정하였다. VESPCN은 optical flow를 spatial transformer를 통해 구할 수 있게 하였다. 이는 뒤에 있는 SR 네트워크와 end-to-end로 학습 가능다.
2. 해당 논문에 대한 비평(Critique)
1) 모듈 자체에서는 2개의 input만 받아서 아쉽
2) 여전히 early fusion?
3)
Google Scholar Link
댓글