Skip to content

boostcampaitech4lv23cv1/level2_semanticsegmentation_cv-level2-cv-04

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

62 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Segmentation Wrapup Report

1. ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

๋ฐ”์•ผํ๋กœ ๋Œ€๋Ÿ‰ ์ƒ์‚ฐ, ๋Œ€๋Ÿ‰ ์†Œ๋น„์˜ ์‹œ๋Œ€. ์šฐ๋ฆฌ๋Š” ๋งŽ์€ ๋ฌผ๊ฑด์ด ๋Œ€๋Ÿ‰์œผ๋กœ ์ƒ์‚ฐ๋˜๊ณ , ์†Œ๋น„๋˜๋Š” ์‹œ๋Œ€๋ฅผ ์‚ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋Ÿฌํ•œ ๋ฌธํ™”๋Š” '์“ฐ๋ ˆ๊ธฐ ๋Œ€๋ž€', '๋งค๋ฆฝ์ง€ ๋ถ€์กฑ'๊ณผ ๊ฐ™์€ ์—ฌ๋Ÿฌ ์‚ฌํšŒ ๋ฌธ์ œ๋ฅผ ๋‚ณ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋ถ„๋ฆฌ์ˆ˜๊ฑฐ๋Š” ์ด๋Ÿฌํ•œ ํ™˜๊ฒฝ ๋ถ€๋‹ด์„ ์ค„์ผ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ์ž˜ ๋ถ„๋ฆฌ๋ฐฐ์ถœ ๋œ ์“ฐ๋ ˆ๊ธฐ๋Š” ์ž์›์œผ๋กœ์„œ ๊ฐ€์น˜๋ฅผ ์ธ์ •๋ฐ›์•„ ์žฌํ™œ์šฉ๋˜์ง€๋งŒ, ์ž˜๋ชป ๋ถ„๋ฆฌ๋ฐฐ์ถœ ๋˜๋ฉด ๊ทธ๋Œ€๋กœ ํ๊ธฐ๋ฌผ๋กœ ๋ถ„๋ฅ˜๋˜์–ด ๋งค๋ฆฝ ๋˜๋Š” ์†Œ๊ฐ๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์šฐ๋ฆฌ๋Š” ์‚ฌ์ง„์—์„œ ์“ฐ๋ ˆ๊ธฐ๋ฅผ Segmentationํ•˜๋Š” ๋ชจ๋ธ์„ ๋งŒ๋“ค์–ด ์ด๋Ÿฌํ•œ ๋ฌธ์ œ์ ์„ ํ•ด๊ฒฐํ•ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์œ„ํ•œ ๋ฐ์ดํ„ฐ์…‹์œผ๋กœ๋Š” ๋ฐฐ๊ฒฝ, ์ผ๋ฐ˜ ์“ฐ๋ ˆ๊ธฐ, ํ”Œ๋ผ์Šคํ‹ฑ, ์ข…์ด, ์œ ๋ฆฌ ๋“ฑ 11 ์ข…๋ฅ˜์˜ ์“ฐ๋ ˆ๊ธฐ๊ฐ€ ์ฐํžŒ ์‚ฌ์ง„ ๋ฐ์ดํ„ฐ์…‹์ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ๋ถ„์— ์˜ํ•ด ๋งŒ๋“ค์–ด์ง„ ์šฐ์ˆ˜ํ•œ ์„ฑ๋Šฅ์˜ ๋ชจ๋ธ์€ ์“ฐ๋ ˆ๊ธฐ์žฅ์— ์„ค์น˜๋˜์–ด ์ •ํ™•ํ•œ ๋ถ„๋ฆฌ์ˆ˜๊ฑฐ๋ฅผ ๋•๊ฑฐ๋‚˜, ์–ด๋ฆฐ์•„์ด๋“ค์˜ ๋ถ„๋ฆฌ์ˆ˜๊ฑฐ ๊ต์œก ๋“ฑ์— ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ถ€๋”” ์ง€๊ตฌ๋ฅผ ์œ„๊ธฐ๋กœ๋ถ€ํ„ฐ ๊ตฌํ•ด์ฃผ์„ธ์š”! ๐ŸŒŽ

  • Input :ย ์“ฐ๋ ˆ๊ธฐ ๊ฐ์ฒด๊ฐ€ ๋‹ด๊ธด ์ด๋ฏธ์ง€๊ฐ€ ๋ชจ๋ธ์˜ ์ธํ’‹์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. segmentation annotation์€ COCO format์œผ๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.
  • Output :ย ๋ชจ๋ธ์€ย pixel ์ขŒํ‘œ์— ๋”ฐ๋ผ ์นดํ…Œ๊ณ ๋ฆฌ ๊ฐ’์„ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ submission ์–‘์‹์— ๋งž๊ฒŒ csv ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด ์ œ์ถœํ•ฉ๋‹ˆ๋‹ค.

2. ํ”„๋กœ์ ํŠธ ํŒ€ ๊ตฌ์„ฑ ๋ฐ ์—ญํ• 

๊น€๋™์˜: Data and Inference Visualization, Pretrained Weight Search, Data Augmentation

๊น€ํ˜•ํ›ˆ: Validation set search, Training technique, Pseudo labeling

์†ก์˜๋™: mmsegmentation์™ธ ๋‹ค๋ฅธ ํ”„๋ ˆ์ž„์› ์‚ฌ์šฉ

