EnhanceNet: Single Image Super-Resolution Through Automated Texture Synthesis
한줄요약
전통적으로
사용하던 MSE loss는 전통적인 measure tool인 PSNR에서는 잘 동작하지만, 실제 사람이 보기에는 이미지가
흐릿하다. 이거 말고 사람이 인지하기에 더 좋아보이는 loss를 여러가지를 혼합해보면서 다양하게 실험을 해보았다.
일단 super resolution쪽은 읽어본게 거의 없었으나, 해당 논문은 새로운 아이디어를 막 늘어놓기보다는, 현재의 문제점을 지적하고 다양한 실험을 통해서 현상을 잘 설명해주고 있어서 참 좋았음. 이거부터 읽기를 아주 잘했다.
일단 super resolution쪽에서 주로 사용되는 measure tool은 Peak Signal-to-Noise Ratio(PSNR)임. 정확히 어떤 형태인지는 아직 잘 모르겠으나, 대충 느낌이 square root의 형태를 취하고 있을 것 같...아무튼 이건 나중에 알아보고. MSE loss(L2 distance)를 사용하면 PSNR 점수가 가장 높게 나오게 되는데,
근데 그게 실제로 사람이 보면 이미지가 흐릿하게 나오는 경향이 있다. 이유는 L2 term을 사용했기때문에 pixel값이
smoothing이 되는 효과가 발생한다. (왜 L1으로 하지 않을까? 실제로 GAN쪽에서 synthesis할때는 L1을 더 많이
쓰던대 그래서)
아래 그림을 보면 한눈에 빡
왼쪽은 MSE loss로 학습시킨거고, 오른쪽은 다른 방법으로(뒤에 나옴) 학습시킨 것. MSE로 학습시키면 고주파정보들이 많이 날라간다.
관련 연구들을 보니, sparse representation도 있고(dictionary 만들어서 주요한 성분들끼리의 합으로 값을 표현함), 다른 loss들도 당연히 많이 제안되었다고. feature space에서 거리를 잰다거나..
아래는 구성한 네트워크 구조
upsampling은 transpose conv(deconv)로 안하고(바둑판 노이즈가 생겨서), 그냥 sampling으로 했다. 그리고 그냥 sampling으로 해서 나오는 노이즈들을 없애기 위해 바로 conv layer를 하나씩 붙여줌
그리고 한가지 재밌었던게,
network에서 나온 최종 output을 residual image I_res로 두고 input을 bicubic으로
upsampling한 것과 더해서 최종 output을 내보낸다는 것. bicubic upsampling은 어차피 상수와 같은
역할이므로 결국 학습해야할 양은 기존 bicubic upsample된 이미지와 target image간의 residual이 된다.
(굿굿)
여기서는 총 4가지 종류의 loss를 가져와서 이것들을 잘 혼합해서 실험을 막 해본다.
(1) MSE, (2) perceptual loss(feature space에서 l2 loss - eq6), (3) texture matching loss(feature space에서 correlation을 추가해서 봄. correlation은 gram matrix로 구함 - eq7, 한가지 style밖에 encoding이 되지않으므로 patch-wise로 학습시켰다고 함), (4)adversarial loss (DCGAN과 유사하게 저해상도 이미지를 입력으로 주면 고해상도 이미지를 출력으로 주는 generative networks를 학습시킴 - eq8, 9)
4가지 loss를 어떻게 혼합해서 실험했는지 아래 표에 나타냄.
아래는 각 loss에 대한 PSNR 점수. 앞에서 말한 것 같이 MSE loss가 가장 점수가 높다
근데 실제로 비교해보면, 다른 loss를 쓴게 더 좋아보인다 사람이 보기엔. 왜냐하면 sharp하니깐
거기에 더해서, 그냥 MSE loss만 비교하더라도 자기들이 구성한 구조가 이전 연구들보다 PSNR 점수가 높다고.
다른 연구들과의 정성적 비교
아래는 인식기에 생성한 고해상도 이미지를 넣었더니, 자기들 방법으로 한게 error가 가장 낮게 나온다고. 즉, 실제 이미지와 가장 비슷하다고 말하고 싶음
object detection 연구쪽보다 anchor같은게 없어서 네트워크가 좀 더 간단해보여서 좋네.
네트워크는 금방 구현해볼 수 있을듯. loss를 혼합하는건 어떻게 한건지 저자들한테 물어봐야할듯
source와 pre-trained model제공함
http://webdav.tue.mpg.de/pixel/enhancenet/
'Computer Vision' 카테고리의 다른 글
HydraPlus-Net: Attentive Deep Features for Pedestrian Analysis (0) | 2018.04.02 |
---|---|
[Object Detection] Soft-NMS -- Improving Object Detection With One Line of Code (0) | 2018.04.02 |
[Super..Resolve?] Learning to Super-Resolve Blurry Face and Text Images (0) | 2018.04.02 |
[Segmentation] video based segmentation (0) | 2018.04.02 |
[Segmentation] 좋은 블로그 공유 (0) | 2018.04.02 |