Ultralytics YOLO27:
Get Started

SAM 2: Segment Anything Model 2#

SAM'in Evrimi

SAM 2, video segmentasyonu yetenekleriyle özgün SAM modelini geliştirir. Metin ve görsel örnek istemleriyle İstemle Yönlendirilebilir Kavram Segmentasyonu için SAM 3 sayfasına bak.

Inference with Segment Anything 2 In Colab

Meta'nın Segment Anything Model (SAM) modelinin devamı olan SAM 2, hem görsellerde 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 genellemeyi destekleyen, birleşik ve istemle yönlendirilebilir model mimarisi sayesinde karmaşık görsel verileri işlemede öne çıkar.

Ultralytics Platform'da SAM 2

SAM 2.1 modelleri, hızlı veri kümesi etiketlemeyi sağlayan tıklama tabanlı segmentasyon için akıllı anotasyon özelliğine Ultralytics Platform üzerinden güç verir. Ayrıntılar için anotasyon kılavuzuna bak.

SAM 2 Örnek Sonuçları

Temel Özellikler#



İzle: Ultralytics Kullanarak Meta'nın SAM2 Modeliyle Çıkarım Nasıl Çalıştırılır | Adım Adım Kılavuz 🎉

Birleşik Model Mimarisi#

SAM 2, görsel ve video segmentasyonu yeteneklerini tek bir modelde birleştirir. Bu bütünleşme, 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ürleriyle kullanıcıların ilgilendikleri nesneleri belirtmesine 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 sayede SAM 2, video düzenleme ve artırılmış gerçeklik gibi anında geri bildirim gerektiren uygulamalar için uygundur.

Sıfır Örnekli Genelleme#

SAM 2, daha önce hiç karşılaşmadığı nesneleri bölümleyebilir ve güçlü bir sıfır atış genelleme yeteneği sergiler. Bu özellik, önceden tanımlanmış kategorilerin olası tüm nesneleri kapsamayabileceği çeşitli veya değişken görsel alanlarda özellikle kullanışlıdır.

Etkileşimli İyileştirme#

Kullanıcılar ek istemler sağlayarak bölümleme sonuçlarını yinelemeli biçimde iyileştirebilir ve böylece çıktı üzerinde hassas denetim sağlayabilir. Bu etkileşim, video açıklama ekleme veya tıbbi görüntüleme gibi uygulamalarda sonuçlara ince ayar yapmak için gereklidir.

Görsel Zorlukların Gelişmiş Yönetimi#

SAM 2, nesnelerin örtülmesi ve yeniden görünmesi gibi yaygın video bölümleme 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 yeteneklerini daha iyi anlamak için SAM 2 araştırma makalesini incele.

Performans ve Teknik Ayrıntılar#

SAM 2, çeşitli ölçütlerde önceki modelleri geride bırakarak alanda yeni bir standart belirliyor:

ÖlçütSAM 2Önceki SOTA
Etkileşimli Video BölümlemeEn iyi-
Gerekli İnsan Etkileşimi3 kat daha azTemel değer
Görüntü Bölümleme 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 özellikler çı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ı: Bölümleme görevine yön vermek için kullanıcı tarafından sağlanan istemleri (noktalar, kutular, maskeler) işler. Bu sayede SAM 2, kullanıcı girdisine uyum sağlayabilir ve sahnedeki belirli nesneleri hedefleyebilir.
  • Bellek Mekanizması: Bir bellek kodlayıcı, bellek bankası ve bellek dikkat modülü içerir. Bu bileşenler birlikte önceki karelerden gelen bilgileri depolar ve kullanır; böylece model zaman içinde tutarlı nesne takibi yapabilir.
  • Maske Kod Çözücü: Kodlanmış görüntü özelliklerine ve istemlere göre nihai bölümleme maskelerini oluşturur. Videoda, kareler boyunca doğru takibi sağlamak için bellek bağlamından da yararlanır.

SAM 2 Mimari Diyagramı

