tensorflow:: ops:: SampleDistortedBoundingBox
#include <image_ops.h>किसी छवि के लिए एक यादृच्छिक रूप से विकृत बाउंडिंग बॉक्स उत्पन्न करें।
सारांश
इमेज रिकग्निशन या ऑब्जेक्ट लोकलाइज़ेशन कार्यों में ग्राउंड-ट्रुथ लेबल के अतिरिक्त अक्सर बाउंडिंग बॉक्स एनोटेशन भी प्रदान किए जाते हैं। ऐसे सिस्टम को प्रशिक्षित करने की एक सामान्य तकनीक इमेज को उसकी सामग्री को संरक्षित रखते हुए यादृच्छिक रूप से विकृत करना है, यानी डेटा ऑग्मेंटेशन । यह ऑपरेशन image_size , bounding_boxes और कई बाधाओं के आधार पर किसी ऑब्जेक्ट का यादृच्छिक रूप से विकृत लोकलाइज़ेशन, यानी बाउंडिंग बॉक्स आउटपुट करता है।
इस ऑपरेशन का आउटपुट एक सिंगल बाउंडिंग बॉक्स है जिसका उपयोग मूल छवि को क्रॉप करने के लिए किया जा सकता है। आउटपुट तीन टेंसर के रूप में लौटाया जाता है: begin , size और bboxes । पहले दो टेंसर को सीधे tf.slice में फीड करके छवि को क्रॉप किया जा सकता है। तीसरे टेंसर को tf.image.draw_bounding_boxes में सप्लाई करके बाउंडिंग बॉक्स का स्वरूप देखा जा सकता है।
बाउंडिंग बॉक्स [y_min, x_min, y_max, x_max] के रूप में दिए और लौटाए जाते हैं। बाउंडिंग बॉक्स के निर्देशांक मूल छवि की चौड़ाई और ऊंचाई के सापेक्ष [0.0, 1.0] के बीच फ्लोट मान होते हैं।
उदाहरण के लिए,
# Generate a single distorted bounding box.
begin, size, bbox_for_draw = tf.image.sample_distorted_bounding_box(
tf.shape(image),
bounding_boxes=bounding_boxes) # Draw the bounding box in an image summary.
image_with_box = tf.image.draw_bounding_boxes(tf.expand_dims(image, 0),
bbox_for_draw)
tf.summary.image('images_with_box', image_with_box) # Employ the bounding box to distort the image.
distorted_image = tf.slice(image, begin, size) ध्यान दें कि यदि बाउंडिंग बॉक्स की जानकारी उपलब्ध नहीं है, तो use_image_if_no_bounding_boxes = true सेट करने पर यह मान लिया जाएगा कि पूरी छवि को कवर करने वाला एक ही अंतर्निहित बाउंडिंग बॉक्स मौजूद है। यदि use_image_if_no_bounding_boxes false है और कोई बाउंडिंग बॉक्स प्रदान नहीं किया गया है, तो एक त्रुटि उत्पन्न होगी।
तर्क:
- स्कोप: एक स्कोप ऑब्जेक्ट
- छवि का आकार: 1-डी, जिसमें
[height, width, channels]शामिल हैं। - bounding_boxes: 3-डी आकार
[batch, N, 4]के साथ छवि से जुड़े एन बाउंडिंग बॉक्स का वर्णन करता है।
वैकल्पिक विशेषताएँ (देखें Attrs ):
- seed: यदि
seedयाseed2में से कोई भी मान शून्य नहीं है, तो यादृच्छिक संख्या जनरेटर को दिए गएseedसे सीड किया जाता है। अन्यथा, इसे एक यादृच्छिक seed से सीड किया जाता है। - seed2: सीड टकराव से बचने के लिए दूसरा सीड।
- min_object_covered: छवि के क्रॉप किए गए क्षेत्र में दिए गए बाउंडिंग बॉक्स का कम से कम इतना अंश होना चाहिए। इस पैरामीटर का मान ऋणात्मक नहीं होना चाहिए। 0 होने की स्थिति में, क्रॉप किए गए क्षेत्र को दिए गए किसी भी बाउंडिंग बॉक्स के साथ ओवरलैप करने की आवश्यकता नहीं है।
- aspect_ratio_range: छवि के क्रॉप किए गए क्षेत्र का आस्पेक्ट रेश्यो = चौड़ाई / ऊंचाई इस सीमा के भीतर होना चाहिए।
- area_range: छवि के क्रॉप किए गए क्षेत्र में इस सीमा के भीतर दी गई छवि का एक अंश होना चाहिए।
- max_attempts: निर्दिष्ट शर्तों के अनुसार छवि के क्रॉप किए गए क्षेत्र को उत्पन्न करने के प्रयासों की संख्या।
max_attemptsविफल होने पर, पूरी छवि लौटा दें। - use_image_if_no_bounding_boxes: यदि कोई बाउंडिंग बॉक्स प्रदान नहीं किया गया है तो व्यवहार को नियंत्रित करता है। यदि सत्य है, तो संपूर्ण इनपुट को कवर करने वाले एक अंतर्निहित बाउंडिंग बॉक्स को मान लें। यदि असत्य है, तो एक त्रुटि उत्पन्न करें।
प्रतिफल:
-
Outputप्रारंभ: 1-डी, जिसमें[offset_height, offset_width, 0]शामिल है। इसेtf.sliceको इनपुट के रूप में प्रदान करें। -
Outputआकार: 1-डी, जिसमें[target_height, target_width, -1]शामिल है। इसेtf.sliceको इनपुट के रूप में प्रदान करें। -
Outputबाउंडिंग बॉक्स:[1, 1, 4]आकार का 3-डी जिसमें विकृत बाउंडिंग बॉक्स शामिल है। इसेtf.image.draw_bounding_boxesमें इनपुट के रूप में प्रदान करें।
कंस्ट्रक्टर और डिस्ट्रक्टर | |
|---|---|
SampleDistortedBoundingBox (const :: tensorflow::Scope & scope, :: tensorflow::Input image_size, :: tensorflow::Input bounding_boxes) | |
SampleDistortedBoundingBox (const :: tensorflow::Scope & scope, :: tensorflow::Input image_size, :: tensorflow::Input bounding_boxes, const SampleDistortedBoundingBox::Attrs & attrs) |
सार्वजनिक विशेषताएँ | |
|---|---|
bboxes | |
begin | |
operation | |
size | |
सार्वजनिक स्थैतिक फ़ंक्शन | |
|---|---|
AreaRange (const gtl::ArraySlice< float > & x) | |
AspectRatioRange (const gtl::ArraySlice< float > & x) | |
MaxAttempts (int64 x) | |
MinObjectCovered (float x) | |
Seed (int64 x) | |
Seed2 (int64 x) | |
UseImageIfNoBoundingBoxes (bool x) | |
संरचनाएँ | |
|---|---|
| टेन्सरफ्लो::ऑप्स::सैंपलडिस्टॉर्टेडबाउंडिंगबॉक्स::एट्रिब्यूट्स | SampleDistortedBoundingBox के लिए वैकल्पिक विशेषता निर्धारक। |
सार्वजनिक विशेषताएँ
बीबॉक्स
::tensorflow::Output bboxes
शुरू
::tensorflow::Output begin
संचालन
Operation operation
आकार
::tensorflow::Output size
सार्वजनिक समारोह
सैंपलडिस्टॉर्टेडबाउंडिंगबॉक्स
SampleDistortedBoundingBox( const ::tensorflow::Scope & scope, ::tensorflow::Input image_size, ::tensorflow::Input bounding_boxes )
सैंपलडिस्टॉर्टेडबाउंडिंगबॉक्स
SampleDistortedBoundingBox( const ::tensorflow::Scope & scope, ::tensorflow::Input image_size, ::tensorflow::Input bounding_boxes, const SampleDistortedBoundingBox::Attrs & attrs )
सार्वजनिक स्थैतिक फ़ंक्शन
क्षेत्र सीमा
Attrs AreaRange( const gtl::ArraySlice< float > & x )
पहलू अनुपात सीमा
Attrs AspectRatioRange( const gtl::ArraySlice< float > & x )
अधिकतम प्रयास
Attrs MaxAttempts( int64 x )
न्यूनतम ऑब्जेक्ट कवर किया गया
Attrs MinObjectCovered( float x )
बीज
Attrs Seed( int64 x )
बीज2
Attrs Seed2( int64 x )
UseImageIfNoBoundingBoxes
Attrs UseImageIfNoBoundingBoxes( bool x )