Phân khúc di động Bất cứ thứ gì ( MobileSAM )
Các MobileSAM bài báo hiện có trên arXiv .
Một cuộc biểu tình 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 máy 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 làm phản hồi chậm hơn, nhưng nó vẫn tiếp tục hoạt động hiệu quả.
Đồng hồ: 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 triển khai trong nhiều dự án khác nhau bao gồm Grounding- SAM , AnyLabeling và Segment Anything in 3D .
MobileSAM được đào tạo trên một 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 mô hình có sẵn, nhiệm 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 đào tạo trước cụ thể, 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ế độ vận hành 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ợ.
Kiểu mẫu | Tạ đã được tập luyện trước | Nhiệm vụ được hỗ trợ | Suy luận | Xác thực | Đào tạo | Xuất khẩu |
---|---|---|---|---|---|---|
MobileSAM | di động_sam.pt | Phân đoạn trường hợp | ✅ | ❌ | ❌ | ❌ |
Thích nghi 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ý, hậu xử lý 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 đường ống 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 nặng ban đầu (632M) bằng Tiny-ViT nhỏ hơn (5M). Trên một GPU , MobileSAM hoạt động ở tốc độ khoảng 12ms cho 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 thông tin so sánh các bộ mã hóa hình ảnh dựa trên ViT:
Bộ mã hóa hình ảnh | Nguyên bản SAM | MobileSAM |
---|---|---|
Các tham số | 611M | 5M |
Tốc độ | 452ms | 8ms |
Cả hai 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 bằng lời nhắc:
Bộ giải mã mặt nạ | Nguyên bản SAM | MobileSAM |
---|---|---|
Các tham số | 3.876M | 3.876M |
Tốc độ | 4ms | 4ms |
Sau đây là sự so sánh toàn bộ đường ống:
Toàn bộ đường ống (Enc+Dec) | Nguyên bản SAM | MobileSAM |
---|---|---|
Các tham số | 615M | 9.66M |
Tốc độ | 456ms | 12ms |
Hiệu suất của MobileSAM và bản gốc SAM được chứng minh 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 của nó, MobileSAM nhỏ hơn khoảng 5 lần và nhanh hơn khoảng 7 lần so với hiện tại FastSAM . Để biết thêm thông tin chi tiết, vui lòng truy cập trang dự án MobileSAM .
Kiểm tra MobileSAM TRONG Ultralytics
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 Point và Box.
Tải xuống mô hình
Bạn có thể tải xuống mô hình tại đây .
Điểm nhắc nhở
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]])
Hộp nhắc nhở
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 về cách sử dụng, vui lòng xem SAM trang.
Trích dẫn và Lời cảm ơn
Nếu bạn tìm thấy MobileSAM hữu ích cho công việc nghiên cứu hoặc phát triển của bạn, vui lòng cân nhắc trích dẫn bài báo của chúng tôi:
CÂU HỎI THƯỜNG GẶP
Là gì MobileSAM và nó khác với bản gốc như thế nào SAM người 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 .
Tôi có thể kiểm tra bằng cách nào? MobileSAM sử dụng Ultralytics ?
Kiểm tra MobileSAM TRONG Ultralytics có thể 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 và Box để dự đoán các phân đoạn. Sau đây là một ví dụ sử dụng lời nhắc Point:
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 phần Kiểm tra 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 khoảng 7 lần, phù hợp với môi trường có tài nguyên tính toán 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, MobileSAM Các mô hình của 's, chẳng hạn như Inference , được tối ưu hóa cho hiệu suất di động.
Thế nào là MobileSAM đã được đào tạo và mã đào tạo có sẵn không?
MobileSAM đã được đào tạo trên một GPU với tập dữ liệu 100k, chiếm 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 kho lưu trữ GitHub MobileSAM . Kho lưu trữ này bao gồm các trọng số được đào tạo trước và thông tin chi tiết về triển khai cho nhiều ứ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 vào các ứng dụng di động sử dụng AI 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 chi tiết về các trường hợp sử dụng và so sánh hiệu suất, hãy xem phần Chuyển đổi từ SAM sang MobileSAM .