YOLO Vision 2026:

SAM 2: Segment Anything Model 2#

SAM Evrimi

SAM 2, video segmentasyon yetenekleriyle orijinal SAM temel alınarak geliştirilmiştir. Metin ve görsel örnek istemleriyle İsteme Dayalı Konsept Segmentasyonu (Promptable Concept Segmentation) için SAM 3 sayfasına göz at.

Inference with Segment Anything 2 In Colab

Meta'nın Segment Anything Model (SAM) modelinin halefi olan SAM 2; hem görsellerde hem de videolarda kapsamlı nesne segmentasyonu için tasarlanmış son teknoloji ürünü bir araçtır. Gerçek zamanlı işlemeyi ve sıfır vuruşlu (zero-shot) genellemeyi destekleyen birleşik, istem tabanlı bir model mimarisi aracılığıyla karmaşık görsel verileri işlemekte başarılıdır.

Ultralytics Platform üzerinde SAM 2

SAM 2.1 modelleri, Ultralytics Platform üzerindeki akıllı etiketleme özelliğine güç vererek hızlı veri kümesi etiketleme için tıklama tabanlı segmentasyonu mümkün kılar. Ayrıntılar için etiketleme kılavuzuna göz at.

SAM 2 Örnek Sonuçları

Temel Özellikler#



Watch: How to Run Inference with Meta's SAM2 using Ultralytics | Step-by-Step Guide 🎉

Birleşik Model Mimarisi#

SAM 2, görsel ve video segmentasyon yeteneklerini tek bir modelde birleştirir. Bu birleştirme, dağıtımı basitleştirir ve farklı medya türlerinde tutarlı performans sağlar. Noktalar, sınırlayıcı kutular veya maskeler gibi çeşitli istem türleri aracılığıyla kullanıcıların ilgi çekici nesneleri belirtmesini sağlayan esnek, istem tabanlı bir arayüzden yararlanır.

Gerçek Zamanlı Performans#

Model, saniyede yaklaşık 44 kare işleyerek gerçek zamanlı çıkarım hızlarına ulaşır. Bu, SAM 2'yi video düzenleme ve artırılmış gerçeklik gibi anında geri bildirim gerektiren uygulamalar için uygun hale getirir.

Sıfırdan Genelleme#

SAM 2, daha önce hiç karşılaşmadığı nesneleri segmentlere ayırarak güçlü bir sıfırdan genelleme yeteneği gösterir. Bu, özellikle önceden tanımlanmış kategorilerin olası tüm nesneleri kapsamayabileceği çeşitli veya gelişen görsel alanlarda çok kullanışlıdır.

Etkileşimli İyileştirme#

Kullanıcılar, ek istemler sağlayarak segmentasyon sonuçlarını yinelemeli olarak iyileştirebilir ve çıktı üzerinde hassas kontrol sağlayabilir. Bu etkileşim, video açıklaması veya tıbbi görüntüleme gibi uygulamalarda sonuçları hassas bir şekilde ayarlamak için esastır.

Görsel Zorlukların Gelişmiş İşlenmesi#

SAM 2, nesne tıkanıklığı ve yeniden ortaya çıkma gibi yaygın video segmentasyon zorluklarını yönetmek için mekanizmalar içerir. Nesnelerin geçici olarak gizlendiği veya sahneden çıkıp tekrar girdiği durumlarda bile sürekliliği sağlayarak kareler arasındaki nesneleri takip etmek için gelişmiş bir bellek mekanizması kullanır.

SAM 2'nin mimarisi ve yetenekleri hakkında daha derinlemesine bilgi edinmek için SAM 2 araştırma makalesini incele.

Performans ve Teknik Ayrıntılar#

SAM 2, çeşitli metriklerde önceki modellerden daha iyi performans göstererek alanda yeni bir standart belirler:

MetrikSAM 2Önceki SOTA
Etkileşimli Video SegmentasyonuEn İyisi-
Gerekli İnsan Etkileşimi3 kat daha azReferans
Görsel Segmentasyonu DoğruluğuİyileştirildiSAM
Çıkarım Hızı6 kat daha hızlıSAM

