AbdulElahGwaith's picture
Upload folder using huggingface_hub
a9bd396 verified

CLIPSeg[[clipseg]]

PyTorch

๊ฐœ์š”[[overview]]

CLIPSeg ๋ชจ๋ธ์€ Timo Lรผddecke์™€ Alexander Ecker๊ฐ€ Image Segmentation Using Text and Image Prompts ๋…ผ๋ฌธ์—์„œ ์ œ์•ˆํ–ˆ์Šต๋‹ˆ๋‹ค. CLIPSeg๋Š” ๊ฐ€์ค‘์น˜๊ฐ€ ๊ณ ์ •๋œ CLIP ๋ชจ๋ธ์— ์ตœ์†Œํ•œ์˜ ๋””์ฝ”๋”๋ฅผ ๊ฒฐํ•ฉํ•˜์—ฌ ์ œ๋กœ์ƒท ๋ฐ ์›์ƒท ์ด๋ฏธ์ง€ ๋ถ„ํ• ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๋…ผ๋ฌธ ์ดˆ๋ก์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ด๋ฏธ์ง€ ๋ถ„ํ• ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์ „์— ์ •์˜๋œ ๊ฐ์ฒด ํด๋ž˜์Šค ์ง‘ํ•ฉ์— ๋Œ€ํ•ด ๋ชจ๋ธ์„ ํ›ˆ๋ จ์‹œํ‚ค๋Š” ๋ฐฉ์‹์œผ๋กœ ์ ‘๊ทผํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ƒˆ๋กœ์šด ํด๋ž˜์Šค๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ๋ณด๋‹ค ๋ณต์žกํ•œ ์งˆ์˜๋ฅผ ์ฒ˜๋ฆฌํ•˜๋ ค๋ฉด, ํ•ด๋‹น ๋‚ด์šฉ์„ ํฌํ•จํ•œ ๋ฐ์ดํ„ฐ ์„ธํŠธ๋กœ ๋ชจ๋ธ์„ ๋‹ค์‹œ ํ›ˆ๋ จํ•ด์•ผ ํ•˜๋ฏ€๋กœ ๋น„์šฉ์ด ๋งŽ์ด ๋“ญ๋‹ˆ๋‹ค. ์ด์— ๋ณธ ๋…ผ๋ฌธ์—์„œ๋Š” ํ…Œ์ŠคํŠธ ์‹œ์ ์— ํ…์ŠคํŠธ๋‚˜ ์ด๋ฏธ์ง€๋กœ ๊ตฌ์„ฑ๋œ ์ž„์˜์˜ ํ”„๋กฌํ”„ํŠธ๋งŒ์œผ๋กœ ์ด๋ฏธ์ง€ ๋ถ„ํ• ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ์Šคํ…œ์„ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค. ์ด ์ ‘๊ทผ ๋ฐฉ์‹์„ ํ†ตํ•ด ์„œ๋กœ ๋‹ค๋ฅธ ๊ณผ์ œ๋ฅผ ๊ฐ–๋Š” ์„ธ ๊ฐ€์ง€ ์ฃผ์š” ์ด๋ฏธ์ง€ ๋ถ„ํ•  ํƒœ์Šคํฌโ€”์ง€์‹œ ํ‘œํ˜„ ๋ถ„ํ• (referring expression segmentation), ์ œ๋กœ์ƒท ๋ถ„ํ• (zero-shot segmentation), ์›์ƒท ๋ถ„ํ• (one-shot segmentation)โ€”์„ ๋‹จ์ผ ํ†ตํ•ฉ ๋ชจ๋ธ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” CLIP ๋ชจ๋ธ์„ ๋ฐฑ๋ณธ์œผ๋กœ ์‚ผ๊ณ , ๊ณ ํ•ด์ƒ๋„ ์˜ˆ์ธก์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ํŠธ๋žœ์Šคํฌ๋จธ ๊ธฐ๋ฐ˜ ๋””์ฝ”๋”๋ฅผ ์ถ”๊ฐ€ํ•ด ์ด๋ฅผ ํ™•์žฅํ–ˆ์Šต๋‹ˆ๋‹ค. ํ™•์žฅ๋œ PhraseCut ๋ฐ์ดํ„ฐ ์„ธํŠธ๋ฅผ ํ™œ์šฉํ•ด ํ›ˆ๋ จํ•œ ๋ณธ ์‹œ์Šคํ…œ์€ ์ž์œ  ํ˜•์‹์˜ ํ…์ŠคํŠธ ํ”„๋กฌํ”„ํŠธ๋‚˜ ํŠน์ • ๋ชฉ์ ์„ ํ‘œํ˜„ํ•˜๋Š” ์ด๋ฏธ์ง€๋ฅผ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›์•„, ์ž…๋ ฅ ์ด๋ฏธ์ง€์— ๋Œ€ํ•œ ์ด์ง„ ๋ถ„ํ•  ๋งต์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ ์ด๋ฏธ์ง€ ๊ธฐ๋ฐ˜ ํ”„๋กฌํ”„ํŠธ์˜ ๋‹ค์–‘ํ•œ ๊ตฌ์„ฑ ๋ฐฉ์‹๊ณผ ๊ทธ ํšจ๊ณผ๋ฅผ ์ž์„ธํžˆ ๋ถ„์„ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด ์ƒˆ๋กœ์šด ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์ž…๋ ฅ ๋ฐฉ์‹์€ ์•ž์„œ ์–ธ๊ธ‰ํ•œ ์„ธ ๊ฐ€์ง€ ํƒœ์Šคํฌ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ํ…์ŠคํŠธ ๋˜๋Š” ์ด๋ฏธ์ง€๋กœ ์งˆ์˜ํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ์ด์ง„ ๋ถ„ํ•  ๋ฌธ์ œ์— ์œ ์—ฐํ•˜๊ฒŒ ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ, ๋ณธ ์‹œ์Šคํ…œ์ด ์–ดํฌ๋˜์Šค(affordance)๋‚˜ ๊ฐ์ฒด ์†์„ฑ๊ณผ ๊ฐ™์€ ์ผ๋ฐ˜ํ™”๋œ ์งˆ์˜์—๋„ ๋†’์€ ์ ์‘๋ ฅ์„ ๋ณด์ž„์„ ํ™•์ธํ•˜์˜€์Šต๋‹ˆ๋‹ค.

