Ultralytics YOLO27:
Get Started

SAM 3: Phân đoạn mọi thứ bằng khái niệm#

Tổng quan về phân đoạn khái niệm bằng prompt với SAM 3

SAM 3 (Mô hình phân đoạn mọi thứ 3) là model nền tảng do Meta phát hành cho Phân đoạn khái niệm bằng prompt (PCS). Được xây dựng dựa trên 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à theo dõi tất cả các thể hiện của một khái niệm thị giác được xác định bằng prompt văn bản, ảnh mẫu hoặc cả hai. Khác với các phiên bản SAM trước đây, vốn chỉ phân đoạn một đối tượng 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 khái niệm ở bất kỳ đâu trong ảnh hoặc video, phù hợp với mục tiêu từ vựng mở trong phân đoạn thể hiện hiện đại.



Xem: Cách sử dụng Meta Segment Anything 3 với Ultralytics | Phân đoạn ảnh và video bằng prompt văn bản

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

Tổng quan#

SAM 3 đạt mức tăng hiệu năng 2× so với các hệ thống hiện có trong tác vụ Phân đoạn khái niệm bằng prompt, đồng thời duy trì và cải thiện các khả năng phân đoạn thị giác tương tác của SAM 2 phân đoạn thị giác. Model vượt trội trong phân đoạn từ vựng mở, cho phép người dùng chỉ định khái niệm 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 ảnh mẫu của đối tượng mục tiêu. Các khả năng này bổ trợ cho những pipeline sẵn sàng đưa vào production, dựa trên quy trình dự đoán và theo dõi được tinh gọn.

Ví dụ phân đoạn bằng prompt văn bản với SAM 3

Phân đoạn khái niệm bằng prompt (PCS) là gì?#

Tác vụ PCS nhận prompt khái niệm làm đầu vào và trả về các mask phân đoạn có định danh riêng cho tất cả các thể hiện đối tượng phù hợp. Prompt khái niệm có thể là:

  • Văn bản: Các cụm danh từ đơn giản như "quả táo đỏ" hoặc "người đội mũ", tương tự như học zero-shot
  • Ảnh mẫu: Các bounding box bao quanh đối tượng mẫu (dương tính hoặc âm tính) để khái quát hóa nhanh
  • Kết hợp: Văn bản và ảnh mẫu cùng lúc để kiểm soát chính xác

Cách này khác với các prompt thị giác truyền thống (điểm, box, mask), vốn chỉ phân đoạn một thể hiện đối tượng cụ thể duy nhất, như được phổ biến bởi họ SAM gốc.

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 cao nhất trước đó 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 độ suy luận (GPU H200)30 ms cho mỗi ảnh với hơn 100 đối tượng được phát hiện
Hiệu năng videoGần thời gian thực với ~5 đối tượng đồng thời
Benchmark MOSEv2 VOS60.1 J&F (cao hơn SAM 2.1 25.5%, cao hơn SOTA trước đó 17%)
Tinh chỉnh tương tácCải thiện +18.6 CGF1 sau 3 prompt ảnh mẫu
Khoảng cách so với hiệu năng con ngườiĐạt 88% mức cận dưới ước tính trên SA-Co/Gold

Để hiểu thêm về các chỉ số và đánh đổi của model trong môi trường production, hãy xem phân tích đánh giá model và chỉ số hiệu năng YOLO.

SAM 3.1#

SAM 3.1, được Meta phát hành ngày 27 tháng 3 năm 2026, là checkpoint SAM 3 mới bổ sung Object Multiplex, một phương pháp dùng bộ nhớ chia sẻ để theo dõi nhiều đối tượng trong video. Thay vì xử lý riêng từng đối tượng được theo dõi, SAM 3.1 nhóm các đối tượng vào các bucket có dung lượng cố định và xử lý chúng cùng nhau; Meta cho biết cách này tăng tốc ~7× khi xử lý 128 đối tượng trên một GPU H100. Detector ảnh và head tương tác dùng prompt điểm vẫn giữ nguyên kiến trúc SAM 3.

