For the complete documentation index, see llms.txt. This page is also available as Markdown.

डेटासेट अपलोड करें

Python SDK के साथ इमेज और एनोटेशन के संरचित डेटासेट को Roboflow प्रोजेक्ट में अपलोड करें।

यह पेज Python SDK, REST zip endpoint, या CLI का उपयोग करके किसी मौजूदा लेबल किए गए डेटासेट—छवियों और उनकी एनोटेशन सहित—के बल्क इंपोर्ट को कवर करता है। API के माध्यम से अलग-अलग छवियों को अपलोड और प्रबंधित करने के लिए, देखें छवियों को प्रबंधित करें.

Python SDK

Workspace.upload_dataset() एक संरचित डेटासेट (छवियाँ + मिलती-जुलती एनोटेशन) को Roboflow प्रोजेक्ट पर अपलोड करता है। यदि प्रोजेक्ट मौजूद नहीं है, तो वह बनाया जाएगा; अन्यथा नई छवियाँ मौजूदा प्रोजेक्ट में जोड़ दी जाती हैं।

import roboflow

rf = roboflow.Roboflow(api_key="YOUR_API_KEY")
workspace = rf.workspace()

workspace.upload_dataset(
    "./dataset/",                  # संरचित डेटासेट डायरेक्टरी का पथ
    "my-detector",                 # प्रोजेक्ट ID (यदि यह मौजूद नहीं है तो बनाया जाएगा)
    num_workers=10,
    project_license="MIT",
    project_type="object-detection",
    batch_name=None,
    num_retries=0,
    is_prediction=False,           # समीक्षा की प्रतीक्षा कर रही मॉडल-जनित एनोटेशन के लिए True
)

पैरामीटर

  • dataset_path (str) - डेटासेट रूट का पथ।

  • project_name (str) - गंतव्य प्रोजेक्ट का ID। यदि यह मौजूद नहीं है तो बनाया जाएगा।

  • num_workers (int, default 10) - समकालिक अपलोड। हम 25 से अधिक न जाने की अनुशंसा करते हैं।

  • project_license (str, default "MIT") - नए बनाए गए प्रोजेक्ट के लिए लाइसेंस। पर सेट करें "Private" निजी प्रोजेक्ट्स के लिए (केवल सशुल्क योजनाएँ)।

  • project_type (str, default "object-detection") - नए बनाए गए प्रोजेक्ट का प्रकार। यदि प्रोजेक्ट पहले से मौजूद है तो इसे अनदेखा किया जाता है।

  • batch_name (str, optional) - इन अपलोड्स को एक नामित बैच के अंतर्गत समूहित करें। यह लेबलिंग राउंड के स्रोत को ट्रैक करने में उपयोगी है।

  • num_retries (int, default 0) - अस्थायी अपलोड विफलताओं को पुनः प्रयास करें।

  • is_prediction (bool, default False) - इसे सेट करें True एनोटेशन को ग्राउंड ट्रुथ के बजाय समीक्षा की प्रतीक्षा कर रही मॉडल भविष्यवाणियों के रूप में अपलोड करने के लिए।

जहाँ भविष्यवाणियाँ पहुँचती हैं

जब आप किसी ऐसी छवि पर भविष्यवाणी सहेजते हैं जो अभी भी किसी अपलोड बैच में है, तो Roboflow उस छवि को उस बैच के लिए एक समीक्षा जॉब में स्थानांतरित कर देता है। लेबल्स को ग्राउंड ट्रुथ बनने से पहले उन्हें स्वीकृत या ठीक करने के लिए जॉब खोलें।

यदि छवि पहले से किसी एनोटेशन जॉब को असाइन की गई है, तो वह उसी जॉब में रहती है।

अपेक्षित डायरेक्टरी लेआउट

COCO डेटासेट के लिए:

VOC के लिए, मिलती-जुलती .xml फ़ाइलें प्रत्येक छवि के साथ रखें। YOLO के लिए, मिलती-जुलती .txt फ़ाइलें तथा एक data.yaml जिसमें वर्ग सूची का वर्णन हो।

SHA-256 डिडुप (v1.3.6+) पर नोट

