Semantic Segmentation을 위한 U-Net 모델 [1탄.과제 정의 및 배경]

2022.01.16 22:53 4,554 조회

안녕하세요 😀

데이콘에서 활동하고 있는 '동화책'입니다.

컴퓨터 비전 영역 문제 중 의미론적 분할(Semantic Segmentation)을 수행할 수 있는 모델 "U-Net"에 대해서 시리즈에 걸쳐 설명을 해보려고 합니다.

회사 프로젝트를 하면서 구현했던 모델인데 제가 더 까먹기 전에 공부했던 내용을 정리하고 여러분들께 공유하고자 글을 써봅니다. 

처음 접하시는 분들도 이해할 수 있도록 최대한 쉽고 자세하게 설명해보도록 하겠습니다. 


* 본 포스팅은 데이콘 서포터즈 “데이크루" 1기 활동의 일환입니다.


INDEX

1탄. 과제 정의 및 배경

2탄. 모델 구조 [링크]

3탄. 학습 과정 특이점 [링크]

4탄. 모델 구현 [링크]


과제 정의 및 배경


1) 의미론적 분할(Semantic Segmentation)이란?


 U-Net은 컴퓨터 비전 영역에서 풀려고 하는 문제(task) 중 의미론적 분할(Semantic Segmentation)을 수행할 수 있는 모델입니다.

의미론적 분할이란 이미지 내에서 픽셀 단위로 분류하는 것을 말하는데, 각 픽셀별로 어떤 클래스에 속하는지를 예측하는 문제를 말합니다.

이미지 내에 객체 존재 여부를 예측하는 문제(이미지 분류; Image Classification)에 비해서 객체 경계 정보를 보존해야하고 전체적인 이미지의 문맥을 파악해야 하는 등 조금 더 높은 수준의 이미지 이해를 요구한다는 점에서 까다로운 문제에 속합니다.

그림 1. [출처] CC0 public domain

cf. 컴퓨터 비전의 다른 문제 중 객체 탐지(Object Detection)에 대해서는 jihyeheo님이 잘 설명해주셨네요! 글 〈[개념] Object Detection〉을 통해 확인하실 수 있습니다.


2) 모델 U-Net, 어디에 쓰이나요?


 의미론적 분할을 수행하는 여러 모델들은 자율주행, 의생명공학 등 다양한 분야에 사용될 수 있습니다.

U-Net은 MRI, CT 상에서 병변을 진단하거나 장기, 세포 조직 등을 분할하는 등 의료 영상(Biomedical) 분야에서 좋은 성능을 발휘하고 있고,

U-Net 구조를 기반으로 한 모델들이 매년 다양한 문제를 더 잘 해결하는 모습을 보여주고 있습니다. 

paperwithcode에 따르면 U-Net이 해결하고 있는 문제의 10% 이상이 의료 분야와 관련되어 있고, 의미론적 분할을 수행하는 모델 중 가장 많은 논문 수를 보유하고 있습니다.

의생명공학 외에도 Kaggle이 주최한 'Airbus Ship Detection Challenge'에서도 좋은 성적을 받아 논문(Google Scholar)으로 출판되었습니다. 

그림 〈2〉에서는 U-Net이 해결하고 있는 의료 영상 분야의 분할(Segmentation) 문제들을 보여줍니다. U-Net이 이러한 의료 영상 분야에서 잘 쓰일 수 있는 이유는 데이터 증폭과 손실 함수 정의와 관련되어 있는데요, 이는 후속편에서 더 자세하게 설명해보도록 하겠습니다.

그림 2. [출처] spiedigitallibrary



3) 최신 모델들의 성능은?


 의미론적 분할은 기계가 수행하기 어려운 고난도의 문제임에도 불구하고 해당 영역의 최신 모델(SOTA; state of the art)들은 꽤 높은 수준에 이른 것으로 확인됩니다.

paperwithcode에 따르면 의미론적 분할 영역에서 학습 및 테스트할 수 있는 대표적인 데이터셋인 Cityscapes test/val와 PASCAL VOC 2012 test/val에 대해서 벤치마크에서 1위를 달성한 모델들이 각각 84.5/86.95%, 90.5/90.0%의 mIoU(mean Intersection of Union)를 달성하였습니다.

mIoU란 실제 객체가 존재하는 영역과 모델이 예측한 영역의 교집합의 비율이라고 생각하면 됩니다.

따라서 전체 객체가 차지하고 있는 영역의 85~90%는 모델이 잘 예측하고 있다는 것을 알 수 있겠네요.

그림 〈3〉은 모델 DeepLabv3(2017)이 Cityscapes 데이터셋에 대해서 의미론적 분할을 수행한 결과를 보여줍니다. 객체에 맞게 영역을 꽤 잘 분할하고 있죠?


그림 3. [출처] plos one 


마무리

U-Net이 해결하고자 하는 문제와 배경에 대해 잘 이해가 되셨나요?

저는 모델을 공부할 때는 해당 모델이 어떤 문제를 해결하려고 하는지, 최신 모델들의 성능이 어떠한지 등을 사전에 확인하고 공부해나가면 모델을 더 잘 이해할 수 있더라고요.

여러분들께 조금이나마 도움이 되었으면 좋겠네요. 다음 편에서는 U-Net의 구조에 대해서 다루어보도록 하겠습니다.

궁금한 사항이 있으시면 편하게 댓글 달아주시고 피드백은 환영입니다 🤗


긴 글 읽어주셔서 감사합니다!

로그인이 필요합니다
0 / 1000
월드파파
2022.01.27 09:33

컴퓨터 비전 부분에 대하여 생소하였는데 이해하기 쉽게 의미론적 분할에 관하여 설명 해주셔서 좋은 지식 얻고갑니다. 감사합니다 :)

동화책
2022.01.27 10:47

읽어주셔서 감사합니다 😀