논문 요약
1. Paper Bibliography
논문 제목
- Omniscient video super-resolution
저자
- Yi, Peng, et al.
출판 정보 / 학술대회 발표 정보
- Proceedings of the IEEE/CVF International Conference on Computer Vision. 2021.
년도
- 2021
2. Problems & Motivations
논문에서 언급된 현 VSR 연구들에서의 문제점 정리 + 관련 연구
여러가지 VSR 방법들이 나와있으나 하나의 지배적인 구조가 없다
비디오는 연속적인 프레임들을 사용하는데 그 다양한 방법은 다양하다
- Fig 2(a) iterative method: sliding window. 여러 sub-process로 구성되었다고 할 수 있다. 이는 동시에 처리할 수 있어서 병렬처리의 이점이 있다. 그러나 더 많은 프레임 정보를 가져오기 위해서는 window size를 늘려야 하고 이전에 estimate한 결과물을 사용할 수 없다는 단점이 있다 [1, 22, 25, 30, 12, 24, 29, 23, 11]
- Fig 2(b) recurrent method: 비디오 프레임을 순차적으로 처리한다. Future frame을 이용할 수 없다(???), 컴퓨팅 비용이 높다 [19, 10]
- Fig 2(c) hybrid method: 위 두 방법을 합침. hidden state를 받을 수 있으나 큰 성능 개선이 없음. 여전히 과거, 미래 hidden state에서 정보를 얻기 힘들다 [5, 27]
[1] Jose Caballero, Christian Ledig, Andrew Peter Aitken, Alejandro Acosta, Johannes Totz, Zehan Wang, and Wenzhe Shi. Real-time video super-resolution with spatio-temporal networks and motion compensation. IEEE Conference on Computer Vision and Pattern Recognition (CVPR), pages 2848– 2857, 2017.
[5] Dario Fuoli, Shuhang Gu, and Radu Timofte. Efficient video super-resolution through recurrent latent space propagation. In IEEE International Conference on Computer Vision Workshop (ICCVW), pages 3476–3485, 2019.
[10] Takashi Isobe, Xu Jia, Shuhang Gu, Songjiang Li, Shengjin Wang, and Qi Tian. Video super-resolution with recurrent structure-detail network. In European Conference on Computer Vision (ECCV), pages 645–660, 2020.
[11] Takashi Isobe, Songjiang Li, Xu Jia, Shanxin Yuan, Gregory Slabaugh, Chunjing Xu, Ya-Li Li, Shengjin Wang, and Qi Tian. Video super-resolution with temporal group attention. In IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), pages 8008–8017, June 2020
[12] Younghyun Jo, Seoung Wug Oh, Jaeyeon Kang, and Seon Joo Kim. Deep video super-resolution network using dynamic upsampling filters without explicit motion compensation. In IEEE Conference on Computer Vision and Pattern Recognition (CVPR), pages 3224–3232, 2018.
[19] Mehdi S. M Sajjadi, Raviteja Vemulapalli, and Matthew Brown. Frame-recurrent video super-resolution. In IEEE Conference on Computer Vision and Pattern Recognition (CVPR), pages 6626–6634, 2018.
[22] Xin Tao, Hongyun Gao, Renjie Liao, Jue Wang, and Jiaya Jia. Detail-revealing deep video super-resolution. In IEEE International Conference on Computer Vision (ICCV), pages 4482–4490, 2017.
[23] Yapeng Tian, Yulun Zhang, Yun Fu, and Chenliang Xu. Tdan: Temporally-deformable alignment network for video super-resolution. In IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), pages 3360–3369, June 2020.
[24] Xintao Wang, Kelvin C.K. Chan, Ke Yu, Chao Dong, and Chen Change Loy. Edvr: Video restoration with enhanced deformable convolutional networks. In IEEE/CVF Conference on Computer Vision and Pattern Recognition Workshops (CVPRW), pages 1954–1963, June 2019
[25] Zhongyuan Wang, Peng Yi, Kui Jiang, Junjun Jiang, Zhen Han, Tao Lu, and Jiayi Ma. Multi-memory convolutional neural network for video super-resolution. IEEE Transactions on Image Processing, 28(5):2530–2544, 2019.
[27] Bo Yan, Chuming Lin, and Weimin Tan. Frame and featurecontext video super-resolution. In AAAI Conference on Artificial Intelligence, pages 5597–5604, 2019.
[29] Peng Yi, Zhongyuan Wang, Kui Jiang, Junjun Jiang, and Jiayi Ma. Progressive fusion video super-resolution network via exploiting non-local spatio-temporal correlations. In IEEE International Conference on Computer Vision (ICCV), pages 3106–3115, 2019
[30] Peng Yi, Zhongyuan Wang, Kui Jiang, Zhenfeng Shao, and Jiayi Ma. Multi-temporal ultra dense memory network for video super-resolution. IEEE Transactions on Circuits and Systems for Video Technology, 30(8):2503–2516, 2020.
3. Proposed Solutions
논문에서 제안하는 해결책들 정리
- 이론적으로 neighboring LR frames는 LR space에서 basic spatial-temporal information을 주고, estimated SR output은 HR space와 관련한 temporally correlated information을 줄 수 있다 -> 둘 합쳐서 정보를 얻어야함
Omniscient Video Super-Resolution
- 현재와 미래에서 추정한 SR output을 추가로 도입하면 어떨까?: 이는 한번으로는 불가능
- two sub-networks: precursor network Net_p, successor network Net_s
1) 먼저 Net_p가 LR frames를 통해 SR frames와 hidden states를 모든 time steps에 대해 만든다
2) 그 다음 Net_s가 LR frames와 estimated hidden states를 이용해 SR frames를 만든다
3) 마지막으로 그 둘을 더해 final SR output을 만든다
- 방향에 따라 Local omniscient VSR (LOVSR)과 Global omniscient VSR(GOVSR)로 나눌 수 있다
- Local은 방향이 하나인 uni, Global은 양쪽인 bi
- Local은 future frame이 얼마 없는 Online 실시간 상황에 사용할 수 있다
Network Design
- Omniscient framework에서 정확히 정해진 generator network는 없지만 논문에서는 progressive fusion residual block(PFRB)를 사용하여 구성하였다
- 3가지 채널로 구성, 각각 past, present, future 정보를 포함한다
1) 하나의 conv layer를 사용해 LR frame과 hidden state를 합쳐 feature를 얻는다. (3개의 채널이므로 3 features)
2) residual blocks에서 각각, 합쳐져서 (2가지 방법 모두) features를 추출한다. 이렇게 하면 inter, intra 정보 둘다 얻을 수 있다
3) 마지막으로 3개의 채널에서 추출한 features들을 concat한 후 3x3 conv layer를 통해 updated hidden state를 얻는다
4) updated hidden state를 upscale해서 precursor net에서 나온 결과를 더해 최종 결과를 만든다
Precursor network
Successor network
Final Output
- Net_s는 Net_p를 상속하기에, Net_p가 low-frequency학습을 중점으로 하고 Net_s가 high-frequency 디테일을 중심적으로 얻게 한다
def forward(self, x, start=0):
B, C, T, H, W = x.shape
start = max(0, start)
end = T - start
sr_all = []
pre_sr_all = []
pre_ht_all = []
ht_past = torch.zeros((B, self.bf, H, W), dtype=torch.float, device=x.device)
# precursor
for idx in range(T):
t = idx if self.kind == 'local' else T - idx - 1
insert_idx = T + 1 if self.kind == 'local' else 0
it = generate_it(x, t, self.nf, T)
it_sr_pre, ht_past = self.precursor(it, ht_past, None, None)
pre_ht_all.insert(insert_idx, ht_past)
pre_sr_all.insert(insert_idx, it_sr_pre)
# successor
ht_past = torch.zeros((B, self.bf, H, W), dtype=torch.float, device=x.device)
for t in range(end):
it = generate_it(x, t, self.nf, T)
ht_future = pre_ht_all[t] if t == T - 1 else pre_ht_all[t + 1]
it_sr, ht_past = self.successor(it, ht_past, pre_ht_all[t], ht_future)
sr_all.append(it_sr + pre_sr_all[t])
sr_all = torch.stack(sr_all, 2)[:, :, start:]
pre_sr_all = torch.stack(pre_sr_all, 2)[:, :, start:end]
return sr_all, pre_sr_all
- Carbonnier Loss 사용. α는 precursor network의 weight 조정, ε는 0.001
4. 입력의 형태
- Input patch size 64x64
- ablation study에서는 7frames만 사용
- 최종 모델에서는 추가 프레임 처음과 끝에 2개씩 추가
5. 시간적 정보 모델링 프레임워크
기본 프레임워크 (2D CNN, 3D CNN, RNN, etc)
- RNN
구조에 기여한 바가 있다면?
- Future hidden state를 사용할 수 있게함
6. 프레임 정렬 방식
Implicit (암시적) or Explicit (명시적)
- implicit
추가 설명
-
7. 업샘플링 방식
- pixel shuffle
8. 그 외
모델 파라미터 개수
- OVSR-4+2-56: 1.897 (M)
- OVSR-8+4-56: 3.480 (M)
- OVSR-8+4-80: 7.062 (M)
학습 데이터
MM522
- 522 32-frame sequences
Vimeo-90K
- public dataset
테스트 데이터
Vid4, UJDM10
- for MM522
Vimeo-90K-T
- Vimeo test dataset
논문 분석
1. 앞서 정리한 논문들에 대한 비평들 중 해당 논문에서 해결된 바가 있다면 정리
- 이전에 BasicVSR은 bidirectional한 방법을 사용하고 flow를 feature에 warp했었다. OVSR은 implicit하게 해결
2. 해당 논문에 대한 비평(Critique)
1)
2)
3)
Google Scholar Link
GitHub
https://github.com/psychopa4/OVSR
댓글