BenchmarkChỉ sốSAM 3SAM 3.1
SA-Co/VEval SA-V (test)cgF130.330.5
SA-Co/VEval YT-Temporal-1B (test)cgF150.852.9
SA-Co/VEval SmartGlasses (test)cgF136.436.3
MOSEv1 (val)J&F78.479.6
DAVIS17 (val)J&F92.292.7
SA-V (test)J&F84.485.1
YTVOS19 (val)G89.789.3
MOSEv2 (val)J&Ḟ60.362.3

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

Kiến trúc#

SAM 3 gồm một detector và một tracker dùng chung backbone thị giác Perception Encoder (PE). Thiết kế tách rời này tránh xung đột giữa các tác vụ, đồng thời hỗ trợ cả phát hiện ở cấp ảnh và theo dõi ở cấp video, với giao diện tương thích với cách sử dụng Python và CLI của Ultralytics.

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

  • Detector: Kiến trúc dựa trên DETR để phát hiện khái niệm ở cấp ảnh

    • Text encoder cho prompt cụm danh từ
    • Exemplar encoder cho prompt dựa trên ảnh
    • Fusion encoder để điều kiện hóa đặc trưng ảnh theo prompt
    • Presence head mới giúp tách biệt nhận diện ("là gì") khỏi định vị ("ở đâu")
    • Mask head để tạo mask phân đoạn thể hiện
  • Tracker: Phân đoạn video dựa trên bộ nhớ, kế thừa từ SAM 2

    • Prompt encoder, mask decoder, memory encoder
    • Memory bank để lưu trữ diện mạo đối tượng qua các frame
    • Phân giải mơ hồ theo thời gian được hỗ trợ bởi các kỹ thuật như bộ lọc Kalman trong các tình huống có nhiều đối tượng
  • Presence Token: Một token toàn cục được học để dự đoán liệu khái niệm mục tiêu có xuất hiện trong ảnh/frame hay không, qua đó cải thiện khả năng phát hiện bằng cách tách biệt nhận diện khỏi định vị.

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

Đổi mới then chốt#

  1. Tách biệt nhận diện và định vị: Head dự đoán sự hiện diện của concept trên toàn cục, trong khi các truy vấn đề xuất chỉ tập trung vào định vị, tránh các mục tiêu xung đột.
  2. Thống nhất concept và prompt trực quan: Hỗ trợ cả PCS (prompt concept) và PVS (prompt trực quan như thao tác nhấp/khung của SAM 2) trong cùng một model.
  3. Tinh chỉnh exemplar tương tác: Người dùng có thể thêm exemplar ảnh dương tính hoặc âm tính để tinh chỉnh kết quả theo cách lặp lại; model khái quát hóa sang các đối tượng tương tự thay vì chỉ sửa từng instance riêng lẻ.
  4. Phân giải mơ hồ theo thời gian: Sử dụng điểm phát hiện masklet và việc đặt lại prompt định kỳ để xử lý hiện tượng che khuất, cảnh đông đúc và lỗi theo dõi trong video, phù hợp với các phương pháp thực hành tốt nhất về phân đoạn instance và theo dõi.

Dataset SA-Co#

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

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

Thành phần datasetMô tảQuy mô
SA-Co/HQDữ liệu ảnh chất lượng cao do con người gán nhãn từ data engine 4 giai đoạn5.2M ả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 bổ sung các hard negativeThay đổi tùy theo nguồn
SA-Co/VIDEOChú giải video có theo dõi theo thời gian52.5K video, 24.8K cụm danh từ duy nhất

Dữ liệu benchmark#

Benchmark đánh giá SA-Co bao gồm 214K cụm từ duy nhất trên 126K ả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 này bao gồm:

  • SA-Co/Gold: 7 lĩnh vực, được chú giải ba lần để đo lường giới hạn hiệu suất của con người
  • SA-Co/Silver: 10 lĩnh vực, được con người chú giải một lần
  • SA-Co/Bronze và SA-Co/Bio: 9 dataset hiện có được điều chỉnh cho phân đoạn concept
  • SA-Co/VEval: Benchmark video gồm 3 lĩnh vực (SA-V, YT-Temporal-1B, SmartGlasses)

