YOLO Vision 2026:

SAM 2: Segment Anything Model 2#

Sự phát triển của SAM

SAM 2 phát triển dựa trên SAM gốc với khả năng phân đoạn video. Đối với Promptable Concept Segmentation bằng văn bản và câu lệnh mẫu dạng hình ảnh, hãy xem SAM 3.

Inference with Segment Anything 2 In Colab

SAM 2, thế hệ kế nhiệm của Segment Anything Model (SAM) từ Meta, là một công cụ tiên tiến được thiết kế để phân đoạn đối tượng toàn diện trong cả hình ảnh và video. Công cụ này xuất sắc trong việc xử lý dữ liệu trực quan phức tạp thông qua kiến trúc model đồng nhất, có thể điều khiển bằng câu lệnh, hỗ trợ xử lý thời gian thực và khả năng tổng quát hóa zero-shot.

SAM 2 trên Ultralytics Platform

Các model SAM 2.1 cung cấp năng lượng cho tính năng chú thích thông minh trên Ultralytics Platform, cho phép phân đoạn dựa trên cú nhấp chuột để gắn nhãn tập dữ liệu nhanh chóng. Xem hướng dẫn chú thích để biết chi tiết.

SAM 2 Example Results

Tính năng chính#



Watch: How to Run Inference with Meta's SAM2 using Ultralytics | Step-by-Step Guide 🎉

Kiến trúc Model Đồng nhất#

SAM 2 kết hợp các khả năng phân đoạn hình ảnh và video trong một model duy nhất. Sự đồng nhất này đơn giản hóa quá trình triển khai và cho phép hiệu suất nhất quán trên các loại phương tiện khác nhau. Model tận dụng giao diện dựa trên câu lệnh linh hoạt, cho phép người dùng chỉ định các đối tượng quan tâm thông qua nhiều loại câu lệnh khác nhau, chẳng hạn như điểm, hộp giới hạn hoặc mặt nạ.

Hiệu suất Thời gian thực#

Model đạt tốc độ suy luận thời gian thực, xử lý khoảng 44 khung hình mỗi giây. Điều này làm cho SAM 2 phù hợp với các ứng dụng yêu cầu phản hồi tức thì, chẳng hạn như chỉnh sửa video và thực tế tăng cường.

Tổng quát hóa Zero-Shot#

SAM 2 có thể phân đoạn các đối tượng mà nó chưa từng gặp trước đây, thể hiện khả năng tổng quát hóa zero-shot mạnh mẽ. Điều này đặc biệt hữu ích trong các miền trực quan đa dạng hoặc đang phát triển, nơi các danh mục được xác định trước có thể không bao gồm tất cả các đối tượng có thể có.

Tinh chỉnh Tương tác#

Người dùng có thể lặp lại việc tinh chỉnh kết quả phân đoạn bằng cách cung cấp các câu lệnh bổ sung, cho phép kiểm soát chính xác đầu ra. Tính năng tương tác này rất cần thiết để tinh chỉnh kết quả trong các ứng dụng như chú thích video hoặc hình ảnh y tế.

Xử lý Nâng cao các Thử thách Trực quan#

SAM 2 bao gồm các cơ chế để quản lý các thách thức phân đoạn video phổ biến, chẳng hạn như sự che khuất và sự xuất hiện lại của đối tượng. Nó sử dụng cơ chế bộ nhớ tinhsoph để theo dõi các đối tượng qua các khung hình, đảm bảo tính liên tục ngay cả khi các đối tượng tạm thời bị che khuất hoặc đi ra và quay lại cảnh.

Để hiểu sâu hơn về kiến trúc và khả năng của SAM 2, hãy khám phá bài nghiên cứu SAM 2.

Hiệu suất và Chi tiết Kỹ thuật#

SAM 2 thiết lập một chuẩn mực mới trong lĩnh vực này, vượt trội hơn các model trước đó trên nhiều số liệu khác nhau:

Chỉ sốSAM 2SOTA trước đó
Phân đoạn Video Tương tácTốt nhất-
Tương tác của Con người Yêu cầuÍt hơn 3 lầnBaseline
Độ chính xác Phân đoạn Hình ảnhCải thiệnSAM
Tốc độ Suy luậnNhanh hơn 6 lầnSAM

