─░├žeri─če ge├ž

H─▒zl─▒ Segment Her ┼×ey Modeli (FastSAM)

Fast Segment Anything Model (FastSAM), Segment Anything g├Ârevi i├žin yeni, ger├žek zamanl─▒ CNN tabanl─▒ bir ├ž├Âz├╝md├╝r. Bu g├Ârev, ├že┼čitli olas─▒ kullan─▒c─▒ etkile┼čimi istemlerine dayal─▒ olarak bir g├Âr├╝nt├╝deki herhangi bir nesneyi b├Âl├╝mlere ay─▒rmak i├žin tasarlanm─▒┼čt─▒r. FastSAM rekabet├ži performans─▒ korurken hesaplama taleplerini ├Ânemli ├Âl├ž├╝de azalt─▒r, bu da onu ├že┼čitli g├Ârme g├Ârevleri i├žin pratik bir se├žim haline getirir.



─░zle: Object Tracking using FastSAM with Ultralytics

Model Architecture

Fast Segment Anything Model (FastSAM) mimarisine genel bak─▒┼č

Genel Bak─▒┼č

FastSAM ├Ânemli hesaplama kayna─č─▒ gereksinimleri olan a─č─▒r bir Transformat├Âr modeli olan Segment Anything Model'in (SAM) s─▒n─▒rlamalar─▒n─▒ ele almak i├žin tasarlanm─▒┼čt─▒r. FastSAM , segment anything g├Ârevini iki ard─▒┼č─▒k a┼čamaya ay─▒r─▒r: t├╝m ├Ârnek segmentasyonu ve istem k─▒lavuzlu se├žim. ─░lk a┼čama, g├Âr├╝nt├╝deki t├╝m ├Ârneklerin segmentasyon maskelerini ├╝retmek i├žin YOLOv8-seg kullan─▒r. ─░kinci a┼čamada, komut istemine kar┼č─▒l─▒k gelen ilgi b├Âlgesini ├ž─▒kar─▒r.

Temel ├ľzellikler

  1. Ger├žek Zamanl─▒ ├ç├Âz├╝m: CNN'lerin hesaplama verimlili─činden yararlanan FastSAM , herhangi bir segment g├Ârevi i├žin ger├žek zamanl─▒ bir ├ž├Âz├╝m sa─člayarak h─▒zl─▒ sonu├žlar gerektiren end├╝striyel uygulamalar i├žin de─čerli hale getirir.

  2. Verimlilik ve Performans: FastSAM , performans kalitesinden ├Âd├╝n vermeden hesaplama ve kaynak taleplerinde ├Ânemli bir azalma sunar. SAM ile kar┼č─▒la┼čt─▒r─▒labilir performansa ula┼č─▒r, ancak b├╝y├╝k ├Âl├ž├╝de azalt─▒lm─▒┼č hesaplama kaynaklar─▒ ile ger├žek zamanl─▒ uygulama sa─člar.

  3. ─░stem K─▒lavuzlu Segmentasyon: FastSAM , ├že┼čitli olas─▒ kullan─▒c─▒ etkile┼čimi istemleri taraf─▒ndan y├Ânlendirilen bir g├Âr├╝nt├╝deki herhangi bir nesneyi segmentlere ay─▒rabilir ve farkl─▒ senaryolarda esneklik ve uyarlanabilirlik sa─člar.

  4. YOLOv8 -seg'e dayan─▒r: FastSAM , ├Ârnek segmentasyon dal─▒yla donat─▒lm─▒┼č bir nesne detekt├Âr├╝ olan YOLOv8-seg'e dayan─▒r. Bu, bir g├Âr├╝nt├╝deki t├╝m ├Ârneklerin segmentasyon maskelerini etkili bir ┼čekilde ├╝retmesini sa─člar.

  5. Kar┼č─▒la┼čt─▒rmal─▒ Testlerde Rekabet├ži Sonu├žlar: MS COCO'daki nesne ├Ânerme g├Ârevinde FastSAM , MS COCO'dan ├Ânemli ├Âl├ž├╝de daha h─▒zl─▒ bir ┼čekilde y├╝ksek puanlar elde eder. SAM tek bir NVIDIA RTX 3090 ├╝zerinde ├žal─▒┼čarak verimlili─čini ve kapasitesini ortaya koyuyor.

  6. Pratik Uygulamalar: ├ľnerilen yakla┼č─▒m, mevcut y├Ântemlerden onlarca veya y├╝zlerce kat daha h─▒zl─▒, ger├žekten y├╝ksek bir h─▒zda ├žok say─▒da g├Ârme g├Ârevi i├žin yeni ve pratik bir ├ž├Âz├╝m sunmaktad─▒r.

  7. Model S─▒k─▒┼čt─▒rma Fizibilitesi: FastSAM , yap─▒ya yapay bir ├Âncelik getirerek hesaplama ├žabas─▒n─▒ ├Ânemli ├Âl├ž├╝de azaltabilecek bir yolun fizibilitesini g├Âsterir, b├Âylece genel g├Ârme g├Ârevleri i├žin b├╝y├╝k model mimarisi i├žin yeni olanaklar a├žar.

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
FastSAM-s FastSAM-s.pt ├ľrnek Segmentasyonu Ôťů ÔŁî ÔŁî Ôťů
FastSAM-x FastSAM-x.pt ├ľrnek Segmentasyonu Ôťů ÔŁî ÔŁî Ôťů

