KimbgAI

[ML] Segmentation label을 resize할 때 조심할 것! 본문

machine learning

[ML] Segmentation label을 resize할 때 조심할 것!

KimbgAI 2022. 9. 28. 17:47
반응형

Segmentation task를 진행하던 중에 전처리 과정에서 디버깅 이슈가 있어 남기고자 한다.

문제는 resize하면서 dtype 뿐만 아니라 실제 value도 달라진다는 것!

별일은 아니고, label의 dtype이 int일때 resize을 하게되면 float형태로 변형되는 경우가 있어, 한번더 int로 바꿔주는 과정이 필요하다는 것이다.

발생 원인은 resize하면서 interpolation될때 smooth 과정 중에 float으로 변화되는 것 같다.

 

코드로 살펴보자

resize 하기 전

확인해보면 Annotation은 0, 1, 2의 값으로 잘 나타나있다.

 

아래는 resize한 결과이다.

resize 적용 후

annotation의 unique 값을 보면 상당히 다채롭게(?) 되어있다 ㅎㅎ;;

 

해결방법은.. 아래와 같이 한줄 추가해주면 끝!

해결!

np.rint는 해당 값에서 가장 가까운 정수로 바꿔주고 dtype도 int으로 바꿔준다!

 

이렇게 하지 않고도,

resize하는 함수 option에서 설정할 수 도 있을것 같긴한데, skimage에서는 찾지 못했다.

 

 

그럼 다들 저처럼이 디버깅에 시간 많이 쓰지 마시길 ㅜㅜ

끄읕~!

반응형
Comments