[논문 리뷰] BasicVSR++: Improving Video Super-Resolution with Enhanced Propagation and Alignment

김소영·2025년 7월 25일

paper-review

목록 보기
4/7

Abstract

  • BasicVSR의 novelty : bidirectional propagation + feature alignment
  • BasicVSR++의 novelty
    1. second-order grid propagation
    2. flow guided deformable alignement
    • 잘못 정렬된 비디오 프레임들의 spatiotemporal 정보를 더 효과적으로 사용
    • BasicVSR에 비해, 비슷한 연산 제약 조건 하에 향상된 성능을 보임


1. Introduction

  • VSR : 잘못 정렬된 비디오 프레임을 보완하는 정보를 모으는 문제 존재
  • 위 문제를 해결하기 위해 제안된 방안
    1. Sliding-Window
      • 짧은 temporal window 내에서 프레임 사용
    2. Recurrenct
      • 잠재 feature를 전파하면서 장기 dependency 사용
      • Sliding Window 방식에 비해 더 compact한 모델
      • 장기 정보 전달 및 정렬된 feature의 문제들이 여전히 존재
  • BasicVSR
    • 일반적인 VSR 파이프라인을 4가지 구성 요소로 요약
      • Propagation, Alignment, Aggregation, Upsampling
    • 제안 ① Bidirectional Propagation
      ② Feature Alignment
    • 간단하지만 강력한 backbone
    • 문제 : 간단한 디자인이 Information Aggregation의 효능을 제한함
      • 세심한 디테일을 복원하기 힘듦
      • 특히, 가려지거나 복잡한 부분을 다루기 힘듦
    • 문제를 해결하기 위해서는, propagation과 alignment 에 대한 refined designs 필요
  • BasicVSR++
    1. Second-order Grid Propagation (2차 grid 전파)

      • BasicVSR의 2가지 한계 해결 ① 프레임이 아닌, Grid 형태로 Bidirectional Propagation을 더 적극적으로 사용
        2차 연결도 고려하여, 더 먼 프레임의 정보까지 활용 (원래는 직전 프레임만 활용)
      • 프레임 간 정보 흐름 개선
      • 가려지거나 정교한 디테일 복원 성능 개선
    2. Flow-Guided Deformable Alignment
      - BasicVSR의 한계
      - 프레임 간 temporal alignment에 optical flow를 사용해 좋은 성능을 보이지만,
      optical flow는 가려진 영역에 취약 → 부정확한 흐름 추정은 복원 성능 저하시킴
      - 대안 : Deformable Alignment
      - Deformable Alignment (DCN)
      - VSR에서 높은 성능을 입증함
      - 문제 : DCN의 offset을 처음부터 전부 학습할 필요 → 어렵고 불안정한 학습
      - Deformable Alignemnt (DCN)의 문제 해결 → 안정적인 학습
      - optical flow로부터 얻은 base offset 먼저 사용
      - residue(잔차)만 학습해 offset 보정

      ⇒ 제안된 2가지 요소 덕분에, 더 가벼운 backbone을 사용하면서도, 성능 향상



2. Related Work

Recurrent Networks

  • 다양한 비디오 작업에서 순환 구조 사용됨
  • RSDN
    • Unidirectional Propagation (과거→현재)
    • Recurrent Detail Structural Block & Hidden State Adaption Module
    • 외형 변화 / 오류 누적에 강함
  • BasicVSR
    • Bidirectional Propagation : Unidirectional 보다 temporal feature를 더 잘 활용
    • Feature Alignment : 관련도가 높지만 잘못 정렬된 feature에 효과적
  • 위 연구는 BasicVSR를 주요 비교 대상으로 삼음

Grid Connections

  • 기존 Grid-like 설계
    • 다양한 비전 task에 사용
    • multi-scale 사용 O : 이미지/feature를 여러 해상도로 분해
    • fine & coarse한 정보 동시에 포착하기 위해 해상도 간 grid 연결
  • BasicVSR++
    • multi-scale 사용 X
    • multi-scale 대신, 시간 축에서 bidirectional propagation을 위해 grid 구조 설계
    • 여러 프레임을 grid 구조로 연결해, feature를 반복적으로 정제 → feature의 표현력 향상

Higher-Order Propagation

  • Higher-Order Propagation
    • gradient-flow를 개선하기 위해 연구됨
    • 단점 : temporal alignment 고려 x
  • BasicVSR++
    • Higher-Order Propagation(≈ second-order propagation)의 단점을 보완하기 위해,
      (즉, temporal alignment를 고려하기 위해)
      flow-guided deformable alignment를 second-order 환경으로 확장