Kullan─▒m ├ľrnekleri

FastSAM modellerini Python uygulamalar─▒n─▒za entegre etmek kolayd─▒r. Ultralytics , geli┼čtirmeyi kolayla┼čt─▒rmak i├žin kullan─▒c─▒ dostu Python API ve CLI komutlar─▒ sa─člar.

Kullan─▒m Tahmini

Bir g├Âr├╝nt├╝ ├╝zerinde nesne alg─▒lama ger├žekle┼čtirmek i├žin predict y├Ântemi a┼ča─č─▒da g├Âsterildi─či gibi:

├ľrnek

from ultralytics import FastSAM
from ultralytics.models.fastsam import FastSAMPrompt

# Define an inference source
source = "path/to/bus.jpg"

# Create a FastSAM model
model = FastSAM("FastSAM-s.pt")  # or FastSAM-x.pt

# Run inference on an image
everything_results = model(source, device="cpu", retina_masks=True, imgsz=1024, conf=0.4, iou=0.9)

# Prepare a Prompt Process object
prompt_process = FastSAMPrompt(source, everything_results, device="cpu")

# Everything prompt
ann = prompt_process.everything_prompt()

# Bbox default shape [0,0,0,0] -> [x1,y1,x2,y2]
ann = prompt_process.box_prompt(bbox=[200, 200, 300, 300])

# Text prompt
ann = prompt_process.text_prompt(text="a photo of a dog")

# Point prompt
# points default [[0,0]] [[x1,y1],[x2,y2]]
# point_label default [0] [1,0] 0:background, 1:foreground
ann = prompt_process.point_prompt(points=[[200, 200]], pointlabel=[1])
prompt_process.plot(annotations=ann, output="./")
# Load a FastSAM model and segment everything with it
yolo segment predict model=FastSAM-s.pt source=path/to/bus.jpg imgsz=640

Bu kod par├žac─▒─č─▒, ├Ânceden e─čitilmi┼č bir modeli y├╝klemenin ve bir g├Âr├╝nt├╝ ├╝zerinde tahmin ├žal─▒┼čt─▒rman─▒n basitli─čini g├Âstermektedir.

Val Kullan─▒m─▒

Modelin bir veri k├╝mesi ├╝zerinde do─črulanmas─▒ a┼ča─č─▒daki ┼čekilde yap─▒labilir:

├ľrnek

from ultralytics import FastSAM

# Create a FastSAM model
model = FastSAM("FastSAM-s.pt")  # or FastSAM-x.pt

# Validate the model
results = model.val(data="coco8-seg.yaml")
# Load a FastSAM model and validate it on the COCO8 example dataset at image size 640
yolo segment val model=FastSAM-s.pt data=coco8.yaml imgsz=640

L├╝tfen FastSAM adresinin yaln─▒zca tek bir nesne s─▒n─▒f─▒n─▒n alg─▒lanmas─▒n─▒ ve segmentasyonunu destekledi─čini unutmay─▒n. Bu, t├╝m nesneleri ayn─▒ s─▒n─▒f olarak tan─▒yaca─č─▒ ve b├Âl├╝mlere ay─▒raca─č─▒ anlam─▒na gelir. Bu nedenle, veri k├╝mesini haz─▒rlarken t├╝m nesne kategori kimliklerini 0'a d├Ân├╝┼čt├╝rmeniz gerekir.