์ •์ƒํ—Œ: Model search, Copy-Paste Augmentation,

์ตœํœ˜์ค€: Model search, Training technique


3. ํ”„๋กœ์ ํŠธ ์ˆ˜ํ–‰ ๊ณผ์ • ๋ฐ ๊ฒฐ๊ณผ

โ… . ์‹คํ—˜

1) Validation Set Search

โ‘  ์•„์ด๋””์–ด or ๊ฐ€์„ค

๋ฒ ์ด์Šค ๋ผ์ธ์œผ๋กœ ์ฃผ์–ด์ง„ validation set์˜ mIoU์™€ ์ œ์ถœ mIoU๊ฐ„์˜ ๊ฒฉ์ฐจ๊ฐ€ ๋งŽ์ด ๋ฐœ์ƒํ•˜์˜€๋‹ค. ์šฐ๋ฆฌ๋Š” ๋ฒ ์ด์Šค ๋ผ์ธ์œผ๋กœ ์ฃผ์–ด์ง„ validation์˜ ๊ธฐ์ค€์„ ์ •ํ™•ํžˆ ์•Œ ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ๊ธฐ์กด train/validation dataset์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ๋กœ ํ•˜์˜€๋‹ค.

์šฐ๋ฆฌ๋Š” ์ „์ฒด ๋ชจ์ง‘๋‹จ์—์„œ train_all๊ณผ test๋ฅผ ์ƒ˜ํ”Œ๋ง ํ–ˆ์„ ๊ฒƒ์ด๋ฉฐ ๋”ฐ๋ผ์„œ train_all, test์€ ๋ชจ์ง‘๋‹จ ๋ถ„ํฌ์™€ ํฌ๊ฒŒ ๋ฒ—์–ด๋‚˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๋Š” ๊ฐ€์„ค์„ ์„ธ์› ์œผ๋ฉฐ

class๋ณ„๋กœ mask์˜ ์‚ฌ์ด์ฆˆ๊ฐ€ ์œ ์‚ฌํ•˜๋‹ค๋Š” ๊ด€์ฐฐ์„ ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์ด๋Ÿฌํ•œ ๊ฐ€์„ค๊ณผ ๊ด€์ฐฐ ๊ฒฐ๊ณผ๋กœ StratifiedGroupKFold๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ class์˜ ๋น„์œจ์„ ์œ ์ง€ํ•œ ์ฑ„๋กœ train_all์—์„œ train, validset์„ splitํ•  ๊ฒฝ์šฐ ์‹ ๋ขฐ๋„ ๋†’์€ val set์„ ์–ป์„ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋ผ ์ƒ๊ฐํ•˜์˜€๋‹ค.

Untitled

โ‘ก ์‹คํ—˜ ์„ค๊ณ„

sklearn์˜ StratifiedGroupKFold์„ ์‚ฌ์šฉํ•˜์—ฌ ์ „์ฒด ๋ฐ์ดํ„ฐ์…‹์„ 5fold๋กœ ๋‚˜๋ˆˆ ๋’ค ๊ฐ fold์—์„œ test mIoU์™€ ๊ฐญ์ด ๊ฐ€์žฅ ์ ์€ validation set์œผ๋กœ ์•ž์œผ๋กœ์˜ ์‹คํ—˜์„ ์ง„ํ–‰ํ•˜๊ธฐ๋กœ ํ•˜์˜€๋‹ค. (๋ชจ๋ธ fcn_r50)

โ‘ข ์‹คํ—˜ ๊ฒฐ๊ณผ

valid fold num. best_epoch mAcc mIoU(valid) ์ œ์ถœ mIoU ์„ฑ๋Šฅ ์ฐจ์ด
fold0 47 0.7285 0.6180 0.5430 0.0750
fold1 44 0.6900 0.5830 0.5463 0.0367
fold2 25 0.7216 0.5947 0.5401 0.0546
fold3 27 0.6647 0.5621 0.5363 0.0258
fold4 37 0.6896 0.5871 0.5573 0.0298

โ‘ฃ ๊ฒฐ๊ณผ ๋ถ„์„

validation mIoU๋Š” 0.560.61๊นŒ์ง€ ๋„“์€ ๋ถ„ํฌ๋ฅผ ์ด๋ฃจ๊ณ  ์žˆ๊ณ , test mIoU๋Š” 0.530.55๊นŒ์ง€ ๋ถ„ํฌ๋ฅผ ์ด๋ฃจ๊ณ  ์žˆ์—ˆ๋‹ค.

์‹คํ—˜ ๊ฒฐ๊ณผ fold3 validation์ด ๊ฐ€์žฅ test data์™€ ์œ ์‚ฌํ•˜๋‹ค๊ณ  ํŒ๋‹จํ•˜์—ฌ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜์˜€๋‹ค.

ํ•˜์ง€๋งŒ, ์ผ์ • ์ˆ˜์ค€๊นŒ์ง€๋Š” val mIoU์™€ test mIoU๊ฐ€ ๋น„๋ก€ํ•˜์˜€์œผ๋‚˜ ์ผ์ • ์ˆ˜์ค€ ์ด์ƒ(0.74)์„ ๋„˜์–ด์„œ๋ฉด val mIoU๋กœ test score์™€ ์ƒ๊ด€ ๊ด€๊ณ„๊ฐ€ ์—†์–ด์ง€๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

