1. U-Net
1.1 U-Net Intro
Unet은 의료계열에서의 문제 상황을 해결하기 위해 나왔지만 구조가 좋아서 다방면에서 사용됨
1) 의료계열에서의 문제점
- cell segmentation의 경우 같은 클래스가 인접해있는 셀에 구분이 잘 되지 않을 수 있음
- 개인정보 등으로인해 데이터가부족함
1.2 U-Net Architecture(구조)
1) Contracting Path: 이미지 추출
• (3x3convolutionNetwork+BN+ReLU)X2
• Nozero-padding으로 patch-size감소
• 2x2Maxpooling(stride=2)
• FeatureMap의 크기가 절반으로 감소
• Maxpooling이후 채널 수 2배 증가
2) ExpandingPath:localization을 가능하게 함
• 2x2Up-Conv사용 (Transposed Convolution)
• FeatureMap크기가 2배 증가
• 채널의 수를 절반으로 감소 ( 1/2 배 )
• Contracting 에서 얻은 FeatureMap과 Concat진행
• skipconnection을 할 때 input size(resolution)가 맞지 않은 경우가 생기는데 왼쪽부분에서 가운데를 crop하여 맞춰준다
UNet의 장점
1) Encoder가 확장함에 따라 채널의 수를 1024까지 증가시켜 좀 더 고차원에서 정보를 매핑
2. 각기 다른 계층의 Encoder의 출력을 Decoder와 결합시켜서 이전 레이어의 정보를 효율적으로 활용
1.3 U-Net 에 적용된 Techniques
1) Data Augmentation
- RandomElasticdeformations: 조금 꾸겨져보이게하거나 찌그러지게 보임
2) Pixel wise loss weight를 계산하기 위한 weightmap사용
- 같은 클래스를 가지는 인접한 셀을 분리하기 위해 해당 경계부분에 가중치를 제공
1.4 한계점
• U-Net은 기본적으로 깊이가 4로 고정됨
• 데이터셋마다 최고의 성능을 보장하지 못함
• 최적 깊이 탐색 비용 ↑
• 단순한 SkipConnection
• 동일한 깊이를 가지는 Encoder와 Decoder만 연결되는 제한적인 구조
2. U-Net++
2.1 U-Net++ Intro
위의 한계점을 극복하기 위해 나옴
• Encoder를 공유하는 다양한 깊이의 U-Net을 생성
• Encoder )*+,- . "
• Skip Connection을 동일한 깊이에서의 FeatureMaps이 모두 결합되도록 유연한 FeatureMap생성
2.2 DenseSkipConnection/Ensemble /DeepSupervision
1) Dense Skip Connection
- skip connection을 기존에는 같은 레벨에있는 X0,0만 사용했지만, 여기서는 앞선 모든 부분을 활용한다
2) Ensemble
- 기존 Unet의 앙상블된 모델과 비교해봤을때 성능이 더좋음
3) Hybrid Loss
4) Deep Supervision
- x0,0 x0,1 x0,2 x0,3 x0,4에 대한 loss를 위의 hybrid loss로 각각 구하고 결과값인 4개의 loss를 평균내서 사용한다
2.3 한계점
• 복잡한 Connection으로 인한 Parameter↑
• 많은 Connection으로 인한 Memory↑
• Encoder-Decoder사이에서의 Connection이 동일한 크기를 갖는 Featuremap에서만 진행됨
• 즉,FullScale에서 충분한 정보를 탐색하지 못해 위치와 경계를 명시적으로 학습하지 못함
3. U-Net3+
3.1 U-Net,U-Net++의 한계점
• U-Net에서의 decoder를 구성하는 방법은 같은 level의 encoderlayer로 부터 featuremap을 받는 simpleskipconnection 사용
• U-Net++에서는 nested and dense skipconnection을 사용하여 encoderdecoder사이의 semanticgap을 줄임
• 복잡한 connection으로 인한 parameter↑
• 많은 connection으로 인한 memory↑
• 성능이 좋아졌음에도 불구하고 fullscale에서 충분한 정보를 탐색하지 못해 예측하려는 위치와 경계를 명시적으로 학습하지 못함
3.2 U-Net3+에 적용된 Techniques
Full-scaleSkipConnections:(conventional +inter+ intra)skipconnection
• decoder의 featuremap구성 방법
• conventional: encoderlayer로부터 same-scale의 featuremaps받음
• inter: encoderlayer로부터 smaller-scale의 low-levelfeaturemaps 받음
• 풍부한 공간 정보를 통해 경계 강조
• intra: decoderlayer로부터 larger-scale의 high-levelfeaturemaps 받음
• 어디에 위치하는지 위치 정보 구현
1) conventional
2) inter
3) intra
- parameter를 줄이기위해 decoder layer의 channel 수를 320으로 통일
Classification-guidedModule(CGM)
• low-level layer에 남아있는 background의 noise발생하여,많은 false-positive문제 발생
• 정확도를 높이고자,extraclassificationtask진행
• high-levelfeaturemaps인 x_de_5 를 활용
• Dropout,1x1Conv,AdaptiveMaxPool,Sigmoid통과
• Argmax를 통해 Organ이 없으면 0,있으면 1으로 출력
• 위 에서 얻은 결과와 각 low-layer마다 나온 결과를 곱
Full-scaleDeepSupervision(lossfunction)
- FocalLoss:클래스의 불균형 해소
- ms-ssimLoss:Boundary인식 강화
- IoU:픽셀의 분류 정확도를 상승
4. AnotherversionoftheU-Net
4.1 ResidualU-Net
4.2 Mobile-UNet
- 모바일 넷을 백본으로 사용하여 더 빠르고 가볍게 제작
4.3 Eff-UNet
- efficientnet을 backbone으로 사용하여 높은 성능을 얻음
5. 결론
5.1 정리
1) U-Net
- Contracting Path를 통해 전반적인 특징을 추출
- Expanding Path는 localization을 가능하게 만들기 위해서 upsampling을 통해 concat을 하여 output의 segmentation을 만들어냄
- data augmentation - random elastic deformations를 적용
- 인접한 cell간에 경계부분을 명확하게 하기위해 weighted map을 생성해서 pixel wise loss에 가중치를 부여해줌
- 한계
- simple 한 skip connection
2) U-Net ++
- depth 4개를 공유하는 모델
- 단순한 skip connection 해결을 위해 dense skip connection(이전의 모든 정보를 계속 결합)을 진행
- deep supervision ( 모든 loss를 평균내서 사용 )
- 한계
- 너무 복잡한 구조로 parameter와 memory가 너무 많이 소요됨
- 같은 scale에 대해서만 skip connection을 진행하기 때문에 full scale에 대해 충분한 정보를 탐색하지못함
3) U-Net 3+
- Full-scale Skip Connections를 제안
- conventional이라는 같은계층의정보
- inter: 자기보다 더 큰 resolution을 가지는 정보
- intra: 자기보다 더 low 한 resolution을 가지는 정보
- Full-scale Deep Supervision
- L_f1
- L_ms-ssim
- L_iou
- 세가지의 loss를 결합한 segmentation loss를 제안
- CGM
- False Positive문제 해결을위해 CGM을 사용한 후처리 기법도 도입
4) Another Unit
- 다른 Backbone을 사용한 U-Net
'부스트캠프 AI Tech 2기 > 2기 CV P-Stage-Semantic Segmentation' 카테고리의 다른 글
Semantic Segmentation 대회에서 사용하는 방법들 2 (0) | 2021.10.20 |
---|---|
Semantic Segmentation 대회에서 사용하는 방법들 1 (0) | 2021.10.20 |
FCN의 한계를 극복한 model 2 성능적인 측면에서의 극복 (0) | 2021.10.20 |
Semantic Segmentation의 기초와 이해 (0) | 2021.10.19 |
Competition Overview (EDA & Metric) (0) | 2021.10.18 |