Ultralytics YOLO27:

SAM 2: Her Şeyi Segmentleme Modeli 2#

SAM Evrimi

SAM 2, video segmentasyonu özellikleriyle orijinal SAM modelini temel alır. Metin ve görsel örnek istemleriyle İstemlenebilir Kavram Segmentasyonu için SAM 3 sayfasına bak.

Inference with Segment Anything 2 In Colab

Meta'nın Her Şeyi Segmentleme Modeli (SAM) modelinin halefi olan SAM 2, hem görüntülerde hem de videolarda kapsamlı nesne segmentasyonu için tasarlanmış son teknoloji bir araçtır. Gerçek zamanlı işlemeyi ve sıfır örnekli genelleştirmeyi destekleyen birleşik, istemlenebilir model mimarisi sayesinde karmaşık görsel verileri işleme konusunda başarılıdır.

Ultralytics Platform'da SAM 2

SAM 2.1 modelleri, hızlı veri kümesi etiketleme için tıklama tabanlı segmentasyonu etkinleştirerek Ultralytics Platform üzerindeki akıllı açıklama özelliğine güç sağlar. Ayrıntılar için açıklama kılavuzuna bak.

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örüntü ve video segmentasyonu özelliklerini tek bir modelde birleştirir. Bu birleşim, dağıtımı kolaylaştırır ve farklı medya türlerinde tutarlı performans sağlar. Esnek, istem tabanlı bir arayüz kullanarak kullanıcıların ilgi duydukları nesneleri noktalar, sınırlayıcı kutular veya maskeler gibi çeşitli istem türleriyle belirtmesine olanak tanır.

Gerçek Zamanlı Performans#

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

Sıfır Örnekli Genelleştirme#

SAM 2, daha önce hiç karşılaşmadığı nesneleri segmentlere ayırabilir ve güçlü bir sıfır örnekli genelleştirme sergiler. Bu özellik, önceden tanımlanmış kategorilerin olası tüm nesneleri kapsamayabileceği, çeşitlilik gösteren veya sürekli gelişen görsel alanlarda özellikle kullanışlıdır.

Etkileşimli İyileştirme#

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

Gelişmiş Görsel Zorluk İşleme#

SAM 2, nesne kapanması ve yeniden görünmesi gibi yaygın video segmentasyonu zorluklarını yönetmek için mekanizmalar içerir. Kareler boyunca nesneleri izlemek için gelişmiş bir bellek mekanizması kullanır; böylece nesneler geçici olarak gizlense veya sahneden çıkıp yeniden girse bile süreklilik sağlanır.

SAM 2'nin mimarisini ve özelliklerini daha iyi anlamak için SAM 2 araştırma makalesini incele.

Performans ve Teknik Ayrıntılar#

SAM 2, çeşitli metriklerde önceki modelleri geride bırakarak alanda yeni bir ölçüt belirler:

ÖlçütSAM 2Önceki SOTA
Etkileşimli Video SegmentasyonuEn iyi-
Gerekli İnsan Etkileşimi3 kat daha azTemel Çizgi
Görüntü Segmentasyonu DoğruluğuİyileştirildiSAM
Çıkarım Hızı6 kat daha hızlıSAM

Model Mimarisi#

Temel Bileşenler#

  • Görüntü ve Video Kodlayıcı: Hem görüntülerden 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 birlikte geçmiş karelerdeki bilgileri depolar ve kullanır; modelin zaman içinde tutarlı nesne takibini sürdürmesini sağlar.
  • Maske Kod Çözücü: Kodlanmış görüntü özelliklerine ve istemlere göre nihai segmentasyon maskelerini oluşturur. Videoda ayrıca kareler arasındaki doğru takibi sağlamak için bellek bağlamını kullanır.

SAM 2 Mimari Diyagramı

Bellek Mekanizması ve Kapanma İşleme#

Bellek mekanizması, SAM 2'nin video verilerindeki zamansal bağımlılıkları ve kapanmaları işlemesini sağlar. Nesneler hareket edip etkileşime girdikçe SAM 2, özelliklerini bir bellek bankasına kaydeder. Bir nesne kapandığında model, yeniden göründüğünde konumunu ve görünümünü tahmin etmek için bu belleğe güvenebilir. Kapanma başlığı, nesnelerin görünür olmadığı senaryoları özel olarak ele alarak bir nesnenin kapanmış olma olasılığını tahmin eder.