cross validation์„ ์ด์šฉํ•˜์—ฌ ๊ตฌํ•˜๋Š” val mIoU๊ฐ€ ์ œ์ผ test mIoU์™€ ๋น„์Šทํ•  ๊ฒƒ์œผ๋กœ ๋ณด์ด๋‚˜, cross validation์„ ์ด์šฉํ•˜๊ธฐ์—๋Š” ์‹œ๊ฐ„ ์†Œ๋ชจ๊ฐ€ ๋„ˆ๋ฌด ์‹ฌํ•˜์˜€๋‹ค.

๋•Œ๋ฌธ์— fold3๋กœ ๋ชจ๋“  ์‹คํ—˜์„ ์ง„ํ–‰ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•˜์˜€์œผ๋ฉฐ, StratifiedGroupKFold๊ฐ€ ์•„๋‹Œ segmentation์—์„œ ์œ ํšจํ•œ split ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๊ณต๋ถ€์˜ ํ•„์š”์„ฑ์„ ๋А๊ผˆ๋‹ค. (ํ•˜์ง€๋งŒ ์ž๋ฃŒ ๊ฒ€์ƒ‰์ด ์ž˜ ์•ˆ๋œ๋‹คโ€ฆ)


2) Pretrain Weight Search

โ‘  ์•„์ด๋””์–ด or ๊ฐ€์„ค

๋‹จ์ˆœํžˆ backbone์˜ pretrained weight๋งŒ์„ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๊ฒƒ์ด ์•„๋‹Œ, ์–ด๋– ํ•œ ๋ฐ์ดํ„ฐ์…‹์œผ๋กœ ์‚ฌ์ „ ํ•™์Šต๋œ ๋ชจ๋ธ์˜ ์ „์ฒด(Decoder ๋“ฑ) weight๋ฅผ ๋ถˆ๋Ÿฌ์™€ ํ•™์Šต ์‹œํ‚จ๋‹ค๋ฉด ๋”์šฑ ๋น ๋ฅด๊ณ  ์ข‹์€ ์ˆ˜๋ ด ๊ฒฐ๊ณผ์— ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ๋˜ํ•œ, ์‚ฌ์ „ ํ•™์Šต๋œ ๋ฐ์ดํ„ฐ์…‹์˜ ์„ฑ๊ฒฉ์— ๋”ฐ๋ผ์„œ ๊ทธ ์ •๋„๊ฐ€ ๋‹ค๋ฅผ ๊ฒƒ์ด๋‹ค.

โ‘ก ์‹คํ—˜ ์„ค๊ณ„

์‚ฌ์šฉ ๋ชจ๋ธ : FCN-R101, HRNet-w48

๊ฐ ์‚ฌ์šฉ๋œ ๋ชจ๋ธ๋งˆ๋‹ค ์ด์™ธ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ๋ชจ๋‘ ๋™์ผ

๊ฐ๊ธฐ ๋‹ค๋ฅธ pretrained weight ๋“ค์„ ๋ถˆ๋Ÿฌ์™€ ํ•™์Šต์‹œํ‚ค๊ณ  ๊ทธ ์ถ”์ด๋ฅผ ๊ธฐ๋กํ•จ.

โ‘ข ์‹คํ—˜ ๊ฒฐ๊ณผ

W&B Chart 2023. 1. 9. ์˜ค์ „ 11_37_26.png

๊ฐ€์„ค๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, ํ•™์Šต ์ดˆ๊ธฐ ๋ชจ๋ธ์˜ ์ˆ˜๋ ด ์†๋„ ๋ฐ ๊ฒฐ๊ณผ์— ์œ ์˜๋ฏธํ•œ ์ฐจ์ด๊ฐ€ ์žˆ์—ˆ๋‹ค.

โ‘ฃ ๊ฒฐ๊ณผ ๋ถ„์„

  1. ์„ฑ๊ฒฉ์ด ๋น„์Šทํ•œ ๋ฐ์ดํ„ฐ์…‹์— ๋Œ€ํ•˜์—ฌ ํ•™์Šต๋œ ๋ชจ๋ธ ์ „์ฒด๋ฅผ ๋ถˆ๋Ÿฌ์˜จ๋‹ค๋ฉด, backbone์˜ weight ๋งŒ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๊ฒƒ๋ณด๋‹ค ์ข‹์€ ํšจ๊ณผ๋ฅผ ๊ธฐ๋Œ€ํ•  ์ˆ˜ ์žˆ๋‹ค.
  2. ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์˜ dataset๊ณผ๋Š” Pascal-Context dataset์ด ๊ฐ€์žฅ ๋น„์Šทํ•œ ์„ฑ๊ฒฉ์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, ๋”ฐ๋ผ์„œ ํ•ด๋‹น dataset์œผ๋กœ ํ•™์Šต๋œ ๋ชจ๋ธ์˜ ๊ฐ€์ค‘์น˜๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์ด ์œ ๋ฆฌํ•˜๋‹ค.
  3. Cityscapes dataset๊ณผ ๊ฐ™์ด ๊ธฐ๋ณธ ์ด๋ฏธ์ง€ ์‚ฌ์ด์ฆˆ์˜ ๋น„์œจ ์ž์ฒด๊ฐ€ ๋‹ค๋ฅด๊ณ  ์„ฑ๊ฒฉ์ด ์ƒ์ดํ•œ dataset์ด๋ผ๋ฉด, ์˜คํžˆ๋ ค ํ•ด๋‹น pretrained weight๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํŽธ์ด ๋ฐ”๋žŒ์งํ•  ์ˆ˜ ์žˆ๋‹ค.