Bellek Mekanizması ve Örtülme Yönetimi#

Bellek mekanizması, SAM 2'nin video verilerindeki zamansal bağımlılıkları ve örtülmeleri yönetmesini sağlar. Nesneler hareket edip etkileşime girdikçe SAM 2, özelliklerini bir bellek bankasına kaydeder. Bir nesne örtüldüğünde model, nesne yeniden göründüğünde konumunu ve görünümünü tahmin etmek için bu bellekten yararlanabilir. Örtülme başlığı, özellikle nesnelerin görünür olmadığı durumları ele alır ve bir nesnenin örtülmüş olma olasılığını tahmin eder.

Çoklu Maske Belirsizliğini Giderme#

Belirsizlik içeren durumlarda (ör. üst üste binen nesneler), SAM 2 birden fazla maske tahmini oluşturabilir. Bu özellik, tek bir maskenin sahnenin inceliklerini yeterince yansıtamayabileceği karmaşık sahneleri doğru biçimde 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, kullanıma sunulmuş en büyük ve en çeşitli video bölümleme veri kümelerinden biridir. Şunları içerir:

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

Kıyaslamalar#

Video Nesne Bölümleme#

SAM 2, önemli video bölümleme kıyaslamalarında üstün performans sergiledi:

Veri kümesiJ&FJF
DAVIS 201782.579.885.2
YouTube-VOS81.278.983.5

Etkileşimli Bölümleme#

SAM 2, etkileşimli bölümleme görevlerinde önemli ölçüde verimli ve doğru sonuçlar sunuyor:

Veri kümesiNoC@90AUC
DAVIS Etkileşimli1.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 Bölümlemede Çok Yönlülük#

Aşağıdaki tabloda kullanılabilir 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ıyor.

Model TürüÖnceden Eğitilmiş AğırlıklarDesteklenen GörevlerEğitimDoğrulamaÇıkarımDışa aktar
SAM 2 tinysam2_t.ptÖrnek Segmentasyonu❌❌✅❌
SAM 2 smallsam2_s.ptÖrnek Segmentasyonu❌❌✅❌
SAM 2 basesam2_b.ptÖrnek Segmentasyonu❌❌✅❌
SAM 2 largesam2_l.ptÖrnek Segmentasyonu❌❌✅❌
SAM 2.1 tinysam2.1_t.ptÖrnek Segmentasyonu❌❌✅❌
SAM 2.1 smallsam2.1_s.ptÖrnek Segmentasyonu❌❌✅❌
SAM 2.1 basesam2.1_b.ptÖrnek Segmentasyonu❌❌✅❌
SAM 2.1 largesam2.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 dâhil olmak üzere çok çeşitli görevlerde kullanılabilir. Hem statik hem de dinamik görsel verileri bölümleyebilmesi, onu araştırmacılar ve geliştiriciler için çok yönlü bir araç hâline getirir.

İstemlerle Bölümleme#

İstemlerle Bölümleme

Görüntülerdeki veya videolardaki belirli nesneleri bölümlemek için istemleri kullan.

from ultralytics import SAM

# Bir model yükle
model = SAM("sam2.1_b.pt")

# Model bilgilerini görüntüle (isteğe bağlı)
model.info()

# bbox istemiyle çıkarım çalıştır
results = model("path/to/image.jpg", bboxes=[100, 100, 200, 200])

# tek noktayla çıkarım çalıştır
results = model(points=[900, 370], labels=[1])

# birden çok noktayla çıkarım çalıştır
results = model(points=[[400, 370], [900, 370]], labels=[1, 1])

# her nesne için birden çok nokta istemiyle çıkarım çalıştır
results = model(points=[[[400, 370], [900, 370]]], labels=[[1, 1]])

# negatif nokta istemiyle çıkarım çalıştır
results = model(points=[[[400, 370], [900, 370]]], labels=[[1, 0]])

Her Şeyi Bölümle#