से roboflow 1.3.6 तक, SDK Pillow के माध्यम से पुनः-एन्कोड करने के बजाय मूल छवि बाइट्स अपलोड करता है। इससे वेब अपलोडर के साथ समानता आती है और Roboflow सर्वर को SHA-256 द्वारा अपलोड्स को डिडुप करने देती है—एक ही छवि को फिर से अपलोड करना (उदाहरण के लिए किसी अलग बैच में) अतिरिक्त स्टोरेज क्रेडिट खर्च किए बिना सफल होता है।

REST API

डेटासेट Zip अपलोड करें

एक डेटासेट को एकल zip संग्रह (2 GB तक, 10,000 फ़ाइलें) के रूप में एक असिंक्रोनस टास्क का उपयोग करके अपलोड करें। मानक छवि अपलोड एंडपॉइंट के विपरीत, zip के प्रोसेस होने के दौरान आपको HTTP कनेक्शन खुला रखने की आवश्यकता नहीं होती। API एक साइन किया हुआ URL लौटाता है, जिस पर आप zip PUT करते हैं, और एक taskId जिसकी स्थिति आप पोल करते हैं।

यह एंडपॉइंट ऐसे zips स्वीकार करता है जिनमें Roboflow डेटासेट अपलोड टूल्स द्वारा समर्थित किसी भी प्रारूप (COCO, YOLO, Pascal VOC, आदि) में छवियाँ और एनोटेशन हों। वर्गीकरण डेटासेट्स के लिए फ़ोल्डर नामों का उपयोग वर्ग लेबल के रूप में किया जाता है।

प्रवाह

  1. POST /:workspace/:project/upload/zip एक साइन किया हुआ URL और एक लौटाता है taskId.

  2. PUT zip को सीधे साइन किए गए URL पर।

  3. GET /:workspace/upload/zip/:taskId टास्क पूरा होने तक पोल करने के लिए।

अपलोड शुरू करें

एक POST भेजें /:workspace/:project/upload/zip. प्रतिक्रिया में एक GCS साइन किया हुआ URL और एक शामिल होता है taskId.

बॉडी पैरामीटर

जिन zips में एनोटेशन होते हैं, वे एक एनोटेशन जॉब में पहुँचते हैं जिसका नाम batchNameहोता है, या यदि आप इसे छोड़ देते हैं तो "Uploaded via API"। हर अपलोड का अपना जॉब होता है, भले ही आप नाम दोबारा उपयोग करें। यदि वर्कस्पेस में Review Mode चालू है, तो छवियाँ Review में प्रतीक्षा करती हैं और किसी समीक्षक द्वारा उन्हें स्वीकृत किए जाने के बाद डेटासेट में शामिल होती हैं।

प्रतिक्रिया

Zip अपलोड करें

PUT zip फ़ाइल को लौटाए गए signedUrlपर अपलोड करें। Content-Type होना चाहिए application/zip.

अपलोड पूरा होते ही प्रोसेसिंग स्वतः शुरू हो जाती है।

टास्क स्थिति पोल करें

एक GET भेजें /:workspace/upload/zip/:taskId.

प्रतिक्रिया मानक Async Tasks आकार का अनुसरण करती है। टास्क पूरा होने पर, result में प्रत्येक छवि का सारांश तथा पार्सिंग के दौरान मिली कोई भी चेतावनी या त्रुटि शामिल होती है।

प्रति-छवि अधिकतम 100 त्रुटियाँ और 100 चेतावनियाँ रिपोर्ट की जाती हैं। zip के अंदर मौजूद वीडियो और PDFs को असमर्थित-प्रारूप चेतावनियों के रूप में दिखाया जाता है और छोड़ दिया जाता है।

सीमाएँ

  • अधिकतम zip आकार: 2 GB

  • प्रति zip अधिकतम फ़ाइलें: 10,000

त्रुटियाँ

CLI

आप Roboflow CLI का उपयोग करके छवियों और/या एनोटेशन वाले डेटासेट अपलोड कर सकते हैं।

हमने एक वीडियो तैयार किया है जो दिखाता है कि डेटासेट कैसे अपलोड करें:

डायरेक्टरी अपलोड करें

उपयोग करें roboflow image upload एक डायरेक्टरी पथ के साथ, समानांतर प्रति-छवि अपलोड्स के जरिए डेटासेट को बल्क-अपलोड करने के लिए:

