Google I/O एक लपेट है! TensorFlow सत्रों पर पकड़ बनाएं सत्र देखें

टेंसरफ़्लो :: ऑप्स :: नमूनाडिस्टर्डबाउंडिंगबॉक्स वी 2

#include <image_ops.h>

एक छवि के लिए एक एकल बेतरतीब ढंग से विकृत बाउंडिंग बॉक्स उत्पन्न करें।

सारांश

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

इस Op का आउटपुट एक एकल बाउंडिंग बॉक्स है जिसका उपयोग मूल छवि को क्रॉप करने के लिए किया जा सकता है। आउटपुट 3 bboxes रूप में लौटाया जाता है: begin , size और bboxes । छवि को क्रॉप करने के लिए पहले 2 tf.slice को सीधे tf.slice में 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 गलत है और कोई बाउंडिंग बॉक्स नहीं दिए गए हैं, तो एक त्रुटि उठाई गई है।

तर्क:

  • गुंजाइश: एक स्कोप ऑब्जेक्ट
  • image_size: 1-D, जिसमें [height, width, channels]
  • बाउंडिंग_बॉक्स: आकृति के साथ 3-डी [batch, N, 4] छवि के साथ जुड़े एन बाउंडिंग बॉक्स का वर्णन करते हुए।
  • min_object_covered: छवि के क्रॉप किए गए क्षेत्र में आपूर्ति की गई किसी बाउंडिंग बॉक्स का कम से कम यह अंश होना चाहिए। इस पैरामीटर का मान गैर-नकारात्मक होना चाहिए। 0 के मामले में, फसली क्षेत्र को आपूर्ति की जाने वाली बाउंडिंग बॉक्स में से किसी को ओवरलैप करने की आवश्यकता नहीं है।

वैकल्पिक विशेषताएँ ( Attrs देखें):

  • बीज: या तो तो seed या seed2 गैर शून्य की तैयारी में हैं, यादृच्छिक संख्या जनरेटर दिया द्वारा वरीयता प्राप्त है seed । अन्यथा, यह एक यादृच्छिक बीज द्वारा बोया जाता है।
  • seed2: बीज टकराव से बचने के लिए एक दूसरा बीज।
  • पहलू_ अनुपात_ व्यवस्था: छवि के क्रॉप्ड एरिया में इस रेंज के भीतर एक पहलू अनुपात = चौड़ाई / ऊँचाई होनी चाहिए।
  • 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 बॉक्सेस: आकृति के साथ 3-डी [1, 1, 4] जिसमें विकृत बाउंडिंग बॉक्स होता है। tf.image.draw_bounding_boxes इनपुट के रूप में प्रदान करें।

कंस्ट्रक्टर और डिस्ट्रक्टर्स

SampleDistortedBoundingBoxV2 (const :: tensorflow::Scope & scope, :: tensorflow::Input image_size, :: tensorflow::Input bounding_boxes, :: tensorflow::Input min_object_covered)
SampleDistortedBoundingBoxV2 (const :: tensorflow::Scope & scope, :: tensorflow::Input image_size, :: tensorflow::Input bounding_boxes, :: tensorflow::Input min_object_covered, const SampleDistortedBoundingBoxV2::Attrs & attrs)

सार्वजनिक विशेषताएँ

bboxes
begin
operation
size

सार्वजनिक स्थैतिक कार्य

AreaRange (const gtl::ArraySlice< float > & x)
AspectRatioRange (const gtl::ArraySlice< float > & x)
MaxAttempts (int64 x)
Seed (int64 x)
Seed2 (int64 x)
UseImageIfNoBoundingBoxes (bool x)

संरचनाएं

टेंसोफ़्लो :: ऑप्स :: सैंपलडिस्ट्राउंडबाउंडिंगबॉक्स वी 2 :: अट्र्स

सैंपलडिस्ट्राउंडबाउंडिंग बॉक्स वी 2 के लिए वैकल्पिक विशेषता बसती है

सार्वजनिक विशेषताएँ

बॉक्स

::tensorflow::Output bboxes

शुरू

::tensorflow::Output begin

ऑपरेशन

Operation operation

आकार

::tensorflow::Output size

सार्वजनिक कार्य

नमूनाडिस्टर्डबाउंडिंगबॉक्स वी 2

 SampleDistortedBoundingBoxV2(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input image_size,
  ::tensorflow::Input bounding_boxes,
  ::tensorflow::Input min_object_covered
)

नमूनाडिस्टर्डबाउंडिंगबॉक्स वी 2

 SampleDistortedBoundingBoxV2(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input image_size,
  ::tensorflow::Input bounding_boxes,
  ::tensorflow::Input min_object_covered,
  const SampleDistortedBoundingBoxV2::Attrs & attrs
)

सार्वजनिक स्थैतिक कार्य

क्षेत्ररंग

Attrs AreaRange(
  const gtl::ArraySlice< float > & x
)

AspectRatioRange

Attrs AspectRatioRange(
  const gtl::ArraySlice< float > & x
)

अधिकतम प्रयास

Attrs MaxAttempts(
  int64 x
)

बीज

Attrs Seed(
  int64 x
)

बीज २

Attrs Seed2(
  int64 x
)

UseImageIfNoBoundingBoxes

Attrs UseImageIfNoBoundingBoxes(
  bool x
)