Model Mimarisi#

Temel Bileşenler#

  • Görsel ve Video Kodlayıcı: Hem görsellerden hem de video karelerinden üst düzey özellikleri çıkarmak için transformer tabanlı bir mimari kullanır. Bu bileşen, her zaman adımındaki görsel içeriği anlamaktan sorumludur.
  • İstem Kodlayıcı: Segmentasyon görevini yönlendirmek için kullanıcı tarafından sağlanan istemleri (noktalar, kutular, maskeler) işler. Bu, SAM 2'nin kullanıcı girdisine uyum sağlamasına ve bir sahnedeki belirli nesneleri hedeflemesine olanak tanır.
  • Bellek Mekanizması: Bir bellek kodlayıcı, bellek bankası ve bellek dikkat modülü içerir. Bu bileşenler, geçmiş karelerden gelen bilgileri toplu olarak depolar ve kullanarak modelin zaman içinde tutarlı bir nesne takibi sürdürmesini sağlar.
  • Maske Kod çözücü: Kodlanmış görsel özelliklerine ve istemlere dayanarak son segmentasyon maskelerini oluşturur. Videoda ayrıca kareler arasında doğru takibi sağlamak için bellek bağlamını kullanır.

SAM 2 Mimari Şeması

Bellek Mekanizması ve Tıkanıklık İşleme#

Bellek mekanizması, SAM 2'nin video verilerindeki zamansal bağımlılıkları ve tıkanıklıkları ele almasını sağlar. Nesneler hareket ettikçe ve etkileşime girdikçe, SAM 2 bunların özelliklerini bir bellek bankasına kaydeder. Bir nesne tıkandığında model, yeniden ortaya çıktığında konumunu ve görünümünü tahmin etmek için bu belleğe güvenebilir. Tıkanıklık başlığı, nesnelerin görünmediği senaryoları özellikle ele alarak bir nesnenin tıkanma olasılığını tahmin eder.

Çoklu Maske Belirsizlik Çözümü#

Belirsizlik durumlarında (örn. çakışan nesneler), SAM 2 birden fazla maske tahmini oluşturabilir. Bu özellik, tek bir maskenin sahnenin nüanslarını yeterince açıklayamayabileceği karmaşık sahneleri doğru bir şekilde temsil etmek için çok önemlidir.

SA-V Veri Kümesi#

SAM 2'nin eğitimi için geliştirilen SA-V veri kümesi, mevcut en büyük ve en çeşitli video segmentasyon veri kümelerinden biridir. Şunları içerir:

  • 51.000+ Video: Geniş bir gerçek dünya senaryosu yelpazesi sunan 47 ülkede çekilmiştir.
  • 600.000+ Maske Açıklaması: Tüm nesneleri ve parçaları kapsayan "masklet" olarak adlandırılan ayrıntılı uzaysal-zamansal maske açıklamaları.
  • Veri Kümesi Ölçeği: Önceki en büyük veri kümelerinden 4,5 kat daha fazla video ve 53 kat daha fazla açıklama içererek benzeri görülmemiş bir çeşitlilik ve karmaşıklık sunar.

Kıyaslamalar#

Video Nesne Segmentasyonu#

SAM 2, büyük video segmentasyon kıyaslamalarında üstün performans göstermiştir:

Veri SetiJ&FJF
DAVIS 201782.579.885.2
YouTube-VOS81.278.983.5

Etkileşimli Segmentasyon#

Etkileşimli segmentasyon görevlerinde SAM 2, önemli ölçüde verimlilik ve doğruluk gösterir:

Veri SetiNoC@90AUC
DAVIS Interactive1.540.872

Kurulum#

SAM 2'yi kurmak için şu komutu kullan. Tüm SAM 2 modelleri ilk kullanımda otomatik olarak indirilecektir.

pip install ultralytics

SAM 2 Nasıl Kullanılır: Görsel ve Video Segmentasyonunda Çok Yönlülük#