Çoklu Maske Belirsizliği Çözümleme#

Belirsizliğin bulunduğu durumlarda (ör. üst üste binen 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 biçimde temsil etmek için kritik öneme sahiptir.

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 segmentasyonu veri kümelerinden biridir. Şunları içerir:

  • 51.000'den Fazla Video: 47 ülkede çekilerek çok çeşitli gerçek dünya senaryoları sunar.
  • 600.000'den Fazla Maske Açıklaması: Nesnelerin tamamını ve parçalarını kapsayan, "maskecik" olarak adlandırılan ayrıntılı uzamsal-zamansal maske açıklamaları.
  • Veri Kümesi Ölçeği: Önceki en büyük veri kümelerine kıyasla 4,5 kat daha fazla video ve 53 kat daha fazla açıklama içerir; eşi benzeri görülmemiş bir çeşitlilik ve karmaşıklık sunar.

Karşılaştırmalı Testler#

Video Nesne Segmentasyonu#

SAM 2, başlıca video segmentasyonu karşılaştırmalı testlerinde üstün performans sergilemiştir:

Veri kümesiJ&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 kümesiNoC@90AUC
DAVIS Interactive1.540.872

Kurulum#

SAM 2'yi yüklemek için aşağıdaki komutu kullan. Tüm SAM 2 modelleri ilk kullanımda otomatik olarak indirilir.

pip install ultralytics

SAM 2 Nasıl Kullanılır: Görüntü 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çıklanır.

Model TürüÖnceden Eğitilmiş AğırlıklarDesteklenen GörevlerEğitimDoğrulamaÇıkarımDışa aktarma
SAM 2 küçüksam2_t.ptÖrnek Segmentasyonu
SAM 2 küçüksam2_s.ptÖrnek Segmentasyonu
SAM 2 temelsam2_b.ptÖrnek Segmentasyonu
SAM 2 büyüksam2_l.ptÖrnek Segmentasyonu
SAM 2.1 küçüksam2.1_t.ptÖrnek Segmentasyonu
SAM 2.1 küçüksam2.1_s.ptÖrnek Segmentasyonu
SAM 2.1 temelsam2.1_b.ptÖrnek Segmentasyonu
SAM 2.1 büyüksam2.1_l.ptÖrnek Segmentasyonu

SAM 2 Tahmin Örnekleri#

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

İstemlerle Segmentasyon#

İstemlerle Segmentasyon

Görüntülerde veya videolarda belirli nesneleri segmente etmek 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 Segmente Et#

Her Şeyi Segmente Et

Belirli istemler olmadan görüntünün veya videonun tüm içeriğini segmente et.

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 Segmente Et ve Nesneleri İzle#

Videoyu Segmente Et

Belirli istemlerle tüm video içeriğini segmente et ve nesneleri izle.

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 (bbox/nokta/maske) sağlanmadığında SAM 2'nin bir görüntünün veya videonun tüm içeriğini nasıl segmente edebileceğini gösterir.

Dinamik Etkileşimli Segmentasyon ve Takip#

SAM2DynamicInteractivePredictor, SAM 2'nin birden fazla kareyle dinamik etkileşim ve sürekli öğrenme yetenekleri sağlayan gelişmiş, eğitim gerektirmeyen bir uzantısıdır. Bu tahminci, bir dizi görüntü boyunca gelişmiş takip performansı için gerçek zamanlı komut istemi güncellemelerini ve bellek yönetimini destekler. Orijinal SAM 2 ile karşılaştırıldığında SAM2DynamicInteractivePredictor, ek bir eğitim gerektirmeden önceden eğitilmiş SAM 2 modellerinden en iyi şekilde yararlanmak için çıkarım akışını yeniden oluşturur.

SAM 2 Örnek Sonuçları

Temel Özellikler#

Üç önemli iyileştirme sunar:

  1. Dinamik Etkileşim: Video işleme sırasında herhangi bir zamanda sonraki karelerde birleştirilecek veya izlenmeyen yeni örnekler için yeni istemler ekle
  2. Sürekli Öğrenme: Model performansını zaman içinde iyileştirmek için mevcut örneklere yeni istemler ekle
  3. Bağımsız Çoklu Görüntü Desteği: Bellek paylaşımı ve görüntüler arası nesne takibiyle birden fazla bağımsız görüntüyü (bir video dizisinden gelmeleri şart değildir) işle

Temel Özellikler#

  • İstem Esnekliği: Sınırlayıcı kutuları, noktaları ve maskeleri istem olarak kabul eder
  • Bellek Bankası Yönetimi: Kareler arasındaki nesne durumlarını depolamak için dinamik bir bellek bankasını korur
  • Çoklu Nesne Takibi: Bireysel nesne kimlikleriyle birden fazla nesnenin eş zamanlı takibini destekler
  • Gerçek Zamanlı Güncellemeler: Önceki kareleri yeniden işlemeden çıkarım sırasında yeni istemler 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şler
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, SAM 2 modelleriyle çalışmak üzere tasarlanmıştır ve SAM 2'nin yerel olarak desteklediği tüm kutu, nokta ve maske komut istemleri ile kategoriler eklemeyi ve bunları iyileştirmeyi destekler. Bu, özellikle video açıklama ekleme veya interaktif düzenleme görevleri gibi nesnelerin zamanla göründüğü veya değiştiği senaryolar için kullanışlıdır.

Bağımsız değişkenler#

AdVarsayılan DeğerVeri TürüAçıklama
max_obj_num3intÖnceden ayarlanmış maksimum kategori sayısı
update_memoryFalseboolYeni istemlerle belleğin güncellenip güncellenmeyeceği
obj_idsNoneList[int]İstemlere karşılık gelen nesne kimliklerinin listesi

Kullanım Alanları#

SAM2DynamicInteractivePredictor şu amaçlar için idealdir:

  • Dizi sırasında yeni nesnelerin ortaya çıktığı video açıklama iş akışları
  • Gerçek zamanlı nesne ekleme ve iyileştirme gerektiren etkileşimli video düzenleme
  • Dinamik nesne izleme gereksinimleri olan gözetim uygulamaları
  • Zaman serileri boyunca anatomik yapıların izlenmesine yönelik 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 boyunca izlenmesi gereken görüntü koleksiyonu analizi
  • Çeşitli görüntü bağlamlarından yararlanan alanlar arası segmentasyon
  • En az düzeyde manuel müdahaleyle verimli veri kümesi oluşturmak için yarı otomatik açıklama

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

Burada, en küçük SAM2-t varyantı da dahil olmak üzere Meta'nın 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ı 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 boyutları ve hızlardaki önemli farkları ortaya koyar. SAM benzersiz otomatik segmentasyon yetenekleri sunarken, özellikle YOLOv8n-seg, YOLO11n-seg ve YOLO26n-seg olmak üzere YOLO modelleri ö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, 16 GB RAM'e sahip 2025 Apple M4 Air üzerinde torch==2.10.0, ultralytics==8.4.31 ve onnxruntime==1.24.4 kullanılarak gerçekleştirilmiştir. Bu testi 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)