3) Model Search

โ‘  ์•„์ด๋””์–ด or ๊ฐ€์„ค

UperNet_ConvNext์‹คํ—˜์„ ํ†ตํ•ด ๋ชจ๋ธ์˜ ์„ฑ๋Šฅ์ด ๋†’์„ ์ˆ˜๋ก val mIoU๊ฐ€ ๋†’์Œ์„ ํ™•์ธ ํ•˜์˜€๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ADE20K semantic segmentation ๋Œ€ํšŒ์˜ Paper mIoU ๊ฐ€ ๋†’์€ ๋ชจ๋ธ์ด ์šฐ๋ฆฌ์˜ ๋ฐ์ดํ„ฐ์…‹์—์„œ๋„ ์„ฑ๋Šฅ์ด ์ข‹์„ ๊ฒƒ์ด๋ผ๋Š” ๊ฐ€์„ค์„ ์„ธ์› ๋‹ค. ๋”ฐ๋ผ์„œ Paper mIoU ๊ธฐ๋ฐ˜์œผ๋กœ Model Search๋ฅผ ์ง„ํ–‰ํ•˜์˜€๋‹ค.

โ‘ก ์‹คํ—˜ ์„ค๊ณ„

  1. MMSeg Config์˜ ๋ชจ๋“  ๋ชจ๋ธ Paper mIoU ์กฐ์‚ฌ

  2. MMSeg ์ œ๊ณต ๋ชจ๋ธ์„ Paper mIoU ๋†’์€ ์ˆœ์„œ๋กœ ํ•™์Šต & ์ œ์ถœ

  3. Paper with code ์ฐธ๊ณ ํ•ด์„œ SOTA ์ƒ์œ„๊ถŒ ๋ชจ๋ธ๋“ค๋„ ํ•™์Šต & ์ œ์ถœ

    Untitled

โ‘ข ์‹คํ—˜ ๊ฒฐ๊ณผ

Segmentor list (ADE20K) (1)

โ‘ฃ ๊ฒฐ๊ณผ ๋ถ„์„

  • ๋Œ€์ฒด์ ์œผ๋กœ paper mIoU ์™€ test mIoU๊ฐ€ ์–‘์˜ ์ƒ๊ด€ ๊ด€๊ณ„๋ฅผ ์ด๋ฃฌ๋‹ค.
  • Mask2Former ๋ชจ๋ธ์ด ์šฐ๋ฆฌ์˜ SOTA ๋ชจ๋ธ์ด๋‹ค.
  • backbone์œผ๋กœ๋Š” BEiT-Adapter์˜ ์„ฑ๋Šฅ์ด ๊ฐ€์žฅ ์ข‹๋‹ค.

4) Training Technique

โ‘  ์•„์ด๋””์–ด or ๊ฐ€์„ค

upernet_beit_adapter์˜ ์ข‹์€ ์„ฑ๋Šฅ(Papers with cod ADE20K rank10)์ด ์šฐ๋ฆฌ ๋ฐ์ดํ„ฐ ์…‹์—์„œ ์žฌํ˜„์ด ๋˜์ง€ ์•Š์•˜๋‹ค.

์šฐ๋ฆฌ๋Š” upernet์˜ baseline lr์ด 2e-5์— wramup๊นŒ์ง€ default๋กœ ๋˜์–ด ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜๊ณ  ๋ฐฉํ–ฅ์ด ์ œ๋Œ€๋กœ ์ •ํ•ด์ง€์ง€ ์•Š์€ ์ƒํƒœ์—์„œ ์ดˆ๋ฐ˜์— ํฐ lr์ด pretrain backbone(beit)์„ ๋ง๊ฐ€ํŠธ๋ฆฌ๋Š” ๊ฒƒ ๊ฐ™๋‹ค๋Š” ๊ฐ€์„ค์„ ์„ธ์› ๋‹ค.

โ‘ก ์‹คํ—˜ ์„ค๊ณ„

์šฐ๋ฆฌ๋Š” ๋Œ€์กฐ๊ตฐ์œผ๋กœ ๋ชจ๋ธ ์ „์ฒด์˜ lr์„ 6e-05๋กœ ํ•˜์—ฌ ํ•™์Šต์„ ์ง„ํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ์™€

์‹คํ—˜๊ตฐ์œผ๋กœ๋Š” ๋ฐฑ๋ณธ์—๋Š” 4e-6, ๋””์ฝ”๋”์—๋Š” 4e-5๋กœ lr์„ ๋‹ฌ๋ฆฌ ์ ์šฉํ•˜๋Š” ํŠธ๋ ˆ์ด๋‹ ํ…Œํฌ๋‹‰์„ ์ ์šฉํ•˜์—ฌ ๋น„๊ตํ•˜์˜€๋‹ค.

color description
Red(๋น„๊ต๊ตฐ) lr: 6e-5
Blue(์‹คํ—˜๊ตฐ) backbone lr: 4e-6, decoder lr: 4e-5

