StatelessSampleDistortedBoundingBox

सार्वजनिक अंतिम वर्ग StatelessSampleDistortedBoundingBox

किसी छवि के लिए नियतात्मक रूप से एक यादृच्छिक रूप से विकृत बाउंडिंग बॉक्स उत्पन्न करें।

छवि पहचान या ऑब्जेक्ट स्थानीयकरण कार्यों में जमीनी सच्चाई लेबल के अलावा बाउंडिंग बॉक्स एनोटेशन अक्सर प्रदान किए जाते हैं। ऐसी प्रणाली को प्रशिक्षित करने की एक सामान्य तकनीक किसी छवि को उसकी सामग्री को संरक्षित करते हुए बेतरतीब ढंग से विकृत करना है, अर्थात डेटा संवर्द्धन । यह ओप, समान `बीज` दिया गया है, नियतात्मक रूप से किसी ऑब्जेक्ट के यादृच्छिक रूप से विकृत स्थानीयकरण को आउटपुट करता है, यानी बाउंडिंग बॉक्स, जिसे `image_size`, `बाउंडिंग_बॉक्स` और बाधाओं की एक श्रृंखला दी जाती है।

इस ऑप का आउटपुट एक एकल बाउंडिंग बॉक्स है जिसका उपयोग मूल छवि को क्रॉप करने के लिए किया जा सकता है। आउटपुट 3 टेंसर के रूप में लौटाया जाता है: `शुरू`, `आकार` और `bboxes`। छवि को क्रॉप करने के लिए पहले 2 टेंसर को सीधे tf.slice में फीड किया जा सकता है। बाउंडिंग बॉक्स कैसा दिखता है यह देखने के लिए बाद वाले को tf.image.draw_bounding_boxes पर आपूर्ति की जा सकती है।

बाउंडिंग बॉक्स की आपूर्ति की जाती है और `[y_min, x_min, y_max, x_max]` के रूप में लौटाया जाता है। बाउंडिंग बॉक्स निर्देशांक अंतर्निहित छवि की चौड़ाई और ऊंचाई के सापेक्ष `[0.0, 1.0]` में तैरते हैं।

समान `बीज` दिए जाने पर इस ऑप का आउटपुट समान होने की गारंटी है और यह इस बात से स्वतंत्र है कि फ़ंक्शन को कितनी बार कॉल किया गया है, और वैश्विक बीज सेटिंग्स से स्वतंत्र है (उदाहरण के लिए tf.random.set_seed )।

उदाहरण उपयोग:

>>> छवि = np.array([[[1], [2], [3]], [[4], [5], [6]], [[7], [8], [9] ]]) >>> bbox = tf.constant( ... [0.0, 0.0, 1.0, 1.0], dtype=tf.float32, आकार = [1, 1, 4]) >>> बीज = (1, 2 ) >>> # एकल विकृत बाउंडिंग बॉक्स उत्पन्न करें। >>> bbox_begin, bbox_size, bbox_draw = (... tf.image.stateless_sample_distorted_bonding_box(... tf.shape(image), bunding_boxes=bbox, semi-seed)) >>> # छवि को विकृत करने के लिए बाउंडिंग बॉक्स का उपयोग करें . >>> tf.slice(छवि, bbox_begin, bbox_size) >>> # छवि सारांश में बाउंडिंग बॉक्स बनाएं। >>> रंग = np.array([[1.0, 0.0, 0.0], [0.0, 0.0, 1.0]]) >>> tf.image.draw_bonding_boxes( ... tf.expand_dims(tf.cast(image, tf) .float32),0), bbox_draw, रंग)

ध्यान दें कि यदि कोई बाउंडिंग बॉक्स जानकारी उपलब्ध नहीं है, तो `use_image_if_no_bonding_boxes = true` सेट करने से यह मान लिया जाएगा कि पूरी छवि को कवर करने वाला एक अंतर्निहित बाउंडिंग बॉक्स है। यदि `use_image_if_no_bonding_boxes` गलत है और कोई बाउंडिंग बॉक्स नहीं दिया गया है, तो एक त्रुटि उत्पन्न होती है।

नेस्टेड क्लासेस

कक्षा StatelessSampleDistortedBoundingBox.Options StatelessSampleDistortedBoundingBox के लिए वैकल्पिक विशेषताएँ

स्थिरांक

डोरी OP_NAME इस ऑप का नाम, जैसा कि TensorFlow कोर इंजन द्वारा जाना जाता है

सार्वजनिक तरीके

स्थैतिक स्टेटलेससैंपलडिस्टॉर्टेडबाउंडिंगबॉक्स.विकल्प
एरियारेंज (सूची<फ्लोट> एरियारेंज)
स्थैतिक स्टेटलेससैंपलडिस्टॉर्टेडबाउंडिंगबॉक्स.विकल्प
पहलू अनुपात रेंज (सूची<फ्लोट> पहलू अनुपात रेंज)
आउटपुट < TFloat32 >
बॉक्स ()
`[1, 1, 4]` आकार के साथ 3-डी जिसमें विकृत बाउंडिंग बॉक्स है।
आउटपुट <T>
शुरू ()
1-डी, जिसमें `[ऑफसेट_हाइट, ऑफसेट_विड्थ, 0]` शामिल है।
स्थिर <T TNumber बढ़ाता है > StatelessSampleDistortedBoundingBox <T>
बनाएं ( स्कोप स्कोप, ऑपरेंड <T> इमेज साइज, ऑपरेंड <TFloat32> बाउंडिंगबॉक्स, ऑपरेंड <TFloat32> minObjectCovered, ऑपरेंड <? एक्सटेंड्स TNumber > सीड, विकल्प... विकल्प)
एक नया StatelessSampleDistortedBoundingBox ऑपरेशन को लपेटकर एक क्लास बनाने की फ़ैक्टरी विधि।
स्थैतिक स्टेटलेससैंपलडिस्टॉर्टेडबाउंडिंगबॉक्स.विकल्प
अधिकतम प्रयास (लंबे अधिकतम प्रयास)
आउटपुट <T>
आकार ()
1-डी, जिसमें `[target_height, target_width, -1]` शामिल है।
स्थैतिक स्टेटलेससैंपलडिस्टॉर्टेडबाउंडिंगबॉक्स.विकल्प
उपयोगइमेजइफनोबाउंडिंगबॉक्स (बूलियन उपयोगइमेजइफनोबाउंडिंगबॉक्स)