Par├ža Kullan─▒m─▒

Bir g├Âr├╝nt├╝ ├╝zerinde nesne izleme ger├žekle┼čtirmek i├žin track y├Ântemi a┼ča─č─▒da g├Âsterildi─či gibi:

├ľrnek

from ultralytics import FastSAM

# Create a FastSAM model
model = FastSAM("FastSAM-s.pt")  # or FastSAM-x.pt

# Track with a FastSAM model on a video
results = model.track(source="path/to/video.mp4", imgsz=640)
yolo segment track model=FastSAM-s.pt source="path/to/video/file.mp4" imgsz=640

FastSAM Resmi Kullan─▒m

FastSAM do─črudan https://github.com/CASIA-IVA-Lab/FastSAM deposundan da edinilebilir. Burada FastSAM adresini kullanmak i├žin atabilece─činiz tipik ad─▒mlara k─▒sa bir genel bak─▒┼č yer almaktad─▒r:

Kurulum

  1. FastSAM deposunu klonlay─▒n:

    git clone https://github.com/CASIA-IVA-Lab/FastSAM.git
    
  2. Python 3.9 ile bir Conda ortam─▒ olu┼čturun ve etkinle┼čtirin:

    conda create -n FastSAM python=3.9
    conda activate FastSAM
    
  3. Klonlanm─▒┼č depoya gidin ve gerekli paketleri y├╝kleyin:

    cd FastSAM
    pip install -r requirements.txt
    
  4. CLIP modelini kurun:

    pip install git+https://github.com/ultralytics/CLIP.git
    

├ľrnek Kullan─▒m

  1. Bir model kontrol noktas─▒ indirin.

  2. ├ç─▒kar─▒m i├žin FastSAM adresini kullan─▒n. ├ľrnek komutlar:

    • Bir g├Âr├╝nt├╝deki her ┼čeyi b├Âl├╝mlere ay─▒r─▒n:

      python Inference.py --model_path ./weights/FastSAM.pt --img_path ./images/dogs.jpg
      
    • Metin istemini kullanarak belirli nesneleri segmentlere ay─▒r─▒n:

      python Inference.py --model_path ./weights/FastSAM.pt --img_path ./images/dogs.jpg --text_prompt "the yellow dog"
      
    • Nesneleri bir s─▒n─▒rlay─▒c─▒ kutu i├žinde segmentlere ay─▒r─▒n (xywh format─▒nda kutu koordinatlar─▒n─▒ sa─člay─▒n):

      python Inference.py --model_path ./weights/FastSAM.pt --img_path ./images/dogs.jpg --box_prompt "[570,200,230,400]"
      
    • Belirli noktalar─▒n yak─▒n─▒ndaki nesneleri segmentlere ay─▒r─▒n:

      python Inference.py --model_path ./weights/FastSAM.pt --img_path ./images/dogs.jpg --point_prompt "[[520,360],[620,300]]" --point_label "[1,0]"
      

Ayr─▒ca, g├Ârsel bir deneyim i├žin FastSAM adresini bir Colab dem osu arac─▒l─▒─č─▒yla veya HuggingFace web demosunda deneyebilirsiniz.

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

Ger├žek zamanl─▒ ├Ârnek segmentasyonu alan─▒ndaki ├Ânemli katk─▒lar─▒ndan dolay─▒ FastSAM yazarlar─▒na te┼čekk├╝r ederiz:

@misc{zhao2023fast,
      title={Fast Segment Anything},
      author={Xu Zhao and Wenchao Ding and Yongqi An and Yinglong Du and Tao Yu and Min Li and Ming Tang and Jinqiao Wang},
      year={2023},
      eprint={2306.12156},
      archivePrefix={arXiv},
      primaryClass={cs.CV}
}

Orijinal FastSAM makalesi arXiv'de bulunabilir. Yazarlar ├žal─▒┼čmalar─▒n─▒ kamuya a├ž─▒k hale getirmi┼člerdir ve kod taban─▒na GitHub ├╝zerinden eri┼čilebilir. Alan─▒ ilerletme ve ├žal─▒┼čmalar─▒n─▒ daha geni┼č bir topluluk i├žin eri┼čilebilir hale getirme ├žabalar─▒n─▒ takdir ediyoruz.



Created 2023-11-12, Updated 2024-06-10
Authors: glenn-jocher (11), RizwanMunawar (2), Laughing-q (1), berry-ding (1)

Yorumlar