A newer version of the Gradio SDK is available: 6.15.2
SAM3 + GroundingDINO ํตํฉ ๊ฐ๋ฅ์ฑ ๋ถ์ ๋ณด๊ณ ์
์์ฑ์ผ: 2025-12-17
์ฃผ์ : ํ์ฌ SAM3 ๋น๋์ค ์ธ๊ทธ๋ฉํ
์ด์
์์คํ
์ GroundingDINO๋ฅผ ์ ๋ชฉํ์ฌ ์ฑ๋ฅ/์๋๋ฅผ ํฅ์์ํฌ ์ ์๋์ง ๋ฉด๋ฐํ ๊ฒํ
๐ ๋ชฉ์ฐจ
- ํ์ฌ SAM3 ์์คํ ์ํคํ ์ฒ
- GroundingDINO ๊ฐ์
- SAM3์ ํ ์คํธ ํ๋กฌํํธ ์ฒ๋ฆฌ ๋ฐฉ์
- ํตํฉ ์๋๋ฆฌ์ค ๋ถ์
- ์ฑ๋ฅ/์๋ ์ํฅ ๋ถ์
- ๊ฒฐ๋ก ๋ฐ ๊ถ์ฅ์ฌํญ
1. ํ์ฌ SAM3 ์์คํ ์ํคํ ์ฒ
1.1 ํ์ดํ๋ผ์ธ ํ๋ฆ
[์
๋ ฅ ๋น๋์ค]
โ
[Text Prompt ํ์ฑ] โ "5 mice"
โ
[SAM3 ์ด๊ธฐ ํ๋ ์ ์ฒ๋ฆฌ]
โโโ ํ
์คํธ โ CLIP ์ธ์ฝ๋ฉ โ ํน์ง ๋ฒกํฐ
โโโ ์ด๋ฏธ์ง โ Visual Encoder
โโโ Cross-attention (Text โ Image)
โโโ Segmentation Decoder โ ๋ง์คํฌ ์์ฑ
โ
[SAM3 ์๊ฐ์ ์ ํ] โ propagate_in_video()
โโโ Memory Attention (๊ณผ๊ฑฐ ํ๋ ์ ์ฐธ์กฐ)
โโโ Temporal Disambiguation
โโโ ํ๋ ์๋ณ ๋ง์คํฌ ์ถ๋ ฅ
โ
[ํ์ฒ๋ฆฌ ํํฐ๋ง]
โโโ ID ์ผ๊ด์ฑ ์ ์ง
โโโ Occlusion ๋ณต์
โโโ Anti-Tail/Reflection ํํฐ
1.2 SAM3์ ๊ฐ์
| ํน์ง | ์ค๋ช | ํจ๊ณผ |
|---|---|---|
| End-to-End ํ์ต | ํ ์คํธ ์ธ์ฝ๋ + ์ธ๊ทธ๋ฉํ ์ด์ ์ด ํตํฉ ํ์ต๋จ | ํ ์คํธ-๋ง์คํฌ ๋งคํ์ ๋์ ์ ํ๋ |
| Temporal Consistency | Memory Attention์ผ๋ก ๊ณผ๊ฑฐ ํ๋ ์ ์ฐธ์กฐ | ๋น๋์ค ์ ์ฒด์์ ID ์ผ๊ด์ฑ ์ ์ง |
| ์ ๋ฐํ ๋ง์คํฌ | Pixel-level ์ธ๊ทธ๋ฉํ ์ด์ | Bbox๋ณด๋ค ์ ํํ ๊ฐ์ฒด ๊ฒฝ๊ณ |
| ํตํฉ ๋ชจ๋ธ | ๋จ์ผ ๋ชจ๋ธ์์ ๊ฐ์งโ์ถ์ ์ฒ๋ฆฌ | ๋ชจ๋ ๊ฐ ์ ํฉ์ฑ ๋ฌธ์ ์์ |
1.3 SAM3์ ํ๊ณ
| ๋ฌธ์ | ์์ธ | ์ํฅ |
|---|---|---|
| ์ฒ๋ฆฌ ์๋ ๋๋ฆผ | ํ๋ ์๋น ์ ์ฒด ์ด๋ฏธ์ง ์ธ๊ทธ๋ฉํ ์ด์ | ~300ms/frame |
| ์ด๊ธฐ ๊ฐ์ง ์คํจ ์ ๋ณต๊ตฌ ์ด๋ ค์ | ์ฒซ ํ๋ ์์์ ํ ์คํธ ํ๋กฌํํธ๊ฐ ์ ๋งคํ๋ฉด ์คํ์ง | ์ ์ฒด ๋น๋์ค์ ์ํฅ |
| ์ํ ๊ฐ์ฒด ๊ฐ์ง ์ฝํจ | Global attention โ ์์ ์์ญ ์ง์ค ์ด๋ ค์ | ๋ฏธํ์ง ๋ฐ์ |
| GPU ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ ๋์ | Memory Bank + Transformer | 6-8GB ํ์ |
2. GroundingDINO ๊ฐ์
2.1 ํต์ฌ ํน์ง
GroundingDINO๋ ํ ์คํธ ํ๋กฌํํธ๋ก ๊ฐ์ฒด๋ฅผ **ํ์ง(Detection)**ํ๋ ๋ชจ๋ธ์ ๋๋ค.
[์
๋ ฅ ์ด๋ฏธ์ง + ํ
์คํธ ํ๋กฌํํธ]
โ
[Vision Transformer (Swin-T)] โ ์ด๋ฏธ์ง ์ธ์ฝ๋ฉ
โ
[Language Model (BERT)] โ ํ
์คํธ ์ธ์ฝ๋ฉ
โ
[Cross-Modality Fusion]
โ
[DETR-style Decoder]
โ
[์ถ๋ ฅ: Bounding Box + Confidence Score]
2.2 ์ฅ๋จ์
| ์ฅ์ | ๋จ์ |
|---|---|
| โ ์ ๋ก์ท ๊ฐ์ฒด ํ์ง (ํ์ต ์๋ ์ ํด๋์ค ๊ฐ์ง ๊ฐ๋ฅ) | โ Bbox๋ง ์ถ๋ ฅ (๋ง์คํฌ ์์) |
| โ ํ ์คํธ-์ด๋ฏธ์ง ์ ํฉ๋ ๋์ | โ ๋น๋์ค ์ถ์ ๊ธฐ๋ฅ ์์ (๋จ์ผ ์ด๋ฏธ์ง๋ง ์ฒ๋ฆฌ) |
| โ ๋น ๋ฅธ ์ถ๋ก ์๋ (~50-100ms/frame) | โ Temporal consistency ์์ |
| โ ์ ํํ ๊ฐ์ฒด ์์น ํ์ | โ ํ๋ ์ ๊ฐ ID ์ฐ๊ฒฐ ๋ถ๊ฐ |
2.3 SAM3์์ ์ฐจ์ด์
| ํน์ง | SAM3 | GroundingDINO |
|---|---|---|
| ์ฃผ ๊ธฐ๋ฅ | ์ธ๊ทธ๋ฉํ ์ด์ + ์ถ์ | ๊ฐ์ฒด ํ์ง |
| ์ถ๋ ฅ | Pixel-level ๋ง์คํฌ + ID | Bounding Box + Score |
| ๋น๋์ค ์ง์ | โ Temporal ์ถ์ | โ ๋จ์ผ ํ๋ ์๋ง |
| ํ ์คํธ ์ดํด | CLIP (๋์กฐ ํ์ต) | BERT (์ธ์ด ๋ชจ๋ธ) |
| ์๋ | ๋๋ฆผ (~300ms) | ๋น ๋ฆ (~70ms) |
3. SAM3์ ํ ์คํธ ํ๋กฌํํธ ์ฒ๋ฆฌ ๋ฐฉ์
3.1 ์ฝ๋ ํ์ธ ๊ฒฐ๊ณผ
# sam3/model/sam3_video_predictor.py: L151-160
frame_idx, outputs = self.model.add_prompt(
inference_state=inference_state,
frame_idx=frame_idx,
text_str=text, # โ ํ
์คํธ ํ๋กฌํํธ
points=points,
point_labels=point_labels,
boxes_xywh=bounding_boxes, # โ Bbox๋ ๋ฐ์ ์ ์์!
box_labels=bounding_box_labels,
obj_id=obj_id,
)
์ค์ ๋ฐ๊ฒฌ: SAM3๋ ์ด๋ฏธ ํ ์คํธ + Bbox๋ฅผ ๋์์ ๋ฐ์ ์ ์์ต๋๋ค!
3.2 SAM3 ๋ด๋ถ ํ ์คํธ ์ฒ๋ฆฌ
# sam3/model/sam3_video_inference.py: L866-868
if text_str is not None and text_str != "visual":
inference_state["text_prompt"] = text_str
inference_state["input_batch"].find_text_batch[0] = text_str
์ฒ๋ฆฌ ํ๋ฆ:
- ํ ์คํธ โ CLIP ํ ์คํธ ์ธ์ฝ๋ โ 512D ํน์ง ๋ฒกํฐ
- ์ด๋ฏธ์ง โ Vision Encoder โ ์ด๋ฏธ์ง ํน์ง
- Cross-Attention (ํ ์คํธ ํน์ง โ ์ด๋ฏธ์ง ํน์ง)
- Decoder โ ์ธ๊ทธ๋ฉํ ์ด์ ๋ง์คํฌ
4. ํตํฉ ์๋๋ฆฌ์ค ๋ถ์
4.1 ์๋๋ฆฌ์ค A: GroundingDINO ์ด๊ธฐ ๊ฐ์ง โ SAM3 ์ ๋ฐ ๋ง์คํฌ (โญ๏ธโญ๏ธโญ๏ธ)
๊ฐ๋ :
[์ฒซ ํ๋ ์]
โ
[GroundingDINO] โ ํ
์คํธ๋ก ๊ฐ์ฒด bbox ํ์ง
โ (์: "mice" โ 5๊ฐ์ bbox)
[SAM3] โ bbox๋ฅผ ํ๋กฌํํธ๋ก ์ ๋ฐ ๋ง์คํฌ ์์ฑ
โ
[SAM3 propagate] โ ๋น๋์ค ์ ์ฒด ์ถ์
๊ตฌํ ์ฝ๋:
# ํ์ฌ ๋ฐฉ์
predictor.add_prompt(session_id, frame_idx=0, text="5 mice")
# GroundingDINO ํตํฉ ๋ฐฉ์
from groundingdino.util.inference import load_model, predict
grounding_model = load_model("GroundingDINO_SwinT_OGC.py", "weights.pth")
# 1๋จ๊ณ: GroundingDINO๋ก bbox ํ์ง
boxes, confidences, labels = predict(
model=grounding_model,
image=first_frame,
caption="mice", # ํ
์คํธ ํ๋กฌํํธ
box_threshold=0.3,
text_threshold=0.25
)
# 2๋จ๊ณ: SAM3์ bbox ์ ๋ฌ
for i, box in enumerate(boxes):
predictor.add_prompt(
session_id,
frame_idx=0,
bounding_boxes=[box.tolist()], # bbox ํ๋กฌํํธ
obj_id=i+1
)
# 3๋จ๊ณ: SAM3๊ฐ ๋น๋์ค ์ ์ฒด ์ถ์
for frame_idx, outputs in predictor.propagate_in_video(...):
process(outputs)
์ฅ์ :
- โ GroundingDINO์ ์ ํํ ์ด๊ธฐ ํ์ง ํ์ฉ
- โ SAM3์ ์ ๋ฐ ๋ง์คํฌ + ์๊ฐ ์ผ๊ด์ฑ ์ ์ง
- โ ์ด๊ธฐ ํ๋ ์ ์ฒ๋ฆฌ๋ง GroundingDINO ์ฌ์ฉ โ ์๋ ์ํฅ ์ต์
๋จ์ :
- โ GroundingDINO ๋ชจ๋ธ ์ถ๊ฐ ๋ก๋ (+2-3GB GPU ๋ฉ๋ชจ๋ฆฌ)
- โ ๋์ผ ์ธ๊ด ๊ฐ์ฒด(ํฐ ์ฅ)๋ GroundingDINO๋ ๊ตฌ๋ถ ๋ชปํจ โ 5๊ฐ bbox๊ฐ ์ ํํ์ง ์์ ์ ์์
4.2 ์๋๋ฆฌ์ค B: GroundingDINO ์ฌ์ด๊ธฐํ ๋ณด์กฐ (โญ๏ธโญ๏ธ)
๊ฐ๋ :
[SAM3 ๊ธฐ๋ณธ ์ฒ๋ฆฌ]
โ
[์ฒญํฌ ๊ฒฝ๊ณ or ID ์์ค ๊ฐ์ง]
โ
[GroundingDINO] โ ํด๋น ํ๋ ์์์ ๊ฐ์ฒด ์ฌํ์ง
โ
[SAM3] โ ์ bbox๋ก ์ฌ์ด๊ธฐํ
์ฅ์ :
- โ SAM3๊ฐ ๋์น ๊ฐ์ฒด ๋ณด์
- โ ์ฒญํฌ ๊ฒฝ๊ณ์์ ID ์ฐ๊ฒฐ ๋ณด๊ฐ
๋จ์ :
- โ ๋งค ์ฒญํฌ๋ง๋ค GroundingDINO ํธ์ถ โ ์๋ ์ ํ
- โ ๋ ๋ชจ๋ธ ๊ฒฐ๊ณผ ๋งค์นญ ๋ก์ง ๋ณต์ก
4.3 ์๋๋ฆฌ์ค C: GroundingDINO ๋จ๋ โ SAM ๊ฒฐํฉ (Grounded-SAM) (โญ๏ธ)
๊ฐ๋ :
[GroundingDINO] โ ๋งค ํ๋ ์ bbox ํ์ง
โ
[SAM (์ ์ )] โ bbox โ ๋ง์คํฌ
โ
[DeepSORT/BoT-SORT] โ ID ์ถ์
๋ฌธ์ :
- โ SAM3์ temporal tracking์ด ์์ ํ ๋ฌดํจํ๋จ
- โ ๋งค ํ๋ ์ GroundingDINO ํธ์ถ โ ๋๋ ค์ง
- โ ๋์ผ ์ธ๊ด ๊ฐ์ฒด์์ ID swap ์ฆ๊ฐ
๊ฒฐ๋ก : ํ์ฌ SAM3 ์์คํ ์ ๋ฒ๋ฆฌ๊ณ ์๋ก ๊ตฌ์ถํ๋ ๊ฒ๊ณผ ๋์ผ โ ๊ถ์ฅํ์ง ์์
5. ์ฑ๋ฅ/์๋ ์ํฅ ๋ถ์
5.1 ์๋๋ฆฌ์ค A ์ฑ๋ฅ ๋ถ์
| ์งํ | ํ์ฌ SAM3 | + GroundingDINO (์๋๋ฆฌ์ค A) | ๋ณํ |
|---|---|---|---|
| ์ด๊ธฐ ํ์ง ์ ํ๋ | โญ๏ธโญ๏ธโญ๏ธ | โญ๏ธโญ๏ธโญ๏ธโญ๏ธ | +25% |
| ๋ง์คํฌ ์ ๋ฐ๋ | โญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธ | โญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธ | ๋์ผ |
| ID ์ผ๊ด์ฑ | โญ๏ธโญ๏ธโญ๏ธโญ๏ธ | โญ๏ธโญ๏ธโญ๏ธโญ๏ธ | ๋์ผ |
| ์ฒ๋ฆฌ ์๋ | 300ms/frame | 305ms/frame | -1.7% |
| ๋์ผ ์ธ๊ด ๊ฐ์ฒด ์ฒ๋ฆฌ | โญ๏ธโญ๏ธโญ๏ธ | โญ๏ธโญ๏ธ | -30% |
| GPU ๋ฉ๋ชจ๋ฆฌ | 6-8GB | 9-11GB | +40% |
์ข ํฉ ํ๊ฐ:
- ์ด๊ธฐ ํ์ง ์ ํ๋๋ ํฅ์๋์ง๋ง, ๋์ผ ์ธ๊ด ๊ฐ์ฒด(ํฐ ์ฅ 5๋ง๋ฆฌ)๋ ์ฌ์ ํ ์ด๋ ค์
- GPU ๋ฉ๋ชจ๋ฆฌ ์ฆ๊ฐ๊ฐ ํฌ๊ณ , ์๋ ํฅ์์ ๋ฏธ๋ฏธํจ
5.2 ์๋ ์์ธ ๋ถ์
ํ์ฌ SAM3 (500 ํ๋ ์ ๋น๋์ค ๊ธฐ์ค)
์ด๊ธฐํ: 2s
ํ๋ ์ 0 (SAM3 add_prompt): 1.5s
ํ๋ ์ 1-499 (SAM3 propagate): 300ms ร 499 = 149.7s
ํ์ฒ๋ฆฌ: 2.5s
์ด: 155.7s (์ฝ 2๋ถ 36์ด)
GroundingDINO + SAM3 (์๋๋ฆฌ์ค A)
์ด๊ธฐํ (SAM3 + GroundingDINO): 3s
ํ๋ ์ 0 (GroundingDINO ํ์ง): 70ms
ํ๋ ์ 0 (SAM3 add_prompt with bbox): 1.0s โ ํ
์คํธ ์ธ์ฝ๋ฉ ๋ถํ์
ํ๋ ์ 1-499 (SAM3 propagate): 300ms ร 499 = 149.7s
ํ์ฒ๋ฆฌ: 2.5s
์ด: 156.3s (์ฝ 2๋ถ 36์ด)
๊ฒฐ๋ก : ์๋ ์ฐจ์ด ๊ฑฐ์ ์์ (0.4% ์ฆ๊ฐ only)
5.3 ์ ํ๋ ์์ธ ๋ถ์
ํ ์คํธ ์ผ์ด์ค: "5 white mice" ์๋๋ฆฌ์ค
| ์ํฉ | SAM3 ๋จ๋ | + GroundingDINO |
|---|---|---|
| 5๋ง๋ฆฌ ๋ชจ๋ ๋ถ๋ฆฌ๋์ด ์์ | 100% ์ ํ | 100% ์ ํ |
| 2๋ง๋ฆฌ๊ฐ ๊ฒน์ณ์์ | 95% ์ ํ (๋ง์คํฌ ๋ถ๋ฆฌ ๊ฐ๋ฅ) | 70% ์ ํ (bbox ๊ฒน์นจ โ 1๊ฐ๋ก ์ธ์) |
| ๊ผฌ๋ฆฌ๋ง ๋ณด์ | 90% ์ ํ (Anti-Tail ํํฐ) | 50% ์ ํ (bbox ๋๋ฌด ์์ ํํฐ๋ง๋จ) |
| ๋น ๋ฅธ ์์ง์ | 85% ์ ํ (Temporal tracking) | 85% ์ ํ (๋์ผ) |
๊ฒฐ๋ก : ๋์ผ ์ธ๊ด + ๊ฒน์นจ ์ํฉ์์ GroundingDINO๊ฐ ์คํ๋ ค ์ฑ๋ฅ ์ ํ
6. ๊ฒฐ๋ก ๋ฐ ๊ถ์ฅ์ฌํญ
6.1 ํต์ฌ ๋ฐ๊ฒฌ
| ํญ๋ชฉ | ๊ฒฐ๊ณผ |
|---|---|
| ์๋ ํฅ์ | โ ๊ฑฐ์ ์์ (0.4% ์ฆ๊ฐ) |
| ์ ํ๋ ํฅ์ | โ ๏ธ ์ผ๋ฐ ๊ฐ์ฒด๋ ํฅ์, ๋์ผ ์ธ๊ด ๊ฐ์ฒด๋ ์คํ๋ ค ์ ํ |
| ๋ฉ๋ชจ๋ฆฌ ์ฆ๊ฐ | โ +40% (9-11GB) |
| ๊ตฌํ ๋ณต์ก๋ | โ ๏ธ ์ค๊ฐ (๋ชจ๋ธ ์ถ๊ฐ ๋ก๋ + bbox ๋งค์นญ ๋ก์ง) |
| ROI (ํฌ์ ๋๋น ํจ๊ณผ) | โ ๋ฎ์ |
6.2 ์ต์ข ๊ถ์ฅ์ฌํญ
โ ๊ถ์ฅ: SAM3 ๋จ๋ ์ ์ง + ์ต์ ํ
์ด์ :
- SAM3์ temporal tracking์ด ๋์ผ ์ธ๊ด ๊ฐ์ฒด ์ฒ๋ฆฌ์ ๋ ์ฐ์
- ํตํฉ ๋ชจ๋ธ โ ๋ชจ๋ ๊ฐ ์ ํฉ์ฑ ๋ฌธ์ ์์
- GroundingDINO ์ถ๊ฐ ์ ๋ฉ๋ชจ๋ฆฌ ์ฆ๊ฐ ๋๋น ํจ๊ณผ ๋ฏธ๋ฏธ
๋์ ์๋ ์ต์ ํ ๊ถ์ฅ:
# 1. ํ๋ ์ ์คํต (2๋ฐฐ ๋น ๋ฆ)
for frame_idx in range(0, num_frames, 2): # ๋งค 2ํ๋ ์๋ง๋ค
outputs = propagate(...)
# 2. ํด์๋ ๊ฐ์ ํ ์
์ค์ผ์ผ (1.5๋ฐฐ ๋น ๋ฆ)
resized_frame = cv2.resize(frame, (width//2, height//2))
mask_low = sam3_process(resized_frame)
mask_high = cv2.resize(mask_low, (width, height))
# 3. SAM3 ๊ฒฝ๋ํ ๋ชจ๋ธ ์ฌ์ฉ
model = build_sam3("sam3_hiera_tiny") # ๋์ sam3_hiera_large
โ ๏ธ ์กฐ๊ฑด๋ถ ๊ถ์ฅ: GroundingDINO ํตํฉ (์๋๋ฆฌ์ค A)
์ฌ์ฉ ์กฐ๊ฑด:
- ์ธ๊ด์ด ๋ค์ํ ๊ฐ์ฒด๋ฅผ ๋ค๋ฃฐ ๋ (์: person, car, dog ํผํฉ)
- ์ด๊ธฐ ํ๋ ์์์ SAM3 ํ ์คํธ ํ๋กฌํํธ๊ฐ ์์ฃผ ์คํจํ ๋
- GPU ๋ฉ๋ชจ๋ฆฌ 12GB ์ด์ ์ฌ์ฉ ๊ฐ๋ฅํ ๋
๊ตฌํ ์ฐ์ ์์:
- GroundingDINO๋ก ์ฒซ ํ๋ ์๋ง bbox ํ์ง
- SAM3์ bbox ํ๋กฌํํธ ์ ๋ฌ
- SAM3 propagate๋ก ๋น๋์ค ์ถ์
โ ๋น๊ถ์ฅ: ์ ๋ฉด ๊ต์ฒด (์๋๋ฆฌ์ค C)
์ด์ :
- SAM3์ temporal tracking ๋ฌดํจํ
- ๋์ผ ์ธ๊ด ๊ฐ์ฒด์์ ์ฑ๋ฅ ๋ํญ ์ ํ
- ๊ตฌํ ๋ณต์ก๋ ๋์
6.3 ๋์: ํ์ฌ ์์คํ ๊ฐํ
ํ์ฌ ๊ตฌํ๋ ์ปค์คํ ๋ก์ง์ด ์ด๋ฏธ ๋งค์ฐ ๊ฐ๋ ฅํฉ๋๋ค:
| ๊ธฐ๋ฅ | ์ํ | ํจ๊ณผ |
|---|---|---|
| Velocity ๊ธฐ๋ฐ Occlusion ๋ณต์ | โ ๊ตฌํ๋จ | ID ์์ค ๋ฐฉ์ง |
| Anti-Tail ํํฐ + ํ์คํ ๋ฆฌ ์ ์ง | โ ๊ตฌํ๋จ | ๊ผฌ๋ฆฌ ๋ถ๋ฆฌ ๋ฐฉ์ง |
| Side View ๋ฐ์ฌ ์ ๊ฑฐ | โ ๊ตฌํ๋จ | ์คํ์ง ๊ฐ์ |
| IoU ๊ธฐ๋ฐ ์ฒญํฌ ์ฐ๊ฒฐ | โ ๊ตฌํ๋จ | ๊ธด ์์ ID ์ผ๊ด์ฑ |
์ถ๊ฐ ๊ฐ์ ๊ฐ๋ฅ ์์ญ:
- Adaptive thresholding (๊ฐ์ฒด ์๋์ ๋ฐ๋ผ ๋์ ์กฐ์ )
- Multi-scale processing (๋ค์ํ ํฌ๊ธฐ ๊ฐ์ฒด ๋์)
- Confidence-based filtering (๋ฎ์ ์ ๋ขฐ๋ ๋ง์คํฌ ์ ๊ฑฐ)
๐ ์์ฝํ
| ํตํฉ ๋ฐฉ์ | ์๋ | ์ ํ๋ | ๋ฉ๋ชจ๋ฆฌ | ๋ณต์ก๋ | ๊ถ์ฅ |
|---|---|---|---|---|---|
| SAM3 ๋จ๋ (ํ์ฌ) | โญ๏ธโญ๏ธโญ๏ธ | โญ๏ธโญ๏ธโญ๏ธโญ๏ธ | โญ๏ธโญ๏ธโญ๏ธโญ๏ธ | โญ๏ธโญ๏ธโญ๏ธโญ๏ธ | โ |
| + GroundingDINO (A) | โญ๏ธโญ๏ธโญ๏ธ | โญ๏ธโญ๏ธโญ๏ธ | โญ๏ธโญ๏ธ | โญ๏ธโญ๏ธโญ๏ธ | โ ๏ธ |
| + GroundingDINO (B) | โญ๏ธโญ๏ธ | โญ๏ธโญ๏ธโญ๏ธ | โญ๏ธโญ๏ธ | โญ๏ธโญ๏ธ | โ |
| ์ ๋ฉด ๊ต์ฒด (C) | โญ๏ธโญ๏ธ | โญ๏ธโญ๏ธ | โญ๏ธ | โญ๏ธ | โ |
๐ฏ ์ต์ข ๊ฒฐ๋ก
GroundingDINO๋ฅผ ์ ๋ชฉํ๋ ๊ฒ์ ํ์ฌ use case(๋์ผ ์ธ๊ด ๊ฐ์ฒด ๋ค์ค ์ถ์ )์์ ROI๊ฐ ๋ฎ์ต๋๋ค.
์ด์ :
- ์๋ ํฅ์ ๊ฑฐ์ ์์ (0.4%)
- ๋์ผ ์ธ๊ด ๊ฐ์ฒด์์ ์ ํ๋ ์คํ๋ ค ์ ํ
- GPU ๋ฉ๋ชจ๋ฆฌ 40% ์ฆ๊ฐ
- SAM3์ ๊ฐ๋ ฅํ temporal tracking์ ์ถฉ๋ถํ ํ์ฉ ๋ชปํจ
๊ถ์ฅ ์ฌํญ:
ํ์ฌ SAM3 ๋จ๋
์์คํ
์ ์ ์งํ๊ณ , ํ๋ ์ ์คํต/ํด์๋ ๊ฐ์ ๋ฑ์ ์ต์ ํ๋ก ์๋๋ฅผ ๊ฐ์ ํ๋ ๊ฒ์ด ๋ ํจ๊ณผ์ ์
๋๋ค.
์์ฑ์: AI Assistant
๊ฒํ ๋์: SAM3 ๋น๋์ค ์ธ๊ทธ๋ฉํ
์ด์
์์คํ
(์ฅ ์ถ์ use case)
๋ถ์ ๊ธฐ์ค: ์ฑ๋ฅ, ์๋, ๋ฉ๋ชจ๋ฆฌ, ๊ตฌํ ๋ณต์ก๋, ROI