Ultralytics YOLO27:

SAM 3: Phân đoạn mọi thứ bằng concept#

Tổng quan về phân đoạn concept có thể prompt bằng SAM 3

SAM 3 (Mô hình phân đoạn mọi thứ 3) là foundation model do Meta phát hành cho Promptable Concept Segmentation (PCS). Phát triển trên nền tảng SAM 2, SAM 3 giới thiệu một khả năng hoàn toàn mới: phát hiện, phân đoạn và tracking tất cả các instance của một concept thị giác được chỉ định bằng text prompt, exemplar hình ảnh hoặc cả hai. Khác với các phiên bản SAM trước đây chỉ phân đoạn một object cho mỗi prompt, SAM 3 có thể tìm và phân đoạn mọi lần xuất hiện của một concept ở bất kỳ vị trí nào trong hình ảnh hoặc video, phù hợp với các mục tiêu open-vocabulary trong instance segmentation hiện đại.



Watch: How to Use Meta Segment Anything 3 with Ultralytics | Text-Prompt Segmentation on Images & Videos

SAM 3 được tích hợp hoàn toàn vào gói ultralytics, cung cấp khả năng hỗ trợ nguyên bản cho phân đoạn khái niệm bằng các prompt dạng văn bản, prompt mẫu hình ảnh và theo dõi video. Điểm kiểm tra SAM 3.1 mới hơn được hỗ trợ cho việc dự đoán hình ảnh.

Tổng quan#

SAM 3 đạt hiệu năng cao hơn 2× so với các hệ thống hiện có trong Promptable Concept Segmentation, đồng thời duy trì và cải thiện các khả năng của SAM 2 cho visual segmentation tương tác. Model này nổi bật trong phân đoạn open-vocabulary, cho phép người dùng chỉ định concept bằng các cụm danh từ đơn giản (ví dụ: "xe buýt trường học màu vàng", "mèo vằn") hoặc cung cấp hình ảnh mẫu của object mục tiêu. Các khả năng này bổ trợ cho những pipeline sẵn sàng cho production, dựa trên các workflow predicttrack được tinh gọn.

Ví dụ phân đoạn bằng text prompt của SAM 3

Promptable Concept Segmentation (PCS) là gì?#

Task PCS nhận đầu vào là một concept prompt và trả về các segmentation mask với identity duy nhất cho tất cả instance object khớp. Concept prompt có thể là:

  • Text: Các cụm danh từ đơn giản như "quả táo đỏ" hoặc "người đội mũ", tương tự zero-shot learning
  • Exemplar hình ảnh: Các bounding box xung quanh object mẫu (positive hoặc negative) để tổng quát hóa nhanh
  • Kết hợp: Đồng thời sử dụng text và exemplar hình ảnh để kiểm soát chính xác

Điều này khác với các visual prompt truyền thống (point, box, mask), vốn chỉ phân đoạn một instance object cụ thể duy nhất, như được phổ biến bởi họ SAM ban đầu.

Các chỉ số hiệu năng chính#

Chỉ sốKết quả của SAM 3
LVIS Zero-Shot Mask AP47.0 (so với mức tốt nhất trước đây là 38.5, cải thiện +22%)
Benchmark SA-CoTốt hơn 2× so với các hệ thống hiện có
Tốc độ inference (GPU H200)30 ms cho mỗi hình ảnh với hơn 100 object được phát hiện
Hiệu năng videoGần thời gian thực với ~5 object đồng thời
Benchmark MOSEv2 VOS60.1 J&F (cao hơn +25.5% so với SAM 2.1, +17% so với SOTA trước đây)
Tinh chỉnh tương tácCải thiện +18.6 CGF1 sau 3 exemplar prompt
Khoảng cách so với hiệu năng con ngườiĐạt 88% cận dưới ước tính trên SA-Co/Gold

Để tìm hiểu về các metric của model và sự đánh đổi trong production, hãy xem insight về đánh giá modelmetric hiệu năng YOLO.

SAM 3.1#

SAM 3.1, được Meta phát hành vào ngày 27 tháng 3 năm 2026, là một điểm kiểm tra SAM 3 mới bổ sung Object Multiplex, một cách tiếp cận bộ nhớ chia sẻ để theo dõi video đa đối tượng. Thay vì xử lý độc lập từng đối tượng được theo dõi, SAM 3.1 nhóm các đối tượng vào các thùng có dung lượng cố định và xử lý chúng cùng nhau, điều mà Meta báo cáo là tốc độ tăng khoảng ~7× ở 128 đối tượng trên một GPU H100 duy nhất. Trình phát hiện hình ảnh và phần đầu prompt điểm tương tác giữ nguyên kiến trúc SAM 3.

BenchmarkChỉ sốSAM 3SAM 3.1
SA-Co/VEval SA-V (kiểm tra)cgF130.330.5
SA-Co/VEval YT-Temporal-1B (kiểm tra)cgF150.852.9
SA-Co/VEval SmartGlasses (kiểm tra)cgF136.436.3
MOSEv1 (xác thực)J&F78.479.6
DAVIS17 (xác thực)J&F92.292.7
SA-V (kiểm tra)J&F84.485.1
YTVOS19 (xác thực)G89.789.3
MOSEv2 (xác thực)J&Ḟ60.362.3