โ‘ข ์‹คํ—˜ ๊ฒฐ๊ณผ

Untitled

Untitled

โ‘ฃ ๊ฒฐ๊ณผ ๋ถ„์„

์‹คํ—˜ ๊ฒฐ๊ณผ bbone์—๋Š” ์ž‘์€ lr์„ ์ ์šฉ ์‹œํ‚จ ๋ชจ๋ธ์ด ์ดˆ๊ธฐ loss์™€ mIoU์—์„œ ํฐ ์ฐจ์ด๋ฅผ ๋ณด์—ฌ์ฃผ์—ˆ๋‹ค. ์—„๊ฒฉํ•œ ํ†ต์ œ ๋ณ€์ธ์œผ๋กœ ๋””์ฝ”๋”์—๋„ lr์„ 6e-5๋กœ ํ•˜์ง€ ๋ชปํ•˜์—ฌ ์ •ํ™•ํ•œ A/Bํ…Œ์ŠคํŠธ๋ฅผ ํ•˜์ง€ ๋ชปํ•˜์—ฌ ์•„์‰ฌ์› ๋‹ค.

์šฐ๋ฆฌ๋Š” ์ด๋Ÿฌํ•œ ์„ฑ๋Šฅ์˜ ์ด์œ ๋ฅผ self supervised ๊ณผ์ •์„ ๊ฑฐ์นœ pretrain beit ๋ชจ๋ธ์—์„œ object boundary๋ฅผ ํŒŒ์•…ํ•˜๋Š” ๋Šฅ๋ ฅ์ด ์žˆ๊ธฐ์— ์šฐ๋ฆฌ๊ฐ€ ๊ฐ€์„ค๋กœ ์„ธ์šด ์ตœ๋Œ€ํ•œ bbone์„ ํ•™์Šต์„ ์ตœ์†Œํ™” ํ•˜๋Š” ๊ฒƒ์ด ์„ฑ๋Šฅ ์ฐจ์ด์˜ ์›์ธ์ด ๋˜์—ˆ์„ ๊ฒƒ์ด๋ผ ์ƒ๊ฐํ•˜๋‚˜.

์›์ธ์— ๋Œ€ํ•ด์„œ๋Š” ์กฐ๊ธˆ ๋” ์ฒด๊ณ„์ ์ด๊ณ  ์ •ํ™•ํ•œ ์‹คํ—˜์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

Untitled


5) Data Augmentation - Style

โ‘  ์•„์ด๋””์–ด or ๊ฐ€์„ค

์ปดํ“จํ„ฐ ๋น„์ „ task์—์„œ ๋ชจ๋ธ์˜ ์„ฑ๋Šฅ์„ ๋Œ์–ด์˜ฌ๋ฆฌ๊ธฐ ์œ„ํ•ด ์ž…์ฆ๋œ ๋ฐฉ๋ฒ•์ธ data augmentation์„ ์‚ฌ์šฉํ•œ๋‹ค.

โ‘ก ์‹คํ—˜ ์„ค๊ณ„

  1. ๋ฐ์ดํ„ฐ ์ฆ๊ฐ•์„ ํ•˜์ง€ ์•Š์€ ์ฑ„๋กœ ํ•™์Šต
  2. Base augmentations (GuassNoise, RandomBrightnessContrast, HueSaturationValue)
  3. Color augmentations (CLAHE, ColorJitter, HueSaturationValue)
  4. RandomResizedCrop

โ‘ข ์‹คํ—˜ ๊ฒฐ๊ณผ

W&B Chart 2023. 1. 9. ์˜ค์ „ 11_53_10.png

์–ด๋– ํ•œ ์ข…๋ฅ˜์˜ augmentation๋ฅผ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ์—๋„ ์œ ์˜๋ฏธํ•œ ์„ฑ๋Šฅ ํ–ฅ์ƒ ํšจ๊ณผ๊ฐ€ ์—†์—ˆ๋‹ค.

โ‘ฃ ๊ฒฐ๊ณผ ๋ถ„์„

๋ณธ ์ปดํŽ˜ํ‹ฐ์…˜์˜ ํŠน์„ฑ ์ƒ, ๋ชจ๋ธ์ด ํ”ฝ์…€์„ ๋ฌผ์ฒด๋กœ ๋ถ„๋ฅ˜ํ•˜๋Š” ๋ฐ์— ์ƒ‰์ƒ ์ •๋ณด๋ฅผ ๋งŽ์ด ํ™œ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ๊ทธ์— ๋”ฐ๋ผ ํ”ฝ์…€์˜ RGB ๊ฐ’์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ๋ฐ์ดํ„ฐ ์ฆ๊ฐ•์ด ์•…์˜ํ–ฅ์„ ๋ฏธ์ณค์„ ๊ฒƒ์ด๋ผ๊ณ  ์˜ˆ์ƒํ•ด๋ณผ ์ˆ˜ ์žˆ๋‹ค.

๋”ฐ๋ผ์„œ, ๊ธฐ์กด ์ด๋ฏธ์ง€์—์„œ ์Šคํƒ€์ผ๋งŒ์„ ๋ฐ”๊พธ๋Š” augmentation์ด ์•„๋‹Œ ์ƒˆ๋กœ์šด ์ฆ๊ฐ• ๊ธฐ๋ฒ•์„ ํ™œ์šฉํ•ด ๋ณด๊ธฐ๋กœ ํ•˜์˜€๋‹ค.


