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

इमेजें प्रबंधित करें

REST API और Python SDK के माध्यम से अलग-अलग इमेजों को अपलोड, एनोटेट, निरीक्षण, टैग और हटाएँ।

के बारे में

Roboflow आपको REST API और Python SDK के माध्यम से एक प्रोजेक्ट में अलग-अलग छवियाँ अपलोड, एनोटेट, निरीक्षण, टैग और हटाने की सुविधा देता है। जब आपको बल्क डेटासेट अपलोड फ्लो से अधिक सूक्ष्म नियंत्रण चाहिए, तब इन ऑपरेशनों का उपयोग करें - उदाहरण के लिए, स्ट्रीम से एक-एक करके छवि अपलोड करना, बाद में एनोटेशन जोड़ना, या छवि मेटाडेटा और टैग अपडेट करना। एक साथ पूरे लेबल वाले डेटासेट को बल्क-इम्पोर्ट करने के लिए, देखें डेटासेट अपलोड करें.

HTTP API

REST API छवियों और एनोटेशन अपलोड करने, छवि विवरण प्राप्त करने, छवियों को हटाने, और छवि टैग तथा मेटाडेटा प्रबंधित करने के लिए प्रति-छवि ऑपरेशन प्रदान करती है।

एक छवि अपलोड करें

स्थानीय फ़ाइल या URL से छवि अपलोड करने के लिए REST API का उपयोग करें।

पैरामीटर

API द्वारा स्वीकार किए जाने वाले querystring पैरामीटर:

api_key: यहाँ से प्राप्त करें https://app.roboflow.com/account/api image: [वैकल्पिक] जोड़ने के लिए छवि का URL। यदि आपकी छवि कहीं और होस्ट की गई है, तो इसका उपयोग करें (जब आप अनुरोध बॉडी में base64-एन्कोडेड छवि POST नहीं करते, तब आवश्यक)। name: [वैकल्पिक] छवि का फ़ाइलनाम (यदि सेट नहीं है, तो हम इसे अनुमानित करने की कोशिश करेंगे)। batch: [वैकल्पिक] इस नाम के बैच के अंतर्गत छवियों को समूहित करें tag: [वैकल्पिक] इसे कई बार निर्दिष्ट किया जा सकता है। अपलोड की गई छवि में टैग जोड़ें। split: [वैकल्पिक] इनमें से एक: train, valid, या test (डिफ़ॉल्ट train है)। sequence_number: [वैकल्पिक] यदि आप डेटासेट में अपनी छवियों का क्रम बनाए रखना चाहते हैं, तो आप अपलोड की गई छवियों को बढ़ते क्रमांक दे सकते हैं। sequence_size: [वैकल्पिक] श्रृंखला में छवियों की कुल संख्या। यदि सेट नहीं है, तो डिफ़ॉल्ट 100,000 है। inference_id: [वैकल्पिक] roboflow inference detection से लौटाया गया inference ID। यह inference_id छवि को Model Monitoring (एंटरप्राइज़ फ़ीचर) में roboflow detection के साथ संबद्ध करने देता है।

Linux या macOS

नाम की स्थानीय फ़ाइल अपलोड करना YOUR_IMAGE.jpg multipart/form-data का उपयोग करते हुए (अनुशंसित):

curl -F name=YOUR_IMAGE.jpg -F split=train \
-F file=@YOUR_IMAGE.jpg \
"https://api.roboflow.com/dataset/YOUR_DATASET_NAME/upload?\
api_key=$ROBOFLOW_API_KEY"

वैकल्पिक रूप से, base64-एन्कोडेड छवि अपलोड करना:

base64 -i YOUR_IMAGE.jpg | curl -d @- \
"https://api.roboflow.com/dataset/your-dataset/upload?\
api_key=$ROBOFLOW_API_KEY&\
name=YOUR_IMAGE.jpg&\
split=train&\
batch=BATCH_NAME_FOR_UPLOAD"

वेब पर होस्ट की गई छवि को उसके URL के माध्यम से अपलोड करना (URL encode करना न भूलें इसे URL encode करें):

curl -X POST "https://api.roboflow.com/dataset/your-dataset/upload?\
api_key=$ROBOFLOW_API_KEY&\
image=https%3A%2F%2Fi.imgur.com%2FPEEvqPN.png&\
name=201-956-1246.png&\
split=train"