Ultralytics tải điểm kiểm tra SAM 3.1 (sam3.1_multiplex.pt) vào các trình dự đoán hình ảnh SAM 3: SAM("sam3.1_multiplex.pt") cho các prompt điểm và hộp, và SAM3SemanticPredictor cho các prompt văn bản và mẫu. Theo dõi video Object Multiplex chưa được hỗ trợ, vì vậy hãy tiếp tục sử dụng sam3.pt với SAM3VideoPredictorSAM3VideoSemanticPredictor.

Kiến trúc#

SAM 3 gồm một detectortracker, cùng chia sẻ backbone thị giác Perception Encoder (PE). Thiết kế tách rời này tránh xung đột giữa các task, đồng thời hỗ trợ cả detection cấp độ hình ảnh và tracking cấp độ video, với interface tương thích với cách sử dụng Pythoncách sử dụng CLI của Ultralytics.

Các thành phần cốt lõi#

  • Detector: Kiến trúc dựa trên DETR cho detection concept ở cấp độ hình ảnh

    • Text encoder cho các prompt dạng cụm danh từ
    • Exemplar encoder cho các prompt dựa trên hình ảnh
    • Fusion encoder để điều kiện hóa các đặc trưng hình ảnh theo prompt
    • Presence head mới, tách recognition ("what") khỏi localization ("where")
    • Mask head để tạo segmentation mask cho instance
  • Tracker: Video segmentation dựa trên memory, kế thừa từ SAM 2

    • Prompt encoder, mask decoder, memory encoder
    • Memory bank để lưu trữ diện mạo của object qua các frame
    • Disambiguation theo thời gian được hỗ trợ bởi các kỹ thuật như bộ lọc Kalman trong các bối cảnh multi-object
  • Presence Token: Global token được học để dự đoán concept mục tiêu có hiện diện trong hình ảnh/frame hay không, cải thiện detection bằng cách tách recognition khỏi localization.

Sơ đồ kiến trúc model SAM 3

Các cải tiến chính#

  1. Tách biệt Recognition và Localization: Presence head dự đoán sự hiện diện của concept trên toàn cục, trong khi các proposal query chỉ tập trung vào localization, tránh các mục tiêu xung đột.
  2. Prompt Concept và Visual thống nhất: Hỗ trợ cả PCS (concept prompt) và PVS (visual prompt như click/box của SAM 2) trong một model duy nhất.
  3. Tinh chỉnh Exemplar tương tác: Người dùng có thể thêm exemplar hình ảnh positive hoặc negative để tinh chỉnh kết quả lặp lại, trong đó model tổng quát hóa sang các object tương tự thay vì chỉ sửa từng instance riêng lẻ.
  4. Disambiguation theo thời gian: Sử dụng điểm detection của masklet và re-prompt định kỳ để xử lý hiện tượng che khuất, cảnh đông đúc và lỗi tracking trong video, phù hợp với các best practice về instance segmentation và tracking.

Dataset SA-Co#

SAM 3 được huấn luyện trên Segment Anything with Concepts (SA-Co), dataset segmentation lớn nhất và đa dạng nhất của Meta cho đến nay, mở rộng vượt ra ngoài các benchmark phổ biến như COCOLVIS.

Dữ liệu huấn luyện#

Thành phần datasetMô tảQuy mô
SA-Co/HQDữ liệu hình ảnh chất lượng cao do con người gán nhãn từ data engine 4 giai đoạn5.2M hình ảnh, 4M cụm danh từ duy nhất
SA-Co/SYNDataset tổng hợp được AI gán nhãn mà không có sự tham gia của con người38M cụm danh từ, 1.4B mask
SA-Co/EXT15 dataset bên ngoài được làm phong phú bằng hard negativeThay đổi tùy theo nguồn
SA-Co/VIDEOAnnotation video với tracking theo thời gian52.5K video, 24.8K cụm danh từ duy nhất

Dữ liệu benchmark#

Benchmark đánh giá SA-Co chứa 214K phrase duy nhất trên 126K hình ảnh và video, cung cấp số lượng concept nhiều hơn 50× so với các benchmark hiện có. Benchmark bao gồm:

  • SA-Co/Gold: 7 lĩnh vực, được gán nhãn ba lần để đo cận hiệu năng của con người
  • SA-Co/Silver: 10 lĩnh vực, một lần gán nhãn bởi con người
  • SA-Co/BronzeSA-Co/Bio: 9 dataset hiện có được điều chỉnh cho phân đoạn concept
  • SA-Co/VEval: Benchmark video với 3 lĩnh vực (SA-V, YT-Temporal-1B, SmartGlasses)

Các cải tiến của Data Engine#

Data engine có human-in-the-loop và model-in-the-loop với khả năng mở rộng của SAM 3 đạt throughput annotation cao hơn 2× thông qua:

  1. AI Annotators: Các model dựa trên Llama đề xuất nhiều cụm danh từ đa dạng, bao gồm cả hard negative
  2. AI Verifiers: Multimodal LLM được fine-tune xác minh chất lượng và tính đầy đủ của mask với hiệu năng gần bằng con người
  3. Active Mining: Tập trung nỗ lực của con người vào các case lỗi khó, nơi AI gặp khó khăn
  4. Dựa trên Ontology: Tận dụng ontology lớn được xây dựng trên nền tảng Wikidata để bao phủ concept

