Phân khúc di động Bất cứ thứ gì ( MobileSAM )
MobileSAM là một mô hình phân đoạn hình ảnh nhỏ gọn, hiệu quả được xây dựng có mục đích cho các thiết bị di động và thiết bị biên. Được thiết kế để mang sức mạnh của Mô hình phân đoạn bất kỳ ( SAM ) của Meta đến các môi trường có khả năng tính toán hạn chế, MobileSAM cung cấp phân đoạn gần như ngay lập tức trong khi vẫn duy trì khả năng tương thích với bản gốc SAM đường ống. Cho dù bạn đang phát triển các ứng dụng thời gian thực hay triển khai nhẹ, MobileSAM cung cấp kết quả phân đoạn ấn tượng với yêu cầu về kích thước và tốc độ chỉ bằng một phần nhỏ so với thế hệ trước.
Đồ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 áp dụng 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 sử dụng bộ dữ liệu hình ảnh 100k (1% hình ảnh gốc) trong vòng chưa đầy một ngày. Mã đào tạo sẽ được phát hành 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 dưới đây phác thảo các khả năng có sẵn MobileSAM mô hình, trọng số đượ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 . Các chế độ được hỗ trợ được biểu thị bằng ✅ và các chế độ không được hỗ trợ bằng ❌.
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 | ✅ | ❌ | ❌ | ❌ |
MobileSAM So sánh với YOLO
So sánh sau đây làm nổi bật sự khác biệt giữa Meta SAM các biến thể, MobileSAM , Và Ultralytics 'các mô hình phân đoạn nhỏ nhất, bao gồm YOLO11n-seg :
Người mẫu | Kích cỡ (MB) |
Các tham số (Nam) |
Tốc độ ( CPU ) (cô/anh) |
---|---|---|---|
Siêu dữ liệu SAM -b | 375 | 93.7 | 49401 |
Siêu dữ liệu SAM2 -b | 162 | 80.8 | 31901 |
Siêu dữ liệu SAM2 -t | 78.1 | 38.9 | 25997 |
MobileSAM | 40.7 | 10.1 | 25381 |
FastSAM -s với YOLOv8 xương sống | 23.7 | 11.8 | 55.9 |
Ultralytics YOLOv8n -phân đoạn | 6,7 (nhỏ hơn 11,7 lần) | 3.4 (giảm 11,4 lần) | 24,5 (nhanh hơn 1061 lần) |
Ultralytics YOLO11n-phân đoạn | 5.9 (nhỏ hơn 13,2 lần) | 2,9 (giảm 13,4 lần) | 30.1 (nhanh hơn 864 lần) |
So sánh này chứng minh sự khác biệt đáng kể về kích thước và tốc độ mô hình giữa SAM các biến thể và YOLO mô hình phân đoạn. Trong khi SAM các mô hình cung cấp khả năng phân đoạn tự động độc đáo, YOLO mô hình—đặc biệt YOLOv8n -seg và YOLO11n-seg—nhỏ hơn đáng kể, nhanh hơn và hiệu quả tính toán hơn.
Các thử nghiệm đã được tiến hành trên Apple M4 Pro 2025 với RAM 24GB bằng cách sử dụng torch==2.6.0
Và ultralytics==8.3.90
. Để tái tạo những kết quả này:
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 YOLO models
for file_name in ["yolov8n-seg.pt", "yolo11n-seg.pt"]:
model = YOLO(file_name)
model.info()
model(ASSETS)
Thích nghi từ SAM ĐẾN MobileSAM
MobileSAM giữ nguyên cùng một đường ống như SAM gốc, bao gồm tiền xử lý, hậu xử lý và tất cả các giao diện. Điều này có nghĩa là bạn có thể chuyển đổi từ SAM ĐẾN MobileSAM với những thay đổi tối thiểu trong quy trình làm việc của bạn.
Sự khác biệt chính là bộ mã hóa hình ảnh: MobileSAM thay thế bộ mã hóa ViT-H ban đầu (tham số 632M) bằng bộ mã hóa Tiny-ViT nhỏ hơn nhiều (tham số 5M). Trên một GPU , MobileSAM xử lý hình ảnh trong khoảng 12ms (8ms cho bộ mã hóa, 4ms cho bộ giải mã mặt nạ).
So sánh 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 |
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 |
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 minh họa bên dưới bằng cả dấu chấm và dấu hộp.
MobileSAM nhỏ hơn khoảng 5 lần và nhanh hơn khoảng 7 lần FastSAM . Để biết thêm chi tiết, hãy truy cập trang dự án MobileSAM .
Kiểm tra MobileSAM TRONG Ultralytics
Giống như SAM gốc, Ultralytics cung cấp một giao diện đơn giản để thử nghiệm MobileSAM , hỗ trợ cả lời nhắc Point và Box.
Tải xuống mô hình
Tải xuống MobileSAM trọng số được đào tạo trước từ các tài sản Ultralytics .
Đ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 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]])
Cả hai MobileSAM
Và SAM
chia sẻ cùng một API. Để biết thêm chi tiết về cách sử dụng, hãy xem SAM tài liệu.
Tự động xây dựng bộ dữ liệu phân đoạn bằng cách sử dụng mô hình phát hiện
Để tự động chú thích tập dữ liệu của bạn với Ultralytics khung, sử dụng auto_annotate
chức năng như hiển thị bên dưới:
Ví dụ
from ultralytics.data.annotator import auto_annotate
auto_annotate(data="path/to/images", det_model="yolo11x.pt", sam_model="mobile_sam.pt")
Lý lẽ | Kiểu | Mặc định | Sự miêu tả |
---|---|---|---|
data |
str |
yêu cầu | Đường dẫn đến thư mục chứa hình ảnh mục tiêu để chú thích hoặc phân đoạn. |
det_model |
str |
'yolo11x.pt' |
YOLO đường dẫn mô hình phát hiện để phát hiện đối tượng ban đầu. |
sam_model |
str |
'sam_b.pt' |
SAM đường dẫn mô hình cho phân đoạn (hỗ trợ SAM , SAM2 các biến thể và mô hình mobile_sam). |
device |
str |
'' |
Thiết bị tính toán (ví dụ, ' cuda :0', ' cpu ' hoặc '' để tự động phát hiện thiết bị). |
conf |
float |
0.25 |
YOLO ngưỡng tin cậy phát hiện để lọc các phát hiện yếu. |
iou |
float |
0.45 |
Ngưỡng IoU cho việc loại bỏ không tối đa để lọc các hộp chồng chéo. |
imgsz |
int |
640 |
Kích thước đầu vào để thay đổi kích thước hình ảnh (phải là bội số của 32). |
max_det |
int |
300 |
Số lượng phát hiện tối đa trên mỗi hình ảnh để tăng hiệu quả bộ nhớ. |
classes |
list[int] |
None |
Danh sách các chỉ số lớp để phát hiện (ví dụ: [0, 1] dành cho người và xe đạp). |
output_dir |
str |
None |
Lưu thư mục để chú thích (mặc định là './labels' theo đường dẫn dữ liệu). |
Trích dẫn và Lời cảm ơn
Nếu như MobileSAM hữu ích cho 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 sau:
@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 toàn bộ bài báo MobileSAM trên arXiv .
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 tối ưu hóa cho các ứng dụng di động và cạnh. Nó duy trì cùng một đường ống như bản gốc SAM nhưng thay thế bộ mã hóa ViT-H lớn (632M tham số) bằng bộ mã hóa Tiny-ViT nhỏ gọn (5M tham số). Điều 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 , hoạt động ở mức khoảng 12ms cho mỗi hình ảnh so với SAM 's 456ms. Khám phá thêm về MobileSAM việc triển khai trên kho lưu trữ GitHub MobileSAM .
Tôi có thể kiểm tra như thế nào MobileSAM Sử dụng Ultralytics ?
Kiểm tra MobileSAM TRONG Ultralytics rất đơ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. 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])
Để biết thêm chi tiết, hãy xem phần Kiểm tra MobileSAM trong Ultralytics .
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 và biên do thiết kế 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, làm cho nó phù hợp để phân đoạn thời gian thực trên các thiết bị có tài nguyên tính toán hạn chế. Hiệu quả của nó cho phép các thiết bị di động thực hiện phân đoạn hình ảnh thời gian thực mà không có độ trễ đáng kể. Ngoài ra, MobileSAM hỗ trợ chế độ suy luận đượ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 hình ảnh 100k (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 phát hành trong tương lai, nhưng hiện tại bạn có thể truy cập vào các trọng số được đào tạo trước và thông tin chi tiết về triển khai từ kho lưu trữ GitHub MobileSAM .
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, hiệu quả trong môi trường di động và biên. 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 ứng dụng di động
- Xử lý hình ảnh độ trễ thấp trên các thiết bị có khả năng tính toán hạn chế
- Tích hợp vào các ứng dụng di động hỗ trợ AI cho thực tế tăng cường (AR), phân tích và nhiều hơn nữa
Để biết thêm chi tiết về các trường hợp sử dụng và hiệu suất, hãy xem phần Thích ứng từ SAM sang MobileSAM và blog Ultralytics về các ứng dụng MobileSAM .