Đổi mới trong data engine#

Data engine có khả năng mở rộng, kết hợp con người và model trong vòng lặp của SAM 3 đạt thông lượng chú giải cao gấp 2× thông qua:

  1. Bộ chú giải AI: 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. Bộ xác minh AI: LLM đa phương thức được fine-tune xác minh chất lượng mask và tính toàn diện ở mức hiệu suất gần bằng con người
  3. Khai thác chủ động: Tập trung nỗ lực của con người vào các trường hợp lỗi khó mà AI gặp khó khăn
  4. Dựa trên ontology: Khai thác ontology quy mô lớn, được xây dựng dựa trên Wikidata, để bao quát các concept

Cài đặt#

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

pip install -U ultralytics
Yêu cầu 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 đó tải sam3.pt từ trang này khi được phê duyệt. Đặt file sam3.pt đã tải xuống trong thư mục làm việc hoặc chỉ định đường dẫn đầy đủ khi tải model.

Trọng số SAM 3.1 (sam3.1_multiplex.pt) cũng bị giới hạn quyền truy cập theo cách tương tự trên trang model SAM 3.1. Truyền sam3.1_multiplex.pt ở mọi nơi mà 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 khi dự đoán, điều đó có nghĩa là bạn đã cài đặt sai package clip. Cài đặt package clip chính xác bằng cách chạy 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ả tác vụ phân đoạn concept có thể prompt (PCS) và phân đoạn trực quan có thể prompt (PVS) thông qua các interface predictor khác nhau:

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

Loại tác vụLoại promptĐầu ra
Phân đoạn concept (PCS)Văn bản (cụm danh từ), exemplar ảnhTất cả instance khớp với concept
Phân đoạn trực quan (PVS)Điểm, khung, maskMột instance đối tượng đơn lẻ (kiểu SAM 2)
Tinh chỉnh tương tácThêm/xóa exemplar hoặc thao tác nhấp theo cách lặp lạiPhân đoạn được tinh chỉnh với độ chính xác cao hơn

Ví dụ phân đoạn concept#

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

Phân đoạn concept dựa trên văn bản

Tìm và phân đoạn tất cả instance của một concept 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

# Khởi tạo predictor bằng cấu hình
overrides = {
    "conf": 0.25,
    "task": "segment",
    "mode": "predict",
    "model": "sam3.pt",
    "quantize": 16,  # Dùng FP16 để suy luận nhanh hơn
    "save": True,
}
predictor = SAM3SemanticPredictor(overrides=overrides)

# Thiết lập ảnh một lần cho nhiều truy vấn
predictor.set_image("path/to/image.jpg")

# Truy vấn bằng nhiều prompt văn bản
results = predictor(text=["person", "bus", "glasses"])

# Hoạt động với các cụm từ mô tả
results = predictor(text=["person with red cloth", "person with blue cloth"])

# Truy vấn bằng một concept
results = predictor(text=["a person"])

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

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

Dùng bounding box làm prompt trực quan để tìm tất cả instance tương tự. Cách này cũng yêu cầu SAM3SemanticPredictor để đối sánh dựa trên concept.

from ultralytics.models.sam import SAM3SemanticPredictor

# Khởi tạo predictor
overrides = {"conf": 0.25, "task": "segment", "mode": "predict", "model": "sam3.pt", "quantize": 16, "save": True}
predictor = SAM3SemanticPredictor(overrides=overrides)

# Thiết lập ảnh
predictor.set_image("path/to/image.jpg")

# Cung cấp các ví dụ bounding box để phân đoạn những đối tượng tương tự
results = predictor(bboxes=[[480.0, 290.0, 590.0, 650.0]])

# Nhiều bounding box làm exemplar cho cùng một concept trực quan
results = predictor(bboxes=[[539, 599, 589, 639], [343, 267, 499, 662]])

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

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

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

import cv2

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

# Khởi tạo các predictor
overrides = {"conf": 0.50, "task": "segment", "mode": "predict", "model": "sam3.pt", "verbose": False}
predictor = SAM3SemanticPredictor(overrides=overrides)
predictor2 = SAM3SemanticPredictor(overrides=overrides)