Cài đặt#

Cài đặt hoặc nâng cấp gói ultralytics:

pip install -U ultralytics
Yêu cầu về trọng số model SAM 3

Không giống các model Ultralytics khác, trọng số SAM 3 (sam3.pt) không được tự động tải xuống. Trước tiên, bạn phải yêu cầu quyền truy cập trọng số model trên trang model SAM 3 trên Hugging Face, sau đó, khi được phê duyệt, tải xuống sam3.pt từ trang đó. Đặt file sam3.pt đã tải xuống vào working directory hoặc chỉ định đường dẫn đầy đủ khi load model.

Trọng số SAM 3.1 (sam3.1_multiplex.pt) được kiểm soát theo cùng một cách trên trang mô hình SAM 3.1. Truyền sam3.1_multiplex.pt vào bất kỳ đâu các ví dụ hình ảnh bên dưới sử dụng sam3.pt.

`TypeError: 'SimpleTokenizer' object is not callable`

Nếu gặp lỗi trên trong quá trình prediction, điều đó có nghĩa là bạn đã cài sai package clip. Cài đặt package clip chính xác bằng lệnh sau:

pip uninstall clip -y
pip install git+https://github.com/ultralytics/CLIP.git

Cách sử dụng SAM 3: Tính linh hoạt trong phân đoạn concept#

SAM 3 hỗ trợ cả task Promptable Concept Segmentation (PCS) và Promptable Visual Segmentation (PVS) thông qua các interface predictor khác nhau:

Các task và model được hỗ trợ#

Loại taskLoại promptĐầu ra
Phân đoạn concept (PCS)Text (cụm danh từ), exemplar hình ảnhTất cả instance khớp với concept
Phân đoạn thị giác (PVS)Point, box, maskMột instance object duy nhất (kiểu SAM 2)
Tinh chỉnh tương tácLặp lại việc thêm/xóa exemplar hoặc clickPhân đoạn được tinh chỉnh với độ chính xác cải thiện

Ví dụ về phân đoạn khái niệm#

Phân đoạn bằng prompt văn bản#

Phân đoạn khái niệm dựa trên văn bản

Tìm và phân đoạn tất cả các instance của một khái niệm bằng mô tả văn bản. Prompt văn bản yêu cầu interface SAM3SemanticPredictor.

from ultralytics.models.sam import SAM3SemanticPredictor

# Initialize predictor with configuration
overrides = {
    "conf": 0.25,
    "task": "segment",
    "mode": "predict",
    "model": "sam3.pt",
    "quantize": 16,  # Use FP16 for faster inference
    "save": True,
}
predictor = SAM3SemanticPredictor(overrides=overrides)

# Set image once for multiple queries
predictor.set_image("path/to/image.jpg")

# Query with multiple text prompts
results = predictor(text=["person", "bus", "glasses"])

# Works with descriptive phrases
results = predictor(text=["person with red cloth", "person with blue cloth"])

# Query with a single concept
results = predictor(text=["a person"])

Phân đoạn bằng exemplar hình ảnh#

Phân đoạn dựa trên exemplar hình ảnh

Sử dụng các bounding box làm prompt trực quan để tìm tất cả các instance tương tự. Tính năng này cũng yêu cầu SAM3SemanticPredictor để matching dựa trên khái niệm.

from ultralytics.models.sam import SAM3SemanticPredictor

# Initialize predictor
overrides = {"conf": 0.25, "task": "segment", "mode": "predict", "model": "sam3.pt", "quantize": 16, "save": True}
predictor = SAM3SemanticPredictor(overrides=overrides)

# Set image
predictor.set_image("path/to/image.jpg")

# Provide bounding box examples to segment similar objects
results = predictor(bboxes=[[480.0, 290.0, 590.0, 650.0]])

# Multiple bounding boxes as exemplars of the same visual concept
results = predictor(bboxes=[[539, 599, 589, 639], [343, 267, 499, 662]])

Inference dựa trên feature để tăng hiệu quả#

Tái sử dụng feature hình ảnh cho nhiều truy vấn

Trích xuất feature hình ảnh một lần và tái sử dụng chúng cho nhiều truy vấn phân đoạn để tăng hiệu quả.

import cv2

from ultralytics.models.sam import SAM3SemanticPredictor
from ultralytics.utils.plotting import Annotator, colors

# Initialize predictors
overrides = {"conf": 0.50, "task": "segment", "mode": "predict", "model": "sam3.pt", "verbose": False}
predictor = SAM3SemanticPredictor(overrides=overrides)
predictor2 = SAM3SemanticPredictor(overrides=overrides)

# Extract features from the first predictor
source = "path/to/image.jpg"
predictor.set_image(source)
src_shape = cv2.imread(source).shape[:2]

# Setup second predictor and reuse features
predictor2.setup_model()