Her Şeyi Bölümle

Belirli istemler olmadan görüntü veya videodaki tüm içeriği bölümle.

from ultralytics import SAM

# Bir model yükle
model = SAM("sam2.1_b.pt")

# Model bilgilerini görüntüle (isteğe bağlı)
model.info()

# Çıkarımı çalıştır
model("path/to/video.mp4")
  • 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 bölümlemek için nasıl kullanılabileceğini gösteriyor.

Videoyu Bölümle ve Nesneleri Takip Et#

Videoyu Bölümle

Belirli istemlerle videonun tüm içeriğini bölümle 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)

# tek noktayla çıkarım çalıştır
results = predictor(source="test.mp4", points=[920, 470], labels=[1])

# birden çok noktayla çıkarım çalıştır
results = predictor(source="test.mp4", points=[[920, 470], [909, 138]], labels=[1, 1])

# her nesne için birden çok nokta istemiyle çıkarım çalıştır
results = predictor(source="test.mp4", points=[[[920, 470], [909, 138]]], labels=[[1, 1]])

# negatif nokta istemiyle çıkarım çalıştır
results = predictor(source="test.mp4", points=[[[920, 470], [909, 138]]], labels=[[1, 0]])

Dinamik Etkileşimli Bölümleme ve Takip#

SAM2DynamicInteractivePredictor, SAM 2'nin dinamik olarak etkileşim kurmayı ve sürekli öğrenme yeteneklerini sağlayan, ileri düzey ve eğitim gerektirmeyen bir uzantısıdır. Bu öngörücü, bir görüntü dizisi boyunca takip performansını iyileştirmek için gerçek zamanlı istem güncellemelerini ve bellek yönetimini destekler. Orijinal SAM 2 ile karşılaştırıldığında SAM2DynamicInteractivePredictor, ek 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 istenen herhangi bir anda, 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ü (bunların bir video dizisinden gelmesi gerekmez) işle

Temel Yetenekler#

  • İstem Esnekliği: Sınırlayıcı kutuları, noktaları ve maskeleri istem olarak kabul eder
  • Bellek Bankası Yönetimi: Kareler boyunca nesne durumlarını depolamak için dinamik bir bellek bankası tutar
  • Çoklu Nesne Takibi: Her nesneye ayrı bir kimlik atayarak birden fazla nesnenin aynı anda izlenmesini destekler
  • Gerçek Zamanlı Güncellemeler: Önceki kareleri yeniden işlemeden çıkarım sırasında yeni istemler eklenmesini sağlar
  • Bağımsız Görüntü İşleme: Görüntüler arasında nesne tutarlılığı sağlamak 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)

# Kutu istemiyle bir kategori tanımla
predictor(source="image1.jpg", bboxes=[[100, 100, 200, 200]], obj_ids=[0], update_memory=True)

# Bu belirli nesneyi yeni bir görüntüde algıla
results = predictor(source="image2.jpg")

# Yeni nesne kimliğiyle yeni bir kategori ekle
results = predictor(
    source="image4.jpg",
    bboxes=[[300, 300, 400, 400]],  # Yeni nesne
    obj_ids=[1],  # Yeni nesne kimliği
    update_memory=True,  # Belleğe ekle
)
# Çıkarım yap
results = predictor(source="image5.jpg")

# Performansı artırmak için aynı kategoriye iyileştirme istemleri ekle
# Bu, nesnelerin görünümü önemli ölçüde değiştiğinde yardımcı olur
results = predictor(
    source="image6.jpg",
    points=[[150, 150]],  # İyileştirme noktası
    labels=[1],  # Pozitif nokta
    obj_ids=[1],  # Aynı nesne kimliği
    update_memory=True,  # Belleği yeni bilgilerle güncelle
)
# Yeni görüntü üzerinde çıkarım yap
results = predictor(source="image7.jpg")
Not

