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

सेगमेंट कुछ भी मॉडल (SAM)

सेगमेंट एनीथिंग मॉडल के साथ छवि विभाजन की सीमा में आपका स्वागत है, या SAM. इस क्रांतिकारी मॉडल ने वास्तविक समय के प्रदर्शन के साथ शीघ्र छवि विभाजन शुरू करके, क्षेत्र में नए मानक स्थापित करके खेल को बदल दिया है।

का परिचय SAM: सेगमेंट कुछ भी मॉडल

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

SAMउन्नत डिज़ाइन इसे पूर्व ज्ञान के बिना नए छवि वितरण और कार्यों के अनुकूल होने की अनुमति देता है, एक विशेषता जिसे शून्य-शॉट स्थानांतरण के रूप में जाना जाता है। विशाल SA-1B डेटासेट पर प्रशिक्षित, जिसमें 11 मिलियन से अधिक सावधानीपूर्वक क्यूरेट की गई छवियों में फैले 1 बिलियन से अधिक मास्क हैं, SAM प्रभावशाली शून्य-शॉट प्रदर्शन प्रदर्शित किया है, कई मामलों में पिछले पूरी तरह से पर्यवेक्षित परिणामों को पार कर गया है।

डेटासेट नमूना छवि SA-1B Exampले छविहरू। डेटासेट छवियों ने नए शुरू किए गए SA-1B डेटासेट से मास्क को ओवरलैड किया। SA-1B में 11M विविध, उच्च-रिज़ॉल्यूशन, लाइसेंस प्राप्त और गोपनीयता की रक्षा करने वाली छवियां और 1.1B उच्च-गुणवत्ता वाले विभाजन मास्क शामिल हैं। इन मुखौटों को पूरी तरह से स्वचालित रूप से एनोटेट किया गया था SAM, और जैसा कि मानव रेटिंग और कई प्रयोगों द्वारा सत्यापित किया गया है, उच्च गुणवत्ता और विविधता के हैं। छवियों को विज़ुअलाइज़ेशन के लिए प्रति छवि मास्क की संख्या के आधार पर समूहीकृत किया जाता है (औसतन प्रति छवि ∼100 मास्क हैं)।

सेगमेंट एनीथिंग मॉडल की मुख्य विशेषताएं (SAM)

  • शीघ्र विभाजन कार्य: SAM मन में एक शीघ्र विभाजन कार्य के साथ डिजाइन किया गया था, यह इस तरह के स्थानिक या पाठ सुराग के रूप में किसी भी संकेत से वैध विभाजन मास्क उत्पन्न करने के लिए अनुमति देता है.
  • उन्नत वास्तुकला: सेगमेंट एनीथिंग मॉडल एक शक्तिशाली छवि एनकोडर, एक प्रॉम्प्ट एनकोडर और एक हल्का मास्क डिकोडर नियोजित करता है। यह अनूठी वास्तुकला लचीली संकेत, वास्तविक समय मुखौटा गणना, और विभाजन कार्यों में अस्पष्टता जागरूकता सक्षम बनाता है।
  • SA-1B डेटासेट: सेगमेंट एनीथिंग प्रोजेक्ट द्वारा पेश किया गया, SA-1B डेटासेट में 11 मिलियन छवियों पर 1 बिलियन से अधिक मास्क हैं। आज तक के सबसे बड़े विभाजन डेटासेट के रूप में, यह प्रदान करता है SAM एक विविध और बड़े पैमाने पर प्रशिक्षण डेटा स्रोत के साथ।
  • शून्य-शॉट प्रदर्शन: SAM विभिन्न विभाजन कार्यों में उत्कृष्ट शून्य-शॉट प्रदर्शन प्रदर्शित करता है, जिससे यह त्वरित इंजीनियरिंग की न्यूनतम आवश्यकता के साथ विविध अनुप्रयोगों के लिए उपयोग के लिए तैयार उपकरण बन जाता है।

सेगमेंट एनीथिंग मॉडल और SA-1B डेटासेट को गहराई से देखने के लिए, कृपया सेगमेंट एनीथिंग वेबसाइट पर जाएं और रिसर्च पेपर सेगमेंट एनीथिंग देखें।

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

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

मॉडल प्रकार पूर्व-प्रशिक्षित वजन समर्थित कार्य अनुमान मान्यता प्रशिक्षण निर्यातित माल
SAM नींव sam_b.pt इंस्टेंस सेगमेंटेशन
SAM बड़ा sam_l.pt इंस्टेंस सेगमेंटेशन

इसका उपयोग कैसे करें: SAM: छवि विभाजन में बहुमुखी प्रतिभा और शक्ति

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

SAM भविष्यवाणी का उदाहरण

संकेतों के साथ सेगमेंट

दिए गए संकेतों के साथ छवि खंडित करें।

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

सब कुछ सेगमेंट करें

पूरी छवि को खंडित करें।

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
  • यहां तर्क पूरी छवि को खंडित करना है यदि आप कोई संकेत (bboxes/points/masks) पास नहीं करते हैं।

SAMPredictor उदाहरण

इस तरह आप एक बार छवि सेट कर सकते हैं और कई बार छवि एनकोडर चलाने के बिना कई बार संकेत दे सकते हैं।

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

अतिरिक्त args के साथ सब कुछ खंडित करें।

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 तुलना बनाम YOLOv8

