nunbody_segmentation icon indicating copy to clipboard operation
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

  1. Validation Data ํ•ด์ƒ๋„๊ฐ€ train์— ๋น„ํ•ด ์ƒ๋Œ€์ ์œผ๋กœ ํผ

    • Validation Data ํ•ด์ƒ๋„๊ฐ€ 1920x1440, 2560x1440์œผ๋กœ train dataset ํ‰๊ท ๋ณด๋‹ค 4~8๋ฐฐ ์ •๋„ ํฐ ์ด๋ฏธ์ง€๋“ค์ด์—ˆ์Œ
    • ์›ํ•ด์ƒ๋„์—์„œ inference ์ž์ฒด๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— 512x512๋กœ ์ผ๊ด„ resize ํ•˜์—ฌ ์‚ฌ์šฉํ•จ
  2. ๋ชจ๋ธ ํŒŒ์ผ 100MB ์ œํ•œ

    • ๋ชจ๋ธ ํŒŒ์ผ์˜ ํฌ๊ธฐ๊ฐ€ 100MB ์ œํ•œ์ด๋ผ๋Š” ๋Œ€ํšŒ ๊ทœ์ • ๋•Œ๋ฌธ์—, 100MB๋ฅผ ๋„˜์ง€ ์•Š๋Š” ํ•œ๋„ ๋‚ด์—์„œ ์ตœ๋Œ€ํ•œ ํฐ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•จ
    • ์ตœ์ข…์ ์œผ๋กœ Efficientnet-B4 + DeepLabV3+ ์กฐํ•ฉ์œผ๋กœ ์‹คํ—˜์„ ์ง„ํ–‰ํ•˜์˜€์Œ
  3. Validation Data Annotation ํ™•์ธ (์ขŒ์šฐ ๋ฐ”๋€œ + ๋ฐœ ์ž˜๋ชป๋จ)

    • ์ฃผ์ตœ์ธก์—์„œ ์ œ๊ณตํ•œ Validation Data์˜ ์ขŒ์šฐ๊ฐ€ ๋ฐ˜๋Œ€๋กœ Annotation๋˜์–ด ์ˆ˜์ •
    • ์ฃผ์ตœ์ธก์—์„œ ์ œ๊ณตํ•œ Validation Data์˜ ๋ฐœ ๋ถ€๋ถ„์— noise๊ฐ€ ์กด์žฌํ•˜์—ฌ ์ˆ˜์ •
  4. COCO dataset์— ๋Œ€ํ•œ ์ž˜๋ชป๋œ mask ํ˜•์‹

    • ์ฃผ์ตœ์ธก์—์„œ ์ œ๊ณตํ•œ COCO train dataset ๋ณ€ํ™˜ ์ฝ”๋“œ์— ๊ฐ์ฒด๋ณ„ mask๊ฐ€ ์ง€์›Œ์ง€๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์–ด์„œ ์ด ๋ถ€๋ถ„์„ ์ˆ˜์ •ํ•จ
  5. ๋ฐ”๋€ Validation Data์— ๋Œ€ํ•ด ๋ชฉ ๋ถ€๋ถ„์ด ์ž˜๋ชป annotation

    • Validation Data์— Head๊ฐ€ Right thigh๋กœ annotation๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์–ด ์ˆ˜์ •ํ•จ
  6. ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ ์ œ์ž‘

    • Validation Dataset๊ณผ COCO Dataset์€ ๋ฐ์ดํ„ฐ์˜ ๋ถ„ํฌ๊ฐ€ ํฌ๊ฒŒ ๋‹ฌ๋ผ COCO Dataset ๋งŒ์œผ๋กœ๋Š” ์„ฑ๋Šฅ ํ–ฅ์ƒ์ด ์–ด๋ ต๋‹ค๊ณ  ํŒ๋‹จํ•จ
    • Validation Dataset์„ ํ™•์ธํ•˜์—ฌ Google, Pinterest, Naver์—์„œ ๊ด€๋ จ ํ‚ค์›Œ๋“œ๋ฅผ ํ†ตํ•ด Image Crawling ์„ ํ™œ์šฉํ•˜์—ฌ ์ถ”๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•จ
    • ์ˆ˜์ง‘ํ•œ ๋ฐ์ดํ„ฐ๋กœ annotation ์ž‘์—…ํ•˜์—ฌ Train ๋ฐ์ดํ„ฐ๋กœ ํ™œ์šฉํ•จ
    • ์ž‘์—…๋“ค ๊ฐ„์˜ ์ถฉ๋Œ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋ฃฐ์„ ์ •ํ•˜๊ณ  ์ด์— ๋งž๊ฒŒ annotation์„ ์ง„ํ–‰ํ•˜๋ ค ๋…ธ๋ ฅํ•จ.
      • ๊ทธ๋ž˜ํ”ฝ ์ด๋ฏธ์ง€ ์ œ๊ฑฐ
      • ์–ผ๊ตด๋งŒ ์žˆ๋Š” ์ด๋ฏธ์ง€ ์ œ๊ฑฐ
      • Text Occulusion์ด ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์ œ๊ฑฐ
      • ์˜ท๋งŒ ์žˆ๋Š” ์ด๋ฏธ์ง€ ์ œ๊ฑฐ
      • ๋จธ๋ฆฌ์นด๋ฝ ์ˆฑ๋งŽ์€ ๋ถ€๋ถ„์€ head์— ํฌํ•จ
      • ์‹ ๋ฐœ์€ ๋ฐœ์— ํฌํ•จ
      • ์˜ค๋ฒ„ํ• (์ฝ”ํŠธ ๊ธฐํƒ€ ๋“ฑ๋“ฑ) ์˜ท ์ž…์€ ๋Œ€์ƒ ์ œ๊ฑฐ
    • ์ด 331์žฅ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•จ ๐Ÿ˜ค
  7. zoom out Augmentation / random gamma Augmentation

    • Validation Dataset์— ์žˆ๋Š” ์ด๋ฏธ์ง€ ๋“ค ์ค‘์— ์ „์ฒด ์ด๋ฏธ์ง€ ํฌ๊ธฐ์—์„œ ๊ฐ์ฒด๊ฐ€ ์ฐจ์ง€ํ•˜๋Š” ๋ฒ”์œ„๊ฐ€ ์ž‘์€ ์ด๋ฏธ์ง€๋“ค์ด ์กด์žฌํ•จ
    • Private Dataset์— ์œ ์‚ฌํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋‹ค๊ณ  ํŒ๋‹จ๋˜์–ด Val mIoU์—์„œ ์„ฑ๋Šฅํ–ฅ์ƒ์ด ๋ณด์ด์ง€ ์•Š๋”๋ผ๋„ ์ถ”๊ฐ€ํ•จ

    • Random Gamma Augmentation ์ ์šฉ์‹œ ShiftScaleRotate๋งŒ ์ ์šฉ์‹œ์ผฐ์„ ๋•Œ ๋ณด๋‹ค ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ ๋จ์„ ํ™•์ธํ•จ
  8. TTA

    • ์—ฌ๋Ÿฌ ์˜ต์…˜์œผ๋กœ ํ…Œ์ŠคํŠธ ํ•˜์˜€์œผ๋‚˜ TTA ์ข…๋ฅ˜๋‚˜ ๊ฐ•๋„๋ฅผ ์ถ”๊ฐ€ํ•  ๊ฒฝ์šฐ, ์™ผ์ชฝ, ์˜ค๋ฅธ์ชฝ ๊ตฌ๋ณ„ ์„ฑ๋Šฅ์ด ์˜คํžˆ๋ ค ๋–จ์–ด์ง€๋Š” ๊ฒƒ์„ ํ™•์ธํ•จ
    • ๊ธฐ๋ณธ์ ์ธ noise๋งŒ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด Gamma์™€ ์‹œ๋„ˆ์ง€๋ฅผ ๋‚ผ ์ˆ˜ ์žˆ๋„๋ก pixel ๊ฐ’์— multiply(0.9, 1.0, 1.1)๋งŒ ์ ์šฉํ•จ
  9. CRF

    • CRF ์ ์šฉ์„ ์‹œ๋„ํ–ˆ์œผ๋‚˜ annotation์ด background์™€ color๊ฐ€ ์œ ์‚ฌํ•ด CRF์˜ ์˜ํ–ฅ์„ ๋ฐ›์•„ ์‚ญ์ œ๋˜๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ–ˆ๊ณ , ์‚ญ์ œ๋˜์ง€ ์•Š์€ ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ๋Š” ๋””ํ…Œ์ผํ•˜๊ฒŒ annotation์ด ์ ์šฉ๋˜๋Š” ์ ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ์Œ. ํ•˜์ง€๋งŒ ์ด๋ฒˆ ๋Œ€ํšŒ์—์„œ๋Š” ์ ์šฉ์‹œ์ผฐ์„ ๋•Œ์— ์†์‹ค๋Ÿ‰์ด ์ปธ๊ธฐ ๋•Œ๋ฌธ์— ์ ์šฉํ•˜์ง€ ์•Š์•˜์Œ.