Aşağıdaki tabloda mevcut SAM 2 modelleri, ö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 uyumlulukları ayrıntılı olarak açıklanmaktadır.

Model TipiÖnceden Eğitilmiş AğırlıklarDesteklenen GörevlerEğitimDoğrulamaÇıkarımDışa Aktar (Export)
SAM 2 tinysam2_t.ptÖrnek Bölütleme
SAM 2 smallsam2_s.ptÖrnek Bölütleme
SAM 2 basesam2_b.ptÖrnek Bölütleme
SAM 2 largesam2_l.ptÖrnek Bölütleme
SAM 2.1 tinysam2.1_t.ptÖrnek Bölütleme
SAM 2.1 smallsam2.1_s.ptÖrnek Bölütleme
SAM 2.1 basesam2.1_b.ptÖrnek Bölütleme
SAM 2.1 largesam2.1_l.ptÖrnek Bölütleme

SAM 2 Tahmin Örnekleri#

SAM 2; gerçek zamanlı video düzenleme, tıbbi görüntüleme ve otonom sistemler dahil geniş bir görev yelpazesinde kullanılabilir. Hem statik hem de dinamik görsel verileri segmentlere ayırma yeteneği, onu araştırmacılar ve geliştiriciler için çok yönlü bir araç haline getirir.

İstemlerle Segmentasyon#

İstemlerle Segmentasyon

Görsellerdeki veya videolardaki belirli nesneleri segmentlere ayırmak için istemleri kullan.

from ultralytics import SAM

# Load a model
model = SAM("sam2.1_b.pt")

# Display model information (optional)
model.info()

# Run inference with bboxes prompt
results = model("path/to/image.jpg", bboxes=[100, 100, 200, 200])

# Run inference with single point
results = model(points=[900, 370], labels=[1])

# Run inference with multiple points
results = model(points=[[400, 370], [900, 370]], labels=[1, 1])

# Run inference with multiple points prompt per object
results = model(points=[[[400, 370], [900, 370]]], labels=[[1, 1]])

# Run inference with negative points prompt
results = model(points=[[[400, 370], [900, 370]]], labels=[[1, 0]])

Her Şeyi Segmentlere Ayır#

Her Şeyi Segmentlere Ayır

Belirli istemler olmaksızın tüm görseli veya video içeriğini segmentlere ayır.

from ultralytics import SAM

# Load a model
model = SAM("sam2.1_b.pt")

# Display model information (optional)
model.info()

# Run inference
model("path/to/video.mp4")

Videoyu Segmentlere Ayır ve Nesneleri Takip Et#

Videoyu Segmentlere Ayır

Belirli istemlerle tüm video içeriğini segmentlere ayır ve nesneleri takip et.

from ultralytics.models.sam import SAM2VideoPredictor

# Create SAM2VideoPredictor
overrides = {"conf": 0.25, "task": "segment", "mode": "predict", "imgsz": 1024, "model": "sam2_b.pt"}
predictor = SAM2VideoPredictor(overrides=overrides)

# Run inference with single point
results = predictor(source="test.mp4", points=[920, 470], labels=[1])

# Run inference with multiple points
results = predictor(source="test.mp4", points=[[920, 470], [909, 138]], labels=[1, 1])

# Run inference with multiple points prompt per object
results = predictor(source="test.mp4", points=[[[920, 470], [909, 138]]], labels=[[1, 1]])

# Run inference with negative points prompt
results = predictor(source="test.mp4", points=[[[920, 470], [909, 138]]], labels=[[1, 0]])
  • Bu örnek, hiçbir istem (kutu/nokta/maske) sağlanmadığında SAM 2'nin bir görselin veya videonun tüm içeriğini segmentlere ayırmak için nasıl kullanılabileceğini gösterir.

Dinamik Etkileşimli Segmentasyon ve Takip#