या संक्षिप्त उपनाम का उपयोग करें:

CLI स्वतः पहचानता है कि पथ एक फ़ाइल है, डायरेक्टरी है, या .zip फ़ाइल है। यदि आप --zip-upload.

विकल्प

फ़्लैग
विवरण

-p, --project

प्रोजेक्ट ID (आवश्यक)

-c, --concurrency

समानांतर अपलोड्स की संख्या (डिफ़ॉल्ट: 10)

-b, --batch

अपलोड्स को समूहित करने के लिए बैच नाम

-r, --retries

विफल अपलोड्स को N बार पुनः प्रयास करें (डिफ़ॉल्ट: 0)

-s, --split

सभी अपलोड की गई छवियों के लिए split को ओवरराइड करें

विकल्पों के साथ उदाहरण:

Zip फ़ाइल अपलोड करें

बड़े डेटासेट्स के लिए या जब आपका डेटासेट पहले से ही एक .zip फ़ाइल के रूप में पैक हो, तब zip अपलोड्स का उपयोग करें। Zip अपलोड्स Roboflow के असिंक्रोनस zip अपलोड प्रवाह का उपयोग करते हैं। डिफ़ॉल्ट रूप से, CLI zip फ़ाइल अपलोड करता है और प्रोसेसिंग समाप्त होने तक प्रतीक्षा करता है।

यह वही प्रवाह है जो ऊपर REST API में दस्तावेज़ित है; CLI आपके लिए साइन किए गए URL का अपलोड और टास्क पोलिंग संभालता है।

मौजूदा zip फ़ाइल अपलोड करने के लिए:

स्थानीय डायरेक्टरी को क्लाइंट-साइड पर zip करने और उसे असिंक्रोनस zip प्रवाह के साथ अपलोड करने के लिए, उपयोग करें --zip-upload प्राथमिक कमांड के साथ:

Zip अपलोड्स के लिए विकल्प

फ़्लैग
विवरण

-p, --project

प्रोजेक्ट ID (आवश्यक)

--zip-upload

क्लाइंट-साइड पर किसी डायरेक्टरी को zip करें और उसे असिंक्रोनस zip अपलोड प्रवाह के साथ अपलोड करें

--no-wait

प्रोसेसिंग समाप्त होने की प्रतीक्षा करने के बजाय zip अपलोड होते ही तुरंत वापस लौटें

-b, --batch

अपलोड्स को समूहित करने के लिए बैच नाम

-s, --split

Split सेट: train, valid, या test

-t, --tag

कॉमा से अलग किए गए टैग नाम

zip अपलोड विकल्पों के साथ उदाहरण:

प्रक्रिया शुरू करने और तुरंत एक task ID लौटाने के लिए:

JSON प्रतिक्रिया में असिंक्रोनस task ID शामिल होती है:

Zip अपलोड्स --is-predictionका समर्थन नहीं करते। prediction अपलोड्स के लिए नियमित प्रति-छवि अपलोड प्रवाह का उपयोग करें।

समर्थित प्रोजेक्ट प्रकार

आप निम्नलिखित प्रोजेक्ट प्रकारों के लिए डेटा अपलोड कर सकते हैं:

  • ऑब्जेक्ट डिटेक्शन

  • सिंगल-लेबल वर्गीकरण

  • मल्टी-लेबल वर्गीकरण

  • इंस्टेंस सेगमेंटेशन

  • सिमैंटिक सेगमेंटेशन

  • कीपॉइंट डिटेक्शन

समर्थित data.yaml प्रारूप

CLI डेटासेट अपलोड्स के दौरान data.yaml फ़ाइलों में सूची-शैली और key-value युग्म प्रारूप दोनों वर्ग-नाम मैपिंग्स का समर्थन करता है:

या

JSON आउटपुट

स्वचालन के लिए, उपयोग करें --json:

अगले चरण

  • किसी भी बिना एनोटेशन वाली छवि को लेबल करें ताकि उन्हें प्रशिक्षण के लिए उपयोग किया जा सके। देखें Roboflow Annotate का परिचय.

  • अपनी छवियों को एक प्रशिक्षण योग्य स्नैपशॉट में बदलें। देखें डेटासेट संस्करण बनाएँ.

अंतिम अपडेट

क्या यह उपयोगी था?