# Perform inference using shared features with text prompt
masks, boxes = predictor2.inference_features(predictor.features, src_shape=src_shape, text=["person"])

# Perform inference using shared features with bounding box prompt
masks, boxes = predictor2.inference_features(predictor.features, src_shape=src_shape, bboxes=[[439, 437, 524, 709]])

# Visualize results
if masks is not None:
    masks, boxes = masks.cpu().numpy(), boxes.cpu().numpy()
    im = cv2.imread(source)
    annotator = Annotator(im, pil=False)
    annotator.masks(masks, [colors(x, True) for x in range(len(masks))])

    cv2.imshow("result", annotator.result())
    cv2.waitKey(0)

Phân đoạn khái niệm trong video#

Theo dõi khái niệm trong video bằng bounding box#

Theo dõi video bằng prompt trực quan

Phát hiện và theo dõi các instance của đối tượng qua các frame video bằng prompt bounding box.

from ultralytics.models.sam import SAM3VideoPredictor

# Create video predictor
overrides = {"conf": 0.25, "task": "segment", "mode": "predict", "model": "sam3.pt", "quantize": 16}
predictor = SAM3VideoPredictor(overrides=overrides)

# Track objects using bounding box prompts
results = predictor(source="path/to/video.mp4", bboxes=[[706.5, 442.5, 905.25, 555], [598, 635, 725, 750]], stream=True)

# Process and display results
for r in results:
    r.show()  # Display frame with segmentation masks

Theo dõi khái niệm bằng prompt văn bản#

Theo dõi video bằng truy vấn ngữ nghĩa

Theo dõi tất cả các instance của những khái niệm được chỉ định bằng văn bản qua các frame video.

from ultralytics.models.sam import SAM3VideoSemanticPredictor

# Initialize semantic video predictor
overrides = {
    "conf": 0.25,
    "task": "segment",
    "mode": "predict",
    "imgsz": 640,
    "model": "sam3.pt",
    "quantize": 16,
    "save": True,
}
predictor = SAM3VideoSemanticPredictor(overrides=overrides)

# Track concepts using text prompts
results = predictor(source="path/to/video.mp4", text=["person", "bicycle"], stream=True)

# Process results
for r in results:
    r.show()  # Display frame with tracked objects

# Alternative: Track with bounding box prompts
results = predictor(
    source="path/to/video.mp4",
    bboxes=[[864, 383, 975, 620], [705, 229, 782, 402]],
    labels=[1, 1],  # Positive labels
    stream=True,
)

Prompt trực quan (tương thích với SAM 2)#

SAM 3 duy trì khả năng tương thích ngược đầy đủ với tính năng prompting trực quan của SAM 2 để phân đoạn một đối tượng:

Prompt trực quan theo phong cách SAM 2

Interface cơ bản SAM hoạt động chính xác như SAM 2, chỉ phân đoạn khu vực cụ thể được chỉ báo bằng prompt trực quan (point, box hoặc mask).

from ultralytics import SAM

model = SAM("sam3.pt")

# Single point prompt - segments object at specific location
results = model.predict(source="path/to/image.jpg", points=[900, 370], labels=[1])
results[0].show()

# Multiple points - segments single object with multiple point hints
results = model.predict(source="path/to/image.jpg", points=[[400, 370], [900, 370]], labels=[1, 1])

# Box prompt - segments object within bounding box
results = model.predict(source="path/to/image.jpg", bboxes=[100, 150, 300, 400])
results[0].show()
Prompt trực quan so với phân đoạn khái niệm

Sử dụng SAM("sam3.pt") với prompt trực quan (point/box/mask) sẽ phân đoạn chỉ đối tượng cụ thể tại vị trí đó, giống như SAM 2. Để phân đoạn tất cả các instance của một khái niệm, hãy sử dụng SAM3SemanticPredictor với prompt văn bản hoặc exemplar như minh họa ở trên.

Benchmark hiệu năng#

Phân đoạn hình ảnh#

SAM 3 đạt kết quả tiên tiến nhất trên nhiều benchmark, bao gồm các dataset thực tế như LVISCOCO cho phân đoạn:

BenchmarkChỉ sốSAM 3Kết quả tốt nhất trước đâyMức cải thiện
LVIS (zero-shot)Mask AP47.038.5+22.1%
SA-Co/GoldCGF165.034.3 (OWLv2)+89.5%
COCO (zero-shot)Box AP53.552.2 (T-Rex2)+2.5%
ADE-847 (phân đoạn ngữ nghĩa)mIoU14.79.2 (APE-D)+59.8%
PascalConcept-59mIoU59.458.5 (APE-D)+1.5%
Cityscapes (phân đoạn ngữ nghĩa)mIoU65.144.2 (APE-D)+47.3%

Khám phá các tùy chọn dataset để nhanh chóng thử nghiệm trong các dataset của Ultralytics.

Hiệu năng phân đoạn video#

SAM 3 cho thấy mức cải thiện đáng kể so với SAM 2 và các mô hình tiên tiến nhất trước đây trên các benchmark video như DAVIS 2017YouTube-VOS:

BenchmarkChỉ sốSAM 3SAM 2.1 LMức cải thiện
MOSEv2J&F60.147.9+25.5%
DAVIS 2017J&F92.090.7+1.4%
LVOSv2J&F88.279.6+10.8%
SA-VJ&F84.678.4+7.9%
YTVOS19J&F89.689.3+0.3%

Thích ứng few-shot#

SAM 3 nổi bật trong việc thích ứng với các domain mới chỉ bằng một số lượng tối thiểu ví dụ, phù hợp với các workflow AI lấy dữ liệu làm trung tâm:

BenchmarkAP 0-shotAP 10-shotKết quả tốt nhất trước đây (10-shot)
ODinW1359.971.667.9 (gDino1.5-Pro)
RF100-VL14.335.733.7 (gDino-T)

Hiệu quả tinh chỉnh tương tác#

Prompt dựa trên khái niệm của SAM 3 với exemplar hội tụ nhanh hơn nhiều so với prompting trực quan:

Số prompt đã thêmĐiểm CGF1Mức tăng so với chỉ văn bảnMức tăng so với baseline PVS
Chỉ văn bản46.4baselinebaseline
+1 exemplar57.6+11.2+6.7
+2 exemplar62.2+15.8+9.7
+3 exemplar65.0+18.6+11.2
+4 exemplar65.7+19.3+11.5 (cao điểm)

Độ chính xác đếm đối tượng#

SAM 3 cung cấp khả năng đếm chính xác bằng cách phân đoạn tất cả các instance, một yêu cầu phổ biến trong bài toán đếm đối tượng:

BenchmarkĐộ chính xácMAEso với MLLM tốt nhất
CountBench95.6%0.1192.4% (Gemini 2.5)
PixMo-Count87.3%0.2288.8% (Molmo-72B)

So sánh SAM 3 với SAM 2 và YOLO#

Tại đây, chúng ta so sánh các khả năng của SAM 3 với các model SAM 2YOLO26. Để phát hiện và phân đoạn open-vocabulary theo thời gian thực từ cùng các dạng prompt, hãy xem YOLOE:

Khả năngSAM 3SAM 2YOLO26n-seg
Phân đoạn khái niệm✅ Tất cả instance từ văn bản/exemplar❌ Không được hỗ trợ❌ Không được hỗ trợ
Phân đoạn trực quan✅ Một instance (tương thích với SAM 2)✅ Một instance✅ Tất cả instance
Khả năng zero-shot✅ Từ vựng mở✅ Prompt hình học❌ Tập đóng
Tinh chỉnh tương tác✅ Exemplars + lượt click✅ Chỉ lượt click❌ Không được hỗ trợ
Theo dõi video✅ Nhiều đối tượng kèm danh tính✅ Nhiều đối tượng✅ Nhiều đối tượng
Mask AP trên LVIS (zero-shot)47.0Không áp dụngKhông áp dụng
MOSEv2 J&F60.147.9Không áp dụng
Tốc độ (GPU, ms/im)29218578.4
Kích thước model3.45 GB162 MB (bản base)6.4 MB

Tốc độ được benchmark trên NVIDIA RTX PRO 6000 với torch==2.9.1ultralytics==8.4.19.

Điểm chính:

  • SAM 3: Phù hợp nhất cho phân đoạn concept với vocabulary mở, tìm tất cả instance của một concept bằng prompt dạng text hoặc exemplar
  • SAM 2: Phù hợp nhất cho phân đoạn tương tác một đối tượng trong ảnh và video bằng prompt hình học
  • YOLO26: Tốt nhất cho việc phân đoạn thời gian thực, tốc độ cao với suy luận đầu-cuối không cần NMS tùy chọn, có thể xuất sang nhiều định dạng để triển khai trên GPU, CPU và thiết bị biên

So sánh SAM với YOLO#

So sánh SAM 3, SAM 2, SAM, MobileSAM và FastSAM với các model phân đoạn Ultralytics YOLO (YOLOv8, YOLO11, YOLO26) về kích thước, số lượng tham số và tốc độ inference trên GPU:

ModelKích thước
(MB)
Số tham số
(M)
Tốc độ (GPU)
(ms/im)
Meta SAM-b37593.71306
Meta SAM2-b16280.8857
Meta SAM2-t78.138.9668
Meta SAM33450473.62921
MobileSAM40.710.1605
FastSAM-s với backbone YOLOv823.711.855.9
Ultralytics YOLOv8n-seg6.7 (nhỏ hơn 515 lần)3.4 (ít hơn 139.1 lần)17.4 (nhanh hơn 167 lần)
Ultralytics YOLO11n-seg5.9 (nhỏ hơn 585 lần)2.9 (ít hơn 163.1 lần)12.6 (nhanh hơn 231 lần)
Ultralytics YOLO26n-seg6.4 (nhỏ hơn 539 lần)2.7 (ít hơn 175.2 lần)8.4 (nhanh hơn 347 lần)

So sánh này cho thấy sự khác biệt đáng kể về kích thước và tốc độ model giữa các biến thể SAM và các model phân đoạn YOLO. Mặc dù SAM cung cấp khả năng phân đoạn tự động độc đáo, các model YOLO, đặc biệt là YOLOv8n-seg, YOLO11n-seg và YOLO26n-seg, nhỏ hơn, nhanh hơn và hiệu quả tính toán cao hơn đáng kể.

