
Mobil Her Şeyi Segmentle (MobileSAM)#
MobileSAM, mobil ve uç cihazlar için özel olarak tasarlanmış kompakt ve verimli bir görüntü segmentasyonu modelidir. Meta'nın Her Şeyi Segmentle Modeli'nin (SAM) gücünü sınırlı hesaplama kaynaklarına sahip ortamlara taşımak için tasarlanan MobileSAM, orijinal SAM işlem hattıyla uyumluluğunu korurken neredeyse anında segmentasyon sağlar. İster gerçek zamanlı uygulamalar geliştiriyor ister hafif dağıtımlar gerçekleştiriyor ol, MobileSAM önceki modellerinin boyut ve hız gereksinimlerinin çok küçük bir kısmıyla etkileyici segmentasyon sonuçları sunar.
Watch: How to Run Inference with MobileSAM using Ultralytics | Step-by-Step Guide 🎉
MobileSAM, Grounding-SAM, AnyLabeling ve Segment Anything in 3D dahil olmak üzere çeşitli projelerde kullanılmıştır.
MobileSAM, tek bir GPU üzerinde 100 bin görüntülük bir veri kümesi (orijinal görüntülerin %1'i) kullanılarak bir günden kısa sürede eğitildi.
Kullanılabilir Modeller, Desteklenen Görevler ve Çalışma Modları#
Aşağıdaki tablo, kullanılabilir MobileSAM modelini, önceden eğitilmiş ağırlıklarını, desteklenen görevleri ve Çıkarım, Doğrulama, Eğitim ve Dışa Aktarma gibi farklı çalışma modlarıyla uyumluluğunu gösterir. Desteklenen modlar ✅, desteklenmeyen modlar ise ❌ ile belirtilmiştir.
| Model Türü | Önceden Eğitilmiş Ağırlıklar | Desteklenen Görevler | Eğitim | Doğrulama | Çıkarım | Dışa aktarma |
|---|---|---|---|---|---|---|
| MobileSAM | mobile_sam.pt | Örnek Segmentasyonu | ❌ | ❌ | ✅ | ❌ |
MobileSAM ve YOLO Karşılaştırması#
Aşağıdaki karşılaştırma, Meta'nın SAM varyantları, MobileSAM ve YOLO26n-seg dahil Ultralytics segmentasyon modelleri arasındaki farkları vurgular:
| Model | Boyut (MB) | Parametreler (M) | Hız (CPU) (ms/im) |
|---|---|---|---|
| Meta SAM-b | 375 | 93.7 | 41703 |
| Meta SAM2-b | 162 | 80.8 | 28867 |
| Meta SAM2-t | 78.1 | 38.9 | 23430 |
| MobileSAM | 40.7 | 10.1 | 23802 |
| YOLOv8 omurgası ile FastSAM-s | 23.9 | 11.8 | 58.0 |
| Ultralytics YOLOv8n-seg | 7,1 (11,0 kat daha küçük) | 3,4 (11,4 kat daha az) | 24,8 (945 kat daha hızlı) |
| Ultralytics YOLO11n-seg | 6.2 (12.6 kat daha küçük) | 2,9 (13,4 kat daha az) | 24.3 (964 kat daha hızlı) |
| Ultralytics YOLO26n-seg | 6,7 (11,7 kat daha küçük) | 2.7 (14.4 kat daha az) | 25,2 (930 kat daha hızlı) |
Bu karşılaştırma, SAM varyantları ile YOLO segmentasyon modelleri arasındaki model boyutu ve hız farklarının oldukça büyük olduğunu gösterir. SAM modelleri benzersiz otomatik segmentasyon yetenekleri sunarken, YOLO modelleri —özellikle YOLOv8n-seg, YOLO11n-seg ve YOLO26n-seg— önemli ölçüde daha küçük, daha hızlı ve hesaplama açısından daha verimlidir.
SAM hızları PyTorch, YOLO hızları ise ONNX Runtime kullanılarak ölçülmüştür. Testler, torch==2.10.0, ultralytics==8.4.31 ve onnxruntime==1.24.4 kullanılarak 16 GB RAM'e sahip 2025 Apple M4 Air üzerinde gerçekleştirilmiştir. Bu sonuçları yeniden oluşturmak için:
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 (ONNX)
for file_name in ["yolov8n-seg.pt", "yolo11n-seg.pt", "yolo26n-seg.pt"]:
model = YOLO(file_name)
model.info()
onnx_path = model.export(format="onnx", dynamic=True, nms=False) # YOLO26 NMS-free head; no-op for YOLOv8/YOLO11
model = YOLO(onnx_path)
model(ASSETS)SAM'den MobileSAM'e Geçiş#
MobileSAM, ön işleme, son işleme ve tüm arayüzler dahil olmak üzere orijinal SAM ile aynı işlem hattını korur. Bu, iş akışında yalnızca minimum değişikliklerle SAM'den MobileSAM'e geçebileceğin anlamına gelir.
Temel fark görüntü kodlayıcıdır: MobileSAM, orijinal ViT-H kodlayıcıyı (637 milyon parametre) çok daha küçük bir Tiny-ViT kodlayıcıyla (5 milyon parametre) değiştirir. MobileSAM, tek bir GPU üzerinde bir görüntüyü yaklaşık 12 ms'de işler (kodlayıcı için 8 ms, maske kod çözücü için 4 ms).
ViT Tabanlı Görüntü Kodlayıcı Karşılaştırması#
| Görüntü Kodlayıcı | Orijinal SAM | MobileSAM |
|---|---|---|
| Parametreler | 637M | 5M |
| Hız | 452ms | 8ms |
İstem Kılavuzlu Maske Kod Çözücü#
| Maske Kod Çözücü | Orijinal SAM | MobileSAM |
|---|---|---|
| Parametreler | 3.876M | 3.876M |
| Hız | 4ms | 4ms |
Tüm İşlem Hattı Karşılaştırması#
| Tüm İşlem Hattı (Kodlayıcı+Kod Çözücü) | Orijinal SAM | MobileSAM |
|---|---|---|
| Parametreler | 641M | 9.66M |
| Hız | 456ms | 12ms |
MobileSAM ve orijinal SAM'in performansı, hem nokta hem de kutu istemleri kullanılarak aşağıda gösterilmiştir.


MobileSAM, FastSAM'den yaklaşık 7 kat daha küçük ve 5 kat daha hızlıdır. Daha fazla bilgi için MobileSAM proje sayfasını ziyaret et.
Ultralytics'te MobileSAM'i Test Etme#
Tıpkı orijinal SAM gibi Ultralytics, hem Nokta hem de Kutu istemlerini destekleyen MobileSAM'i test etmek için basit bir arayüz sağlar.
Modeli İndirme#
MobileSAM'in önceden eğitilmiş ağırlıklarını Ultralytics varlıklarından indir.
Nokta İstemi#
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]])Kutu İstemi#
from ultralytics import SAM
# Load the model
model = SAM("mobile_sam.pt")
# Predict a segment based on a single box prompt
model.predict("ultralytics/assets/zidane.jpg", bboxes=[439, 437, 524, 709])
# Predict multiple segments based on multiple box prompts
model.predict("ultralytics/assets/zidane.jpg", bboxes=[[439, 437, 524, 709], [114, 196, 313, 708]])Hem MobileSAM hem de SAM aynı API'yi paylaşır. Daha fazla kullanım ayrıntısı için SAM belgelerine bak.
Algılama Modeli Kullanarak Segmentasyon Veri Kümelerini Otomatik Olarak Oluşturma#
Ultralytics çerçevesiyle veri kümeni otomatik olarak açıklamak için aşağıda gösterildiği gibi auto_annotate işlevini kullan:
from ultralytics.data.annotator import auto_annotate
auto_annotate(data="path/to/images", det_model="yolo26x.pt", sam_model="mobile_sam.pt")| Bağımsız değişken | Tür | Varsayılan | Açıklama |
|---|---|---|---|
data | str | gerekli | Açıklama veya segmentasyon için hedef görüntüleri içeren dizinin yolu. |
det_model | str | 'yolo26x.pt' | İlk nesne algılama için YOLO algılama modeli yolu. |
sam_model | str | 'sam_b.pt' | Segmentasyon için SAM modelinin yolu (SAM, SAM 2, MobileSAM ve SAM 3 ağırlıklarını destekler). |
device | str | '' | Hesaplama cihazı (ör. 'cuda:0', 'cpu' veya otomatik cihaz algılama için ''). |
conf | float | 0.25 | Zayıf algılamaları filtrelemek için YOLO algılama güven eşiği. |
iou | float | 0.45 | Örtüşen kutuları filtrelemek için Maksimum Olmayan Bastırma işlemine yönelik IoU eşiği. |
imgsz | int | 640 | Görüntüleri yeniden boyutlandırmak için giriş boyutu (32'nin katı olmalıdır). |
max_det | int | 300 | Bellek verimliliği için görüntü başına maksimum algılama sayısı. |
classes | list[int] | None | Algılanacak sınıf dizinlerinin listesi (ör. kişi ve bisiklet için [0, 1]). |
output_dir | str | None | Açıklamalar için kayıt dizini (varsayılan: <data>_auto_annotate_labels ile aynı üst dizindeki kardeş dizin). |
Atıflar ve Teşekkürler#
MobileSAM araştırmanda veya geliştirme çalışmalarında faydalı olduysa aşağıdaki makaleye atıf yapmayı düşün:
@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}
}ArXiv'deki MobileSAM makalesinin tamamını oku.
SSS#
MobileSAM, mobil ve uç uygulamalar için optimize edilmiş hafif ve hızlı bir görüntü segmentasyonu modelidir. Orijinal SAM ile aynı işlem hattını korur, ancak büyük ViT-H kodlayıcıyı (637M parametre) kompakt bir Tiny-ViT kodlayıcıyla (5M parametre) değiştirir. Bu, tam MobileSAM işlem hattını orijinal SAM'den yaklaşık 66 kat daha küçük (9,66M'ye karşı 641M parametre) ve yaklaşık 38 kat daha hızlı hale getirerek, SAM'in 456 ms'sine karşılık görüntü başına yaklaşık 12 ms'de çalışmasını sağlar. MobileSAM'in uygulamasını MobileSAM GitHub deposunda daha fazla keşfet.
Ultralytics'te MobileSAM'i test etmek oldukça kolaydır. Segmentleri tahmin etmek için Nokta ve Kutu istemlerini kullanabilirsin. Örneğin, Nokta istemi kullanarak:
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])Daha fazla bilgi için Ultralytics'te MobileSAM'i Test Etme bölümüne bak.
MobileSAM, hafif tasarımı ve hızlı çıkarım hızı nedeniyle mobil ve uç uygulamalar için idealdir. Orijinal SAM ile karşılaştırıldığında MobileSAM, yaklaşık 66 kat daha az parametreye sahiptir ve yaklaşık 38 kat daha hızlı çalışır; bu da onu sınırlı hesaplama kaynaklarına sahip cihazlarda gerçek zamanlı segmentasyon için uygun hale getirir. Bu verimlilik, mobil cihazların önemli bir gecikme yaşamadan gerçek zamanlı görüntü segmentasyonu gerçekleştirmesini sağlar. Ek olarak MobileSAM, mobil performans için optimize edilmiş Çıkarım modunu destekler.
MobileSAM, tek bir GPU üzerinde 100 bin görüntülük bir veri kümesiyle (orijinal SA-1B görüntülerin %1'i) bir günden kısa sürede eğitilmiş ve SAM'in ViT-H görüntü kodlayıcısını bir Tiny-ViT kodlayıcısına damıtmıştır. Önceden eğitilmiş ağırlıklar ve uygulama detayları MobileSAM GitHub deposundan edinilebilir.
MobileSAM, mobil ve uç ortamlarda hızlı ve verimli görüntü segmentasyonu için tasarlanmıştır. Başlıca kullanım alanları şunlardır:
- Mobil uygulamalar için gerçek zamanlı nesne algılama ve segmentasyon
- Sınırlı hesaplama kaynaklarına sahip cihazlarda düşük gecikmeli görüntü işleme
- Artırılmış gerçeklik (AR), analitik ve daha fazlası için yapay zekâ destekli mobil uygulamalara entegrasyon
Kullanım alanları ve performans hakkında daha fazla bilgi için SAM'den MobileSAM'e Geçiş bölümüne ve MobileSAM uygulamaları hakkındaki Ultralytics bloguna bak.