Bỏ qua nội dung

MobileSAM Biểu trưng

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

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

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 MobileSAMSAM 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 MobileSAMblog Ultralytics về các ứng dụng MobileSAM .



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

Bình luận