Các phép thử được chạy trên NVIDIA RTX PRO 6000 với 96GB VRAM bằng torch==2.9.1ultralytics==8.4.19. Để tái tạo phép thử này:

Ví dụ
from ultralytics import ASSETS, SAM, YOLO, FastSAM

# Profile SAM3, SAM2-t, SAM2-b, SAM-b, MobileSAM
for file in ["sam_b.pt", "sam2_b.pt", "sam2_t.pt", "mobile_sam.pt", "sam3.pt"]:
    model = SAM(file)
    model.info()
    model(ASSETS)

# Profile FastSAM-s
model = FastSAM("FastSAM-s.pt")
model.info()
model(ASSETS)

# Profile YOLO models
for file_name in ["yolov8n-seg.pt", "yolo11n-seg.pt", "yolo26n-seg.pt"]:
    model = YOLO(file_name)
    model.info()
    model(ASSETS, nms=False)  # YOLO26 NMS-free head; no-op for YOLOv8/YOLO11

Các metric đánh giá#

SAM 3 giới thiệu các metric mới được thiết kế cho tác vụ PCS, bổ sung cho những thước đo quen thuộc như F1 score, precisionrecall.

F1 có điều kiện theo phân loại (CGF1)#

Metric chính kết hợp localization và classification:

CGF1 = 100 × pmF1 × IL_MCC

Trong đó:

  • pmF1 (F1 macro dương): Đo chất lượng localization trên các ví dụ dương
  • IL_MCC (Hệ số tương quan Matthews cấp ảnh): Đo độ chính xác phân loại nhị phân ("concept có hiện diện không?")

Tại sao cần các metric này?#

Các metric AP truyền thống không tính đến calibration, khiến model khó sử dụng trong thực tế. Bằng cách chỉ đánh giá các prediction có confidence trên 0.5, các metric của SAM 3 đảm bảo calibration tốt và mô phỏng các pattern sử dụng trong thực tế ở các vòng lặp predicttrack tương tác.

Các ablation và insight chính#

Ảnh hưởng của presence head#

Presence head tách recognition khỏi localization, mang lại những cải thiện đáng kể:

Cấu hìnhCGF1IL_MCCpmF1
Không có presence57.60.7774.7
Có presence63.30.8277.1

Presence head mang lại mức tăng 5.7 CGF1 (+9.9%), chủ yếu cải thiện khả năng recognition (IL_MCC +6.5%).

Ảnh hưởng của hard negative#

Hard Negative/ẢnhCGF1IL_MCCpmF1
031.80.4470.2
544.80.6271.9
3049.20.6872.3

Hard negative rất quan trọng đối với recognition với vocabulary mở, cải thiện IL_MCC 54.5% (0.44 → 0.68).

Scaling dữ liệu huấn luyện#

Nguồn dữ liệuCGF1IL_MCCpmF1
Chỉ external30.90.4666.3
External + synthetic39.70.5770.6
External + HQ51.80.7173.2
Cả ba54.30.7473.5

Các annotation chất lượng cao do con người thực hiện mang lại mức cải thiện lớn so với chỉ sử dụng dữ liệu synthetic hoặc external. Để tìm hiểu cơ sở về các phương pháp đảm bảo chất lượng dữ liệu, hãy xem thu thập và annotation dữ liệu.

Ứng dụng#

Khả năng phân đoạn concept của SAM 3 mở ra các use case mới:

  • Kiểm duyệt nội dung: Tìm tất cả instance của các loại nội dung cụ thể trong các thư viện media
  • E-commerce: Phân đoạn tất cả sản phẩm thuộc một loại nhất định trong ảnh catalog, hỗ trợ auto-annotation
  • Chẩn đoán hình ảnh y tế: Xác định mọi trường hợp xuất hiện của các loại mô hoặc bất thường cụ thể
  • Hệ thống tự hành: Theo dõi tất cả instance của biển báo giao thông, người đi bộ hoặc phương tiện theo category
  • Phân tích video: Đếm và theo dõi tất cả người mặc loại quần áo cụ thể hoặc thực hiện các hành động cụ thể
  • Annotation dataset: Nhanh chóng annotate tất cả instance của các category đối tượng hiếm
  • Nghiên cứu khoa học: Định lượng và phân tích tất cả mẫu vật phù hợp với các tiêu chí cụ thể

SAM 3 Agent: Suy luận ngôn ngữ mở rộng#

SAM 3 có thể kết hợp với các mô hình ngôn ngữ lớn đa phương thức (MLLMs) để xử lý các truy vấn phức tạp cần suy luận, tương tự về cách tiếp cận với các hệ thống vocabulary mở như OWLv2T-Rex.

Hiệu năng trên các tác vụ suy luận#

BenchmarkChỉ sốSAM 3 Agent (Gemini 2.5 Pro)Kết quả tốt nhất trước đây
ReasonSeg (validation)gIoU76.065.0 (SoTA)
ReasonSeg (test)gIoU73.861.3 (SoTA)
OmniLabel (validation)AP46.736.5 (REAL)
RefCOCO+Acc91.289.3 (LISA)

