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

#include <image_ops.h>

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

सारांश

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

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

तर्क:

  • स्कोप: एक स्कोप ऑब्जेक्ट
  • छवि_आकार: 1-डी, जिसमें [height, width, channels] शामिल हैं।
  • बाउंडिंग_बॉक्स: आकार के साथ 3-डी [batch, N, 4] छवि से जुड़े एन बाउंडिंग बॉक्स का वर्णन करता है।

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

  • बीज: यदि seed या seed2 गैर-शून्य पर सेट किया गया है, तो यादृच्छिक संख्या जनरेटर को दिए गए seed द्वारा बीजित किया जाता है। अन्यथा, यह एक यादृच्छिक बीज द्वारा बोया जाता है।
  • बीज 2: बीज टकराव से बचने के लिए दूसरा बीज।
  • min_object_covered: छवि के काटे गए क्षेत्र में आपूर्ति किए गए किसी भी बाउंडिंग बॉक्स का कम से कम यह अंश होना चाहिए। इस पैरामीटर का मान गैर-नकारात्मक होना चाहिए. 0 के मामले में, काटे गए क्षेत्र को आपूर्ति किए गए किसी भी बाउंडिंग बॉक्स को ओवरलैप करने की आवश्यकता नहीं है।
  • पहलू अनुपात_श्रेणी: छवि के काटे गए क्षेत्र का पहलू अनुपात = चौड़ाई/ऊंचाई इस सीमा के भीतर होनी चाहिए।
  • क्षेत्र_श्रेणी: छवि के काटे गए क्षेत्र में इस सीमा के भीतर आपूर्ति की गई छवि का एक अंश होना चाहिए।
  • max_attempts: निर्दिष्ट बाधाओं की छवि का एक फसली क्षेत्र उत्पन्न करने के प्रयासों की संख्या। max_attempts विफलताओं के बाद, संपूर्ण छवि लौटाएँ।
  • उपयोग_इमेज_आईएफ_नो_बाउंडिंग_बॉक्स: यदि कोई बाउंडिंग बॉक्स नहीं दिया गया है तो व्यवहार को नियंत्रित करता है। यदि सत्य है, तो संपूर्ण इनपुट को कवर करने वाला एक अंतर्निहित बाउंडिंग बॉक्स मान लें। यदि गलत है, तो एक त्रुटि दर्ज करें।

रिटर्न:

  • 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 को इनपुट के रूप में प्रदान करें।

निर्माता और विध्वंसक

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 के लिए वैकल्पिक विशेषता सेटर्स।

सार्वजनिक गुण

bboxes

::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
)

MinObjectCovered

Attrs MinObjectCovered(
  float x
)

बीज

Attrs Seed(
  int64 x
)

बीज2

Attrs Seed2(
  int64 x
)

ImageIfNoBoundingBoxes का उपयोग करें

Attrs UseImageIfNoBoundingBoxes(
  bool x
)