─░├žeri─če ge├ž

Segment Anything Modeli (SAM)

Segment Anything Model veya SAM ile g├Âr├╝nt├╝ segmentasyonunun s─▒n─▒rlar─▒na ho┼č geldiniz. Bu devrim niteli─čindeki model, ger├žek zamanl─▒ performansla h─▒zl─▒ g├Âr├╝nt├╝ segmentasyonu sunarak oyunu de─či┼čtirdi ve bu alanda yeni standartlar belirledi.

SAM adresine giri┼č: Segment Anything Modeli

Segment Anything Modeli veya SAM, g├Âr├╝nt├╝ analizi g├Ârevlerinde benzersiz bir ├žok y├Ânl├╝l├╝k sa─člayan, h─▒zl─▒ segmentasyona izin veren son teknoloji bir g├Âr├╝nt├╝ segmentasyon modelidir. SAM , g├Âr├╝nt├╝ segmentasyonu i├žin yeni bir model, g├Ârev ve veri seti sunan ├ž─▒─č─▒r a├žan bir proje olan Segment Anything giri┼čiminin kalbini olu┼čturmaktad─▒r.

SAM'nin geli┼čmi┼č tasar─▒m─▒, s─▒f─▒r ├žekim aktar─▒m─▒ olarak bilinen bir ├Âzellik olan yeni g├Âr├╝nt├╝ da─č─▒l─▒mlar─▒na ve g├Ârevlere ├Ânceden bilgi sahibi olmadan uyum sa─člamas─▒na olanak tan─▒r. ├ľzenle se├žilmi┼č 11 milyon g├Âr├╝nt├╝ye yay─▒lm─▒┼č 1 milyardan fazla maske i├žeren geni┼č SA-1B veri k├╝mesi ├╝zerinde e─čitilen SAM , bir├žok durumda ├Ânceki tam denetimli sonu├žlar─▒ geride b─▒rakarak etkileyici bir s─▒f─▒r ├žekim performans─▒ sergilemi┼čtir.

Veri k├╝mesi ├Ârnek g├Âr├╝nt├╝s├╝ SA-1B ├ľrnek g├Âr├╝nt├╝ler. Veri k├╝mesi g├Âr├╝nt├╝leri, yeni tan─▒t─▒lan SA-1B veri k├╝mesinden maskeleri ├╝st ├╝ste bindirmi┼čtir. SA-1B 11 milyon farkl─▒, y├╝ksek ├ž├Âz├╝n├╝rl├╝kl├╝, lisansl─▒ ve gizlili─či koruyan g├Âr├╝nt├╝ ve 1,1 milyar y├╝ksek kaliteli segmentasyon maskesi i├žermektedir. Bu maskeler SAM taraf─▒ndan tamamen otomatik olarak eklenmi┼čtir ve insan de─čerlendirmeleri ve ├žok say─▒da deneyle do─čruland─▒─č─▒ ├╝zere y├╝ksek kalite ve ├že┼čitlili─če sahiptir. G├Âr├╝nt├╝ler, g├Ârselle┼čtirme i├žin g├Âr├╝nt├╝ ba┼č─▒na maske say─▒s─▒na g├Âre grupland─▒r─▒lm─▒┼čt─▒r (g├Âr├╝nt├╝ ba┼č─▒na ortalama Ôł╝100 maske vard─▒r).

Segment Anything Modelinin Temel ├ľzellikleri (SAM)

  • ─░stenebilir Segmentasyon G├Ârevi: SAM , bir nesneyi tan─▒mlayan uzamsal veya metin ipu├žlar─▒ gibi herhangi bir istemden ge├žerli segmentasyon maskeleri olu┼čturmas─▒na olanak tan─▒yan, istenebilir bir segmentasyon g├Ârevi d├╝┼č├╝n├╝lerek tasarlanm─▒┼čt─▒r.
  • Geli┼čmi┼č Mimari: Segment Anything Model g├╝├žl├╝ bir g├Âr├╝nt├╝ kodlay─▒c─▒, bir istem kodlay─▒c─▒ ve hafif bir maske kod ├ž├Âz├╝c├╝ kullan─▒r. Bu benzersiz mimari, segmentasyon g├Ârevlerinde esnek komut istemi, ger├žek zamanl─▒ maske hesaplama ve belirsizlik fark─▒ndal─▒─č─▒ sa─člar.
  • SA-1B Veri K├╝mesi: Segment Anything projesi taraf─▒ndan tan─▒t─▒lan SA-1B veri k├╝mesi, 11 milyon g├Âr├╝nt├╝ ├╝zerinde 1 milyardan fazla maske i├žermektedir. Bug├╝ne kadarki en b├╝y├╝k segmentasyon veri seti olan bu veri seti, SAM adresine ├že┼čitli ve b├╝y├╝k ├Âl├žekli bir e─čitim veri kayna─č─▒ sa─člamaktad─▒r.
  • S─▒f─▒r ├çekim Performans─▒: SAM , ├že┼čitli segmentasyon g├Ârevlerinde ola─čan├╝st├╝ s─▒f─▒r ├žekim performans─▒ sergileyerek, h─▒zl─▒ m├╝hendisli─če minimum ihtiya├ž duyan ├že┼čitli uygulamalar i├žin kullan─▒ma haz─▒r bir ara├ž haline getirir.