यहां हम मेटा के सबसे छोटे की तुलना करते हैं SAM को गढ़ना SAM-बी, के साथ Ultralytics सबसे छोटा विभाजन मॉडल, YOLOv8n-सेग:

को गढ़ना आकार वाला पैरामीटर स्पीड (सीपीयू)
मेटा का SAM-जन्‍म 358 एमबी 94.7 M 51096 एमएस/आईएम
MobileSAM 40.7 एमबी 10.1 M 46122 एमएस/आईएम
FastSAM-s के साथ YOLOv8 मेरुदंड 23.7 एमबी 11.8 M 115 एमएस/आईएम
Ultralytics YOLOv8n-एसईजी 6.7 एमबी (53.4x छोटा) 3.4 मीटर (27.9x कम) 59 एमएस/आईएम (866x तेज)

यह तुलना मॉडल के आकार और मॉडलों के बीच गति में क्रम-परिमाण अंतर को दर्शाती है। जबकि SAM स्वचालित सेगमेंटिंग के लिए अद्वितीय क्षमताएं प्रस्तुत करता है, यह प्रत्यक्ष प्रतियोगी नहीं है YOLOv8 सेगमेंट मॉडल, जो छोटे, तेज और अधिक कुशल हैं।

टेस्ट 2023GB RAM के साथ 2 Apple M16 Macbook पर चलते हैं। इस परीक्षण को पुन: पेश करने के लिए:

उदाहरण

from ultralytics import FastSAM, SAM, YOLO

# 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')

ऑटो-एनोटेशन: सेगमेंटेशन डेटासेट के लिए एक त्वरित पथ

ऑटो-एनोटेशन किसकी एक प्रमुख विशेषता है? SAM, उपयोगकर्ताओं को पूर्व-प्रशिक्षित पहचान मॉडल का उपयोग करके एक विभाजन डेटासेट उत्पन्न करने की अनुमति देता है। यह सुविधा समय लेने वाली मैनुअल लेबलिंग की आवश्यकता को दरकिनार करते हुए, बड़ी संख्या में छवियों के तेजी से और सटीक एनोटेशन को सक्षम बनाती है।

डिटेक्शन मॉडल का उपयोग करके अपना सेगमेंटेशन डेटासेट जनरेट करें

अपने डेटासेट को Ultralytics framework, auto_annotate नीचे दिखाए गए अनुसार कार्य:

उदाहरण

from ultralytics.data.annotator import auto_annotate

auto_annotate(data="path/to/images", det_model="yolov8x.pt", sam_model='sam_b.pt')
युक्ति प्रकार विवरण: __________ चूक
डाटा एसटीआर एनोटेट किए जाने वाले चित्रों वाले फ़ोल्डर का पथ।
det_model एसटीआर, वैकल्पिक पूर्व प्रशिक्षित YOLO डिटेक्शन मॉडल। ' के लिए चूकyolov8x.pt'। 'yolov8x.pt'
sam_को गढ़ना एसटीआर, वैकल्पिक पूर्व प्रशिक्षित SAM विभाजन मॉडल। ' के लिए चूकsam_b.pt'। 'sam_b.pt'
उपकरण एसटीआर, वैकल्पिक मॉडल को चलाने के लिए उपकरण। एक खाली स्ट्रिंग के लिए डिफ़ॉल्ट (सीपीयू या जीपीयू, यदि उपलब्ध हो)।
output_dir str, कोई नहीं, वैकल्पिक एनोटेट किए गए परिणामों को सहेजने के लिए निर्देशिका। 'डेटा' के समान निर्देशिका में 'लेबल' फ़ोल्डर में डिफ़ॉल्ट। कोई नहीं

वही auto_annotate फ़ंक्शन आपकी छवियों का मार्ग लेता है, पूर्व-प्रशिक्षित पहचान निर्दिष्ट करने के लिए वैकल्पिक तर्कों के साथ और SAM विभाजन मॉडल, मॉडल को चलाने के लिए उपकरण, और एनोटेट किए गए परिणामों को सहेजने के लिए आउटपुट निर्देशिका।

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

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

यदि आप पाते हैं SAM आपके शोध या विकास कार्य में उपयोगी, कृपया हमारे पेपर का हवाला देने पर विचार करें:

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

हम कंप्यूटर विज़न समुदाय के लिए इस मूल्यवान संसाधन को बनाने और बनाए रखने के लिए मेटा एआई के प्रति अपना आभार व्यक्त करना चाहते हैं।

कीवर्ड: सेगमेंट कुछ भी, सेगमेंट कुछ भी मॉडल, SAMके परे SAM, छवि विभाजन, शीघ्र विभाजन, शून्य-शॉट प्रदर्शन, SA-1B डेटासेट, उन्नत वास्तुकला, ऑटो-एनोटेशन, Ultralytics, पूर्व प्रशिक्षित मॉडल, SAM नींव SAM बड़े, उदाहरण विभाजन, कंप्यूटर दृष्टि, एआई, कृत्रिम बुद्धिमत्ता, मशीन लर्निंग, डेटा एनोटेशन, विभाजन मास्क, डिटेक्शन मॉडल, YOLO डिटेक्शन मॉडल, बिब्टेक्स, मेटा एआई।



2023-11-12 बनाया गया, अपडेट किया गया 2024-01-16
लेखक: ग्लेन-जोचर (9), चाओनिंगझांग (1), लाफिंग-क्यू (1)

टिप्पणियाँ