SAM 2: Segment Anything Model 2

SAM Evrimi

SAM 2, orijinal SAM üzerine video segmentasyonu yetenekleri ekleyerek inşa edilmiştir. Metin ve görüntü örnek istemleri ile İsteme Dayalı Kavram Segmentasyonu için SAM 3 bölümüne bakabilirsin.

Inference with Segment Anything 2 In Colab

Meta'nın Segment Anything Model (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ış genellemeyi destekleyen birleşik, istem tabanlı model mimarisi sayesinde karmaşık görsel verileri işlemede üstün başarı gösterir.

Ultralytics Platform üzerinde SAM 2

SAM 2.1 models power the smart annotation feature on Ultralytics Platform, enabling click-based segmentation for fast dataset labeling. See the annotation guide for details.

SAM 2 Example Results

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 yeteneklerini tek bir modelde birleştirir. Bu birleştirme, dağıtımı basitleştirir ve farklı medya türlerinde tutarlı bir performans sağlar. Kullanıcıların noktalar, sınırlayıcı kutular veya maskeler gibi çeşitli istem türleri aracılığıyla ilgilenilen nesneleri belirlemelerine olanak tanıyan 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ır-Atış Genelleme

SAM 2, daha önce hiç karşılaşmadığı nesneleri segmentlere ayırabilir ve güçlü bir sıfır-atış genellemesi sergiler. Bu, önceden tanımlanmış kategorilerin tüm olası nesneleri kapsayamayabileceği çeşitli veya gelişen görsel alanlarda özellikle yararlıdır.

Etkileşimli İyileştirme

Kullanıcılar ek istemler sağlayarak segmentasyon sonuçlarını yinelemeli olarak iyileştirebilir, bu da çıktı üzerinde hassas kontrol sağlar. Bu etkileşim, video etiketleme veya tıbbi görüntüleme gibi uygulamalarda sonuçlara ince ayar yapmak için gereklidir.

Görsel Zorlukların Gelişmiş Ele Alınışı

SAM 2, nesne tıkanıklığı ve yeniden görünme gibi yaygın video segmentasyonu zorluklarını yönetmek için mekanizmalar içerir. Nesneleri kareler boyunca takip etmek ve nesneler geçici olarak gizlendiğinde veya sahneden çıkıp tekrar girdiğinde bile sürekliliği sağlamak için gelişmiş bir bellek mekanizması kullanır.

SAM 2'nin mimarisini ve yeteneklerini daha derinlemesine anlamak için SAM 2 araştırma makalesini inceleyebilirsin.

Performans ve Teknik Detaylar

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

MetrikSAM 2Önceki SOTA
Etkileşimli Video SegmentasyonuEn iyi-
Gereken İnsan Etkileşimi3 kat daha azTemel
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 dilimindeki görsel içeriği anlamaktan sorumludur.
  • İstem Kodlayıcı: Segmentasyon görevine rehberlik etmek için kullanıcı tarafından sağlanan istemleri (noktalar, kutular, maskeler) işler. Bu, SAM 2'nin kullanıcı girişine 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, modelin zaman içinde tutarlı nesne takibini sürdürmesini sağlayarak geçmiş karelerden gelen bilgileri topluca depolar ve kullanır.
  • Maske Kod Çözücü: Kodlanmış görüntü özelliklerine ve istemlere dayalı olarak nihai segmentasyon maskelerini üretir. Videoda, kareler arasında doğru takibi sağlamak için bellek bağlamını da kullanır.

SAM 2 Architecture Diagram

Bellek Mekanizması ve Tıkanıklık Yönetimi

Bellek mekanizması, SAM 2'nin video verilerindeki zamansal bağımlılıkları ve tıkanıklıkları yönetmesini sağlar. Nesneler hareket ettikçe ve etkileşime girdikçe, SAM 2 özelliklerini bir bellek bankasına kaydeder. Bir nesne tıkandığında, model yeniden göründüğünde 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ü