Segment Anything Modeli ve SA-1B veri setine derinlemesine bir bak─▒┼č i├žin l├╝tfen Segment Anything web sitesini ziyaret edin ve Segment Anything ara┼čt─▒rma makalesine g├Âz at─▒n.

Mevcut Modeller, Desteklenen G├Ârevler ve ├çal─▒┼čma Modlar─▒

Bu tablo, ├Ânceden e─čitilmi┼č belirli a─č─▒rl─▒klar─▒yla birlikte mevcut modelleri, destekledikleri g├Ârevleri ve desteklenen modlar i├žin Ôťů emojisi ve desteklenmeyen modlar i├žin ÔŁî emojisi ile g├Âsterilen ├ç─▒kar─▒m, Do─črulama, E─čitim ve D─▒┼ča Aktarma gibi farkl─▒ ├žal─▒┼čma modlar─▒yla uyumluluklar─▒n─▒ sunar.

Model Tipi ├ľnceden E─čitilmi┼č A─č─▒rl─▒klar Desteklenen G├Ârevler ├ç─▒kar─▒m Do─črulama E─čitim ─░hracat
SAM taban sam_b.pt ├ľrnek Segmentasyonu Ôťů ÔŁî ÔŁî ÔŁî
SAM b├╝y├╝k sam_l.pt ├ľrnek Segmentasyonu Ôťů ÔŁî ÔŁî ÔŁî

SAM Nas─▒l Kullan─▒l─▒r: G├Âr├╝nt├╝ Segmentasyonunda ├çok Y├Ânl├╝l├╝k ve G├╝├ž

Segment Anything Modeli, e─čitim verilerinin ├Âtesine ge├žen ├žok say─▒da alt g├Ârev i├žin kullan─▒labilir. Buna kenar alg─▒lama, nesne ├Ânerisi olu┼čturma, ├Ârnek segmentasyonu ve ├Ân metin-maske tahmini dahildir. H─▒zl─▒ m├╝hendislik sayesinde SAM yeni g├Ârevlere ve veri da─č─▒l─▒mlar─▒na h─▒zl─▒ bir ┼čekilde adapte olabilir ve t├╝m g├Âr├╝nt├╝ segmentasyon ihtiya├žlar─▒n─▒z i├žin ├žok y├Ânl├╝ ve g├╝├žl├╝ bir ara├ž haline gelir.

SAM Tahmin ├Ârne─či

Y├Ânlendirmeler i├žeren segment

G├Âr├╝nt├╝y├╝ verilen komutlarla b├Âl├╝mlere ay─▒r─▒n.

from ultralytics import SAM

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

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

# Run inference with bboxes prompt
model("ultralytics/assets/zidane.jpg", bboxes=[439, 437, 524, 709])

# Run inference with points prompt
model("ultralytics/assets/zidane.jpg", points=[900, 370], labels=[1])

Her ┼čeyi b├Âl├╝mlere ay─▒r─▒n

T├╝m g├Âr├╝nt├╝y├╝ segmentlere ay─▒r─▒n.

from ultralytics import SAM

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

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

# Run inference
model("path/to/image.jpg")
# Run inference with a SAM model
yolo predict model=sam_b.pt source=path/to/image.jpg
  • Buradaki mant─▒k, herhangi bir istem (bboxes/points/masks) ge├žmezseniz t├╝m g├Âr├╝nt├╝y├╝ b├Âl├╝mlere ay─▒rmakt─▒r.

SAMPredictor ├Ârne─či

Bu ┼čekilde, g├Âr├╝nt├╝y├╝ bir kez ayarlayabilir ve g├Âr├╝nt├╝ kodlay─▒c─▒y─▒ birden ├žok kez ├žal─▒┼čt─▒rmadan istemleri birden ├žok kez ├žal─▒┼čt─▒rabilirsiniz.