Windows

आपको इंस्टॉल करना होगा Windows के लिए curl और Windows के लिए GNU का base64 टूल. ऐसा करने का सबसे आसान तरीका यह है कि आप Git for Windows इंस्टॉलर का उपयोग करें, जिसमें स्थापना के दौरान "Use Git and optional Unix tools from the Command Prompt" चुनने पर curl और base64 कमांड-लाइन टूल्स भी शामिल होते हैं।

फिर आप ऊपर दिए गए वही कमांड उपयोग कर सकते हैं।

Node.js

हम उपयोग कर रहे हैं axios और form-data इस उदाहरण में POST अनुरोध करने के लिए, इसलिए पहले चलाएँ npm install axios form-data निर्भरता स्थापित करने के लिए।

multipart/form-data का उपयोग करके अपलोड करना (अनुशंसित):

base64-एन्कोडेड छवि का उपयोग करके अपलोड करना (अनुशंसित नहीं):

URL के माध्यम से कहीं और होस्ट की गई छवि जोड़ना

वेब

हम वर्तमान में बीटा परीक्षण कर रहे हैं roboflow.js, एक ब्राउज़र-आधारित JavaScript लाइब्रेरी, जिसमें अन्य चीज़ों के अलावा, वेब को अपना secret API Key उजागर किए बिना सुरक्षित क्लाइंट-साइड अपलोड शामिल हैं। यदि आप जल्दी पहुँच चाहते हैं, तो कृपया हमसे संपर्क करें.

Swift

iOS के विकास के लिए Swift का उपयोग करके एक उदाहरण अपलोड स्निपेट।

}

Kotlin

base64-एन्कोडेड छवि का उपयोग करके अपलोड करना:

URL के माध्यम से कहीं और होस्ट की गई छवि जोड़ना:

Android (Java)

base64-एन्कोडेड छवि का उपयोग करके अपलोड करना:

URL के माध्यम से कहीं और होस्ट की गई छवि जोड़ना:

Ruby

base64-एन्कोडेड छवि का उपयोग करके अपलोड करना:

URL के माध्यम से कहीं और होस्ट की गई छवि जोड़ना:

PHP

base64-एन्कोडेड छवि का उपयोग करके अपलोड करना:

URL के माध्यम से कहीं और होस्ट की गई छवि जोड़ना:

Go

base64-एन्कोडेड छवि का उपयोग करके अपलोड करना:

URL के माध्यम से कहीं और होस्ट की गई छवि जोड़ना:

.NET

base64-एन्कोडेड छवि का उपयोग करके अपलोड करना:

URL के माध्यम से कहीं और होस्ट की गई छवि जोड़ना:

Roboflow में अपलोड की गई छवियाँ देखें

API के माध्यम से अपलोड की गई छवियाँ में मिल सकती हैं Annotate टैब में, असाइन न किया गया कॉलम में और इस रूप में चिह्नित API के माध्यम से अपलोड किया गया.

यदि आप कोई batch अपलोड पैरामीटर निर्दिष्ट करते हैं, तो आपकी छवि अभी भी Annotate टैब में मिलेगी, लेकिन API के माध्यम से अपलोड किया गया बैच में जाने के बजाय, यह आपके द्वारा निर्दिष्ट बैच में मिलेगी।

एनोटेशन अपलोड करें

यदि आपके पास पहले से मौजूद एनोटेशन हैं, तो आप उन्हें अपनी छवियों के साथ Roboflow पर अपलोड कर सकते हैं.

क्या आप जानते हैं? आप API का उपयोग किए बिना ऐप के Upload पेज पर अपनी छवियों के साथ एनोटेशन फ़ाइलों को ड्रैग और ड्रॉप (या चुन) सकते हैं.

जोड़ें prediction=true को ground truth के बजाय मॉडल पूर्वानुमान के रूप में एनोटेशन सहेजने के लिए। यदि छवि अभी भी किसी अपलोड बैच में है और अभी तक किसी एनोटेशन जॉब में नहीं है, तो Roboflow उसे उस बैच के Review जॉब में भेज देता है.

