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

इंस्टेंस सेगमेंटेशन डेटासेट अवलोकन

समर्थित डेटासेट प्रारूप

Ultralytics YOLO प्रारूप

प्रशिक्षण के लिए उपयोग किया जाने वाला डेटासेट लेबल प्रारूप YOLO विभाजन मॉडल इस प्रकार हैं:

  1. प्रति छवि एक टेक्स्ट फ़ाइल: डेटासेट में प्रत्येक छवि में छवि फ़ाइल और ".txt" एक्सटेंशन के समान नाम वाली एक संबंधित टेक्स्ट फ़ाइल होती है।
  2. प्रति ऑब्जेक्ट एक पंक्ति: टेक्स्ट फ़ाइल में प्रत्येक पंक्ति छवि में एक ऑब्जेक्ट इंस्टेंस से मेल खाती है।
  3. प्रति पंक्ति ऑब्जेक्ट जानकारी: प्रत्येक पंक्ति में ऑब्जेक्ट आवृत्ति के बारे में निम्न जानकारी है:
    • ऑब्जेक्ट क्लास इंडेक्स: ऑब्जेक्ट के वर्ग का प्रतिनिधित्व करने वाला एक पूर्णांक (जैसे, व्यक्ति के लिए 0, कार के लिए 1, आदि)।
    • ऑब्जेक्ट बाउंडिंग निर्देशांक: बाउंडिंग मास्क क्षेत्र के चारों ओर निर्देशांक, 0 और 1 के बीच सामान्यीकृत होता है।

विभाजन डेटासेट फ़ाइल में एकल पंक्ति का प्रारूप इस प्रकार है:

<class-index> <x1> <y1> <x2> <y2> ... <xn> <yn>

इस प्रारूप में, <class-index> वस्तु के लिए वर्ग का सूचकांक है, और <x1> <y1> <x2> <y2> ... <xn> <yn> वस्तु के विभाजन मुखौटा के बाउंडिंग निर्देशांक हैं। निर्देशांक रिक्त स्थान से अलग होते हैं।

यहाँ का एक उदाहरण है YOLO 3-बिंदु खंड और 5-बिंदु खंड से बने दो ऑब्जेक्ट के साथ एकल छवि के लिए डेटासेट प्रारूप।

0 0.681 0.485 0.670 0.487 0.676 0.487
1 0.504 0.000 0.501 0.004 0.498 0.004 0.493 0.010 0.492 0.0104

नोक

  • प्रत्येक पंक्ति की लंबाई बराबर होना जरूरी नहीं है।
  • प्रत्येक विभाजन लेबल में एक होना चाहिए न्यूनतम 3 XY अंक: <class-index> <x1> <y1> <x2> <y2> <x3> <y3>

डेटासेट YAML प्रारूप

वही Ultralytics फ्रेमवर्क डिटेक्शन मॉडल के प्रशिक्षण के लिए डेटासेट और मॉडल कॉन्फ़िगरेशन को परिभाषित करने के लिए एक YAML फ़ाइल स्वरूप का उपयोग करता है। डिटेक्शन डेटासेट को परिभाषित करने के लिए उपयोग किए जाने वाले YAML प्रारूप का एक उदाहरण यहां दिया गया है:

# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: ../datasets/coco8-seg  # dataset root dir
train: images/train  # train images (relative to 'path') 4 images
val: images/val  # val images (relative to 'path') 4 images
test:  # test images (optional)

# Classes (80 COCO classes)
names:
  0: person
  1: bicycle
  2: car
  # ...
  77: teddy bear
  78: hair drier
  79: toothbrush

वही train और val फ़ील्ड क्रमशः प्रशिक्षण और सत्यापन छवियों वाले निर्देशिकाओं के पथ निर्दिष्ट करते हैं।

names वर्ग के नामों का एक शब्दकोश है। नामों का क्रम ऑब्जेक्ट क्लास सूचकांकों के क्रम से मेल खाना चाहिए YOLO डेटासेट फ़ाइलें।

उपयोग

उदाहरण

from ultralytics import YOLO

# Load a model
model = YOLO('yolov8n-seg.pt')  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data='coco8-seg.yaml', epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=coco8-seg.yaml model=yolov8n-seg.pt epochs=100 imgsz=640

समर्थित डेटासेट