Các truy vấn phức tạp mẫu#

SAM 3 Agent có thể xử lý các truy vấn cần suy luận:

  • "Những người đang ngồi nhưng không cầm hộp quà trên tay"
  • "Con chó gần camera nhất nhưng không đeo vòng cổ"
  • "Các vật thể màu đỏ lớn hơn bàn tay của người đó"

MLLM đề xuất các truy vấn cụm danh từ đơn giản cho SAM 3, phân tích các mask được trả về và lặp lại cho đến khi đạt yêu cầu.

Hạn chế#

Mặc dù SAM 3 là một bước tiến lớn, model này vẫn có một số hạn chế nhất định:

  • Độ phức tạp của cụm từ: Phù hợp nhất với các cụm danh từ đơn giản; những biểu thức quy chiếu dài hoặc yêu cầu suy luận phức tạp có thể cần tích hợp MLLM
  • Xử lý tính mơ hồ: Một số khái niệm vốn dĩ vẫn mơ hồ (ví dụ: "cửa sổ nhỏ", "căn phòng ấm cúng")
  • Yêu cầu tính toán: Lớn hơn và chậm hơn các model detection chuyên biệt như YOLO
  • Phạm vi từ vựng: Tập trung vào các khái niệm hình ảnh nguyên tử; khả năng suy luận tổ hợp bị hạn chế nếu không có hỗ trợ của MLLM
  • Khái niệm hiếm: Hiệu năng có thể giảm đối với các khái niệm cực kỳ hiếm hoặc có mức độ chi tiết cao nhưng không được biểu diễn đầy đủ trong dữ liệu huấn luyện

Trích dẫn#

