Week 15-17 ํ์ต์ ๋ฆฌ
Semantic Segmentation ๊ฐ์ ์์ธ ์ค๋ช
์ด ๋ฌธ์๋ NAVER Connect Foundation์์ ์งํํ Semantic Segmentation ๊ด๋ จ ๊ฐ์ PDF ํ์ผ๋ค์ ๋ฐํ์ผ๋ก ๊ฐ ๊ฐ์๋ณ ์ฃผ์ ๋ด์ฉ๊ณผ ์ธ๋ถ ๊ฐ๋ , ๊ธฐ๋ฒ๋ค์ ์์ธํ๊ฒ ์ค๋ช ํฉ๋๋ค.
Lecture 1: Introduction (1๊ฐ)
์ฃผ์ ๋ด์ฉ ๋ฐ ๊ฐ์:
- ์ปค๋ฆฌํ๋ผ ๊ฐ์ ๋ฐ ๊ฐ์ ์งํ ๋ฐฉ์:
- ์ ์ฒด ๊ฐ์๋ ์ด 10๊ฐ์ ์ธ์ ์ผ๋ก ๊ตฌ์ฑ๋๋ฉฐ, Introduction, Competition Overview, ์ธ๊ทธ๋ฉํ ์ด์ ์ ๊ธฐ์ด, FCN์ ํ๊ณ ๊ทน๋ณต, U-Net ๊ณ์ด, ๋ํ ๊ธฐ๋ฒ, ์ต์ ์ฐ๊ตฌ ๋ํฅ ๋ฑ ๋จ๊ณ๋ณ๋ก ์งํ๋ฉ๋๋ค.
- ๊ฐ์ ๋ฐฉ์์ ์ด๋ก ๊ณผ ์ค์ต์ ๋ณํํ๋ฉฐ, ์ฌํ ํ๋ก์ ํธ๋ฅผ ํตํด ์ค๋ฌด ์ ์ฉ ๋ฐฉ๋ฒ์ ๋ชจ์ํฉ๋๋ค.
- ์ธ๊ทธ๋ฉํ
์ด์
๊ฐ์ ๋ฐ ๋ชฉ์ :
- Semantic Segmentation์ ์ ์์ ์ญํ , ์ฆ ๊ฐ ํฝ์ ๋จ์๋ก ๊ฐ์ฒด๋ฅผ ๋ถํ ํ๋ ์์ ์ ์ค์์ฑ์ ์ค๋ช ํฉ๋๋ค.
- ๋ค๋ฅธ ๋น์ ํ์คํฌ(์: object detection, instance segmentation)์์ ์ฐจ์ด๋ฅผ ๋น๊ตํ๊ณ , ์์ฉ ๋ถ์ผ(์๋ฃ์์, ์์จ์ฃผํ ๋ฑ)๋ฅผ ์๊ฐํฉ๋๋ค.
Lecture 2: Competition Overview (2๊ฐ)
์ฃผ์ ๋ด์ฉ ๋ฐ ๊ฐ์:
- ๋ฐ์ดํฐ์
๊ฐ์:
- Hand Bone Image Dataset์ ์ฌ์ฉํ๋ฉฐ, X-ray ์ด๋ฏธ์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ ๋ผ ์์ญ์ ๋ถํ ํ๋ ๋ฌธ์ ๋ฅผ ๋ค๋ฃน๋๋ค.
- ๋ฐ์ดํฐ ๊ตฌ์ฑ: Train 800๊ฐ, Test 288๊ฐ๋ก ๊ตฌ์ฑ๋๋ฉฐ, ์ด๋ฏธ์ง ํ์ผ์ PNG ํ์์ด๊ณ , ์ด๋ ธํ ์ด์ ์ JSON ํ์ผ์ Polygon ์ขํ๋ก ์ ๊ณต๋ฉ๋๋ค.
- EDA (Exploratory Data Analysis):
- ๋ฐ์ดํฐ์ ํด๋์ค ๋ถํฌ, ๊ฐ ํด๋์ค๊ฐ ์ฐจ์งํ๋ ํฝ์ ๋น์จ, ๊ทธ๋ฆฌ๊ณ ๋ฉํ ๋ฐ์ดํฐ(ํค, ๋ชธ๋ฌด๊ฒ, ์ฑ๋ณ, ๋์ด)๋ฅผ ํตํด ๋ฐ์ดํฐ์ ํน์ฑ์ ๋ถ์ํฉ๋๋ค.
- ํนํ, ํ ํฝ์ ์ ์ฌ๋ฌ ํด๋์ค๊ฐ ์กด์ฌํ ์ ์๋ Multi-label ๋ฌธ์ ๋ฐ ํด๋์ค ๊ฐ ์ค์ฒฉ ํ์์ ํ์ธํฉ๋๋ค.
- ํ๊ฐ์งํ ๋ฐ Baseline Code:
- ๋ชจ๋ธ ํ๊ฐ๋ฅผ ์ํ ์ฃผ์ ์งํ๋ก Dice Score๋ฅผ ์ฌ์ฉํ๋ฉฐ, ๋ฐ์ดํฐ ๋ก๋ฉ, ๋ชจ๋ธ ๊ตฌ์ฑ, Loss/Optimizer ์ค์ , ํ์ต ๋ฐ ๊ฒ์ฆ ์ฝ๋๋ฅผ ์ค๋ช ํฉ๋๋ค.
Lecture 3: Semantic Segmentation์ ๊ธฐ์ด์ ์ดํด (3๊ฐ)
1. FCN์ ์ด์ฉํ ์ธ๊ทธ๋ฉํ ์ด์ ๊ฐ์
-
๋ชฉ์ ๋ฐ ๋ฐฐ๊ฒฝ:
๋ฅ๋ฌ๋์ ์ด์ฉํ ์ด๋ฏธ์ง ์ธ๊ทธ๋ฉํ ์ด์ ์ ๋ํ์ ๊ธฐ๋ฒ์ธ FCN์ ๋ํด ์ค๋ช ํฉ๋๋ค. ์๋ ์ด๋ฏธ์ง ๋ถ๋ฅ์ ์ฌ์ฉ๋๋ ๋คํธ์ํฌ(์: VGG)๋ฅผ ๊ธฐ๋ฐ์ผ๋ก, ๊ณต๊ฐ ์ ๋ณด๋ฅผ ์ ์งํ๋ฉฐ ๊ฐ ํฝ์ ๋จ์์ ์์ธก์ ์ํํ ์ ์๋๋ก ๊ตฌ์กฐ๋ฅผ ๋ณ๊ฒฝํ ๊ฒ์ด ํต์ฌ์ ๋๋ค. -
ํต์ฌ ์์ด๋์ด:
- Fully Connected Layer โ 1x1 Convolution:
๊ธฐ์กด์ ๊ณ ์ ๋ ํฌ๊ธฐ๋ฅผ ์๊ตฌํ๋ FC ๊ณ์ธต ๋์ 1x1 ์ปจ๋ณผ๋ฃจ์ ์ ์ฌ์ฉํ์ฌ ์ ๋ ฅ ์ด๋ฏธ์ง์ ํฌ๊ธฐ์ ์๊ด์์ด ๊ฐ ํฝ์ ๋ณ๋ก ์์ธกํ ์ ์๊ฒ ํฉ๋๋ค. - Transposed Convolution (Deconvolution):
Pooling ๋ฑ์ผ๋ก ์ถ์๋ feature map์ ์๋์ ํด์๋๋ก ๋ณต์ํ๊ธฐ ์ํด ํ์ต ๊ฐ๋ฅํ ํ๋ผ๋ฏธํฐ๋ฅผ ๊ฐ์ง ์ ์ํ๋ง ๊ธฐ๋ฒ์ธ Transposed Convolution์ ์ฌ์ฉํฉ๋๋ค.
- Fully Connected Layer โ 1x1 Convolution:
2. FCN์ ๊ตฌ์ฑ ๋ฐ ๋์ ์๋ฆฌ
-
VGG ๋คํธ์ํฌ ๋ฐฑ๋ณธ ํ์ฉ:
VGG์ ๊ฐ์ ๊ธฐ์กด ๋ถ๋ฅ ๋คํธ์ํฌ์ ์ปจ๋ณผ๋ฃจ์ ๋ธ๋ก์ ์ฌ์ฉํด ํน์ง์ ์ถ์ถํ๊ณ , FC ๊ณ์ธต ๋์ 1x1 ์ปจ๋ณผ๋ฃจ์ ์ ์ ์ฉํจ์ผ๋ก์จ ๊ณต๊ฐ ์ ๋ณด๋ฅผ ๋ณด์กดํฉ๋๋ค. -
์ปจ๋ณผ๋ฃจ์ vs. FC ๊ณ์ธต:
- ์ปจ๋ณผ๋ฃจ์ ๊ณ์ธต: ์ด๋ฏธ์ง ํฌ๊ธฐ์ ๋ฌด๊ดํ๊ฒ ๋์ํ๋ฉฐ, ๊ฐ ํฝ์ ์ ์์น์ ๋ณด๋ฅผ ์ ์งํฉ๋๋ค.
- FC ๊ณ์ธต: ์ ๋ ฅ ์ด๋ฏธ์ง์ ๊ณต๊ฐ ๊ตฌ์กฐ๋ฅผ ๋ฌด์ํ๊ธฐ ๋๋ฌธ์, ์ธ๊ทธ๋ฉํ ์ด์ ์ ๋ถ์ ํฉํฉ๋๋ค.
-
Transposed Convolution์ ์์ธ ์ค๋ช :
์ฌ๋ฌ ์ฌ๋ผ์ด๋๋ฅผ ํตํด ํ๋ ฌ ํํ์ ์์์ ํจ๊ป Transposed Convolution์ ๊ณ์ฐ ๊ณผ์ ์ ๋จ๊ณ๋ณ๋ก ์ค๋ช ํฉ๋๋ค.- ์ ์ํ๋ง ๊ณผ์ ์์ ํ์ต ๊ฐ๋ฅํ ํ๋ผ๋ฏธํฐ๋ก ์ธํด ์๋ณธ ์ปจ๋ณผ๋ฃจ์ ๊ณผ๋ ๋ค๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ๋ด๋ฉฐ, ์ด๋ฅผ ํตํด ์์ค๋ ๊ณต๊ฐ ์ ๋ณด๋ฅผ ๋ณต์ํฉ๋๋ค.
- Stride, kernel size, padding ๋ฑ์ ํ์ดํผํ๋ผ๋ฏธํฐ๊ฐ ์ถ๋ ฅ ํฌ๊ธฐ์ ์ด๋ป๊ฒ ์ํฅ์ ๋ฏธ์น๋์ง ๊ตฌ์ฒด์ ์ผ๋ก ๋ค๋ฃน๋๋ค.
3. FCN ์ฑ๋ฅ ํฅ์์ ์ํ ์ ๋ต
-
์ ์ํ๋ง ๋จ๊ณ ๊ฐ์ :
๋จ์ํ FCN-32s์ ๊ฐ์ด ํ ๋ฒ์ ์ ์ํ๋งํ๋ ๋์ , ์ค๊ฐ ๊ณ์ธต์ ์ ๋ณด๋ฅผ ํ์ฉํด FCN-16s, FCN-8s ๋ฑ ์ฌ๋ฌ ๋จ๊ณ์ ์ ์ํ๋ง์ ์ ์ฉํจ์ผ๋ก์จ ๋ ์ ๋ฐํ ์์ธก์ ๋๋ชจํฉ๋๋ค. -
Skip Connection ํ์ฉ:
์ด๊ธฐ ๋จ๊ณ์ ๋ ๋์ ํด์๋๋ฅผ ๊ฐ์ง feature map๊ณผ ํ๋ฐ์ ๋ฎ์ ํด์๋์ ์์ธก ๊ฒฐ๊ณผ๋ฅผ ๊ฒฐํฉํ์ฌ, ์ ์ํ๋ง ๊ณผ์ ์์ ์์ด๋ฒ๋ฆฐ ์ธ๋ถ ์ ๋ณด๋ฅผ ๋ณด์ํฉ๋๋ค.
Lecture 4: FCN์ ํ๊ณ๋ฅผ ๊ทน๋ณตํ ๋ชจ๋ธ๋ค 1 (4๊ฐ)
1. FCN์ ํ๊ณ์
- ๋ฌธ์ ์ :
- ํฐ ๊ฐ์ฒด์ ๊ฒฝ์ฐ ์ง์ญ์ ์ ๋ณด๋ง์ผ๋ก ์์ธกํ์ฌ ์ธ๋ถ ๊ฒฝ๊ณ๋ ์ ์ฒด ๊ฐ์ฒด ๋ชจ์์ ์ ๋๋ก ํ์ ํ์ง ๋ชปํจ
- ์์ ๊ฐ์ฒด๋ ๋ฌด์๋๊ฑฐ๋ ์๋ชป ๋ผ๋ฒจ๋ง๋๋ ๋ฌธ์
- ๋์ฝ๋(์ ์ํ๋ง) ๊ณผ์ ์์ ๊ฒฝ๊ณ ์ ๋ณด ์์ค ๋ฐ ๋ถ์ผ์น๊ฐ ๋ฐ์
- pooling ๊ณผ์ ์์ ์ค์ํ ์ธ๋ถ ์ ๋ณด๊ฐ ์์ค๋จ
2. Decoder ๊ฐ์ ๋ชจ๋ธ
-
DeconvNet:
- ๊ตฌ์กฐ: VGG16 ๊ธฐ๋ฐ ์ธ์ฝ๋์ ๋์ํ๋ ๋์นญ ๊ตฌ์กฐ์ ๋์ฝ๋
- ๊ธฐ๋ฒ: Unpooling(์ต๋๊ฐ ์ธ๋ฑ์ค๋ฅผ ์ด์ฉํด ์๋ ์์น ๋ณต์)๊ณผ Transposed Convolution์ ๋ฐ๋ณต์ ์ผ๋ก ์ ์ฉํ์ฌ ์์ ๊ฒฝ๊ณ ๋ฐ ์ธ๋ถ ์ ๋ณด๋ฅผ ๋ณต์
- ํน์ง: Unpooling์ ๋น ๋ฅด์ง๋ง sparseํ activation map์ ๋ณด์ํ๊ธฐ ์ํด Transposed Convolution์ด ํ์์ ์
-
SegNet:
- ๊ตฌ์กฐ: ์ธ์ฝ๋-๋์ฝ๋ ๋คํธ์ํฌ๋ก, VGG16 ์ธ์ฝ๋์ ํน์ง์ ํ์ฉํ๋ฉด์ ๋์ฝ๋์์๋ 1ร1 Convolution์ ์ ๊ฑฐํ์ฌ ํ๋ผ๋ฏธํฐ ์๋ฅผ ์ค์ด๊ณ ์ฐ์ฐ ์๋๋ฅผ ๊ฐ์
- ํน์ง: ๊ฒฝ๊ณ ๋ณต์๊ณผ ํจ์จ์ฑ ์ธก๋ฉด์์ DeconvNet๊ณผ ์ฐจ๋ณํ๋จ
-
๋น๊ต: ๋ ๋ชจ๋ธ์ ๋ชจ๋ ๋์ฝ๋ ์ฑ๋ฅ์ ํฅ์์ํค์ง๋ง, ํ์ต ๋ฐ ์ถ๋ก ์๊ฐ, ํ๋ผ๋ฏธํฐ ํจ์จ์ฑ ์ธก๋ฉด์์ ์ฐจ์ด๊ฐ ์์
3. Skip Connection์ ์ ์ฉํ ๋ชจ๋ธ
- FC-DenseNet:
- DenseNet์ ํน์ฑ์ ๋์ ํด, ์ด์ ๋ ์ด์ด์ ์ถ๋ ฅ์ ๊ฑด๋๋ฐ์ด ์ฐ๊ฒฐํจ์ผ๋ก์จ ๋ ํ๋ถํ ๊ณต๊ฐ ์ ๋ณด๋ฅผ ๋ฐ์ํ์ฌ ์ธ๋ฐํ ์์ธก์ด ๊ฐ๋ฅ
- U-Net:
- ์ฃผ๋ก ์๋ฃ ์์ ๋ฑ์์ ์ฌ์ฉ๋๋ฉฐ, ์ธ์ฝ๋์ ๋์ฝ๋ ์ฌ์ด์ skip connection์ ํตํด ์ ํด์๋ ๋จ๊ณ์์ ์์ ์ธ๋ถ ์ ๋ณด๋ฅผ ๋ณต์
4. Receptive Field ํ์ฅ์ ํตํ ๋ชจ๋ธ ๊ฐ์
-
DeepLab v1:
- ๋ฌธ์ ํด๊ฒฐ: ๋จ์ํ downsampling์ผ๋ก ์ธํ low-resolution ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ , ๋ ๋์ receptive field๋ฅผ ํ๋ณดํ๊ธฐ ์ํด atrous(๋๋ dilated) convolution์ ๋์
- ํ์ฒ๋ฆฌ: Bilinear interpolation ๊ธฐ๋ฐ ์ ์ํ๋ง ํ Dense CRF๋ฅผ ์ ์ฉํ์ฌ ์ธ๋ฐํ ๊ฒฝ๊ณ์ ํด๋์ค๋ณ ์ผ๊ด์ฑ์ ๊ฐ์
-
DilatedNet:
- DeepLab๊ณผ ์ ์ฌํ๊ฒ, dilation rate๋ฅผ ์กฐ์ ํ์ฌ ์ ์ ํ๋ผ๋ฏธํฐ๋ก ๋์ receptive field๋ฅผ ํ๋ณดํจ์ผ๋ก์จ ๊ณ ํด์๋ ์ถ๋ ฅ์ ์ ์ง
๋ถ๊ฐ ๋ด์ฉ
- ์
์ํ๋ง ๋ฐฉ๋ฒ:
Bilinear interpolation์ ์ฌ์ฉํ์ง๋ง, ํฝ์ ๋จ์์ ์ ๊ตํ ์ธ๋ถํ์๋ ํ๊ณ๊ฐ ์์ด ํ์ฒ๋ฆฌ๋ก Dense CRF๋ฅผ ์ ์ฉ
Lecture 5: FCN์ ํ๊ณ๋ฅผ ๊ทน๋ณตํ ๋ชจ๋ธ๋ค 2 (5๊ฐ)
1. Receptive Field ํ์ฅ์ ํตํ ๋ชจ๋ธ๋ค
-
DeepLab v2:
- ๊ตฌ์กฐ: Dilated(atrus) convolution์ ํ์ฉํด ๋ค์ด์ํ๋ง์ ์ต์ํํ๋ฉด์๋ ๋์ receptive field๋ฅผ ํ๋ณดํ๋ ๋ฐฉ์
- ํน์ง: ResNet-101์ ๋ฐฑ๋ณธ์ผ๋ก ์ฌ์ฉํ์ฌ ๋ ๊น์ ๋คํธ์ํฌ ๊ตฌ์กฐ์ dilated convolution์ ์ ์ฉ, ๊ณ ํด์๋ feature map์ ์ ์งํ๋ฉด์ ์ ์ญ ๋ฌธ๋งฅ์ ๋ฐ์
-
PSPNet (Pyramid Scene Parsing Network):
- ๊ตฌ์กฐ: Pyramid Pooling Module์ ๋์ ํ์ฌ ๋ค์ํ ํฌ๊ธฐ์ sub-region์์ ํ๊ท ํ๋ง์ ์ํ, ์ด๋ฅผ ํตํด ์ ์ญ ๋ฌธ๋งฅ ์ ๋ณด๋ฅผ ์บก์ฒ
- ํน์ง: ์ฃผ๋ณ ์ ๋ณด(context)๋ฅผ ํ์ฉํด ํผ๋๋๊ธฐ ์ฌ์ด ์นดํ ๊ณ ๋ฆฌ๋ ์์ ๊ฐ์ฒด์ ์์ธก ์ฑ๋ฅ์ ํฅ์
-
DeepLab v3:
- ๊ตฌ์กฐ: DeepLab v2์ ๊ธฐ๋ณธ ์์ด๋์ด๋ฅผ ๋ฐ์ ์์ผ atrous spatial pyramid pooling(ASPP) ๋ชจ๋์ ๋์ , ๋ค์ํ dilation rate๋ก ์ฌ๋ฌ ์ค์ผ์ผ์ ๋ฌธ๋งฅ ์ ๋ณด๋ฅผ ํตํฉ
- ํน์ง: ๋ค์ค ์ค์ผ์ผ์ ์ ๋ณด๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ตํฉํ์ฌ ์ธ๋ฐํ ๊ฐ์ฒด ๊ฒฝ๊ณ์ ์ ์ญ ์ ๋ณด๋ฅผ ๋์์ ๋ฐ์
-
DeepLab v3+:
- ๊ตฌ์กฐ: DeepLab v3์ ASPP ๋ชจ๋์ ๊ธฐ๋ฐ์ผ๋ก encoder-decoder ๊ตฌ์กฐ๋ฅผ ์ถ๊ฐํ์ฌ, ์ธ์ฝ๋์์ ์ถ์๋ ๊ณต๊ฐ ์ ๋ณด๋ฅผ ๋์ฝ๋์์ ์ ์ง์ ์ผ๋ก ๋ณต์
- ํน์ง: ์์ ๋ Xception ๋ฐฑ๋ณธ๊ณผ depthwise separable convolution์ ์ฌ์ฉํ์ฌ ํจ์จ์ฑ์ ๋์ด๊ณ , low-level feature์ ASPP ์ถ๋ ฅ์ ๊ฒฐํฉํด ์ธ๋ฐํ ๊ฒฝ๊ณ ๋ณต์์ ๋๋ชจ
2. ๋ชจ๋ธ ์ฑ๋ฅ ๋ฐ ๋น๊ต
- ๊ฐ ๋ชจ๋ธ์ ์ฑ๋ฅ ๋น๊ต ๊ฒฐ๊ณผ๋,
- FCN-8s (์ฝ 62.2%),
- DeepLab v1 (์ฝ 71.6%),
- DeepLab v2 (์ฝ 79.7%),
- PSPNet (์ฝ 85.4%),
- DeepLab v3 (์ฝ 85.7%),
- DeepLab v3+ (์ฝ 89.0%)
๋ฑ์ผ๋ก ์ฑ๋ฅ์ด ์ ์ง์ ์ผ๋ก ํฅ์๋จ์ ๋ณด์ฌ์ค๋๋ค.
- ์ด์ ๊ฐ์ ์ฑ๋ฅ ํฅ์์ ๊ฐ ๋ชจ๋ธ์ด receptive field ํ์ฅ, ๋ฉํฐ ์ค์ผ์ผ ๋ฌธ๋งฅ ์ ๋ณด ํตํฉ, ๊ทธ๋ฆฌ๊ณ ์ธ์ฝ๋-๋์ฝ๋ ๊ตฌ์กฐ๋ฅผ ํตํด ์ธ๋ฐํ ๊ฒฝ๊ณ ๋ณต์์ ๊ธฐ์ฌํ ๊ฒฐ๊ณผ๋ก ํ๋จ๋ฉ๋๋ค.
Lecture 6: High Performance๋ฅผ ์๋ํ๋ U-Net ๊ณ์ด์ ๋ชจ๋ธ๋ค (6๊ฐ)
1. U-Net
- ์๊ฐ ๋ฐ ํ์์ฑ:
- ์๋ฃ ์์๊ณผ ๊ฐ์ด ๋ฐ์ดํฐ๊ฐ ๋ถ์กฑํ ๋ถ์ผ์์ ํจ๊ณผ์ ์ธ segmentation์ ์ํด ์ ์๋จ
- ๋์ผ ํด๋์ค ๋ด ์ธ์ ๊ฐ์ฒด(์, ์ธํฌ) ๊ฐ ๊ฒฝ๊ณ ๊ตฌ๋ถ์ด ์ค์ํ ๋ฌธ์ ์ํฉ์ ํด๊ฒฐํ๊ธฐ ์ํ ์ค๊ณ
- ๊ตฌ์กฐ:
- Contracting Path: 3ร3 ์ปจ๋ณผ๋ฃจ์ + BN + ReLU๋ฅผ ๋ ๋ฒ ๋ฐ๋ณต, 2ร2 ๋งฅ์ค ํ๋ง์ผ๋ก ์ฐจ์ ์ถ์ํ๋ฉฐ ์ฑ๋ ์๋ฅผ 2๋ฐฐ๋ก ์ฆ๊ฐ
- Expanding Path: 2ร2 Up-Convolution(Transposed Convolution)์ ์ฌ์ฉํด ํด์๋๋ฅผ ๋ณต์ํ๊ณ , ๋์ผ ๋ ๋ฒจ์ ์ธ์ฝ๋ ์ถ๋ ฅ์ concatํ์ฌ ๋ก์ปฌ ์ ๋ณด๋ฅผ ๋ณด์กด
- ์ ์ฉ ๊ธฐ์ ๋ฐ ํ๊ณ:
- ๋ฐ์ดํฐ ์ฆ๊ฐ(Elastic deformation)๊ณผ ๊ฒฝ๊ณ์ ๊ฐ์ค์น๋ฅผ ์ฃผ์ด ํ์ต์ ๋ณด๊ฐํ๋ ๋ฐฉ๋ฒ ์ ์ฉ
- ๊ทธ๋ฌ๋ ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ ๊น์ด๊ฐ 4๋ก ๊ณ ์ ๋์ด ์๊ณ ๋จ์ํ skip connection๋ง ์ฌ์ฉํ์ฌ ์ต์ ์ ์ฑ๋ฅ์ ๋ด๊ธฐ ์ด๋ ค์
2. U-Net++
- ๊ฐ๋
๋ฐ ๋๊ธฐ:
- U-Net์ ๋จ์ํ skip connection์ด ์ ๋ณด ์ ๋ฌ์ ํ๊ณ๊ฐ ์์์ ๋ณด์ํ๊ธฐ ์ํด ์ ์๋จ
- ๊ตฌ์กฐ์ ํน์ง:
- ์ธ์ฝ๋์์ ์ถ์ถํ ์ฌ๋ฌ ๊น์ด์ feature map๋ค์ ์๋ก ์ค์ฒฉ(nested)ํ์ฌ ์ฐ๊ฒฐํ๋ Dense Skip Connection ๊ตฌ์กฐ๋ฅผ ๋์
- ์๋ก ๋ค๋ฅธ ๋ ๋ฒจ์ ์ ๋ณด๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๊ฒฐํฉํ๊ณ , deep supervision(์ค๊ฐ ์ถ๋ ฅ์ ํตํ ํ์ต ๋ณด์กฐ) ๋ฐ ์์๋ธ ๊ธฐ๋ฒ์ ํ์ฉ
- ์ฅ์ ๋ฐ ํ๊ณ:
- ๋ณด๋ค ํ๋ถํ๊ณ ์ธ๋ฐํ feature ์ฌ๊ตฌ์ฑ์ด ๊ฐ๋ฅํ์ง๋ง, ๊ตฌ์กฐ ๋ณต์ก์ฑ๊ณผ ์ฐ์ฐ ๋น์ฉ์ด ์ฆ๊ฐํ ์ ์์
3. U-Net 3+
- ๋ชฉํ:
- U-Net๊ณผ U-Net++์ ํ๊ณ๋ฅผ ๊ทน๋ณตํ๊ณ , ๋ ๋ค์ํ ๋ ๋ฒจ์ ์ ๋ณด๋ฅผ ํตํฉํด ๋ณด๋ค ์ ๋ฐํ segmentation ์ฑ๋ฅ์ ๋ฌ์ฑ
- ๊ตฌ์กฐ์ ๊ฐ์ :
- ์ธ์ฝ๋์ ๋์ฝ๋ ์ฌ์ด์ ์ฐ๊ฒฐ์ ๋จ์ํ ๊ฐ์ ๋ ๋ฒจ์ ๊ตญํํ์ง ์๊ณ , ๋ค์ค ์ค์ผ์ผ์ feature๋ฅผ ํตํฉํ๋ ๋ฐฉ๋ฒ ์ฑํ
- ๋ณด๋ค ์ ์ฐํ skip connection ์ค๊ณ๋ฅผ ํตํด ๊ฒฝ๊ณ ๋ณต์๊ณผ ์ธ๋ฐํ localization์ ๊ฐํ
4. ๊ธฐํ U-Net ๋ณํ
- ๋ค๋ฅธ ๋ณํ ๋ชจ๋ธ:
- Residual U-Net: ์์ฐจ ์ฐ๊ฒฐ(residual connection)์ ์ถ๊ฐํ์ฌ ๊น์ ๋คํธ์ํฌ ํ์ต์ ์์ ์ฑ์ ๊ฐ์
- Mobile-UNet, Eff-UNet: ๊ฒฝ๋ํ์ ํจ์จ์ฑ์ ๋ชฉํ๋ก ํ ๋ชจ๋ธ๋ก, ๋ชจ๋ฐ์ผ ํ๊ฒฝ์ด๋ ์ค์๊ฐ ์์ฉ์ ์ ํฉํ๋๋ก ์ค๊ณ๋จ
Lecture 7: Semantic Segmentation ๋ํ์์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ๋ค 1 (7๊ฐ)
1. EfficientUnet Baseline
- ๋ชจ๋ธ ๋ถ๋ฌ์ค๊ธฐ ๋ฐ ํ์ต:
- qubvel์ segmentation_models.pytorch ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํ์ฌ, EfficientNet-B0์ ๊ฐ์ ๋ค์ํ ์ฌ์ ํ์ต๋ encoder๋ฅผ ์ด์ฉํด Unet ๊ธฐ๋ฐ์ ๋ชจ๋ธ์ ์ฝ๊ฒ ๋ถ๋ฌ์ฌ ์ ์์
- Unet, Unet++, Manet, Linknet, FPN, PSPNet, PAN, DeepLabV3/V3+ ๋ฑ ์ฌ๋ฌ ์ํคํ ์ฒ๋ฅผ ์ง์ํ๋ฉฐ, ํนํ EfficientUnet baseline์ ์ ๋ ฅ (1, 3, 2048, 2048) โ ์ถ๋ ฅ (1, 29, 2048, 2048) ํํ๋ก ์ถ๋ก ๋จ
2. Baseline ์ดํ ์คํ ์ ๊ณ ๋ ค์ฌํญ
-
์ฃผ์์ฌํญ:
- ๋๋ฒ๊น ๋ชจ๋, ์๋ ๊ณ ์ , ์คํ ๊ธฐ๋ก(์: Notion, Google Sheets) ๋ฑ์ผ๋ก ์ฌํ ๊ฐ๋ฅํ๊ณ ์ฒด๊ณ์ ์ธ ์คํ ํ๊ฒฝ ๊ตฌ์ถ
- ํ ๋ฒ์ ํ๋์ ์กฐ๊ฑด๋ง ๋ณ๊ฒฝํ์ฌ ์ด๋ค ์์๊ฐ ์ฑ๋ฅ์ ์ํฅ์ ์ฃผ๋์ง ๋ช ํํ๊ฒ ํ์ ํ ์ ์๋๋ก ์งํ
-
Validation ๋ฐฉ๋ฒ:
- Hold Out ๋ฐฉ์๊ณผ ํจ๊ป K-Fold, Stratified K-Fold, Group K-Fold ๋ฑ ๋ค์ํ ๋ถํ ์ ๋ต์ ํตํด ์ ์ฒด ๋ฐ์ดํฐ์ ์ ๋ํด ์ ๋ขฐ์ฑ ์๋ ๊ฒ์ฆ ์งํ
-
Augmentation:
- ๋ฐ์ดํฐ ์์ ์ฆ๊ฐ์ํค๊ณ ์ผ๋ฐํ๋ฅผ ๊ฐํํ๊ธฐ ์ํ ๋ค์ํ ๊ธฐ๋ฒ ์ฌ์ฉ (์: RandomCrop, Horizontal/Vertical Flip, Rotation, Transpose ๋ฑ)
- ์ต๊ทผ ๊ธฐ๋ฒ์ธ AutoAugment, Fast AutoAugment, Albumentations ๊ธฐ๋ฐ ๊ธฐ๋ฒ๊ณผ ํจ๊ป Cutout, Gridmask, Mixup, Cutmix, SnapMix ๋ฑ์ ๋ฐฉ๋ฒ๋ ์๊ฐ๋จ
-
SOTA Model ๋ฐ Scheduler:
- ์ต์ ๋ ผ๋ฌธ์ด๋ Paper With Code์ SOTA ๋ชจ๋ธ๋ค์ ์ฐธ๊ณ ํ์ฌ baseline ์ดํ ์ถ๊ฐ ์คํ ์งํ
- Constant Learning Rate์ ํ๊ณ๋ฅผ ๊ทน๋ณตํ๊ธฐ ์ํด CosineAnnealingLR, ReduceLROnPlateau, Gradual Warmup ๋ฑ ๋ค์ํ ์ค์ผ์ค๋ฌ ์ ์ฉ
-
Hyperparameter Tuning ๋ฐ Optimizer/Loss:
- ๋ฐฐ์น ํฌ๊ธฐ๋ฅผ ํค์ฐ๋ ํจ๊ณผ๋ฅผ ์ป๊ธฐ ์ํด Gradient Accumulation ๊ธฐ๋ฒ ์ฌ์ฉ
- Adam, AdamW, AdamP, RAdam, Lookahead ๋ฑ ๋ค์ํ ์ต์ ํ ์๊ณ ๋ฆฌ์ฆ๊ณผ, imbalanced segmentation์ ๊ฐํ Compound Loss (์: DiceFocal, DiceTopK ๋ฑ)๋ฅผ ๊ณ ๋ คํจ
Lecture 8: Semantic Segmentation ๋ํ์์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ๋ค 2 (8๊ฐ)
1. Baseline ์ดํ ์คํ ์ ๊ณ ๋ ค์ฌํญ II
-
Ensemble ๊ธฐ๋ฒ:
- 5-Fold Ensemble: K-ํด๋๋ฅผ ํ์ฉํด ์ฌ๋ฌ ๋ชจ๋ธ์ ํ์ตํ๊ณ , ์ด๋ฅผ ์์๋ธํ์ฌ ์์ธก ์ฑ๋ฅ์ ํฅ์
- Epoch Ensemble: ํ์ต ๋ง์ง๋ง ๋ช ๊ฐ์ Epoch์ weight๋ฅผ ํ๊ท ๋ด๊ฑฐ๋, ์ฌ๋ฌ Epoch์ ๊ฒฐ๊ณผ๋ฅผ ์์๋ธํ๋ ๋ฐฉ์
- SWA (Stochastic Weight Averaging): ์ผ์ ์ฃผ๊ธฐ๋ง๋ค weight ํ๊ท ์ ์ํํด ๋์ ์ต์ ์ ์ ์ฐพ์ ์ผ๋ฐํ ์ฑ๋ฅ์ ๊ฐ์
- Seed Ensemble & Resize Ensemble: ์๋ก ๋ค๋ฅธ ์๋๋ฅผ ๊ณ ์ ํด ์ฌ๋ฌ ๋ชจ๋ธ์ ํ์ตํ๊ฑฐ๋, ์ ๋ ฅ ์ด๋ฏธ์ง ํฌ๊ธฐ๋ฅผ ๋ค๋ฅด๊ฒ ํ์ฌ ๋ชจ๋ธ์ ํ์ตํ ํ ์์๋ธํ๋ ๋ฐฉ๋ฒ
-
Pseudo Labeling:
- ์ฐ์ํ ์ฑ๋ฅ์ ๋ชจ๋ธ์ ์ด์ฉํด Test ๋ฐ์ดํฐ์ ์ ๋ํด ์์ธกํ ๊ฒฐ๊ณผ ์ค ๋์ ํ์ ๋(์: threshold 0.9 ์ด์์ ๊ฐ)๋ฅผ ์ ํํด, ์ด๋ฅผ ์ถ๊ฐ ํ์ต ๋ฐ์ดํฐ๋ก ํ์ฉํ๋ ๋ฐฉ๋ฒ
-
์ธ๋ถ ๋ฐ์ดํฐ ํ์ฉ ๋ฐ ๊ทธ ์ธ ํ:
- ์ธ๋ถ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํด ๋ฐ์ดํฐ ๋ถ์กฑ ๋ฌธ์ ๋ฅผ ๋ณด์ํ๊ฑฐ๋, Encoder์ ๋ง์ง๋ง์ Classification Head๋ฅผ ๋ฌ์ ๋ชจ๋ธ์ ์๋ ด์ ๋์์ฃผ๋ ๋ฐฉ๋ฒ ๋ฑ ๋ค์ํ ์ถ๊ฐ ์คํ ์์ด๋์ด๋ฅผ ์๊ฐ
2. ๋ํ์์ ์ฌ์ฉํ๋ ๊ธฐ๋ฒ ๋ฐ ํธ๋ ๋
-
์ต๊ทผ ๋ํ ํธ๋ ๋:
- ๋ํ์์๋ ํ์ต ์ด๋ฏธ์ง์ ํฌ๊ธฐ์ ์์ด ๋งค์ฐ ํฐ ๊ฒฝ์ฐ๊ฐ ๋ง์, ์ ํ๋ ์๊ฐ(2์ฃผ ๋ฏธ๋ง) ๋ด์ ํจ์จ์ ์ผ๋ก ์คํํด์ผ ํจ
- Mixed Precision Training(FP16)๊ณผ ๊ฐ์ด ๋ชจ๋ธ ํ์ต ์๊ฐ์ ๋จ์ถ์ํค๊ณ , ๊ฒฝ๋ํ๋ ๋ชจ๋ธ์ด๋ ์ผ๋ถ ๋ฐ์ดํฐ๋ก ๋น ๋ฅธ ์คํ์ ์งํํ๋ ์ ๋ต์ด ์ค์
-
์ด๋ฏธ์ง ์ ์ฒ๋ฆฌ ๊ธฐ๋ฒ:
- Resize ๋ฐ Sliding Window:
- ์๋ณธ ์ด๋ฏธ์ง๊ฐ ๋๋ฌด ํฐ ๊ฒฝ์ฐ ์ ์ฒด๋ฅผ resizeํ๊ฑฐ๋, ์ผ์ ํฌ๊ธฐ์ ํจ์น๋ก ๋๋ ์ ๋ชจ๋ธ์ ์ ๋ ฅํ๊ณ , ์์ธก๋ ๊ฒฐ๊ณผ๋ฅผ ์๋ณธ ํฌ๊ธฐ๋ก ๋ณต์ํ๋ ๋ฐฉ๋ฒ
- Sliding Window ๊ธฐ๋ฒ์์๋ window ํฌ๊ธฐ์ stride ์ค์ ์ด ์ค์ํ๋ฉฐ, ๊ฒน์น๋ ์์ญ์ ํตํด ์ค๋ณต ์์ธก์ผ๋ก ์์๋ธ ํจ๊ณผ๋ฅผ ์ป๋ ๋ฐฉ๋ฒ๋ ์๊ฐ๋จ
- ์ถ๊ฐ ํ:
- ๋ถํ์ํ ๋ฐฐ๊ฒฝ ์์ญ์ ์ํ๋ง์ ์ค์ฌ ํ์ต ์๋๋ฅผ ๊ฐ์ ํ๋ ๋ฑ์ ์ ๋ต๋ ๊ณ ๋ ค
- Resize ๋ฐ Sliding Window:
3. Label Noise์ ๋ํ ๋์ ์ ๋ต
- Label Noise ๋ฌธ์ :
- ์ธ๊ทธ๋ฉํ ์ด์ ์์๋ ํฝ์ ๋จ์์ annotation ํน์ฑ์ ๊ฒฝ๊ณ ๋ถ๊ทผ์ ๋ผ๋ฒจ ๋ ธ์ด์ฆ๊ฐ ์์ฃผ ๋ฐ์ํ๋ฉฐ, ํด๋์ค ๊ฐ ๋ถ์ผ์น๋ annotation ์ค๋ฅ๊ฐ ๋ฌธ์ ๋จ
- ํด๊ฒฐ ๋ฐฉ๋ฒ:
- Label Smoothing: Hard target ๋์ Soft target์ผ๋ก Loss๋ฅผ ๊ณ์ฐํด ๋ชจ๋ธ์ด ๊ณผ๋ํ๊ฒ ํ์ ํ์ง ์๋๋ก ์ ๋
- Pseudo Labeling์ ํ์ฉํ ์ ์ฒ๋ฆฌ: ๊ธฐ์กด noisy ๋ผ๋ฒจ ๋์ , ๋ชจ๋ธ ์์ธก๊ฐ์ ๋ฐํ์ผ๋ก pseudo label์ ์์ฑํ์ฌ ํ์ต ๋ฐ์ดํฐ๋ก ์ฌํ์ฉํ๋ ๋ฐฉ๋ฒ
- ๊ด๋ จ ๋ ผ๋ฌธ๊ณผ ์ฝ๋๋ค์ ์ฐธ๊ณ ํด, ๋ค์ํ ์ ๊ทผ๋ฒ์ ์ ์ฉํ๋ ๊ฒ์ด ์ค์
4. ๋ํ ํ๊ฐ ํธ๋ ๋ ๋ฐ ๊ธฐํ ํ
- ํ๊ฐ ๊ธฐ์ค:
- ๊ธฐ์กด Accuracy, mIoU ์ธ์๋ ํ์ต ์๊ฐ, ์ถ๋ก ์๊ฐ, ๋ชจ๋ธ ๊ฒฝ๋์ฑ ๋ฑ ์ค์๊ฐ ๋ฐ ํจ์จ์ฑ ์ธก๋ฉด์ด ์ค์ํ ํ๊ฐ ์์๋ก ๋ฑ์ฅ
- ๋ชจ๋ธ ๊ฐ์ ํ:
- ์ถ๋ ฅ ๋ง์คํฌ๋ฅผ ์๊ฐ์ ์ผ๋ก ํ์ธํด ํฐ ๊ฐ์ฒด์ ์์ ๊ฐ์ฒด, ๊ทธ๋ฆฌ๊ณ ํน์ ํด๋์ค์ ์ฑ๋ฅ์ ๋ณ๋๋ก ๋ถ์ํ๊ณ ๊ฐ์ ์์ด๋์ด๋ฅผ ๋์ถํ ํ์๊ฐ ์์
5. ๋ชจ๋ํฐ๋ง ๋๊ตฌ ํ์ฉ
- Weights & Biases (W&B):
- ์คํ ๊ฒฐ๊ณผ๋ฅผ ์ค์๊ฐ์ผ๋ก ๋ชจ๋ํฐ๋งํ๊ณ , loss, learning rate, ๊ฐ์ข metric์ ๋ณํ๋ฅผ ์ถ์ ํ ์ ์์
- ์ฌ๋ฌ ์คํ ๊ฒฐ๊ณผ๋ฅผ ๋น๊ต ๋ถ์ํ์ฌ ์ต์ ์ ํ์ดํผํ๋ผ๋ฏธํฐ๋ฅผ ์ฐพ๊ณ , ๋ชจ๋ธ์ ํ์ต ์ํ๋ฅผ ์๊ฐํํจ