Link to this sectionSAM 2: Segment Anything Model 2#
SAM 2, thế hệ kế thừa 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. Nó vượt trội trong việc xử lý dữ liệu hình ảnh phức tạp thông qua kiến trúc mô hình thống nhất, có khả năng nhận gợi ý (promptable) và hỗ trợ xử lý thời gian thực cùng khả năng tổng quát hóa zero-shot.
Các mô hình SAM 2.1 vận hành 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.

Link to this sectionCác tính năng chính#
Watch: How to Run Inference with Meta's SAM2 using Ultralytics | Step-by-Step Guide 🎉
Link to this sectionKiến trúc mô hình thống nhất#
SAM 2 kết hợp khả năng phân đoạn hình ảnh và video trong một mô hình duy nhất. Sự thố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. Nó tận dụng giao diện dựa trên gợi ý linh hoạt, cho phép người dùng xác định các đối tượng quan tâm thông qua nhiều loại gợi ý, chẳng hạn như điểm, bounding box hoặc mặt nạ (mask).
Link to this sectionHiệu suất thời gian thực#
Mô hình đạ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 giúp SAM 2 phù hợp cho các ứng dụng đòi hỏi phản hồi tức thì, như chỉnh sửa video và thực tế tăng cường.
Link to this sectionKhả nă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 lĩnh vực hình ảnh đ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ó.
Link to this sectionTinh 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 thêm các gợi ý, cho phép kiểm soát chính xác đầu ra. Tính 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 chẩn đoán hình ảnh y tế.
Link to this sectionXử lý nâng cao các thách thức về hình ảnh#
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ư vật thể bị che khuất và xuất hiện trở lại. Nó sử dụng cơ chế bộ nhớ phức tạp để 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 bị che khuất tạm thời hoặc rời khỏi và quay lại cảnh quay.
Để 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 báo nghiên cứu SAM 2.
Link to this sectionHiệ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 mô hình trước đó trên nhiều chỉ số:
| Chỉ số | SAM 2 | SOTA trước đó |
|---|---|---|
| Phân đoạn video tương tác | Tốt nhất | - |
| Tương tác con người cần thiết | Ít hơn 3 lần | Cơ sở |
| Độ chính xác phân đoạn hình ảnh | Đã cải thiện | SAM |
| Tốc độ suy luận | Nhanh hơn 6 lần | SAM |
Link to this sectionKiến trúc mô hình#
Link to this sectionCá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 hình ảnh tại mỗi bước thời gian.
- Bộ mã hóa gợi ý (Prompt Encoder): Xử lý các gợi ý 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 vào 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ớ (memory attention). 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 mô hình duy trì theo dõi đối tượng nhất quán theo thời gian.
- Bộ giải mã mặt nạ (Mask Decoder): 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 gợi ý. Trong video, nó cũng sử dụng ngữ cảnh bộ nhớ để đảm bảo việc theo dõi chính xác qua các khung hình.

Link to this sectionCơ chế bộ nhớ và xử lý vật thể bị 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 ngân hàng bộ nhớ. Khi một đối tượng bị che khuất, mô hình có thể dựa vào bộ nhớ này để dự đoán vị trí và hình dạng của nó khi nó xuất hiện trở lại. Đầu che khuất (occlusion head) 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 đối tượng bị che khuất.
Link to this sectionGiả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.
Link to this sectionTập dữ liệu SA-V#
Tập dữ liệu SA-V, được phát triển cho việc 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 tại 47 quốc gia, cung cấp nhiều tình huống trong thế giới thực.
- 600.000+ Chú thích mặt nạ: Chú thích mặt nạ chi tiết theo không gian-thời gian, được gọi là "masklets", bao phủ toàn bộ đối tượng và các bộ phận.
- Quy mô tập dữ liệu: Nó có nhiều hơn 4,5 lần video và 53 lần chú thích so với các tập dữ liệu lớn nhất trước đây, mang đến sự đa dạng và phức tạp chưa từng có.
Link to this sectionĐiểm chuẩn#
Link to this sectionPhâ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 | J&F | J | F |
|---|---|---|---|
| DAVIS 2017 | 82.5 | 79.8 | 85.2 |
| YouTube-VOS | 81.2 | 78.9 | 83.5 |
Link to this sectionPhâ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 | NoC@90 | AUC |
|---|---|---|
| DAVIS Interactive | 1.54 | 0.872 |
Link to this sectionCài đặt#
Để cài đặt SAM 2, hãy sử dụng lệnh sau. Tất cả các mô hình SAM 2 sẽ tự động tải xuống trong lần sử dụng đầu tiên.
pip install ultralyticsLink to this sectionCách sử dụng SAM 2: Sự 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 mô hình SAM 2 có sẵn, các trọng số đã được huấn luyện sẵn, các tác vụ được hỗ trợ và khả năng tương thích với các chế độ vận hành khác nhau như Suy luận, Đánh giá, Huấn luyện, và Xuất.
| Loại Model | Trọng số tiền huấn luyện | Tác vụ được hỗ trợ | Suy luận (Inference) | Validation | Training | Export |
|---|---|---|---|---|---|---|
| SAM 2 tiny | sam2_t.pt | Phân đoạn thực thể | ✅ | ❌ | ❌ | ❌ |
| SAM 2 small | sam2_s.pt | Phân đoạn thực thể | ✅ | ❌ | ❌ | ❌ |
| SAM 2 base | sam2_b.pt | Phân đoạn thực thể | ✅ | ❌ | ❌ | ❌ |
| SAM 2 large | sam2_l.pt | Phân đoạn thực thể | ✅ | ❌ | ❌ | ❌ |
| SAM 2.1 tiny | sam2.1_t.pt | Phân đoạn thực thể | ✅ | ❌ | ❌ | ❌ |
| SAM 2.1 small | sam2.1_s.pt | Phân đoạn thực thể | ✅ | ❌ | ❌ | ❌ |
| SAM 2.1 base | sam2.1_b.pt | Phân đoạn thực thể | ✅ | ❌ | ❌ | ❌ |
| SAM 2.1 large | sam2.1_l.pt | Phân đoạn thực thể | ✅ | ❌ | ❌ | ❌ |
Link to this sectionCác ví dụ dự đoán SAM 2#
SAM 2 có thể được sử dụng trong một phạm vi rộng các tác vụ, bao gồm chỉnh sửa video thời gian thực, chẩn đoán hình ảnh y tế và các hệ thống tự hành. Khả năng phân đoạn dữ liệu hình ảnh tĩnh và động của nó 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.
Link to this sectionPhân đoạn với các gợi ý#
Sử dụng các gợi ý để 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]])Link to this sectionPhâ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 gợi ý 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")Link to this sectionPhân đoạn video và theo dõi đối tượng#
Phân đoạn toàn bộ nội dung video với các gợi ý cụ thể và theo dõi đối tượng.
from ultralytics.models.sam import SAM2VideoPredictor
# Create SAM2VideoPredictor
overrides = dict(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 sử dụng SAM 2 để phân đoạn toàn bộ nội dung của hình ảnh hoặc video nếu không có lời nhắc (bboxes/points/masks) nào được cung cấp.
Link to this sectionPhân đoạn và Theo dõi Tương tác Động#
SAM2DynamicInteractivePredictor là một phần 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 liên tục. Trình dự đoán này hỗ trợ cập nhật lời nhắc thời gian thực và quản lý bộ nhớ để cải thiện hiệu suất theo dõi trên một chuỗi hình ảnh. So với SAM2 gốc, 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 huấn luyện thêm.

Link to this sectionCác tính năng chính#
Nó cung cấp ba cải tiến đáng kể:
- Tương tác Động: Thêm các lời nhắc mới để hợp nhất/theo dõi các thực thể mới trong các khung hình tiếp theo bất kỳ lúc nào trong quá trình xử lý video
- Học Liên tục: Thêm các lời nhắc mới cho các thực thể hiện có để cải thiện hiệu suất của model theo thời gian
- 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 khả năng chia sẻ bộ nhớ và theo dõi đối tượng chéo giữa các hình ảnh
Link to this sectionCác Khả năng Cốt lõi#
- Tính linh hoạt của Lời nhắc: Chấp nhận các khung bao (bounding boxes), điểm và mặt nạ làm lời nhắc
- 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 biệt
- Cập nhật Thời gian thực: Cho phép thêm lời nhắc 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ý Hình ảnh Độc lập: Xử lý các hình ảnh riêng lẻ với ngữ cảnh bộ nhớ dùng chung để duy trì tính nhất quán của đối tượng trên các hình ảnh
from ultralytics.models.sam import SAM2DynamicInteractivePredictor
# Create SAM2DynamicInteractivePredictor
overrides = dict(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")SAM2DynamicInteractivePredictor được thiết kế để hoạt động với các model SAM2 và hỗ trợ thêm/tinh chỉnh các danh mục bằng tất cả các lời nhắc box/point/mask 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.
Link to this sectionĐối số#
| Tên | Giá trị mặc định | Kiểu Dữ liệu | Mô tả |
|---|---|---|---|
max_obj_num | 3 | int | Số lượng danh mục tối đa được thiết lập trước |
update_memory | False | bool | Liệu có cập nhật bộ nhớ với các lời nhắc mới hay không |
obj_ids | None | List[int] | Danh sách các ID đối tượng tương ứng với các lời nhắc |
Link to this sectionCác Trường hợp Sử dụng#
SAM2DynamicInteractivePredictor là 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 chuỗi
- Chỉnh sửa video tương tác yêu cầu thêm và tinh chỉnh đố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
- Các hệ thống tự hành yêu cầu phát hiện và theo dõi đối tượng thích ứng
- Các tập dữ liệu đa hình ảnh để phân đoạn đối tượng nhất quán trên các hình ả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 trên các cảnh khác nhau
- Phân đoạn liên 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 tập dữ liệu hiệu quả với sự can thiệp thủ công tối thiểu
Link to this sectionSo sánh SAM với YOLO#
Ở đây chúng tôi so sánh các model SAM 2 của Meta, bao gồm cả biến thể SAM2-t nhỏ nhất, với các model phân đoạn của Ultralytics bao gồm YOLO26n-seg:
| Model | Kích thước (MB) | Tham số (M) | Tốc độ (CPU) (ms/im) |
|---|---|---|---|
| Meta SAM-b | 375 | 93.7 | 41703 |
| Meta SAM2-b | 162 | 80.8 | 28867 |
| Meta SAM2-t | 78.1 | 38.9 | 23430 |
| MobileSAM | 40.7 | 10.1 | 23802 |
| FastSAM-s với backbone YOLOv8 | 23.9 | 11.8 | 58.0 |
| Ultralytics YOLOv8n-seg | 7.1 (nhỏ hơn 11.0x) | 3.4 (ít hơn 11.4x) | 24.8 (nhanh hơn 945x) |
| Ultralytics YOLO11n-seg | 6.2 (nhỏ hơn 12.6x) | 2.9 (ít hơn 13.4x) | 24.3 (nhanh hơn 964x) |
| Ultralytics YOLO26n-seg | 6.7 (nhỏ hơn 11.7x) | 2.7 (ít hơn 14.4x) | 25.2 (nhanh hơn 930x) |
Sự 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 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ả hơn nhiều về mặt tính toán.
Tốc độ SAM được đo bằng PyTorch, tốc độ YOLO được đo bằng ONNX Runtime. Các thử nghiệm được chạy trên Apple M4 Air 2025 với 16GB RAM sử dụng torch==2.10.0, ultralytics==8.4.31, và onnxruntime==1.24.4. Để tái tạo thử nghiệm này:
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)Link to this sectionTự động Chú thích: Tạo Tập 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 tập dữ liệu phân đoạn một cách 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 cho việc tạo các tập dữ liệu lớn, chất lượng cao mà không cần nỗ lực thủ công đáng kể.
Link to this sectionCá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 tập dữ liệu của bạn bằng cách sử dụng SAM 2, hãy làm theo ví dụ này:
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ại | Mặc định | Mô tả |
|---|---|---|---|
data | str | bắt buộc | Đường dẫn đến thư mục chứa các hình ảnh mục tiêu để gắn nhãn hoặc phân đoạn. |
det_model | str | 'yolo26x.pt' | Đường dẫn model phát hiện YOLO cho phát hiện đối tượng ban đầu. |
sam_model | str | 'sam_b.pt' | Đường dẫn model SAM để phân đoạn (hỗ trợ các trọng số SAM, SAM 2, MobileSAM, và SAM 3). |
device | str | '' | Thiết bị tính toán (ví dụ: 'cuda:0', 'cpu', hoặc '' để tự động phát hiện thiết bị). |
conf | float | 0.25 | Ngưỡng tin cậy phát hiện của YOLO để lọc các kết quả phát hiện yếu. |
iou | float | 0.45 | Ngưỡng IoU cho Non-Maximum Suppression để lọc các hộp chồng lấp. |
imgsz | int | 640 | Kí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_det | int | 300 | Số lượng phát hiện tối đa trên mỗi hình ảnh để tối ưu hóa bộ nhớ. |
classes | list[int] | None | Danh sách các chỉ số lớp cần phát hiện (ví dụ: [0, 1] cho người & xe đạp). |
output_dir | str | None | Thư mục lưu cho các chú thích (mặc định: ngang hàng <data>_auto_annotate_labels). |
Chức năng này tạo điều kiện thuận lợi cho việc tạo nhanh các tập dữ liệu phân đoạn chất lượng cao, lý tưởng cho các nhà nghiên cứu và nhà phát triển nhằm mục đích tăng tốc các dự án của họ.
Link to this sectionHạn chế#
Mặc dù có những điểm mạnh, SAM 2 vẫn có một số hạn chế:
- Độ ổn định khi Theo dõi: SAM 2 có thể mất dấu đối tượng trong các chuỗi dài hoặc khi có sự thay đổi góc nhìn đá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 Đa Đố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 sự 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 nhỏ, đặc biệt là với các đối tượng di chuyển nhanh. Các lời nhắc bổ sung có thể giải quyết một phần vấn đề này, nhưng độ mượt mà theo thời gian không được đảm bảo.
Link to this sectionTrí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:
@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 tới Meta AI vì những đóng góp của họ cho cộng đồng AI với model và tập dữ liệu mang tính đột phá này.
Link to this sectionCâu hỏi thường gặp#
Link to this sectionSAM 2 là gì và nó cải tiến như thế nào so với Segment Anything Model (SAM) gốc?#
SAM 2, người 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. Nó vượt trội trong việc xử lý dữ liệu trực quan phức tạp thông qua kiến trúc model hợp nhất, có thể nhắc nhở (promptable), 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 gốc, bao gồm:
- Kiến trúc Model Hợp nhất: Kết hợp khả năng phân đoạn hình ả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, làm cho nó phù hợp với 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 lĩnh vực trực quan đa dạng.
- Tinh chỉnh Tương tác: Cho phép người dùng tinh chỉnh kết quả phân đoạn một cách lặp đi lặp lại bằng cách cung cấp các lời nhắc bổ sung.
- Xử lý Nâng cao các Thử thách Trực quan: Quản lý các thách thức phân đoạn video phổ biến như che khuất đối tượng và sự tái xuất hiện.
Để 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.
Link to this sectionLàm thế nào tôi có thể sử dụng SAM 2 để phân đoạn video thời gian thực?#
SAM 2 có thể được sử dụng để phân đoạn video thời gian thực bằng cách tận dụng giao diện có thể nhắc nhở 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:
Sử dụng các gợi ý để 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 cách sử dụng toàn diện hơn, hãy tham khảo phần Cách Sử dụng SAM 2.
Link to this sectionNhững tập 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 tập dữ liệu SA-V, 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ó. Tập dữ liệu SA-V bao gồm:
- 51.000+ Video: Được quay tại 47 quốc gia, cung cấp nhiều tình huống trong thế giới thực.
- 600.000+ Chú thích mặt nạ: Chú thích mặt nạ chi tiết theo không gian-thời gian, được gọi là "masklets", bao phủ toàn bộ đối tượng và các bộ phận.
- Quy mô Tập 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 tập dữ liệu lớn nhất trước đây, mang lại sự đa dạng và phức tạp chưa từng có.
Tập dữ liệu mở rộng này cho phép SAM 2 đạt được hiệu suất vượt trội trên các tiêu chuẩn phân đoạn video chính và tăng cường 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 Tập dữ liệu SA-V.
Link to this sectionSAM 2 xử lý việc che khuất và sự tái xuất hiện 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ớ tinh vi để quản lý các phụ thuộc tạm thời và sự 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 được lưu trữ để duy trì việc theo dõi đối tượng nhất quán theo thời gian.
- Head Che khuất: Xử lý cụ thể các tình huống nơi đối tượng không hiển thị, dự đoán khả năng 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 đối tượng bị che khuất tạm thời hoặc thoát ra và quay trở lại cảnh quay. Để biết thêm chi tiết, hãy tham khảo phần Cơ chế Bộ nhớ và Xử lý Che khuất.
Link to this sectionSAM 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 lại lớn hơn và chậm hơn đáng kể so với các model YOLO. Ví dụ, YOLO26n-seg nhỏ hơn khoảng 24 lần và nhanh hơn 1145 lần so với SAM2-b trên CPU. Trong khi SAM 2 vượt trội trong các kịch bản phân đoạn đa năng, dựa trên lời nhắc 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 end-to-end không cần NMS, làm cho nó phù hợp hơn để triển khai trong các môi trường bị hạn chế về tài nguyên.