-
[논문리뷰] (SAN) Second-order Attention Network for Single Image Super-Resolution / CVPR 2019공부/Super Resolution 논문리뷰 2020. 3. 10. 18:17
이 논문은 2019 CVPR에 발표된 논문으로, 정체된 CNN based SR을 저자가 제시한 Second order Attention Network 구조를 사용함으로써 성능을 향상시키는 방법에대해 다루는 논문이다. 이 논문을 접하기 전, 2018 ECCV에 발표된 'Image Super-Resolution Using Very Deep Residual Channel Attention Networks' (RCAN) 논문을 이해하면 좋다.
ABSTRACT
SISR problem에 CNN이 도입되고나서부터 상당한 성능 향상을 이뤘다. 하지만, 대부분의 CNN based SISR methods 들은 wider or deeper architecture design에 집중한 나머지 intermediate layer들간의 feature correlation은 무시하여 CNN의 representational power를 저해하는 결과를 낳았다.
이러한 문제를 해결하기 위해, 저자는 더욱 강력한 feature expression과 feature correlation 학습을 위한 SAN(Second order Attention Network)을 제안한다. 특히, 새로운 학습가능한 SOCA(Second-Order Channel Attention) module은 discriminative representation의 향상을 위한 second-order feature statistics를 사용하여 channel-wise feature들을 적응적으로 rescale하기 위해 개발되었다.
더 나아가, 저자는 long-distance spatial contextual information를 수집하기 위해 non-local 연산(?)을 포함할 뿐만 아니라 점점 추상적인 feature representation을 학습하기 위한 LSRAG(Local-Source Residual Attention Group)또한 포함하는 NLRG(Non-locally Enhanced Residual Group) structure를 제안한다.INTRODUCTION
CNN based SR methods 들은 다음의 문제들에 직면해있다.
첫째로, Original LR image의 모든 정보를 사용하지 않는다.
둘쨰로, 대부분의 SR model들이 discriminative high level feature를 더욱 학습하기 위해 deeper or wider network를 만드는데에 집중한 나머지, CNN의 representational ability가 저해되어 왔다.위와같은 문제를 해결하기 위해, 저자는 더욱 강력한 feature expression 및 feature correlation 학습이 가능한 SAN(Second order Attention Network)을 제안한다. 특히, 저자는 더욱 나은 feature correlation 학습을 위한 SOCA 메커니즘 또한 제안한다. 저자의 SOCA 메커니즘은 feature들간의 상호의존성(inter dependencies)을 적응형으로(adaptively) 학습한다. 이 SOCA 메커니즘은 저자의 network가 더욱 중요한 정보를 갖는 feature에 집중하도록 도와주며, discriminative 학습 능력을 향상시킨다.
더 나아가, 저자는 NLRG structure를 long-disrance spatial contextual information을 수집하는 non-local 연산을 더욱 포함시키기 위한 구조로써 제시한다.
LSRAG structure는 LR image에서 많은 정보를 수집해내며, 충분한 저주파(low-frequency) 정보가 통과되도록 한다.
figure 1 에서는 저자의 모델이 다른 모델보다 더 나은 visual quality를 보임을 증명하며, 더 많은 image detail들이 복구된것을 확인할 수 있다.이 논문의 contribution을 요약하자면,
(1) SAN: deep Second order Attention Network, 여러 public dataset에 실험한 결과들로부터 저자의 SAN이 매우 좋다는것을 증명하였다.
(2) SOCA: Second-Order Channel Attention 메커니즘, 1차 Attention 메커니즘보다 높은 feature statistics를 고려하여 적응형으로 feature들을 rescale하는 SOCA 메커니즘을 제안한다.
(3) NLRG: Non-Locally enhanced Residual Group, 저자는 deep network 구조를 만들기 위해 NLRG 구조를 제안한다. 이 구조는, spatial contextual information을 수집하기 위한 non-local 연산을 포함하고 있다.RELATED WORKS
(1) CNN-based SR models: 이 부분은 생략하기로 한다. (CNN 구조가 깊고 넓어지며 SR이 발전해왔다는 내용)
(2) Attention mechanism: 인간에게 'Attention(주의, 집중?)' 이란, 일반적으로 인간의 시각시스템이 적응적으로 시각 정보를 처리한다는것과 의미있는(중요한) 영역에 시각을 집중한다는것을 말한다. 최근 몇년간, attention processing을 embedding 하여 다양한 분야에서의 CNN의 성능을 향상시키려는 시도가 많이 있어왔다.
image classification 분야에서 채널간의 관계를 활용하여 상당한 성능향상을 이뤄낸 SENet의 아이디어를 SR problem에 적용하여 SR의 성능을 한단계 끌어올렸는데(RCAN?), SENet은 first-order statistics 이상의 statistics 정보들은 무시한채 오직 first-order statistics (global average pooling) 정보만 활용하고 그에따라 network의 discriminative ability가 저해된다.SECOND-ORDER ATTENTION NETWORK (SAN)
(1) Network framework:
figure 2에 나오듯, SAN은 크게 4개의 파트로 구성되어있다.
shallow feature extraction, NLRG based deep feature extraction, up-scale module, and reconstruction part.
먼저, 저자는 오직 한개의 convolutional layer를 사용하여 shallow feature를 추출한다. (Eq. 1)(Eq. 2)는 NLRG based deep feature extraction을 나타낸다.
Eq. 2의 H는 NLRG 모듈을 나타내며, receptive field를 넓히기 위한 몇개의 non-local module들과 G개의(? 맞는지 모르겠다. 이해력이 부족한건지 논문 내용과 그림이 매칭되지 않는다... 코드를 봐야할듯) LSRAG 모듈들로 이루어져 있다. 따라서 NLRG 모듈은 매우 깊은 depth와 receptive field를 갖게된다. 이렇게 추출한 feature는 다음의 식(Eq. 3)으로 upscale된다.
Eq. 3의 upscale에는 여러가지 선택(transposed convolution, pixel shuffle로 많이 알려진 ESPCN의 방법 등)이 가능하며, 계산 복잡성과 성능 사이의 trade off를 잘 생각하여 알맞는 방법을 선택해야 하며, 최근의 CNN-based SR 모델들이 채택한 upscale 방법을 선택한다.(괜히 사족을 달아서 설명한 느낌. 그냥 pixel shuffle 선택했다는 말) 이후 하나의 convolutional layer를 이용해 feature를 SR image로 mapping시킨다. 따라서, 전체 SAN은 다음의 식(Eq. 4)으로 표현할 수 있다.
Loss function은 CNN-based SR에서 널리 사용되는 L1 loss를 사용하며 (Eq. 5) SGDM 으로 CNN 파라미터들을 optimize 한다.
(2) Non-locally Enhanced Residual Group (NLRG):
NLRG모듈에 대해 더 자세히 알아보자. NLRG모듈은 몇개의 region-level non-local (RL-NL)모듈과 한개의 share-source residual group (SSRG) 모듈로 이뤄져있다. RL-NL모듈은 LR feature들이 제공하는 충분한 구조 단서들과 HR nature scene의 자기유사성을 활용한다(? 의미가 잘 이해가지 않는다.).
SSRG는 Share Source Skip Connection (SSC)을 활용하는 G개의 LSRAG로 구성되어있으며, LSRAG는 source skip connection을 활용하는 M개의 간단한 residual block들로 구성되어있으며, 뒤이어 상호의존성(inter dependencies)을 이용하는 SOCA 모듈이 놓이게 된다.
Residual block을 많이 쌓는것은 deep CNN을 구성하기에 도움되긴 하지만, gradient vanishing 혹은 exploding문제 때문에 학습의 어려움과 성능향상의 병목현상을 겪는다는 문제가 있다. 따라서, 저자는 Residual block을 쌓는 대신, LSRAG모듈을 쌓을 것을 제안한다. 단순히 LSRAG모듈을 쌓는것 만으로는 좋은 성능을 기대하기 힘드므로 추가적으로 NLRG에 share-source skip connection (SSC)을 활용하여 deep network의 학습을 촉진시킴과 동시에 저주파(low-frequency) 정보들이 통과되도록 한다. g번째 LSRAG는 다음의 식(Eq. 6)과 같이 표현된다.
(Eq. 6)에서의 W는 convolution layer의 weight이며, 0으로 초기화되어 학습이 진행된다. H가 g번째 LSRAG를 의미한다.
이러한 모듈들로 구성된 SSRG는 LSRAG들 간의 정보이동을 자유롭게 해줄 뿐만 아니라, 매우 깊은 CNN이 잘 학습되게 해준다.
Region-level non-local module (RL-NL). RL-NL 모듈은 SSRG의 앞, 그리고 뒤에 붙어 LR feature들이 제공하는 충분한 구조 단서들과 HR nature scene의 자기유사성을 활용한다(? 의미가 잘 이해가지 않는다). Non-local neural network는 high-level task에서 전체 이미지의 long-range 의존성을 계산하는방법을 제시한다 (논문을 읽어봐야할듯. 참고문헌으로 달린 논문 제목은 Xiaolong Wang의 "Non-local neural networks", CVPR 2018). 하지만, 널리 사용되어온 global level non-local operation들은 다음의 이유들로 인해 성능향상에 제한이 있다고 볼 수 있다.
1) 특히나 feature의 사이즈가 매우 클때, global-level non-local operation은 받아들이기 힘들정도로 많은 연산을 요구한다.
2) SR과 같은 low-level task에서는 어느정도 적절한 근거리의 non-local operation이 수행되는것이 바람직하다는것이 경험적으로 입증되어왔다. (RCAN은 CAlayer에서 전체 이미지를 사용하는게 이상하긴했는데 그런 부분에대한 설명인것 같다.)
따라서, 높은 해상도이거나 열화된 feature의 경우, region-level non-local operation을 수행해야 한다. 이러한 이유들 때문에 저자는 k X k 격자로 나누어 처리한다. 위의 RL-NL모듈 그림을 확인하면, 격자로 나누어진 input feature를 확인할 수 있다.
Local-source residual attention group (LSRAG). SSC덕분에 충분한 low-frequency정보들은 전달된다. residual learning을 더욱 활용하기 위해 저자는 M개의 단순한 residual block을 쌓아 LSRAG 기본 구조를 정의한다. g번째 LSRAG는 다음 식(Eq. 8)으로 나타낼수 있다.
H는 g번쨰 LSRAG의 m번째 residual block을 나타내며, local source skip connection또한 사용한다(Eq. 9).
저자는 더욱 discriminative representation을 얻기 위해 LSRAG뒤에 SOCA메커니즘을 장착하는것을 제안한다. SOCA메커니즘은 feature들간의 2차 statistics를 고려하여 channel-wise feature들을 적응형으로 rescale하는 방법을 학습한다.
(3) Second-order Channel Attention (SOCA):
대분의 SR모델들이 feature들간의 상호의존성을 고려하지 않은채 설계되어왔다. SENet은 이를 고려하기위해 제시된 모델이지만, Global Average Pooling (GAP)를 이용한 feature들간의 1차 statistics정보만을 활용하다보니 network의 discriminative ability를 저해한다. 최근에는 2차 statistics정보들을 활용하는 논문들이 CNN의 discriminative representation 능력을 향상시키는데 있어서의 유용성을 확인해주었다. (Peihua Li의 "Is second-order information helpful for large-scale visual recognition", Tsung-Yu Lin의 "Bilinear CNN models for fine-grained visual recognition") 따라서, 저자는 SR문제에 2차 statistics정보들을 활용하는 SOCA메커니즘을 제안하게되었다.
Covariahce Normalization. HxWxC의 사이즈를 갖는 feature map F에 대해, 저자는 feature matrix X로 reshape 시킨다. 이후, sample covariance matrix는 다음의 식과같이 표현된다(Eq.10).
discriminative representation능력의 향상에 convariance normalization이 매우 중요한 역할을 한다는것이 이미 입증되어 있으므로, 저자는 먼저 symmetric positive semi-definite하여 고윳값분해가 다음처럼 계산되는(Eq.11) covariance matrix(Eq.10)에 대해 covariance normalization을 수행한다.
Covariance normalization은 eigenvalue의 지수승으로 변환될 수 있다.
지수승 값인 alpha는 양의 실수이며, 1의경우 no normalization, 1보다 작을경우 1.0보다 큰 고유값을 비선형적으로 축소하고 1.0보다 작은 고유값을 늘린다. alpha값의 경우 1/2일때 discriminative representation능력이 잘 작동하므로 저자는 1/2를 사용한다.
Channel attention. 앞서 normalized된 covarinace matrix는 channel-wise features들 간의 correlation을 특성화 한다. 이러한 normalzed covariance matrix를 global covariance pooling을 통해 channel descriptor로 사용한다. Y를 줄임으로써 channel-wise statistics인 c번쨰 차원의 z는 다음과같이 계산된다(Eq. 13).
IMPLEMENTATIONS
저자는 SSRG내부의 LSRAG의 개수는 20개로 구성하며, 시작과 끝부분에 RL-NL모듈을 부착한다.
각각의 LSRAG는 10개의 residual block과 한개의 SOCA모듈이 장착된다. SOCA모듈 내부는 reduction ratio가 16인 1x1 convolution filter로 구성되며, SOCA모듈 밖의 convolution filter들은 3x3의 64채널 필터로 구성된다. upscale 방법은 ESPCN의 방법인 pixel shuffle을 사용한다. training set은 DIV2K를 사용한다.
DISCUSSION
Difference to Non-local RNN (NLRN). NLRN은 image restoration에서의 long-distance spatial contextual information을 포착하기위해 소개되었다. 저자가 제안하는 SAN과 NLRN의 차이는 다음과 같다.
먼저, NLRN은 recurrent neural network(RNN) 내부에 non-local operation을 추가시키는 반면, 저자의 SAN은 deep convolutional neural network(CNN) 내부에 non-local operation을 추가시킨다.
다음으로, NLRN은 각각의 위치와 이웃들간의 공간적 feature correlation 만을 고려하며 channel-wise feature correlation은 무시하는 반면, 저자의 SAN은 주로 feature의 2차 statistics를 고려하는 channel-wise feature correlation에 집중함으로써 더욱 강력한 representational ability를 갖게 한다.
Difference to Residual Dense Network (RDN). RDN과 저자의 SAN의 주된 차이점을 요약하자면 다음과 같다.
첫번째 차이점은 basic block의 구성이다. RDN은 주로 local residual learning를 사용한 local feature fusion 을 활용하는 dense block들로 구성되어 있다. 반면 저자의 SAN은 residual block을 기본으로써 사용한다.
다음으로, network의 discriminative ability를 향상시키는 방법에서의 차이이다. channel attention방법이 discriminative representation 향상에 큰 효과를 보임이 증명됐지만, RDN은 channel attention을 사용하지는 않고 모든 convolutional layer들간의 계층적인 특징들을 분석하는데에 집중한다. 반대로, 저자의 SAN은 channel attention능력의 향상에 집중한다. 따라서, 저자는 2차 channel attention mechanism인 SOCA모듈을 제안한다.
Difference to Residual Channel Attention Network (RCAN). Zhang은 very deep network에서의 RIR구조를 제안했다. RCAN은 저자의 SAN과 그 구조가 매우 흡사하다 (RCAN을 베이스로 연구를 진행한듯). RCAN과의 차이는 다음과 같다.
먼저, RCAN은 long skip connection이 추가된 몇개의 residual group들로 구성되어있다. 반면, SAN은 share-source skip connection이 추가된 residual group을 반복해서 쌓아나간다. 그로인해 충분한 low-frequency 정보들이 통과되게 한다.
다음으로, RCAN은 오직 local receptive field에 대한 contextual information을 추출해내며 해당 지역 이외의 부분의 information은 추출해내지 못하는 반면(?), SAN은 long-distance spatial contextual information 을 포착할뿐만 아니라, receptive field를 크게 해주는 non-local operations를 포함시킴으로써 이러한 문제를 완화시켜준다.
이 논문은 2차 feature statistics에 기반하여 SR문제를 다루는 첫번째 논문이다. SAN의 실혐결과는 아래와 같다.
무슨모듈 무슨모듈이 많고 구조가 복잡해서 읽는데 오래걸렸다...
어쨋든 핵심은 복잡한 모듈들을 사용해서 PSNR을 이만큼 올렸다! 이다.
코드를 보고 모듈을 좀 더 자세히 알아봐야겠다.
'공부 > Super Resolution 논문리뷰' 카테고리의 다른 글