from ultralytics.models.sam import Predictor as SAMPredictor

# Create SAMPredictor
overrides = dict(conf=0.25, task="segment", mode="predict", imgsz=1024, model="mobile_sam.pt")
predictor = SAMPredictor(overrides=overrides)

# Set image
predictor.set_image("ultralytics/assets/zidane.jpg")  # set with image file
predictor.set_image(cv2.imread("ultralytics/assets/zidane.jpg"))  # set with np.ndarray
results = predictor(bboxes=[439, 437, 524, 709])
results = predictor(points=[900, 370], labels=[1])

# Reset image
predictor.reset_image()

Her ┼čeyi ek arg├╝manlarla b├Âl├╝mlere ay─▒r─▒n.

from ultralytics.models.sam import Predictor as SAMPredictor

# Create SAMPredictor
overrides = dict(conf=0.25, task="segment", mode="predict", imgsz=1024, model="mobile_sam.pt")
predictor = SAMPredictor(overrides=overrides)

# Segment with additional args
results = predictor(source="ultralytics/assets/zidane.jpg", crop_n_layers=1, points_stride=64)

SAM kar┼č─▒la┼čt─▒rma vs YOLOv8

Burada Meta'n─▒n en k├╝├ž├╝k SAM modeli olan SAM-b ile Ultralytics en k├╝├ž├╝k segmentasyon modeli olan YOLOv8n-seg'i kar┼č─▒la┼čt─▒r─▒yoruz:

Model Boyut Parametreler H─▒z (CPU)
Meta'n─▒n SAM-b 358 MB 94.7 M 51096 ms/im
MobileSAM 40,7 MB 10.1 M 46122 ms/im
FastSAM YOLOv8 omurgal─▒ -s 23,7 MB 11.8 M 115 ms/im
Ultralytics YOLOv8n-seg 6,7 MB (53,4 kat daha k├╝├ž├╝k) 3,4 M (27,9 kat daha az) 59 ms/im (866 kat daha h─▒zl─▒)

Bu kar┼č─▒la┼čt─▒rma, modeller aras─▒ndaki model boyutlar─▒ ve h─▒zlar─▒ndaki b├╝y├╝kl├╝k s─▒ras─▒ farklar─▒n─▒ g├Âstermektedir. SAM otomatik segmentasyon i├žin benzersiz yetenekler sunarken, daha k├╝├ž├╝k, daha h─▒zl─▒ ve daha verimli olan YOLOv8 segment modellerine do─črudan rakip de─čildir.

Testler, 16 GB RAM'e sahip 2023 Apple M2 Macbook ├╝zerinde ger├žekle┼čtirilmi┼čtir. Bu testi yeniden olu┼čturmak i├žin:

├ľrnek

from ultralytics import SAM, YOLO, FastSAM

# Profile SAM-b
model = SAM("sam_b.pt")
model.info()
model("ultralytics/assets")

# Profile MobileSAM
model = SAM("mobile_sam.pt")
model.info()
model("ultralytics/assets")

# Profile FastSAM-s
model = FastSAM("FastSAM-s.pt")
model.info()
model("ultralytics/assets")

# Profile YOLOv8n-seg
model = YOLO("yolov8n-seg.pt")
model.info()
model("ultralytics/assets")

Otomatik Notasyon: Segmentasyon Veri K├╝melerine Giden H─▒zl─▒ Bir Yol

Otomatik a├ž─▒klama, SAM'un ├Ânemli bir ├Âzelli─čidir ve kullan─▒c─▒lar─▒n ├Ânceden e─čitilmi┼č bir alg─▒lama modeli kullanarak bir segmentasyon veri k├╝mesi olu┼čturmas─▒na olanak tan─▒r. Bu ├Âzellik, zaman alan manuel etiketleme ihtiyac─▒n─▒ ortadan kald─▒rarak ├žok say─▒da g├Âr├╝nt├╝n├╝n h─▒zl─▒ ve do─čru bir ┼čekilde ek a├ž─▒klamas─▒n─▒ sa─člar.

Bir Alg─▒lama Modeli Kullanarak Segmentasyon Veri K├╝menizi Olu┼čturma

Veri k├╝menizi Ultralytics ├žer├ževesi ile otomatik olarak notland─▒rmak i├žin auto_annotate fonksiyonu a┼ča─č─▒da g├Âsterildi─či gibi:

├ľrnek

from ultralytics.data.annotator import auto_annotate

