Checkerboard Artifacts

SSW·2022년 12월 3일
0

Medical AI

목록 보기
1/1

Checkerboard Artifact

Nueral Network로 image를 generate할 때 checkerboard pattern의 artifact가 생기는 것을 볼 수 있다. Image는 low resolution과 high-level descriptions으로 구축된다. 먼저 rough한 image를 표현하고, 그 다음 detail을 채워넣는데 이때 Deconvolution(or Transposed Convolution) 연산 방법을 사용하는데 이로 인해 주로 발생한다.

Deconvolution & Overlap

Deconvolution

좌측의 그림은 convolution 연산을 나타내고, 우측의 그림은 transposed convolution 연산을 나타낸다. Convolution 연산을 하게되면 feature map이 작아져 output size가 input size보다 작아진다. Encoder와 Decoder 구조에서 convolution 연산을 반복하게 되면 feature map의 size가 더욱 작아지게 되고, pixel level로 예측을 하기 위해 high resolution이 필요하기 때문에 feature map의 size를 크게 만드는 연산을 한다. 우측 그림의 transposed convolution 연산을 보면 input에서 빨간색은 output의 빨간색 box 안에 있는 값들과 연관이 있고, input에서 파란색은 output의 파란색 box 안에 있는 값들과 연관되어 있다. Input의 빨간색 값을 3 by 3 kernel과 곱하여 output에 대응하는 위치에 채워넣고, input의 파란색 값을 3 by 3 kernel과 곱하여 output의 대응하는 위치에 채워넣는데 이때 빨간색과 파란색 box의 겹치는 부분은 두 값을 더하여 채워주는 방법대로 나머지 값들도 계산하여 채워준다.

Transposed Convolution(Deconvolution)을 취하면 overlap 현상이 발생하고, 이로인해 checkerboard artifact로 이어진다. Overlap 현상은 kernel(filter) size가 stride에 나누어지지 않을 때 deconvolution의 overlap이 불균일해져 발생하게 된다.

Solution

  1. Kerner size가 stride에 나누어지도록 크기 조절
    Overlap issue를 피하게 만들어 deconvolution이 artifact를 생성하는 것을 막는다.

  2. Upsampling을 Convolution과 분리
    Deconvolution(Transposed Convolution)은 interpolation과 convolution 연산을 같이 하는 역할을 하는데 여기서 Upsampling 부분을 resize(interpolation)와 convolution을 따로 분리하여 interpolation 뒤에 convolution 연산을 하게 한다.

    • Nearest-Neighbor Interpolation

      Scale을 키울 때 사용되고, 가장 가까운 pixel 값을 동일하게 적용하는 방법이다. 즉, 위의 그림처럼 3 by 3 size의 matrix를 2배로 키워 6 by 6 size의 matrix를 만들 때 size를 늘린 만큼 근처의 pixel 값으로 채워넣는 방법이다.

      계산이 빠르다는 장점이 있지만 경계선이 망가지고, resolution이 낮아진다는 단점이 있다.

    • Bilinear Interpolation

      1차원 공간에서 사용하는 linear interpolation을 2차원 공간에서 사용하기 위해 확장된 개념이다.

      1. (1) - 2 by 2 size의 matrix를 2배 scale up을 하여 4 by 4 matrix로 만든다.
      2. (2) - 네 점 A, B, C, D와 별 사이의 x축, y축 거리비를 구한다.
      3. (3) - x축에 대해 거리비를 이용하여 linear interpolation을 적용하여 A, B로부터 P를 C, D로부터 Q를 구한다.
      4. (4) - y축에 대해 거리비를 이용하여 linear interpolation을 적용하여 P, Q로부터 별 위치의 값을 구한다.

      장점으로는 Nearest Neighbor에 비해 smoothing한 영상을 출력할 수 있다는 점이고, 단점으로는 여러 번 linear interpolation을 수행해야하기 때문에 계산량이 많다는 점이다.


[Reference]

https://distill.pub/2016/deconv-checkerboard/
https://daebaq27.tistory.com/67
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=dic1224&logNo=220882679460
https://realblack0.github.io/2020/05/11/transpose-convolution.html

profile
ssw

0개의 댓글