# Trích xuất feature từ predictor thứ nhất
source = "path/to/image.jpg"
predictor.set_image(source)
src_shape = cv2.imread(source).shape[:2]

# Thiết lập predictor thứ hai và tái sử dụng feature
predictor2.setup_model()

# Thực hiện suy luận bằng feature dùng chung với prompt văn bản
masks, boxes = predictor2.inference_features(predictor.features, src_shape=src_shape, text=["person"])

# Thực hiện suy luận bằng feature dùng chung với prompt bounding box
masks, boxes = predictor2.inference_features(predictor.features, src_shape=src_shape, bboxes=[[439, 437, 524, 709]])

# Trực quan hóa kết quả
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 concept trong video#

Theo dõi concept xuyên suốt 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 đối tượng qua các frame video bằng prompt bounding box.

from ultralytics.models.sam import SAM3VideoPredictor

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

# Theo dõi đối tượng bằng prompt bounding box
results = predictor(source="path/to/video.mp4", bboxes=[[706.5, 442.5, 905.25, 555], [598, 635, 725, 750]], stream=True)

# Xử lý và hiển thị kết quả
for r in results:
    r.show()  # Hiển thị frame với các mask phân đoạn

Theo dõi concept 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ả instance của các concept được chỉ định bằng văn bản qua các frame video.

from ultralytics.models.sam import SAM3VideoSemanticPredictor

# Khởi tạo predictor video ngữ nghĩa
overrides = {
    "conf": 0.25,
    "task": "segment",
    "mode": "predict",
    "imgsz": 640,
    "model": "sam3.pt",
    "quantize": 16,
    "save": True,
}
predictor = SAM3VideoSemanticPredictor(overrides=overrides)

# Theo dõi concept bằng prompt văn bản
results = predictor(source="path/to/video.mp4", text=["person", "bicycle"], stream=True)

# # Xử lý kết quả
for r in results:
    r.show()  # Hiển thị frame với các đối tượng được theo dõi