जोड़ें predictionRouting=unassigned उस स्थानांतरण को छोड़ने के लिए। एनोटेशन फिर भी सहेजा जाता है और छवि फिर भी एनोटेटेड के रूप में चिह्नित रहती है, लेकिन यह अपने बैच में रहती है और असाइन नहीं होती। उपयोग करें predictionRouting=review डिफ़ॉल्ट रूटिंग का अनुरोध करने के लिए। दोनों मानों के लिए prediction=trueज़रूरी है, और आप उन्हें इसके साथ उपयोग नहीं कर सकते jobName.

उदाहरण

एक VOC XML एनोटेशन को ID वाली एक छवि में abc123 में your-dataset डेटासेट नामक YOUR_ANNOTATION.xml:

एक Darknet TXT एनोटेशन को ID वाली एक छवि में abc123 में your-dataset डेटासेट नामक YOUR_ANNOTATION.txt json labelmap का उपयोग करके - इस मामले में हमें सिर्फ body के रूप में भेजने के बजाय एनोटेशन फ़ाइल की सामग्री को एक json में भेजना होगा.

हम उपयोग कर रहे हैं axios इस उदाहरण में POST अनुरोध करने के लिए, इसलिए पहले चलाएँ npm install axios निर्भरता स्थापित करने के लिए।

एक स्थानीय छवि अपलोड करना

Kotlin

base64-एन्कोडेड छवि का उपयोग करके अपलोड करना:

URL के माध्यम से कहीं और होस्ट की गई छवि जोड़ना:

Android (Java)

base64-एन्कोडेड छवि का उपयोग करके अपलोड करना:

URL के माध्यम से कहीं और होस्ट की गई छवि जोड़ना:

एक छवि के बारे में विवरण प्राप्त करें

आप REST API का उपयोग करके किसी विशिष्ट छवि का विवरण प्राप्त कर सकते हैं.

किसी विशिष्ट छवि का विवरण प्राप्त करने के लिए, निम्न API endpoint पर एक GET अनुरोध करें.

यहाँ API को छवि का विवरण प्राप्त करने के लिए एक उदाहरण अनुरोध दिया गया है

यह endpoint छवि के बारे में निम्नलिखित जानकारी वाला एक JSON ऑब्जेक्ट लौटाता है:

डेटासेट से एक छवि हटाएँ

आप REST API का उपयोग करके डेटासेट से छवियाँ हटा सकते हैं.

डेटासेट से छवियाँ हटाने के लिए, निम्न API endpoint पर एक DELETE अनुरोध करें, और endpoint में छवि IDs पास करें.

छवियों को हटाने के लिए API को एक उदाहरण अनुरोध यहाँ दिया गया है

यदि ऑपरेशन सफल रहा, तो यह endpoint 204 status लौटाता है.

छवि टैगों की सूची बनाएं, जोड़ें और हटाएँ

आप Roboflow पर विशिष्ट छवियों को टैग असाइन कर सकते हैं, REST API का उपयोग करके

Roboflow पर होस्ट की गई छवियों में टैग जोड़ने, हटाने और सेट करने के लिए, निम्न API endpoint पर POST अनुरोध करें। छवि नाम से संबंधित छवि ID प्राप्त करने के लिए Search API का उपयोग करें:

API के लिए एक उदाहरण अनुरोध यहाँ दिया गया है (एक टैग को "add", "remove", या "set" कर सकता है):

यह endpoint POST body में निम्नलिखित मान स्वीकार करता है:

API Roboflow में निर्दिष्ट छवि में टैग जोड़ देगा (याद रखें कि पोस्ट अनुरोध में छवि ID पास करनी है, छवि नाम नहीं).

छवि मेटाडेटा और टैग अपडेट करें

आप REST API का उपयोग करके अपने workspace में छवियों पर कस्टम मेटाडेटा और टैग लिख सकते हैं। दो endpoint हैं: एक एकल छवि को synchronously अपडेट करने के लिए, और दूसरा batch में अधिकतम 1,000 छवियों को अपडेट करने के लिए.

दोनों endpoint के लिए image:tag scope

रिक्वेस्ट बॉडी

दोनों endpoint समान फ़ील्ड स्वीकार करते हैं (batch endpoint उन्हें एक अपडेट्स ऐरे में लपेटता है):

आपको इनमें से कम से कम एक फ़ील्ड शामिल करना होगा। आप एक ही अनुरोध में एक ही metadata key या tag को set और remove नहीं कर सकते। Metadata keys जो शुरू होती हैं _rf_internal_ Roboflow के लिए आरक्षित हैं और अस्वीकार कर दी जाती हैं.

