Bỏ để qua phần nội dung

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.

SAM 2 Kết quả ví dụ

Các tính năng chính

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
Độ chính xác của phân đoạn hình ảnh 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

  • Bộ mã hóa hình ảnh và video: Sử dụng kiến trúc dựa trên máy biến áp để trích xuất các tính năng cấp cao từ cả hình ảnh và khung 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 điểm.
  • 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.

SAM 2 Sơ đồ kiến trúc

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.

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 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ạoXuấ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ể.

from ultralytics import SAM

# Load a model
model = SAM("sam2_b.pt")

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

# Run inference
model("path/to/video.mp4")
# Run inference with a SAM 2 model
yolo predict model=sam2_b.pt source=path/to/video.mp4
  • 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.1ultralytics==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

from ultralytics.data.annotator import auto_annotate

auto_annotate(data="path/to/images", det_model="yolov8x.pt", sam_model="sam2_b.pt")
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 strTù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 strTù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 strTù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, NoneTù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.
  • Độ chính xác chi tiết: Có thể bỏ lỡ các chi tiết nhỏ, đặc biệt là với các đối tượng chuyển động nhanh. 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à tạm thời không được đảm bảo.

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 và Ultralytics YOLOv8 Phục vụ các mục đích khác nhau và vượt trội trong các lĩnh vực khác nhau. Trong khi SAM 2 được thiết kế để phân đoạn đối tượng toàn diện với các tính năng nâng cao như khái quát hóa không bắn và hiệu suất thời gian thực, YOLOv8 được tối ưu hóa về tốc độ và hiệu quả trong các tác vụ phát hiện và phân đoạn đối tượng. Dưới đây là một so sánh:

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.


📅 Created 1 month ago ✏️ Updated 10 days ago

Ý kiến