5) Data Augmentation - Copy & Paste

โ‘  ์•„์ด๋””์–ด or ๊ฐ€์„ค

output.png

ํ˜„์žฌ ์ฃผ์–ด์ง„ ๋ฐ์ดํ„ฐ๋Š” class imbalance ๋ฌธ์ œ๊ฐ€ ๊ทน์‹ฌํ•˜๋ฉฐ, ํŠนํžˆ Clothing, Battery ๋ฐ์ดํ„ฐ๊ฐ€ ๋„ˆ๋ฌด ๋ถ€์กฑํ•ด์„œ ๋ชจ๋ธ์ด ํ•ด๋‹น ํด๋ž˜์Šค๋ฅผ ์ œ๋Œ€๋กœ ๋ถ„๋ฅ˜ํ•˜๊ณ  ์žˆ์ง€ ๋ชปํ•˜๋‹ค.

โ‘ก ์‹คํ—˜ ์„ค๊ณ„

  1. ์ „์ฒด ๋ฐ์ดํ„ฐ์…‹์˜ ์ด๋ฏธ์ง€ ์ค‘, background๊ฐ€ ์ฐจ์ง€ํ•˜๋Š” ํ”ฝ์…€์˜ ๋น„์œจ์ด ๋†’์€ ์ˆœ์„œ๋Œ€๋กœ ๊ฐ€์ ธ์™€ ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง€๋กœ ํ™œ์šฉํ•œ๋‹ค.
  2. Clothing ๊ณผ Battery ๊ฐ€ ์กด์žฌํ•˜๋Š” ์ด๋ฏธ์ง€์—์„œ ํ•ด๋‹น ๋ฌผ์ฒด์˜ ๋งˆ์Šคํฌ๋งŒ์„ ๋ณต์‚ฌํ•œ๋‹ค.
  3. ๋žœ๋คํ•œ ๊ฐ’์— ๋”ฐ๋ผ ๋ฌผ์ฒด์˜ ๋งˆ์Šคํฌ๋ฅผ ํ™•๋Œ€/์ถ•์†Œํ•˜๊ณ  ํšŒ์ „์‹œ์ผœ ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง€์— ๋ถ™์—ฌ ๋„ฃ๋Š”๋‹ค.

0011.png

์ƒ๊ธฐ๋œ ๊ณผ์ •์„ ํ†ตํ•ด ๋งŒ๋“ค์–ด์ง„ ์ด๋ฏธ์ง€์˜ ์˜ˆ์‹œ๋Š” ์œ„์™€ ๊ฐ™๋‹ค.

์ด๋Ÿฌํ•œ ์ด๋ฏธ์ง€๋“ค์„ Battery ๋Œ€์ƒ 50์žฅ, Clothing ๋Œ€์ƒ 100์žฅ ์ถ”๊ฐ€ํ•˜์—ฌ ํ•™์Šต์„ ์ง„ํ–‰ ์‹œ์ผฐ๋‹ค.

โ‘ข ์‹คํ—˜ ๊ฒฐ๊ณผ

W&B Chart 2023. 1. 9. ์˜คํ›„ 12_04_25.png

W&B Chart 2023. 1. 9. ์˜คํ›„ 12_04_16.png

๋ฐ์ดํ„ฐ๋ฅผ ์ฆ๊ฐ•์‹œ์ผœ ์ฃผ์—ˆ์„ ๋•Œ ๋ชจ๋ธ์ด Clothing ๊ณผ Battery ํด๋ž˜์Šค๋ฅผ ๋” ์ž˜ ๋งž์ถ”๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

โ‘ฃ ๊ฒฐ๊ณผ ๋ถ„์„

ํ•ด๋‹น augmentation ๋ฐฉ๋ฒ•์ด class imbalance ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ์— ํšจ๊ณผ๊ฐ€ ์žˆ์Œ์„ ์ž…์ฆํ•˜์˜€๋‹ค.

๋‹จ, Clothing ์— ๋น„ํ•˜์—ฌ Battery ๋Œ€์ƒ์œผ๋กœ๋Š” ๋ชจ๋ธ์˜ ์„ฑ๋Šฅ ์ˆ˜๋ ด ์†๋„๊ฐ€ ๋นจ๋ผ์ง„ ๊ฒƒ์— ๋น„ํ•ด ์ตœ๋Œ€ ์„ฑ๋Šฅ์—๋Š” ํฐ ์ฐจ์ด๊ฐ€ ์—†์—ˆ๋Š”๋ฐ, ๊ทธ ์ด์œ ๋Š” ์•„๋ž˜ ์ด๋ฏธ์ง€์™€ ๊ฐ™์€ ์˜ˆ์‹œ๋ฅผ ํ†ตํ•ด ํ™•์ธ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

Untitled

