Ultralytics YOLO27:

MobileSAM hafif görüntü segmentasyonu modeli logosu

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ıklarDesteklenen GörevlerEğitimDoğrulamaÇıkarımDışa aktarma
MobileSAMmobile_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:

ModelBoyut
(MB)
Parametreler
(M)
Hız (CPU)
(ms/im)
Meta SAM-b37593.741703
Meta SAM2-b16280.828867
Meta SAM2-t78.138.923430
MobileSAM40.710.123802
YOLOv8 omurgası ile FastSAM-s23.911.858.0
Ultralytics YOLOv8n-seg7,1 (11,0 kat daha küçük)3,4 (11,4 kat daha az)24,8 (945 kat daha hızlı)
Ultralytics YOLO11n-seg6.2 (12.6 kat daha küçük)2,9 (13,4 kat daha az)24.3 (964 kat daha hızlı)
Ultralytics YOLO26n-seg6,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:

Örnek
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 SAMMobileSAM
Parametreler637M5M
Hız452ms8ms

İstem Kılavuzlu Maske Kod Çözücü#

Maske Kod ÇözücüOrijinal SAMMobileSAM
Parametreler3.876M3.876M
Hız4ms4ms

Tüm İşlem Hattı Karşılaştırması#

Tüm İşlem Hattı (Kodlayıcı+Kod Çözücü)Orijinal SAMMobileSAM
Parametreler641M9.66M
Hız456ms12ms

MobileSAM ve orijinal SAM'in performansı, hem nokta hem de kutu istemleri kullanılarak aşağıda gösterilmiştir.

İstem olarak Nokta içeren görüntü

İstem olarak Kutu içeren görüntü

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#

Örnek
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#

Örnek
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:

Örnek
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şkenTürVarsayılanAçıklama
datastrgerekliAçıklama veya segmentasyon için hedef görüntüleri içeren dizinin yolu.
det_modelstr'yolo26x.pt'İlk nesne algılama için YOLO algılama modeli yolu.
sam_modelstr'sam_b.pt'Segmentasyon için SAM modelinin yolu (SAM, SAM 2, MobileSAM ve SAM 3 ağırlıklarını destekler).
devicestr''Hesaplama cihazı (ör. 'cuda:0', 'cpu' veya otomatik cihaz algılama için '').
conffloat0.25Zayıf algılamaları filtrelemek için YOLO algılama güven eşiği.
ioufloat0.45Örtüşen kutuları filtrelemek için Maksimum Olmayan Bastırma işlemine yönelik IoU eşiği.
imgszint640Görüntüleri yeniden boyutlandırmak için giriş boyutu (32'nin katı olmalıdır).
max_detint300Bellek verimliliği için görüntü başına maksimum algılama sayısı.
classeslist[int]NoneAlgılanacak sınıf dizinlerinin listesi (ör. kişi ve bisiklet için [0, 1]).
output_dirstrNoneAçı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:

Alıntı
@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.

Yorumlar