सामग्री पर जाएं

फास्ट सेगमेंट कुछ भी मॉडल (FastSAM)

फास्ट सेगमेंट कुछ भी मॉडल (FastSAM) सेगमेंट एनीथिंग कार्य के लिए एक उपन्यास, रीयल-टाइम सीएनएन-आधारित समाधान है। यह कार्य विभिन्न संभावित उपयोगकर्ता इंटरैक्शन संकेतों के आधार पर किसी भी वस्तु को एक छवि के भीतर विभाजित करने के लिए डिज़ाइन किया गया है। FastSAM प्रतिस्पर्धी प्रदर्शन को बनाए रखते हुए कम्प्यूटेशनल मांगों को महत्वपूर्ण रूप से कम करता है, जिससे यह विभिन्न प्रकार के दृष्टि कार्यों के लिए एक व्यावहारिक विकल्प बन जाता है।



सतर्कता: Object Tracking using FastSAM with Ultralytics

Model Architecture

फास्ट सेगमेंट कुछ भी मॉडल (FastSAM) वास्तुकला अवलोकन

विहंगावलोकन

FastSAM की सीमाओं को संबोधित करने के लिए डिज़ाइन किया गया है सेगमेंट कुछ भी मॉडल (SAM), पर्याप्त कम्प्यूटेशनल संसाधन आवश्यकताओं के साथ एक भारी ट्रांसफार्मर मॉडल। वही FastSAM सेगमेंट को कुछ भी कार्य को दो अनुक्रमिक चरणों में अलग करता है: सभी-उदाहरण विभाजन और शीघ्र-निर्देशित चयन। पहला चरण उपयोग करता है YOLOv8-seg छवि में सभी उदाहरणों के विभाजन मास्क का उत्पादन करने के लिए। दूसरे चरण में, यह प्रॉम्प्ट के अनुरूप क्षेत्र-की-रुचि को आउटपुट करता है।

प्रमुख विशेषताऐं

  1. वास्तविक समय समाधान: सीएनएन की कम्प्यूटेशनल दक्षता का लाभ उठाकर, FastSAM सेगमेंट कुछ भी कार्य के लिए एक वास्तविक समय समाधान प्रदान करता है, जिससे यह औद्योगिक अनुप्रयोगों के लिए मूल्यवान हो जाता है जिन्हें त्वरित परिणामों की आवश्यकता होती है।

  2. दक्षता और प्रदर्शन: FastSAM प्रदर्शन की गुणवत्ता से समझौता किए बिना कम्प्यूटेशनल और संसाधन मांगों में उल्लेखनीय कमी प्रदान करता है। यह तुलनीय प्रदर्शन प्राप्त करता है SAM लेकिन काफी कम कम्प्यूटेशनल संसाधनों के साथ, वास्तविक समय के आवेदन को सक्षम करना।

  3. शीघ्र-निर्देशित विभाजन: FastSAM विभिन्न संभावित उपयोगकर्ता इंटरैक्शन संकेतों द्वारा निर्देशित छवि के भीतर किसी भी वस्तु को विभाजित कर सकते हैं, विभिन्न परिदृश्यों में लचीलापन और अनुकूलन क्षमता प्रदान करते हैं।

  4. आधारित YOLOv8-सेग: FastSAM पर आधारित है YOLOv8-SEG, एक ऑब्जेक्ट डिटेक्टर जो एक इंस्टेंस सेगमेंटेशन ब्रांच से लैस है। यह इसे एक छवि में सभी उदाहरणों के विभाजन मास्क को प्रभावी ढंग से उत्पन्न करने की अनुमति देता है।

  5. बेंचमार्क पर प्रतिस्पर्धी परिणाम: एमएस कोको पर ऑब्जेक्ट प्रस्ताव कार्य पर, FastSAM की तुलना में काफी तेज गति से उच्च स्कोर प्राप्त करता है SAM एकल NVIDIA RTX 3090 पर, इसकी दक्षता और क्षमता का प्रदर्शन करता है।

  6. व्यावहारिक अनुप्रयोग: प्रस्तावित दृष्टिकोण वास्तव में उच्च गति पर बड़ी संख्या में दृष्टि कार्यों के लिए एक नया, व्यावहारिक समाधान प्रदान करता है, वर्तमान तरीकों की तुलना में दसियों या सैकड़ों गुना तेज।

  7. मॉडल संपीड़न व्यवहार्यता: FastSAM एक पथ की व्यवहार्यता को दर्शाता है जो संरचना से पहले एक कृत्रिम शुरू करके कम्प्यूटेशनल प्रयास को काफी कम कर सकता है, इस प्रकार सामान्य दृष्टि कार्यों के लिए बड़े मॉडल वास्तुकला के लिए नई संभावनाएं खोल सकता है।

उपलब्ध मॉडल, समर्थित कार्य और ऑपरेटिंग मोड