Belirsizliğin olduğu durumlarda (örneğin, örtüşen nesneler), SAM 2 birden fazla maske tahmini üretebilir. Bu özellik, tek bir maskenin sahnenin nüanslarını yeterince tarif edemeyebileceğ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 segmentasyonu veri kümelerinden biridir. Şunları içerir:

  • 51.000+ Video: 47 ülkede çekilmiş olup, çok çeşitli gerçek dünya senaryoları sunar.
  • 600.000+ Maske Etiketlemesi: "masklet" olarak adlandırılan, tüm nesneleri ve parçaları kapsayan ayrıntılı uzamsal-zamansal maske etiketlemeleri.
  • 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 etiketleme içermekte olup eşi benzeri görülmemiş bir çeşitlilik ve karmaşıklık sunar.

Kıyaslamalar

Video Nesne Segmentasyonu

SAM 2, büyük video segmentasyonu kıyaslamalarında üstün performans göstermiş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 bir verimlilik ve doğruluk gösterir:

Veri KümesiNoC@90AUC
DAVIS Interactive1.540.872

Kurulum

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

pip install ultralytics

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

Aşağıdaki tablo, mevcut SAM 2 modellerini, ö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ğu detaylandırmaktadır.

Model TipiÖnceden Eğitilmiş AğırlıklarDesteklenen GörevlerÇıkarımDoğrulamaEğitimDışa Aktar (Export)
SAM 2 tinysam2_t.ptInstance Segmentasyon
SAM 2 smallsam2_s.ptInstance Segmentasyon
SAM 2 basesam2_b.ptInstance Segmentasyon
SAM 2 largesam2_l.ptInstance Segmentasyon
SAM 2.1 tinysam2.1_t.ptInstance Segmentasyon
SAM 2.1 smallsam2.1_s.ptInstance Segmentasyon
SAM 2.1 basesam2.1_b.ptInstance Segmentasyon
SAM 2.1 largesam2.1_l.ptInstance Segmentasyon

SAM 2 Tahmin Örnekleri

SAM 2; gerçek zamanlı video düzenleme, tıbbi görüntüleme ve otonom sistemler dahil olmak üzere çok çeşitli görevlerde 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örüntüler veya videolardaki belirli nesneleri segmentlere ayırmak için istemleri kullanabilirsin.

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 Segmentle

Her Şeyi Segmentle

Belirli istemler olmadan tüm görüntü veya video içeriğini segmentlere ayırabilirsin.

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")

Video Segmentasyonu ve Nesne Takibi

Video Segmentasyonu

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

from ultralytics.models.sam import SAM2VideoPredictor

