Are you sure you want to delete this access key?
comments | description | keywords |
---|---|---|
true | ์ผํธ๋ผ๋ฆฌ์ผ๋ฆฌํฑ์ค(Ultralytics)์ ์ต์ฒจ๋จ ์ด๋ฏธ์ง ์ธ๋ถํ ๋ชจ๋ธ์ธ Segment Anything Model(SAM)์ ๋ํด ์์๋ณด์ธ์. ํด๋น ๋ชจ๋ธ์ ์ค์๊ฐ ์ด๋ฏธ์ง ์ธ๋ถํ๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ๋ฉฐ, ํ๋กฌํํธ๋ฅผ ์ด์ฉํ ์ธ๋ถํ, ์ ๋ก์ท ์ฑ๋ฅ ๋ฐ ์ฌ์ฉ๋ฒ์ ๋ํด ์์๋ด ๋๋ค. | ์ผํธ๋ผ๋ฆฌ์ผ๋ฆฌํฑ์ค, ์ด๋ฏธ์ง ์ธ๋ถํ, Segment Anything Model, SAM, SA-1B ๋ฐ์ดํฐ์ , ์ค์๊ฐ ์ฑ๋ฅ, ์ ๋ก์ท ์ ์ด, ๊ฐ์ฒด ๊ฐ์ง, ์ด๋ฏธ์ง ๋ถ์, ๋จธ์ ๋ฌ๋ |
Segment Anything Model(SAM) ์ ์ด์ ์ค์ธ์. ์ด ํ์ ์ ์ธ ๋ชจ๋ธ์ ํ๋กฌํํธ ๊ธฐ๋ฐ์ ์ค์๊ฐ ์ธ๋ถํ๋ฅผ ํตํด ์ธ๋ถํ ๋ถ์ผ์์ ์๋ก์ด ๊ธฐ์ค์ ์ธ์ ์ต๋๋ค.
Segment Anything Model(SAM)์ ํ๋กฌํํธ ๊ธฐ๋ฐ์ ์ธ๋ถํ๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ๋ ๋ฐ์ด๋ ์ด๋ฏธ์ง ์ธ๋ถํ ๋ชจ๋ธ์ ๋๋ค. SAM์ ์ด๋ฏธ์ง ์ธ๋ถ์ ์์ ์์ ๋ ์ฐฝ์ฑ์ ๋ณด์ฌ์ฃผ๋ Segment Anything ์ด๋์ ํฐ๋ธ์ ํต์ฌ์ ํ์ฑํ๊ณ ์์ผ๋ฉฐ, ์ด๋ฏธ์ง ์ธ๋ถํ๋ฅผ ์ํ ์๋ก์ด ๋ชจ๋ธ, ์์ ๋ฐ ๋ฐ์ดํฐ์ ์ ์๊ฐํ๋ ํ์ ์ ์ธ ํ๋ก์ ํธ์ ๋๋ค.
SAM์ ๊ณ ๊ธ์ค๊ณ๋ ๋ชจ๋ธ์ด ๊ธฐ์กด ์ง์ ์์ด๋ ์๋ก์ด ์ด๋ฏธ์ง ๋ถํฌ ๋ฐ ์์ ์ ๋์ํ ์ ์๋ ๊ธฐ๋ฅ์ธ ์ ๋ก์ท ์ ์ด๋ฅผ ๋ณด์ฌ์ค๋๋ค. 1,100๋ง ๊ฐ์ ์ ๊ตํ๊ฒ ์ ๋ณ๋ ์ด๋ฏธ์ง์ ๋ถํฌ๋ 10์ต ๊ฐ ์ด์์ ๋ง์คํฌ๋ฅผ ํฌํจํ SA-1B ๋ฐ์ดํฐ์ ์ผ๋ก ํ์ต๋ SAM์ ๋ง์ ๊ฒฝ์ฐ์ ์ ์ ์ผ๋ก ๊ฐ๋ ๋ ํ์ต ๊ฒฐ๊ณผ๋ฅผ ๋ฅ๊ฐํ๋ ์ธ์์ ์ธ ์ ๋ก์ท ์ฑ๋ฅ์ ๋ณด์ฌ์ค๋๋ค.
์๋กญ๊ฒ ๋์
๋ SA-1B ๋ฐ์ดํฐ์
์์ ์ค๋ฒ๋ ์ด๋ ๋ง์คํฌ๋ฅผ ํฌํจํ ์์ ์ด๋ฏธ์ง์
๋๋ค. SA-1B๋ ๋ค์ํ ๊ณ ํด์๋์ ์ด๋ฏธ์ง๋ฅผ ๋ผ์ด์ ์ค ๋ณดํธํ๋ฉฐ ์ฌ์ํ์ ๋ณดํธํ๊ณ ์์ผ๋ฉฐ, 1,100๋ง ๊ฐ์ ๊ณ ํ์ง ์ธ๋ถํ ๋ง์คํฌ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ด๋ฌํ ๋ง์คํฌ๋ SAM์ ์ํด ์๋์ผ๋ก ์ฃผ์์ด ๋ฌ๋ ธ์ผ๋ฉฐ, ์ธ๊ฐ ํ๊ฐ ๋ฐ ๋ค์ํ ์คํ์ ํตํด ๋์ ํ์ง๊ณผ ๋ค์์ฑ์ ๊ฐ์ถ์์์ด ๊ฒ์ฆ๋์์ต๋๋ค. ์๊ฐํ๋ฅผ ์ํด ์ด๋ฏธ์ง๋ ์ด๋ฏธ์ง ๋น ํ๊ท 100๊ฐ์ ๋ง์คํฌ๋ก ๊ทธ๋ฃนํ๋์์ต๋๋ค.
Segment Anything Model ๋ฐ SA-1B ๋ฐ์ดํฐ์ ์ ๋ํ ์์ธํ ๋ด์ฉ์ Segment Anything ์น์ฌ์ดํธ์ ์ฐ๊ตฌ ๋ ผ๋ฌธ Segment Anything์ ์ฐธ์กฐํด ์ฃผ์ธ์.
์๋ ํ๋ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ชจ๋ธ๊ณผ ํด๋น ๋ชจ๋ธ์ ์ฌ์ ํ๋ จ ๊ฐ์ค์น, ์ง์ํ๋ ์์ ๋ฐ ์ถ๋ก , ๊ฒ์ฆ, ํ๋ จ ๋ฐ ๋ด๋ณด๋ด๊ธฐ์ ๊ฐ์ ๋ค๋ฅธ ์ด์ ๋ชจ๋์์ ํธํ์ฑ์ ๋ํ๋ ๋๋ค. ์ง์๋๋ ๋ชจ๋๋ โ ์ด๋ชจ์ง๋ก, ์ง์๋์ง ์๋ ๋ชจ๋๋ โ ์ด๋ชจ์ง๋ก ํ์๋์์ต๋๋ค.
๋ชจ๋ธ ์ ํ | ์ฌ์ ํ๋ จ ๊ฐ์ค์น | ์ง์ ์์ | ์ถ๋ก | ๊ฒ์ฆ | ํ๋ จ | ๋ด๋ณด๋ด๊ธฐ |
---|---|---|---|---|---|---|
SAM base | sam_b.pt |
์ธ์คํด์ค ์ธ๋ถํ | โ | โ | โ | โ |
SAM large | sam_l.pt |
์ธ์คํด์ค ์ธ๋ถํ | โ | โ | โ | โ |
Segment Anything Model์ ํ๋ จ ๋ฐ์ดํฐ๋ฅผ ์ด์ํ๋ ๋ค์ํ ํ์ ์์ ์ ๋ํด์๋ ์ฌ์ฉ๋ ์ ์์ต๋๋ค. ์ด์๋ ๊ฐ์ฅ์๋ฆฌ ๊ฒ์ถ, ๊ฐ์ฒด ์ ์ ์์ฑ, ์ธ์คํด์ค ์ธ๋ถ์ฅ ๋ฐ ์ด๊ธฐ ํ ์คํธ-๋ง์คํฌ ์์ธก ๋ฑ์ด ํฌํจ๋ฉ๋๋ค. SAM์ ํ๋กฌํํ ์์ง๋์ด๋ง์ ํตํด ์๋ก์ด ์์ ๋ฐ ๋ฐ์ดํฐ ๋ถํฌ์ ๋น ๋ฅด๊ฒ ์ ์ํ ์ ์์ผ๋ฏ๋ก, ์ด๋ฏธ์ง ์ธ๋ถํ์ ๋ํ ๋ค์ฌ๋ค๋ฅํ๊ณ ๊ฐ๋ ฅํ ๋๊ตฌ๋ก ์ฌ์ฉ๋ ์ ์์ต๋๋ค.
!!! Example "ํ๋กฌํํธ๋ฅผ ์ด์ฉํ ์ธ๋ถํ"
์ฃผ์ด์ง ํ๋กฌํํธ๋ก ์ด๋ฏธ์ง ์ธ๋ถํ๋ฅผ ์คํํฉ๋๋ค.
=== "ํ์ด์ฌ"
```python
from ultralytics import SAM
# ๋ชจ๋ธ ๋ก๋
model = SAM('sam_b.pt')
# ๋ชจ๋ธ ์ ๋ณด ํ์ (์ ํ ์ฌํญ)
model.info()
# bboxes ํ๋กฌํํธ๋ก ์ถ๋ก ์คํ
model('ultralytics/assets/zidane.jpg', bboxes=[439, 437, 524, 709])
# points ํ๋กฌํํธ๋ก ์ถ๋ก ์คํ
model('ultralytics/assets/zidane.jpg', points=[900, 370], labels=[1])
```
!!! Example "์ ์ฒด ์ด๋ฏธ์ง ์ธ๋ถํ"
์ ์ฒด ์ด๋ฏธ์ง ์ธ๋ถํ๋ฅผ ์คํํฉ๋๋ค.
=== "ํ์ด์ฌ"
```python
from ultralytics import SAM
# ๋ชจ๋ธ ๋ก๋
model = SAM('sam_b.pt')
# ๋ชจ๋ธ ์ ๋ณด ํ์ (์ ํ ์ฌํญ)
model.info()
# ์ถ๋ก ์คํ
model('path/to/image.jpg')
```
=== "CLI"
```bash
# SAM ๋ชจ๋ธ๋ก ์ถ๋ก ์คํ
yolo predict model=sam_b.pt source=path/to/image.jpg
```
!!! Example "SAMPredictor ์์ "
์ด๋ฏธ์ง๋ฅผ ์ค์ ํ๊ณ ์ด๋ฏธ์ง ์ธ์ฝ๋๋ฅผ ์ฌ๋ฌ๋ฒ ์คํํ์ง ์๊ณ ์ฌ๋ฌ๋ฒ ํ๋กฌํํธ ์ถ๋ก ์ ์คํํ ์ ์์ต๋๋ค.
=== "ํ๋กฌํํธ ์ถ๋ก "
```python
from ultralytics.models.sam import Predictor as SAMPredictor
# SAMPredictor ์์ฑ
overrides = dict(conf=0.25, task='segment', mode='predict', imgsz=1024, model="mobile_sam.pt")
predictor = SAMPredictor(overrides=overrides)
# ์ด๋ฏธ์ง ์ค์
predictor.set_image("ultralytics/assets/zidane.jpg") # ์ด๋ฏธ์ง ํ์ผ๋ก ์ค์
predictor.set_image(cv2.imread("ultralytics/assets/zidane.jpg")) # np.ndarray๋ก ์ค์
results = predictor(bboxes=[439, 437, 524, 709])
results = predictor(points=[900, 370], labels=[1])
# ์ด๋ฏธ์ง ๋ฆฌ์
predictor.reset_image()
```
์ถ๊ฐ ์ธ์๋ก ์ ์ฒด ์ด๋ฏธ์ง๋ฅผ ์ธ๋ถํํฉ๋๋ค.
=== "์ ์ฒด ์ด๋ฏธ์ง ์ธ๋ถํ"
```python
from ultralytics.models.sam import Predictor as SAMPredictor
# SAMPredictor ์์ฑ
overrides = dict(conf=0.25, task='segment', mode='predict', imgsz=1024, model="mobile_sam.pt")
predictor = SAMPredictor(overrides=overrides)
# ์ถ๊ฐ ์ธ์๋ก ์ด๋ฏธ์ง ์ธ๋ถํ
results = predictor(source="ultralytics/assets/zidane.jpg", crop_n_layers=1, points_stride=64)
```
์ ์ฒด ์ด๋ฏธ์ง ์ธ๋ถํ
์ ๋ํ ์์ธํ ์ถ๊ฐ ์ธ์๋ Predictor/generate
์ฐธ์กฐ๋ฅผ ์ฐธ์กฐํ์ธ์.์ฌ๊ธฐ์๋ Meta์ ๊ฐ์ฅ ์์ SAM ๋ชจ๋ธ์ธ SAM-b๋ฅผ ์ผํธ๋ผ๋ฆฌ์ผ๋ฆฌํฑ์ค์ ๊ฐ์ฅ ์์ ์ธ๋ถํ ๋ชจ๋ธ, YOLOv8n-seg,๊ณผ ๋น๊ตํฉ๋๋ค:
๋ชจ๋ธ | ํฌ๊ธฐ | ํ๋ผ๋ฏธํฐ | ์๋ (CPU) |
---|---|---|---|
Meta's SAM-b | 358 MB | 94.7 M | 51096 ms/im |
MobileSAM | 40.7 MB | 10.1 M | 46122 ms/im |
FastSAM-s with YOLOv8 backbone | 23.7 MB | 11.8 M | 115 ms/im |
Ultralytics YOLOv8n-seg | 6.7 MB (53.4๋ฐฐ ์์) | 3.4 M (27.9๋ฐฐ ์ ์) | 59 ms/im (866๋ฐฐ ๋น ๋ฆ) |
์ด ๋น๊ต๋ ๋ชจ๋ธ ํฌ๊ธฐ ๋ฐ ์๋์ ๋ํ ์๋นํ ์ฐจ์ด๋ฅผ ๋ณด์ฌ์ค๋๋ค. SAM์ ์๋์ผ๋ก ์ธ๋ถํํ๋ ๋ ํนํ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ง๋ง, ์์ ํฌ๊ธฐ์ ๋์ ์ฒ๋ฆฌ ์๋๋ก ์ธํด YOLOv8 ์ธ๋ถํ ๋ชจ๋ธ๊ณผ ์ง์ ๊ฒฝ์ํ์ง๋ ์์ต๋๋ค.
์ด ํ ์คํธ๋ 2023๋ ์ ํ M2 ๋งฅ๋ถ(16GB RAM)์์ ์ํ๋์์ต๋๋ค. ์ด ํ ์คํธ๋ฅผ ์ฌํํ๋ ค๋ฉด:
!!! Example "์์ "
=== "ํ์ด์ฌ"
```python
from ultralytics import FastSAM, SAM, YOLO
# SAM-b ํ๋กํ์ผ๋ง
model = SAM('sam_b.pt')
model.info()
model('ultralytics/assets')
# MobileSAM ํ๋กํ์ผ๋ง
model = SAM('mobile_sam.pt')
model.info()
model('ultralytics/assets')
# FastSAM-s ํ๋กํ์ผ๋ง
model = FastSAM('FastSAM-s.pt')
model.info()
model('ultralytics/assets')
# YOLOv8n-seg ํ๋กํ์ผ๋ง
model = YOLO('yolov8n-seg.pt')
model.info()
model('ultralytics/assets')
```
์๋ ์ฃผ์์ SAM์ ํต์ฌ ๊ธฐ๋ฅ์ผ๋ก, ๋ฏธ๋ฆฌ ํ๋ จ๋ ํ์ง ๋ชจ๋ธ์ ์ฌ์ฉํ์ฌ ์ธ๋ถํ ๋ฐ์ดํฐ์ ์ ์์ฑํ ์ ์์ต๋๋ค. ์ด ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ฉด ๋ฒ๊ฑฐ๋กญ๊ณ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๋ ์์์ ์ฃผ์ ์์ ์ ๊ฑด๋๋ฐ๊ณ ๋๋์ ์ด๋ฏธ์ง๋ฅผ ์ ์ํ๊ฒ ์ ํํ๊ฒ ์ฃผ์์ ๋ฌ ์ ์์ต๋๋ค.
Ultralytics ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฏธ๋ฆฌ ํ๋ จ๋ ํ์ง ๋ฐ SAM ์ธ๋ถํ ๋ชจ๋ธ๊ณผ ํจ๊ป ๋ฐ์ดํฐ์
์ ์๋์ผ๋ก ์ฃผ์ํ ์ ์์ต๋๋ค. ์๋์ ๊ฐ์ด auto_annotate
ํจ์๋ฅผ ์ฌ์ฉํ์ธ์:
!!! Example "์์ "
=== "ํ์ด์ฌ"
```python
from ultralytics.data.annotator import auto_annotate
auto_annotate(data="path/to/images", det_model="yolov8x.pt", sam_model='sam_b.pt')
```
์ธ์ | ์ ํ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
---|---|---|---|
data | ๋ฌธ์์ด | ์ฃผ์์ ๋ฌ ์ด๋ฏธ์ง๊ฐ ํฌํจ๋ ํด๋ ๊ฒฝ๋ก. | |
det_model | ๋ฌธ์์ด, ์ ํ์ฌํญ | ๋ฏธ๋ฆฌ ํ๋ จ๋ YOLO ํ์ง ๋ชจ๋ธ. ๊ธฐ๋ณธ๊ฐ์ 'yolov8x.pt'. | 'yolov8x.pt' |
sam_model | ๋ฌธ์์ด, ์ ํ์ฌํญ | ๋ฏธ๋ฆฌ ํ๋ จ๋ SAM ์ธ๋ถํ ๋ชจ๋ธ. ๊ธฐ๋ณธ๊ฐ์ 'sam_b.pt'. | 'sam_b.pt' |
device | ๋ฌธ์์ด, ์ ํ์ฌํญ | ๋ชจ๋ธ์ ์คํํ ๋๋ฐ์ด์ค. ๊ธฐ๋ณธ๊ฐ์ ๋น ๋ฌธ์์ด (CPU ๋๋ ์ฌ์ฉ ๊ฐ๋ฅํ GPU ์ฌ์ฉ). | |
output_dir | ๋ฌธ์์ด, None, ์ ํ์ฌํญ | ์ฃผ์์ด ํฌํจ๋ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ ๋๋ ํ ๋ฆฌ ๊ฒฝ๋ก. ๊ธฐ๋ณธ๊ฐ์ 'data'์ ๊ฐ์ ๋๋ ํ ๋ฆฌ ๋ด๋ถ์ 'labels' ํด๋์ ๋๋ค. | None |
auto_annotate
ํจ์๋ ์ด๋ฏธ์ง ๊ฒฝ๋ก๋ฅผ ์
๋ ฅ์ผ๋ก ๋ฐ์, ์
๋ ฅํ ๋ฏธ๋ฆฌ ํ๋ จ๋ ํ์ง์ SAM ์ธ๋ถํ ๋ชจ๋ธ, ์ด ํจ์๋ฅผ ์คํํ ๋๋ฐ์ด์ค ๋ฐ ์ฃผ์์ด ํฌํจ๋ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ ๋๋ ํ ๋ฆฌ ๊ฒฝ๋ก๋ฅผ ์ ํ์ ์ผ๋ก ์ง์ ํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
๋ฏธ๋ฆฌ ํ๋ จ๋ ๋ชจ๋ธ์ ์ฌ์ฉํ ์๋ ์ฃผ์ ๊ธฐ๋ฅ์ ํ์ฉํ๋ฉด ๋์ ํ์ง์ ์ธ๋ถํ ๋ฐ์ดํฐ์ ์ ์์ฑํ๋ ๋ฐ ์์๋๋ ์๊ฐ๊ณผ ๋ ธ๋ ฅ์ ํฌ๊ฒ ์ค์ผ ์ ์์ต๋๋ค. ์ด ๊ธฐ๋ฅ์ ํนํ ๋๋์ ์ด๋ฏธ์ง ์ปฌ๋ ์ ์ ๋ค๋ฃจ๋ ์ฐ๊ตฌ์๊ณผ ๊ฐ๋ฐ์์๊ฒ ์ ์ฉํ๋ฉฐ, ์์์ ์ฃผ์ ๋์ ๋ชจ๋ธ ๊ฐ๋ฐ๊ณผ ํ๊ฐ์ ์ง์คํ ์ ์์ต๋๋ค.
๊ทํ์ ์ฐ๊ตฌ ๋๋ ๊ฐ๋ฐ ์์ ์ SAM์ด ์ ์ฉํ๊ฒ ์ฌ์ฉ๋ ๊ฒฝ์ฐ, ์ ํฌ ๋ ผ๋ฌธ์ ์ธ์ฉํด ์ฃผ์๊ธฐ ๋ฐ๋๋๋ค:
!!! Quote ""
=== "BibTeX"
```bibtex
@misc{kirillov2023segment,
title={Segment Anything},
author={Alexander Kirillov and Eric Mintun and Nikhila Ravi and Hanzi Mao and Chloe Rolland and Laura Gustafson and Tete Xiao and Spencer Whitehead and Alexander C. Berg and Wan-Yen Lo and Piotr Dollรกr and Ross Girshick},
year={2023},
eprint={2304.02643},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
```
๋ชจ๋ธ ๊ฐ๋ฐ๊ณผ ์๊ณ ๋ฆฌ์ฆ ๊ฐ๋ฐ์ ์ํ ๊ท์คํ ๋ฆฌ์์ค๋ฅผ ๋ง๋ค๊ณ ์ ์ง ๊ด๋ฆฌํ๋ Meta AI์๊ฒ ๊ฐ์ฌ์ ๋ง์์ ๋๋ฆฝ๋๋ค.
keywords: Segment Anything, Segment Anything Model, SAM, Meta SAM, ์ด๋ฏธ์ง ์ธ๋ถํ, ํ๋กฌํํธ ๊ธฐ๋ฐ ์ธ๋ถํ, ์ ๋ก์ท ์ฑ๋ฅ, SA-1B ๋ฐ์ดํฐ์ , ๊ณ ๊ธ์ค๊ณ, ์๋ ์ฃผ์, ์ผํธ๋ผ๋ฆฌ์ผ๋ฆฌํฑ์ค, ์ฌ์ ํ๋ จ ๋ชจ๋ธ, SAM base, SAM large, ์ธ์คํด์ค ์ธ๋ถํ, ์ปดํจํฐ ๋น์ , ์ธ๊ณต ์ง๋ฅ, ๋จธ์ ๋ฌ๋, ๋ฐ์ดํฐ ์ฃผ์, ์ธ๋ถํ ๋ง์คํฌ, ํ์ง ๋ชจ๋ธ, YOLO ํ์ง ๋ชจ๋ธ, bibtex, Meta AI.
Press p or to see the previous file or, n or to see the next file
Are you sure you want to delete this access key?
Are you sure you want to delete this access key?
Are you sure you want to delete this access key?
Are you sure you want to delete this access key?