Kiến trúc mô hình#

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

  • Bộ mã hóa Hình ảnh và Video: Sử dụng kiến trúc dựa trên transformer để trích xuất các đặc trưng cấp cao từ cả hình ảnh và khung hình video. Thành phần này chịu trách nhiệm hiểu nội dung trực quan tại mỗi bước thời gian.
  • Bộ mã hóa Câu lệnh: Xử lý các câu lệnh do người dùng cung cấp (điểm, hộp, mặt nạ) để hướng dẫn tác vụ phân đoạn. Điều này cho phép SAM 2 thích ứng với đầu vào của người dùng và nhắm mục tiêu các đối tượng cụ thể trong một cảnh.
  • Cơ chế Bộ nhớ: Bao gồm bộ mã hóa bộ nhớ, ngân hàng bộ nhớ và mô-đun chú ý bộ nhớ. Các thành phần này cùng nhau lưu trữ và sử dụng thông tin từ các khung hình trước đó, cho phép model duy trì theo dõi đối tượng nhất quán theo thời gian.
  • Bộ giải mã Mặt nạ: Tạo các mặt nạ phân đoạn cuối cùng dựa trên các đặc trưng hình ảnh được mã hóa và các câu lệnh. Trong video, nó cũng sử dụng ngữ cảnh bộ nhớ để đảm bảo theo dõi chính xác qua các khung hình.

SAM 2 Architecture Diagram

Cơ chế Bộ nhớ và Xử lý Che khuất#

Cơ chế bộ nhớ cho phép SAM 2 xử lý các phụ thuộc theo thời gian và sự che khuất trong dữ liệu video. Khi các đối tượng di chuyển và tương tác, SAM 2 ghi lại các đặc trưng của chúng vào một ngân hàng bộ nhớ. Khi một đối tượng bị che khuất, model có thể dựa vào bộ nhớ này để dự đoán vị trí và diện mạo của nó khi nó xuất hiện trở lại. Đầu che khuất xử lý cụ thể các kịch bản trong đó các đối tượng không hiển thị, dự đoán khả năng một đối tượng bị che khuất.

Giải quyết Sự mơ hồ Đa mặt nạ#

Trong các tình huống có sự mơ hồ (ví dụ: các đối tượng chồng chéo), SAM 2 có thể tạo ra nhiều dự đoán mặt nạ. Tính năng này rất quan trọng để thể hiện chính xác các cảnh phức tạp nơi một mặt nạ duy nhất có thể không mô tả đầy đủ các sắc thái của cảnh.

Tập dữ liệu SA-V#

Tập dữ liệu SA-V, được phát triển để huấn luyện SAM 2, là một trong những tập dữ liệu phân đoạn video lớn nhất và đa dạng nhất hiện có. Nó bao gồm:

  • 51.000+ Video: Được quay trên 47 quốc gia, cung cấp nhiều kịch bản thế giới thực phong phú.
  • 600.000+ Chú thích Mặt nạ: Các chú thích mặt nạ không gian-thời gian chi tiết, được gọi là "masklets", bao gồm toàn bộ đối tượng và các bộ phận.
  • Quy mô Tập dữ liệu: Nó có nhiều video hơn 4,5 lần và nhiều chú thích hơn 53 lần so với các tập dữ liệu lớn nhất trước đây, mang lại tính đa dạng và độ phức tạp chưa từng có.

Điểm chuẩn (Benchmarks)#

Phân đoạn Đối tượng Video#

SAM 2 đã chứng minh hiệu suất vượt trội trên các điểm chuẩn phân đoạn video chính:

Tập dữ liệu (Dataset)J&FJF
DAVIS 201782.579.885.2
YouTube-VOS81.278.983.5

Phân đoạn Tương tác#

Trong các tác vụ phân đoạn tương tác, SAM 2 cho thấy hiệu quả và độ chính xác đáng kể:

Tập dữ liệu (Dataset)NoC@90AUC
DAVIS Interactive1.540.872

Cài đặt#

Để cài đặt SAM 2, hãy sử dụng lệnh sau. Tất cả các model SAM 2 sẽ tự động tải xuống trong lần sử dụng đầu tiên.