# Cách khác: Theo dõi bằng prompt bounding box
results = predictor(
    source="path/to/video.mp4",
    bboxes=[[864, 383, 975, 620], [705, 229, 782, 402]],
    labels=[1, 1],  # Nhãn dương tính
    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 hoàn toàn với tính năng prompt trực quan của SAM 2 để phân đoạn một đối tượng đơn lẻ:

Prompt trực quan kiểu SAM 2

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

from ultralytics import SAM

model = SAM("sam3.pt")

# Prompt một điểm - phân đoạn đối tượng tại vị trí cụ thể
results = model.predict(source="path/to/image.jpg", points=[900, 370], labels=[1])
results[0].show()

# Nhiều điểm - phân đoạn một đối tượng bằng nhiều gợi ý điểm
results = model.predict(source="path/to/image.jpg", points=[[400, 370], [900, 370]], labels=[1, 1])

# Prompt hộp - phân đoạn đối tượng bên trong hộp giới hạn
results = model.predict(source="path/to/image.jpg", bboxes=[100, 150, 300, 400])
results[0].show()
Prompt trực quan và phân đoạn theo khái niệm

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

Đánh giá hiệu năng#

Phân đoạn ả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ư LVIS và COCO 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 để thử nghiệm nhanh trong 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 phương pháp tiên tiến nhất trước đây trên những benchmark video như DAVIS 2017 và YouTube-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 thích ứng hiệu quả với các domain mới chỉ bằng một vài ví dụ, hữu ích cho quy trình AI tập trung vào dữ liệu:

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 với các ví dụ mẫu của SAM 3 hội tụ nhanh hơn nhiều so với prompt trực quan:

Số prompt được thêmĐiểm CGF1Mức tăng so với chỉ dùng văn bảnMức tăng so với baseline PVS
Chỉ văn bản46.4baselinebaseline
+1 ví dụ mẫu57.6+11.2+6.7
+2 ví dụ mẫu62.2+15.8+9.7
+3 ví dụ mẫu65.0+18.6+11.2
+4 ví dụ mẫu65.7+19.3+11.5 (chững lại)

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

SAM 3 đế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, SAM 2 và YOLO#

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

Khả năngSAM 3SAM 2YOLO26n-seg
Phân đoạn theo khái niệm✅ Tất cả instance từ văn bản/ví dụ mẫu❌ Không hỗ trợ❌ Không 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 nhãn đóng
Tinh chỉnh tương tác✅ Ví dụ mẫu + click✅ Chỉ click❌ Không hỗ trợ
Theo dõi video✅ Nhiều đối tượng, có định danh✅ Nhiều đối tượng✅ Nhiều đối tượng
LVIS Mask AP (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/ảnh)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.1 và ultralytics==8.4.19.

Điểm chính:

  • SAM 3: Phù hợp nhất cho phân đoạn khái niệm với từ vựng mở, tìm tất cả instance của một khái niệm bằng prompt văn bản hoặc ví dụ mẫu
  • 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: Phù hợp nhất cho phân đoạn tốc độ cao theo thời gian thực, có tùy chọn suy luận end-to-end không cần NMS, có thể export 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 độ suy luận trên GPU:

ModelKích thước
(MB)
Tham số
(M)
Tốc độ (GPU)
(ms/ảnh)
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 độ giữa các biến thể SAM và model phân đoạn YOLO. SAM có khả năng phân đoạn tự động độc đáo, nhưng 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 hơn đáng kể.

Các bài kiểm thử được chạy trên NVIDIA RTX PRO 6000 với 96GB VRAM, sử dụng torch==2.9.1 và ultralytics==8.4.19. Để tái tạo bài kiểm thử này:

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

# Lập hồ sơ 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)

# Lập hồ sơ FastSAM-s
model = FastSAM("FastSAM-s.pt")
model.info()
model(ASSETS)

# Lập hồ sơ các model YOLO
for file_name in ["yolov8n-seg.pt", "yolo11n-seg.pt", "yolo26n-seg.pt"]:
    model = YOLO(file_name)
    model.info()
    model(ASSETS, nms=False)  # Đầu NMS-free của YOLO26; không có tác dụng với YOLOv8/YOLO11

Các chỉ số đánh giá#

SAM 3 giới thiệu các chỉ số mới dành cho tác vụ PCS, bổ sung cho những thước đo quen thuộc như điểm F1, độ chính xác và độ bao phủ.

F1 có xét đến phân loại (CGF1)#

Chỉ số chính kết hợp khả năng định vị và phân loại:

CGF1 = 100 × pmF1 × IL_MCC

Trong đó:

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

Vì sao dùng các chỉ số này?#

Các chỉ số AP truyền thống không tính đến hiệu chuẩn, khiến model khó sử dụng trong thực tế. Bằng cách chỉ đánh giá các dự đoán có độ tin cậy trên 0.5, các chỉ số của SAM 3 thúc đẩy hiệu chuẩn tốt và mô phỏng cách sử dụng trong thực tế ở các vòng lặp dự đoán và theo dõi tương tác.

Các thí nghiệm loại bỏ thành phần và thông tin chuyên sâu chính#

Tác động của nhánh nhận diện sự hiện diện#

Nhánh nhận diện sự hiện diện tách biệt khả năng nhận dạng khỏi định vị, mang lại cải thiện đáng kể:

Cấu hìnhCGF1IL_MCCpmF1
Không có nhánh nhận diện sự hiện diện57.60.7774.7
Có nhánh nhận diện sự hiện diện63.30.8277.1

Nhánh nhận diện sự hiện diện giúp CGF1 tăng 5.7 điểm (+9.9%), chủ yếu nhờ cải thiện khả năng nhận dạng (IL_MCC tăng 6.5%).

Tác động của mẫu âm khó#

Mẫu âm khó/ẢnhCGF1IL_MCCpmF1
031.80.4470.2
544.80.6271.9
3049.20.6872.3

Mẫu âm khó đóng vai trò thiết yếu trong nhận dạng từ vựng mở, giúp IL_MCC tăng 54.5% (0.44 → 0.68).

Mở rộng quy mô dữ liệu huấn luyện#

Nguồn dữ liệuCGF1IL_MCCpmF1
Chỉ dữ liệu bên ngoài30.90.4666.3
Dữ liệu bên ngoài + dữ liệu tổng hợp39.70.5770.6
Dữ liệu bên ngoài + dữ liệu chất lượng cao51.80.7173.2
Cả ba54.30.7473.5

Chú thích do con người tạo có chất lượng cao mang lại mức cải thiện lớn so với chỉ sử dụng dữ liệu tổng hợp hoặc dữ liệu bên ngoài. Để tìm hiểu về các phương pháp đảm bảo chất lượng dữ liệu, xem thu thập và chú thích dữ liệu.

Ứng dụng#

Khả năng phân đoạn khái niệm của SAM 3 mở ra các trường hợp sử dụng mới:

  • Kiểm duyệt nội dung: Tìm tất cả các trường hợp thuộc loại nội dung cụ thể trong thư viện media
  • Thương mại điện tử: Phân đoạn tất cả sản phẩm thuộc một loại nhất định trong ảnh danh mục, hỗ trợ tự động chú thích
  • Chẩn đoán hình ảnh y khoa: Xác định mọi trường hợp xuất hiện của loại mô hoặc bất thường cụ thể
  • Hệ thống tự hành: Theo dõi mọi biển báo giao thông, người đi bộ hoặc phương tiện theo danh mục
  • Phân tích video: Đếm và theo dõi tất cả người mặc trang phục cụ thể hoặc thực hiện hành động nhất định
  • Chú thích bộ dữ liệu: Nhanh chóng chú thích mọi trường hợp thuộc các danh mục đố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 đáp ứng các tiêu chí cụ thể

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

Có thể kết hợp SAM 3 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 đòi hỏi suy luận, tương tự như các hệ thống từ vựng mở như OWLv2 và T-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 (tập validation)gIoU76.065.0 (SoTA)
ReasonSeg (tập test)gIoU73.861.3 (SoTA)
OmniLabel (tập validation)AP46.736.5 (REAL)
RefCOCO+Acc91.289.3 (LISA)

Ví dụ về truy vấn phức tạp#

SAM 3 Agent có thể xử lý các truy vấn đòi hỏi 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 máy ảnh nhất và 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ế#

Dù là một bước tiến lớn, SAM 3 vẫn có một số hạn chế:

  • Độ 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; biểu thức quy chiếu dài hoặc suy luận phức tạp có thể cần tích hợp MLLM
  • Xử lý sự 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 phát hiện chuyên biệt như YOLO
  • Phạm vi từ vựng: Tập trung vào các khái niệm thị giác đơn lẻ; khả năng suy luận tổ hợp bị hạn chế nếu không có MLLM hỗ trợ
  • Khái niệm hiếm: Hiệu năng có thể suy giảm với các khái niệm cực hiếm hoặc chi tiết mà dữ liệu huấn luyện không đại diện đầy đủ

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}
}

