Ultralytics YOLO27:
Get Started

Hafif görüntü segmentasyonu modeli MobileSAM logosu

Mobil Her Şeyi Segmentleme (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 Segmentleme Modelinin (SAM) gücünü hesaplama kaynakları sınırlı ortamlara taşımak üzere tasarlanan MobileSAM, orijinal SAM işlem hattıyla uyumluluğunu korurken neredeyse anında segmentasyon sağlar. İster gerçek zamanlı uygulamalar ister hafif dağıtımlar geliştiriyor ol, MobileSAM öncüllerine kıyasla çok daha düşük boyut ve hız gereksinimleriyle etkileyici segmentasyon sonuçları sunar.



İzle: Ultralytics Kullanarak MobileSAM ile Çıkarım Nasıl Çalıştırılır | Adım Adım Kılavuz 🎉

MobileSAM; Grounding-SAM, AnyLabeling ve Segment Anything in 3D dâhil çeşitli projelerde kullanılmıştır.

MobileSAM, tek bir GPU üzerinde 100 bin görüntülük bir veri kümesiyle (orijinal görüntülerin %1'i) bir günden kısa sürede eğitildi.

Kullanılabilir Modeller, Desteklenen Görevler ve Çalışma Modları#

Aşağıdaki tabloda kullanılabilir MobileSAM modeli, önceden eğitilmiş ağırlıkları, desteklenen görevleri ve Çıkarım, Doğrulama, Eğitim ve Dışa Aktarma gibi farklı çalışma modlarıyla uyumluluğu özetlenir. Desteklenen modlar ✅, desteklenmeyen modlar ise ❌ ile belirtilir.

Model TürüÖnceden Eğitilmiş AğırlıklarDesteklenen GörevlerEğitimDoğrulamaÇıkarımDışa aktar
MobileSAMmobile_sam.ptÖrnek Segmentasyonu❌❌✅❌

MobileSAM ile YOLO'nun Karşılaştırması#

Aşağıdaki karşılaştırmada Meta'nın SAM çeşitleri, MobileSAM ve YOLO26n-seg dâhil Ultralytics segmentasyon modelleri arasındaki farklar vurgulanmaktadır:

ModelBoyut
(MB)
Parametreler
(M)
Hız (CPU)
(ms/görüntü)
Meta SAM-b37593.741703
Meta SAM2-b16280.828867
Meta SAM2-t78.138.923430
MobileSAM40.710.123802
YOLOv8 omurgalı 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 ne kadar büyük olduğunu gösteriyor. SAM modelleri kendilerine özgü otomatik segmentasyon özellikleri sunarken YOLO modelleri —özellikle YOLOv8n-seg, YOLO11n-seg ve YOLO26n-seg— çok daha küçük, hızlı ve hesaplama açısından verimlidir.

SAM hızları PyTorch ile, YOLO hızları ise ONNX Runtime ile ölçülmüştür. Testler, 16 GB RAM'e sahip 2025 model Apple M4 Air üzerinde torch==2.10.0, ultralytics==8.4.31 ve onnxruntime==1.24.4 kullanılarak gerçekleştirilmiştir. Bu sonuçları yeniden üretmek için:

Örnek
from ultralytics import ASSETS, SAM, YOLO, FastSAM

# SAM2-t, SAM2-b, SAM-b, MobileSAM profillerini çıkar
for file in ["sam_b.pt", "sam2_b.pt", "sam2_t.pt", "mobile_sam.pt"]:
    model = SAM(file)
    model.info()
    model(ASSETS)

# FastSAM-s profili oluştur
model = FastSAM("FastSAM-s.pt")
model.info()
model(ASSETS)

# YOLO modellerinin profilini çıkar (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 içermeyen başlık; YOLOv8/YOLO11 için işlem yapmaz
    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. Böylece iş akışında en az değişiklikle SAM'den MobileSAM'e geçebilirsin.

Temel fark görüntü kodlayıcısıdır: MobileSAM, orijinal ViT-H kodlayıcının (637M parametre) yerine çok daha küçük bir Tiny-ViT kodlayıcı (5M parametre) kullanır. Tek bir GPU'da MobileSAM, bir görüntüyü yaklaşık 12 ms'de işler (kodlayıcı 8 ms, maske kod çözücü 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ının 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ı aşağıda hem nokta hem de kutu istemleri kullanılarak gösterilmiştir.

İstem olarak Nokta Kullanılan Görüntü

İstem olarak Kutu Kullanılan 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#

Orijinal SAM gibi Ultralytics de MobileSAM'i test etmek için Nokta ve Kutu istemlerini destekleyen basit bir arayüz sunar.

Modeli İndirme#

MobileSAM önceden eğitilmiş ağırlıklarını Ultralytics varlıklarından indir.

Nokta İstemi#

Örnek
from ultralytics import SAM

# Modeli yükle
model = SAM("mobile_sam.pt")

# Tek bir nokta istemine göre bir segment tahmin et
model.predict("ultralytics/assets/zidane.jpg", points=[900, 370], labels=[1])

# Birden fazla nokta istemine göre birden fazla segment tahmin et
model.predict("ultralytics/assets/zidane.jpg", points=[[400, 370], [900, 370]], labels=[1, 1])

# Her nesne için birden fazla nokta istemine göre bir segment tahmin et
model.predict("ultralytics/assets/zidane.jpg", points=[[[400, 370], [900, 370]]], labels=[[1, 1]])

# Hem pozitif hem de negatif istemler kullanarak bir segment tahmin et.
model.predict("ultralytics/assets/zidane.jpg", points=[[[400, 370], [900, 370]]], labels=[[1, 0]])

Kutu İstemi#

Örnek
from ultralytics import SAM

# Modeli yükle
model = SAM("mobile_sam.pt")

# Tek bir kutu istemine göre bir segment tahmin et
model.predict("ultralytics/assets/zidane.jpg", bboxes=[439, 437, 524, 709])

# Birden fazla kutu istemine göre birden fazla segment tahmin et
model.predict("ultralytics/assets/zidane.jpg", bboxes=[[439, 437, 524, 709], [114, 196, 313, 708]])

Hem MobileSAM hem de SAM aynı API'yi kullanır. Kullanım hakkında daha fazla bilgi için SAM belgelerine bak.

Bir Algılama Modeli Kullanarak Segmentasyon Veri Kümelerini Otomatik Olarak Oluşturma#

Ultralytics çerçevesiyle veri kümeni otomatik olarak etiketlemek 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
datastrgerekliEtiketleme veya bölümleme için hedef görüntüleri içeren dizinin yolu.
det_modelstr'yolo26x.pt'İlk nesne algılama için YOLO algılama modelinin yolu.
sam_modelstr'sam_b.pt'Bölümleme için SAM modelinin yolu (SAM, SAM 2, MobileSAM ve SAM 3 ağırlıklarını destekler).
devicestr''Hesaplama aygıtı (ör. 'cuda:0', 'cpu' veya aygıtın otomatik algılanması için '').
conffloat0.25Zayıf algılamaları filtrelemek için YOLO algılama güven eşiği.
ioufloat0.45Çakışan kutuları filtrelemek için Maksimum Olmayan Bastırma IoU eşiği.
imgszint640Görüntüleri yeniden boyutlandırmak için giriş boyutu (gerekirse 32'nin bir üst katına yuvarlanır).
max_detint300Bellek verimliliği için görüntü başına maksimum algılama sayısı.
classeslist[int]NoneAlgılanacak sınıf indekslerinin listesi (ör. kişi ve bisiklet için [0, 1]).
output_dirstrNoneEtiketler için kayıt dizini (varsayılan: kardeş dizin <data>_auto_annotate_labels).

Atıflar ve Teşekkürler#

MobileSAM araştırmana veya geliştirme çalışmalarına katkı sağlıyorsa aşağıdaki makaleye atıf yapmanı öneririz:

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.

Sık Sorulan Sorular#

  • MobileSAM, mobil ve uç bilişim 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ının (637M parametre) yerine kompakt bir Tiny-ViT kodlayıcı (5M parametre) kullanır. Bu sayede MobileSAM'in tüm işlem hattı orijinal SAM'den yaklaşık 66 kat daha küçük olur (9.66M'ye karşı 641M parametre) ve yaklaşık 38 kat daha hızlı çalışır; görüntü başına yaklaşık 12 ms sürerken SAM 456 ms sürer. MobileSAM'in uygulaması hakkında daha fazla bilgi için MobileSAM GitHub deposuna göz at.

  • Ultralytics'te MobileSAM'i test etmek kolaydır. Segment tahmini yapmak için Nokta ve Kutu istemlerini kullanabilirsin. Örneğin, Nokta istemi kullanarak:

    from ultralytics import SAM
    
    # Modeli yükle
    model = SAM("mobile_sam.pt")
    
    # Bir nokta istemine göre bir segment tahmin et
    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ı sayesinde mobil ve uç bilişim uygulamaları için idealdir. Orijinal SAM ile karşılaştırıldığında MobileSAM'in parametre sayısı yaklaşık 66 kat daha azdır ve yaklaşık 38 kat daha hızlı çalışır; bu özellikleri, hesaplama kaynakları sınırlı cihazlarda gerçek zamanlı segmentasyon için uygun olmasını sağlar. Verimliliği sayesinde mobil cihazlar, belirgin bir gecikme olmadan gerçek zamanlı görüntü segmentasyonu gerçekleştirebilir. Ayrıca MobileSAM, mobil performans için optimize edilmiş Çıkarım modunu destekler.

  • MobileSAM, 100 bin görüntüden oluşan bir veri kümesiyle (orijinal SA-1B görüntülerinin %1'i) tek bir GPU'da bir günden kısa sürede eğitildi ve SAM'in ViT-H görüntü kodlayıcısı Tiny-ViT kodlayıcıya damıtıldı. Önceden eğitilmiş ağırlıklara ve uygulama ayrıntılarına MobileSAM GitHub deposundan ulaşabilirsin.

  • MobileSAM, mobil ve uç bilişim ortamlarında 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
    • Hesaplama kapasitesi sınırlı cihazlarda düşük gecikmeli görüntü işleme
    • Artırılmış gerçeklik (AR), analiz 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 Segment Anything uygulamaları hakkındaki Ultralytics blog yazısına bak.

Yorumlar