ํ‰๊ฐ€์ง€ํ‘œ : mIoU

  1. ๊ฐ Class๋ณ„๋กœ IoU๋ฅผ ๋ชจ๋‘ ๊ตฌํ•ฉ๋‹ˆ๋‹ค.
  2. ์ด๋ฏธ์ง€์— ๋ชจ๋“  class๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์„ ๊ฒƒ์„ ๊ณ ๋ ค, ground truth์— ์กด์žฌํ•˜๋Š” class์™€ prediction ๊ฒฐ๊ณผ์— ์กด์žฌํ•˜๋Š” class์˜ ํ•ฉ์ง‘ํ•ฉ์„ ๊ตฌํ•ด์„œ ํ•ฉ์ง‘ํ•ฉ class์— ์†ํ•˜๋Š” class์˜ IoU์— ๋Œ€ํ•ด์„œ ํ‰๊ท ๊ฐ’์„ ๊ตฌํ•ฉ๋‹ˆ๋‹ค.
  3. 2.์—์„œ ์ด๋ฏธ์ง€ ๋ณ„๋กœ ๊ตฌํ•œ mIoU์˜ ํ‰๊ท  ๊ฐ’์„ ๊ตฌํ•˜์—ฌ ์ตœ์ข… ์ˆœ์œ„๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ ๐Ÿ†

