작성
·
88
0
답변 1
1
안녕하십니까,
좋은 질문이군요.
먼저, 작은 이미지 보다 큰 이미지가 좀 더 모델 성능이 좋게 나옵니다. 하지만 원본 이미지가 가지고 있는 선명도에 따라서 큰 차이가 없을 수도 있습니다. 또한 이미지가 클 수록 학습 시간과 메모리 소모가 커집니다. 선명도가 높지 않은 원본 이미지 32x32를 224x224로 높이면 약간의 모델 성능이 좋아질 수 있습니다. 하지만 의미있는 성능 향상이 되는지의 여부는 여러 유형으로 테스트해봐야 됩니다. 전반적으로는 크게 성능 향상이 안되는 경우가 더 많은것 같지만, 개인적으로 의미있는 성능향상이 된 적도 있었던것 같습니다. 더불어 학습 시간이 훨씬 오래 걸립니다.
선명도가 매우 높은 이미지 예를 들어 1024x1024 를 224x224로 줄이면 좀 성능이 떨어질 수 있습니다. 하지만 1024x1024 이미지는 학습 시간이 오래 걸릴 뿐만 아니라, 메모리 문제로 H/W사양에 따라 아예 학습이 안될 수도 있습니다. 따라서 적절한 사이즈(224나 512)를 테스트를 통해서 설정해줄 필요가 있습니다.
모델마다 권장 사이즈가 다 다르던데 여러 모델을 테스트 할 때 모델별 권장 Input size로 resize 하는게 좋을까요? 아니면 특정 사이즈로 고정해서 테스트 하는 것이 좋을까요?
=> 가능하면 모델별 권장 Input size로 해주면 좋습니다. 다만 앞에서도 말씀드렸듯이 원래 선명도가 안좋은 이미지를 키워서 학습시켜도 성능이 크게 향상되지 않을 수 있습니다. 원래 선명도가 높아서 이미지 사이즈가 큰 경우는 줄이면 학습 성능이 나빠질 수는 있습니다. 학습 수행 시간과 H/W 제약등을 감안해서 여러번 테스트 해보고, 최적치를 찾아 보는 것이 좋은 방법입니다.
이미지를 축소하는 경우보다 확대해서 모델에 넣는 경우 성능이 더 안 좋을까요?
=> 확대하는게 조금이라도 더 성능에 좋을 수는 있습니다. 다만 원래 모델의 pretrained값이 224X224로 학습이 되어서 이미지 사이즈를 키우면 제대로 pretrained 값을 활용하지 못할 수도 있지만, 전반적으로는 확대가 성능에 더 좋으며, 특히나 이미지가 선명하다면 더욱 그런것 같습니다. 하지만 학습 시간이나 H/W제약이 있으므로 유의미한 결과치는 상황마다 테스트를 해봐야 됩니다.
감사합니다.
답변 감사합니다! 도움이 되었습니다.