카메라 이미지 품질 향상 AI 경진대회

이미지 사이즈와 해상도의 관계

2021.07.17 20:07 3,575 Views

train_data(X) 와 label _data(Y) 가  있습니다

input_size(X)를 256x256 으로  정답데이터 (Y) 를 256x256 사이즈로 학습시키고

test_test를 256x256 으로 넣어 prediction 한 256x256 을 원래 기존이미지 크기로 사이즈를 reszie 시키는것과


베이스라인처럼 X,Y,둘다 128x128로 잘라서 학습시킨후

다시 원래 크기 사이즈로 resize 시키는방법이있습니다 .

이게 최종 화질에서 차이가 많이 날까요??





로그인이 필요합니다
0 / 1000
최정명
2021.07.17 20:29

baseline에서 resize를 썼었나요?
직접 돌려보지는 않고 코드만 봤었는데 패치 단위로 모델을 학습시킨 후 패치 단위로 추론한것을 이어 붙입니다. 이어 붙이면서 겹치는 곳은 voting_mask로 나누어서 겹친곳은 나누어 주고요.


패치의 크기가 작으면 각 패치에서 얻을 수 있는 정보가 적기 때문에 색감에 대한 정보 혹은 주변 픽셀 값(?)들이 부족해서 각 추론한 패치마다 재구성하는데 색감이 달라질 수 있을것 같습니다.

반대로 패치가 크면 각 패치에서 얻을 수 있는 정보가 작을 때 보단 많기 때문에 패치의 전체적인 색감을 모델이 잘 추론할것 같습니다.

그리고 각 패치들의 색감이 다르면 생기는 문제는 패치의 경계면이 뚜렷하게 티납니다. 그래서 격자가 보이는 어색한 이미지가 만들어 질 수 있습니다.

작은 패치로 했을때 대회의 1차 성능지표인 PSNR이 높게 나올 수도 있는 것이지만 경계면 때문에 사람 눈에는 어색한 이미지 일수도 있죠.

경계면 후처리를 통해 자연스럽게 보이게 보완할 수도 있곘지만 PSNR이 어떻게 될지는 모르겠네요.

러신머닝
2021.07.17 20:45

음.. 그래서 저는 256x256으로 학습시킨후 원래크기 (2448,3264?)로resize와 base 라인처럼 이어붙힌후의 만드는것의 PSNR 점수 면에서 무엇이좋을지 궁금했습니다. 새로운 모델을 만들었는데 base line 의 이미지 전처리 코드를 적용하는게 조금 까다로워서 reszie 그냥 resize를 해버렸는데 이게 얼마나 영향을 미칠지 궁금했습니다 

최정명
2021.07.17 21:02

2448x 3264 -> 256x256 -> 2448x3264 는 정보손실이 너무 클 것 같습니다.
PSNR 점수에도 영향이 아주 클 것 같고요.
그래서 위 예시 처럼 과감한 resize 보단 crop하여 패치로 접근 하는게 더 낫다고 생각합니다.

최정명
2021.07.17 21:17

모델이나 알고리즘을 어떻게 구성하냐에 따라 resize가 잘 될 수도 있을 것 같습니다. 정답이 없죠 ㅠㅠ
저는 resize로 해보았을 때 좋은 결과물이 보이지 않아 지금은 이미지를 통으로 resize 하는 방법은 사용하고 있지 않습니다.

러신머닝
2021.07.17 22:50

삭제된 댓글입니다

러신머닝
2021.07.17 22:51

정말 고민해봐야할 문제네요 누가정리해놓았는지 한번찾아봐야겠네요

dev-hunmin
2021.07.17 20:30

원본이미지를 resize하는 과정에서는 어느정도 정보손실을 감수해야 할 것 같고,
추론이미지를 원본이미지 크기로 resize한다면 다소 blur한 이미지가 생성될 것 같습니다

러신머닝
2021.07.17 20:45

음 그러면 PSNR 측면에서 무엇이 더 좋을까요?? baseline 을 따라가는게 제일 좋으려나요??

dev-hunmin
2021.07.17 21:25

학습, 추론 속도 관점에서는 resize가 우세하다고 생각하는데
PSNR 점수를 극대화하는 건 Baseline방법도 좋아보인다고 생각합니다

White note
2021.07.17 21:26

PSNR 측면만 생각하기보다 데이터가 손실 되더라도 PSNR에 관련성이 어느정도인지 판단하는 것이 중요한 것 같습니다. 제 실험에서는 모델마다 결과가 달랐고 어떤 모델은 축소 확대하더라도 psnr점수 손실이 굉장히 적은 반면에 어떤 모델은 굉장히 크기도 했습니다. 사용하시는 모델로 실험해보시는 것 추천드려요.

러신머닝
2021.07.17 22:31

흠... 이게 제가만든 모델에 Baseline 코드를 적용하려니 되게 까다로운 작업이 되어서... 애초에 2448x3264 -> 2448x3264 를 학습시킬까 생각해봤는데 이건 말도안될거같아서 포기했습니다ㅠㅠ 256x256 으로 학습시킨후에 test_image 를 cutting 하여 model.predict 한후에 다시 넣는방법이 좋으려나요? 

dev-hunmin
2021.07.17 22:59

Sliding Window patch를 256x256으로 잘라서 사용하시면 될것같습니다