pip install ultralytics

Cách Sử dụng SAM 2: Tính linh hoạt trong Phân đoạn Hình ảnh và Video#

Bảng sau đây trình bày chi tiết các model SAM 2 có sẵn, trọng số đã được huấn luyện trước, các tác vụ được hỗ trợ và tính tương thích với các chế độ hoạt động khác nhau như Inference, Validation, Training, và Export.

Loại modelTrọng số PretrainedCác tác vụ được hỗ trợHuấn luyệnValidationSuy luậnXuất (Export)
SAM 2 tinysam2_t.ptPhân đoạn Instance
SAM 2 smallsam2_s.ptPhân đoạn Instance
SAM 2 basesam2_b.ptPhân đoạn Instance
SAM 2 largesam2_l.ptPhân đoạn Instance
SAM 2.1 tinysam2.1_t.ptPhân đoạn Instance
SAM 2.1 smallsam2.1_s.ptPhân đoạn Instance
SAM 2.1 basesam2.1_b.ptPhân đoạn Instance
SAM 2.1 largesam2.1_l.ptPhân đoạn Instance

Ví dụ Dự đoán SAM 2#

SAM 2 có thể được sử dụng trên một phổ rộng các tác vụ, bao gồm chỉnh sửa video thời gian thực, hình ảnh y tế và các hệ thống tự động. Khả năng phân đoạn cả dữ liệu trực quan tĩnh và động làm cho nó trở thành một công cụ linh hoạt cho các nhà nghiên cứu và nhà phát triển.

Phân đoạn với Câu lệnh#

Phân đoạn với Câu lệnh

Sử dụng các câu lệnh để phân đoạn các đối tượng cụ thể trong hình ảnh hoặc video.

from ultralytics import SAM

# Load a model
model = SAM("sam2.1_b.pt")

# Display model information (optional)
model.info()

# Run inference with bboxes prompt
results = model("path/to/image.jpg", bboxes=[100, 100, 200, 200])

# Run inference with single point
results = model(points=[900, 370], labels=[1])

# Run inference with multiple points
results = model(points=[[400, 370], [900, 370]], labels=[1, 1])

# Run inference with multiple points prompt per object
results = model(points=[[[400, 370], [900, 370]]], labels=[[1, 1]])

# Run inference with negative points prompt
results = model(points=[[[400, 370], [900, 370]]], labels=[[1, 0]])

Phân đoạn Mọi thứ#

Phân đoạn Mọi thứ

Phân đoạn toàn bộ nội dung hình ảnh hoặc video mà không cần câu lệnh cụ thể.

from ultralytics import SAM

# Load a model
model = SAM("sam2.1_b.pt")

# Display model information (optional)
model.info()

# Run inference
model("path/to/video.mp4")

Phân đoạn Video và Theo dõi đối tượng#

Phân đoạn Video

Phân đoạn toàn bộ nội dung video với các câu lệnh cụ thể và theo dõi đối tượng.

from ultralytics.models.sam import SAM2VideoPredictor

# Create SAM2VideoPredictor
overrides = {"conf": 0.25, "task": "segment", "mode": "predict", "imgsz": 1024, "model": "sam2_b.pt"}
predictor = SAM2VideoPredictor(overrides=overrides)

# Run inference with single point
results = predictor(source="test.mp4", points=[920, 470], labels=[1])

# Run inference with multiple points
results = predictor(source="test.mp4", points=[[920, 470], [909, 138]], labels=[1, 1])

# Run inference with multiple points prompt per object
results = predictor(source="test.mp4", points=[[[920, 470], [909, 138]]], labels=[[1, 1]])

# Run inference with negative points prompt
results = predictor(source="test.mp4", points=[[[920, 470], [909, 138]]], labels=[[1, 0]])
  • Ví dụ này minh họa cách SAM 2 có thể được sử dụng để phân đoạn toàn bộ nội dung của hình ảnh hoặc video nếu không có câu lệnh nào (bbox/điểm/mặt nạ) được cung cấp.

Phân đoạn và Theo dõi Tương tác Động#