auto_annotate(data="path/to/images", det_model="yolov8x.pt", sam_model="sam_b.pt")
Tart─▒┼čma Tip A├ž─▒klama Varsay─▒lan
Veri str A├ž─▒klama eklenecek g├Âr├╝nt├╝leri i├žeren bir klas├Âr├╝n yolu.
det_model str, iste─če ba─čl─▒ ├ľnceden e─čitilmi┼č YOLO alg─▒lama modeli. Varsay─▒lan de─čer 'yolov8x.pt'. 'yolov8x.pt'
sam_model str, iste─če ba─čl─▒ ├ľnceden e─čitilmi┼č SAM segmentasyon modeli. Varsay─▒lan de─čer 'sam_b.pt'. 'sam_b.pt'
cihaz str, iste─če ba─čl─▒ Modellerin ├žal─▒┼čt─▒r─▒laca─č─▒ cihaz. Varsay─▒lan olarak bo┼č bir dizedir (varsa CPU veya GPU).
output_dir str, Yok, iste─če ba─čl─▒ A├ž─▒klamal─▒ sonu├žlar─▒n kaydedilece─či dizin. Varsay─▒lan olarak 'data' ile ayn─▒ dizindeki 'labels' klas├Âr├╝d├╝r. Hi├žbiri

Bu auto_annotate fonksiyonu, ├Ânceden e─čitilmi┼č alg─▒lama ve SAM segmentasyon modellerini, modellerin ├žal─▒┼čt─▒r─▒laca─č─▒ cihaz─▒ ve a├ž─▒klamal─▒ sonu├žlar─▒n kaydedilece─či ├ž─▒kt─▒ dizinini belirtmek i├žin iste─če ba─čl─▒ ba─č─▒ms─▒z de─či┼čkenlerle birlikte resimlerinizin yolunu al─▒r.

├ľnceden e─čitilmi┼č modellerle otomatik a├ž─▒klama, y├╝ksek kaliteli segmentasyon veri k├╝meleri olu┼čturmak i├žin gereken zaman─▒ ve ├žabay─▒ ├Ânemli ├Âl├ž├╝de azaltabilir. Bu ├Âzellik ├Âzellikle b├╝y├╝k g├Âr├╝nt├╝ koleksiyonlar─▒yla u─čra┼čan ara┼čt─▒rmac─▒lar ve geli┼čtiriciler i├žin faydal─▒d─▒r, ├ž├╝nk├╝ manuel a├ž─▒klama yerine model geli┼čtirme ve de─čerlendirmeye odaklanmalar─▒n─▒ sa─člar.

At─▒flar ve Te┼čekk├╝r

Ara┼čt─▒rma veya geli┼čtirme ├žal─▒┼čmalar─▒n─▒zda SAM adresini faydal─▒ bulursan─▒z, l├╝tfen makalemize at─▒fta bulunmay─▒ d├╝┼č├╝n├╝n:

@misc{kirillov2023segment,
      title={Segment Anything},
      author={Alexander Kirillov and Eric Mintun and Nikhila Ravi and Hanzi Mao and Chloe Rolland and Laura Gustafson and Tete Xiao and Spencer Whitehead and Alexander C. Berg and Wan-Yen Lo and Piotr Dollár and Ross Girshick},
      year={2023},
      eprint={2304.02643},
      archivePrefix={arXiv},
      primaryClass={cs.CV}
}

Bilgisayarla g├Ârme toplulu─ču i├žin bu de─čerli kayna─č─▒ yaratt─▒─č─▒ ve s├╝rd├╝rd├╝─č├╝ i├žin Meta AI'ya ┼č├╝kranlar─▒m─▒z─▒ sunar─▒z.

Anahtar kelimeler: Segment Anything, Segment Anything Model, SAM, Meta SAM, g├Âr├╝nt├╝ segmentasyonu, h─▒zl─▒ segmentasyon, s─▒f─▒r ├žekim performans─▒, SA-1B veri seti, geli┼čmi┼č mimari, otomatik a├ž─▒klama, Ultralytics, ├Ânceden e─čitilmi┼č modeller, SAM base, SAM large, ├Ârnek segmentasyonu, bilgisayarla g├Ârme, AI, yapay zeka, makine ├Â─črenimi, veri a├ž─▒klamas─▒, segmentasyon maskeleri, alg─▒lama modeli, YOLO alg─▒lama modeli, bibtex, Meta AI.



Created 2023-11-12, Updated 2024-06-10
Authors: glenn-jocher (13), Burhan-Q (1), ChaoningZhang (1), Laughing-q (1)

Yorumlar