SAM2DynamicInteractivePredictor, SAM 2 modelleriyle çalışacak şekilde tasarlanmıştır ve SAM 2'nin yerel olarak desteklediği tüm kutu, nokta ve maske istemleri ile kategoriler eklemeyi ve iyileştirmeyi destekler. Video etiketleme veya etkileşimli düzenleme görevleri gibi, nesnelerin zaman içinde ortaya çıktığı ya da değiştiği senaryolarda özellikle 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_memoryFalseboolBelleğin yeni istemlerle güncellenip güncellenmeyeceği
obj_idsNoneList[int]İstemlere karşılık gelen nesne kimliklerinin listesi

Kullanım Alanları#

SAM2DynamicInteractivePredictor şu alanlar için idealdir:

  • Video etiketleme iş akışları: Dizi sırasında yeni nesnelerin ortaya çıktığı durumlar
  • Etkileşimli video düzenleme: Gerçek zamanlı nesne ekleme ve iyileştirme gerektiren durumlar
  • Gözetim uygulamaları: Dinamik nesne izleme gereksinimleri olan durumlar
  • Tıbbi görüntüleme: Anatomik yapıları zaman serileri boyunca izlemek için
  • Otonom sistemler: Uyarlanabilir nesne algılama ve izleme gerektiren durumlar
  • Çok görüntülü veri kümeleri: Birbirinden bağımsız görüntülerde tutarlı nesne bölümleme için
  • Görüntü koleksiyonu analizi: Nesnelerin farklı sahneler boyunca izlenmesi gereken durumlar
  • Alanlar arası bölümleme: Çeşitli görüntü bağlamlarından gelen bellekten yararlanma
  • Yarı otomatik etiketleme: En az düzeyde manuel müdahaleyle verimli veri kümesi oluşturma

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 Ultralytics bölümleme modelleriyle karşılaştırıyoruz:

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
FastSAM-s ve YOLOv8 omurgası23.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, kendine özgü 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, 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 tekrarlamak 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)

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

Otomatik etiketleme, önceden eğitilmiş modellerden yararlanarak kullanıcıların bölümleme veri kümelerini hızlı ve doğru biçimde oluşturmasını sağlayan güçlü bir SAM 2 özelliğidir. Bu özellik, 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 Etiketleme Nasıl Yapılır#



İzle: Ultralytics Kullanarak Meta'nın Segment Anything 2 Modeliyle Otomatik Etiketleme | Veri Etiketleme

Veri kümeni SAM 2 ile 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")
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).

Bu işlev, projelerini hızlandırmayı amaçlayan araştırmacılar ve geliştiriciler için ideal olan yüksek kaliteli bölümleme veri kümelerinin hızlıca 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 sırasında veya bakış açısı önemli ölçüde değiştiğinde nesnelerin izini kaybedebilir.
  • Nesne Karışıklığı: Model, özellikle kalabalık sahnelerde birbirine benzeyen nesneleri zaman zaman karıştırabilir.
  • Birden Çok Nesnede Verimlilik: Nesneler arası iletişimin olmaması nedeniyle birden fazla nesne eş zamanlı işlendiğinde bölümleme verimliliği düşer.
  • Ayrıntı Doğruluğu: Özellikle hızlı hareket eden nesnelerde ince ayrıntıları kaçırabilir. Ek istemler bu sorunu kısmen giderebilir ancak zamansal akıcılı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 kaynakçayı kullanarak atıfta bulun:

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 zekâ topluluğuna yaptıkları katkılardan dolayı Meta AI'ya teşekkür ederiz.