SAM2DynamicInteractivePredictor là một tiện ích mở rộng nâng cao không cần huấn luyện của SAM2, cho phép tương tác động với nhiều khung hình và khả năng học tập liên tục. Trình dự đoán này hỗ trợ cập nhật câu lệnh thời gian thực và quản lý bộ nhớ để cải thiện hiệu suất theo dõi qua một chuỗi hình ảnh. So với SAM2 ban đầu, SAM2DynamicInteractivePredictor xây dựng lại luồng suy luận để tận dụng tối đa các model SAM2 đã được huấn luyện trước mà không cần thêm dữ liệu huấn luyện.

SAM 2 Example Results

Tính năng chính#

Nó cung cấp ba cải tiến đáng kể:

  1. Tương tác Động: Thêm các câu lệnh mới để hợp nhất/chưa theo dõi các thực thể mới trong các khung hình tiếp theo bất cứ lúc nào trong quá trình xử lý video
  2. Học tập Liên tục: Thêm các câu lệnh mới cho các thực thể hiện có để cải thiện hiệu suất model theo thời gian
  3. Hỗ trợ Đa hình ảnh Độc lập: Xử lý nhiều hình ảnh độc lập (không nhất thiết từ một chuỗi video) với việc chia sẻ bộ nhớ và theo dõi đối tượng qua nhiều hình ảnh

Khả năng Cốt lõi#

  • Tính linh hoạt của Câu lệnh: Chấp nhận hộp giới hạn, điểm và mặt nạ làm câu lệnh
  • Quản lý Ngân hàng Bộ nhớ: Duy trì một ngân hàng bộ nhớ động để lưu trữ trạng thái đối tượng qua các khung hình
  • Theo dõi Đa đối tượng: Hỗ trợ theo dõi nhiều đối tượng đồng thời với ID đối tượng riêng lẻ
  • Cập nhật thời gian thực: Cho phép thêm các prompt mới trong quá trình suy luận mà không cần xử lý lại các khung hình trước đó
  • Xử lý ảnh độc lập: Xử lý các ảnh đơn lẻ với ngữ cảnh bộ nhớ chia sẻ để đảm bảo tính nhất quán của đối tượng qua nhiều ảnh
Thêm đối tượng động
from ultralytics.models.sam import SAM2DynamicInteractivePredictor

# Create SAM2DynamicInteractivePredictor
overrides = {"conf": 0.01, "task": "segment", "mode": "predict", "imgsz": 1024, "model": "sam2_t.pt", "save": False}
predictor = SAM2DynamicInteractivePredictor(overrides=overrides, max_obj_num=10)

# Define a category by box prompt
predictor(source="image1.jpg", bboxes=[[100, 100, 200, 200]], obj_ids=[0], update_memory=True)

# Detect this particular object in a new image
results = predictor(source="image2.jpg")

# Add new category with a new object ID
results = predictor(
    source="image4.jpg",
    bboxes=[[300, 300, 400, 400]],  # New object
    obj_ids=[1],  # New object ID
    update_memory=True,  # Add to memory
)
# Perform inference
results = predictor(source="image5.jpg")

# Add refinement prompts to the same category to boost performance
# This helps when object appearance changes significantly
results = predictor(
    source="image6.jpg",
    points=[[150, 150]],  # Refinement point
    labels=[1],  # Positive point
    obj_ids=[1],  # Same object ID
    update_memory=True,  # Update memory with new information
)
# Perform inference on new image
results = predictor(source="image7.jpg")
Lưu ý

SAM2DynamicInteractivePredictor được thiết kế để hoạt động với các model SAM2 và hỗ trợ thêm/cải thiện các danh mục thông qua tất cả các prompt hộp/điểm/mặt nạ mà SAM2 hỗ trợ một cách nguyên bản. Nó đặc biệt hữu ích cho các kịch bản nơi đối tượng xuất hiện hoặc thay đổi theo thời gian, chẳng hạn như trong các tác vụ chú thích video hoặc chỉnh sửa tương tác.

Tham số#

TênGiá trị mặc địnhKiểu dữ liệuMô tả
max_obj_num3intSố lượng danh mục tối đa được thiết lập trước
update_memoryFalseboolCó cập nhật bộ nhớ bằng các prompt mới hay không
obj_idsNoneList[int]Danh sách các ID đối tượng tương ứng với các prompt