Otomatik Açıklama: Verimli Veri Kümesi Oluşturma#

Otomatik açıklama, önceden eğitilmiş modellerden yararlanarak segmentasyon veri kümelerini hızlı ve doğru bir şekilde oluşturmanı sağlayan, SAM 2'nin güçlü bir özelliğidir. Bu yetenek, kapsamlı manuel çalışma gerektirmeden büyük ve yüksek kaliteli veri kümeleri oluşturmak için özellikle kullanışlıdır.

SAM 2 ile Otomatik Açıklama Nasıl Yapılır?#



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

SAM 2'yi kullanarak veri kümeni otomatik olarak açıklamak için şu örneği izle:

Otomatik Açıklama Örneği
from ultralytics.data.annotator import auto_annotate

auto_annotate(data="path/to/images", det_model="yolo26x.pt", sam_model="sam2_b.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).

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 diziler veya önemli bakış açısı değişiklikleri sırasında nesneleri izlemeyi kaybedebilir.
  • Nesne Karışıklığı: Model, özellikle kalabalık sahnelerde, benzer görünen nesneleri bazen karıştırabilir.
  • Birden Fazla Nesneyle Verimlilik: Nesneler arası iletişim olmaması nedeniyle birden fazla nesne aynı anda işlenirken segmentasyon verimliliği azalır.
  • Ayrıntı Doğruluğu: Özellikle hızlı hareket eden nesnelerde ince ayrıntıları gözden kaçırabilir. Ek istemler bu sorunu kısmen giderebilir, ancak zamansal düzgünlük garanti edilmez.

Atıflar ve Teşekkürler#

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

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'ya şükranlarımızı sunarız.

SSS#

  • Meta'nın Her Şeyi Segmentleme Modeli (SAM) modelinin halefi olan SAM 2, hem görüntülerde hem de videolarda kapsamlı nesne segmentasyonu için tasarlanmış son teknoloji bir araçtır. Gerçek zamanlı işlemeyi ve sıfır atışlı genellemeyi destekleyen birleşik, istem tabanlı model mimarisiyle karmaşık görsel verileri işleme konusunda başarılıdır. SAM 2, orijinal SAM'e kıyasla aşağıdakiler dahil olmak üzere çeşitli iyileştirmeler sunar:

    • Birleşik Model Mimarisi: Görüntü ve video segmentasyonu yeteneklerini tek bir modelde birleştirir.
    • Gerçek Zamanlı Performans: Saniyede yaklaşık 44 kare işler ve anında geri bildirim gerektiren uygulamalar için uygundur.
    • Sıfır Atışlı Genelleme: Daha önce hiç karşılaşmadığı nesneleri segmentlere ayırır; bu, çeşitli görsel alanlarda kullanışlıdır.
    • Etkileşimli İyileştirme: Ek istemler sağlayarak segmentasyon sonuçlarını yinelemeli olarak iyileştirmeni sağlar.
    • Görsel Zorlukların Gelişmiş İşlenmesi: Nesne kapanması ve yeniden ortaya çıkması gibi yaygın video segmentasyonu zorluklarını yönetir.

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

  • SAM 2, istem tabanlı arayüzünden ve gerçek zamanlı çıkarım yeteneklerinden yararlanılarak gerçek zamanlı video segmentasyonu için kullanılabilir. İşte temel bir örnek:

    İstemlerle Segmentasyon

    Görüntülerde veya videolarda belirli nesneleri segmente etmek 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 başvur.

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

    • 51.000'den Fazla Video: 47 ülkede çekilerek çok çeşitli gerçek dünya senaryoları sunar.
    • 600.000'den Fazla Maske Açıklaması: Nesnelerin tamamını ve parçalarını kapsayan, "maskecik" olarak adlandırılan ayrıntılı uzamsal-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 eşi görülmemiş çeşitlilik ve karmaşıklık sunar.

    Bu kapsamlı veri kümesi, SAM 2'nin başlıca video segmentasyonu kıyaslamalarında üstün performans göstermesini sağlar ve sıfır atışlı genelleme yeteneklerini geliştirir. Daha fazla bilgi için SA-V Veri Kümesi bölümüne bak.

  • SAM 2, video verilerindeki zamansal bağımlılıkları ve kapanmaları 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 alınan özellikleri depolar.
    • Bellek Dikkat Modülü: Nesnelerin zaman içindeki tutarlı takibini sürdürmek için depolanan bilgilerden yararlanır.
    • Kapanma Başlığı: Nesnelerin görünür olmadığı senaryoları özel olarak ele alır ve bir nesnenin kapanmış olma olasılığını tahmin eder.

    Bu mekanizma, nesneler geçici olarak gizlense veya sahneden çıkıp yeniden girse bile sürekliliği sağlar. Daha fazla bilgi için Bellek Mekanizması ve Kapanma İşleme bölümüne başvur.

  • Meta'nın SAM2-t ve SAM2-b gibi SAM 2 modelleri güçlü sıfır atışlı 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 kattan daha hızlıdır. SAM 2 çok yönlü, istem tabanlı ve sıfır atışlı segmentasyon senaryolarında başarılı olurken YOLO26, NMS içermeyen uçtan uca çıkarımla hız, verimlilik ve gerçek zamanlı uygulamalar için optimize edilmiştir; bu da onu kaynakları kısıtlı ortamlarda dağıtım için daha uygun hale getirir.

Yorumlar