Sık Sorulan Sorular#

  • Meta'nın Segment Anything Model (SAM) modelinin ardılı olan SAM 2, hem görüntülerde hem de videolarda kapsamlı nesne bölümleme için tasarlanmış son teknoloji bir araçtır. Gerçek zamanlı işlemeyi ve sıfır örnekli genellemeyi destekleyen, birleşik ve istemlerle yönlendirilebilir bir model mimarisi sayesinde karmaşık görsel verileri işlemede başarılıdır. SAM 2, özgün SAM'e kıyasla şu iyileştirmeleri sunar:

    • Birleşik Model Mimarisi: Görüntü ve video bölümleme özelliklerini 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 kılar.
    • Sıfır Örnekli Genelleme: Daha önce hiç karşılaşmadığı nesneleri bölümleyerek çeşitli görsel alanlarda kullanışlı olur.
    • Etkileşimli İyileştirme: Kullanıcıların ek istemler sağlayarak bölümleme sonuçlarını yinelemeli biçimde iyileştirmesine olanak tanır.
    • Görsel Zorlukların Gelişmiş Yönetimi: Nesnelerin örtülmesi ve yeniden görünmesi gibi yaygın video bölümleme zorluklarının üstesinden gelir.

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

  • SAM 2, istemlerle yönlendirilebilir arayüzünden ve gerçek zamanlı çıkarım özelliklerinden yararlanılarak gerçek zamanlı video bölümleme için kullanılabilir. İşte temel bir örnek:

    İstemlerle Bölümleme

    Görüntülerdeki veya videolardaki belirli nesneleri bölümlemek için istemleri kullan.

    from ultralytics import SAM
    
    # Bir model yükle
    model = SAM("sam2_b.pt")
    
    # Model bilgilerini görüntüle (isteğe bağlı)
    model.info()
    
    # Sınırlayıcı kutu istemiyle bölümle
    results = model("path/to/image.jpg", bboxes=[100, 100, 200, 200])
    
    # Nokta istemiyle bölümle
    results = model("path/to/image.jpg", points=[150, 150], labels=[1])

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

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

    • 51.000'den Fazla Video: 47 ülkede çekilmiş olup çok çeşitli gerçek dünya senaryoları sunar.
    • 600.000'den Fazla Maske Açıklaması: Nesnelerin tamamını ve parçalarını kapsayan, "masklet" olarak adlandırılan ayrıntılı uzamsal-zamansal maske açıklamaları.
    • Veri Kümesinin Ö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 görülmemiş bir çeşitlilik ve karmaşıklık sunar.

    Bu kapsamlı veri kümesi, SAM 2'nin başlıca video bölümleme kıyaslamalarında üstün performans göstermesini sağlar ve sıfır örnekli 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 örtülmeleri yönetmek için gelişmiş bir bellek mekanizması içerir. Bellek mekanizması şunlardan oluşur:

    • Bellek Kodlayıcısı ve Bellek Bankası: Önceki karelerden gelen özellikleri depolar.
    • Bellek Dikkat Modülü: Zaman içinde tutarlı nesne izlemeyi sürdürmek için depolanan bilgileri kullanır.
    • Örtülme Başlığı: Nesnelerin görünür olmadığı durumları özel olarak ele alır ve bir nesnenin örtülmüş olma olasılığını tahmin eder.

    Bu mekanizma, nesneler geçici olarak gizlendiğinde veya sahneden çıkıp yeniden girdiğinde bile sürekliliği sağlar. Daha fazla ayrıntı için Bellek Mekanizması ve Örtülme Yönetimi bölümüne bak.

  • Meta'nın SAM2-t ve SAM2-b modelleri gibi SAM 2 modelleri güçlü sıfır örnekli bölümleme yetenekleri sunar ancak YOLO modellerine kıyasla önemli ölçüde daha büyük ve yavaştır. Örneğin YOLO26n-seg, CPU'da SAM2-b'den yaklaşık 24 kat daha küçük ve 1145 kattan fazla daha hızlıdır. SAM 2 çok yönlü, istem tabanlı ve sıfır örnekli bölümleme senaryolarında öne çıkarken YOLO26; NMS gerektirmeyen uçtan uca çıkarımıyla hız, verimlilik ve gerçek zamanlı uygulamalar için optimize edilmiştir ve bu nedenle kaynakları kısıtlı ortamlarda dağıtım için daha uygundur.

Yorumlar