# Create SAM2VideoPredictor
overrides = dict(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, herhangi bir istem (bbox/nokta/maske) sağlanmadığında SAM 2'nin bir görüntü veya videonun tüm içeriğini segmentlere ayırmak için nasıl kullanılabileceğini göstermektedir.

Dinamik Etkileşimli Segmentasyon ve Takip

SAM2DynamicInteractivePredictor, SAM2'nin eğitim gerektirmeyen gelişmiş bir uzantısıdır ve birden fazla kare ile dinamik etkileşimi ve sürekli öğrenme yeteneklerini mümkün kılar. Bu tahminleyici, bir dizi görüntü boyunca daha iyi izleme performansı için gerçek zamanlı istem güncellemelerini ve bellek yönetimini destekler. Orijinal SAM2 ile karşılaştırıldığında, SAM2DynamicInteractivePredictor çıkarım akışını yeniden oluşturarak ek eğitime gerek kalmadan önceden eğitilmiş SAM2 modellerinden en iyi şekilde yararlanmayı sağlar.

SAM 2 Örnek Sonuçları

Temel Özellikler

Üç önemli geliştirme sunar:

  1. Dinamik Etkileşim: Video işleme sırasında herhangi bir zamanda takip edilmeyen yeni örnekleri birleştirmek veya takip etmek için yeni istemler ekle
  2. Sürekli Öğrenme: Zaman içinde model performansını artırmak için mevcut örnekleri içeren yeni istemler ekle
  3. Bağımsız Çoklu Görüntü Desteği: Bellek paylaşımı ve görüntüler arası nesne takibi ile birden fazla bağımsız görüntüyü (video dizisinden olması gerekmeyen) işle

Temel Yetenekler

  • İstem Esnekliği: İstem olarak sınırlayıcı kutuları, noktaları ve maskeleri kabul eder
  • Bellek Bankası Yönetimi: Kareler boyunca nesne durumlarını saklamak için dinamik bir bellek bankası tutar
  • Çoklu Nesne Takibi: Bireysel nesne kimlikleri ile aynı anda birden fazla nesneyi izlemeyi destekler
  • Gerçek Zamanlı Güncellemeler: Önceki kareleri yeniden işlemeye gerek kalmadan çıkarım sırasında yeni istemler eklenmesine izin verir
  • Bağımsız Görüntü İşleme: Görüntüler arası nesne tutarlılığı için paylaşılan bellek bağlamı ile bağımsız görüntüleri işle
Dinamik Nesne Ekleme
from ultralytics.models.sam import SAM2DynamicInteractivePredictor

# Create SAM2DynamicInteractivePredictor
overrides = dict(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ışmak üzere tasarlanmıştır ve SAM2'nin yerel olarak desteklediği tüm kutu/nokta/maske istemleri ile kategorilerin eklenmesini/iyileştirilmesini destekler. Bu, özellikle video açıklama veya etkileşimli düzenleme görevleri gibi nesnelerin zamanla göründüğü veya değiştiği senaryolar için yararlıdır.

Argümanlar

AdVarsayılan DeğerVeri TipiAçıklama
max_obj_num3intÖn ayarlı maksimum kategori sayısı
update_memoryFalseboolBelleğin yeni istemlerle güncellenip güncellenmeyeceği
obj_idsNoneList[int]İstemlere karşılık gelen nesne kimlikleri listesi

Kullanım Durumları

SAM2DynamicInteractivePredictor şunlar 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 ihtiyaçları olan 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ülerde tutarlı nesne segmentasyonu için çoklu görüntü veri setleri
  • Nesnelerin farklı sahneler boyunca izlenmesi gereken görüntü koleksiyonu analizi
  • Çeşitli görüntü bağlamlarından gelen belleği kullanan etki alanı arası segmentasyon
  • Minimal manuel müdahale ile verimli veri seti oluşturma için yarı otomatik açıklama

SAM ve 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 olmak üzere 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
FastSAM-s with YOLOv8 backbone23.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ı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ı 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'li 2025 Apple M4 Air üzerinde çalıştırılmıştır. 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)
    model = YOLO(onnx_path)
    model(ASSETS)

Otomatik Açıklama: Verimli Veri Seti Oluşturma

Otomatik açıklama, SAM 2'nin güçlü bir özelliğidir ve kullanıcıların önceden eğitilmiş modellerden yararlanarak hızlı ve doğru bir şekilde segmentasyon veri setleri oluşturmalarını sağlar. Bu yetenek, özellikle kapsamlı manuel çaba harcamadan büyük, yüksek kaliteli veri setleri oluşturmak için 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

Veri setinizi SAM 2 kullanarak otomatik olarak açıklamak için şu örneği takip et:

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")
ArgümanTürVarsayı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, SAM2 varyantları ve MobileSAM modellerini destekler).
devicestr''Hesaplama cihazı (ör. 'cuda:0', 'cpu' veya otomatik cihaz tespiti için boş bırak).
conffloat0.25Zayıf tespitleri filtrelemek için YOLO tespit güven eşiği.
ioufloat0.45Çakışan kutuları filtrelemek için NMS (Non-Maximum Suppression) 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 tespit sayısı.
classeslist[int]NoneTespit edilecek sınıf indeksleri listesi (ör. kişi ve bisiklet için [0, 1]).
output_dirstrNoneAçıklamalar için kaydetme dizini (veri yoluna göre varsayılan olarak './labels').

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 setlerinin hızlı bir şekilde oluşturulmasını kolaylaştırır.

Sınırlamalar

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

  • İzleme Kararlılığı: SAM 2, uzun diziler veya önemli bakış açısı değişiklikleri sırasında nesnelerin takibini kaybedebilir.
  • Nesne Karmaşası: Model, özellikle kalabalık sahnelerde birbirine benzeyen nesneleri bazen karıştırabilir.
  • Çoklu Nesnelerle Verimlilik: Nesneler arası iletişimin eksikliği nedeniyle, aynı anda birden fazla nesneyi işlerken segmentasyon verimliliği düşer.
  • Detay Doğruluğu: Özellikle hızlı hareket eden nesnelerde ince detayları kaçırabilir. Ek istemler bu sorunu kısmen çözebilir, ancak zamansal pürüzsüzlük garanti edilmez.

Alıntılar ve Teşekkür

SAM 2, araştırmanızın veya geliştirme çalışmalarınızın önemli bir parçasıysa, lütfen aşağıdaki referansı kullanarak atıfta bulunun:

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 seti ile yapay zeka topluluğuna yaptıkları katkılardan dolayı Meta AI'a minnettarız.

SSS

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

Meta'nın Segment Anything Model'inin (SAM) 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 vuruşlu genellemeyi destekleyen birleşik, istemlenebilir bir model mimarisi aracılığıyla karmaşık görsel verileri işlemede mükemmeldir. SAM 2, orijinal SAM'e göre şunlar dahil birçok iyileştirme 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şler, bu da onu anında geri bildirim gerektiren uygulamalar için uygun hale getirir.
  • Sıfır Vuruşlu Genelleme: Daha önce hiç karşılaşmadığı nesneleri bölütler, çeşitli görsel alanlarda kullanışlıdır.
  • Etkileşimli İyileştirme: Kullanıcıların ek istemler sağlayarak segmentasyon sonuçlarını yinelemeli olarak iyileştirmelerine olanak tanır.
  • Görsel Zorlukların Gelişmiş Ele Alınması: Nesne tıkanması ve yeniden ortaya çıkması 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.

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

SAM 2, istemlenebilir 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üler veya videolardaki belirli nesneleri segmentlere ayırmak için istemleri kullanabilirsin.

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 setleri kullanılır ve bunlar performansını nasıl artırır?

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

  • 51.000+ Video: 47 ülkede çekilmiş olup, çok çeşitli gerçek dünya senaryoları sunar.
  • 600.000+ Maske Etiketlemesi: "masklet" olarak adlandırılan, tüm nesneleri ve parçaları kapsayan ayrıntılı uzamsal-zamansal maske etiketlemeleri.
  • Veri Seti Ölçeği: Önceki en büyük veri setlerinden 4.5 kat daha fazla video ve 53 kat daha fazla açıklama içerir, benzeri görülmemiş çeşitlilik ve karmaşıklık sunar.

Bu kapsamlı veri seti, SAM 2'nin ana video segmentasyon kriterlerinde üstün performans elde etmesini sağlar ve sıfır vuruşlu genelleme yeteneklerini geliştirir. Daha fazla bilgi için SA-V Veri Seti bölümüne bak.

SAM 2, video segmentasyonunda tıkanmaları ve nesnelerin yeniden ortaya çıkmasını nasıl yönetir?

SAM 2, video verilerindeki zamansal bağımlılıkları ve tıkanmaları 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 saklar.
  • Bellek Dikkat Modülü: Zaman içinde tutarlı nesne takibini sürdürmek için depolanmış bilgileri kullanır.
  • Tıkanma Başlığı: Özellikle nesnelerin görünmediği senaryoları ele alır ve bir nesnenin tıkanma olasılığını tahmin eder.

Bu mekanizma, nesneler geçici olarak gizlendiğinde veya sahneden çıkıp tekrar girdiğinde bile sürekliliği sağlar. Daha fazla ayrıntı için Bellek Mekanizması ve Tıkanma Yönetimi 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 segmentasyon yetenekleri sunar ancak YOLO modellerine kıyasla önemli ölçüde daha büyük ve daha 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 vuruşlu segmentasyon senaryolarında mükemmelken, YOLO26 NMS'siz uçtan uca çıkarım ile 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