यह तालिका उपलब्ध मॉडलों को उनके विशिष्ट पूर्व-प्रशिक्षित भार, उनके द्वारा समर्थित कार्यों और अनुमान, सत्यापन, प्रशिक्षण और निर्यात जैसे विभिन्न ऑपरेटिंग मोड के साथ उनकी संगतता के साथ प्रस्तुत करती है, जो समर्थित मोड के लिए इमोजी और ❌ असमर्थित मोड के लिए इमोजी द्वारा ✅ इंगित की जाती है।

मॉडल प्रकार पूर्व-प्रशिक्षित वजन समर्थित कार्य अनुमान मान्यता प्रशिक्षण निर्यातित माल
FastSAM-दक्षिणी FastSAM-s.pt इंस्टेंस सेगमेंटेशन
FastSAM-एक्स FastSAM-x.pt इंस्टेंस सेगमेंटेशन

उपयोग के उदाहरण

वही FastSAM मॉडल को अपने में एकीकृत करना आसान है Python अनुप्रयोगों। Ultralytics उपयोगकर्ता के अनुकूल प्रदान करता है Python API और CLI विकास को सुव्यवस्थित करने के लिए आदेश।

उपयोग की भविष्यवाणी करें

किसी छवि पर ऑब्जेक्ट डिटेक्शन करने के लिए, predict विधि जैसा कि नीचे दिखाया गया है:

उदाहरण

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

यह स्निपेट पूर्व-प्रशिक्षित मॉडल लोड करने और छवि पर पूर्वानुमान चलाने की सरलता को प्रदर्शित करता है।

वैल उपयोग

डेटासेट पर मॉडल का सत्यापन निम्नानुसार किया जा सकता है:

उदाहरण

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

कृपया ध्यान दें कि FastSAM केवल वस्तु के एकल वर्ग का पता लगाने और विभाजन का समर्थन करता है। इसका मतलब है कि यह सभी वस्तुओं को एक ही वर्ग के रूप में पहचानेगा और खंडित करेगा। इसलिए, डेटासेट तैयार करते समय, आपको सभी ऑब्जेक्ट श्रेणी आईडी को 0 में बदलने की आवश्यकता है।

ट्रैक उपयोग

किसी छवि पर ऑब्जेक्ट ट्रैकिंग करने के लिए, track विधि जैसा कि नीचे दिखाया गया है:

उदाहरण

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 आधिकारिक उपयोग

FastSAM से सीधे भी उपलब्ध है https://github.com/CASIA-IVA-Lab/FastSAM कोष। यहां उन विशिष्ट चरणों का संक्षिप्त विवरण दिया गया है जिनका आप उपयोग कर सकते हैं FastSAM:

संस्थापन

  1. क्लोन करें FastSAM कोष:

    git clone https://github.com/CASIA-IVA-Lab/FastSAM.git
    
  2. के साथ एक कोंडा वातावरण बनाएं और सक्रिय करें Python 3.9:

    conda create -n FastSAM python=3.9
    conda activate FastSAM
    
  3. क्लोन किए गए रिपॉजिटरी पर नेविगेट करें और आवश्यक पैकेज स्थापित करें:

    cd FastSAM
    pip install -r requirements.txt
    
  4. CLIP मॉडल स्थापित करें:

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

उदाहरण उपयोग

  1. एक मॉडल चेकपॉइंट डाउनलोड करें

  2. प्रयोग FastSAM अनुमान के लिए। उदाहरण आदेश:

    • एक छवि में सब कुछ खंडित करें:

      python Inference.py --model_path ./weights/FastSAM.pt --img_path ./images/dogs.jpg
      
    • टेक्स्ट प्रॉम्प्ट का उपयोग करके विशिष्ट ऑब्जेक्ट्स को सेगमेंट करें:

      python Inference.py --model_path ./weights/FastSAM.pt --img_path ./images/dogs.jpg --text_prompt "the yellow dog"
      
    • ऑब्जेक्ट्स को बाउंडिंग बॉक्स के भीतर सेगमेंट करें (xywh प्रारूप में बॉक्स निर्देशांक प्रदान करें):

      python Inference.py --model_path ./weights/FastSAM.pt --img_path ./images/dogs.jpg --box_prompt "[570,200,230,400]"
      
    • विशिष्ट बिंदुओं के पास वस्तुओं को खंडित करें:

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

इसके अतिरिक्त, आप कोशिश कर सकते हैं FastSAM Colab डेमो के माध्यम से याHuggingFace एक दृश्य अनुभव के लिए वेब डेमो।

प्रशंसा पत्र और पावती

हम स्वीकार करना चाहेंगे FastSAM वास्तविक समय उदाहरण विभाजन के क्षेत्र में उनके महत्वपूर्ण योगदान के लिए लेखक:

@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}
}

मूल FastSAM कागज arXiv पर पाया जा सकता है। लेखकों ने अपना काम सार्वजनिक रूप से उपलब्ध कराया है, और कोडबेस को GitHub पर एक्सेस किया जा सकता है। हम क्षेत्र को आगे बढ़ाने और उनके काम को व्यापक समुदाय के लिए सुलभ बनाने में उनके प्रयासों की सराहना करते हैं।



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

टिप्पणियाँ