train dataset์—๋Š” ๋Œ€๋ถ€๋ถ„ ์›๊ธฐ๋‘ฅ ๋ชจ์–‘์˜ ๋ฐฐํ„ฐ๋ฆฌ๋งŒ์ด ์กด์žฌํ•˜๋ฉฐ, ์œ„์™€ ๊ฐ™์€ ์œก๋ฉด์ฒด ๋ชจ์–‘์˜ ๋ฐฐํ„ฐ๋ฆฌ๋Š” test dataset์—๋งŒ ์กด์žฌํ•˜์˜€๋‹ค. ๋”ฐ๋ผ์„œ, ๋ฐ์ดํ„ฐ๋ฅผ ์ฆ๊ฐ•์‹œ์ผœ ์ฃผ๋”๋ผ๋„ ๋ชจ๋ธ์ด ์ด๋Ÿฌํ•œ ์ด๋ฏธ์ง€์˜ ํด๋ž˜์Šค๋ฅผ ๋งž์ถ”๋Š” ๊ฒƒ์€ ์‚ฌ์‹ค์ƒ ์–ด๋ ค์šด task ์˜€๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ Battery ๋ฐ์ดํ„ฐ ์ž์ฒด์˜ ์ˆ˜๊ฐ€ ๋งค์šฐ ์ ์—ˆ๊ธฐ ๋•Œ๋ฌธ์—, ์œ„์™€ ๊ฐ™์€ ์ผ€์ด์Šค๊ฐ€ IoU metric์ด ์ผ์ • ์ˆ˜์ค€ ์ด์ƒ์œผ๋กœ ์ƒ์Šนํ•˜๋Š” ๋ฐ์— ํฐ ์ œํ•œ์„ ๋‘์—ˆ์„ ๊ฒƒ์ด๋‹ค.


6) Pseudo Labeling

โ‘  ์•„์ด๋””์–ด or ๊ฐ€์„ค

์šฐ๋ฆฌ๋Š” best mIoU์˜ ๋ชจ๋ธ๋กœ ์ƒ์„ฑํ•œ pseudo labeling์„ ์‚ฌ์šฉํ•˜๋ฉด ์กฐ๊ธˆ ๋” ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ๊ฐ€์ ธ ์˜ฌ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋ผ ๊ฐ€์ •ํ•˜์˜€๋‹ค.

๋งŒ์•ฝ ์Šค์ฝ”์–ด๊ฐ€ ๋†’์•„์ง„๋‹ค๋ฉด ๋‹ค์‹œ ์ตœ๊ณ  ์„ฑ๋Šฅ์˜ ๋ชจ๋ธ๋กœ ๋‹ค์‹œ pseudo label์„ ํ•˜์—ฌ ๋‹จ๊ณ„์ ์œผ๋กœ ํ•™์Šต ์‹œํ‚จ๋‹ค๋ฉด, ์ •ํ™•๋„๊ฐ€ ๋†’์€ pseudo label๋กœ ํŠธ๋ ˆ์ด๋‹ ๋  ๊ฒƒ์ด๋ผ๊ณ  ๊ฐ€์„ค์„ ์„ธ์› ๋‹ค.

โ‘ก ์‹คํ—˜ ์„ค๊ณ„

model: upernet_beit_adapter_large

model description
1 (๋น„๊ต๊ตฐ) train set์œผ๋กœ mIoU 0.7773์„ ๋‹ฌ์„ฑํ•œ ๋ชจ๋ธ
2 1๋ฒˆ ๋ชจ๋ธ์„ ์ด์šฉํ•˜์—ฌ ๋งŒ๋“  pseudo label์„ ์ด์šฉํ•˜์—ฌ ํ•™์Šตํ•œ ๋ชจ๋ธ
3 2๋ฒˆ ๋ชจ๋ธ์„ ์ด์šฉํ•˜์—ฌ ๋‹ค์‹œ ๋งŒ๋“  pseudo label์„ ์ด์šฉํ•˜์—ฌ ํ•™์Šตํ•œ ๋ชจ๋ธ

โ‘ข ์‹คํ—˜ ๊ฒฐ๊ณผ

model mIoU
1 0.7773
2 0.7959
3 0.7929

โ‘ฃ ๊ฒฐ๊ณผ ๋ถ„์„

์ˆ˜๋„ ๋ผ๋ฒจ์„ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์„ฑ๋Šฅ์ด ํฌ๊ฒŒ ์ข‹์•„์ง„ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค(+0.02) ํ•˜์ง€๋งŒ ์ƒ๊ฐ๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ ๋” ์ •ํ™•๋„๊ฐ€ ๋†’์€ ๋ชจ๋ธ๋กœ ๋‹ค์‹œ ๋งŒ๋“  ์ˆ˜๋„ ๋ผ๋ฒจ๋กœ ์žฌํ•™์Šตํ•œ ๋ชจ๋ธ์€ ์„ฑ๋Šฅ์˜ ํฐ ์ฐจ์ด๊ฐ€ ์—†๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. (0.7959, 0.7929) ๋„ˆ๋ฌด ์ž‘์€ epoch 5๋กœ ํŠธ๋ ˆ์ด๋‹ ํ•ด์„œ ๋‚˜์˜จ ๊ฒฐ๊ณผ์ผ ์ˆ˜๋„ ์žˆ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. (์‹œ๊ฐ„ ๋ถ€์กฑ์œผ๋กœ ์ถ”๊ฐ€ ์‹คํ—˜ ์ง„ํ–‰ ๋ชปํ•จ)

pseudo label์˜ ํšจ๊ณผ๋ฅผ ์ง์ ‘ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ์‹คํ—˜์ด์—ˆ๋‹ค.


7) Ensemble

โ‘  ์•„์ด๋””์–ด or ๊ฐ€์„ค