drawing

CLIPSeg ๊ฐœ์š”. ์›๋ณธ ๋…ผ๋ฌธ์—์„œ ๋ฐœ์ทŒ.

์ด ๋ชจ๋ธ์€ nielsr๋‹˜์ด ๊ธฐ์—ฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์›๋ณธ ์ฝ”๋“œ๋Š” ์—ฌ๊ธฐ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ ํŒ[[usage-tips]]

  • [CLIPSegForImageSegmentation]์€ [CLIPSegModel]๊ณผ ๋™์ผํ•œ, [CLIPSegModel] ์œ„์— ๋””์ฝ”๋”๋ฅผ ์ถ”๊ฐ€ํ•œ ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค.
  • [CLIPSegForImageSegmentation]์€ ํ…Œ์ŠคํŠธ ์‹œ์ ์— ์ž„์˜์˜ ํ”„๋กฌํ”„ํŠธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ด๋ฏธ์ง€ ๋ถ„ํ• ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ํ”„๋กฌํ”„ํŠธ๋Š” ํ…์ŠคํŠธ(input_ids), ์ด๋ฏธ์ง€(conditional_pixel_values), ์‚ฌ์šฉ์ž ์ •์˜ ์กฐ๊ฑด๋ถ€ ์ž„๋ฒ ๋”ฉ(conditional_embeddings)์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฆฌ์†Œ์Šค[[resources]]

CLIPSeg๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  Hugging Face ๊ณต์‹ ์ž๋ฃŒ์™€ ์ปค๋ฎค๋‹ˆํ‹ฐ(๐ŸŒŽ ์•„์ด์ฝ˜์œผ๋กœ ํ‘œ์‹œ)์˜ ์œ ์šฉํ•œ ๋ฆฌ์†Œ์Šค ๋ชฉ๋ก์„ ์•„๋ž˜์— ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค. ํ˜น์‹œ ๋ชฉ๋ก์— ์—†๋Š” ์ƒˆ๋กœ์šด ์ž๋ฃŒ๋‚˜ ํŠœํ† ๋ฆฌ์–ผ์„ ๊ณต์œ ํ•˜๊ณ  ์‹ถ์œผ์‹œ๋‹ค๋ฉด, ์–ธ์ œ๋“ ์ง€ Pull Request๋ฅผ ํ†ตํ•ด ์ œ์•ˆํ•ด ์ฃผ์„ธ์š”. ์ €ํฌ๊ฐ€ ๊ฒ€ํ†  ํ›„ ์†Œ์ค‘ํžˆ ๋ฐ˜์˜ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค! ๊ธฐ์กด ์ž๋ฃŒ์™€ ์ค‘๋ณต๋˜์ง€ ์•Š๋Š” ์ƒˆ๋กœ์šด ๋‚ด์šฉ์ด๋ผ๋ฉด ๋”์šฑ ์ข‹์Šต๋‹ˆ๋‹ค.

CLIPSegConfig[[transformers.CLIPSegConfig]]

[[autodoc]] CLIPSegConfig

CLIPSegTextConfig[[transformers.CLIPSegTextConfig]]

[[autodoc]] CLIPSegTextConfig

CLIPSegVisionConfig[[transformers.CLIPSegVisionConfig]]

[[autodoc]] CLIPSegVisionConfig

CLIPSegProcessor[[transformers.CLIPSegProcessor]]

[[autodoc]] CLIPSegProcessor

CLIPSegModel[[transformers.CLIPSegModel]]

[[autodoc]] CLIPSegModel - forward - get_text_features - get_image_features

CLIPSegTextModel[[transformers.CLIPSegTextModel]]

[[autodoc]] CLIPSegTextModel - forward

CLIPSegVisionModel[[transformers.CLIPSegVisionModel]]

[[autodoc]] CLIPSegVisionModel - forward

CLIPSegForImageSegmentation[[transformers.CLIPSegForImageSegmentation]]

[[autodoc]] CLIPSegForImageSegmentation - forward