SAM 2: ๋ฌด์์ด๋ ์ธ๊ทธ๋จผํธ ๋ชจ๋ธ 2
SAM 2๋ ์ด๋ฏธ์ง์ ๋์์ ๋ชจ๋์์ ํฌ๊ด์ ์ธ ๊ฐ์ฒด ๋ถํ ์ ์ํด ์ค๊ณ๋ ์ต์ฒจ๋จ ๋๊ตฌ๋ก, ๋ฉํ์ Segment Anything Model(SAM)์ ํ์ ๋ฒ์ ์ ๋๋ค. ์ค์๊ฐ ์ฒ๋ฆฌ์ ์ ๋ก ์ท ์ผ๋ฐํ๋ฅผ ์ง์ํ๋ ํตํฉ์ ์ด๊ณ ์ ์ํ ๋ชจ๋ธ ์ํคํ ์ฒ๋ฅผ ํตํด ๋ณต์กํ ์๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐ ํ์ํฉ๋๋ค.
์ฃผ์ ๊ธฐ๋ฅ
Watch: How to Run Inference with Meta's SAM2 using Ultralytics | Step-by-Step Guide ๐
ํตํฉ ๋ชจ๋ธ ์ํคํ ์ฒ
SAM 2๋ ์ด๋ฏธ์ง ๋ฐ ๋น๋์ค ์ธ๋ถํ ๊ธฐ๋ฅ์ ๋จ์ผ ๋ชจ๋ธ์ ๊ฒฐํฉํฉ๋๋ค. ์ด๋ฌํ ํตํฉ์ผ๋ก ๋ฐฐํฌ๊ฐ ๊ฐ์ํ๋๊ณ ๋ค์ํ ๋ฏธ๋์ด ์ ํ์์ ์ผ๊ด๋ ์ฑ๋ฅ์ ์ ๊ณตํ ์ ์์ต๋๋ค. ์ ์ฐํ ํ๋กฌํํธ ๊ธฐ๋ฐ ์ธํฐํ์ด์ค๋ฅผ ํ์ฉํ์ฌ ์ฌ์ฉ์๊ฐ ํฌ์ธํธ, ๊ฒฝ๊ณ ์์ ๋๋ ๋ง์คํฌ์ ๊ฐ์ ๋ค์ํ ํ๋กฌํํธ ์ ํ์ ํตํด ๊ด์ฌ ์๋ ๊ฐ์ฒด๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค.
์ค์๊ฐ ์ฑ๋ฅ
์ด ๋ชจ๋ธ์ ์ด๋น ์ฝ 44ํ๋ ์์ ์ฒ๋ฆฌํ๋ ์ค์๊ฐ ์ถ๋ก ์๋๋ฅผ ๋ฌ์ฑํฉ๋๋ค. ๋ฐ๋ผ์ SAM 2๋ ๋น๋์ค ํธ์ง ๋ฐ ์ฆ๊ฐ ํ์ค๊ณผ ๊ฐ์ด ์ฆ๊ฐ์ ์ธ ํผ๋๋ฐฑ์ด ํ์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ํฉํฉ๋๋ค.
์ ๋ก ์ท ์ผ๋ฐํ
SAM 2๋ ์ด์ ์ ๋ณธ ์ ์ด ์๋ ๋ฌผ์ฒด๋ฅผ ์ธ๋ถํํ์ฌ ๊ฐ๋ ฅํ ์ ๋ก ์ท ์ผ๋ฐํ๋ฅผ ๋ณด์ฌ์ค ์ ์์ต๋๋ค. ์ด๋ ์ฌ์ ์ ์๋ ์นดํ ๊ณ ๋ฆฌ๊ฐ ๊ฐ๋ฅํ ๋ชจ๋ ๊ฐ์ฒด๋ฅผ ํฌ๊ดํ์ง ๋ชปํ ์ ์๋ ๋ค์ํ๊ฑฐ๋ ์งํํ๋ ์๊ฐ์ ์์ญ์์ ํนํ ์ ์ฉํฉ๋๋ค.
๋ํํ ๊ฐ์
์ฌ์ฉ์๋ ์ถ๊ฐ ํ๋กฌํํธ๋ฅผ ์ ๊ณตํ์ฌ ์ธ๋ถํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ๋ณต์ ์ผ๋ก ์ธ๋ถํํ ์ ์์ผ๋ฏ๋ก ์ถ๋ ฅ์ ์ ๋ฐํ๊ฒ ์ ์ดํ ์ ์์ต๋๋ค. ์ด๋ฌํ ์ํธ์์ฉ ๊ธฐ๋ฅ์ ๋น๋์ค ์ฃผ์์ด๋ ์๋ฃ ์์๊ณผ ๊ฐ์ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๊ฒฐ๊ณผ๋ฅผ ๋ฏธ์ธ ์กฐ์ ํ๋ ๋ฐ ํ์์ ์ ๋๋ค.
์๊ฐ์ ๊ณผ์ ์ ๋ํ ๊ณ ๊ธ ์ฒ๋ฆฌ
SAM 2์๋ ์ค๋ธ์ ํธ ์คํด๋ฃจ์ ๋ฐ ์ฌ์ถํ๊ณผ ๊ฐ์ ์ผ๋ฐ์ ์ธ ๋น๋์ค ๋ถํ ๋ฌธ์ ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ ๋ฉ์ปค๋์ฆ์ด ํฌํจ๋์ด ์์ต๋๋ค. ์ ๊ตํ ๋ฉ๋ชจ๋ฆฌ ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉํด ์ฌ๋ฌ ํ๋ ์์์ ์ค๋ธ์ ํธ๋ฅผ ์ถ์ ํจ์ผ๋ก์จ ์ค๋ธ์ ํธ๊ฐ ์ผ์์ ์ผ๋ก ๊ฐ๋ ค์ง๊ฑฐ๋ ์ฅ๋ฉด์์ ๋น ์ ธ๋๊ฐ๋ค๊ฐ ๋ค์ ๋ค์ด์ค๋ ๊ฒฝ์ฐ์๋ ์ฐ์์ฑ์ ๋ณด์ฅํฉ๋๋ค.
SAM 2์ ์ํคํ ์ฒ์ ๊ธฐ๋ฅ์ ๋ํด ์์ธํ ์์๋ณด๋ ค๋ฉด SAM 2 ์ฐ๊ตฌ ๋ ผ๋ฌธ์ ์ฐธ์กฐํ์ธ์.
์ฑ๋ฅ ๋ฐ ๊ธฐ์ ์ธ๋ถ ์ ๋ณด
SAM 2๋ ๋ค์ํ ์งํ์์ ์ด์ ๋ชจ๋ธ์ ๋ฅ๊ฐํ๋ ์๋ก์ด ๋ฒค์น๋งํฌ๋ฅผ ์ ์ํฉ๋๋ค:
Metric | SAM 2 | ์ด์ SOTA |
---|---|---|
์ธํฐ๋ํฐ๋ธ ๋น๋์ค ์ธ๋ถํ | ์ต๊ณ | - |
์ฌ๋๊ณผ์ ์ํธ์์ฉ ํ์ | 3๋ฐฐ ๋ ์ ์ | ๊ธฐ์ค์ |
Image Segmentation Accuracy | ๊ฐ์ ๋จ | SAM |
์ถ๋ก ์๋ | 6๋ฐฐ ๋น ๋ฅธ ์๋ | SAM |
๋ชจ๋ธ ์ํคํ ์ฒ
ํต์ฌ ๊ตฌ์ฑ ์์
- Image and Video Encoder: Utilizes a transformer-based architecture to extract high-level features from both images and video frames. This component is responsible for understanding the visual content at each timestep.
- ํ๋กฌํํธ ์ธ์ฝ๋: ์ฌ์ฉ์๊ฐ ์ ๊ณตํ ํ๋กฌํํธ(์ , ์์, ๋ง์คํฌ)๋ฅผ ์ฒ๋ฆฌํ์ฌ ์ธ๋ถํ ์์ ์ ์๋ดํฉ๋๋ค. ์ด๋ฅผ ํตํด SAM 2๋ ์ฌ์ฉ์ ์ ๋ ฅ์ ์ ์ํ๊ณ ์ฅ๋ฉด ๋ด์ ํน์ ๊ฐ์ฒด๋ฅผ ๋์์ผ๋ก ์ง์ ํ ์ ์์ต๋๋ค.
- ๋ฉ๋ชจ๋ฆฌ ๋ฉ์ปค๋์ฆ: ๋ฉ๋ชจ๋ฆฌ ์ธ์ฝ๋, ๋ฉ๋ชจ๋ฆฌ ๋ฑ ํฌ, ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ๋ชจ๋์ด ํฌํจ๋ฉ๋๋ค. ์ด๋ฌํ ๊ตฌ์ฑ ์์๋ ๊ณผ๊ฑฐ ํ๋ ์์ ์ ๋ณด๋ฅผ ์ข ํฉ์ ์ผ๋ก ์ ์ฅํ๊ณ ํ์ฉํ์ฌ ๋ชจ๋ธ์ด ์๊ฐ์ด ์ง๋๋ ์ผ๊ด๋ ๊ฐ์ฒด ์ถ์ ์ ์ ์งํ ์ ์๋๋ก ํฉ๋๋ค.
- ๋ง์คํฌ ๋์ฝ๋: ์ธ์ฝ๋ฉ๋ ์ด๋ฏธ์ง ํน์ง๊ณผ ํ๋กฌํํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ต์ข ์ธ๊ทธ๋จผํ ์ด์ ๋ง์คํฌ๋ฅผ ์์ฑํฉ๋๋ค. ๋น๋์ค์์๋ ๋ฉ๋ชจ๋ฆฌ ์ปจํ ์คํธ๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ ์ ์ ์ฒด์ ๊ฑธ์ณ ์ ํํ ์ถ์ ์ ๋ณด์ฅํฉ๋๋ค.
๋ฉ๋ชจ๋ฆฌ ๋ฉ์ปค๋์ฆ ๋ฐ ์คํด๋ฃจ์ ์ฒ๋ฆฌ
๋ฉ๋ชจ๋ฆฌ ๋ฉ์ปค๋์ฆ์ ํตํด SAM 2๋ ๋น๋์ค ๋ฐ์ดํฐ์ ์๊ฐ์ ์ข ์์ฑ๊ณผ ์คํด๋ฃจ์ ์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ๊ฐ์ฒด๊ฐ ์์ง์ด๊ณ ์ํธ ์์ฉํ ๋ SAM 2๋ ๊ฐ์ฒด์ ํน์ง์ ๋ฉ๋ชจ๋ฆฌ ๋ฑ ํฌ์ ๊ธฐ๋กํฉ๋๋ค. ์ค๋ธ์ ํธ๊ฐ ๊ฐ๋ ค์ง๋ฉด ๋ชจ๋ธ์ ์ด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์ ๋ํ๋ ๋์ ์์น์ ๋ชจ์์ ์์ธกํ ์ ์์ต๋๋ค. ์คํด๋ฃจ์ ํค๋๋ ํนํ ์ค๋ธ์ ํธ๊ฐ ๋ณด์ด์ง ์๋ ์๋๋ฆฌ์ค๋ฅผ ์ฒ๋ฆฌํ์ฌ ์ค๋ธ์ ํธ๊ฐ ๊ฐ๋ ค์ง ๊ฐ๋ฅ์ฑ์ ์์ธกํฉ๋๋ค.
๋ฉํฐ ๋ง์คํฌ ๋ชจํธ์ฑ ํด๊ฒฐ
๋ฌผ์ฒด๊ฐ ๊ฒน์น๋ ๋ฑ ๋ชจํธํ ์ํฉ์์๋ SAM 2์์ ์ฌ๋ฌ ๊ฐ์ ๋ง์คํฌ ์์ธก์ ์์ฑํ ์ ์์ต๋๋ค. ์ด ๊ธฐ๋ฅ์ ๋จ์ผ ๋ง์คํฌ๋ก ์ฅ๋ฉด์ ๋์์ค๋ฅผ ์ถฉ๋ถํ ์ค๋ช ํ์ง ๋ชปํ ์ ์๋ ๋ณต์กํ ์ฅ๋ฉด์ ์ ํํ๊ฒ ํํํ๋ ๋ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค.
SA-V ๋ฐ์ดํฐ ์ธํธ
SAM 2์ ๊ต์ก์ ์ํด ๊ฐ๋ฐ๋ SA-V ๋ฐ์ดํฐ ์ธํธ๋ ๊ฐ์ฅ ํฌ๊ณ ๋ค์ํ ๋น๋์ค ์ธ๋ถํ ๋ฐ์ดํฐ ์ธํธ ์ค ํ๋์ ๋๋ค. ์ฌ๊ธฐ์๋ ๋ค์์ด ํฌํจ๋ฉ๋๋ค:
- 51,000๊ฐ ์ด์์ ๋์์: 47๊ฐ๊ตญ์์ ์ดฌ์ํ์ฌ ๋ค์ํ ์ค์ ์๋๋ฆฌ์ค๋ฅผ ์ ๊ณตํฉ๋๋ค.
- 600,000๊ฐ ์ด์์ ๋ง์คํฌ ์ฃผ์: '๋ง์คํฌ ๋ฆฟ'์ด๋ผ๊ณ ํ๋ ์์ธํ ์๊ณต๊ฐ ๋ง์คํฌ ์ฃผ์์ผ๋ก ์ ์ฒด ์ค๋ธ์ ํธ์ ๋ถํ์ ํฌ๊ดํฉ๋๋ค.
- ๋ฐ์ดํฐ ์ธํธ ๊ท๋ชจ: ์ด์ ์ต๋ ๋ฐ์ดํฐ ์ธํธ๋ณด๋ค 4.5๋ฐฐ ๋ ๋ง์ ๋์์๊ณผ 53๋ฐฐ ๋ ๋ง์ ์ฃผ์์ด ํฌํจ๋์ด ์์ด ์ ๋ก ์๋ ๋ค์์ฑ๊ณผ ๋ณต์ก์ฑ์ ์ ๊ณตํฉ๋๋ค.
๋ฒค์น๋งํฌ
๋น๋์ค ์ค๋ธ์ ํธ ์ธ๋ถํ
SAM 2๋ ์ฃผ์ ๋น๋์ค ์ธ๋ถํ ๋ฒค์น๋งํฌ์์ ์ฐ์ํ ์ฑ๋ฅ์ ์ ์ฆํ์ต๋๋ค:
๋ฐ์ดํฐ ์ธํธ | J&F | J | F |
---|---|---|---|
DAVIS 2017 | 82.5 | 79.8 | 85.2 |
YouTube-VOS | 81.2 | 78.9 | 83.5 |
๋ํํ ์ธ๋ถํ
๋ํํ ์ธ๋ถํ ์์ ์์ SAM 2๋ ์๋นํ ํจ์จ์ฑ๊ณผ ์ ํ์ฑ์ ๋ณด์ฌ์ค๋๋ค:
๋ฐ์ดํฐ ์ธํธ | NoC@90 | AUC |
---|---|---|
๋ฐ์ด๋น์ค ์ธํฐ๋ํฐ๋ธ | 1.54 | 0.872 |
์ค์น
SAM 2๋ฅผ ์ค์นํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ ์ฌ์ฉํฉ๋๋ค. ๋ชจ๋ SAM 2 ๋ชจ๋ธ์ ์ฒ์ ์ฌ์ฉํ ๋ ์๋์ผ๋ก ๋ค์ด๋ก๋๋ฉ๋๋ค.
์ฌ์ฉ ๋ฐฉ๋ฒ SAM 2: ์ด๋ฏธ์ง ๋ฐ ๋์์ ์ธ๋ถํ์ ๋ค์์ฑ
๋ค์ ํ์์๋ ์ฌ์ฉ ๊ฐ๋ฅํ SAM 2 ๋ชจ๋ธ, ์ฌ์ ํ์ต๋ ๊ฐ์ค์น, ์ง์๋๋ ์์ , ์ถ๋ก , ๊ฒ์ฆ, ํ์ต, ๋ด๋ณด๋ด๊ธฐ ๋ฑ ๋ค์ํ ์ด์ ๋ชจ๋์์ ํธํ์ฑ์ ๋ํด ์์ธํ ์ค๋ช ํฉ๋๋ค.
๋ชจ๋ธ ์ ํ | ์ฌ์ ํ์ต๋ ๊ฐ์ค์น | ์ง์๋๋ ์์ | ์ถ๋ก | ์ ํจ์ฑ ๊ฒ์ฌ | ๊ต์ก | ๋ด๋ณด๋ด๊ธฐ |
---|---|---|---|---|---|---|
SAM 2 ์์ | sam2_t.pt | ์ธ์คํด์ค ์ธ๋ถํ | โ | โ | โ | โ |
SAM 2 ์์ | sam2_s.pt | ์ธ์คํด์ค ์ธ๋ถํ | โ | โ | โ | โ |
SAM 2 ๋ฒ ์ด์ค | sam2_b.pt | ์ธ์คํด์ค ์ธ๋ถํ | โ | โ | โ | โ |
SAM ๋ํ 2๊ฐ | sam2_l.pt | ์ธ์คํด์ค ์ธ๋ถํ | โ | โ | โ | โ |
SAM 2 ์์ธก ์์
SAM 2๋ ์ค์๊ฐ ๋น๋์ค ํธ์ง, ์๋ฃ ์์, ์์จ ์์คํ ๋ฑ ๋ค์ํ ์์ ์์ ํ์ฉํ ์ ์์ต๋๋ค. ์ ์ ๋ฐ ๋์ ์๊ฐ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ์ธ๋ถํํ ์ ์์ด ์ฐ๊ตฌ์์ ๊ฐ๋ฐ์๋ฅผ ์ํ ๋ค์ฉ๋ ๋๊ตฌ๋ก ํ์ฉํ ์ ์์ต๋๋ค.
ํ๋กฌํํธ๊ฐ ์๋ ์ธ๊ทธ๋จผํธ
ํ๋กฌํํธ๊ฐ ์๋ ์ธ๊ทธ๋จผํธ
ํ๋กฌํํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฏธ์ง ๋๋ ๋์์์์ ํน์ ๊ฐ์ฒด๋ฅผ ๋ถํ ํ ์ ์์ต๋๋ค.
from ultralytics import SAM
# Load a model
model = SAM("sam2_b.pt")
# Display model information (optional)
model.info()
# Segment with bounding box prompt
results = model("path/to/image.jpg", bboxes=[100, 100, 200, 200])
# Segment with point prompt
results = model("path/to/image.jpg", points=[150, 150], labels=[1])
๋ชจ๋ ๊ฒ์ ์ธ๋ถํ
๋ชจ๋ ๊ฒ์ ์ธ๋ถํ
ํน์ ํ๋กฌํํธ ์์ด ์ ์ฒด ์ด๋ฏธ์ง ๋๋ ๋์์ ์ฝํ ์ธ ๋ฅผ ์ธ๊ทธ๋จผํธํํฉ๋๋ค.
- ์ด ์๋ ํ๋กฌํํธ(b๋ฐ์ค/ํฌ์ธํธ/๋ง์คํฌ)๊ฐ ์ ๊ณต๋์ง ์์ ๊ฒฝ์ฐ SAM 2๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฏธ์ง ๋๋ ๋์์์ ์ ์ฒด ์ฝํ ์ธ ๋ฅผ ์ธ๊ทธ๋จผํธํํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค.
SAM 2 comparison vs YOLOv8
Here we compare Meta's smallest SAM 2 model, SAM2-t, with Ultralytics smallest segmentation model, YOLOv8n-seg:
๋ชจ๋ธ | Size (MB) |
Parameters (M) |
Speed (CPU) (ms/im) |
---|---|---|---|
Meta SAM-b | 375 | 93.7 | 161440 |
Meta SAM2-b | 162 | 80.8 | 121923 |
Meta SAM2-t | 78.1 | 38.9 | 85155 |
MobileSAM | 40.7 | 10.1 | 98543 |
FastSAM-s์ YOLOv8 ๋ฐฑ๋ณธ | 23.7 | 11.8 | 140 |
Ultralytics YOLOv8n-seg | 6.7 (11.7x smaller) | 3.4 (11.4x less) | 79.5 (1071x faster) |
์ด ๋น๊ต๋ ๋ชจ๋ธ ๊ฐ์ ๋ชจ๋ธ ํฌ๊ธฐ์ ์๋์์ ์์ฒญ๋ ์ฐจ์ด๋ฅผ ๋ณด์ฌ์ค๋๋ค. SAM ์ ์๋ ์ธ๊ทธ๋จผํธ๋ฅผ ์ํ ๊ณ ์ ํ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ง๋ง, ๋ ์๊ณ ๋น ๋ฅด๋ฉฐ ํจ์จ์ ์ธ YOLOv8 ์ธ๊ทธ๋จผํธ ๋ชจ๋ธ๊ณผ ์ง์ ์ ์ผ๋ก ๊ฒฝ์ํ๋ ๊ฒ์ ์๋๋๋ค.
Tests run on a 2023 Apple M2 Macbook with 16GB of RAM using torch==2.3.1
๊ทธ๋ฆฌ๊ณ ultralytics==8.3.82
. To reproduce this test:
์
from ultralytics import ASSETS, SAM, YOLO, FastSAM
# Profile SAM2-t, SAM2-b, SAM-b, MobileSAM
for file in ["sam_b.pt", "sam2_b.pt", "sam2_t.pt", "mobile_sam.pt"]:
model = SAM(file)
model.info()
model(ASSETS)
# Profile FastSAM-s
model = FastSAM("FastSAM-s.pt")
model.info()
model(ASSETS)
# Profile YOLOv8n-seg
model = YOLO("yolov8n-seg.pt")
model.info()
model(ASSETS)
์๋ ์ฃผ์: ํจ์จ์ ์ธ ๋ฐ์ดํฐ ์งํฉ ์์ฑ
์๋ ์ฃผ์์ SAM 2์ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ผ๋ก, ์ฌ์ฉ์๋ ์ฌ์ ํ์ต๋ ๋ชจ๋ธ์ ํ์ฉํ์ฌ ๋น ๋ฅด๊ณ ์ ํํ๊ฒ ์ธ๋ถํ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ์ด ๊ธฐ๋ฅ์ ๋ง์ ์์์ ์์ด ๋๊ท๋ชจ์ ๊ณ ํ์ง ๋ฐ์ดํฐ ์ธํธ๋ฅผ ์์ฑํ๋ ๋ฐ ํนํ ์ ์ฉํฉ๋๋ค.
SAM 2๋ก ์๋ ์ฃผ์์ ๋ค๋ ๋ฐฉ๋ฒ
SAM 2๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ ์งํฉ์ ์๋ ์ฃผ์์ ๋ฌ๋ ค๋ฉด ์ด ์์ ๋ฅผ ๋ฐ๋ฅด์ธ์:
์๋ ์ฃผ์ ์์
์ธ์ | ์ ํ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
---|---|---|---|
data |
str |
์ฃผ์์ ๋ฌ ์ด๋ฏธ์ง๊ฐ ํฌํจ๋ ํด๋์ ๊ฒฝ๋ก์ ๋๋ค. | |
det_model |
str ์ ํ ์ฌํญ |
์ฌ์ ํ์ต๋ YOLO ํ์ง ๋ชจ๋ธ. ๊ธฐ๋ณธ๊ฐ์ 'yolov8x.pt'์ ๋๋ค. | 'yolov8x.pt' |
sam_model |
str ์ ํ ์ฌํญ |
์ฌ์ ํ์ต๋ SAM 2 ์ธ๋ถํ ๋ชจ๋ธ. ๊ธฐ๋ณธ๊ฐ์ 'sam2_b.pt'์ ๋๋ค. | 'sam2_b.pt' |
device |
str ์ ํ ์ฌํญ |
๋ชจ๋ธ์ ์คํํ ์ฅ์น์ ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ ๋น ๋ฌธ์์ด(CPU ๋๋ GPU, ์ฌ์ฉ ๊ฐ๋ฅํ ๊ฒฝ์ฐ)์ ๋๋ค. | |
output_dir |
str , None ์ ํ ์ฌํญ |
๋๋ ํฐ๋ฆฌ์ ์ฃผ์์ด ๋ฌ๋ฆฐ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ '๋ฐ์ดํฐ'์ ๊ฐ์ ๋๋ ํฐ๋ฆฌ์ ์๋ '๋ ์ด๋ธ' ํด๋์ ๋๋ค. | None |
์ด ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ฉด ๊ณ ํ์ง์ ์ธ๋ถํ ๋ฐ์ดํฐ์ธํธ๋ฅผ ์ ์ํ๊ฒ ์์ฑํ ์ ์์ด ํ๋ก์ ํธ๋ฅผ ๊ฐ์ํํ๋ ค๋ ์ฐ๊ตฌ์์ ๊ฐ๋ฐ์์๊ฒ ์ด์์ ์ ๋๋ค.
์ ํ ์ฌํญ
์ด๋ฌํ ์ฅ์ ์๋ ๋ถ๊ตฌํ๊ณ SAM 2์๋ ๋ช ๊ฐ์ง ํ๊ณ๊ฐ ์์ต๋๋ค:
- ์ถ์ ์์ ์ฑ: SAM 2๋ ์ํ์ค๊ฐ ํ์ฅ๋๊ฑฐ๋ ์์ ์ด ํฌ๊ฒ ๋ณ๊ฒฝ๋๋ ๋์ ์ค๋ธ์ ํธ๋ฅผ ์ถ์ ํ์ง ๋ชปํ ์ ์์ต๋๋ค.
- ์ค๋ธ์ ํธ ํผ๋: ํนํ ํผ์กํ ์ฅ๋ฉด์์ ๋ชจ๋ธ์ด ๋น์ทํ ๋ชจ์์ ๋ฌผ์ฒด๋ฅผ ํผ๋ํ๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค.
- ์ฌ๋ฌ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ ํจ์จ์ฑ: ์ฌ๋ฌ ๊ฐ์ฒด๋ฅผ ๋์์ ์ฒ๋ฆฌํ ๊ฒฝ์ฐ ๊ฐ์ฒด ๊ฐ ํต์ ์ด ๋ถ์กฑํ๊ธฐ ๋๋ฌธ์ ์ธ๋ถํ ํจ์จ์ฑ์ด ๋จ์ด์ง๋๋ค.
- Detail Accuracy: May miss fine details, especially with fast-moving objects. Additional prompts can partially address this issue, but temporal smoothness is not guaranteed.
์ธ์ฉ ๋ฐ ๊ฐ์ฌ
SAM 2๊ฐ ์ฐ๊ตฌ ๋๋ ๊ฐ๋ฐ ์์ ์ ์ค์ํ ๋ถ๋ถ์ธ ๊ฒฝ์ฐ ๋ค์ ์ฐธ์กฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์ฉํด ์ฃผ์ธ์:
@article{ravi2024sam2,
title={SAM 2: Segment Anything in Images and Videos},
author={Ravi, Nikhila and Gabeur, Valentin and Hu, Yuan-Ting and Hu, Ronghang and Ryali, Chaitanya and Ma, Tengyu and Khedr, Haitham and R{\"a}dle, Roman and Rolland, Chloe and Gustafson, Laura and Mintun, Eric and Pan, Junting and Alwala, Kalyan Vasudev and Carion, Nicolas and Wu, Chao-Yuan and Girshick, Ross and Doll{\'a}r, Piotr and Feichtenhofer, Christoph},
journal={arXiv preprint},
year={2024}
}
์ด ํ๊ธฐ์ ์ธ ๋ชจ๋ธ๊ณผ ๋ฐ์ดํฐ ์ธํธ๋ก AI ์ปค๋ฎค๋ํฐ์ ๊ธฐ์ฌํ Meta AI์ ๊ฐ์ฌ์ ๋ง์์ ์ ํฉ๋๋ค.
์์ฃผ ๋ฌป๋ ์ง๋ฌธ
SAM 2๋ ๋ฌด์์ด๋ฉฐ ๊ธฐ์กด Segment Anything ๋ชจ๋ธ(SAM)์ ์ด๋ป๊ฒ ๊ฐ์ ํ๋์?
SAM 2๋ ์ด๋ฏธ์ง์ ๋์์ ๋ชจ๋์์ ํฌ๊ด์ ์ธ ๊ฐ์ฒด ๋ถํ ์ ์ํด ์ค๊ณ๋ ์ต์ฒจ๋จ ๋๊ตฌ๋ก, ๋ฉํ์ Segment Anything Model(SAM)์ ํ์ ๋ฒ์ ์ ๋๋ค. ์ค์๊ฐ ์ฒ๋ฆฌ์ ์ ๋ก ์ท ์ผ๋ฐํ๋ฅผ ์ง์ํ๋ ํตํฉ์ ์ด๊ณ ์ ์ํ ๋ชจ๋ธ ์ํคํ ์ฒ๋ฅผ ํตํด ๋ณต์กํ ์๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐ ํ์ํฉ๋๋ค. SAM 2๋ ๊ธฐ์กด ๋ฒ์ ( SAM)์ ๋นํด ๋ค์๊ณผ ๊ฐ์ ๋ช ๊ฐ์ง ๊ฐ์ ์ฌํญ์ ์ ๊ณตํฉ๋๋ค:
- ํตํฉ ๋ชจ๋ธ ์ํคํ ์ฒ: ์ด๋ฏธ์ง ๋ฐ ๋น๋์ค ์ธ๋ถํ ๊ธฐ๋ฅ์ ๋จ์ผ ๋ชจ๋ธ์ ๊ฒฐํฉํฉ๋๋ค.
- ์ค์๊ฐ ์ฑ๋ฅ: ์ด๋น ์ฝ 44ํ๋ ์์ ์ฒ๋ฆฌํ๋ฏ๋ก ์ฆ๊ฐ์ ์ธ ํผ๋๋ฐฑ์ด ํ์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ํฉํฉ๋๋ค.
- ์ ๋ก ์ท ์ผ๋ฐํ: ๋ค์ํ ์๊ฐ์ ์์ญ์์ ์ ์ฉํ, ์ด์ ์ ์ ํ ์ ์ด ์๋ ๊ฐ์ฒด๋ฅผ ์ธ๊ทธ๋จผํธํํฉ๋๋ค.
- ๋ํํ ์ธ๋ถํ: ์ถ๊ฐ ํ๋กฌํํธ๋ฅผ ์ ๊ณตํ์ฌ ์ฌ์ฉ์๊ฐ ์ธ๋ถํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ๋ณต์ ์ผ๋ก ๊ตฌ์ฒดํํ ์ ์์ต๋๋ค.
- ๊ณ ๊ธ ์๊ฐ์ ๋ฌธ์ ์ฒ๋ฆฌ: ์ค๋ธ์ ํธ ์คํด๋ฃจ์ ๋ฐ ๋ค์ ๋ํ๋๊ธฐ ๊ฐ์ ์ผ๋ฐ์ ์ธ ๋น๋์ค ๋ถํ ๋ฌธ์ ๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.
SAM 2์ ์ํคํ ์ฒ ๋ฐ ๊ธฐ๋ฅ์ ๋ํ ์์ธํ ๋ด์ฉ์ SAM 2 ์ฐ๊ตฌ ๋ ผ๋ฌธ์ ์ฐธ์กฐํ์ธ์.
์ค์๊ฐ ๋์์ ๋ถํ ์ SAM 2๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ๋์?
SAM 2์ ํ๋กฌํํธ ๊ฐ๋ฅํ ์ธํฐํ์ด์ค์ ์ค์๊ฐ ์ถ๋ก ๊ธฐ๋ฅ์ ํ์ฉํ์ฌ ์ค์๊ฐ ๋์์ ๋ถํ ์ ํ์ฉํ ์ ์์ต๋๋ค. ๋ค์์ ๊ธฐ๋ณธ์ ์ธ ์์์ ๋๋ค:
ํ๋กฌํํธ๊ฐ ์๋ ์ธ๊ทธ๋จผํธ
ํ๋กฌํํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฏธ์ง ๋๋ ๋์์์์ ํน์ ๊ฐ์ฒด๋ฅผ ๋ถํ ํ ์ ์์ต๋๋ค.
from ultralytics import SAM
# Load a model
model = SAM("sam2_b.pt")
# Display model information (optional)
model.info()
# Segment with bounding box prompt
results = model("path/to/image.jpg", bboxes=[100, 100, 200, 200])
# Segment with point prompt
results = model("path/to/image.jpg", points=[150, 150], labels=[1])
๋ณด๋ค ์์ธํ ์ฌ์ฉ ๋ฐฉ๋ฒ์ SAM 2 ์น์ ์ ์ฐธ์กฐํ์ธ์.
SAM 2๋ฅผ ํ์ต์ํค๋ ๋ฐ ์ด๋ค ๋ฐ์ดํฐ ์ธํธ๊ฐ ์ฌ์ฉ๋๋ฉฐ, ์ด๋ป๊ฒ ์ฑ๋ฅ์ ํฅ์์ํค๋์?
SAM 2๋ ๊ฐ์ฅ ํฌ๊ณ ๋ค์ํ ๋น๋์ค ์ธ๋ถํ ๋ฐ์ดํฐ ์ธํธ ์ค ํ๋์ธ SA-V ๋ฐ์ดํฐ ์ธํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ์ต๋์์ต๋๋ค. SA-V ๋ฐ์ดํฐ ์ธํธ์๋ ๋ค์์ด ํฌํจ๋ฉ๋๋ค:
- 51,000๊ฐ ์ด์์ ๋์์: 47๊ฐ๊ตญ์์ ์ดฌ์ํ์ฌ ๋ค์ํ ์ค์ ์๋๋ฆฌ์ค๋ฅผ ์ ๊ณตํฉ๋๋ค.
- 600,000๊ฐ ์ด์์ ๋ง์คํฌ ์ฃผ์: '๋ง์คํฌ ๋ฆฟ'์ด๋ผ๊ณ ํ๋ ์์ธํ ์๊ณต๊ฐ ๋ง์คํฌ ์ฃผ์์ผ๋ก ์ ์ฒด ์ค๋ธ์ ํธ์ ๋ถํ์ ํฌ๊ดํฉ๋๋ค.
- ๋ฐ์ดํฐ ์ธํธ ๊ท๋ชจ: ์ด์ ์ต๋ ๋ฐ์ดํฐ ์ธํธ๋ณด๋ค 4.5๋ฐฐ ๋ ๋ง์ ๋์์๊ณผ 53๋ฐฐ ๋ ๋ง์ ์ฃผ์์ด ํฌํจ๋์ด ์์ด ์ ๋ก ์๋ ๋ค์์ฑ๊ณผ ๋ณต์ก์ฑ์ ์ ๊ณตํฉ๋๋ค.
์ด ๊ด๋ฒ์ํ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ํตํด SAM 2๋ ์ฃผ์ ๋น๋์ค ์ธ๋ถํ ๋ฒค์น๋งํฌ์์ ์ฐ์ํ ์ฑ๋ฅ์ ๋ฌ์ฑํ๊ณ ์ ๋ก ์ท ์ผ๋ฐํ ๊ธฐ๋ฅ์ ํฅ์์ํฌ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ SA-V ๋ฐ์ดํฐ ์ธํธ ์น์ ์ ์ฐธ์กฐํ์ธ์.
SAM 2๋ ๋์์ ๋ถํ ์์ ์คํด๋ฃจ์ ๋ฐ ์ค๋ธ์ ํธ ์ฌ์ถํ์ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ๋์?
SAM 2์๋ ๋น๋์ค ๋ฐ์ดํฐ์ ์๊ฐ์ ์ข ์์ฑ๊ณผ ์คํด๋ฃจ์ ์ ๊ด๋ฆฌํ๊ธฐ ์ํ ์ ๊ตํ ๋ฉ๋ชจ๋ฆฌ ๋ฉ์ปค๋์ฆ์ด ํฌํจ๋์ด ์์ต๋๋ค. ๋ฉ๋ชจ๋ฆฌ ๋ฉ์ปค๋์ฆ์ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌ์ฑ๋ฉ๋๋ค:
- ๋ฉ๋ชจ๋ฆฌ ์ธ์ฝ๋ ๋ฐ ๋ฉ๋ชจ๋ฆฌ ๋ฑ ํฌ: ์ง๋ ํ๋ ์์ ๊ธฐ๋ฅ์ ์ ์ฅํฉ๋๋ค.
- ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ๋ชจ๋: ์ ์ฅ๋ ์ ๋ณด๋ฅผ ํ์ฉํ์ฌ ์๊ฐ์ด ์ง๋๋ ์ผ๊ด๋ ๊ฐ์ฒด ์ถ์ ์ ์ ์งํฉ๋๋ค.
- ์คํด๋ฃจ์ ํค๋: ์ค๋ธ์ ํธ๊ฐ ๋ณด์ด์ง ์๋ ์๋๋ฆฌ์ค๋ฅผ ๊ตฌ์ฒด์ ์ผ๋ก ์ฒ๋ฆฌํ์ฌ ์ค๋ธ์ ํธ๊ฐ ๊ฐ๋ ค์ง ๊ฐ๋ฅ์ฑ์ ์์ธกํฉ๋๋ค.
์ด ๋ฉ์ปค๋์ฆ์ ์ค๋ธ์ ํธ๊ฐ ์ผ์์ ์ผ๋ก ๊ฐ๋ ค์ง๊ฑฐ๋ ์ฌ์์ ๋๊ฐ๋ค๊ฐ ๋ค์ ๋ค์ด์ค๋ ๊ฒฝ์ฐ์๋ ์ฐ์์ฑ์ ๋ณด์ฅํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ฉ๋ชจ๋ฆฌ ๋ฉ์ปค๋์ฆ ๋ฐ ์คํด๋ฃจ์ ์ฒ๋ฆฌ ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
SAM 2๋ YOLOv8 ๊ณผ ๊ฐ์ ๋ค๋ฅธ ์ธ๋ถํ ๋ชจ๋ธ๊ณผ ์ด๋ป๊ฒ ๋น๊ต๋๋์?
SAM 2 and Ultralytics YOLOv8 serve different purposes and excel in different areas. While SAM 2 is designed for comprehensive object segmentation with advanced features like zero-shot generalization and real-time performance, YOLOv8 is optimized for speed and efficiency in object detection and segmentation tasks. Here's a comparison:
๋ชจ๋ธ | Size (MB) |
Parameters (M) |
Speed (CPU) (ms/im) |
---|---|---|---|
Meta SAM-b | 375 | 93.7 | 161440 |
Meta SAM2-b | 162 | 80.8 | 121923 |
Meta SAM2-t | 78.1 | 38.9 | 85155 |
MobileSAM | 40.7 | 10.1 | 98543 |
FastSAM-s์ YOLOv8 ๋ฐฑ๋ณธ | 23.7 | 11.8 | 140 |
Ultralytics YOLOv8n-seg | 6.7 (11.7x smaller) | 3.4 (11.4x less) | 79.5 (1071x faster) |
For more details, see the SAM 2 comparison vs YOLOv8 section.