निश्चित रूप से एक छवि के लिए एक बेतरतीब ढंग से विकृत बाउंडिंग बॉक्स उत्पन्न करें।
छवि पहचान या वस्तु स्थानीयकरण कार्यों में जमीनी सच्चाई लेबल के अतिरिक्त बाउंडिंग बॉक्स एनोटेशन अक्सर आपूर्ति की जाती है। इस तरह की प्रणाली को प्रशिक्षित करने के लिए एक सामान्य तकनीक इसकी सामग्री, यानी डेटा वृद्धि को संरक्षित करते हुए एक छवि को बेतरतीब ढंग से विकृत करना है। समान `बीज` दिया गया यह ऑप, निश्चित रूप से एक वस्तु के बेतरतीब ढंग से विकृत स्थानीयकरण को आउटपुट करता है, अर्थात बाउंडिंग बॉक्स, जिसे `image_size`, `bounding_boxes` और बाधाओं की एक श्रृंखला दी गई है।
इस ऑप का आउटपुट एकल बाउंडिंग बॉक्स है जिसका उपयोग मूल छवि को क्रॉप करने के लिए किया जा सकता है। आउटपुट को 3 टेंसर के रूप में लौटाया जाता है: `शुरू`, `आकार` और` बॉक्स`। छवि को क्रॉप करने के लिए पहले 2 टेंसर को सीधे tf.slice
में फीड किया जा सकता है। बाउंडिंग बॉक्स कैसा दिखता है, इसकी कल्पना करने के लिए बाद वाले को tf.image.draw_bounding_boxes
पर आपूर्ति की जा सकती है।
बाउंडिंग बॉक्स की आपूर्ति की जाती है और `[y_min, x_min, y_max, x_max]` के रूप में लौटाया जाता है। बाउंडिंग बॉक्स निर्देशांक अंतर्निहित छवि की चौड़ाई और ऊंचाई के सापेक्ष `[0.0, 1.0]` में फ़्लोट होते हैं।
इस ऑप का आउटपुट समान `बीज` दिए जाने की गारंटी है और यह इस बात से स्वतंत्र है कि फ़ंक्शन को कितनी बार कहा जाता है, और वैश्विक बीज सेटिंग्स (जैसे tf.random.set_seed
) से स्वतंत्र है।
उदाहरण उपयोग:
>>> इमेज = एनपी.एरे ([[[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_bounding_box(... tf.shape (छवि), बाउंडिंग_बॉक्स = बॉक्स, बीज = बीज)) >>> # छवि को विकृत करने के लिए बाउंडिंग बॉक्स का उपयोग करें . >>> tf.slice (छवि, bbox_begin, bbox_size) ध्यान दें कि यदि कोई बाउंडिंग बॉक्स जानकारी उपलब्ध नहीं है, तो `use_image_if_no_bounding_boxes = true` सेट करने से यह मान लिया जाएगा कि पूरी छवि को कवर करने वाला एक ही अंतर्निहित बाउंडिंग बॉक्स है। यदि `use_image_if_no_bounding_boxes` गलत है और कोई बाउंडिंग बॉक्स नहीं दिया जाता है, तो एक त्रुटि उत्पन्न होती है।
नेस्टेड कक्षाएं
कक्षा | स्टेटलेसनमूनाविकृत बाउंडिंगबॉक्स। विकल्प | StatelessSampleDistortedBoundingBox के लिए वैकल्पिक विशेषताएँ |
सार्वजनिक तरीके
स्थैतिक स्टेटलेसनमूनाविकृत बाउंडिंगबॉक्स। विकल्प | क्षेत्र श्रेणी (सूची <फ्लोट> क्षेत्र श्रेणी) |
स्थैतिक स्टेटलेसनमूनाविकृत बाउंडिंगबॉक्स। विकल्प | पहलू अनुपात श्रेणी (सूची <फ्लोट> पहलू अनुपात श्रेणी) |
आउटपुट <फ्लोट> | बक्से () 3-डी आकार के साथ `[1, 1, 4]` विकृत बाउंडिंग बॉक्स युक्त। |
आउटपुट <टी> | शुरू () 1-डी, जिसमें `[ऑफ़सेट_हाइट, ऑफ़सेट_विड्थ, 0]` है। |
स्थिर <T संख्या बढ़ाता है, U संख्या बढ़ाता है> StatelessSampleDistortedBoundingBox <T> | create ( स्कोप स्कोप, ऑपरेंड <T> इमेजसाइज, ऑपरेंड <फ्लोट> बाउंडिंगबॉक्स, ऑपरेंड <फ्लोट> minObjectCovered , ऑपरेंड <U> सीड, विकल्प ... विकल्प) एक नया StatelessSampleDistortedBoundingBox ऑपरेशन रैपिंग क्लास बनाने के लिए फ़ैक्टरी विधि। |
स्थैतिक स्टेटलेसनमूनाविकृत बाउंडिंगबॉक्स। विकल्प | अधिकतम प्रयास (लंबे अधिकतम प्रयास) |
आउटपुट <टी> | आकार () 1-डी, जिसमें `[target_height, target_width, -1]` हो। |
स्थैतिक स्टेटलेसनमूनाविकृत बाउंडिंगबॉक्स। विकल्प | useImageIfNoBoundingBoxes (बूलियन useImageIfNoBoundingBoxes) |
विरासत में मिली विधियां
सार्वजनिक तरीके
सार्वजनिक स्थैतिक स्टेटलेस नमूना विकृत बाउंडिंगबॉक्स। विकल्प क्षेत्र रेंज (सूची <फ्लोट> क्षेत्र रेंज)
मापदंडों
क्षेत्र रेंज | छवि के क्रॉप किए गए क्षेत्र में इस सीमा के भीतर आपूर्ति की गई छवि का एक अंश होना चाहिए। |
---|
सार्वजनिक स्थैतिक स्टेटलेस नमूना विकृत बाउंडिंगबॉक्स। विकल्प पहलू अनुपात रेंज (सूची <फ्लोट> पहलू अनुपात रेंज)
मापदंडों
पहलू अनुपात रेंज | छवि के क्रॉप किए गए क्षेत्र में इस सीमा के भीतर एक पहलू अनुपात = चौड़ाई / ऊंचाई होनी चाहिए। |
---|
सार्वजनिक आउटपुट <फ्लोट> बॉक्सेस ()
3-डी आकार के साथ `[1, 1, 4]` विकृत बाउंडिंग बॉक्स युक्त। tf.image.draw_bounding_boxes
में इनपुट के रूप में प्रदान करें।
सार्वजनिक आउटपुट <T> प्रारंभ ()
1-डी, जिसमें `[ऑफ़सेट_हाइट, ऑफ़सेट_विड्थ, 0]` है। tf.slice
को इनपुट के रूप में प्रदान करें।
सार्वजनिक स्थैतिक StatelessSampleDistortedBoundingBox <T> बनाएँ ( स्कोप स्कोप, ऑपरेंड <T> इमेजसाइज़, ऑपरेंड <फ्लोट> बाउंडिंगबॉक्स, ऑपरेंड <फ्लोट> minObjectCovered , ऑपरेंड <U> सीड, विकल्प ... विकल्प)
एक नया StatelessSampleDistortedBoundingBox ऑपरेशन रैपिंग क्लास बनाने के लिए फ़ैक्टरी विधि।
मापदंडों
दायरा | वर्तमान दायरा |
---|---|
छवि का आकार | 1-डी, जिसमें `[ऊंचाई, चौड़ाई, चैनल]` है। |
बाउंडिंगबॉक्स | 3-डी आकार के साथ [बैच, एन, 4] छवि से जुड़े एन बाउंडिंग बॉक्स का वर्णन करता है। |
मिनऑब्जेक्ट कवर्ड | छवि के क्रॉप किए गए क्षेत्र में आपूर्ति किए गए किसी भी बाउंडिंग बॉक्स का कम से कम यह अंश होना चाहिए। इस पैरामीटर का मान गैर-ऋणात्मक होना चाहिए। 0 के मामले में, फसल वाले क्षेत्र को आपूर्ति किए गए किसी भी बाउंडिंग बॉक्स को ओवरलैप करने की आवश्यकता नहीं है। |
बीज | 1-डी आकार `[2]` के साथ। यादृच्छिक संख्या जनरेटर के लिए बीज। dtype `int32` या `int64` होना चाहिए। (XLA का उपयोग करते समय, केवल `int32` की अनुमति है।) |
विकल्प | वैकल्पिक विशेषता मान रखता है |
रिटर्न
- StatelessSampleDistortedBoundingBox का एक नया उदाहरण
सार्वजनिक स्थैतिक स्टेटलेस नमूना विकृत बाउंडिंगबॉक्स। विकल्प अधिकतम प्रयास (लंबे अधिकतम प्रयास)
मापदंडों
अधिकतम प्रयास | निर्दिष्ट बाधाओं की छवि के क्रॉप किए गए क्षेत्र को उत्पन्न करने के प्रयासों की संख्या। `Max_attempts` विफलताओं के बाद, पूरी छवि लौटाएं। |
---|
सार्वजनिक आउटपुट <टी> आकार ()
1-डी, जिसमें `[target_height, target_width, -1]` हो। tf.slice
को इनपुट के रूप में प्रदान करें।
सार्वजनिक स्थैतिक स्टेटलेस नमूना विकृत बाउंडिंगबॉक्स। विकल्प इमेजइफनोबाउंडिंगबॉक्स का उपयोग करते हैं (बूलियन उपयोगइमेजइफनोबाउंडिंगबॉक्स)
मापदंडों
उपयोगइमेजइफनोबाउंडिंगबॉक्स | यदि कोई बाउंडिंग बॉक्स प्रदान नहीं किया जाता है तो व्यवहार को नियंत्रित करता है। यदि सत्य है, तो पूरे इनपुट को कवर करने वाला एक अंतर्निहित बाउंडिंग बॉक्स मान लें। यदि गलत है, तो त्रुटि उठाएँ। |
---|