SAM2DynamicInteractivePredictor, birden fazla kareyle dinamik etkileşimi ve sürekli öğrenme yeteneklerini etkinleştiren SAM2'nin gelişmiş, eğitim gerektirmeyen bir uzantısıdır. Bu tahmin edici, bir görsel dizisi boyunca iyileştirilmiş takip performansı için gerçek zamanlı istem güncellemelerini ve bellek yönetimini destekler. Orijinal SAM2 ile karşılaştırıldığında SAM2DynamicInteractivePredictor, ek eğitim gerektirmeden önceden eğitilmiş SAM2 modellerinden en iyi şekilde yararlanmak için çıkarım akışını yeniden yapılandırır.

SAM 2 Örnek Sonuçları

Temel Özellikler#

Üç önemli iyileştirme sunar:

  1. Dinamik Etkileşimli: Video işleme sırasında herhangi bir zamanda sonraki karelerde yeni örnekleri birleştirmek/takip edilmeyen yeni örnekler eklemek için yeni istemler ekle
  2. Sürekli Öğrenme: Zaman içinde model performansını artırmak için mevcut örnekler adına yeni istemler ekle
  3. Bağımsız Çoklu Görsel Desteği: Bellek paylaşımı ve görseller arası nesne takibi ile (mutlaka bir video dizisinden olması gerekmeyen) birden fazla bağımsız görseli işle

Temel Yetenekler#

  • İstem Esnekliği: Sınırlayıcı kutuları, noktaları ve maskeleri istem olarak kabul eder
  • Bellek Bankası Yönetimi: Kareler genelinde nesne durumlarını depolamak için dinamik bir bellek bankası korur
  • Çoklu Nesne Takibi: Bireysel nesne kimlikleriyle aynı anda birden fazla nesneyi takip etmeyi destekler
  • Gerçek Zamanlı Güncellemeler: Önceki kareleri yeniden işlemeye gerek kalmadan çıkarım sırasında yeni komutlar eklemene olanak tanır
  • Bağımsız Görüntü İşleme: Görüntüler arası nesne tutarlılığı için paylaşılan bellek bağlamıyla bağımsız görüntüleri işle
Dinamik Nesne Ekleme
from ultralytics.models.sam import SAM2DynamicInteractivePredictor

# Create SAM2DynamicInteractivePredictor
overrides = {"conf": 0.01, "task": "segment", "mode": "predict", "imgsz": 1024, "model": "sam2_t.pt", "save": False}
predictor = SAM2DynamicInteractivePredictor(overrides=overrides, max_obj_num=10)

# Define a category by box prompt
predictor(source="image1.jpg", bboxes=[[100, 100, 200, 200]], obj_ids=[0], update_memory=True)

# Detect this particular object in a new image
results = predictor(source="image2.jpg")

# Add new category with a new object ID
results = predictor(
    source="image4.jpg",
    bboxes=[[300, 300, 400, 400]],  # New object
    obj_ids=[1],  # New object ID
    update_memory=True,  # Add to memory
)
# Perform inference
results = predictor(source="image5.jpg")

# Add refinement prompts to the same category to boost performance
# This helps when object appearance changes significantly
results = predictor(
    source="image6.jpg",
    points=[[150, 150]],  # Refinement point
    labels=[1],  # Positive point
    obj_ids=[1],  # Same object ID
    update_memory=True,  # Update memory with new information
)
# Perform inference on new image
results = predictor(source="image7.jpg")
Not

SAM2DynamicInteractivePredictor, SAM2 modelleriyle çalışacak şekilde tasarlanmıştır ve SAM2'nin desteklediği tüm kutu/nokta/maske istemleri aracılığıyla yerel olarak kategoriler eklemeyi/iyileştirmeyi destekler. Video etiketleme veya etkileşimli düzenleme görevleri gibi nesnelerin zamanla göründüğü veya değiştiği senaryolar için özellikle yararlıdır.

Argümanlar#

AdVarsayılan DeğerVeri TipiAçıklama
max_obj_num3intÖntanımlı maksimum kategori sayısı
update_memoryFalseboolBelleğin yeni komutlarla güncellenip güncellenmeyeceği
obj_idsNoneList[int]Komutlara karşılık gelen nesne kimliklerinin listesi