विरासत में मिली विधियाँ

स्थिरांक

सार्वजनिक स्थैतिक अंतिम स्ट्रिंग OP_NAME

इस ऑप का नाम, जैसा कि TensorFlow कोर इंजन द्वारा जाना जाता है

स्थिर मान: "स्टेटलेससैंपलडिस्टॉर्टेडबाउंडिंगबॉक्स"

सार्वजनिक तरीके

सार्वजनिक स्थैतिक StatelessSampleDistortedBoundingBox.Options एरियारेंज (सूची<फ्लोट> एरियारेंज)

पैरामीटर
क्षेत्रसीमा छवि के काटे गए क्षेत्र में इस सीमा के भीतर आपूर्ति की गई छवि का एक अंश होना चाहिए।

सार्वजनिक स्थैतिक StatelessSampleDistortedBoundingBox.Options पहलू अनुपात रेंज (सूची<फ्लोट> पहलू अनुपात रेंज)

पैरामीटर
पहलू अनुपात सीमा छवि के काटे गए क्षेत्र का पहलू अनुपात = चौड़ाई/ऊंचाई इस सीमा के भीतर होनी चाहिए।

सार्वजनिक आउटपुट < TFloat32 > bboxes ()

`[1, 1, 4]` आकार के साथ 3-डी जिसमें विकृत बाउंडिंग बॉक्स है। tf.image.draw_bounding_boxes को इनपुट के रूप में प्रदान करें।

सार्वजनिक आउटपुट <T> प्रारंभ ()

1-डी, जिसमें `[ऑफसेट_हाइट, ऑफसेट_विड्थ, 0]` शामिल है। tf.slice को इनपुट के रूप में प्रदान करें।

सार्वजनिक स्थैतिक StatelessSampleDistortedBoundingBox <T> बनाएं ( स्कोप स्कोप, ऑपरेंड <T> इमेज साइज, ऑपरेंड <TFloat32> बाउंडिंगबॉक्स, ऑपरेंड <TFloat32> minObjectCovered, ऑपरेंड <? एक्सटेंड TNumber > सीड, विकल्प... विकल्प)

एक नया StatelessSampleDistortedBoundingBox ऑपरेशन को लपेटकर एक क्लास बनाने की फ़ैक्टरी विधि।

पैरामीटर
दायरा वर्तमान दायरा
छवि का आकार 1-डी, जिसमें `[ऊंचाई, चौड़ाई, चैनल]` शामिल है।
बाउंडिंगबॉक्स `[बैच, एन, 4]` आकार के साथ 3-डी जो छवि से जुड़े एन बाउंडिंग बॉक्स का वर्णन करता है।
minObjectCovered छवि के काटे गए क्षेत्र में आपूर्ति किए गए किसी भी बाउंडिंग बॉक्स का कम से कम यह अंश अवश्य होना चाहिए। इस पैरामीटर का मान गैर-नकारात्मक होना चाहिए. 0 के मामले में, काटे गए क्षेत्र को आपूर्ति किए गए किसी भी बाउंडिंग बॉक्स को ओवरलैप करने की आवश्यकता नहीं है।
बीज 1-डी आकार `[2]` के साथ। यादृच्छिक संख्या जनरेटर के लिए बीज. dtype `int32` या `int64` होना चाहिए। (XLA का उपयोग करते समय, केवल `int32` की अनुमति है।)
विकल्प वैकल्पिक गुण मान रखता है
रिटर्न
  • StatelessSampleDistortedBoundingBox का एक नया उदाहरण

सार्वजनिक स्थैतिक StatelessSampleDistortedBoundingBox.Options maxAttempts (Long maxAttempts)

पैरामीटर
अधिकतम प्रयास निर्दिष्ट बाधाओं की छवि का एक फसली क्षेत्र उत्पन्न करने के प्रयासों की संख्या। `max_attempts` विफलताओं के बाद, पूरी छवि वापस लौटाएँ।

सार्वजनिक आउटपुट <T> आकार ()

1-डी, जिसमें `[target_height, target_width, -1]` शामिल है। tf.slice को इनपुट के रूप में प्रदान करें।

सार्वजनिक स्थैतिक StatelessSampleDistortedBoundingBox.Options उपयोगImageIfNoBoundingBoxes (बूलियन उपयोगImageIfNoBoundingBoxes)

पैरामीटर
ImageIfNoBoundingBoxes का उपयोग करें यदि कोई बाउंडिंग बॉक्स नहीं दिया गया है तो व्यवहार को नियंत्रित करता है। यदि सत्य है, तो संपूर्ण इनपुट को कवर करने वाला एक अंतर्निहित बाउंडिंग बॉक्स मान लें। यदि गलत है, तो एक त्रुटि दर्ज करें।