Bỏ qua nội dung

MobileSAM Biểu trưng

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

Hình ảnh với Điểm làm Lời nhắc

Hình ảnh với hộp như 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 MobileSAMSAM 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:

@article{mobile_sam,
  title={Faster Segment Anything: Towards Lightweight SAM for Mobile Applications},
  author={Zhang, Chaoning and Han, Dongshen and Qiao, Yu and Kim, Jung Uk and Bae, Sung Ho and Lee, Seungkyu and Hong, Choong Seon},
  journal={arXiv preprint arXiv:2306.14289},
  year={2023}
}

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 .

📅 Được tạo ra cách đây 1 năm ✏️ Đã cập nhật cách đây 1 tháng

Bình luận