Các trường hợp sử dụng#

SAM2DynamicInteractivePredictor rất lý tưởng cho:

  • Quy trình chú thích video nơi các đối tượng mới xuất hiện trong suốt chuỗi
  • Chỉnh sửa video tương tác yêu cầu thêm và cải thiện đối tượng theo thời gian thực
  • Các ứng dụng giám sát với nhu cầu theo dõi đối tượng động
  • Hình ảnh y tế để theo dõi các cấu trúc giải phẫu qua chuỗi thời gian
  • Hệ thống tự động yêu cầu phát hiện và theo dõi đối tượng thích ứng
  • Bộ dữ liệu đa hình ảnh để phân đoạn đối tượng nhất quán trên các ảnh độc lập
  • Phân tích bộ sưu tập hình ảnh nơi các đối tượng cần được theo dõi qua các cảnh khác nhau
  • Phân đoạn đa miền tận dụng bộ nhớ từ các ngữ cảnh hình ảnh đa dạng
  • Chú thích bán tự động để tạo bộ dữ liệu hiệu quả với sự can thiệp thủ công tối thiểu

So sánh SAM với YOLO#

Tại đây chúng tôi so sánh các mô hình SAM 2 của Meta, bao gồm biến thể SAM2-t nhỏ nhất, với các mô hình phân đoạn của Ultralytics bao gồm YOLO26n-seg:

Mô hìnhKích thước
(MB)
Tham số
(M)
Tốc độ (CPU)
(ms/im)
Meta SAM-b37593.741703
Meta SAM2-b16280.828867
Meta SAM2-t78.138.923430
MobileSAM40.710.123802
FastSAM-s với YOLOv8 backbone23.911.858.0
Ultralytics YOLOv8n-seg7.1 (nhỏ hơn 11.0x)3.4 (ít hơn 11.4x)24.8 (nhanh hơn 945x)
Ultralytics YOLO11n-seg6.2 (nhỏ hơn 12.6x)2.9 (ít hơn 13.4x)24.3 (nhanh hơn 964x)
Ultralytics YOLO26n-seg6.7 (nhỏ hơn 11.7x)2.7 (ít hơn 14.4x)25.2 (nhanh hơn 930x)

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. Trong khi SAM cung cấp các 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 hơn đáng kể.

Tốc độ SAM được đo bằng PyTorch, tốc độ YOLO được đo bằng ONNX Runtime. Các thử nghiệm chạy trên Apple M4 Air 2025 với 16GB RAM sử dụng torch==2.10.0, ultralytics==8.4.31onnxruntime==1.24.4. Để tái tạo thử nghiệm này:

Ví dụ
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 YOLO models (ONNX)
for file_name in ["yolov8n-seg.pt", "yolo11n-seg.pt", "yolo26n-seg.pt"]:
    model = YOLO(file_name)
    model.info()
    onnx_path = model.export(format="onnx", dynamic=True)
    model = YOLO(onnx_path)
    model(ASSETS)

Tự động chú thích: Tạo bộ dữ liệu hiệu quả#

Tự động chú thích là một tính năng mạnh mẽ của SAM 2, cho phép người dùng tạo các bộ dữ liệu phân đoạn nhanh chóng và chính xác bằng cách tận dụng các model đã được huấn luyện trước. Khả năng này đặc biệt hữu ích để tạo các bộ dữ liệu lớn, chất lượng cao mà không tốn nhiều công sức thủ công.

Cách tự động chú thích với SAM 2#



Watch: Auto Annotation with Meta's Segment Anything 2 Model using Ultralytics | Data Labeling

Để tự động chú thích bộ dữ liệu của bạn bằng SAM 2, hãy làm theo ví dụ sau:

Ví dụ về tự động chú thích
from ultralytics.data.annotator import auto_annotate

auto_annotate(data="path/to/images", det_model="yolo26x.pt", sam_model="sam2_b.pt")
Đối sốLoạiMặc địnhMô tả
datastrbắt buộcĐường dẫn đến thư mục chứa các hình ảnh mục tiêu để chú thích hoặc phân đoạn.
det_modelstr'yolo26x.pt'Đường dẫn model phát hiện YOLO cho phát hiện đối tượng ban đầu.
sam_modelstr'sam_b.pt'Đường dẫn model SAM cho phân đoạn (hỗ trợ trọng số SAM, SAM 2, MobileSAM và SAM 3).
devicestr''Thiết bị tính toán (ví dụ: 'cuda:0', 'cpu', hoặc '' để tự động phát hiện thiết bị).
conffloat0.25Ngưỡng tin cậy của phát hiện YOLO để lọc các kết quả phát hiện yếu.
ioufloat0.45Ngưỡng IoU cho Non-Maximum Suppression để lọc các hộp chồng chéo.
imgszint640Kích thước đầu vào để thay đổi kích thước hình ảnh (phải là bội số của 32).
max_detint300Số lượng phát hiện tối đa trên mỗi hình ảnh để tối ưu bộ nhớ.
classeslist[int]NoneDanh sách các chỉ số lớp cần phát hiện (ví dụ: [0, 1] cho người và xe đạp).
output_dirstrNoneThư mục lưu các nhãn (mặc định: thư mục ngang hàng <data>_auto_annotate_labels).

Hàm này hỗ trợ việc tạo nhanh chóng các bộ dữ liệu phân đoạn chất lượng cao, rất lý tưởng cho các nhà nghiên cứu và lập trình viên nhằm đẩy nhanh tiến độ dự án của họ.

Hạn chế#

Mặc dù có nhiều thế mạnh, SAM 2 vẫn có một số hạn chế nhất định:

  • Độ ổn định theo dõi: SAM 2 có thể mất dấu đối tượng trong các chuỗi kéo dài hoặc khi góc nhìn thay đổi đáng kể.
  • Nhầm lẫn đối tượng: Model đôi khi có thể nhầm lẫn các đối tượng trông giống nhau, đặc biệt là trong các cảnh đông đúc.
  • Hiệu quả với nhiều đối tượng: Hiệu quả phân đoạn giảm khi xử lý nhiều đối tượng cùng lúc do thiếu tính năng giao tiếp giữa các đối tượng.
  • Độ chính xác chi tiết: Có thể bỏ sót các chi tiết tinh vi, đặc biệt là với các đối tượng di chuyển nhanh. Các prompt bổ sung có thể giải quyết phần nào vấn đề này, nhưng tính mượt mà theo thời gian không được đảm bảo.

Trích dẫn và Ghi nhận#

Nếu SAM 2 là một phần quan trọng trong công việc nghiên cứu hoặc phát triển của bạn, vui lòng trích dẫn nó bằng tài liệu tham khảo sau:

Trích dẫn
@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}
}

Chúng tôi gửi lời cảm ơn chân thành đến Meta AI vì những đóng góp của họ cho cộng đồng AI với model và bộ dữ liệu mang tính đột phá này.

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

SAM 2 là gì và nó cải tiến những gì so với Segment Anything Model (SAM) ban đầu?#

SAM 2, thế hệ kế nhiệm của Segment Anything Model (SAM) từ Meta, là một công cụ tiên tiến được thiết kế để phân đoạn đối tượng toàn diện trong cả ảnh và video. Nó xuất sắc trong việc xử lý dữ liệu trực quan phức tạp thông qua một kiến trúc model thống nhất, có thể nhận prompt hỗ trợ xử lý thời gian thực và tổng quát hóa zero-shot. SAM 2 cung cấp một số cải tiến so với SAM ban đầu, bao gồm:

  • Kiến trúc model thống nhất: Kết hợp các tính năng phân đoạn ảnh và video trong một model duy nhất.
  • Hiệu suất thời gian thực: Xử lý khoảng 44 khung hình mỗi giây, phù hợp cho các ứng dụng yêu cầu phản hồi tức thì.
  • Tổng quát hóa Zero-Shot: Phân đoạn các đối tượng mà nó chưa từng gặp trước đây, hữu ích trong các miền trực quan đa dạng.
  • Cải tiến tương tác: Cho phép người dùng liên tục tinh chỉnh kết quả phân đoạn bằng cách cung cấp thêm các prompt.
  • Xử lý nâng cao các thách thức trực quan: Quản lý các thách thức phân đoạn video phổ biến như hiện tượng che khuất đối tượng và xuất hiện trở lại.

Để biết thêm chi tiết về kiến trúc và khả năng của SAM 2, hãy khám phá bài báo nghiên cứu SAM 2.

Làm cách nào tôi có thể sử dụng SAM 2 để phân đoạn video theo thời gian thực?#

SAM 2 có thể được sử dụng để phân đoạn video theo thời gian thực bằng cách tận dụng giao diện nhận prompt và khả năng suy luận thời gian thực của nó. Dưới đây là một ví dụ cơ bản:

Phân đoạn với Câu lệnh

Sử dụng các câu lệnh để phân đoạn các đối tượng cụ thể trong hình ảnh hoặc video.

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])

Để biết thêm chi tiết sử dụng toàn diện, hãy tham khảo phần Cách sử dụng SAM 2.

Những bộ dữ liệu nào được sử dụng để huấn luyện SAM 2 và chúng nâng cao hiệu suất của nó như thế nào?#

SAM 2 được huấn luyện trên bộ dữ liệu SA-V, một trong những bộ dữ liệu phân đoạn video lớn nhất và đa dạng nhất hiện có. Bộ dữ liệu SA-V bao gồm:

  • 51.000+ Video: Được quay trên 47 quốc gia, cung cấp nhiều kịch bản thế giới thực phong phú.
  • 600.000+ Chú thích Mặt nạ: Các chú thích mặt nạ không gian-thời gian chi tiết, được gọi là "masklets", bao gồm toàn bộ đối tượng và các bộ phận.
  • Quy mô bộ dữ liệu: Có số lượng video gấp 4.5 lần và số lượng chú thích gấp 53 lần so với các bộ dữ liệu lớn trước đó, mang lại sự đa dạng và phức tạp chưa từng có.

Bộ dữ liệu phong phú này cho phép SAM 2 đạt được hiệu suất vượt trội trên các benchmark phân đoạn video chính và nâng cao khả năng tổng quát hóa zero-shot của nó. Để biết thêm thông tin, hãy xem phần Bộ dữ liệu SA-V.

SAM 2 xử lý hiện tượng che khuất và xuất hiện lại của đối tượng trong phân đoạn video như thế nào?#

SAM 2 bao gồm một cơ chế bộ nhớ phức tạp để quản lý các phụ thuộc theo thời gian và hiện tượng che khuất trong dữ liệu video. Cơ chế bộ nhớ bao gồm:

  • Bộ mã hóa bộ nhớ và Ngân hàng bộ nhớ: Lưu trữ các đặc trưng từ các khung hình trước đó.
  • Mô-đun chú ý bộ nhớ: Tận dụng thông tin đã lưu trữ để duy trì việc theo dõi đối tượng nhất quán theo thời gian.
  • Đầu thu che khuất: Xử lý cụ thể các tình huống mà đối tượng không hiển thị, dự đoán xác suất một đối tượng bị che khuất.

Cơ chế này đảm bảo tính liên tục ngay cả khi các đối tượng bị che khuất tạm thời hoặc đi ra ngoài và quay trở lại cảnh. Để biết thêm chi tiết, hãy tham khảo phần Cơ chế bộ nhớ và Xử lý che khuất.

SAM 2 so sánh như thế nào với các model phân đoạn khác như YOLO26?#

Các model SAM 2, chẳng hạn như SAM2-t và SAM2-b của Meta, cung cấp khả năng phân đoạn zero-shot mạnh mẽ nhưng có kích thước lớn hơn đáng kể và chậm hơn so với các model YOLO. Ví dụ, YOLO26n-seg nhỏ hơn khoảng 24 lần và nhanh hơn hơn 1145 lần so với SAM2-b trên CPU. Trong khi SAM 2 xuất sắc trong các kịch bản phân đoạn đa năng, dựa trên prompt và zero-shot, YOLO26 được tối ưu hóa cho tốc độ, hiệu quả và các ứng dụng thời gian thực với suy luận đầu cuối không cần NMS, giúp nó phù hợp hơn cho việc triển khai trong môi trường bị hạn chế tài nguyên.

Bình luận