LB Score : 0.708717 ๐Ÿฅˆ

๋А๋‚€์ โœจ

๊ณผ์ • ์™ธ์˜ ์ฒซ segmentation ๋Œ€ํšŒ์—ฌ์„œ ๊ธด์žฅ๋„ ๋งŽ์ด ๋˜๊ณ , ๋‹ค์–‘ํ•œ ๊ธฐ๋ฒ•์„ ํ™œ์šฉํ•˜๋ ค๊ณ  ํ–ˆ๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜๋„ ๋งŽ์€ ๊ฒƒ์„ ์‹œ๋„ํ•ด๋ณด๋ ค๊ณ  segmentation ๊ด€๋ จ ๊ณต๋ถ€๋ฅผ ์ด์–ด ๋‚˜๊ฐ”๊ณ  ๋งŽ์€ ๊ฒƒ๋“ค์„ ์ ์šฉ์‹œํ‚ค๊ธฐ์—” ๋ชจ๋ธ ์šฉ๋Ÿ‰ ์ œํ•œ ๋“ฑ ์ œ์•ฝ์ด ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์•„์‰ฌ์šด ์ ์ด ์žˆ์—ˆ์ง€๋งŒ, ๊ทธ๋ž˜๋„ ์ฃผ์–ด์ง„ ํ™˜๊ฒฝ ๋‚ด์— ๋งž์ถ”๊ธฐ ์œ„ํ•ด์„œ ๊ณต๋ถ€๋“ค์„ ํ•  ์ˆ˜ ์žˆ์–ด์„œ ์ข‹์•˜๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋Œ€ํšŒ(https://aiheroes.ai/1stchallenge)