๋ชจ๋ธ, pretrained weight, ํ•™์Šต ํŒŒ๋ผ๋ฏธํ„ฐ, ์‚ฌ์šฉ ๋ฐ์ดํ„ฐ ๋“ฑ์˜ ์„ฑ๊ฒฉ์ด ๋‹ค๋ฅธ ๋‹ค์–‘ํ•œ inference ๊ฒฐ๊ณผ๋“ค์„ ์กฐํ•ฉํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ์ผ๋ฐ˜ํ™” ์„ฑ๋Šฅ์ด ๋†’์€ ์ œ์ถœ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

โ‘ก ์‹คํ—˜ ์„ค๊ณ„

Untitled

์ œ์ถœ ์„ฑ๋Šฅ์ด ์ข‹์•˜๋˜ ๋‹ค์–‘ํ•œ ์„ฑ๊ฒฉ์˜ inference ํŒŒ์ผ๋“ค์„ ๋ชจ์•„ ๋‘๊ณ , ์กฐํ•ฉ์„ ๋‹ค๋ฅด๊ฒŒ ํ•˜์—ฌ hard-vote ensembleํ•˜๊ณ  ๊ทธ ์ œ์ถœ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋กํ•˜์˜€๋‹ค.

โ‘ข ์‹คํ—˜ ๊ฒฐ๊ณผ

Untitled

โ‘ฃ ๊ฒฐ๊ณผ ๋ถ„์„

์ผ๋ฐ˜์ ์œผ๋กœ ์•™์ƒ๋ธ”์„ ์ง„ํ–‰ํ•˜๋ฉด ๋ฌด์กฐ๊ฑด์ ์œผ๋กœ ์ œ์ถœ ์ ์ˆ˜๊ฐ€ ์ƒ์Šนํ•˜๋Š” ๊ฒฝํ–ฅ์„ ๋ณด์˜€๋‹ค.

๋‹จ, ์•™์ƒ๋ธ”์— ์–ด๋– ํ•œ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•ด์•ผ ์ ์ˆ˜ ์ƒ์Šน์„ ๋ณด์žฅํ•˜๋Š”์ง€์™€ ๊ฐ™์€ ์ •์„ฑ์ ์ธ ์ง€ํ‘œ๋Š” ํ™•์ธํ•˜๊ธฐ ํž˜๋“ค์—ˆ๋‹ค. ์ด๋Š” ์•™์ƒ๋ธ” ๊ธฐ๋ฒ•์˜ ๊ณ ์œ ํ•œ ํŠน์„ฑ(์ง€๋‚˜์นœ ๋ฌด์ž‘์œ„์„ฑ)์—์„œ ๊ธฐ์ธํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ธ๋‹ค.


โ…ก. ์œ ํ‹ธ๋ฆฌํ‹ฐ

์•„๋ž˜๋Š” ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ์ค‘ ํšจ์œจ์ ์ธ ์ˆ˜ํ–‰์„ ์œ„ํ•ด ํŒ€์—์„œ ๊ฐœ๋ฐœํ•œ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋“ค์ด๋‹ค.

index filename.py ์œ ํ‹ธ๋ฆฌํ‹ฐ ์„ค๋ช…
1 make_pseudo_label.py ํ•™์Šต๋œ ๋ชจ๋ธ์„ ์ด์šฉํ•˜์—ฌ test data์˜ pseudo label(img annot)์„ ๋งŒ๋“ค์–ด mmseg์—์„œ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋™์ž‘ํ•˜๋Š” ์œ ํ‹ธ๋ฆฌํ‹ฐ
2 split_train_valid.ipynb train_all์„ class ๋ถ„ํฌ๊ฐ€ ์œ ์ง€ํ•˜๋„๋ก train/validset์œผ๋กœ splitํ•˜๋Š” ์œ ํ‹ธ๋ฆฌํ‹ฐ
3 convert_mmseg_dataset.py coco dataset์„ mmseg์— ๋งž๋Š” dataset์œผ๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ๋Š” ์œ ํ‹ธ๋ฆฌํ‹ฐ
4 copy_and_paste_augmentation.ipynb ์ผ์ • ํด๋ž˜์Šค์˜ ์ด๋ฏธ์ง€๋ฅผ ๋งˆ์Šคํ‚นํ•ด ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง€์— ๋ถ™์—ฌ๋„ฃ์–ด ์ƒˆ๋กœ์šด ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐ์ดํ„ฐ ์ฆ๊ฐ• ์œ ํ‹ธ๋ฆฌํ‹ฐ
5 hard_vote_ensemble.ipynb inferenceํ•œ ๊ฒฐ๊ณผ๋“ค์„ ๊ฐ€์ ธ์™€ ํ”ฝ์…€ ๋‹จ์œ„๋กœ hard-vote ensemble์„ ํ•˜๊ธฐ ์œ„ํ•œ ์œ ํ‹ธ๋ฆฌํ‹ฐ
6 streamlit visualization ๋ชจ๋ธ์ด test dataset์— ๋Œ€ํ•ด ์ถ”๋ก ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์‹œ๊ฐ์ ์œผ๋กœ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ streamlit ์œ ํ‹ธ๋ฆฌํ‹ฐ

About

level2_semanticsegmentation_cv-level2-cv-04 created by GitHub Classroom

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •