SAM 2: Phân đoạn bất cứ thứ gì Mô hình 2
SAM 2, người kế nhiệm Meta Mô hình phân khúc bất cứ thứ gì (SAM), 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, kịp thời hỗ trợ xử lý thời gian thực và khái quát hóa zero-shot.
Các tính năng chính
Xem: How to Run Inference with Meta's SAM2 using Ultralytics | Step-by-Step Guide 🎉
Kiến trúc mô hình thố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 mô hình duy nhất. Sự hợp nhất này đơn giản hóa việc 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 lời nhắc linh hoạt, cho phép người dùng chỉ định các đối tượng quan tâm thông qua các loại lời nhắc 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
Mô hình đạt được 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 Thích hợp cho các ứng dụng yêu cầu phản hồi ngay lập tức, chẳng hạn như chỉnh sửa video và thực tế tăng cường.
Khái 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 khái 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ể.
Tinh chỉnh tương tác
Người dùng có thể tinh chỉnh lặp đi lặp lại kết quả phân đoạn bằng cách cung cấp lời nhắc bổ sung, 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 hình ảnh y tế.
Xử lý nâng cao các thách thức 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ư tắc nghẽn đối tượng và xuất hiện lại. Nó sử dụng một cơ chế bộ nhớ tinh vi để theo dõi các đối tượng trên 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 thoát ra và vào lại cảnh.
Để hiểu sâu hơn về SAM Kiến trúc và khả năng của 2, hãy khám phá SAM 2 bài nghiên cứu.
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 so với các mô hình trước đó trên các số liệu khác nhau:
Mét | SAM 2 | SOTA trước |
---|---|---|
Phân đoạn video tương tác | Tốt nhất | - |
Yêu cầu tương tác của con người | Ít hơn 3 lần | Baseline |
Image Segmentation Accuracy | Cải thiện | SAM |
Tốc độ suy luận | Nhanh hơn 6 lần | SAM |
Kiến trúc mô hình
Thành phần cốt lõi
- Image and Video Encoder: Utilizes a transformer-based architecture to extract high-level features from both images and video frames. This component is responsible for understanding the visual content at each timestep.
- Bộ mã hóa lời nhắc: Xử lý lời nhắc 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 lưu trữ chung và sử dụng thông tin từ các khung trong quá khứ, 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ạ: Tạo mặt nạ phân đoạn cuối cùng dựa trên các tính năng và lời nhắc hình ảnh được mã hóa. Trong video, nó cũng sử dụng ngữ cảnh bộ nhớ để đảm bảo theo dõi chính xác trên các khung hình.
Cơ chế bộ nhớ và xử lý tắc
Cơ chế bộ nhớ cho phép SAM 2 để xử lý sự phụ thuộc và tắc nghẽn tạm thời 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 tính năng của chúng trong một 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à sự xuất hiện của nó khi nó xuất hiện trở lại. Đầu tắc đặc biệt xử lý các tình huống trong đó các đối tượng không nhìn thấy được, dự đoán khả năng một đối tượng bị tắc.
Độ phân giải mơ hồ đa mặt nạ
Trong các tình huống không rõ ràng (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 trong đó 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
Bộ dữ liệu SA-V, được phát triển cho SAM Đào tạo của 2, là 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ó. Nó bao gồm:
- 51.000+ Video: Được quay trên 47 quốc gia, cung cấp một loạt các tình huống trong thế giới thực.
- 600.000+ Chú thích mặt nạ: Chú thích mặt nạ không gian-thời gian chi tiết, được gọi là "mặt nạ", bao gồm toàn bộ đối tượng và bộ phận.
- Quy mô tập dữ liệu: Nó có nhiều video hơn 4,5 lần và chú thích gấp 53 lần so với các bộ 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ó.
Điểm chuẩn
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 | J &F | J | F |
---|---|---|---|
DAVIS 2017 | 82.5 | 79.8 | 85.2 |
YouTube-VOS | 81.2 | 78.9 | 83.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 | NoC@90 | AUC |
---|---|---|
Tương tác DAVIS | 1.54 | 0.872 |
Cài đặt
Để cài đặt SAM 2, sử dụng lệnh sau. Tất cả SAM 2 mô hình sẽ tự động tải xuống trong lần sử dụng đầu tiên.
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 nêu chi tiết các tính năng có sẵn SAM 2 mô hình, trọng lượng được đào tạo trước, các tác vụ được hỗ trợ và khả năng tương thích với các chế độ hoạt động khác nhau như Suy luận, Xác thực, Đào tạo và Xuất.
Loại mô hình | Trọng lượng được đào tạo trước | Các tác vụ được hỗ trợ | Suy luận | Xác nhận | Đào tạo | Xuất khẩu |
---|---|---|---|---|---|---|
SAM 2 tí hon | sam2_t.pt | Phân đoạn phiên bản | ✅ | ❌ | ❌ | ❌ |
SAM 2 nhỏ | sam2_s.pt | Phân đoạn phiên bản | ✅ | ❌ | ❌ | ❌ |
SAM 2 cơ sở | sam2_b.pt | Phân đoạn phiên bản | ✅ | ❌ | ❌ | ❌ |
SAM 2 lớn | sam2_l.pt | Phân đoạn phiên bản | ✅ | ❌ | ❌ | ❌ |
SAM 2 Ví dụ dự đoán
SAM 2 có thể được sử dụng trên một loạt các tác vụ, bao gồm chỉnh sửa video thời gian thực, hình ảnh y tế và hệ thống tự trị. Khả năng phân đoạn cả dữ liệu hình ảnh 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 bằng lời nhắc
Phân đoạn bằng lời nhắc
Sử dụng lời nhắc để 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])
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 lời nhắc cụ thể.
- Ví dụ này cho thấy làm thế nào 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ó lời nhắc (hộp / điểm / mặt nạ) được cung cấp.
SAM 2 comparison vs YOLOv8
Here we compare Meta's smallest SAM 2 model, SAM2-t, with Ultralytics smallest segmentation model, YOLOv8n-seg:
Mẫu | Size (MB) |
Parameters (M) |
Speed (CPU) (ms/im) |
---|---|---|---|
Meta SAM-b | 375 | 93.7 | 161440 |
Meta SAM2-b | 162 | 80.8 | 121923 |
Meta SAM2-t | 78.1 | 38.9 | 85155 |
MobileSAM | 40.7 | 10.1 | 98543 |
FastSAM-s với YOLOv8 xương sống | 23.7 | 11.8 | 140 |
Ultralytics YOLOv8n-Seg | 6.7 (11.7x smaller) | 3.4 (11.4x less) | 79.5 (1071x faster) |
So sánh này cho thấy sự khác biệt về thứ tự cường độ trong kích thước mô hình và tốc độ giữa các mô hình. Trong khi đó: SAM Trình bày các khả năng độc đáo để phân đoạn tự động, nó không phải là đối thủ cạnh tranh trực tiếp với YOLOv8 mô hình phân khúc, nhỏ hơn, nhanh hơn và hiệu quả hơn.
Tests run on a 2023 Apple M2 Macbook with 16GB of RAM using torch==2.3.1
và ultralytics==8.3.82
. To reproduce this test:
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 YOLOv8n-seg
model = YOLO("yolov8n-seg.pt")
model.info()
model(ASSETS)
Tự độ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 bộ 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 mô hình được đào tạo 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 cần nỗ lực thủ công rộng rãi.
Cách tự động chú thích với SAM 2
Để 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:
Ví dụ về chú thích tự động
Lý lẽ | Kiểu | Sự miêu tả | Mặc định |
---|---|---|---|
data |
str |
Đường dẫn đến thư mục chứa hình ảnh cần chú thích. | |
det_model |
str Tùy chọn |
Đào tạo trước YOLO mô hình phát hiện. Mặc định là 'yolov8x.pt'. | 'yolov8x.pt' |
sam_model |
str Tùy chọn |
Đào tạo trước SAM 2 mô hình phân khúc. Mặc định là 'sam2_b.pt'. | 'sam2_b.pt' |
device |
str Tùy chọn |
Thiết bị để chạy các mô hình trên. Mặc định là một chuỗi trống (CPU hoặc GPU, nếu có). | |
output_dir |
str , None Tùy chọn |
Thư mục để lưu các kết quả được chú thích. Mặc định là thư mục 'labels' trong cùng thư mục với 'data'. | None |
Chức năng này tạo điều kiện cho việc tạo nhanh chóng các bộ 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 đẩy nhanh dự án của họ.
Hạn chế
Mặc dù có thế mạnh của nó, SAM 2 có những hạn chế nhất định:
- Theo dõi ổn định: SAM 2 có thể mất dấu các đối tượng trong các chuỗi mở rộng hoặc thay đổi quan điểm quan trọng.
- Nhầm lẫn đối tượng: Người mẫu đô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 đồng thời do thiếu giao tiếp giữa các đối tượng.
- Detail Accuracy: May miss fine details, especially with fast-moving objects. Additional prompts can partially address this issue, but temporal smoothness is not guaranteed.
Trích dẫn và xác 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 cách sử dụ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 đến Meta AI vì những đóng góp của họ cho cộng đồng AI với mô hình và bộ dữ liệu đột phá này.
FAQ
Là gì SAM 2 và nó cải thiện như thế nào so với Mô hình phân đoạn bất cứ điều gì ban đầu (SAM)?
SAM 2, người kế nhiệm Meta Mô hình phân khúc bất cứ thứ gì (SAM), 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, kịp thời hỗ trợ xử lý thời gian thực và khái quát hóa zero-shot. SAM 2 cung cấp một số cải tiến so với bản gốc SAMBao gồm:
- Kiến trúc mô hình thống nhất: 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.
- 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 ngay lập tức.
- Zero-Shot Generalization: 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 hình ảnh đa dạng.
- Tinh chỉnh tương tác: Cho phép người dùng tinh chỉnh lặp đi lặp lại kết quả phân đoạn bằng cách cung cấp lời nhắc bổ sung.
- 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ư tắc nghẽn đối tượng và xuất hiện lại.
Để biết thêm chi tiết về SAM Kiến trúc và khả năng của 2, hãy khám phá SAM 2 bài nghiên cứu.
Tôi có thể sử dụng như thế nào 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 theo thời gian thực. Dưới đây là một ví dụ cơ bản:
Phân đoạn bằng lời nhắc
Sử dụng lời nhắc để 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])
Để sử dụng toàn diện hơn, hãy tham khảo Cách sử dụng SAM 2 phần.
Những bộ dữ liệu nào được sử dụng để đào tạo SAM 2, và làm thế nào để họ nâng cao hiệu suất của nó?
SAM 2 được đào tạo 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 một loạt các tình huống trong thế giới thực.
- 600.000+ Chú thích mặt nạ: Chú thích mặt nạ không gian-thời gian chi tiết, được gọi là "mặt nạ", bao gồm toàn bộ đối tượng và bộ phận.
- Quy mô tập dữ liệu: Có nhiều video hơn 4,5 lần và chú thích gấp 53 lần so với các bộ dữ liệu lớn nhất trước đó, mang lại sự đa dạng và phức tạp chưa từng có.
Bộ 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 điểm chuẩn phân đoạn video chính và nâng cao khả năng khái 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 .
Làm thế nào SAM 2 Xử lý tắc nghẽn và xuất hiện lại đối tượng trong phân đoạn video?
SAM 2 bao gồm một cơ chế bộ nhớ tinh vi để quản lý sự phụ thuộc và tắc nghẽn tạm thời 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 tính năng từ các khung trong quá khứ.
- Mô-đun chú ý bộ nhớ: Sử dụng thông tin được lưu trữ để duy trì theo dõi đối tượng nhất quán theo thời gian.
- Occlusion Head: Xử lý cụ thể các tình huống trong đó các đối tượng không nhìn thấy được, dự đoán khả năng một đối tượng bị tắc.
Cơ chế này đả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 thoát ra và vào 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ý tắc .
Làm thế nào SAM 2 So sánh với các mô hình phân khúc khác như YOLOv8?
SAM 2 and Ultralytics YOLOv8 serve different purposes and excel in different areas. While SAM 2 is designed for comprehensive object segmentation with advanced features like zero-shot generalization and real-time performance, YOLOv8 is optimized for speed and efficiency in object detection and segmentation tasks. Here's a comparison:
Mẫu | Size (MB) |
Parameters (M) |
Speed (CPU) (ms/im) |
---|---|---|---|
Meta SAM-b | 375 | 93.7 | 161440 |
Meta SAM2-b | 162 | 80.8 | 121923 |
Meta SAM2-t | 78.1 | 38.9 | 85155 |
MobileSAM | 40.7 | 10.1 | 98543 |
FastSAM-s với YOLOv8 xương sống | 23.7 | 11.8 | 140 |
Ultralytics YOLOv8n-Seg | 6.7 (11.7x smaller) | 3.4 (11.4x less) | 79.5 (1071x faster) |
For more details, see the SAM 2 comparison vs YOLOv8 section.