एकल छवि

एकल छवि के लिए metadata और tags अपडेट करें.

उदाहरण

प्रतिक्रिया

बैच अपडेट

एकाधिक छवियों के लिए metadata और tags को asynchronous रूप से अपडेट करें। प्रति अनुरोध अधिकतम 1,000 छवियाँ स्वीकार करता है.

उदाहरण

प्रतिक्रिया

वापस देता है 202 एक task ID के साथ। प्रगति जांचने के लिए task URL को poll करें.

देखें Async Tasks task status को poll करने के तरीके के लिए.

त्रुटियाँ

Python SDK

प्रोजेक्ट per-image operations प्रदान करता है जो bulk upload_dataset flow को पूरक बनाते हैं। इनका उपयोग तब करें जब आपको single-image uploads पर अधिक सूक्ष्म नियंत्रण चाहिए, बाद में annotations जोड़ने हों, या stream से एक-एक करके images ingest करनी हों.

एक छवि अपलोड करें (वैकल्पिक annotation के साथ)

Project.upload() उच्च-स्तरीय "सही काम करें" helper है। यह एक single image और एक वैकल्पिक matching annotation file स्वीकार करता है और दोनों को एक ही call में project को भेज देता है.

single_upload() एक निम्न-स्तरीय variant है जो समान arguments लेता है और image तथा (यदि दिया गया हो) annotation दोनों के लिए raw API responses लौटाता है.

केवल एक छवि अपलोड करें

जब annotations अभी मौजूद न हों और छवि सीधे labeler के पास जाती हो, तब उपयोगी.

अपलोड करने से पहले छवि मान्य करें

check_valid_image() API को hit किए बिना Roboflow के स्थानीय size / format checks चलाता है:

मौजूदा छवि में एक annotation जोड़ें

save_annotation() किसी ऐसी छवि के विरुद्ध एक एनोटेशन पोस्ट करता है जो पहले से ही प्रोजेक्ट में है। कहीं और बनाए गए लेबल जोड़ने, या किसी मॉडल के पूर्वानुमान को ग्राउंड ट्रुथ में बदलने के लिए उपयोगी।

प्रदान करें annotation_labelmap="./labelmap.yaml" यदि आपके एनोटेशन फ़ॉर्मेट को इसकी आवश्यकता हो, तो क्लास इंडेक्स को क्लास नामों में मैप करने के लिए।

इसके साथ सहेजने पर is_prediction=True छवि को समीक्षा जॉब में ले जा सकता है। देखें जहाँ पूर्वानुमान पहुँचते हैं.

किसी छवि का मेटाडेटा प्राप्त करें

छवि का मेटाडेटा, वर्तमान split, और एनोटेशन स्थिति लौटाता है।

छवियाँ हटाएँ

प्रोजेक्ट-स्तर पर (केवल उन छवियों को हटाता है जो इस प्रोजेक्ट से संबंधित हैं):

वर्कस्पेस-स्तर पर (यह इस बात की परवाह किए बिना छवियाँ हटाता है कि किन प्रोजेक्ट्स में उनका संदर्भ है - सावधानी से उपयोग करें):

v1.3.6+ में अपलोड्स पर एक नोट

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

CLI

एक छवि और उसके वैकल्पिक एनोटेशन, टैग या मेटाडेटा को अपलोड करने के लिए CLI का उपयोग करें।

विकल्प

ध्वज
विवरण

-p, --project

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

-a, --annotation

एनोटेशन फ़ाइल का पथ

-m, --labelmap

लेबल मैप फ़ाइल का पथ

-s, --split

डेटासेट विभाजन: train, valid, या test. डिफ़ॉल्ट है train.

-t, --tag

अल्पविराम से अलग किए गए टैग नाम

-M, --metadata

JSON स्ट्रिंग के रूप में मेटाडेटा

--is-prediction

अपलोड को पूर्वानुमान के रूप में चिह्नित करें

-b, --batch

बैच का नाम

उदाहरण

एक एनोटेशन के साथ छवि अपलोड करें:

टैग और मेटाडेटा के साथ छवि अपलोड करें:

किसी डायरेक्टरी या .zip आर्काइव अपलोड करने के लिए, देखें डेटासेट अपलोड करें.

अंतिम अपडेट

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