-
Notifications
You must be signed in to change notification settings - Fork 6
[Seg] Day2_0427
-
ํด๋์ค ๋ถ๊ท ํ + ์ผ๋ฐํ ๊ณ ๋ฏผํฉ์๋ค!!
๋ถ์กฑํ ํด๋์ค ๋ณด์ถฉ (ํนํ ๋ฐฐํฐ๋ฆฌ)
CutMix : ์ด์ฐจํผ ํฝ์ ๋จ์ ์์ธก์ธ๋ฐ ์ปท๋ฏน์ค๊ฐ ํจ๊ณผ๊ฐ ์์์ง ๋ฏธ์ง์.
์ปท๋ฏน์ค ์ ์ฉํ๋๋ฐ ๊ฐ์ฒด ์์ ๋ถ์ด๋ฒ๋ฆฌ๋ฉด ์ด๋กํ์ฃ ?? -
ํด๋์ค๋ณ๋ก ์ค์ฝ์ด ์ธก์ (utils.py ์ฝ๊ฐ ์์ )
ํน์ ํด๋์ค๋ฅผ ์ ๋ ๋ง์ด ํ๋ฆฌ๋์ง ํ์ธํด๋ณด์. ํนํ, UNKNOWN์ด๋ ๋ฐฐํฐ๋ฆฌ!! -
Label smoothing
-
์บ๊ธ ์๋ฃจ์ ์ฐธ๊ณ : ๋ค์ํ ์ด๋ฏธ์ง ํฌ๊ธฐ๋ก ์์๋ธ
-
Loss function ์์ด๋ณด๊ธฐ!!
์ฑ๋ฅ ์ ๋์ค๋ ์์: CrossEntropy > Dice Loss > Focal Loss (ํ์ฌ๊น์ง๋ ๊ทธ๋ฌํจ) -
Optimizer
SOTA ๋ ผ๋ฌธ์ ๊ฑฐ์ sgd๋ก 2000 ์ํญ ๋๋ฆฐ๋ค. ASGNet๋ sgd.
๋ฌด๋ํ๊ฒ ํ ๋๋ Adam, CosineAnnealing(WarmRestarts) -
๋ชจ๋ธ ์ํคํ ์ณ
ํ์ฌ๊น์ง ์คํ์ ์ํ๋ฉด DeepLabV3 & Plus, EMANet ์ฑ๋ฅ ์ข์ -
์ต์ ์ augmentation ์กฐํฉ ์ฐพ๊ธฐ (๋ชจ๋ธ ๋จผ์ ์ ํ๊ณ ๋์)
โ ์ต๋ํ ๋ง์ transform์ ๋ฃ๊ณ ํ๋์ฉ ๋นผ๋ณด๋ฉด์
์คํ์ ํฐ ์ํฅ์ ๋ผ์น๋ ์์๋ฅผ ํ์ ํ๋ค.
https://github.com/JeongMyeong/lotte-visionAI-competition/ -
k-fold cv (ํ์ต ์ค๋ ๊ฑธ๋ฆฌ๋ ๋ง์ง๋ง์)
๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก ํ ์ง? ํด๋์ค ๋ถ๊ท ํ ๊ณ ๋ คํด์ ๋๋์ง?
-
EMANet. input_size = 256 & focal loss ์คํ ์ค
-
ํธ๋์คํฌ๋จธ ๊ณ์ด
๋ฐ์ดํฐ๊ฐ ๋ง์ ๋ ์ ๋ฆฌ โ 1์ํญ์ ๋ฐ๋ก ํ์ต ๋ก์ค ๋ฎ๊ฒ ๋์ด. lr ์ค์ฌ์ ํด๋ณด๊ธฐ
context ๊ฐ์ . ๋ฐฐ๊ฒฝ ๋ถ๋ถ์ ๋งค๋๋ฝ๊ฒ ์ ์์ธกํ๋ ํธ. ex) ๋ฐฐ๊ฒฝ์ด ๋ฐ์ค โ ์ข ์ด๋ก ๋ผ๋ฒจ๋ง
๋จ์ : ํ๋ผ๋ฏธํฐ ๋๋ฌด ๋ง์์ ์ค๋ ๊ฑธ๋ฆผ. -
๋ฐ์ดํฐ ๋์ฅํ
๋น๋์ด ๋๋ฌด ๊ฐ๋ ฅ!! ๋น๋๋ด์ง์ ์์ฌ์์ผ๋ฉด ๋ค ๋น๋. ํฌ์ฅ๋ ๋นจ๋๋.
๋ฐฐ๊ฒฝ์ด ๋ฐ์ค โ ์ข ์ด๋ก ๋ผ๋ฒจ๋ง.
ํํธ๋ณ์ ๋ถ์ ๋น๋ โ ํ๋ผ์คํฑ
๋ฐฐ๊ฒฝ์ ๋ฌผ์ฒด๊ฐ ์์ด๋ ๋ฐฐ๊ฒฝ์ผ๋ก ๋ผ๋ฒจ๋ง ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค.Q. ๊ทธ๋ฌ๋ฉด texture๋ฅผ ๋ฌด์ํ๋ ๊ฒฝํฅ์ด ์๋ ๊ฑธ๊น์??
-
๋๋ก classifier ๋ ผ๋ฌธ: RandomRotation (augmentation)์ผ๋ก ์ฑ๋ฅ ํฌ๊ฒ ํฅ์
โ ์ํ ๋ฐ์ ์ด๋ 90๋ ํ์ ๋ ์ ์ฉํด๋ณด๋ฉด ์ข์ ๋ฏ!
-
[LB 2์ - mIOU = 0.5823]
DeepLabV3Plus (SE_ResNet101, batch=16, image_size=512)
Adam (default), lr scheduler๋ ์ ์ผ์
2์ํญ mIOU = 0.37 โ 3์ํญ mIOU = 0.41
โ 20์ํญ ์ฏค ๋ฉ์ถค loss = 0.29, mIOU = 0.46 (ํ์ต 120~150๋ถ ์์) -
PSPNet, UNet ์ฑ๋ฅ ๋ฎ์. (PSPNet์ ์คํ ๋ฆฌํ ๋ง ๊ธฐ๋ฐ์ด๋ฏ๋ก ์ฐ๋ฆฌ ๋ฌธ์ ์๋ ์ ๋ง๋ ๋ฏ)
-
DeepLabV3Plus (resnet34, batch=16, image_size=512) โ ํ์ต 30๋ถ~1์๊ฐ ์์
-
Augmentation : ์ ๊ทํ ํ๋๋ ๋๋ฌด ์ด๋์์ง๋ ๊ฒฝํฅ โ ๊ธฐ๋ฏผ๋์ ์ ๊ทํ ์ ์ธ์ํด.
์ ๊ทํ + horizontal flip ๋ก ์คํ : mIOU = 0.434
# Stage 1 ๊ทธ๋๋ก ์ ์ฉ -> ํ ๋ฆฌ๋๋ณด๋ 2์
train_transform = A.Compose([
#Resize(height=CFG['resize'], width=CFG['resize'], p=1.0),
HorizontalFlip(p = 0.5),
VerticalFlip(p = 0.5),
#CLAHE(clip_limit=4.0, tile_grid_size=(8, 8), always_apply=False, p=0.5),
IAAPerspective(scale=(0.05, 0.1), keep_size=True, always_apply=False, p=0.5),
HueSaturationValue(hue_shift_limit=0.2, sat_shift_limit=0.2, val_shift_limit=0.2, p = 0.5),
RandomBrightnessContrast(brightness_limit=(-0.1, 0.1), contrast_limit = (-0.1, 0.1), p = 0.5),
Normalize(mean = [0.485, 0.456, 0.406],
std = [0.229, 0.224, 0.225],
max_pixel_value=1.0 ,
p = 1.0
),
Cutout(p=0.5),
ToTensorV2(p=1.0),
], p = 1.0)
-
์ด์ ์คํ๊ฒฐ๊ณผ: valid mIOU 0.46 (best_epoch=12) โ Public LB = 0.5599
DeepLabV3 (resnet101, batch=5)
DataLoader โ num_worker=0์ผ๋ก ํด์ผ cpu ์ ํฐ์ง!! -
Dice Loss : mIOU ์์ฒญ ๋๋ฆฌ๊ฒ ์์น. 60์ํญ์ mIOU=0.32 โ Public LB 0.5099 (๋ฏผ์ ๋ ์ ์ถ)
-
์ค๋์ ์คํ
ํ์ฌ focal loss + dice loss ์คํ ์ค. ๋ชจ๋ธ์ ๊ณ์ DeepLabV3 (resnet101)
์๋ํ ์์ : Label smoothing + ํด๋์ค ๋ง๋ค ์ค์ฝ์ด ๋ฝ๊ธฐ
์ธ์ฝ๋ ์ ์ฒด๋ฅผ ํ์ตํ์ง ๋ง๊ณ ์์ชฝ ๋ช ๋จ์ด๋ผ๋ freezeํ๋ฉด ์ด๋จ์ง ๊ณ ๋ฏผ ์ค. -
ํ์ตํ ๋๋ ๊ณ ํด์๋๊ฐ ์ ๋ฆฌํ๋ฏ๋ก ๋ณดํต down sizingํ๋ฉด ์ํด๋ค.
๊ทธ๋ฐ๋ฐ, 256๋ ํฌ๊ฒ ์ฐจ์ด๊ฐ ์์ผ๋ฉด RandomCrop์ ์จ์ ๋ฐ์ดํฐ ์ฆ๊ฐ ํจ๊ณผ๋ฅผ ๋ด๋ณด๋ ๊ฒ ์ด๋จ๊น?? -
CRF layer https://pypi.org/project/crfseg/ (boundary ํ์ฒ๋ฆฌ, ์ตํ์ ์๋จ)
์ธํผ๋ฐ์ค ๋๋ง ์ถ๊ฐํ๋ ๊ฑด์ง ํ์ตํ ๋ ๊ฐ์ด ๋ผ์๋ฃ๋ ๊ฑด์ง ์ ๋ชจ๋ฅด๊ฒ ๋ค.
RNN + crf๋ ๋์์ ์ฌ์ฉ โ ํ ๋๋ฆฌ๋ฅผ ์ฐพ์๋ด๋ end-to-end ๋ชจ๋ธ์ด PASCAL ์ฑ๋ฅ 75% ๋์ด.
- ์บ๊ธ์ด๋ ๋๊ฐ์ ํ์ดํผ ํ๋ผ๋ฏธํฐ๋ก ์คํ ์ค
UNet + EfficientNet, batch_size=16, accumulation_step=2
Dice Loss. 10์ํญ ์งธ ๋๋ฆฌ๋ ์ค.
-
๊น ์ฌ์ฉ๋ฒ pdf 1~7ํ์ด์ง
private repo๋ผ์ ์๋ฒ์ ssh ๋ฑ๋ก ์ ํด๋๋ฉด git cloneํ ๋๋ง๋ค ์๋ฌ ๋ฐ์!! -
๋ฌด์กฐ๊ฑด git pull origin - commit - git push ๋ณธ์ธ๋ธ๋์น ํ๋ ์ต๊ด!! main์ ๊ฑด๋๋ฆฌ์ง ๋ง์!!
git remote add origin [repo์ฃผ์]
git push origin(=repo์ฃผ์) ๋ณธ์ธ๋ธ๋์น -
Wiki์ ์คํ ๊ฒฐ๊ณผ ์ฌ๋ฆด ๋ ์ด๋ค ๋ถ๋ถ์ด ์ข์์ก๋์ง, ๋๋น ์ก๋์ง ๊ฐ์ด ์์ฑํ๊ธฐ
-
ASGNet https://github.com/Reagan1311/ASGNet (์ต์ ๋ ผ๋ฌธ, weight๋ ์์)
-
HRNet https://github.com/HRNet/HRNet-Semantic-Segmentation
COCO(์ฐ๋ฆฌ ๋ฐ์ดํฐ๋ ์ ์ฌ)์ ๋ํด ์ฑ๋ฅ ์ข์ ํธ
sgd, RMI loss -
Region Mutual Information (RMI) Loss for Semantic Segmentation
https://arxiv.org/pdf/1910.12037.pdf
https://github.com/ZJULearning/RMI
-
DeepLabV3 (resnet101, batch=5, image_size=512)
CrossEntropy
AdamW(lr=1e-4, weight_decay=4e-2)
CosineAnnealingWarmRestarts(optimizer, T_0=5, eta_min=1.2e-5)
Transform : ColorJitter(brightness=0.2, contrast=0.2, saturation=0.2, hue=0.2, always_apply=False, p=0.5) + HorizontalFlip()
====================================
5์ํญ CEloss = 0.2758, mIOU = 0.4415
10์ํญ CEloss = 0.2532, mIOU = 0.4498 (best)
14์ํญ CEloss = 0.2563, mIOU = 0.4518
15์ํญ CEloss = 0.2602, mIOU = 0.4650
20์ํญ CEloss = 0.2608, mIOU = 0.4455
===================================
ํ์ต์๊ฐ : ์ด 5์๊ฐ ์์
1-7์ํญ : ์ํญ๋น 12๋ถ 40์ด
8-11์ํญ : 25๋ถ (2๋ฐฐ๋ก ์ฆ๊ฐ)
12์ํญ : 16๋ถ
13-20์ํญ : ๋ค์ 12๋ถ 40์ด -
DeepLabV3 (resnet101, batch=5, image_size=512)
FocalLoss(gamma=2)
AdamW(lr=1e-4, weight_decay=4e-2)
CosineAnnealingWarmRestarts(optimizer, T_0=5, eta_min=1.2e-5)
Transform : ColorJitter(brightness=0.2, contrast=0.2, saturation=0.2, hue=0.2, always_apply=False, p=0.5) + HorizontalFlip()
====================================
5์ํญ FocalLoss = 0.1572, mIOU = 0.4413
9์ํญ (best) FocalLoss = 0.1534, mIOU = 0.4333
10์ํญ FocalLoss = 0.1555, mIOU = 0.4350
============ ์งํ ์ค ============