Trích dẫn
@misc{carion2025sam3,
  title         = {SAM 3: Segment Anything with Concepts},
  author        = {Nicolas Carion and Laura Gustafson and Yuan-Ting Hu and Shoubhik Debnath and Ronghang Hu and Didac Suris and Chaitanya Ryali and Kalyan Vasudev Alwala and Haitham Khedr and Andrew Huang and Jie Lei and Tengyu Ma and Baishan Guo and Arpit Kalla and Markus Marks and Joseph Greer and Meng Wang and Peize Sun and Roman R{\"a}dle and Triantafyllos Afouras and Effrosyni Mavroudi and Katherine Xu and Tsung-Han Wu and Yu Zhou and Liliane Momeni and Rishi Hazra and Shuangrui Ding and Sagar Vaze and Francois Porcher and Feng Li and Siyuan Li and Aishwarya Kamath and Ho Kei Cheng and Piotr Doll{\'a}r and Nikhila Ravi and Kate Saenko and Pengchuan Zhang and Christoph Feichtenhofer},
  year          = {2025},
  eprint        = {2511.16719},
  archivePrefix = {arXiv},
  primaryClass  = {cs.CV},
  url           = {https://arxiv.org/abs/2511.16719}
}

FAQ#

  • SAM 3 được phát hành bởi Meta vào Ngày 19 tháng 11 năm 2025 và được tích hợp hoàn toàn vào gói ultralytics, với hỗ trợ cho predict modetrack mode.

  • Có chứ! SAM 3 được tích hợp hoàn toàn vào gói Python của Ultralytics, bao gồm phân đoạn khái niệm, các lời nhắc trực quan theo phong cách SAM 2 và theo dõi video nhiều đối tượng. SAM 3 và SAM 3.1 cũng cung cấp năng lượng cho tính năng smart annotation trên Ultralytics Platform, nơi SAM 3.1 là model mặc định và bạn có thể chú thích hình ảnh chỉ với vài cú nhấp chuột.

  • Có, đối với việc dự đoán hình ảnh. Tải sam3.1_multiplex.pt bất cứ nơi nào các ví dụ về hình ảnh trên trang này sử dụng sam3.pt: SAM("sam3.1_multiplex.pt") cho lời nhắc điểm và hộp, và SAM3SemanticPredictor cho lời nhắc văn bản và mẫu. Việc theo dõi video Object Multiplex chưa được hỗ trợ, vì vậy hãy tiếp tục sử dụng sam3.pt với các bộ dự đoán video. Xem SAM 3.1 để biết các điểm chuẩn của Meta.

  • PCS là một task mới được giới thiệu trong SAM 3, có khả năng phân đoạn tất cả các instance của một khái niệm hình ảnh trong ảnh hoặc video. Khác với segmentation truyền thống nhắm đến một instance cụ thể của object, PCS tìm mọi lần xuất hiện của một category. Ví dụ:

    • Text prompt: "xe buýt trường học màu vàng" → phân đoạn tất cả xe buýt trường học màu vàng trong cảnh
    • Image exemplar: Vẽ box quanh một con chó → phân đoạn tất cả chó trong ảnh
    • Kết hợp: "mèo có sọc" + box exemplar → phân đoạn tất cả mèo có sọc khớp với ví dụ

    Xem thêm thông tin nền tảng liên quan đến object detectioninstance segmentation.

  • Tính năngSAM 2SAM 3
    TaskMột object cho mỗi promptTất cả instance của một khái niệm
    Loại promptPoint, box, mask+ Cụm từ văn bản, image exemplar
    Khả năng detectionCần detector bên ngoàiDetector open-vocabulary tích hợp sẵn
    Nhận diệnChỉ dựa trên hình họcNhận diện bằng văn bản và hình ảnh
    Kiến trúcChỉ có trackerDetector + tracker với presence head
    Hiệu năng zero-shotN/A (cần visual prompt)47.0 AP trên LVIS, tốt hơn 2× trên SA-Co
    Tinh chỉnh tương tácChỉ nhấp chuộtNhấp chuột + khả năng khái quát hóa từ exemplar

    SAM 3 duy trì khả năng tương thích ngược với visual prompt của SAM 2, đồng thời bổ sung các capability dựa trên khái niệm.

  • SAM 3 được huấn luyện trên dataset Segment Anything with Concepts (SA-Co):

    Dữ liệu huấn luyện:

    • 5.2M hình ảnh với 4M cụm danh từ duy nhất (SA-Co/HQ) - chú thích chất lượng cao do con người thực hiện
    • 52.5K video với 24.8K cụm danh từ duy nhất (SA-Co/VIDEO)
    • 1.4B mask tổng hợp trên 38M cụm danh từ (SA-Co/SYN)
    • 15 dataset bên ngoài được bổ sung hard negative (SA-Co/EXT)

    Dữ liệu benchmark:

    • 214K khái niệm duy nhất trên 126K hình ảnh/video
    • Nhiều hơn 50× khái niệm so với các benchmark hiện có (ví dụ, LVIS có khoảng ~4K khái niệm)
    • Chú thích ba lần trên SA-Co/Gold để đo giới hạn hiệu năng của con người

    Quy mô và tính đa dạng lớn này giúp SAM 3 khái quát hóa zero-shot vượt trội trên các khái niệm open-vocabulary.

  • SAM 3 và YOLO26 phục vụ các use case khác nhau:

    Ưu điểm của SAM 3:

    • Open-vocabulary: Phân đoạn bất kỳ khái niệm nào thông qua text prompt mà không cần huấn luyện
    • Zero-shot: Hoạt động ngay trên các category mới
    • Tương tác: Việc tinh chỉnh dựa trên exemplar có thể khái quát hóa sang các object tương tự
    • Dựa trên khái niệm: Tự động tìm tất cả instance của một category
    • Độ chính xác: 47.0 AP trên instance segmentation zero-shot của LVIS

    Ưu điểm của YOLO26:

    • Tốc độ: Tốc độ suy luận nhanh hơn nhiều bậc, với phần đầu đầu-cuối không cần NMS tùy chọn
    • Hiệu quả: Model nhỏ hơn 539× (6.4MB so với 3.45GB)
    • Thân thiện với tài nguyên: Chạy trên edge device và thiết bị di động
    • Thời gian thực: Được tối ưu cho việc triển khai production

    Khuyến nghị:

    • Sử dụng SAM 3 cho segmentation open-vocabulary linh hoạt khi bạn cần tìm tất cả instance của các khái niệm được mô tả bằng văn bản hoặc ví dụ
    • Sử dụng YOLO26 cho các triển khai production tốc độ cao khi category đã được xác định trước
    • Sử dụng SAM 2 cho segmentation tương tác trên một object với các geometric prompt
  • SAM 3 được thiết kế cho các cụm danh từ đơn giản (ví dụ: "quả táo đỏ", "người đội mũ"). Với các truy vấn phức tạp cần suy luận, hãy kết hợp SAM 3 với một MLLM dưới dạng SAM 3 Agent:

    Truy vấn đơn giản (SAM 3 gốc):

    • "xe buýt trường học màu vàng"
    • "mèo có sọc"
    • "người đội mũ đỏ"

    Truy vấn phức tạp (SAM 3 Agent với MLLM):

    • "Những người đang ngồi nhưng không cầm hộp quà"
    • "Con chó gần camera nhất nhưng không đeo vòng cổ"
    • "Các vật thể màu đỏ lớn hơn bàn tay của người đó"

    SAM 3 Agent đạt 76.0 gIoU trên tập validation ReasonSeg (so với mức tốt nhất trước đây là 65.0, cải thiện +16.9%) bằng cách kết hợp segmentation của SAM 3 với capability suy luận của MLLM.

  • Trên benchmark SA-Co/Gold với chú thích ba lần do con người thực hiện:

    • Cận dưới của con người: 74.2 CGF1 (annotator bảo thủ nhất)
    • Hiệu năng của SAM 3: 65.0 CGF1
    • Mức đạt được: 88% cận dưới ước tính của con người
    • Cận trên của con người: 81.4 CGF1 (annotator cởi mở nhất)

    SAM 3 đạt hiệu năng mạnh, tiệm cận độ chính xác ở cấp độ con người trên task concept segmentation open-vocabulary, với khoảng cách chủ yếu nằm ở các khái niệm mơ hồ hoặc mang tính chủ quan (ví dụ: "cửa sổ nhỏ", "căn phòng ấm cúng").

Bình luận