Kullanım Durumları#

SAM2DynamicInteractivePredictor şunlar için idealdir:

  • Yeni nesnelerin dizi boyunca göründüğü video etiketleme iş akışları
  • Gerçek zamanlı nesne ekleme ve iyileştirme gerektiren etkileşimli video düzenleme
  • Dinamik nesne izleme ihtiyaçlarına sahip gözetim uygulamaları
  • Zaman serileri boyunca anatomik yapıları izlemek için tıbbi görüntüleme
  • Uyarlanabilir nesne algılama ve izleme gerektiren otonom sistemler
  • Bağımsız görüntüler arasında tutarlı nesne segmentasyonu için çoklu görüntü veri kümeleri
  • Nesnelerin farklı sahneler arasında izlenmesi gereken görüntü koleksiyonu analizi
  • Çeşitli görüntü bağlamlarından gelen belleği değerlendiren etki alanları arası segmentasyon
  • Minimum manuel müdahale ile verimli veri kümesi oluşturma için yarı otomatik etiketleme

SAM ve YOLO Karşılaştırması#

Burada Meta'nın en küçük SAM2-t varyantı dahil SAM 2 modellerini, YOLO26n-seg dahil Ultralytics segmentasyon modelleriyle karşılaştırıyoruz:

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ına sahip FastSAM-s23.911.858.0
Ultralytics YOLOv8n-seg7.1 (11.0x daha küçük)3.4 (11.4x daha az)24.8 (945x daha hızlı)
Ultralytics YOLO11n-seg6.2 (12.6x daha küçük)2.9 (13.4x daha az)24.3 (964x daha hızlı)
Ultralytics YOLO26n-seg6.7 (11.7x daha küçük)2.7 (14.4x daha az)25.2 (930x daha hızlı)

Bu karşılaştırma, SAM varyantları ile YOLO segmentasyon modelleri arasındaki model boyutları ve hızlarındaki önemli farkları göstermektedir. SAM 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 ile, YOLO hızları ise ONNX Runtime ile ö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 çalıştırılmıştır. Bu testi yeniden üretmek 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)
    model = YOLO(onnx_path)
    model(ASSETS)

Otomatik Etiketleme: Verimli Veri Kümesi Oluşturma#

Otomatik etiketleme, kullanıcıların önceden eğitilmiş modellerden yararlanarak hızlı ve doğru bir şekilde segmentasyon veri kümeleri oluşturmasını sağlayan SAM 2'nin güçlü bir özelliğidir. Bu yetenek, kapsamlı manuel çaba harcamadan büyük, yüksek kaliteli veri kümeleri oluşturmak için özellikle yararlıdır.

SAM 2 ile Otomatik Etiketleme Nasıl Yapılır#



Watch: Auto Annotation with Meta's Segment Anything 2 Model using Ultralytics | Data Labeling

SAM 2 kullanarak veri kümeni otomatik olarak etiketlemek için şu örneği izle:

Otomatik Etiketleme Örneği
from ultralytics.data.annotator import auto_annotate

auto_annotate(data="path/to/images", det_model="yolo26x.pt", sam_model="sam2_b.pt")
ArgümanTipVarsayılanAçıklama
datastrgerekliAçıklama veya segmentasyon için hedef görüntüleri içeren dizinin yolu.
det_modelstr'yolo26x.pt'İlk nesne tespiti için YOLO tespit modeli yolu.
sam_modelstr'sam_b.pt'Segmentasyon için SAM model yolu (SAM, SAM 2, MobileSAM ve SAM 3 ağırlıklarını destekler).
devicestr''Hesaplama cihazı (örneğin, 'cuda:0', 'cpu' veya otomatik cihaz tespiti için boş bırak).
conffloat0.25Zayıf algılamaları filtrelemek için YOLO algılama güven eşiği.
ioufloat0.45Çakışan kutuları filtrelemek için Non-Maximum Suppression (NMS) 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 indekslerinin listesi (örn. insan ve bisiklet için [0, 1]).
output_dirstrNoneAçıklamalar için kaydetme dizini (varsayılan: <data>_auto_annotate_labels kardeşi).

