[논문 리뷰] Super Resolution : (DATSR) Reference-based Image Super-Resolution with Deformable Attention Transformer

Soeun An·2025년 1월 29일

Paper Review

목록 보기
4/10

논문 이름 : Reference-based Image Super-Resolution with
Deformable Attention Transformer (ECCV 2022)
원본 논문 : https://arxiv.org/pdf/2207.11938
소스 코드 : https://github.com/caojiezhang/DATSR

키워드 : Reference based Super-resolution

요약 : HR 참조 이미지를 사용하는 SR + STL + KNN 알고리즘

느낀 점 : DCN와 STL 사용하니 성능 많이 향상되지만 모델이 너무 커짐


Background

  • RefSR의 중요한 목표

저해상도 이미지와 래퍼런스 이미지 사이 대응을 맞추는 것 correspondence

HR restore에 Ref texture을 transfer을 잘 전달하는 것

  • U-Net

U-Net은 image - segementation에서 제안된 구조이다. 기존 오토인코더는 인코더 단계에서 거쳐져서 나온 저차원 정보를 그대로 디코더로 넣어서 공간적인 정보를 복원하기 어려웠다.

하지만 U-Net은 각 인코더에 나온 고차원 정보를 skip connection 넘겨 받아 공간적인 정보까지 고차원으로 복원할 수 있게 해준다.

DATSR에서는 skip connection으로 각 레이어마다 다른 scale feature을 넘겨주어서 학습하게 한다.

  • Deformable Convolution Networks

a는 기존 컨벌루션 모양으로 사각형이 고정되어 있고 b는 deformable 컨벌루션이고 데이터 모양에 맞게 필터가 변형된다. 컨벌루션에 2D offset을 추가하여 필터가 변형되고 이 오프셋은 역전파로 학습된다.





기존 컨벌루션 연산은 인풋 이미지 x에서 한 위치인 p_0에서 각 커널의 위치를 나타내주는 p_n과 가중치 w를 곱해져 다 합산하여 계산한다. R이 p_n이 된다.


DCN은 기존 컨벌루션 식에서 offset 델타 p_n이 추가되어 필터 변형이 가능하다.

DATSR

Texture Feature Encoders (TFE)

LR과 Ref 사이에 robust correspondence을 찾는 것이 중요한데, 여기서 resolution gap과 distribution gap문제가 존재한다. 아래 방법들로 gap을 줄인다.

  1. resolution gap
  • LR을 Ref 해상도만큼 up-sampling
  • encoder을 U-net 구조를 통해 3개의 scales로 계산하여 multi scale feature 뽑을 수 있다.
  1. distriubution gap
  • image data을 증강

  • contrastive learning으로 인코더를 학습, q와 k 인코더는 같지만 v 인코더는 미리 훈련되어있고 고정

데이터를 증강하고 Eq에는 증강된 LR 이미지가 들어가서
contrastive learning : 저차원 공간에 유사한 데이터들은 가깝게, 유사하지 않은 데이터들은 멀게 이미지를 인코딩
왜 v는 미리 훈련, 고정? 이유는 일관성을 뽑기 위해?
constrative learning은 어떻게 적용되나?

저해상도 이미지와 래퍼런스 이미지 대응이 잘되게 하면서 resolution, distribution 차이에 강한 multi-scale feature을 추출하고 그리고 이 피처들은 Q K V로 다음 어텐션 모듈에 사용된다.

Reference-based Deformable Attention (RDA)

RDA는 LR features에 맞춰진 어텐션 모델이고 corresopdence을 하기 위해 연관성을 찾고 texture transfer한다.

A : attention features F : LR의 features 시그마 :LR와 Ref 관련성을 계산, T : texture transfer 함수

Correspondence matching

LR와 Ref 사이 correspondence 잘 매치시키기 위해 RefAttention 제안한다.
LR와 Ref 관련성을 계산하기 위해 Q(LR(up)), K(Ref)을 패치로 주루룩 펼친다.

펼쳐진 q,k로 topK을 계산할 수 있다. topK는 q_i와 가장 관련성이 높은 k_j의 position

normalized inner product로 topk을 계산한다.

이렇게 계산된 P_i는 q_i와 가장 relevant 큰 순으로 kj들의 position이라고 볼 수 있다.
p^1_i은 qi와 가장 relevant가 큰 kj position인 것이다. Pi는 다시 말하면 그런 p들을 모아둔 것인거고
K가 1보다 클 때, 더 multiple correspondence을 찾을 수 있지만 다른 refSR과 동등하게 비교하기 위해 K=1로 설정했다.
KNN : 판별하고 싶은 data가 인접한 데이터를 k개 만큼 찾아서 다수인 data로 판별하는 알고리즘

Similarity-aware texture transfer

Deformable convolution으로 V에서 모든 k번째 p_i의 주위 texture transfer하도록 설계한다.

s^k_i : 모든 k texture대해 계산하므로 k번째에 대한 가중치
w_j : 컨벌루션 가중치
p_i : V에서 i position
델타 p^k_i : k번째 p와 첫번째 p의 차이인데 공간적인 정보를 제공해서 pi의 주위 정보들도 전송
p_j : 커널 안에서 위치 값
델타 p_j : offset
m_j : mask 값으로 만약 래퍼런스 이미지가 너무 관련이 없을 경우 texture 전송할지 말지 결정할 수 있다

offset과 mask는 learnable한 값들이어서 아래 식처럼 학습된다.

저기서 warp이 어떻게 이루어지는지?

Residual Feature Aggregation (RFA)

다른 layers에서 나온 multi scale LR feature fusion and extraction
CNN과 Swin Transformer Layers (STL)로 구성



마지막단에서는 업샘플링한 저해상도 이미지를 더해줘서 최종 SR을 만든다.

Loss function

  • Reconstruction loss : SR이 HR와 가까워지기 위해 사용

  • Perceptual loss : 단순히 픽셀 차이를 보는 것이 아니라, 이미지의 콘텐츠와 스타일을 고려

  • Adversarial loss : WGAN loss을 사용해서 SR 성능 더 높임
    sr을 넣은 식별자의 기댓값 - hr을 넣은 식별자의 기댓값

experiments/results

  • 참조 이미지의 밝기 대조 Hue 변화에 따른 C2 matching과 비교

  • 참조 이미지의 특성에 따른 실험, 참조 이미지가 연관성이 전무하여도 강건성 확보

  • 참조 이미지의 관련도에 따른 실험 L1이 제일 관련성이 높음

  • 참조 이미지의 갯수 변화 실험, User study

0개의 댓글