Phân khúc di động Bất cứ điều gì (MobileSAM)
Các MobileSAM giấy hiện có sẵn trên arXiv.
Một minh chứng của MobileSAM Chạy trên một CPU có thể được truy cập tại liên kết demo này. Hiệu suất trên Mac i5 CPU mất khoảng 3 giây. Trên Hugging Face Bản demo, giao diện và CPU hiệu suất thấp hơn góp phần phản hồi chậm hơn, nhưng nó vẫn tiếp tục hoạt động hiệu quả.
Xem: Làm thế nào để chạy suy luận với MobileSAM sử dụng Ultralytics | Hướng dẫn từng bước 🎉
MobileSAM được thực hiện trong các dự án khác nhau bao gồm: Nền tảng-SAM, AnyLabeling và phân đoạn mọi thứ ở chế độ 3D.
MobileSAM được đào tạo trên một đĩa đơn GPU với bộ dữ liệu 100k (1% hình ảnh gốc) trong vòng chưa đầy một ngày. Mã cho khóa đào tạo này sẽ được cung cấp trong tương lai.
Các kiểu máy có sẵn, tác vụ được hỗ trợ và chế độ hoạt động
Bảng này trình bày các mô hình có sẵn với trọng số cụ thể được đào tạo trước, các tác vụ mà chúng hỗ trợ và khả năng tương thích của chúng 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, được biểu thị bằng ✅ biểu tượng cảm xúc cho các chế độ được hỗ trợ và ❌ biểu tượng cảm xúc cho các chế độ không được hỗ trợ.
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 |
---|---|---|---|---|---|---|
MobileSAM | mobile_sam.pt | Phân đoạn phiên bản | ✅ | ❌ | ❌ | ❌ |
Chuyển thể từ SAM đến MobileSAM
Từ MobileSAM giữ nguyên đường ống như ban đầu SAM, chúng tôi đã kết hợp tiền xử lý, xử lý hậu kỳ và tất cả các giao diện khác của bản gốc. Do đó, những người hiện đang sử dụng bản gốc SAM có thể chuyển sang MobileSAM với nỗ lực tối thiểu.
MobileSAM thực hiện tương đương với bản gốc SAM và giữ nguyên quy trình ngoại trừ thay đổi trong bộ mã hóa hình ảnh. Cụ thể, chúng tôi thay thế bộ mã hóa ViT-H hạng nặng ban đầu (632M) bằng Tiny-ViT nhỏ hơn (5M). Trên một đĩa đơn GPU, MobileSAM Hoạt động ở khoảng 12ms trên mỗi hình ảnh: 8ms trên bộ mã hóa hình ảnh và 4ms trên bộ giải mã mặt nạ.
Bảng sau đây cung cấp so sánh các bộ mã hóa hình ảnh dựa trên ViT:
Bộ mã hóa hình ảnh | Gốc SAM | MobileSAM |
---|---|---|
Thông số | 611M | 5M |
Tốc độ | 452ms | 8 mili giây |
Cả bản gốc SAM và MobileSAM Sử dụng cùng một bộ giải mã mặt nạ có hướng dẫn nhắc:
Bộ giải mã mặt nạ | Gốc SAM | MobileSAM |
---|---|---|
Thông số | 3.876M | 3.876M |
Tốc độ | 4ms | 4ms |
Dưới đây là so sánh của toàn bộ đường ống:
Toàn bộ đường ống (enc+Dec) | Gốc SAM | MobileSAM |
---|---|---|
Thông số | 615M | 9.66M |
Tốc độ | 456 mili giây | 12ms |
Hiệu suất của MobileSAM và bản gốc SAM được thể hiện bằng cách sử dụng cả một điểm và một hộp làm lời nhắc.
Với hiệu suất vượt trội, MobileSAM nhỏ hơn khoảng 5 lần và nhanh hơn 7 lần so với hiện tại FastSAM. Thông tin chi tiết có sẵn tại MobileSAM trang dự án.
Thử nghiệm MobileSAM trong Ultralytics
Cũng giống như bản gốc SAM, chúng tôi cung cấp một phương pháp thử nghiệm đơn giản trong Ultralytics, bao gồm các chế độ cho cả lời nhắc Điểm và Hộp.
Tải xuống mô hình
Bạn có thể tải mô hình tại đây.
Lời nhắc điểm
Ví dụ
from ultralytics import SAM
# Load the model
model = SAM("mobile_sam.pt")
# Predict a segment based on a single point prompt
model.predict("ultralytics/assets/zidane.jpg", points=[900, 370], labels=[1])
# Predict multiple segments based on multiple points prompt
model.predict("ultralytics/assets/zidane.jpg", points=[[400, 370], [900, 370]], labels=[1, 1])
# Predict a segment based on multiple points prompt per object
model.predict("ultralytics/assets/zidane.jpg", points=[[[400, 370], [900, 370]]], labels=[[1, 1]])
# Predict a segment using both positive and negative prompts.
model.predict("ultralytics/assets/zidane.jpg", points=[[[400, 370], [900, 370]]], labels=[[1, 0]])
Lời nhắc hộp
Ví dụ
from ultralytics import SAM
# Load the model
model = SAM("mobile_sam.pt")
# Predict a segment based on a single point prompt
model.predict("ultralytics/assets/zidane.jpg", points=[900, 370], labels=[1])
# Predict mutiple segments based on multiple points prompt
model.predict("ultralytics/assets/zidane.jpg", points=[[400, 370], [900, 370]], labels=[1, 1])
# Predict a segment based on multiple points prompt per object
model.predict("ultralytics/assets/zidane.jpg", points=[[[400, 370], [900, 370]]], labels=[[1, 1]])
# Predict a segment using both positive and negative prompts.
model.predict("ultralytics/assets/zidane.jpg", points=[[[400, 370], [900, 370]]], labels=[[1, 0]])
Chúng tôi đã thực hiện MobileSAM
và SAM
sử dụng cùng một API. Để biết thêm thông tin sử dụng, vui lòng xem SAM trang.
Trích dẫn và xác nhận
Nếu bạn tìm thấy MobileSAM Hữu ích trong công việc nghiên cứu hoặc phát triển của bạn, vui lòng xem xét trích dẫn bài báo của chúng tôi:
FAQ
Là gì MobileSAM và nó khác với bản gốc như thế nào SAM mẫu?
MobileSAM là một mô hình phân đoạn hình ảnh nhẹ, nhanh được thiết kế cho các ứng dụng di động. Nó vẫn giữ nguyên đường ống như bản gốc SAM nhưng thay thế bộ mã hóa ViT-H nặng (tham số 632M) bằng bộ mã hóa Tiny-ViT nhỏ hơn (tham số 5M). Thay đổi này dẫn đến MobileSAM nhỏ hơn khoảng 5 lần và nhanh hơn khoảng 7 lần so với bản gốc SAM . Ví dụ, MobileSAM hoạt động ở mức khoảng 12ms cho mỗi hình ảnh, so với bản gốc SAM 's 456ms. Bạn có thể tìm hiểu thêm về MobileSAM được triển khai trong nhiều dự án khác nhau ở đây .
Làm thế nào tôi có thể kiểm tra MobileSAM Sử dụng Ultralytics?
Thử nghiệm MobileSAM trong Ultralytics có thể được thực hiện thông qua các phương pháp đơn giản. Bạn có thể sử dụng lời nhắc Point and Box để dự đoán phân đoạn. Dưới đây là ví dụ sử dụng lời nhắc Điểm:
from ultralytics import SAM
# Load the model
model = SAM("mobile_sam.pt")
# Predict a segment based on a point prompt
model.predict("ultralytics/assets/zidane.jpg", points=[900, 370], labels=[1])
Bạn cũng có thể tham khảo Thử nghiệm MobileSAM để biết thêm chi tiết.
Tại sao tôi nên sử dụng MobileSAM cho ứng dụng di động của tôi?
MobileSAM Lý tưởng cho các ứng dụng di động do kiến trúc nhẹ và tốc độ suy luận nhanh. So với bản gốc SAM, MobileSAM nhỏ hơn khoảng 5 lần và nhanh hơn 7 lần, phù hợp với môi trường nơi tài nguyên tính toán bị hạn chế. Hiệu quả này đảm bảo rằng các thiết bị di động có thể thực hiện phân đoạn hình ảnh theo thời gian thực mà không có độ trễ đáng kể. Ngoài ra MobileSAMCác mô hình của Inference, được tối ưu hóa cho hiệu suất di động.
Thế nào rồi MobileSAM được đào tạo, và mã đào tạo có sẵn không?
MobileSAM đã được đào tạo trên một đĩa đơn GPU với bộ dữ liệu 100k, bằng 1% hình ảnh gốc, trong vòng chưa đầy một ngày. Mặc dù mã đào tạo sẽ được cung cấp trong tương lai, nhưng hiện tại bạn có thể khám phá các khía cạnh khác của MobileSAM trong MobileSAM Kho lưu trữ GitHub. Kho lưu trữ này bao gồm các trọng số được đào tạo trước và chi tiết triển khai cho các ứng dụng khác nhau.
Các trường hợp sử dụng chính cho là gì MobileSAM?
MobileSAM được thiết kế để phân đoạn hình ảnh nhanh chóng và hiệu quả trong môi trường di động. Các trường hợp sử dụng chính bao gồm:
- Phát hiện và phân đoạn đối tượng theo thời gian thực cho các ứng dụng di động.
- Xử lý hình ảnh có độ trễ thấp trong các thiết bị có tài nguyên tính toán hạn chế.
- Tích hợp trong các ứng dụng di động do AI điều khiển cho các tác vụ như thực tế tăng cường (AR) và phân tích thời gian thực.
Để biết thêm các trường hợp sử dụng và so sánh hiệu suất, hãy xem phần về Chuyển thể từ SAM đến MobileSAM.