समर्थित डेटासेट

  • COCO: ऑब्जेक्ट डिटेक्शन, सेगमेंटेशन और कैप्शनिंग के लिए एक व्यापक डेटासेट, जिसमें श्रेणियों की एक विस्तृत श्रृंखला में 200K से अधिक लेबल वाली छवियां हैं।

  • COCO8-सेग: COCO का एक कॉम्पैक्ट, 8-इमेज सबसेट जो सेगमेंटेशन मॉडल प्रशिक्षण के त्वरित परीक्षण के लिए डिज़ाइन किया गया है, CI चेक और वर्कफ़्लो सत्यापन के लिए आदर्श है ultralytics कोष।

  • Carparts-seg: कार भागों के विभाजन पर केंद्रित एक विशेष डेटासेट, ऑटोमोटिव अनुप्रयोगों के लिए आदर्श। इसमें व्यक्तिगत कार घटकों के विस्तृत एनोटेशन के साथ विभिन्न प्रकार के वाहन शामिल हैं।

  • क्रैक-सेग: विभिन्न सतहों में दरारों के विभाजन के लिए तैयार किया गया एक डेटासेट। बुनियादी ढांचे के रखरखाव और गुणवत्ता नियंत्रण के लिए आवश्यक, यह संरचनात्मक कमजोरियों की पहचान करने के लिए प्रशिक्षण मॉडल के लिए विस्तृत इमेजरी प्रदान करता है।

  • पैकेज-सेग: विभिन्न प्रकार की पैकेजिंग सामग्री और आकृतियों के विभाजन के लिए समर्पित एक डेटासेट। यह रसद और गोदाम स्वचालन के लिए विशेष रूप से उपयोगी है, पैकेज हैंडलिंग और सॉर्टिंग के लिए सिस्टम के विकास में सहायता करता है।

अपना खुद का डेटासेट जोड़ना

यदि आपके पास अपना डेटासेट है और आप इसे विभाजन मॉडल के प्रशिक्षण के लिए उपयोग करना चाहते हैं Ultralytics YOLO प्रारूप, सुनिश्चित करें कि यह ऊपर निर्दिष्ट प्रारूप का पालन करता है "Ultralytics YOLO प्रारूप"। अपने एनोटेशन को आवश्यक प्रारूप में कनवर्ट करें और YAML कॉन्फ़िगरेशन फ़ाइल में पथ, कक्षाओं की संख्या और वर्ग के नाम निर्दिष्ट करें।

पोर्ट या कन्वर्ट लेबल प्रारूप

COCO डेटासेट प्रारूप को YOLO प्रारूप

आप आसानी से लोकप्रिय COCO डेटासेट प्रारूप से लेबल को में बदल सकते हैं YOLO निम्न कोड स्निपेट का उपयोग करके स्वरूपित करें:

उदाहरण

from ultralytics.data.converter import convert_coco

convert_coco(labels_dir='path/to/coco/annotations/', use_segments=True)

इस रूपांतरण उपकरण का उपयोग COCO डेटासेट या COCO प्रारूप में किसी भी डेटासेट को बदलने के लिए किया जा सकता है Ultralytics YOLO प्रारूप।

दोबारा जांचना याद रखें कि आप जिस डेटासेट का उपयोग करना चाहते हैं वह आपके मॉडल के अनुकूल है और आवश्यक प्रारूप सम्मेलनों का पालन करता है। सफल ऑब्जेक्ट डिटेक्शन मॉडल के प्रशिक्षण के लिए उचित रूप से स्वरूपित डेटासेट महत्वपूर्ण हैं।

ऑटो-एनोटेशन

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

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

का उपयोग करके अपने डेटासेट को ऑटो-एनोटेट करने के लिए Ultralytics ढांचे का उपयोग करें, आप auto_annotate नीचे दिखाए गए अनुसार कार्य:

उदाहरण

from ultralytics.data.annotator import auto_annotate

auto_annotate(data="path/to/images", det_model="yolov8x.pt", sam_model='sam_b.pt')

निश्चित रूप से, यहां कोड स्निपेट के साथ अपडेट की गई तालिका है:

युक्ति प्रकार या क़िस्‍म चूक
data str एनोटेट किए जाने वाले चित्रों वाले फ़ोल्डर का पथ। None
det_model str, optional पूर्व प्रशिक्षित YOLO डिटेक्शन मॉडल। करने के लिए चूक 'yolov8x.pt'. 'yolov8x.pt'
sam_model str, optional पूर्व प्रशिक्षित SAM विभाजन मॉडल। करने के लिए चूक 'sam_b.pt'. 'sam_b.pt'
device str, optional मॉडल को चलाने के लिए उपकरण। एक खाली स्ट्रिंग के लिए डिफ़ॉल्ट (सीपीयू या जीपीयू, यदि उपलब्ध हो)। ''
output_dir str or None, optional एनोटेट किए गए परिणामों को सहेजने के लिए निर्देशिका। एक के लिए डिफ़ॉल्ट 'labels' फ़ोल्डर के रूप में एक ही निर्देशिका में 'data'. None

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

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



2023-11-12 बनाया गया, अपडेट किया गया 2024-04-18
लेखक: ग्लेन-जोचर (8)

टिप्पणियाँ