๊ณต์์ฐฌ | ๊ณฝ๋ฏผ๊ตฌ | ๊น์ค์ญ | ๊น์ง์ฉ | ์ฌ์ฉ์ฒ | ์ค์ฌ์ | ์ตํ์ง |
---|---|---|---|---|---|---|
Notion | TIL | Git | Blog | Notion | TIL | Devlog |
์ ๋ถ๋ฆฌ ๋ฐฐ์ถ ๋ ์ฐ๋ ๊ธฐ๋ ์์์ผ๋ก์ ๊ฐ์น๋ฅผ ์ธ์ ๋ฐ์ ์ฌํ์ฉ๋์ง๋ง, ์๋ชป ๋ถ๋ฆฌ๋ฐฐ์ถ ๋๋ฉด ๊ทธ๋๋ก ํ๊ธฐ๋ฌผ๋ก ๋ถ๋ฅ๋์ด ๋งค๋ฆฝ ๋๋ ์๊ฐ๋๊ธฐ ๋ฉ๋๋ค.
๋ฐ๋ผ์ ์ฐ๋ฆฌ๋ ์ฌ์ง์์ ์ฐ๋ ๊ธฐ๋ฅผ Segmentationํ๋ ๋ชจ๋ธ์ ๋ง๋ค์ด ์ด๋ฌํ ๋ฌธ์ ์ ์ ํด๊ฒฐํด๋ณด๊ณ ์ ํฉ๋๋ค. ๋ฌธ์ ํด๊ฒฝ์ ์ํ ๋ฐ์ดํฐ์ ์ผ๋ก๋ ๋ฐฐ๊ฒฝ, ์ผ๋ฐ ์ฐ๋ ๊ธฐ, ํ๋ผ์คํฑ, ์ข ์ด, ์ ๋ฆฌ ๋ฑ 11์ข ๋ฅ์ ์ฐ๋ ๊ธฐ๊ฐ ์ฐํ ์ฌ์ง ๋ฐ์ดํฐ์ ์ด ์ ๊ณต๋ฉ๋๋ค.
์ฌ๋ฌ๋ถ์ ์ํด ๋ง๋ค์ด์ง ์ฐ์ํ ์ฑ๋ฅ์ ๋ชจ๋ธ์ ์ฐ๋ ๊ธฐ์ฅ์ ์ค์น๋์ด ์ ํํ ๋ถ๋ฆฌ์๊ฑฐ๋ฅผ ๋๊ฑฐ๋, ์ด๋ฆฐ์์ด๋ค์ ๋ถ๋ฆฌ์๊ฑฐ ๊ต์ก ๋ฑ์ ์ฌ์ฉ๋ ์ ์์ ๊ฒ์ ๋๋ค.
- Linux version 4.4.0-59-generic
- Python >= 3.8.5
- PyTorch >= 1.7.1
- conda >= 4.9.2
- tensorboard >= 2.4.1
- CPU: Intel(R) Xeon(R) Gold 5220 CPU @ 2.20GHz
- GPU: Tesla V100-SXM2-32GB
ํ๊ตฌ์ฑ | ์ญํ |
---|---|
๊ณต์์ฐฌ_T2009 | Custom loss, Optimizer ์ ์ฉ |
๊ณฝ๋ฏผ๊ตฌ_T2255 | Optimizer, Loss, Scheduler Test ์งํ |
๊น์ค์ญ_T2056 | Segmentation Multi-label Stratified K-fold ๊ตฌ์ฑ |
๊น์ง์ฉ_T2063 | Copy paste ๋ฐ์ดํฐ ์ ์ ์ |
์ฌ์ฉ์ฒ _T2122 | Model ํ์, Resize ๋ฐ weighted loss ์คํจ์ฑ ๊ฒ์ฆ |
์ค์ฌ์_T2133 | Stratified K-fold ๋ฐ์ดํฐ์ ์ฝ๋ ํ ์์ฑ |
์ตํ์ง_T2234 | Baseline Code ์์ฑ, Pseudo Labeling, Oversampling |
- Segmentation task์์ ๋ฐ์ดํฐ๋ฅผ reasonableํ๊ฒ train/val dataset์ ๋๋๊ธฐ ์ํจ
- ์๋์ ๊ฐ์ด ๊ฐ ์ด๋ฏธ์ง๋ง๋ค 3๊ฐ์ง label์ ์ ์ ํ Multi-label Stratified K-Fold๋ก ๋ฐ์ดํฐ๋ฅผ ๋๋
์๊ฐ ์ ์ Class๋ฅผ ์ต๋ํ ํฌํจํ๊ธฐ ์ํด ์ด๋ฏธ์ง๋ง๋ค ๊ฐ์ฅ ์ ์ ์์ ํด๋นํ๋ ํด๋์ค๋ฅผ ์ด๋ฏธ์ง์ ํด๋์ค๋ก ์ ์
์ด๋ฏธ์ง๋น Class์ ์
์ด๋ฏธ์ง๋น Annotation์ ์
- ๊ฐ์ฅ ์ฑ๋ฅ์ด ์ข์ ๋ชจ๋ธ์ inference ๊ฒฐ๊ณผ๋ก ํ์ต ๋ฐ์ดํฐ๋ฅผ ๋ง๋ค๊ณ ์ฌํ์ต
- Segmentation task ํน์ฑ์ผ๋ก ์ ์ ํฌ๊ฒ ํฅ์(0.727 -> 0.75)
- Dense CRF ๊ธฐ๋ฒ์ ์ ์ฉํด boundary ์ข ๋ ๋๋ ทํ๊ฒ ๋ฐ์, ๋จ์ผ ๊ฐ์ฒด์์ ์ฑ๋ฅ ํฅ์ ๊ธฐ๋
baseline/
โโโ train.py # main
โโโ trainer.py
โโโ dataset.py
โโโ test.py
โโโ utils.py
โโโ models/ # train model package
โโโ loss/ # loss metric package
โโโ scheduler/ # scheduler package
โโโ model
โโโ exp1/ # model file will save here
util/
โโโ oversampling.py
โโโ pseudo_labeling.py
copy_paste/
โโ check_copy_paste.ipynb
โโ copy_paste.py
โโ mask_convert_json.py
โโ get_coco_mask.py
โโ README.md
โโ requirements.txt
- Random Horizontal Flip
- Large Scale Jittering
- Copy-Paste
- Large patch to Small patch
- Small patch to Large patch
- Random Flip
1. ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ๊ณ ์ ํ๋ค๋ฉด ํด๋น ๋๋ ํ ๋ฆฌ์ ๋ค์ด๊ฐ ๋ค์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ค.
./aug.sh
2. ๋ช ๋ น์ด๋ฅผ ๋ฐ๋ก ์ ๋ ฅํ๊ณ ์ ํ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ ์์๋ก ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ค.
pip install -r requirements.txt
python get_coco_mask.py
--input_dir ../../input/data/
--split train_all
python copy_paste.py --input_dir ../../input/data/ --output_dir ../../input/data/
--patch ["Paper pack", "Battery", "Plastic", 'Clothing',"Glass" ]
--remove_patch ["Paper", "Plastic bag"]
--json_path train.json
--lsj True
--lsj_max 2
--lsj_min 0.2
--aug_num 1500
--extract_patch True
python mask_coco_mask.py
--main_json train.json
--mode add
python train.py \
--model UPlusPlus_Efficient_b5 \
--epochs 200 \
--loss FocalLoss \
--val_json kfold_0_val.json \
--train_json kfold_0_train.json \
--train_augmentation CustomTrainAugmentation \
--batch_size 5
python test.py python test.py --model_dir model/exp --model_name epoch10.pth --augmentation TestAugmentation
- reference here
exmple/