SAM (Segment Anything Model)
Meta ์์ SAM (Segment Anything Model) ์ด๋ผ๋ ์ด๋ค ๊ฒ์ด๋ ๋ถํ ํ ์ ์๋ ๋ชจ๋ธ์ ๊ณต๊ฐํ๋ค. ๋
ผ๋ฌธ ์ ๋ชฉ ์์ฒด๊ฐ 'Segment Anything' ์ธ๋ฐ ๊ต์ฅํ ์์ ๊ฐ ๋์น๋ ์๋ฉ์ด๋ค.
๊ฐ๋จํ ์ค๋ช
์ ์ดํด๋ณด๋ฉด, SAM์ point๋ box์ ๊ฐ์ ์
๋ ฅ ํ๋กฌํํธ๋ฅผ ํตํด ๊ณ ํ์ง ๊ฐ์ฒด ๋ง์คํฌ๋ฅผ ์์ฑํ๋ฉฐ ๋ชจ๋ ๊ฐ์ฒด์ ๋ํ ๋ง์คํฌ๋ฅผ ์์ฑํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ค๊ณ ํ๋ค. ์ฝ 1,100๋ง ๊ฐ์ ์ด๋ฏธ์ง์ 11์ต ๊ฐ์ ๋ง์คํฌ๋ก ๊ตฌ์ฑ๋ ๋ฐ์ดํฐ์
์ผ๋ก ํ์ต๋์์ผ๋ฉฐ ๋ค์ํ segmentation task์์ ๊ฐ๋ ฅํ zero-shot ์ฑ๋ฅ์ ๋ณด์ธ๋ค๊ณ ํ๋ค.
Segment Anything ์น๋ฐ๋ชจ
Segment Anything
Meta AI Computer Vision Research
segment-anything.com
Meta AI์์ SAM์ ์น๋ฐ๋ชจ๋ฅผ ์ ๊ณตํ๊ณ ์์ด ๋ค์ํ ์ํ ์ด๋ฏธ์ง๋ ์
๋ก๋ํ ์ด๋ฏธ์ง๋ก SAM ๋ชจ๋ธ์ ์ฌ์ฉํด ๋ณผ ์ ์๋ค. ์์ ๋งํ๋๋ก ์ด๋ฏธ์ง์์ ์ ์ ์ฐ๊ฑฐ๋ ๋ฐ์ค๋ฅผ ๊ทธ๋ ค ๊ฐ์ฒด๋ฅผ ๋ถํ ํ๊ฑฐ๋ ์ด๋ฏธ์ง ์ ์ฒด์ ๋ํ ๊ฐ์ฒด ๋ถํ ์ ์คํํ ์๋ ์๋ค.
์ฝ๋๋ฅผ ์ฌ์ฉํ์ฌ SAM ๋ชจ๋ธ์ ์ฌ์ฉ ์ ๋์ฑ ๋ค์ํ ์์ฉ์ด ๊ฐ๋ฅํ๋ฏ๋ก ๊ตฌ๊ธ ์ฝ๋ฉ์ ์ด์ฉํ ํํ ๋ฆฌ์ผ์ ์งํํด ๋ณด๊ณ ์ ํ๋ค. (ํํ ๋ฆฌ์ผ ์ฝ๋)
SAM ํํ ๋ฆฌ์ผ #1 - ์๋ ๋ถํ
์ฒซ ๋ฒ์งธ ํํ ๋ฆฌ์ผ์ ํฌ์ธํธ๋ ๋ฐ์ค ์
๋ ฅ ์์ด ์๋์ผ๋ก ๊ฐ์ฒด๋ฅผ ๋ถํ ํ๋ ๋ฐฉ๋ฒ์ด๋ค. ๋ฌผ๋ก ์๋์ด๋๋ผ๋ ๊ฐ์ข
ํ๋ผ๋ฏธํฐ๋ฅผ ์กฐ์ ํ์ฌ ๋ํ
์ผ์ ๋ณ๊ฒฝํ ์ ์๋ค.
![](https://blog.kakaocdn.net/dn/bUecoo/btsbCiJvi9E/li8KMODVS581EnjJP5aXbk/img.png)
![](https://blog.kakaocdn.net/dn/bmqVZI/btsbBXlbEWw/KSoLK3PoqzyXyZ5xN358kk/img.png)
- ์ฐ์ SAM์ ์คํํ๊ธฐ ์ํ ํ๊ฒฝ ์ค์ ํ์
- output ๋ง์คํฌ๋ฅผ ๋ณด์ฌ์ฃผ๊ธฐ ์ํ ํจ์ ์ ์ธ
![](https://blog.kakaocdn.net/dn/bR6RzP/btsbFHVXDkC/9HmXKuW8FYmjZzJ0TF3Dg1/img.png)
![](https://blog.kakaocdn.net/dn/cdBr13/btsbDErQ7pd/qk5fqpvFBUg3vsAdsdVOC0/img.png)
- ๋ค์ด๋ฐ์ 'dog.jpg'๋ฅผ ์ฌ์ฉํด๋ ๋์ง๋ง ์์์ฒ๋ผ ์ด๋ฏธ์ง๋ฅผ ์ ๋ก๋ํด์ ์ฌ์ฉ ๊ฐ๋ฅ
- ์ ๋ก๋ํ๋ ๊ฒฝ์ฐ ๋ฐ์ดํธ ๋ฐ์ดํฐ๋ฅผ ๋ณํํ๋ ๊ณผ์ ํ์ (์ ์ฝ๋ ์ฐธ๊ณ )
![](https://blog.kakaocdn.net/dn/bWBfTW/btsbFiosk4Q/rVK5kLH5UTA3ayFCvstma1/img.png)
![](https://blog.kakaocdn.net/dn/PLMLh/btsbBcbZYTg/PnVa8ZbaLcDuUvZIXj5fUK/img.png)
![](https://blog.kakaocdn.net/dn/b6SGK5/btsbDtjHLTU/y2LkfMV3Amf0VMVh9aSkAK/img.png)
- ์ด๋ฏธ์ง ์ ๋ ฅ๋ง์ผ๋ก ๊ฐ์ฒด ๋ถํ
- Default ํ๋ผ๋ฏธํฐ ๊ฐ์ผ๋ก ์คํ
![](https://blog.kakaocdn.net/dn/cJM12a/btsbHjHhfCK/PGv8N74xGaFau36xdkjeb1/img.png)
![](https://blog.kakaocdn.net/dn/DtEzq/btsbI3jYSji/fUevkHCISU1ZP3rBZL74wk/img.png)
- mask generator์ ํ๋ผ๋ฏธํฐ๋ฅผ ๋ณ๊ฒฝํ์ฌ ๊ฐ์ฒด ๋ถํ
SAM ํํ ๋ฆฌ์ผ #2 - ์ ํ ๋ถํ
๋ ๋ฒ์งธ ํํ ๋ฆฌ์ผ์ ํฌ์ธํธ๋ ๋ฐ์ค ์
๋ ฅ์ผ๋ก ๊ฐ์ฒด๋ฅผ ๋ถํ ํ๋ ๋ฐฉ๋ฒ์ด๋ค. ์๋ ๋ฐฉ๋ฒ์ ๋นํด ์ํ๋ ๊ฒฐ๊ณผ๋ฅผ ์ป๊ธฐ ์ฝ๊ณ ๋ฐ์ค์ ํฌ์ธํธ์ ์กฐํฉ ๋ฑ์ผ๋ก ๊ฝค ๋ํ
์ผํ ๊ฐ์ฒด ๋ถํ ์ด ๊ฐ๋ฅํ๋ค. (e.g. ์๋์ฐจ ๋ฐํด์์ ํ ์ ์ ์ธํ ํ์ด์ด๋ง ๋ถํ )
*ํ๊ฒฝ ์ธํ ์ ์๋ต
![](https://blog.kakaocdn.net/dn/bJDu6T/btsbBYLcjui/Mq73FScIckovw0oulMXOk1/img.png)
- ์ํ๋ ์ด๋ฏธ์ง๋ฅผ ์ ๋ก๋ํ ์๋ ์๊ณ ๋ค์ด๋ฐ์ 'truck.jpg' ์ด๋ฏธ์ง๋ ์ฌ์ฉ ๊ฐ๋ฅ
![](https://blog.kakaocdn.net/dn/cYxjkJ/btsbFgxot2B/zZLkFv0n6WF07rhvVtZhgk/img.png)
![](https://blog.kakaocdn.net/dn/cMuMrD/btsbMmjowPr/PFWiyo9gCjwt2yXwIsaNm1/img.png)
- ํฌ์ธํธ๋ก ๊ฐ์ฒด ๋ถํ ์ ํ๊ธฐ ์ํด ์ด๋ฏธ์ง์ ํน์ ์์น์ ์ขํ ์ค์
- ์์ ์์๋ ํธ๋ญ์ ์ฐฝ๋ฌธ์ ํฌ์ธํธ ์ง์
![](https://blog.kakaocdn.net/dn/bm6CoB/btsbGuWsc8L/CH6Lr6yNmiTxKfEDVxdyN1/img.png)
![](https://blog.kakaocdn.net/dn/b0iEXG/btsbA5cKveY/ylRDLZvkLK3I8bGW64VxQ0/img.png)
![](https://blog.kakaocdn.net/dn/VwJfT/btsbMmjou7F/G75HrkncKPtiqOHVPkPiTk/img.png)
![](https://blog.kakaocdn.net/dn/bCSltK/btsbDupnyKV/gOIO9swkJVe8RnUAAnKE50/img.png)
- multitask_output = True๋ก ์ง์ ํ์ฌ mask๊ฐ 3๊ฐ ์ถ๋ ฅ๋๊ณ ์ด๋ค์ ๊ณ์ธต์ ๋ถํ ๊ฒฐ๊ณผ
- ์์ ์ ๊ฒฝ์ฐ ๊ฐ์ฅ ์์ ๋จ์์ ์ฐฝ๋ฌธ, ์ฐ๊ฒฐ๋ ์ฐฝ๋ฌธ, ์ฐจ๋ ์ ์ฒด๋ฅผ ๋ถํ
![](https://blog.kakaocdn.net/dn/catXWf/btsbFivb5jf/P9h7dRJNKVsQh3dVtdhlz1/img.png)
![](https://blog.kakaocdn.net/dn/MEh2H/btsbDtKLnvc/opLseAHGcviBZKGRKisVr1/img.png)
- 2๊ฐ ์ด์์ ํฌ์ธํธ๋ค๋ก ํฌ์ธํธ๊ฐ ํจ๊ป ๊ณต์ ํ๋ ๊ฐ์ฒด๋ฅผ ๋ถํ ํ ์ ์์
![](https://blog.kakaocdn.net/dn/t0fKA/btsbBciJieO/QZaEpgJecGKHTkejdISzo1/img.png)
![](https://blog.kakaocdn.net/dn/bShK28/btsbChYbM77/H8CLx3vOfpMe2uDuHVoQM1/img.png)
- ํฌ์ธํธ์ input_label์ ์ค์ ํ์ฌ(0๋๋ 1) ํน์ ํฌ์ธํธ๋ ํฌํจํ๊ณ ํน์ ํฌ์ธํธ๋ ํฌํจํ์ง ์๋ ๋ถํ ๊ฐ๋ฅ
- ์์ ์ ๊ฒฝ์ฐ ์ฒซ ๋ฒ์งธ ํฌ์ธํธ(ํธ๋ญ ์ฐฝ๋ฌธ)์ ํฌํจํ๊ณ ๋ ๋ฒ์งธ ํฌ์ธํธ(ํธ๋ญ ์๋ฌธ)์ ํฌํจํ์ง ์๋ ๋ถํ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ค
![](https://blog.kakaocdn.net/dn/pyCuS/btsbANi8Ga3/gek9N1GVXlHqTxELAwv3q1/img.png)
![](https://blog.kakaocdn.net/dn/EmhLi/btsbCh4UiZk/75yTKp2UZdFqmjdJcLGYv1/img.png)
- ๋ฐ์ค๋ฅผ ์ด์ฉํ์ฌ ๋ฐ์ค ๋ด๋ถ์ ๊ฐ์ฒด๋ฅผ ๋ถํ ํ ์๋ ์์
![](https://blog.kakaocdn.net/dn/zxzYF/btsbGwUhcao/bcFKZ9aC1i353RZedxbct0/img.png)
![](https://blog.kakaocdn.net/dn/buiWe6/btsbBcQxIez/CrGrJKctxo6z892lLCH5O1/img.png)
- ๋ฐ์ค์ ํฌ์ธํธ์ ์กฐํฉ์ผ๋ก ๋ถํ
- point_labels ์ค์ ์ผ๋ก ๋ฐ์ค ๋ด๋ถ์ ํฌ์ธํธ ๋ถ๋ถ์ ์ ์ธํ segment๋ฅผ ์ถ์ถ ๊ฐ๋ฅ
![](https://blog.kakaocdn.net/dn/cCMBMX/btsbMnijlpI/c4xO6dJQICJXjqTzRQQKdk/img.png)
![](https://blog.kakaocdn.net/dn/bSQPrH/btsbBbjNoaZ/g5oIzKyHLY9U2BYlT5gg9k/img.png)
- ํ๋์ ์ด๋ฏธ์ง์ ๋ค์ค ์ ๋ ฅ ํ๋กฌํํธ๋ก ์ฌ๋ฌ segment ์ถ์ถ ๊ฐ๋ฅ