Câu hỏi thường gặp#

  • SAM 3 được Meta phát hành vào ngày 19 tháng 11 năm 2025 và được tích hợp đầy đủ vào package ultralytics, hỗ trợ chế độ predict và chế độ track.

  • Có! SAM 3 được tích hợp đầy đủ vào package Python của Ultralytics, bao gồm phân đoạn khái niệm, prompt thị giác kiểu SAM 2 và theo dõi nhiều đối tượng trong video. SAM 3 và SAM 3.1 cũng hỗ trợ tính năng chú thích thông minh trên Ultralytics Platform, trong đó SAM 3.1 là model mặc định và bạn có thể chú thích ảnh chỉ với vài thao tác nhấp.

  • Có, dùng để dự đoán trên ảnh. Tải sam3.1_multiplex.pt ở mọi nơi mà các ví dụ ảnh trên trang này dùng sam3.pt: SAM("sam3.1_multiplex.pt") cho prompt điểm và hộp, còn SAM3SemanticPredictor cho prompt văn bản và exemplar. Tính năng theo dõi video Object Multiplex hiện chưa được hỗ trợ, vì vậy hãy tiếp tục dùng sam3.pt với các predictor video. Xem SAM 3.1 để biết benchmark của Meta.

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

    • Prompt văn bản: "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
    • Ảnh mẫu: Khoanh vùng một con chó → phân đoạn tất cả chó trong ảnh
    • Kết hợp: "mèo vằn" + hộp ảnh mẫu → phân đoạn tất cả mèo vằn khớp với ví dụ

    Xem thêm thông tin nền liên quan về phát hiện đối tượng và phân đoạn thực thể.

  • Tính năngSAM 2SAM 3
    Tác vụMột đối tượng cho mỗi promptTất cả thực thể của một khái niệm
    Loại promptĐiểm, khung, mask+ Cụm từ văn bản, ảnh mẫu
    Khả năng phát hiệnCần detector bên ngoàiDetector open-vocabulary tích hợp sẵn
    Nhận dạngChỉ dựa trên hình họcNhận dạng văn bản và hình ảnh
    Kiến trúcChỉ trackerDetector + tracker cùng head xác định sự hiện diện
    Hiệu suất zero-shotN/A (cần prompt hình ảnh)47.0 AP trên LVIS, tốt hơn 2× trên SA-Co
    Tinh chỉnh tương tácChỉ thao tác nhấpThao tác nhấp + khả năng khái quát hóa từ ảnh mẫu

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

  • SAM 3 được huấn luyện trên bộ dữ liệu Segment Anything with Concepts (SA-Co):

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

    • 5.2M ảnh với 4M cụm danh từ duy nhất (SA-Co/HQ) - chú giải 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 bộ dữ liệu bên ngoài được bổ sung các mẫu âm khó (SA-Co/EXT)

    Dữ liệu benchmark:

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

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

  • SAM 3 và YOLO26 phục vụ các trường hợp sử dụng khác nhau:

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

    • Open-vocabulary: Phân đoạn mọi khái niệm thông qua prompt văn bản mà không cần huấn luyện
    • Zero-shot: Có thể xử lý ngay các danh mục mới
    • Tương tác: Tinh chỉnh dựa trên ảnh mẫu sẽ khái quát hóa cho các đối tượng tương tự
    • Dựa trên khái niệm: Tự động tìm tất cả thực thể thuộc một danh mục
    • Độ chính xác: 47.0 AP cho phân đoạn thực thể zero-shot trên LVIS

    Ưu điểm của YOLO26:

    • Tốc độ: Tốc độ suy luận nhanh hơn nhiều bậc độ lớn, với head end-to-end 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 được trên thiết bị edge và thiết bị di động
    • Thời gian thực: Được tối ưu hóa cho triển khai trong môi trường production

    Khuyến nghị:

    • Dùng SAM 3 để phân đoạn linh hoạt theo open-vocabulary khi cần tìm tất cả thực thể thuộc các khái niệm được mô tả bằng văn bản hoặc ví dụ
    • Dùng YOLO26 để triển khai tốc độ cao trong môi trường production khi các danh mục đã được xác định trước
    • Dùng SAM 2 để phân đoạn tương tác một đối tượng với prompt hình học
  • SAM 3 được thiết kế cho các cụm danh từ đơn giản (ví dụ: "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 MLLM thành SAM 3 Agent:

    Truy vấn đơn giản (SAM 3 nguyên bản):

    • "xe buýt trường học màu vàng"
    • "mèo vằn"
    • "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 máy ảnh 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 của ReasonSeg (so với mức tốt nhất trước đó là 65.0, cải thiện +16.9%) nhờ kết hợp khả năng phân đoạn của SAM 3 với năng lực suy luận của MLLM.

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

    • Cận dưới của con người: 74.2 CGF1 (người chú giải thận trọng nhất)
    • Hiệu suất của SAM 3: 65.0 CGF1
    • Kết quả đạ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 (người chú giải rộng lượng nhất)

    SAM 3 đạt hiệu suất cao, tiệm cận độ chính xác cấp độ con người trong phân đoạn khái niệm open-vocabulary; 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