nunbody_segmentation
nunbody_segmentation copied to clipboard
Alchera AI Competition 2nd Solution (body part segmentation)
๐คธโ๋๋ฐ๋ AI ๊ฒฝ์ง๋ํ ๐คธโโ๏ธ
ํ ์๊ฐ ๐โโ๏ธ๐โโ๏ธ
|
๋ฐ๋ฒ์ |
ํ๊ฑด์ฐ |
ํ์ํ |
๋ฐ์คํ |
์กฐํ์ |
๋ฐฐ๊ฒฝ
์ต๊ทผ ์ฌ๋๋ค์ ์ด๋์ ๋ํ ๊ด์ฌ๋๊ฐ ๋์์ง๋ฉด์ SNS์ ๋๋ฐ๋ ์ฌ์ง์ ์ดฌ์ํ๋ ์ฌ๋์ด ๋๊ณ ์์ต๋๋ค. ํ์ง๋ง, ์ฐ๋ฆฌ์ ๋์ ์ผ๋ง๋ ๋ฏฟ์ ์ ์์๊น์? ์ด๋ฅผ AI๊ฐ ๋ณด์ํด ์ค ์๋ ์์๊น์? ์ด๋ฒ ์ฑ๋ฆฐ์ง์์ ์ ๊ณต๋ ๋ฐ์ดํฐ๋ก ์ ๊ตํ AI ๋ชจ๋ธ์ ๊ฐ๋ฐํ๋ค๋ฉด, ์ด๋ฏธ์ง ์์์ ์ฌ๋์ body parts๋ณ ๋ฉด์ ์ ๊ตฌํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด์ ๋๋ฐ๋ ์ฌ์ง์ ์ดฌ์ํ๋ ์ฌ๋๋ค์ด ๋ด ๋ชธ์ ์ด๋ ๋ถ๋ถ์ด ๋ณํํ๊ณ ์๋์ง ์๋ ค์ฃผ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ป๊ณ ์ ํฉ๋๋ค.
์ฃผ์
์ดฌ์๋ ์ฌ์ง์์ ์ฌ๋์ ๊ฐ ์ ์ฒด๋ถ์(body parts) ๋ณ๋ก semantic segmentation AI ๋ชจ๋ธ ๊ฐ๋ฐ
๋ฐ์ดํฐ ์๊ฐ
-
train dataset - Dense COCO 2014 Dataset (https://cocodataset.org/#home)
-
test dataset - ๋ค์ํ ํฌ์ฆ๋ฅผ ์ทจํ๊ณ ์๋ ์ทจํ๊ณ ์๋ ๋จ์ฌ์ ์ ์ ์ฌ์ง (annotation์ ํฌํจํ image 800์ฅ)
-
[๋ฐฐ๊ฒฝ(background) - 0 / ๋ชธํต(body) - 1 / ์ค๋ฅธ์(R-hand) - 2 / ์ผ์(L-hand) - 3 / ์ผ๋ฐ(L-foot) - 4 / ์ค๋ฅธ๋ฐ(R-foot) - 5 / ์ค๋ฅธ์ชฝ ํ๋ฒ ์ง(R-thigh) - 6 / ์ผ์ชฝ ํ๋ฒ ์ง(L-thigh) - 7 / ์ค๋ฅธ์ชฝ ์ข ์๋ฆฌ(R-calf) - 8 / ์ผ์ชฝ ์ข ์๋ฆฌ(L-calf) - 9 / ์ผ์ชฝ ํ(L-arm) - 10 / ์ค๋ฅธ์ชฝ ํ(R-arm) - 11 / ์ผ์ชฝ ์ ์(L-forearm) - 12 / ์ค๋ฅธ์ชฝ ์ ์(R-forearm) - 13 / ๋จธ๋ฆฌ(head) - 14]
-
labeling ์ ๋ณด๋ค ์ค ๋จธ๋ฆฌ(14)๋ ํ์ต์ ์ฌ์ฉํ๋ ๊ฒ์ ๊ด๊ณ์์ผ๋ ํ๊ฐ์๋ ์ฌ์ฉํ์ง ์์ต๋๋ค.
ํ๋ก์ ํธ ๋ด์ฉ
์ฌ๋์ Body Parts ๋ณ Segmentation์ ์งํํ์ฌ ๋ณํ๋๋ ๋ชธ ์ํ๋ฅผ ํ์ธํ๊ณ ๊ด๋ฆฌ
EDA
-
Validation Data ํด์๋๊ฐ train์ ๋นํด ์๋์ ์ผ๋ก ํผ
- Validation Data ํด์๋๊ฐ 1920x1440, 2560x1440์ผ๋ก train dataset ํ๊ท ๋ณด๋ค 4~8๋ฐฐ ์ ๋ ํฐ ์ด๋ฏธ์ง๋ค์ด์์
- ์ํด์๋์์ inference ์์ฒด๊ฐ ๋ถ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ 512x512๋ก ์ผ๊ด resize ํ์ฌ ์ฌ์ฉํจ
-
๋ชจ๋ธ ํ์ผ 100MB ์ ํ
- ๋ชจ๋ธ ํ์ผ์ ํฌ๊ธฐ๊ฐ 100MB ์ ํ์ด๋ผ๋ ๋ํ ๊ท์ ๋๋ฌธ์, 100MB๋ฅผ ๋์ง ์๋ ํ๋ ๋ด์์ ์ต๋ํ ํฐ ๋ชจ๋ธ์ ์ฌ์ฉํ๋ ค๊ณ ํจ
- ์ต์ข ์ ์ผ๋ก Efficientnet-B4 + DeepLabV3+ ์กฐํฉ์ผ๋ก ์คํ์ ์งํํ์์
-
Validation Data Annotation ํ์ธ (์ข์ฐ ๋ฐ๋ + ๋ฐ ์๋ชป๋จ)
- ์ฃผ์ต์ธก์์ ์ ๊ณตํ Validation Data์ ์ข์ฐ๊ฐ ๋ฐ๋๋ก Annotation๋์ด ์์
- ์ฃผ์ต์ธก์์ ์ ๊ณตํ Validation Data์ ๋ฐ ๋ถ๋ถ์ noise๊ฐ ์กด์ฌํ์ฌ ์์
-
COCO dataset์ ๋ํ ์๋ชป๋ mask ํ์
- ์ฃผ์ต์ธก์์ ์ ๊ณตํ COCO train dataset ๋ณํ ์ฝ๋์ ๊ฐ์ฒด๋ณ mask๊ฐ ์ง์์ง๋ ๋ฌธ์ ๊ฐ ์์ด์ ์ด ๋ถ๋ถ์ ์์ ํจ
-
๋ฐ๋ Validation Data์ ๋ํด ๋ชฉ ๋ถ๋ถ์ด ์๋ชป annotation
- Validation Data์ Head๊ฐ Right thigh๋ก annotation๋ ๋ฐ์ดํฐ๊ฐ ์์ด ์์ ํจ
-
๋ฐ์ดํฐ ์ถ๊ฐ ์ ์
- Validation Dataset๊ณผ COCO Dataset์ ๋ฐ์ดํฐ์ ๋ถํฌ๊ฐ ํฌ๊ฒ ๋ฌ๋ผ COCO Dataset ๋ง์ผ๋ก๋ ์ฑ๋ฅ ํฅ์์ด ์ด๋ ต๋ค๊ณ ํ๋จํจ
- Validation Dataset์ ํ์ธํ์ฌ Google, Pinterest, Naver์์ ๊ด๋ จ ํค์๋๋ฅผ ํตํด Image Crawling ์ ํ์ฉํ์ฌ ์ถ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์์งํจ
- ์์งํ ๋ฐ์ดํฐ๋ก annotation ์์ ํ์ฌ Train ๋ฐ์ดํฐ๋ก ํ์ฉํจ
- ์์
๋ค ๊ฐ์ ์ถฉ๋์ ๋ฐฉ์งํ๊ธฐ ์ํด ๋ฃฐ์ ์ ํ๊ณ ์ด์ ๋ง๊ฒ annotation์ ์งํํ๋ ค ๋
ธ๋ ฅํจ.
- ๊ทธ๋ํฝ ์ด๋ฏธ์ง ์ ๊ฑฐ
- ์ผ๊ตด๋ง ์๋ ์ด๋ฏธ์ง ์ ๊ฑฐ
- Text Occulusion์ด ์๋ ๋ฐ์ดํฐ ์ ๊ฑฐ
- ์ท๋ง ์๋ ์ด๋ฏธ์ง ์ ๊ฑฐ
- ๋จธ๋ฆฌ์นด๋ฝ ์ฑ๋ง์ ๋ถ๋ถ์ head์ ํฌํจ
- ์ ๋ฐ์ ๋ฐ์ ํฌํจ
- ์ค๋ฒํ (์ฝํธ ๊ธฐํ ๋ฑ๋ฑ) ์ท ์ ์ ๋์ ์ ๊ฑฐ
- ์ด 331์ฅ์ ๋ฐ์ดํฐ๋ฅผ ์์ฑํจ ๐ค
-
zoom out Augmentation / random gamma Augmentation
- Validation Dataset์ ์๋ ์ด๋ฏธ์ง ๋ค ์ค์ ์ ์ฒด ์ด๋ฏธ์ง ํฌ๊ธฐ์์ ๊ฐ์ฒด๊ฐ ์ฐจ์งํ๋ ๋ฒ์๊ฐ ์์ ์ด๋ฏธ์ง๋ค์ด ์กด์ฌํจ
- Private Dataset์ ์ ์ฌํ ๋ฐ์ดํฐ๊ฐ ์๋ค๊ณ ํ๋จ๋์ด Val mIoU์์ ์ฑ๋ฅํฅ์์ด ๋ณด์ด์ง ์๋๋ผ๋ ์ถ๊ฐํจ

- Random Gamma Augmentation ์ ์ฉ์ ShiftScaleRotate๋ง ์ ์ฉ์์ผฐ์ ๋ ๋ณด๋ค ์ฑ๋ฅ์ด ํฅ์ ๋จ์ ํ์ธํจ
-
TTA
- ์ฌ๋ฌ ์ต์ ์ผ๋ก ํ ์คํธ ํ์์ผ๋ TTA ์ข ๋ฅ๋ ๊ฐ๋๋ฅผ ์ถ๊ฐํ ๊ฒฝ์ฐ, ์ผ์ชฝ, ์ค๋ฅธ์ชฝ ๊ตฌ๋ณ ์ฑ๋ฅ์ด ์คํ๋ ค ๋จ์ด์ง๋ ๊ฒ์ ํ์ธํจ
- ๊ธฐ๋ณธ์ ์ธ noise๋ง ์ ๊ฑฐํ๊ธฐ ์ํด Gamma์ ์๋์ง๋ฅผ ๋ผ ์ ์๋๋ก pixel ๊ฐ์ multiply(0.9, 1.0, 1.1)๋ง ์ ์ฉํจ
-
CRF
- CRF ์ ์ฉ์ ์๋ํ์ผ๋ annotation์ด background์ color๊ฐ ์ ์ฌํด CRF์ ์ํฅ์ ๋ฐ์ ์ญ์ ๋๋ ํ์์ด ๋ฐ์ํ๊ณ , ์ญ์ ๋์ง ์์ ๋ถ๋ถ์ ๋ํด์๋ ๋ํ ์ผํ๊ฒ annotation์ด ์ ์ฉ๋๋ ์ ์ ํ์ธํ ์ ์์์. ํ์ง๋ง ์ด๋ฒ ๋ํ์์๋ ์ ์ฉ์์ผฐ์ ๋์ ์์ค๋์ด ์ปธ๊ธฐ ๋๋ฌธ์ ์ ์ฉํ์ง ์์์.
ํ๊ฐ์งํ : mIoU
- ๊ฐ Class๋ณ๋ก IoU๋ฅผ ๋ชจ๋ ๊ตฌํฉ๋๋ค.
- ์ด๋ฏธ์ง์ ๋ชจ๋ class๊ฐ ์กด์ฌํ์ง ์์ ๊ฒ์ ๊ณ ๋ ค, ground truth์ ์กด์ฌํ๋ class์ prediction ๊ฒฐ๊ณผ์ ์กด์ฌํ๋ class์ ํฉ์งํฉ์ ๊ตฌํด์ ํฉ์งํฉ class์ ์ํ๋ class์ IoU์ ๋ํด์ ํ๊ท ๊ฐ์ ๊ตฌํฉ๋๋ค.
- 2.์์ ์ด๋ฏธ์ง ๋ณ๋ก ๊ตฌํ mIoU์ ํ๊ท ๊ฐ์ ๊ตฌํ์ฌ ์ต์ข
์์๋ฅผ ๊ฒฐ์ ํฉ๋๋ค.

๊ฒฐ๊ณผ ๐
LB Score : 0.708717 ๐ฅ
๋๋์ โจ
๊ณผ์ ์ธ์ ์ฒซ segmentation ๋ํ์ฌ์ ๊ธด์ฅ๋ ๋ง์ด ๋๊ณ , ๋ค์ํ ๊ธฐ๋ฒ์ ํ์ฉํ๋ ค๊ณ ํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋๋ ๋ง์ ๊ฒ์ ์๋ํด๋ณด๋ ค๊ณ segmentation ๊ด๋ จ ๊ณต๋ถ๋ฅผ ์ด์ด ๋๊ฐ๊ณ ๋ง์ ๊ฒ๋ค์ ์ ์ฉ์ํค๊ธฐ์ ๋ชจ๋ธ ์ฉ๋ ์ ํ ๋ฑ ์ ์ฝ์ด ์์๊ธฐ ๋๋ฌธ์ ์์ฌ์ด ์ ์ด ์์์ง๋ง, ๊ทธ๋๋ ์ฃผ์ด์ง ํ๊ฒฝ ๋ด์ ๋ง์ถ๊ธฐ ์ํด์ ๊ณต๋ถ๋ค์ ํ ์ ์์ด์ ์ข์๋ ๊ฒ ๊ฐ์ต๋๋ค.