Deformable Alignment

  • TDAN
    • deformable convolution을 사용해 feature-level에서 alignment 수행
  • EDVR
    • multi-scale을 도입한 PCD alignment 제안
    • PCD
      • Pyramid : multi-scale
        • feature를 여러 해상도로 alignment
        • 저해상도(coarse) → 고해상도(fine)
      • Cascading : 계단식
        • 저해상도→고해상도로 alignment하면서, 반복적으로 refine
  • Chan et al. 연구
    • Deformable Alignment의 장점 : “offset의 다양성” 덕분에, flow-based alignment보다 성능이 좋음
    • Deformable Alignment의 단점 : DCN offset의 불안정한 학습
  • BasicVSR++
    - Deformable Alignment의 단점을 해결하기 위해, Flow-Guided Deformable Alignement 사용
    Chan et al.의 Offset Fidelity LossBasicVSR++의 Flow-Guided Deformable Alignment
    - Optical Flow를 정답 힌트처럼 사용
    - Optical Flow를 Loss Function에 넣어 DCN 학습 시 offset이 Optical Flow와 너무 멀어지지 않도록 유도
    - 추론 시 Optical Flow 사용 X → 학습 때만 도움 신호 역할
    - Optical Flow를 loss로만 쓰지 않고, DCN의 입력(base offset)에 직접 사용
    - DCN은 base offset 위에서 residue(잔차)만 학습하여 보정
    - 학습+추론 모두 Optical Flow 사용 → alignment에 직접 활용
    - Optical Flow를 base offset으로 쓰면 coarse alignment 상태에서 시작 → residue는 세밀한 프레임 간 이동만 학습


3. Methodology

3.1. Second-Order Grid Propagation

Grid Propagation

  • Bidirectional Propagation: 비디오 시퀀스 내 가능한 정보들을 최대한 이용하기 위해 사용
  • Bidirectional Propagation에서 착안해 제안
  • forward ↔ backward 여러번 전파 수행 (왔다갔다)
  • 프레임을 재방문하면서, feature 정교 보정
  • 시퀀스 전체에서 여러번 정보 추출 → feature 표현력 개선

Second-Order

  • BasicVSR의 first-order Markov property와 달리, second-order Markov chain 사용
    (BasicVSR은 직전 프레임만 고려했지만, BasicVSR++는 2번째 전 프레임까지 고려하겠다)
  • 서로 다른 시간⊕공간 정보를 aggreagate하기 때문에, occlusion과 fine detail에 강함
    • occlusion : i-1번째 프레임에는 가려져 있지만, i-2번째 프레임에서는 보일 수도 있음
    • fine detail : 동일 영역의 프레임을 반복적으로 봄

3.2. Flow-Guided Deformable Alignment

Deformable Alignment

  • 장점 : Offset Diversity
  • 문제 : 불안정한 학습 → Offset Overflow (과도하게 멀어진 샘플링 위치)
  • 대안 : “optical flow” 활용

Flow-Guided Deformable Alignment

  • offset diversity라는 장점 + 불안정한 학습 해결
  • 장점
    1. CNN은 local receptive field를 가지고 있는 반면,
      optical flow를 사용해 미리 정렬한 feature를 활용해 offset을 학습시킴
    2. residue만 학습함으로써, optical flow로부터 작은 deviation만 학습시킴
      (deformable alignment 모듈의 부담을 줄임)
    3. 바로 warped feature를 합치는 것이 아닌,
      DCN의 modulation mask 가 attention map처럼 서로 다른 픽셀에 가중치 부여 (flexibility)

과정 및 식 정리

  • 아래 설명은 forward propagation procedure만 다룸. backward propagation도 비슷함
  • 기본 구성 요소
    • xix_i : Input Image
    • gig_i : 여러 residual block들로 xix_i(input image)에서 추출된 feature
      (propagation 시작 전, 현재 시점 프레임만 보고 뽑은 feature)
    • fijf_i^j : i번째 timestep에서 j번째 propagation 브랜치에서 계산된 feature
      (propagation 이후 refined feature)
    • sii1s_{i→i-1} : i번째 프레임에서 i-1번째 프레임으로의 optical flow
  • fijf_i^j 계산하는 과정
    • 큰 과정 정리
      1. 각 LR 프레임에서 residual block을 통해 feature 추출 (현재 프레임만 활용) = gig_i
      2. Propagation
        • Grid Propagaiton : 반복적으로 propagation
          • 위 그림과 같이, backward → forward → backward → forward 이런 식으로 진행
        • 한 프레임의 feature 계산하기
          • Second-Order : 2단계 전 프레임까지 활용
          • fijf_i^j를 계산하기 위해, flow-guided deformable alignment를 활용해 fi1jf_{i-1}^jfi2jf_{i-2}^j align
          • Flow-Guided Deformable Alignment (뒤에서 설명)
      3. Pixel Shuffle을 통한 Upsampling
    • Flow-Guided Deformable Alignment 살펴보기
      • DCN for first-order propagation : 하나의 feature만 align
        • Input : gig_i, fi1f_{i-1}, sii1s_{i→i-1}
        • Warping : fi1f_{i-1}을 warping
          • Coarse Alignment
          • Input: fi1f_{i-1}, sii1s_{i→i-1} (이전 feature & 이전 feature로의 optical flow)
          • Output: fˉi1\bar{f}_{i-1} (Prealigned Feature)
        • Compute DCN offsets
          • DCN offset estimation module : 샘플링 위치 결정
            • Base Offset : Optical Flow
            • Residue
              • 현재 LR 프레임에서 추출한 피처와 warped 피처의 차이 학습
              • 두 피처 concat → convolution 적용
          • Modulation Mask : 샘플링 위치의 가중치 결정
            • CmC^m convolution으로 추출한 가중치 정보
            • 시그모이드(σ)를 사용해 0~1로 정규화
        • Unwarped Feature에 DCN 적용하기
          • D = Deformable Convolution
      • DCN for Second-Order Propagation
        • 2개의 feautre 독립적으로 정렬할 시 단점
          • 2배의 연산 → 비효율적
          • 분리된 정렬은 두 feature가 서로 정보를 보완해주지 못함
          • 결국, 동시에 정렬해야함
        • Compute DCN offsets
          • DCN offset estimation module (o)
            • CoC^o 내에 fˉi1,fˉi2\bar{f}_{i-1}, \bar{f}_{i-2} 모두 넣어줌
            • p에 따라 달라지는 값은 optical flow
          • Modulation Mask (m)
            • CmC^m 내에 fˉi1,fˉi2\bar{f}_{i-1}, \bar{f}_{i-2} 모두 넣어줌
        • Unwarped Feature에 DCN 적용하기


