Instance Segmentation मॉडल
ऑब्जेक्ट्स का आकार, माप, और स्थान अनुमानित करें।
v4
Roboflow पर होस्ट किए गए या अपलोड किए गए instance segmentation मॉडल पर inference चलाएँ।
आप अपने खाते के लिए निजी किसी भी मॉडल, या पर उपलब्ध किसी भी सार्वजनिक मॉडल से क्वेरी कर सकते हैं Roboflow Universe.
इस ब्लॉक का उपयोग करने के लिए आपको अपने Inference वातावरण में अपनी Roboflow API कुंजी सेट करनी होगी। अपनी Roboflow API कुंजी सेट करने के बारे में अधिक जानने के लिए, Inference दस्तावेज़ देखें.
ब्लॉक का यह संस्करण mask निर्माण के व्यवहार में एक breaking change लाता है - यह उपयोग करता है rle इसके बजाय format बहुभुज जिससे किसी भी प्रकार के shapes को remote server से प्राप्त करना संभव हो जाता है।
प्रकार पहचानकर्ता
स्टेप में निम्नलिखित पहचानकर्ता का उपयोग करें "type" फ़ील्ड: roboflow_core/roboflow_instance_segmentation_model@v4 अपने वर्कफ़्लो में ब्लॉक को एक स्टेप के रूप में जोड़ने के लिए।
गुण
नाम
प्रकार
विवरण
संदर्भ
name
str
इस स्टेप के लिए एक विशिष्ट पहचानकर्ता दर्ज करें..
❌
model_id
str
Roboflow मॉडल पहचानकर्ता..
✅
confidence_mode
str
कॉनफ़िडेंस थ्रेशोल्ड कैसे निर्धारित किए जाते हैं..
✅
custom_confidence
float
पूर्वानुमानों के लिए कस्टम विश्वास सीमा..
✅
class_filter
List[str]
स्वीकृत वर्गों की सूची। वर्ग मॉडल के प्रशिक्षण सेट में मौजूद होने चाहिए..
✅
iou_threshold
float
बॉक्सों के बीच न्यूनतम ओवरलैप सीमा, ताकि उन्हें एक ही डिटेक्शन में संयोजित किया जा सके, NMS में उपयोग किया जाता है. और जानें..
✅
max_detections
int
वापस करने के लिए डिटेक्शनों की अधिकतम संख्या..
✅
class_agnostic_nms
bool
यह निर्दिष्ट करने के लिए बूलियन फ़्लैग कि क्या NMS को वर्ग-निरपेक्ष मोड में उपयोग किया जाना है..
✅
max_candidates
int
NMS इनपुट के रूप में ध्यान में लिए जाने वाले उम्मीदवारों की अधिकतम संख्या..
✅
mask_decode_mode
str
prediction post-processing में mask decoding का parameter।
✅
tradeoff_factor
float
एक post-processing parameter जो fast और accurate के बीच tradeoff निर्धारित करता है।
✅
disable_active_learning
bool
इस ब्लॉक के लिए प्रोजेक्ट-स्तरीय सक्रिय शिक्षण को अक्षम करने वाला बूलियन फ्लैग..
✅
active_learning_target_dataset
str
यदि सक्षम हो, तो सक्रिय शिक्षण के लिए लक्षित डेटासेट..
✅
यह संदर्भ स्तंभ यह इंगित करता है कि संपत्ति को वर्कफ़्लो रनटाइम में उपलब्ध गतिशील मानों के साथ पैरामीटराइज़ किया जा सकता है वर्कफ़्लो रनटाइम। देखें बाइंडिंग्स अधिक जानकारी के लिए।
इनपुट और आउटपुट बाइंडिंग्स
उपलब्ध कनेक्शन उसके बाइंडिंग प्रकारों पर निर्भर करते हैं। देखें कि कौन-से बाइंडिंग प्रकार इंस्टेंस सेगमेंटेशन मॉडल संस्करण v4 है।
इनपुट और आउटपुट बाइंडिंग्स
इनपुट
छवियाँ(छवि): जिस छवि पर अनुमान लगाना है..model_id(roboflow_model_id): Roboflow मॉडल पहचानकर्ता..confidence_mode(string): कॉन्फ़िडेंस थ्रेशोल्ड कैसे निर्धारित किए जाते हैं..custom_confidence(float_zero_to_one): पूर्वानुमानों के लिए कस्टम विश्वास सीमा..class_filter(list_of_values): स्वीकृत वर्गों की सूची। वर्ग मॉडल के प्रशिक्षण सेट में मौजूद होने चाहिए..iou_threshold(float_zero_to_one): बॉक्सों के बीच न्यूनतम ओवरलैप सीमा, ताकि उन्हें एक ही डिटेक्शन में संयोजित किया जा सके, NMS में उपयोग किया जाता है. और जानें..max_detections(पूर्णांक): वापस करने के लिए डिटेक्शनों की अधिकतम संख्या..class_agnostic_nms(boolean): यह निर्दिष्ट करने के लिए बूलियन फ़्लैग कि क्या NMS को वर्ग-निरपेक्ष मोड में उपयोग किया जाना है..max_candidates(पूर्णांक): NMS इनपुट के रूप में ध्यान में लिए जाने वाले उम्मीदवारों की अधिकतम संख्या..mask_decode_mode(string): prediction post-processing में mask decoding का parameter।tradeoff_factor(float_zero_to_one): fast और accurate के बीच tradeoff निर्धारित करने वाला post-processing parameter।disable_active_learning(boolean): इस ब्लॉक के लिए प्रोजेक्ट-स्तरीय सक्रिय शिक्षण को अक्षम करने वाला बूलियन फ्लैग..active_learning_target_dataset(roboflow_project): यदि सक्षम हो, तो सक्रिय शिक्षण के लिए लक्षित डेटासेट..
आउटपुट
inference_id(inference_id): Inference पहचानकर्ता।predictions(Union[rle_instance_segmentation_prediction,instance_segmentation_prediction]): पहचाने गए bounding boxes और RLE-encoded segmentation masks के साथ पूर्वानुमान, sv.Detections(...) ऑब्जेक्ट के रूप में, यदिrle_instance_segmentation_predictionया यदि sv.Detections(...) ऑब्जेक्ट के रूप में पहचाने गए बाउंडिंग बॉक्स और सेगमेंटेशन मास्क वाली प्रेडिक्शनinstance_segmentation_prediction.model_id(roboflow_model_id): Roboflow मॉडल आईडी।
v3
Roboflow पर होस्ट किए गए या अपलोड किए गए instance segmentation मॉडल पर inference चलाएँ।
आप अपने खाते के लिए निजी किसी भी मॉडल, या पर उपलब्ध किसी भी सार्वजनिक मॉडल से क्वेरी कर सकते हैं Roboflow Universe.
इस ब्लॉक का उपयोग करने के लिए आपको अपने Inference वातावरण में अपनी Roboflow API कुंजी सेट करनी होगी। अपनी Roboflow API कुंजी सेट करने के बारे में अधिक जानने के लिए, Inference दस्तावेज़ देखें.
प्रकार पहचानकर्ता
स्टेप में निम्नलिखित पहचानकर्ता का उपयोग करें "type" फ़ील्ड: roboflow_core/roboflow_instance_segmentation_model@v3 अपने वर्कफ़्लो में ब्लॉक को एक स्टेप के रूप में जोड़ने के लिए।
गुण
नाम
प्रकार
विवरण
संदर्भ
name
str
इस स्टेप के लिए एक विशिष्ट पहचानकर्ता दर्ज करें..
❌
model_id
str
Roboflow मॉडल पहचानकर्ता..
✅
confidence_mode
str
कॉनफ़िडेंस थ्रेशोल्ड कैसे निर्धारित किए जाते हैं..
✅
custom_confidence
float
पूर्वानुमानों के लिए कस्टम विश्वास सीमा..
✅
class_filter
List[str]
स्वीकृत वर्गों की सूची। वर्ग मॉडल के प्रशिक्षण सेट में मौजूद होने चाहिए..
✅
iou_threshold
float
बॉक्सों के बीच न्यूनतम ओवरलैप सीमा, ताकि उन्हें एक ही डिटेक्शन में संयोजित किया जा सके, NMS में उपयोग किया जाता है. और जानें..
✅
max_detections
int
वापस करने के लिए डिटेक्शनों की अधिकतम संख्या..
✅
class_agnostic_nms
bool
यह निर्दिष्ट करने के लिए बूलियन फ़्लैग कि क्या NMS को वर्ग-निरपेक्ष मोड में उपयोग किया जाना है..
✅
max_candidates
int
NMS इनपुट के रूप में ध्यान में लिए जाने वाले उम्मीदवारों की अधिकतम संख्या..
✅
mask_decode_mode
str
prediction post-processing में mask decoding का parameter।
✅
tradeoff_factor
float
एक post-processing parameter जो fast और accurate के बीच tradeoff निर्धारित करता है।
✅
disable_active_learning
bool
इस ब्लॉक के लिए प्रोजेक्ट-स्तरीय सक्रिय शिक्षण को अक्षम करने वाला बूलियन फ्लैग..
✅
active_learning_target_dataset
str
यदि सक्षम हो, तो सक्रिय शिक्षण के लिए लक्षित डेटासेट..
✅
enforce_dense_masks_in_inference_models
bool
एक Boolean flag जो inference models backend के उपयोग के दौरान dense masks को लागू करता है (अन्य मामलों में अप्रासंगिक)। Dense masks प्रोसेस करने में तेज़ होते हैं, लेकिन अधिक memory की आवश्यकता होती है। Roboflow serverless platform पर चलाते समय उपयोगकर्ता इस flag को समायोजित नहीं कर सकते..
✅
यह संदर्भ स्तंभ यह इंगित करता है कि संपत्ति को वर्कफ़्लो रनटाइम में उपलब्ध गतिशील मानों के साथ पैरामीटराइज़ किया जा सकता है वर्कफ़्लो रनटाइम। देखें बाइंडिंग्स अधिक जानकारी के लिए।
इनपुट और आउटपुट बाइंडिंग्स
उपलब्ध कनेक्शन उसके बाइंडिंग प्रकारों पर निर्भर करते हैं। देखें कि कौन-से बाइंडिंग प्रकार इंस्टेंस सेगमेंटेशन मॉडल संस्करण v3 है।
इनपुट और आउटपुट बाइंडिंग्स
इनपुट
छवियाँ(छवि): जिस छवि पर अनुमान लगाना है..model_id(roboflow_model_id): Roboflow मॉडल पहचानकर्ता..confidence_mode(string): कॉन्फ़िडेंस थ्रेशोल्ड कैसे निर्धारित किए जाते हैं..custom_confidence(float_zero_to_one): पूर्वानुमानों के लिए कस्टम विश्वास सीमा..class_filter(list_of_values): स्वीकृत वर्गों की सूची। वर्ग मॉडल के प्रशिक्षण सेट में मौजूद होने चाहिए..iou_threshold(float_zero_to_one): बॉक्सों के बीच न्यूनतम ओवरलैप सीमा, ताकि उन्हें एक ही डिटेक्शन में संयोजित किया जा सके, NMS में उपयोग किया जाता है. और जानें..max_detections(पूर्णांक): वापस करने के लिए डिटेक्शनों की अधिकतम संख्या..class_agnostic_nms(boolean): यह निर्दिष्ट करने के लिए बूलियन फ़्लैग कि क्या NMS को वर्ग-निरपेक्ष मोड में उपयोग किया जाना है..max_candidates(पूर्णांक): NMS इनपुट के रूप में ध्यान में लिए जाने वाले उम्मीदवारों की अधिकतम संख्या..mask_decode_mode(string): prediction post-processing में mask decoding का parameter।tradeoff_factor(float_zero_to_one): fast और accurate के बीच tradeoff निर्धारित करने वाला post-processing parameter।disable_active_learning(boolean): इस ब्लॉक के लिए प्रोजेक्ट-स्तरीय सक्रिय शिक्षण को अक्षम करने वाला बूलियन फ्लैग..active_learning_target_dataset(roboflow_project): यदि सक्षम हो, तो सक्रिय शिक्षण के लिए लक्षित डेटासेट..enforce_dense_masks_in_inference_models(boolean): एक Boolean flag जो inference models backend के उपयोग के दौरान dense masks को लागू करता है (अन्य मामलों में अप्रासंगिक)। Dense masks प्रोसेस करने में तेज़ होते हैं, लेकिन अधिक memory की आवश्यकता होती है। Roboflow serverless platform पर चलाते समय उपयोगकर्ता इस flag को समायोजित नहीं कर सकते..
आउटपुट
inference_id(inference_id): Inference पहचानकर्ता।predictions(instance_segmentation_prediction): sv.Detections(...) object के रूप में पहचाने गए bounding boxes और segmentation masks के साथ prediction।model_id(roboflow_model_id): Roboflow मॉडल आईडी।
v2
Roboflow पर होस्ट किए गए या अपलोड किए गए instance segmentation मॉडल पर inference चलाएँ।
आप अपने खाते के लिए निजी किसी भी मॉडल, या पर उपलब्ध किसी भी सार्वजनिक मॉडल से क्वेरी कर सकते हैं Roboflow Universe.
इस ब्लॉक का उपयोग करने के लिए आपको अपने Inference वातावरण में अपनी Roboflow API कुंजी सेट करनी होगी। अपनी Roboflow API कुंजी सेट करने के बारे में अधिक जानने के लिए, Inference दस्तावेज़ देखें.
प्रकार पहचानकर्ता
स्टेप में निम्नलिखित पहचानकर्ता का उपयोग करें "type" फ़ील्ड: roboflow_core/roboflow_instance_segmentation_model@v2 अपने वर्कफ़्लो में ब्लॉक को एक स्टेप के रूप में जोड़ने के लिए।
गुण
नाम
प्रकार
विवरण
संदर्भ
name
str
इस स्टेप के लिए एक विशिष्ट पहचानकर्ता दर्ज करें..
❌
model_id
str
Roboflow मॉडल पहचानकर्ता..
✅
confidence
float
पूर्वानुमानों के लिए विश्वास सीमा..
✅
class_filter
List[str]
स्वीकृत वर्गों की सूची। वर्ग मॉडल के प्रशिक्षण सेट में मौजूद होने चाहिए..
✅
iou_threshold
float
बॉक्सों के बीच न्यूनतम ओवरलैप सीमा, ताकि उन्हें एक ही डिटेक्शन में संयोजित किया जा सके, NMS में उपयोग किया जाता है. और जानें..
✅
max_detections
int
वापस करने के लिए डिटेक्शनों की अधिकतम संख्या..
✅
class_agnostic_nms
bool
यह निर्दिष्ट करने के लिए बूलियन फ़्लैग कि क्या NMS को वर्ग-निरपेक्ष मोड में उपयोग किया जाना है..
✅
max_candidates
int
NMS इनपुट के रूप में ध्यान में लिए जाने वाले उम्मीदवारों की अधिकतम संख्या..
✅
mask_decode_mode
str
prediction post-processing में mask decoding का parameter।
✅
tradeoff_factor
float
एक post-processing parameter जो fast और accurate के बीच tradeoff निर्धारित करता है।
✅
disable_active_learning
bool
इस ब्लॉक के लिए प्रोजेक्ट-स्तरीय सक्रिय शिक्षण को अक्षम करने वाला बूलियन फ्लैग..
✅
active_learning_target_dataset
str
यदि सक्षम हो, तो सक्रिय शिक्षण के लिए लक्षित डेटासेट..
✅
enforce_dense_masks_in_inference_models
bool
एक Boolean flag जो inference models backend के उपयोग के दौरान dense masks को लागू करता है (अन्य मामलों में अप्रासंगिक)। Dense masks प्रोसेस करने में तेज़ होते हैं, लेकिन अधिक memory की आवश्यकता होती है। Roboflow serverless platform पर चलाते समय उपयोगकर्ता इस flag को समायोजित नहीं कर सकते..
✅
यह संदर्भ स्तंभ यह इंगित करता है कि संपत्ति को वर्कफ़्लो रनटाइम में उपलब्ध गतिशील मानों के साथ पैरामीटराइज़ किया जा सकता है वर्कफ़्लो रनटाइम। देखें बाइंडिंग्स अधिक जानकारी के लिए।
इनपुट और आउटपुट बाइंडिंग्स
उपलब्ध कनेक्शन उसके बाइंडिंग प्रकारों पर निर्भर करते हैं। देखें कि कौन-से बाइंडिंग प्रकार इंस्टेंस सेगमेंटेशन मॉडल संस्करण v2 है।
इनपुट और आउटपुट बाइंडिंग्स
इनपुट
छवियाँ(छवि): जिस छवि पर अनुमान लगाना है..model_id(roboflow_model_id): Roboflow मॉडल पहचानकर्ता..confidence(float_zero_to_one): पूर्वानुमानों के लिए विश्वास सीमा..class_filter(list_of_values): स्वीकृत वर्गों की सूची। वर्ग मॉडल के प्रशिक्षण सेट में मौजूद होने चाहिए..iou_threshold(float_zero_to_one): बॉक्सों के बीच न्यूनतम ओवरलैप सीमा, ताकि उन्हें एक ही डिटेक्शन में संयोजित किया जा सके, NMS में उपयोग किया जाता है. और जानें..max_detections(पूर्णांक): वापस करने के लिए डिटेक्शनों की अधिकतम संख्या..class_agnostic_nms(boolean): यह निर्दिष्ट करने के लिए बूलियन फ़्लैग कि क्या NMS को वर्ग-निरपेक्ष मोड में उपयोग किया जाना है..max_candidates(पूर्णांक): NMS इनपुट के रूप में ध्यान में लिए जाने वाले उम्मीदवारों की अधिकतम संख्या..mask_decode_mode(string): prediction post-processing में mask decoding का parameter।tradeoff_factor(float_zero_to_one): fast और accurate के बीच tradeoff निर्धारित करने वाला post-processing parameter।disable_active_learning(boolean): इस ब्लॉक के लिए प्रोजेक्ट-स्तरीय सक्रिय शिक्षण को अक्षम करने वाला बूलियन फ्लैग..active_learning_target_dataset(roboflow_project): यदि सक्षम हो, तो सक्रिय शिक्षण के लिए लक्षित डेटासेट..enforce_dense_masks_in_inference_models(boolean): एक Boolean flag जो inference models backend के उपयोग के दौरान dense masks को लागू करता है (अन्य मामलों में अप्रासंगिक)। Dense masks प्रोसेस करने में तेज़ होते हैं, लेकिन अधिक memory की आवश्यकता होती है। Roboflow serverless platform पर चलाते समय उपयोगकर्ता इस flag को समायोजित नहीं कर सकते..
आउटपुट
inference_id(inference_id): Inference पहचानकर्ता।predictions(instance_segmentation_prediction): sv.Detections(...) object के रूप में पहचाने गए bounding boxes और segmentation masks के साथ prediction।model_id(roboflow_model_id): Roboflow मॉडल आईडी।
v1
Roboflow पर होस्ट किए गए या अपलोड किए गए instance segmentation मॉडल पर inference चलाएँ।
आप अपने खाते के लिए निजी किसी भी मॉडल, या पर उपलब्ध किसी भी सार्वजनिक मॉडल से क्वेरी कर सकते हैं Roboflow Universe.
इस ब्लॉक का उपयोग करने के लिए आपको अपने Inference वातावरण में अपनी Roboflow API कुंजी सेट करनी होगी। अपनी Roboflow API कुंजी सेट करने के बारे में अधिक जानने के लिए, Inference दस्तावेज़ देखें.
प्रकार पहचानकर्ता
स्टेप में निम्नलिखित पहचानकर्ता का उपयोग करें "type" फ़ील्ड: roboflow_core/roboflow_instance_segmentation_model@v1 अपने वर्कफ़्लो में ब्लॉक को एक स्टेप के रूप में जोड़ने के लिए।
गुण
नाम
प्रकार
विवरण
संदर्भ
name
str
इस स्टेप के लिए एक विशिष्ट पहचानकर्ता दर्ज करें..
❌
model_id
str
Roboflow मॉडल पहचानकर्ता..
✅
confidence
float
पूर्वानुमानों के लिए विश्वास सीमा..
✅
class_filter
List[str]
स्वीकृत वर्गों की सूची। वर्ग मॉडल के प्रशिक्षण सेट में मौजूद होने चाहिए..
✅
iou_threshold
float
बॉक्सों के बीच न्यूनतम ओवरलैप सीमा, ताकि उन्हें एक ही डिटेक्शन में संयोजित किया जा सके, NMS में उपयोग किया जाता है. और जानें..
✅
max_detections
int
वापस करने के लिए डिटेक्शनों की अधिकतम संख्या..
✅
class_agnostic_nms
bool
यह निर्दिष्ट करने के लिए बूलियन फ़्लैग कि क्या NMS को वर्ग-निरपेक्ष मोड में उपयोग किया जाना है..
✅
max_candidates
int
NMS इनपुट के रूप में ध्यान में लिए जाने वाले उम्मीदवारों की अधिकतम संख्या..
✅
mask_decode_mode
str
prediction post-processing में mask decoding का parameter।
✅
tradeoff_factor
float
एक post-processing parameter जो fast और accurate के बीच tradeoff निर्धारित करता है।
✅
disable_active_learning
bool
इस ब्लॉक के लिए प्रोजेक्ट-स्तरीय सक्रिय शिक्षण को अक्षम करने वाला बूलियन फ्लैग..
✅
active_learning_target_dataset
str
यदि सक्षम हो, तो सक्रिय शिक्षण के लिए लक्षित डेटासेट..
✅
enforce_dense_masks_in_inference_models
bool
एक Boolean flag जो inference models backend के उपयोग के दौरान dense masks को लागू करता है (अन्य मामलों में अप्रासंगिक)। Dense masks प्रोसेस करने में तेज़ होते हैं, लेकिन अधिक memory की आवश्यकता होती है। Roboflow serverless platform पर चलाते समय उपयोगकर्ता इस flag को समायोजित नहीं कर सकते..
✅
यह संदर्भ स्तंभ यह इंगित करता है कि संपत्ति को वर्कफ़्लो रनटाइम में उपलब्ध गतिशील मानों के साथ पैरामीटराइज़ किया जा सकता है वर्कफ़्लो रनटाइम। देखें बाइंडिंग्स अधिक जानकारी के लिए।
इनपुट और आउटपुट बाइंडिंग्स
उपलब्ध कनेक्शन उसके बाइंडिंग प्रकारों पर निर्भर करते हैं। देखें कि कौन-से बाइंडिंग प्रकार इंस्टेंस सेगमेंटेशन मॉडल संस्करण v1 है।
इनपुट और आउटपुट बाइंडिंग्स
इनपुट
छवियाँ(छवि): जिस छवि पर अनुमान लगाना है..model_id(roboflow_model_id): Roboflow मॉडल पहचानकर्ता..confidence(float_zero_to_one): पूर्वानुमानों के लिए विश्वास सीमा..class_filter(list_of_values): स्वीकृत वर्गों की सूची। वर्ग मॉडल के प्रशिक्षण सेट में मौजूद होने चाहिए..iou_threshold(float_zero_to_one): बॉक्सों के बीच न्यूनतम ओवरलैप सीमा, ताकि उन्हें एक ही डिटेक्शन में संयोजित किया जा सके, NMS में उपयोग किया जाता है. और जानें..max_detections(पूर्णांक): वापस करने के लिए डिटेक्शनों की अधिकतम संख्या..class_agnostic_nms(boolean): यह निर्दिष्ट करने के लिए बूलियन फ़्लैग कि क्या NMS को वर्ग-निरपेक्ष मोड में उपयोग किया जाना है..max_candidates(पूर्णांक): NMS इनपुट के रूप में ध्यान में लिए जाने वाले उम्मीदवारों की अधिकतम संख्या..mask_decode_mode(string): prediction post-processing में mask decoding का parameter।tradeoff_factor(float_zero_to_one): fast और accurate के बीच tradeoff निर्धारित करने वाला post-processing parameter।disable_active_learning(boolean): इस ब्लॉक के लिए प्रोजेक्ट-स्तरीय सक्रिय शिक्षण को अक्षम करने वाला बूलियन फ्लैग..active_learning_target_dataset(roboflow_project): यदि सक्षम हो, तो सक्रिय शिक्षण के लिए लक्षित डेटासेट..enforce_dense_masks_in_inference_models(boolean): एक Boolean flag जो inference models backend के उपयोग के दौरान dense masks को लागू करता है (अन्य मामलों में अप्रासंगिक)। Dense masks प्रोसेस करने में तेज़ होते हैं, लेकिन अधिक memory की आवश्यकता होती है। Roboflow serverless platform पर चलाते समय उपयोगकर्ता इस flag को समायोजित नहीं कर सकते..
आउटपुट
inference_id(string): स्ट्रिंग मान.predictions(instance_segmentation_prediction): sv.Detections(...) object के रूप में पहचाने गए bounding boxes और segmentation masks के साथ prediction।
अंतिम अपडेट
क्या यह उपयोगी था?