Bu işlev, projelerini hızlandırmayı amaçlayan araştırmacılar ve geliştiriciler için ideal olan, yüksek kaliteli segmentasyon veri kümelerinin hızlı bir şekilde oluşturulmasını kolaylaştırır.

Sınırlamalar#

Güçlü yönlerine rağmen, SAM 2'nin bazı sınırlamaları vardır:

  • İzleme Kararlılığı: SAM 2, uzun süreli diziler veya önemli bakış açısı değişiklikleri sırasında nesnelerin izini kaybedebilir.
  • Nesne Karışıklığı: Model, özellikle kalabalık sahnelerde bazen birbirine benzeyen nesneleri karıştırabilir.
  • Birden Fazla Nesne ile Verimlilik: Nesneler arası iletişim eksikliği nedeniyle birden fazla nesne aynı anda işlendiğinde segmentasyon verimliliği azalır.
  • Ayrıntı Doğruluğu: Özellikle hızla hareket eden nesnelerde ince ayrıntılar kaçırılabilir. Ek istemler bu sorunu kısmen çözebilir, ancak zamansal akıcılık garanti edilmez.

Alıntılar ve Teşekkür#

SAM 2 araştırma veya geliştirme çalışmalarının önemli bir parçasıysa, lütfen aşağıdaki referansı kullanarak alıntı yap:

Alıntı
@article{ravi2024sam2,
  title={SAM 2: Segment Anything in Images and Videos},
  author={Ravi, Nikhila and Gabeur, Valentin and Hu, Yuan-Ting and Hu, Ronghang and Ryali, Chaitanya and Ma, Tengyu and Khedr, Haitham and R{\"a}dle, Roman and Rolland, Chloe and Gustafson, Laura and Mintun, Eric and Pan, Junting and Alwala, Kalyan Vasudev and Carion, Nicolas and Wu, Chao-Yuan and Girshick, Ross and Doll{\'a}r, Piotr and Feichtenhofer, Christoph},
  journal={arXiv preprint},
  year={2024}
}

Bu çığır açan model ve veri kümesiyle yapay zeka topluluğuna katkılarından dolayı Meta AI'a teşekkür ederiz.

SSS#

SAM 2 nedir ve orijinal Segment Anything Model (SAM) modelini nasıl geliştirir?#

Meta'nın Segment Anything Model (SAM) modelinin halefi olan SAM 2; hem görsellerde hem de videolarda kapsamlı nesne segmentasyonu için tasarlanmış son teknoloji ürünü bir araçtır. Gerçek zamanlı işlemeyi ve sıfır vuruşlu (zero-shot) genellemeyi destekleyen birleşik, istem tabanlı bir model mimarisi aracılığıyla karmaşık görsel verileri işlemekte başarılıdır. SAM 2, orijinal SAM'e göre aşağıdakiler dahil çeşitli iyileştirmeler sunar:

  • Birleşik Model Mimarisi: Görüntü ve video segmentasyon yeteneklerini tek bir modelde birleştirir.
  • Gerçek Zamanlı Performans: Saniyede yaklaşık 44 kare işleyerek anında geri bildirim gerektiren uygulamalar için uygun hale getirir.
  • Sıfır Vuruşlu Genelleme: Çeşitli görsel alanlarda yararlı olan, daha önce hiç karşılaşmadığı nesneleri segmentlere ayırır.
  • Etkileşimli İyileştirme: Kullanıcıların ek komutlar sağlayarak segmentasyon sonuçlarını yinelemeli olarak iyileştirmesine olanak tanır.
  • Görsel Zorlukların Gelişmiş Yönetimi: Nesne gizlenmesi ve yeniden görünmesi gibi yaygın video segmentasyon zorluklarını yönetir.

SAM 2'nin mimarisi ve yetenekleri hakkında daha fazla ayrıntı için SAM 2 araştırma makalesini incele.

Gerçek zamanlı video segmentasyonu için SAM 2'yi nasıl kullanabilirim?#

SAM 2, komut verilebilir arayüzünden ve gerçek zamanlı çıkarım yeteneklerinden yararlanarak gerçek zamanlı video segmentasyonu için kullanılabilir. İşte temel bir örnek:

İstemlerle Segmentasyon

Görsellerdeki veya videolardaki belirli nesneleri segmentlere ayırmak için istemleri kullan.

from ultralytics import SAM

# Load a model
model = SAM("sam2_b.pt")

# Display model information (optional)
model.info()

# Segment with bounding box prompt
results = model("path/to/image.jpg", bboxes=[100, 100, 200, 200])

# Segment with point prompt
results = model("path/to/image.jpg", points=[150, 150], labels=[1])

Daha kapsamlı kullanım için SAM 2 Nasıl Kullanılır bölümüne bak.

SAM 2'yi eğitmek için hangi veri kümeleri kullanılır ve performansını nasıl artırırlar?#

SAM 2, mevcut en büyük ve en çeşitli video segmentasyon veri kümelerinden biri olan SA-V veri kümesinde eğitilmiştir. SA-V veri kümesi şunları içerir:

  • 51.000+ Video: Geniş bir gerçek dünya senaryosu yelpazesi sunan 47 ülkede çekilmiştir.
  • 600.000+ Maske Açıklaması: Tüm nesneleri ve parçaları kapsayan "masklet" olarak adlandırılan ayrıntılı uzaysal-zamansal maske açıklamaları.
  • Veri Kümesi Ölçeği: Önceki en büyük veri kümelerine göre 4,5 kat daha fazla video ve 53 kat daha fazla etiket içerir, bu da benzeri görülmemiş bir çeşitlilik ve karmaşıklık sunar.

Bu kapsamlı veri seti, SAM 2'nin temel video segmentasyon kıyaslamalarında üstün performans elde etmesini sağlar ve sıfır vuruşlu (zero-shot) genelleme yeteneklerini geliştirir. Daha fazla bilgi için SA-V Veri Seti bölümüne göz at.

SAM 2, video segmentasyonunda gizlenmeleri ve nesne yeniden görünmelerini nasıl ele alır?#

SAM 2, video verilerindeki zamansal bağımlılıkları ve gizlenmeleri yönetmek için gelişmiş bir bellek mekanizması içerir. Bellek mekanizması şunlardan oluşur:

  • Bellek Kodlayıcı ve Bellek Bankası: Geçmiş karelerden gelen özellikleri depolar.
  • Bellek Dikkat Modülü: Zaman içinde tutarlı nesne takibini sürdürmek için depolanan bilgileri kullanır.
  • Gizleme Başlığı: Nesnelerin görünmediği senaryoları özellikle ele alır ve bir nesnenin gizlenme olasılığını tahmin eder.

Bu mekanizma, nesneler geçici olarak gizlendiğinde veya sahneme çıkıp tekrar girdiğinde bile sürekliliği sağlar. Daha fazla ayrıntı için Bellek Mekanizması ve Tıkanıklık İşleme bölümüne bak.

SAM 2, YOLO26 gibi diğer segmentasyon modelleriyle nasıl karşılaştırılır?#

Meta'nın SAM2-t ve SAM2-b gibi SAM 2 modelleri, güçlü sıfır vuruşlu (zero-shot) segmentasyon yetenekleri sunar ancak YOLO modellerine kıyasla önemli ölçüde daha büyük ve yavaştır. Örneğin, YOLO26n-seg, CPU üzerinde SAM2-b'den yaklaşık 24 kat daha küçük ve 1145 kat daha hızlıdır. SAM 2, çok yönlü, istem tabanlı ve sıfır vuruşlu (zero-shot) segmentasyon senaryolarında üstünlük sağlarken; YOLO26, NMS'siz uçtan uca çıkarımıyla hız, verimlilik ve gerçek zamanlı uygulamalar için optimize edilmiştir, bu da onu kaynak kısıtlı ortamlarda dağıtım için daha uygun hale getirir.

Yorumlar