4. Experiments

  • Dataset

    • Train set : REDS4 / Vimeo-90K
    • Test set : REDS4 / Vid4, UDM10, Vimeo-90K-T
    • Validation set : REDSval4
  • Adam Optimizer & Cosine Annealing scheme

  • Initial learning rate

    • main network : 1×1041×10^{−4}
    • flow network : 2.5×1052.5×10^{−5}
  • Iteration : 600K

    • 첫 5000 iteration에서 flow network의 weight는 고정
  • Batch size : 8

  • Patch size of input LR frame : 64×64

  • Loss : Charbonnier loss

  • Flow Network : pre-trained SPyNet

  • 각 브랜치의 Residual Block 개수 : 7

  • Feature Channel : 64

4.1. Comparisons with State-of-the-Art Methods

Quantative Comparison

  • BasicVSR++는 모든 데이터셋에서 SOTA 성능 달성
  • EDVR(large capacity sliding-window)에 비해, PSNR이 1.3dB 향상 & 65% 적은 파라미터 수
  • IconVSR에 비해, 더 적은 파라미터로 1dB 향상
  • Lighter Version of BasicVSR++
    • BasicVSR에 비해 0.82dB 향상
    • IconVSR에 비해 0.57dB 향상

Qualitative Comparison

  • 위 결과에서 BasicVSR++는 세심한 디테일을 복원하고 있음을 알 수 있음


5. Ablation Studies

  • (B)→(C) : first-order → second-order
  • (C)→BasicVSR++ : one iteration → two iterations
  • 각 component가 PSNR에서 0.14dB, 0.46dB로 상당한 개선시킴

Second-Order Grid Propagation

  • 세심한 디테일, 복잡한 texture가 있는 부분에서는
    다른 비디오 프레임으로부터 얻은 정보를 효과적으로 합쳐야 quality 개선 가능

Flow-Guided Deformable Alignment

  • optical flow에 대해 residue만 학습하면서,
    network는 optical flow와 상당히 유사하지만 차이가 있는 offset을 결과로
  • 여러 위치의 정보 활용 → additional flexibility → better quality
  • Optical Flow만 사용하면 흐릿한 edge를 가지는 반면,
    주변으로부터 더 많은 정보를 모으면서 디테일을 더 잘 보존할 수 있음
  • Alignment Module 성능 - Without Flow : 학습 불안정 → training collapse → poor PSNR - Offset-Fidelity Loss : 학습은 안정화되었지만, BasicVSR++보다 2.17dB 성능 저하 - BasicVSR++ : optical flow를 직접 guidance로 줘, 더 나은 결과

Temporal Consistency

  • Sliding Window (e.g. EDVR)

    • ‘현재 프레임+ 주변 몇개의 프레임’으로 독립적 복원
    • 각 outputs 간에 일관성 보장 x
  • Recurrent Framework (e.g. BasicVSR)

    • outputs은 intermediate feature의 propagation과 관련됨
    • temporal propagation은 더 나은 temporal consistency를 유지할 수 있도록 도움
  • BasicVSR++ vs EDVR vs BasicVSR in temporal profile

    • EDVR(sliding-window) : 눈에 띄는 노이즈 포함
    • BasicVSR(recurrent network) : EDVR보다 더 나은 일관성, 하지만 여전히 끊김이 있음
    • BasicVSR++ : 더 풍부한 정보를 합쳐 부드러운 temporal transition을 보여줌

0개의 댓글